用于在网络上通信的方法、系统和程序产品的制作方法

文档序号:7608716阅读:104来源:国知局
专利名称:用于在网络上通信的方法、系统和程序产品的制作方法
技术领域
本发明通常涉及网络上的通信,并且更具体地说,涉及在将消息发送到服务器用于处理前对客户机上的消息进行分类的方法、系统和程序产品。
背景技术
通常由正在执行各种操作的许多用户共享服务器。通常,期望分配不同的优先级和/或分组,用于与这些操作相结合地处理传送到服务器的消息。例如,第一组的一个或多个用户可能在服务器上正在执行预期具有快速响应时间的操作(例如获得股票报价),而第二组的一个或多个用户可能正在执行不要求快速响应时间和/或不占用大量服务器资源的操作。理论上,服务器将为这些操作分配不同优先级。例如,可以为不要求快速响应时间的操作分配较低优先级,以便这些操作的性能不防碍要求快速响应时间的操作。另外,当操作消耗大量服务器资源时,会限制正在被处理的这些操作的数量,以便服务器不死锁。
当前的解决方案通常要求服务器接受未经分类的消息,解码消息,以及分类消息,以便进行处理。例如,在典型的实现中,线程可以接受来自各种客户机的连接,并将相应的消息存储在队列中。然后可以使用一个或多个另外的线程来解码和分类消息,以及将所分类的消息放在相应的处理队列中。因此,用于处理消息的各种线程能从它们自己的处理队列获得消息,以及处理这些消息。
要求服务器解密(declassify)消息具有几个缺点。例如,用于分类消息的信息可以包含在用于传输消息的几个协议层(例如超文本传输协议(HTTP)、互联网交互对象请求代理(ORB)协议(InternetInter-Obiect Request Broker Protocol,IIOP)等)内。因此,必须解码几乎整个消息以正确地分类消息。然而,不可以分类一些消息,导致性能降低。对这些消息,不必执行该解码。另外,通常实现另外的线程,用于解码和分类消息。附加线程与其他线程竞争服务器资源(例如CPU时间片、高速缓存存储器空间等),从而降低了服务器的整体性能。另外,用于解码和分类消息的附加队列增加了对于在队列中等待处理的消息的另外的响应时间,并且要求正在接受连接的线程和执行分类的线程间的同步。
其他解决方案要求客户端软件开发人员理解如何分类消息和适当地路由消息。然而,这些解决方案导致一旦使用该客户软件就不能被容易地改变的分类。这些解决方案也会导致由于不能调整以完全利用服务器的静态调度而不能充分利用服务器的情形。因此,实际上降低了在服务器上维护的灵活度和控制。

发明内容
因此,需要一种用于分类消息的改进的解决方案。提供了这样一种方法、系统和程序产品,其用于在将消息传送到服务器前,在客户机上分类消息,其中,将分类规则从服务器提供给客户机。
本发明提供了一种用于在网络上通信的方法、系统和程序产品。具体来说,依据本发明,服务器生成用于分类消息的规则集(一个或多个规则)。将规则集提供给客户机用于在与服务器进行通信时使用,并且能使客户机的规则集定期地与服务器上的规则集同步。在客户机将消息传送到服务器前,客户机能使用规则集分类消息。根据消息分类,能在例如不同端口上发送消息。在这种情况下,服务器能单独地监控多个端口的消息,并相应地处理消息。因此,本发明提供了一种用于分类消息以便在服务器上进行处理的改进的解决方案。
本发明的第一方面提供一种在网络上通信的方法,该方法包括获得用于在客户机上分类消息的规则集;将客户机上的待发送的消息提供给服务器;基于该规则集,在客户机上分类消息;以及基于消息分类,将该消息发送给服务器。
本发明的第二方面提供一种网络上的通信的方法,该方法包括创建用于分类消息的规则集;将规则集提供给客户机;以及基于规则集,在服务器上单独地监控具有多个消息分类之一的分类后消息。
本发明的第三方面提供一种在网络上通信的系统,该系统包括规则系统,用于管理用于分类消息的规则集;更新系统,用于将规则集提供给客户机;以及多个监控系统,其中,每个监控系统监控具有唯一消息分类的消息。
本发明的第四方面提供一种存储在可读介质上的用于在网络上通信的程序产品,当其被执行时,包括用于管理用于分类消息的规则集的程序代码;用于将规则集提供给客户机的程序代码;以及用于在服务器上单独地监控多个端口的分类后消息的程序代码。


