具体实施方式
名词定义:
信息(Item):信息包含由文字/图像/视频/链接/各种多媒体形式的相关内容或组合,是任何可以在网页上被选中的条目。信息可以是某个用户发布的,也可以是系统自动产生的。每条信息在存贮时都将被分配一个唯一标识(UniqueID),以用来索引/查找各条信息。举个例子,信息可能是某个网页上的一条产品或服务信息。比如说,一个需要购买某些产品或寻找某些服务的用户,他所发布的信息内容可能会包括对所寻求的产品或服务的详细需求;同样,如果用户有产品要卖出,他所发布的信息内容可能会包括他要卖出的产品的详细信息。信息也可以是生日祝福或者启事公告等。
信息列表(List):信息列表包括各种在线信息的列表,例如,分类信息列表。列表里的信息的相对位置排列很重要,可以是横向的,可以是纵向的,也可以是空间中任何其他方式的有向排列。如果是纵向的排列,那么信息的上下位置就是它的排名。
发布者(Owner):发布者是任何发布信息并有权利修改该信息的用户。
用户(User):用户是任何浏览在线信息列表的人。用户也可以是信息的发布者。
位置(Position):位置是某一条信息在信息列表中的相对其他信息的排位。
分类(Category):内容涵义相同(相近)的信息在逻辑上被聚集在一起作为一个组来显示和管理,这些组就被称为分类。例如,“汽车”可以是一个分类。在这个分类中还可以有子分类,例如,“二手汽车”。“交友”也可以是另一个分类。
信息种类(Info Type):根据信息内容的性质可以分为“需求性质(信息种类A)”的信息和“提供性质(信息种类B)”的信息。信息种类不同于分类,它描述的是信息发布者的诉求涵义,同一个分类的信息可以有不同的信息种类属性,同一个信息种类的信息也可以有不同的分类属性。例如,“我要”是一个信息种类A。“我有”是另一个信息种类B。“我要买一辆二手汽车”是一条信息,它属于信息种类A,它的分类是“汽车”。
排位索引值(SI,Shift Index):一个自然数数值,反应一条信息的排名位置权重,是服务器端和用户浏览器端显示信息时,对信息排名的主要依据。
人气值(PI):一个自然数数值,反应了一条信息被拖动的人次数量,是服务器端和用户浏览器端显示信息时,对信息排名的辅助依据。
竞争排位(PK):用户在浏览器显示的网页上通过拖动直接改变信息排名,并彼此互相影响看到的信息排名,由此产生的一种类似排名竞争游戏的操作行为。
支付线(L):一个自然数数值。同时,L也定义了用户在浏览器显示的网页上的信息列表中,将排名前L位的信息与其他信息隔开显示的一条直线。如果信息列表的信息是纵向排列的,用户在执行PK操作时,将信息拖放到该线以上时,需要为该信息的此次操作付费。费用将从会员帐号的可用余额中扣除。
M:是用户在对一条信息进行一次拖放操作后所需支付的费用值。
∑M:是用户当前对一条信息多次拖放操作付费的累计值。在这个发明的一个具体实现方法里,服务器在该信息被其它信息排挤到L以下后,会将该累计费用重新归还到会员帐号的可用余额中。
一个用电子计算机实现在线信息动态排名的方法。这个方法和系统的一种具体表现可以是:用户改变在线信息列表里某一条信息的显示位置,并让所有浏览该信息列表的用户都可以看到这个改变。用户通知系统:需要改变某一条信息的位置,并告知该信息将要改变到的目标位置。根据用户所指定的信息以及目标位置,信息的位置被改变,信息列表被重新排序,并实时显现给所有浏览该信息列表的用户。该重新排序的信息列表也可以选择在某一个固定时间后显示给所有用户。用户在每次改变信息位置时都可能被要求付费。
图1是一个用户发布和浏览信息的示例简图。图1所描述的情况是买家和卖家通过网络108的信息交流。发布者102、104、106通过网络108,在一个信息列表里发布了信息。这个网络可以是局域网,广域网,或者互联网。任何一个有行业相关知识和技能的人都应该明白这个发明不仅仅局限于电脑网络,这个发明可以应用于任何用户可以与之互动的网关,例如移动通讯系统、互动电视系统及其他类似系统。用户通过用户界面110浏览和发布信息。用户界面110可以是一个互联网浏览器,也可以是一个桌面应用程序,或任何可以在显示设备上呈现信息的功能载体。用户112、114、116、118可以看到用户102、104、106所发布的信息,同时,用户112、114、116、118也可以发布信息。这个图展现了用户如何通过一台接入到互联网的电脑来查看含有分类广告列表的网页。
任何一个有行业相关知识和技能的人都应该明白以上所描述的在线分类广告概念只是一个例子,而这个发明可以应用于任何网络环境下的任何类型的信息列表。
图2是一个介绍在线信息动态排名流程的示例简图。步骤202:用户可以选择一条要改变位置的信息。如果用户是通过互联网浏览器查看信息列表,用户可以直接用鼠标指针指向一条信息来选中它,也可以通过点击来选中它。这个发明也可以应用于任何其他选中信息的方法。例如,用户可以通过发送电子邮件或手机短信来选中信息。
步骤204:用户告知系统该信息的目标位置。目标位置决定了该信息在信息列表中的新排名。目标位置也可以是任何有向空间中的排名。用户可以把这条信息从原来的位置拖放到目标位置。拖放操作的详细介绍见图4。
步骤206:该信息被显示在目标位置后,信息列表被重新排序。在一个纵向排列的列表中,原本在目标位置上的信息的排名将下降一位。目标位置和原位置之间的所有信息的排名都将依次下降一位。
下文将讨论这个发明的一个具体实现方法。主要应用于分类广告/分类信息列表。以下描述的方法能够使任何一个有行业相关知识和技能的人实现并使用一个本发明所描述的系统。为了更好的解释本发明,我们使用了一些专有名词。以下各种应用的描述只是范例,任何一个有行业相关知识和技能的人都应该明白我们可能会在这些具体实现方法的基础上做修改。我们所制定的基本原则也可以应用于其他方面。
图3是一个实现这个发明的客户机-服务器体系的示例简图。客户端302a、302b、302c可以直接或间接的通过网络108与服务器端304进行互动。用户界面110是植入于客户端设备上的一个应用程序,可以通过互联网从服务器端获取HTML网页。例如,用户界面110可以是一个网络浏览器。这个网络浏览器将HTML代码编译为一个带有可阅读文字、图像或其他多媒体内容的网页。
客户端302a、302b、302c利用用户界面110(在这里是网络浏览器),通过网络或其他网关108来浏览存贮在PK时间服务器306、Web服务器308、和会员管理服务器310的网页。网关108可以是一个短信网关、互动电视网关、或互联网网络。所有页面访问都是通过Web服务器308操作的。一个用户可以发送请求,例如发布信息、管理自己的帐号、预付费、浏览信息、或通过拖放操作改变信息的排位。这些请求通过客户端302a、302b、302c提交给Web服务器308。任一条信息位置的改变将影响所有客户端302a、302b、302c浏览的页面。Web服务器308控制协调其他各服务器响应及执行用户的请求。
PK时间服务器306是接入互联网的一台/组服务器,它集中存贮和管理每一个预先设置好长度的时间,并在这个时间过去后,更新相应的视图数据库314和信息数据库316,并往复不断。由此产生“轮”的概念。“轮”就是一个预先设置好长度的时间,一轮结束后一个静态信息列表将被显示给用户看。用户可以在任何一轮时间里进行PK操作。在之后的关于拖放操作的讨论里(图4)还会有一些关于“轮”的详细介绍。
Web服务器308是接入互联网的一台/组服务器,它接受客户端302a、302b、302c的各种操作请求,并负责调配后台各服务器执行各种操作。例如,当客户端302a、302b、302c通过浏览器请求查看某一个分类的信息列表,Web服务器308响应客户端浏览器的请求,从信息数据库316获取相关分类的信息列表,并将信息列表编码为HTML页面返回给客户端浏览器。Web服务器308同时管理着基础设置数据库318、视图数据库314、信息数据库316。
会员管理服务器310是接入互联网的一台/组服务器。它管理用户的帐户、预付费充值、财务记录、各种操作的扣款、还款等,并管理着会员数据库320。
服务器集群322是接入互联网的一台以上服务器利用服务器集群软件/硬件,通过内部局域网联结以支持某个操作或应用。配备于PK时间服务器306、Web服务器308、会员管理服务器310之上。
信息数据库316是接入互联网的一台/组服务器利用数据库管理软件(DataBase Management System如:Oracle、Microsoft SQL Server、IBM DB2、MySql、Borland Interbase等)存贮实时信息列表,以及各信息的相关排名数据等。信息数据库实时被更新。如果我们针对的是分类广告,信息数据库里的信息可以分为“我要”和“我有”信息种类。在每个信息种类里还有不同分类。例如,“汽车”分类。任何一个有行业相关知识和技能的人都应该明白这里所提及的信息数据库列表里的内容只是一个范例。
视图数据库314是接入互联网的一台/组服务器利用数据库管理软件(DBMS,DataBase Management System如:Oracle、Microsoft SQL Server、IBM DB2、MySql、Borland Interbase等)存贮上轮PK结束时,排名在支付线L以上的信息列表。信息数据库316和视图数据库314存贮信息的数据结构简图见图12。
基础设置数据库318是接入互联网的一台/组服务器利用DBMS存贮各种基本设置信息,包括分类、信息种类、支付线位置、操作单价等数据。
会员数据库320是接入互联网的一台/组服务器利用DBMS存贮所有用户的用户名、密码、可用余额、财务记录等信息。用户付费后他在会员数据库里的可用余额将被更新。用户在会员数据库里的可用余额可以用来为改变信息位置的操作付费。
图4A、图4B和图4C是对一条信息进行拖放操作的示意图。在图4A里,用户用鼠标选中信息402。在图4B里,用户用鼠标把信息402从它原来的位置向上拖到目标位置。在图4C里,用户放开鼠标键,把信息402放在目标位置上。本来在目标位置的信息404将向下移动一位。在目标位置和信息402原位置之间的所有信息的排名都将依次下降一位。
在这个发明的一个具体实现方法里,用户将会同时看到两个不同的信息列表。用户可以在浏览器所显示的页面上的一个信息列表中改变信息的位置(这个信息列表叫动态列表),但在浏览器所显示的同一页面上的另一个信息列表中将无法改变信息的位置(这个列表叫静态列表)。用户可以在动态列表中通过拖放操作实时改变信息的位置。静态列表的显示会在一个预先设置好长度的时间后改变,用户无法改变这个列表里的信息的位置。这个预先设置好长度的时间就是一轮。任何一个有行业相关知识和技能的人应该明白一轮可以是1个小时,也可以是任何其他预先设置好长度的时间段。
动态信息列表里的信息的位置的变化可以是实时的,因为可以随时被不同的用户改变。所有改变都将实时被存贮到信息数据库316。更新信息数据库316的详细流程请见图6。动态列表里的信息,会同他们在列表里的相对位置一起在每一轮结束时被PK时间服务器306获取并存贮到视图数据库314。
静态列表显示的是在前一轮结束时获取的动态列表里的信息。在一轮时间里,静态列表里信息的位置将不会改变。当一轮结束时,当前的静态列表里的信息将被最新一轮的动态列表里的信息替代。用户在动态列表里支付线上的改动将在下一轮时间里在静态列表里显示。静态列表里的信息将存贮在视图数据库314,并在每一轮结束时更新。图5将详细介绍更新视图数据库314的流程。
用户可以在任何一轮PK中改变动态列表里的信息位置。在这里的一个具体实现方法中,在一个纵向列表里,我们只让用户向上拖动信息,而不允许把信息向下拖动。任何用户可以向上拖动任何信息,但只有信息的发布者才可以把自己的信息拖到支付线以上。发布者如果把自己的信息拖到了支付线上,他/她需要付一定的费用。每条被拖动过的信息的最新排位索引值(SI)和人气值(PI)将被计算和存贮到信息数据库316。信息数据库316将在每次拖放操作后被更新。
图5展示了在每一轮后更新视图数据库314的流程。PK时间服务器306管理着一个计时器。在每轮开始的时候,PK时间服务器306会启动这个计时器。步骤502:PK时间服务器306从基础设置数据库318中得到本轮PK结束时间:PK时间。步骤504:计时器循环检查当前时间是否已经到PK时间。步骤506~508:如果已经到了,PK时间服务器306将从信息数据库316获取最新的支付线上的所有信息列表并更新视图数据库314。步骤510:计时器将被重置。
图6展示了在每一轮后更新信息数据库316的流程。每一轮开始时,信息数据库里的每个列表里的每条消息都有排位索引值(SI)和人气值(PI),是来自上一轮的结果。步骤602:所有分类所有信息种类的信息列表将按照排位索引值(SI)和人气值(PI)重新排序。步骤604:取一条信息的位置:P。步骤606:检查P是否在支付线以下。步骤608:如果P是在支付线以上,那将该信息的排位索引值(SI)设为1。步骤610:如果P是在支付线以下,那将该信息的排位索引值(SI)设为0。步骤612:检查是否是最后一条信息。如果不是,重复步骤604~612一直到最后一条信息的排位索引值(SI)被重置。步骤614:将所有信息按其P值排序,将所有用户在本轮的累计支付∑M重设为0。用户在本轮的累计支付的计算方法在图7中有详细讨论。所有信息在以上步骤的改变将实时被更新到信息数据库316。
图7A和图7B是系统处理用户改变信息列表里某一条信息位置的请求的流程图。步骤702:用户查看一个指定的动态信息列表。这个列表里的每一条信息都有其排位索引值(SI)和人气值(PI)。步骤704:用户选择一个要改变排位的信息。其最初的位置为P1。拖放操作改变其排名后其位置为P2。在拖放操作前,位于位置P2的信息的排位索引值(SI)是SI2。在拖放操作后,当前位于位置P2的信息的排位索引值(SI)是SI2+1。步骤706:系统通过检查P2是否大于P1来得知信息是否被用户向下拖动,如果信息被用户向下拖动,那么该拖放操作无效,动态列表没有改变。步骤708:新的显示列表与先前一样。
步骤710:如果信息被用户向上拖动,那么系统通过检查P2是否大于L来得知这条信息的目标位置是否在支付线上。系统只允许信息发布者把自己的信息拖到支付线上。系统允许任何用户向上拖动任何信息至支付线下的任何位置。步骤712~714:Web服务器将在信息数据库316中更新位于位置P2的这条信息的SI和PI值,并将信息列表重新排序,重新得到动态信息列表。
步骤716:如果用户将信息拖至支付线以上,系统将检查用户是否是该信息的发布者。步骤718:如果用户不是发布者,该拖放操作被取消,动态列表没有改变。新的显示列表与先前一样。步骤720:如果用户是发布者,系统根据先前计算出该信息最新的SI值计算本次拖放操作的费用,费用计算公式如下:
(该信息最新SI值-该信息拖放之前SI值)*单价C
C是预先存贮在基础设置数据库318中的价格数值。
步骤722:系统提示用户付费。步骤724:用户确认付费。在这里的一个具体实现方法中,用户可能在执行拖放操作前已经执行过预付费操作。图9将详细讨论用户预付费操作的流程。
步骤726:系统通过会员管理服务器310检查用户帐户余额是否足够支付本次操作费用。步骤728:如果用户的可用余额小于本次操作费用,本次操作被取消,动态列表没有改变。新的显示列表与先前一样。步骤730:如果用户的可用余额大于本次操作费用,会员管理服务器310从用户帐户中扣除本次操作所需费用,并将此次扣款操作记录在用户财务记录里。步骤732~734:Web服务器308重新排序整个信息列表,并在信息数据库316中更新这条信息的SI和PI值。用户浏览器显示的信息列表也被相应更新。
在这里的一个具体实现方法中,在每一轮进行中,用户每次拖动信息到支付线上时需付费。但是,如果在一轮结束时用户的信息在支付线下,该用户在本轮所累计支付的费用∑M将被退还到用户的可用余额上。
图8是一个用户发布信息的流程图。任何新信息都将被实时加入动态列表中,它的位置是系统预设定的,也可以是用户指定的。任何一个有行业相关知识和技能的人应该明白新发布的信息的位置可以用任何方法来预设定。
步骤802~804:用户选择信息种类后,用户输入信息内容并选择分类。步骤806:然后用户提交这些信息到Web服务器308。步骤808:Web服务器308将该信息的排位索引值(SI)和人气值(PI)设为0。步骤810:该信息被存贮到相应的信息数据库316中。
图9是一个用户预付费的流程图。步骤902:系统提示用户输入用户名和密码。步骤904:用户提交登录信息到会员管理服务器310。步骤906:会员服务器310验证用户的登陆信息是否正确。步骤908:如果该用户通过验证,显示会员管理界面。步骤910~912:用户提交付费请求后,用户被重定向到支付网关执行支付操作。步骤914:用户支付成功后,会员管理服务器310收到支付网关发来的支付成功信号。步骤916:会员管理服务器310更新用户的可用余额数值,并将此次操作记录在用户财务记录里。
图10是Web服务器308处理用户浏览信息的请求的流程图。步骤1002:用户选择要查看的信息种类和分类。步骤1004~1006:Web服务器308根据用户的请求从信息数据库316和视图数据库314中取得匹配的信息,并以它们的SI值降序排序,SI值相同的信息以PI值降序排序。。步骤1008:将已排序的信息列表编码为HTML页面,并在其中加入AJAX直接拖放接口。步骤1010:将相关信息种类的信息视图合并到HTML页面并发送到客户端的浏览器中。用户可以直接在浏览器呈现的页面上对信息进行拖放操作。图11将详细介绍在标准HTML页面上实现拖放操作的方法。
图11是在标准HTML页面上实现拖放操作的示意图。步骤1102:客户端浏览器在HTML页面上使用Javascript代码监视用户鼠标行为。步骤1104:持续检测用户是否在一条信息上按下鼠标。步骤1106:当用户按下鼠标时,触发“拖”事件。步骤1108~1110:不断得到鼠标光标的新位置,同时将被操作信息的位置设为鼠标光标的新位置。步骤1112:持续检测用户鼠标按钮是否放开。步骤1114~1116:直到用户放开鼠标按钮,触发“放”事件,并得到被操作信息的新位置P2。步骤1118:将新位置P2,信息唯一标识和其他相关信息提交到Web服务器308。本次拖放操作完成,客户端浏览器继续在HTML页面上使用Javascript代码监视用户鼠标行为。
图12是信息数据库316和视图数据库314存贮信息的数据结构简图。信息数据库316以记录的方式存贮着动态信息列表里的每一条信息,每条信息包含很多特定的属性字段,例如唯一标识、位置、人气值等。视图数据库314以记录的方式存贮着静态信息列表里的每一条信息,每条信息包含很多特定的属性字段,例如唯一标识、位置、人气值等。
图13介绍了在拖放操作过程中计算人气值的方法。步骤1202~1204:Web服务器308得到一条信息的PI值,并检测用户是否被操作信息的发布者。步骤1206:如果用户是该信息的发布者或者用户没有登陆,则PI值不发生任何变化。步骤1208:如果用户已登陆并且不是该信息的发布者,该信息的PI值增加1。步骤1210:Web服务器308更新信息数据库中该信息的PI值。
这个发明整体或局部的任一个具体实现方法可以是一个机器。例如电子计算机、已编程的微处理器、集成芯片、或者其它可以实现这个发明所描述的方法里的步骤的任一设备。
这个机器通过执行一系列存贮在一个或多个存储器中的指令来处理各种数据。这些存储器可以存贮数据或其它信息。
这一系列指令包括各种可以令机器执行一些指定任务(例如实现这个发明所描述的方法里的步骤)的命令。这一系列指令可以是软件程序,例如系统软件或应用程序软件,也可以是不同程序的组合,一个程序组件或是一个更大程序中的组件。这个软件也可以包含面向对象编程形式的编程组件。机器对各种数据的处理包括响应用户的请求,或响应之前的处理结果,也可以是响应另一个机器的请求。
任何一个有行业相关知识和技能的人都应该明白这个发明所提及的各种机器和/或存储器在物理上不一定会安置在同一个地理位置,它们可以是在不同的地理位置上利用各种通讯技术互相连接互相通讯。这些通讯技术包括各种网络,例如内网、外网、互联网,或任何可以支持通讯的客户端服务器网络模型,并可以使用各种网络协议,例如传输控制协议/网间协议(TCP/IP),用户数据报文协议(UDP)等。
虽然我们已经详细描述了这个发明的一些具体实现方法,但显然这个发明不仅限于以上描述的方法和功能。那些有行业相关知识和技能的人应该明白这个发明可包含各种修改,变化、变体、替代版本、及相同作用版本等。