《信息处理方法和服务器.pdf》由会员分享,可在线阅读,更多相关《信息处理方法和服务器.pdf(20页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104052723A43申请公布日20140917CN104052723A21申请号201310084536122申请日20130315H04L29/06200601H04L12/5820060171申请人联想(北京)有限公司地址100085北京市海淀区上地西路6号72发明人刘刚74专利代理机构北京市柳沈律师事务所11105代理人安之斐54发明名称信息处理方法和服务器57摘要本发明公开了一种信息处理方法和服务器,所述方法应用于信息处理系统中的发送端服务器,所述信息处理系统至少包括所述发送端服务器和接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客。
2、户端,所述方法包括从所述发送端客户端接收所述信息;生成信息发送任务;在所述发送端服务器与所述接收端服务器之间建立任务调用连接;以及通过所述任务调用连接来向所述接收端服务器发送所述信息发送任务,以使得所述接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。因此,在本发明中,信息处理系统可以通过任务调用的方式来实现服务器的集群方案,以支持更多数目的客户端。51INTCL权利要求书4页说明书10页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书10页附图5页10申请公布号CN104052723ACN104052723A1/4页21一种信息处理方法,所述方。
3、法应用于信息处理系统中的发送端服务器,所述信息处理系统至少包括所述发送端服务器和接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端,其特征在于,所述方法包括当所述发送端客户端向所述接收端客户端发送信息时,从所述发送端客户端接收所述信息;生成信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;基于所述接收端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;以及通过所述任务调用连接来向所述接收端服务器发送所述信息发送任务,以使得所述接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。2根据权利要求1的方。
4、法,其特征在于,所述信息处理系统还包括状态服务器,所述状态服务器用于存储所述发送端服务器和所述接收端服务器的标识符、任务调用地址、和所连接的客户端,并且所述方法还包括向所述状态服务器查询所述接收端客户端所连接到的所述接收端服务器的标识符;以及根据所述接收端服务器的标识符来确定所述接收端服务器的任务调用地址。3根据权利要求2的方法,其特征在于,所述状态服务器还用于存储所述发送端服务器和所述接收端服务器的活动状态,并且所述方法还包括根据所述接收端服务器的标识符来判断所述接收端服务器的活动状态;如果判断出所述接收端服务器处于非活动状态,则丢弃所述信息发送任务;以及如果判断出所述接收端服务器处于活动状。
5、态,则根据所述接收端服务器的标识符来确定所述接收端服务器的任务调用地址。4根据权利要求3的方法,其特征在于,所述方法还包括向所述状态服务器传送心跳信息,所述心跳信息用于向所述状态服务器表明所述发送端服务器处于活动状态。5根据权利要求4的方法,其特征在于,所述心跳信息包括所述发送端服务器的标识符、任务调用地址、和所连接的客户端。6根据权利要求2的方法,其特征在于,所述状态服务器采用键值(KV)数据库来实现。7根据权利要求1的方法,其特征在于,所述任务调用地址是JAVA远程方法调用(RMI)统一资源定位符(URL)。8一种信息处理方法,所述方法应用于信息处理系统中的接收端服务器,所述信息处理系统至。
6、少包括发送端服务器和所述接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端,其特征在于,所述方法包括基于所述发送端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器权利要求书CN104052723A2/4页3之间建立任务调用连接;通过所述任务调用连接来从所述发送端服务器接收信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;以及执行所述信息发送任务,从而向所述接收端客户端发送所述信息。9根据权利要求8的方法,其特征在于,所述信息处理系统还包括状态服务器,所述状态服务器用于存储所述发送端服务器和所述接收端服务器的活动状态,并且所述方法还包括。
7、向所述状态服务器传送心跳信息,所述心跳信息用于向所述状态服务器表明所述接收端服务器处于活动状态。10根据权利要求9的方法,其特征在于,所述状态服务器还用于存储所述发送端服务器和所述接收端服务器的标识符、任务调用地址、和所连接的客户端,并且所述心跳信息包括所述接收端服务器的标识符、任务调用地址、和所连接的客户端。11根据权利要求9的方法,其特征在于,所述状态服务器采用键值(KV)数据库来实现。12根据权利要求8的方法,其特征在于,所述任务调用地址是JAVA远程方法调用(RMI)统一资源定位符(URL)。13一种发送端服务器,所述发送端服务器属于信息处理系统,所述信息处理系统至少包括所述发送端服务。
8、器和接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端,其特征在于,所述发送端服务器包括信息接收单元,用于当所述发送端客户端向所述接收端客户端发送信息时,从所述发送端客户端接收所述信息;任务生成单元,用于生成信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;连接建立单元,用于基于所述接收端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;以及任务发送单元,用于通过所述任务调用连接来向所述接收端服务器发送所述信息发送任务,以使得所述接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。14根据权利要求。
9、13的发送端服务器,其特征在于,所述信息处理系统还包括状态服务器,所述状态服务器用于存储所述发送端服务器和所述接收端服务器的标识符、任务调用地址、和所连接的客户端,并且所述发送端服务器还包括标识符查询单元,用于向所述状态服务器查询所述接收端客户端所连接到的所述接收端服务器的标识符;以及地址确定单元,用于根据所述接收端服务器的标识符来确定所述接收端服务器的任务调用地址。15根据权利要求14的发送端服务器,其特征在于,所述状态服务器还用于存储所述发送端服务器和所述接收端服务器的活动状态,并且权利要求书CN104052723A3/4页4所述发送端服务器还包括状态判断单元,用于根据所述接收端服务器的标。
10、识符来判断所述接收端服务器的活动状态,如果判断出所述接收端服务器处于非活动状态,则丢弃所述信息发送任务;以及如果判断出所述接收端服务器处于活动状态,则通知所述地址确定单元根据所述接收端服务器的标识符来确定所述接收端服务器的任务调用地址。16根据权利要求15的发送端服务器,其特征在于,所述发送端服务器还包括心跳传送单元,用于向所述状态服务器传送心跳信息,所述心跳信息用于向所述状态服务器表明所述发送端服务器处于活动状态。17根据权利要求16的发送端服务器,其特征在于,所述心跳信息包括所述发送端服务器的标识符、任务调用地址、和所连接的客户端。18根据权利要求14的发送端服务器,其特征在于,所述状态服。
11、务器采用键值(KV)数据库来实现。19根据权利要求13的发送端服务器,其特征在于,所述任务调用地址是JAVA远程方法调用(RMI)统一资源定位符(URL)。20一种接收端服务器,所述接收端服务器属于信息处理系统,所述信息处理系统至少包括发送端服务器和所述接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端,其特征在于,所述接收端服务器包括连接建立单元,用于基于所述发送端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;任务接收单元,用于通过所述任务调用连接来从所述发送端服务器接收信息发送任务,所述信息发送任务用于向所述接收端客户端发。
12、送所述信息;以及任务执行单元,用于执行所述信息发送任务,从而向所述接收端客户端发送所述信息。21根据权利要求20的接收端服务器,其特征在于,所述信息处理系统还包括状态服务器,所述状态服务器用于存储所述发送端服务器和所述接收端服务器的活动状态,并且所述接收端服务器还包括心跳传送单元,用于向所述状态服务器传送心跳信息,所述心跳信息用于向所述状态服务器表明所述接收端服务器处于活动状态。22根据权利要求21的接收端服务器,其特征在于,所述状态服务器还用于存储所述发送端服务器和所述接收端服务器的标识符、任务调用地址、和所连接的客户端,并且所述心跳信息包括所述接收端服务器的标识符、任务调用地址、和所连接的。
13、客户端。23根据权利要求21的接收端服务器,其特征在于,所述状态服务器采用键值(KV)数据库来实现。24根据权利要求20的接收端服务器,其特征在于,所述任务调用地址是JAVA远程方法调用(RMI)统一资源定位符(URL)。25一种信息处理系统,其特征在于,所述信息处理系统包括根据权利要求13到19中任一项的发送端服务器;根据权利要求20到24中任一项的接收端服务器;以及状态服务器,所述状态服务器用于存储所述发送端服务器和所述接收端服务器的标识权利要求书CN104052723A4/4页5符、任务调用地址、和所连接的客户端。26根据权利要求25的信息处理系统,其特征在于,所述状态服务器还用于存储所。
14、述发送端服务器和所述接收端服务器的活动状态。27根据权利要求25的方法,其特征在于,所述状态服务器采用键值(KV)数据库来实现。权利要求书CN104052723A1/10页6信息处理方法和服务器技术领域0001本发明涉及计算机技术领域,更具体地,本发明涉及一种信息处理方法和服务器。背景技术0002即时通信(IM)是一种终端服务,其允许两个或多个用户使用网络来即时地相互传递文本信息和多媒体信息(诸如,音频和视频信息)等,以实现沟通目的。0003随着IM技术的不断发展,可扩展消息传送和呈现协议(XMPP)协议应运而生。XMPP是基于可扩展标记语言(XML)的协议,它旨在促进服务器之间的准即时操作。。
15、0004典型地,OPENFIRE是一种基于XMPP协议实现的、使用JAVA语言编写的IM服务器。由于其功能强大、成熟稳定、并且开源,所以它在业界得到广泛应用。然而,由于传送控制协议(TCP)长连接与JAVA语言的限制,导致目前单台的OPENFIRE服务器所支持的客户端连接数仅为6000到10000个用户之间,而这对于大型的IM服务提供商而言显然是远远不够的。0005针对此技术问题,现有技术中的第一解决方案在于,通过采用OPENFIRE连接管理模块(CONNECTIONMANAGERMODULE)、利用主从模式来增加IM系统中的客户端的连接数量。具体地,在IM系统中,将一台OPENFIRE服务器。
16、作为管理服务器,并且将其他安装了连接管理模块的服务器作为连接服务器,由于每个连接管理模块可以连接5000多个用户,所以在IM系统中实现了更多用户数量的支持。然而,此解决方案所支持的总连接数量仍然存在上限,约为30万左右。也就是说,此解决方案为整个IM系统所带来的扩容能力有限,当希望IM系统向30万以上的用户提供IM服务时,仅仅通过增加安装了连接管理模块的服务器将无法实现这一目标。0006此外,现有技术中的第二解决方案在于,通过增加更多的OPENFIRE服务器并以OPENFIRE集群的方式来在一个IM系统中支持海量的用户。例如,甲骨文(ORACLE)公司提出的相干集群关键中间件(ORACLECO。
17、HERENCECLUSTERINGPLUGIN)就是这样的集群解决方案。然而,由于COHERENCE为商业软件,内部实现不可见,所以如果发生程序错误(BUG),IM服务提供商无法自己修复,而必须等待相应厂商发布补丁包来进行升级和解决,这无疑是效率低下的。而且,COHERENCE分为标准版、企业版、网格版。其中标准版免费,却只能单机使用,无法实现上述集群功能;而企业版和网格版实现了集群功能,但是为收费软件,价格按照中央处理单元(CPU)的数量收费,而且单价高昂,所以在IM系统中集群节点数量很大的情况下,这将是一笔巨额花费。0007因此,需要一种新型的信息处理方法和服务器来解决上述问题。发明内容0。
18、008为了解决上述技术问题,根据本发明的一个方面,提供了一种信息处理方法,所述方法应用于信息处理系统中的发送端服务器,所述信息处理系统至少包括所述发送端服务器和接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接说明书CN104052723A2/10页7收端客户端,所述方法包括当所述发送端客户端向所述接收端客户端发送信息时,从所述发送端客户端接收所述信息;生成信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;基于所述接收端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;以及通过所述任务调用连接来向所述接收端服务器发送所述信息。
19、发送任务,以使得所述接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。0009此外,根据本发明的另一方面,提供了一种信息处理方法,所述方法应用于信息处理系统中的接收端服务器,所述信息处理系统至少包括发送端服务器和所述接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端,所述方法包括基于所述发送端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;通过所述任务调用连接来从所述发送端服务器接收信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;以及执行所述信息发送任务,从而向所述接收端客户端发送所述信息。。
20、0010根据本发明的又一方面,提供了一种发送端服务器,所述发送端服务器属于信息处理系统,所述信息处理系统至少包括所述发送端服务器和接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端,所述发送端服务器包括信息接收单元,用于当所述发送端客户端向所述接收端客户端发送信息时,从所述发送端客户端接收所述信息;任务生成单元,用于生成信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;连接建立单元,用于基于所述接收端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;以及任务发送单元,用于通过所述任务调用连接来向所述接收端服务器发送。
21、所述信息发送任务,以使得所述接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。0011根据本发明的又一方面,提供了一种接收端服务器,所述接收端服务器属于信息处理系统,所述信息处理系统至少包括发送端服务器和所述接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端,所述接收端服务器包括连接建立单元,用于基于所述发送端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;任务接收单元,用于通过所述任务调用连接来从所述发送端服务器接收信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;以及任务执行单元,用于执行。
22、所述信息发送任务,从而向所述接收端客户端发送所述信息。0012根据本发明的又一方面,提供了一种信息处理系统,所述信息处理系统包括上述的发送端服务器;上述的接收端服务器;状态服务器,所述状态服务器用于存储所述发送端服务器和所述接收端服务器的标识符、任务调用地址、和所连接的客户端。0013与现有技术相比,采用根据本发明的信息处理方法、发送端服务器和接收端服务器,在发送端客户端向接收端客户端发送信息时,发送端服务器从发送端客户端接收所述信息并生成信息发送任务,基于接收端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接,通过所述任务调用连接来向所述接收端服务器发送所述信息。
23、发送任务,并且由接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。因此,在本发明中,信息处理系统可以通过任务调用的方式来实现服务说明书CN104052723A3/10页8器的集群方案,以支持更多数目的客户端,而没有最高上限,并且成本低廉且维护效率高。0014本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明0015附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明。
24、的限制。在附图中0016图1图示了在现有技术中存在的技术问题。0017图2图示了根据现有技术的解决方案。0018图3图示了根据本发明的信息处理方法。0019图4图示了根据本发明的发送端服务器。0020图5图示了根据本发明的信息处理方法。0021图6图示了根据本发明的接收端服务器。0022图7图示了根据本发明实施例的信息处理方法。0023图8图示了根据本发明实施例的信息处理系统的架构。0024图9图示了根据本发明实施例的信息处理系统的功能框图。具体实施方式0025将参照附图详细描述根据本发明的各个实施例。这里,需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,。
25、并且将省略关于它们的重复描述。0026首先,将参考图1和2来描述现有技术的问题及其解决方案。0027图1图示了在现有技术中存在的技术问题,而图2图示了根据现有技术的解决方案。0028如图1所图示的,在现有技术中基于XMPP协议的IM系统通常包括一个OPENFIRE服务器和多个XMPP客户端。在该IM系统中,某一个使用XMPP客户端的用户可以通过OPENFIRE服务器而与另一个使用XMPP客户端的用户进行即时通信。然而,由于基于XMPP和JAVA语言实现的OPENFIRE服务器受限于TCP长连接和JAVA语言,所以单台的OPENFIRE服务器所支持的客户端连接数受到限制(大约为6000到1000。
26、0)。0029为了使得IM系统能够支持更多数目的客户端,现有技术的第一解决方案提出在OPENFIRE服务器与XMPP客户端之间添加连接服务器,该连接服务器是安装有连接管理模块的服务器。0030如图2所图示的,在第一解决方案中,基于XMPP协议的IM系统包括一个OPENFIRE服务器、多个连接服务器和多个XMPP客户端。其中,单台OPENFIRE服务器可以与多个连接服务器通信,并且负责处理属于相同或不同连接服务器的客户端之间的IM通信。由于每台连接服务器中的连接管理模块可以支持的客户端连接数大约为5000,所以当在该IM系统中的用户连接数用尽时,可以通过添加一个连接服务器并将它连接到该OPENF。
27、IRE服务器,来支持更多的XMPP客户端。说明书CN104052723A4/10页90031尽管该第一解决方案在一定程度上扩大了IM系统的客户端容量,但是它所支持的总连接数量仍然存在最高上限(大约为30万),也就是说,当在IM系统中的客户端总数超过30万时,即使继续增加连接服务器以连接更多的客户端,单台OPENFIRE服务器也无法再对这些新增客户端的IM通信逻辑进行管理。0032另外,如背景技术中所描述的,尽管现有技术中的第二解决方案提出通过OPENFIRE服务器集群的方式来在一个IM系统中支持海量的用户,但是它亦存在成本高昂、维护效率低等问题。0033对此,本发明人提出了一种新型的信息处理方。
28、法和服务器。0034在下文中,将参考图3到图6来描述根据本发明的信息处理方法和服务器。0035图3图示了根据本发明的信息处理方法,而图4图示了根据本发明的发送端服务器。0036图3所图示的信息处理方法应用于信息处理系统中的发送端服务器,所述信息处理系统至少包括所述发送端服务器和接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端。具体地,如图4所图示的,所述发送端服务器100包括信息接收单元110、任务生成单元120、连接建立单元130、和任务发送单元140。0037如图3所图示的,所述信息处理方法包括0038在步骤S110中,当所述发送端客户端向所述接收端客户。
29、端发送信息时,信息接收单元110从所述发送端客户端接收所述信息;0039在步骤S120中,任务生成单元120生成信息发送任务,所述信息发送任务用于向所述接收端客户端发送所述信息;0040在步骤S130中,连接建立单元130基于所述接收端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;以及0041在步骤S140中,任务发送单元140通过所述任务调用连接来向所述接收端服务器发送所述信息发送任务,以使得所述接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。0042图5图示了根据本发明的信息处理方法,而图6图示了根据本发明的接收端服务器。0043图5。
30、所图示的信息处理方法应用于信息处理系统中的接收端服务器,所述信息处理系统至少包括发送端服务器和所述接收端服务器,所述发送端服务器连接到发送端客户端,所述接收端服务器连接到接收端客户端。具体地,如图6所图示的,所述接收端服务器200包括连接建立单元210、任务接收单元220、和任务执行单元230。0044如图5所图示的,所述信息处理方法包括0045在步骤S210中,连接建立单元210基于所述发送端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接;0046在步骤S220中,任务接收单元220通过所述任务调用连接来从所述发送端服务器接收信息发送任务,所述信息发送任务用于。
31、向所述接收端客户端发送所述信息;以及0047在步骤S230中,任务执行单元230执行所述信息发送任务,从而向所述接收端客户端发送所述信息。0048由此可见,采用根据本发明的信息处理方法、发送端服务器和接收端服务器,在发说明书CN104052723A5/10页10送端客户端向接收端客户端发送信息时,发送端服务器从发送端客户端接收所述信息并生成信息发送任务,基于接收端服务器的任务调用地址来在所述发送端服务器与所述接收端服务器之间建立任务调用连接,通过所述任务调用连接来向所述接收端服务器发送所述信息发送任务,并且由接收端服务器执行所述信息发送任务,从而向所述接收端客户端发送所述信息。因此,在本发明中。
32、,信息处理系统可以通过任务调用的方式来实现服务器的集群方案,以支持更多数目的客户端,而没有最高上限,并且成本低廉且维护效率高。0049在下文中,将参考图7和图8来描述根据本发明实施例的信息处理方法和信息处理系统。0050图7图示了根据本发明实施例的信息处理方法,图8图示了根据本发明实施例的信息处理系统1000的架构,而图9图示了根据本发明实施例的信息处理系统1000的功能框图。0051图7所图示的根据本发明实施例的信息处理方法可以通过图8所图示的信息处理系统1000来实现。如图8所图示的,信息处理系统1000可以至少包括多个服务节点100、200和至少一个状态服务器300。例如,该信息处理系统。
33、1000可以是基于XMPP协议并具有集群功能的信息处理系统,而服务节点100、200可以是OPENFIRE服务器。0052在多个服务节点100、200之间,可以按照约定的通信实现方法来传输即时通信数据。以向属于这些服务节点的客户端提供IM服务。0053例如,在本发明的实施例中,该约定的通信实现方法可以使用JAVA远程方法调用(RMI)。该RMI是用于支持开发分布式应用程序的JAVA应用程序接口(API)。JAVA作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯JAVA的网络分布式应用系统的核心解决方案之一。实际上,它可以被看作是。
34、远程过程调用(RPC)的JAVA版本。但是传统RPC并不能很好地应用于分布式对象系统;而JAVARMI则支持在存储于不同地址空间的程序级对象之间彼此进行通信,以实现远程对象之间的无缝远程调用。0054具体而言,RMI集合了JAVA序列化和JAVA远程方法协议,并且通常包括两个独立的程序服务器程序和客户端程序。典型的服务器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户端调用这些远程对象的方法。而典型的客户端程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。因此,RMI为服务器和客户端进行通信和信息传递提供了一种机制,并充分简化了程序开发的复杂度。0055另。
35、外,每个服务节点100、200可以作为集群节点而加入该信息处理系统1000,以与其他服务节点和状态服务器300建立通信连接。一旦检测到存在新加入的服务节点,状态服务器300将向其分配一个唯一的标识符(例如,服务节点编号等),以在该信息处理系统1000中唯一地标识这个服务节点。然后,状态服务器300在自己所保存的数据库中创建一个新的信息条目,并在该信息条目中记录该服务节点的标识符以及其他相关信息。0056例如,为了节约成本和提高查询效率,在本发明的实施例中,可以使用开源的键值(KV)数据库(例如REDIS数据库或MEMCACHED数据库)来构建该状态服务器300。0057此后,每个服务节点在运行。
36、过程中,例如通过心跳功能,周期性地、随机地或实时地向状态服务器300提交自己的运行信息,以使得状态服务器300能够得知该服务节点的活动状态。如果在一段时间中没有接收到某一个服务节点的运行信息(或心跳信息),则状说明书CN104052723A106/10页11态服务器300认为该服务节点出现问题(例如,宕机),已经离开的整个集群系统。0058因此,除了每个服务节点的标识符之外,该状态服务器300还可以保存有该服务节点的活动状态、以及RMI任务调用地址(RMIURL)、该服务节点为其提供IM服务的客户端等,作为与服务节点相关的其他信息。0059下面,为了方便,仅仅在单向IM通信的过程中说明根据本发。
37、明实施例的信息处理方法和信息处理系统。0060假设在该单向IM通信过程中,服务节点100是发送端服务器,服务节点200是接收端服务器,并且发送端服务器100、接收端服务器200、和状态服务器300通过网络(例如,有线网络和/或无线网络)而连接在一起。0061另外,该发送端服务器100连接到发送端客户端10,而该接收端服务器200连接到接收端客户端20。通过发送端服务器100和接收端服务器200之间的交互通信,使用发送端客户端10的第一用户可以按照约定的通信实现方法来与使用接收端客户端20的第二用户进行即时通信,以传送文本信息和/或多媒体信息等。0062具体地,如图9所图示的,与图4中一样的,该。
38、发送端服务器100包括信息接收单元110、任务生成单元120、连接建立单元130、和任务发送单元140。此外,优选地,为了实现一种或多种附加功能,该发送端服务器100还包括标识符查询单元150、状态判断单元160、地址确定单元170、和/或心跳传送单元180。0063与图6中一样的,该接收端服务器200包括连接建立单元210、任务接收单元220、和任务执行单元230。此外,优选地,为了实现附加功能,该接收端服务器200还包括心跳传送单元240。0064另外,该状态服务器300可以包括信息存储单元310,以用于存储与信息处理系统1000中的服务器相关联的各种信息。0065如图7所图示的,根据本发。
39、明实施例的信息处理方法包括0066在步骤S310中,从发送端客户端接收信息。0067当第一用户希望向第二用户进行即时通信,以传送文本信息和/或多媒体信息等时,第一用户可以通过目前正在使用的发送端客户端10输入IM信息,并且将该IM信息发送到正在为自己提供IM服务的信息处理系统1000,以便将该IM信息最终传送到正在使用接收端客户端20的第二用户。0068如图9所图示的,在信息处理系统1000中,正在向第一用户的发送端客户端10提供IM服务的服务节点是发送端服务器100。0069相应地,在该发送端服务器100中,信息接收单元110从发送端客户端10接收该IM信息。0070为了使得信息处理系统10。
40、00能够以OPENFIRE服务器集群的方式来支持可以任意扩容的客户端数量,在本发明的实施例中,发送端服务器100不是简单地将IM信息直接发送到接收端服务器200,而是将创建一个用于发送该信息的远程对象(RMI任务),并使该远程对象能够被接收端服务器200引用,以便该接收端服务器200调用远程对象的方法。0071故此,该信息接收单元110将该IM信息发送到任务生成单元120,以进行后续处理。0072在步骤S320中,生成信息发送任务。说明书CN104052723A117/10页120073在从信息接收单元110接收到该IM信息之后,任务生成单元120生成信息发送任务,所述信息发送任务用于使得执行。
41、实体向所述接收端客户端20发送所述信息。0074例如,该信息发送任务的名称可以为“TASKIMINFORMATION”,其具体格式为“SENDIMINFORMATIONTOCLIENT20”。0075在步骤S330中,确定接收端服务器的任务调用地址。0076接下来,地址确定单元170确定接收端服务器200的任务调用地址。0077在一个示例中,发送端服务器100可以在自己的数据库中保存在整个信息处理系统1000中所有服务节点的任务调用地址,以保证最快的查询速度。0078在另一示例中,服务节点的任务调用地址可以以分布式存储的方式而分散在信息处理系统1000中的各个服务节点中。这样,可以减少每个服务。
42、节点用于存储相关信息所占用的存储空间,并且仍然能够保证较快的查询速度。0079在又一示例中,为了统一地维护关于服务节点的各种信息并释放每个服务节点的存储空间,可以由状态服务器300存储所有服务节点的任务调用地址,以便地址确定单元170通过发送端服务器100与状态服务器300之间的通信来查询接收端服务器200的任务调用地址。0080为此,该状态服务器300可以在数据库中存储有每个服务节点的标识符、任务调用地址(RMIURL)、以及该服务节点所服务的客户端的集合。0081在发送端服务器100中,标识符查询单元150可以向状态服务器300查询所述接收端客户端20所连接到的接收端服务器200的标识符。。
43、0082例如,该标识符查询单元150可以首先确定接收端客户端20的标识信息。这个标识信息可以是正在使用接收端客户端20本身的标识符、和/或该第二用户的用户ID、用户编号、用户账户名称等。这样,标识符查询单元150可以利用接收端客户端20的标识信息向状态服务器300进行查询,以确定所述接收端客户端20所连接到的服务节点是接收端服务器200,确定该接收端服务器200的标识符,并且将该标识符返回到地址确定单元170。0083然后,地址确定单元170根据所述接收端服务器200的标识符来查询状态服务器300,以确定所述接收端服务器200的任务调用地址。0084另外,如上所述,因为服务节点可能由于网络故障。
44、、服务器宕机等原因而从信息处理系统1000中脱离,所以优选地,在地址确定单元170确定所述接收端服务器200的任务调用地址之前,状态判断单元160可以根据所述接收端服务器200的标识符来判断所述接收端服务器的活动状态,并且只有当判断出所述接收端服务器200处于活动状态时,才通知所述地址确定单元170根据所述接收端服务器200的标识符来确定所述接收端服务器200的任务调用地址。0085为此,每个服务节点100、200在运行过程中,例如通过心跳功能,周期性地、随机地或实时地向状态服务器300提交自己的运行信息,以使得状态服务器300能够得知该服务节点的活动状态。具体地,在发送端服务器100中,心跳。
45、传送单元180可以不断地向所述状态服务器300传送心跳信息,所述心跳信息用于向所述状态服务器表明所述发送端服务器100处于活动状态。如果在一段时间中没有接收到某一个服务节点的心跳信息,则状态服务器300在数据库中将该服务节点标识为非活动状态。0086这样,该状态服务器300可以在数据库中存储有每个服务节点的标识符、活动状说明书CN104052723A128/10页13态、RMIURL、以及该服务节点所服务的客户端的集合,如表1所示。0087服务器标识符活动状态任务调用地址所服务的客户端SERVER100活动URL1CLIENT10、CLIENT30SERVER200活动URL2CLIENT20。
46、0088表10089优选地,为了提高数据库的查询速度并简化数据库的访问操作,可以使用键值(KV)数据库来构建该状态服务器300。例如,可以将服务器的标识符作为一个键,而将其余的参数作为相应的值。同理,也可以将所服务的客户端作为一个键,而将其余的参数作为相应的值。0090相应地,在发送端服务器100中,状态判断单元160可以根据标识符查询单元150所确定的接收端服务器200的标识符,来向状态服务器300查询所述接收端服务器200的活动状态。0091如果判断出所述接收端服务器200处于活动状态,则该状态判断单元160通知所述地址确定单元170根据所述接收端服务器的标识符来确定所述接收端服务器200。
47、的任务调用地址。如果判断出所述接收端服务器处于非活动状态,则该发送端服务器100可以停止该IM信息的发送,以便节省自己的处理资源和网络带宽。例如,该状态判断单元160可以直接丢失或通知任务生成单元120丢弃所述信息发送任务。0092在步骤S340中,在发送端服务器与接收端服务器之间建立任务调用连接。0093在地址确定单元170确定出所述接收端服务器200的任务调用地址(RMIURL)之后,发送端服务器100基于该任务调用地址来在所述发送端服务器100与所述接收端服务器200之间建立任务调用连接。相应地,接收端服务器200同样基于所述发送端服务器的任务调用地址来在所述发送端服务器100与所述接收。
48、端服务器200之间建立任务调用连接。0094具体地,在发送端服务器100中,在该连接建立单元130生成任务调用连接请求,并且根据该RMIURL而将该请求寻址到接收端服务器200。在该接收端服务器200中,连接建立单元210接收来自发送端服务器100的任务调用连接请求,并且向该发送端服务器100返回任务调用连接响应。由此,在发送端服务器100与接收端服务器200之间建立起用于传送RMI任务的接口(或称之为连接)。0095在步骤S350中,向接收端服务器发送信息发送任务。0096当在发送端服务器100与接收端服务器200之间建立起任务调用连接之后,在发送端服务器100中,任务发送单元140通过所述。
49、任务调用连接来向所述接收端服务器200发送由任务生成单元120所生成的信息发送任务。0097相应地,在接收端服务器200中,任务接收单元220通过所述任务调用连接来从所述发送端服务器100接收用于向所述接收端客户端20发送所述信息的信息发送任务。0098在步骤S360中,执行信息发送任务。0099在任务接收单元220接收到该信息发送任务之后,任务执行单元230执行所述信说明书CN104052723A139/10页14息发送任务,从而向所述接收端客户端20发送所述信息。0100具体地,该任务执行单元230调用接收端服务器200上的RMI服务,使得该接收端服务器200作为任务执行实体,执行从发送端。
50、服务器100接收到的用于向接收端客户端20发送IM信息的RMI任务。0101在步骤S370中,向接收端客户端发送信息。0102这样,一旦该任务执行单元230执行了用于该RMI任务,接收端服务器200即可以将该RMI任务中包括的由第一用户向第二用户发送的IM消息传送到该接收端客户端20,并且向第二用户进行呈现。0103尽管为了方便,在上文中仅仅在从发送端客户端10到发送端服务器100到接收端服务器200到接收端客户端20的单向IM通信的过程中说明根据本发明实施例的信息处理方法和信息处理系统,但是,显然该本发明的实施例也可以应用于在从接收端客户端20到接收端服务器200到发送端服务器100到发送端。