从下述结合附图的本发明的各个方面的详细描述中,将更容易理解本发明的这些和其他特征,其中图1示出了根据本发明的一个实施例在网络上通信的示例性系统;图2示出了根据本发明的另一实施例在系统间的示例性数据流;以及图3示出了根据本发明的另一实施例、被发送到服务器的示例性消息。
注意到,本发明的附图不是按比例绘制的。附图用来仅描述本发明的典型方面,因此不应当视为限制本发明的范围。在图中,相似的标记表示附图间的相似的元件。
具体实施例方式
如上所述,本发明提供了一种用于在网络上通信的方法、系统和程序产品。特别地,依据本发明,服务器生成用于分类消息的规则集(即一个或多个规则)。将规则集提供给客户机,以便当与服务器通信时使用,并使客户机的规则集定期地与服务器上的规则集同步。在客户机将消息传送给服务器前,客户机能使用规则集分类消息。根据消息分类,能在例如不同端口上发送消息。在这种情况下,服务器能单独地监控多个端口的消息,并相应地处理消息。因此,本发明提供了一种用于分类消息以便在服务器上处理的改进的解决方案。
转到附图,图1示出了用于在网络13上通信的示例性系统10。特别地,服务器12和客户机26分别使用通信系统28A-B在网络13上通信。为此,网络13能包括任何类型的通信链路。例如,网络13能包括在客户机-服务器(或服务器-服务器)环境中的可寻址连接,其可以利用有线线路和/或无线传输方法的任何组合。在这种情况下,服务器12和客户机26可以利用传统的网络连接性,诸如Token Ring、Ethernet、WiFi或其他传统的通信标准。另外,网络13能包括任何类型的网络,其中包括互联网、广域网(WAN)、局域网(LAN)、虚拟专用网(VPN)等。在客户机26经由互联网与服务器12通信的情况下,可以通过传统的基于TCP/IP套接字的协议提供连接性,并且客户机26能利用互联网服务供应商来建立与服务器12的连接性。
如图所示,服务器12通常包括中央处理单元(CPU)14、存储器16、输入/输出(I/O)接口18、总线20、外部I/O设备/资源22和存储单元24。CPU14可以包括单个处理单元,或分布在一个或多个位置中、例如客户机和服务器上的一个或多个处理单元上。存储器16可以包括任何已知类型的数据存储和/或传输介质,包括磁性介质、光学介质、随机存取存储器(RAM)、只读存储器(ROM)、数据高速缓存、数据对象等。存储单元24可以包括任何类型的数据存储设备,用于提供对于执行下述本发明所需的信息的存储。同样地,存储单元24可以包括一个或多个存储设备,例如磁盘驱动器或光盘驱动器。此外,与CPU 14类似,存储器16和/或存储单元24可以驻留在单个物理位置上,包括一种或多种类型的数据存储设备,或以各种形式分布在多个物理系统上。另外,存储器16和/或存储单元24能包括在例如LAN、WAN或存储区域网(SAN)(未示出)上分布的数据。
I/O接口18可以包括用于交换到/来自外部源的信息的任何系统。I/O设备22可以包括任何已知类型的外部设备,包括扬声器、CRT、LED屏、手持设备、键盘、鼠标、语音识别系统、语音输出系统、打印机、监视器/显示器、传真机、寻呼机等。总线20提供服务器12中的每个部件间的通信链路,并且同样地可以包括任何已知类型的传输链路,包括电、光、无线等。另外,尽管未示出,但另外的部件、诸如高速缓存存储器、通信系统、系统软件等也可以包含在服务器12中。
另外,应理解,服务器12包括任何类型的计算设备,其能与一个或多个其他计算设备(例如客户机26)通信。类似地,客户机26能包括任何类型的计算设备,诸如服务器、台式计算机、膝上型计算机、手持设备、移动电话、寻呼机、个人数据助理等。为此,客户机26通常包括与服务器12中所示相同的元件(例如CPU、存储器、I/O接口等)。为简洁起见,这些元件未单独地示出和论述。然而,应理解,如果客户机26是手持设备等,则能在客户机26中包含显示器,并且不像为服务器12所示的外部I/O设备22那样。
示出了在存储器16中和在客户机26上存储有通信系统28A-B,其用于在网络13上在服务器12和客户机26间通信。另外,在服务器12的存储器16中示出了多个处理系统36,以及在客户机26上示出了多个程序42。通常,程序42生成将被传送到服务器12用于由处理系统36处理的消息。一旦完成了消息的处理,处理系统36就可以将响应消息发送给程序42。
为实现服务器和客户机间的通信,示出了服务器12上的通信系统28A包括规则系统30、更新系统32以及一组监控系统34(一个或多个),并且示出了通信系统28B包括分类系统38和维护系统40。通常,每个监控系统34监控具有唯一消息分类的消息,并将所接收的任何消息转发给相应的处理系统36。能使用规则系统30来管理用于将所分类的消息从客户机26传送到服务器12的规则集,并且更新系统32能向维护系统40提供规则集,以便在客户机26上使用。当消息将要从客户机26发送到服务器12时,分类系统38能在将其发送给服务器12前参考规则集来确定如何分类该消息。
转到图2,示出了各个系统间的示例性数据流。如图所示,分别在服务器12和客户机26上(例如存储单元24(图1)上)存储规则集44A-B。规则集44A-B中的每一个包括用于分类消息的一个或多个规则,并且每个规则规定如何基于消息的一个或多个属性而分类一条或多条消息。因此,由客户机26使用规则集44B来分类发送给服务器12的消息。能使用消息的任何属性、包括例如正发送消息的程序42的一个或多个属性、消息的内容、正发送消息的客户机26、处理消息的处理系统36等,来分类消息。例如,规则能够包括消息类型和对应于该消息类型的分类信息。在这种情况下,将基于相应的分类信息,分类具有与用于该规则的消息类型相匹配的消息类型的每条消息。
管理器能使用规则系统30管理规则集44A。特别地,规则系统30能提供接口,其允许管理器48创建、删除、修改、浏览规则集44A中的一个或多个规则。客户机26上的规则集44B包括在特定时间从服务器12获得的规则集44A的副本。例如,当客户机26还未从服务器12获得规则集44B时,维护系统40能从更新系统32获得规则集A的副本,并将其存储为规则集44B。
另外,规则集44B能定期地与规则集44A同步。例如,维护系统40能从服务器12定期地请求更新的规则集44B。在一个实施例中,规则集44B能包括在其之后应当获得更新的规则集44B的日期和/或时间。在此时间后,维护系统40能从更新系统32请求更新的规则集44B。另外,维护系统40能在设定的时间间隔后,在每天的相同时间等,请求更新的规则集44B。在任一种情况下,客户机26都能定期地将其时钟与服务器12同步,以确保适当地更新规则集44B。在另一替代方案中,在管理器48修改规则集44A后,或当管理器48请求应当发送更新的规则集44A时,更新系统32能将规则集44A的一个或多个更新定期地广播给客户机26,以便用作规则集44B。在任何情况下,更新系统32都能将当前的规则集44A提供给维护系统40。另外,更新系统32能提供自先前同步规则集44B、和/或将在其之后获得更新的规则集的新日期和/或时间以来(例如当没有对规则集44A做出修改时)对规则集44B所做出的一组修改。为此,规则集44B能进一步包括用于标识正由当前的规则集44A进行更新的特定规则集44B的版本等,并且维护系统40能将版本传送到更新系统32。作为选择,维护系统40能提供先前获得规则集44B的日期/时间。在任一种情况下,更新系统32都能确定必要的修改并将它们提供给维护系统40。
当用户46操作程序42时,程序42可以生成将传送到服务器12的消息。在这种情况下,程序42将消息提供给维护系统28B(图1)。在将消息传送到服务器12前,分类系统38能基于规则集44B分类该消息。特别地,分类系统38能确定消息的一个或多个属性,并确定规则集44B中的规则是否与该一个或多个属性匹配。如果存在规则,则分类系统38能根据相应的分类信息,来分类该消息。如果不存在规则,那么分类系统38能使消息不被分类。例如,分类系统38能分析该消息以便确定消息类型,然后确定在规则集44B中是否存在对应于所确定的消息类型的规则。当找到规则时,根据该规则中的分类信息,来分类该消息,否则使该消息保持不被分类。在任一种情况下,都将该消息传送到服务器12。
如前面所提到的,规则集44B能包括在其之后应当获得的规则集的日期和/或时间。分类系统38也能访问该日期和/或时间以确定规则集44B是否能继续用于分类消息。例如,如果规则集44B包含已过去了的日期/时间,则分类系统38能停止使用规则集44B,而不是冒一个或多个规则不再用在服务器12上的风险。类似地,当正在通过维护系统40更新规则集44B时,能防止分类系统38访问规则集44B。在任一种情况下,分类系统38都能将未被分类的任何消息发送给服务器12。
由客户机26发送的消息由监控系统34之一接收。每个监控系统34能监控和接收具有唯一消息分类的消息。当由监控系统34接收分类后的消息时,监控系统34能将消息提供给相应的处理系统36,以便处理该消息。另外,服务器12能包括用于接收未被分类的消息的监控系统34,其能将消息提供给用于处理未被分类的消息的处理系统36。尽管特定处理系统36仅处理来自单个监控系统34的消息,但是应理解监控系统34和处理系统36间的任何关系都是可能的。
也能基于规则集44A配置监控系统34和/或处理系统36。例如,当管理器48创建包括新消息分类的规则时,规则系统30能启动另外的监控系统34来监控具有该新消息分类的消息,并且能启动另外的处理系统36用于处理该消息。为此,与维护系统40类似地,规则系统30能定期地使监控系统34和/或处理系统36的配置与规则集44A同步。例如,在规则集44B指示应当更新规则集44B的同时,能同步监控系统34的配置。用这种方式,能保证服务器12上的监控系统34的配置与客户机26上正使用的规则集44B匹配。
图3示出了在由分类系统38分类后发送到服务器12的示例性消息50。在这种情况下,规则集44B包括多个规则52A-C,,其中,每个规则52A-C包括用于消息属性的消息类型54,以及用于分类信息的相应端口号56。由分类系统38接收消息50,其中分类系统38指定应当在缺省端口上发送该消息。在接收到消息50后,分类系统38能确定其消息类型。然后,分类系统38能确定用于规则52A-C的消息类型54是否与消息50的消息类型相匹配。当发现匹配时,分类系统38能将用于消息50的端口改变成匹配规则52A-C中的端口号56。例如,示出了消息50具有等于2的消息类型以及指定缺省端口2809。消息类型与用于规则集44B中的规则52B的消息类型54匹配。因此,用于消息50的端口被设置成用于规则52B的端口号56,即端口2807。
此后,将消息50发送到服务器12。如果客户机26不具有与服务器12的用于所述端口号(例如端口2807)的连接,则通信系统28A-B(图1)能首先打开用于该端口的连接。一旦建立了连接,就能将消息50发送到服务器12。如图所示,服务器12能包括多个监控系统34A-D,其中,每个监控系统34A-D单独地监控用于具有唯一消息分类的、例如在唯一端口号上发送的消息50的端口。另外,每个监控系统34A-D将在该端口号上接收的消息50提供给唯一处理系统36A-D,用于处理特定的消息分类、例如消息类型。用这种方式,将具有特定消息分类的消息50有效地转发到处理具有该特定消息分类的消息的处理系统36A-D。例如,示出了消息50在正在受监控系统34B监控的端口2807上进行发送。当由监控系统34B接收消息50时,将其提供给处理系统36B,该处理系统36B处理具有消息类型2的消息。一旦完成了处理,处理系统36B就能使用相同端口、例如端口2807将响应消息发送回客户机26。
还示出了服务器12包括监控系统34D,其监控缺省端口(例如端口2809)。监控系统34D将在缺省端口上接收的消息50转发给能处理以任何消息分类(例如任何类型)的消息50的处理系统36D。这允许不具有当前规则集44B和/或分类系统38(例如先前版本的通信系统28B(图1))的客户机26继续成功地与服务器12通信,而不使用消息分类能力。另外,对一些消息50,客户机26可以绕过分类系统38。例如,当消息50是暂时连接的一部分(例如仅单条消息)时,可以在缺省端口上更有效地发送消息50,对缺省端口而言,客户机26可能已经具有与服务器12的开放连接。通过绕过分类系统38,能避免打开、维护和关闭仅用于有限数目的消息50的单独端口上的连接的开销。尽管示出和论述了多个监控系统34A-D,但是应理解,单独系统能被解释为使用例如用于每个端口的唯一线程来监控多个端口的单个监控系统34。
应理解,能用硬件、软件或硬件和软件的组合实现本发明。任何类型的计算机/服务器系统-或适合于执行在此所述的方法的其他装置都是适合的。硬件和软件的典型组合是具有当被加载和执行时实现在此所述的各种方法的计算机程序的通用计算机系统。作为选择,能利用包含用于执行本发明的功能任务的一个或多个的专用硬件的专用计算机(例如有限状态机)。本发明也能嵌入在计算机程序产品中,该产品包括允许实现在此所述的方法的所有特征,并且当在计算机系统中被加载时能实现这些方法。在本文中,计算机程序、软件程序、程序或软件是指以任何语言、代码或符号、用来使具有信息处理能力的系统直接地或在下述的一个或两个操作后执行特定功能的指令集的表示(a)转换成另一语言、代码或符号,和/或(b)以不同材料形式再现。
为示例和描述目的,已经提供了本发明的各个方面的上述描述。不打算穷举或将本发明限制到在此公开的具体形式,并且很显然,许多改进和修改是可能的。对本领域的技术人员来说显而易见的这些改进和改变意图包括在由附加权利要求定义的本发明的范围内。
权利要求
1.一种在网络上通信的方法,所述方法包括获得用于在客户机上分类消息的规则集;将客户机上的待发送的消息提供给服务器;基于该规则集,在客户机上分类该消息;以及基于消息分类,将该消息发送给服务器。
2.如权利要求1所述的方法,其中,提供步骤包括生成消息。
3.如权利要求1或权利要求2所述的方法,进一步包括定期地从服务器请求更新的规则集。
4.如任一在前权利要求所述的方法,其中,分类步骤包括使消息的属性与规则集中的至少一个规则匹配。
5.如任一在前权利要求所述的方法,进一步包括在发送步骤前,基于分类,调整用于该消息的端口。
6.如任一在前权利要求所述的方法,进一步包括打开用于该消息的与服务器的连接。
7.如任一在前权利要求所述的方法,进一步包括从服务器接收响应消息。
8.如权利要求7所述的方法,其中,在第一端口上传送分类后的消息和响应消息,并且其中笫一端口不是缺省端口。
9.如任一在前权利要求所述的方法,进一步包括在服务器上单独地监控多个端口的消息。
10.一种在网络上通信的方法,所述方法包括创建用于分类消息的规则集;将规则集提供给客户机;以及基于规则集,在服务器上单独地监控具有多个消息分类之一的分类后的消息。
11.如权利要求10所述的方法,进一步包括通过唯一端口,从客户机接收分类后的消息。
12.如权利要求11所述的方法,进一步包括处理分类后的消息;以及将响应消息发送给客户机。
13.如权利要求10至12中的任何一项所述的方法,进一步包括打开与客户机的连接。
14.如权利要求10至13中的任何一项所述的方法,进一步包括从客户机接收对于更新的规则集的请求;以及将该更新的规则集发送给客户机。
15.一种在网络上通信的系统,所述系统包括规则系统,用于管理用于分类消息的规则集;更新系统,用于将规则集提供给客户机;以及多个监控系统,其中,每个监控系统监控具有唯一消息分类的消息。
16.如权利要求15所述的系统,进一步包括多个处理系统,其中,每个处理系统处理具有唯一消息分类的消息。
17.如权利要求15或权利要求16所述的系统,进一步包括分类系统,用于在客户机上分类消息。
18.如权利要求15至17中的任何一项所述的系统,进一步包括维护系统,用于定期地从服务器请求规则集。
19.如权利要求15至18中的任何一项所述的系统,其中,每个监控系统监控服务器的唯一端口。
20.一种计算机程序,包括程序代码装置,当在计算机上运行所述程序时,其适合于执行权利要求1中的所有步骤。
21.一种计算机程序,包括程序代码装置,当在计算机上运行所述程序时,其适合于执行权利要求10中的所有步骤。
全文摘要
一种用于在网络上通信的改进的解决方案。特别地,在服务器上定义规则集,并将其提供给客户机。能使客户机上的规则集定期地与服务器上的规则集同步。客户机在将消息发送到服务器前使用规则集来分类消息。服务器能单独地监控具有特定消息分类的消息,并能相应地处理该消息。因此,在客户机上分类消息,同时在服务器上保持改变消息分类的灵活性。
文档编号H04L12/26GK1875597SQ200480031630
公开日2006年12月6日 申请日期2004年10月7日 优先权日2003年10月27日
发明者马克·霍格斯特罗姆, 安托尼·图埃尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1