一种永远在线业务的实现方法及装置与流程

文档序号:11064825阅读:906来源:国知局
一种永远在线业务的实现方法及装置与制造工艺

本发明涉及数据业务领域,尤其涉及一种永远在线业务的实现方法及装置。



背景技术:

永远在线(Always On/IP Push)技术是一种服务器主动将信息发往客户端的技术,目前在移动通信领域中应用十分广泛。通过永远在线技术,服务器可以将重要的信息主动及时地推送到用户终端上,使得用户终端能够随时随地接收信息,为用户提供了极大的方便。

永远在线技术是一种基于传输控制协议/因特网互联协议(TCP/IP,Transmission Control Protocol/Internet Protocol)的长连接技术,用户终端包含一个与业务相关的客户端,客户端需要与服务器保持一个TCP长连接,连接有效时服务器可以向客户端推送信息。

为方便描述,永远在线技术中的客户端定义为永远在线引擎(AOE,Always-On Engine),服务器端则定义为永远在线网关(AOG,Always-On Gateway),AOE运行在用户终端,维持与AOG网关的TCP长连接,并接收AOG网关推送的消息。AOG维持与用户终端AOE的TCP长连接,并在需要时将重要消息推送到用户终端的AOE。

AOG需要保存用户终端的相关数据,如用户终端的标识、离线消息等。为了保证用户终端数据的安全性,避免潜在的网络攻击,保证AOG系统的稳定性,AOG及其数据库需要部署在防火墙设备之内。用户终端的AOE与AOG的TCP长连接需要通过防火墙设备。

如图1所示,用户终端的AOE通过防火墙与AOG保持TCP长连接,每个在线用户终端(如终端A和终端B)独占防火墙设备的一个TCP长连接,随着在线用户终端数量的持续增长,通过防火墙的并发连接数会持续增加,防火墙 压力大。由于防火墙设备支持的并发连接数量是有限制的,为支持更多在线用户,需要部署更高端的防火墙设备,极大增加了运营成本。



技术实现要素:

有鉴于此,本发明实施例期望提供一种永远在线业务的实现方法及装置,可以降低防火墙压力,进而降低系统运营成本。

为达到上述目的,本发明的技术方案是这样实现的:

一种永远在线业务的实现方法,所述方法应用于部署在防火墙之外的连接服务器CS,包括:

至少一次向部署在防火墙之内的推送业务服务器PS发送CS注册请求消息,所述CS注册请求消息中包括所述CS的IP地址,所述CS的IP地址用于使所述CS注册请求消息通过防火墙至所述PS;

对应接收至少一次所述PS返回的CS注册应答消息,建立与所述PS之间的至少一个第一长连接;

接收永远在线引擎AOE发送的AOE注册请求消息,根据所述AOE注册请求消息为所述AOE创建对应的CS会话Session,记录所述CS Session对应的CS Session ID;

从所述至少一个第一长连接中选择一个第一长连接为所述AOE的第一长连接,并通过所述AOE的第一长连接向所述PS转发所述AOE注册请求消息;

通过所述AOE的第一长连接接收所述PS返回的AOE注册应答消息,所述AOE注册应答消息中携带有所述PS为所述AOE创建的PS Session的PS Session ID;

所述CS保存所述PS Session ID,并将所述AOE注册应答消息中的PS Session ID删除后转发给所述AOE;

接收所述AOE发送的AOE消息,在所述AOE消息上增加一个CS-PS消息头后通过所述AOE的第一长连接转发给所述PS,所述CS-PS消息头中包括AOE标识、PS Session ID和CS Session ID;

通过所述AOE的第一长连接接收所述PS返回的PS消息,删除所述PS消息中的CS-PS消息头后转发给所述AOE。

上述方案中,在建立与所述PS之间的至少一个第一长连接后,所述方法还包括:

通过任意一个第一长连接定时向所述PS发送CS负载信息。

一种永远在线业务的实现方法,所述方法应用于部署在防火墙之外的推送业务服务器PS,包括:

接收部署在防火墙之外的连接服务器CS发送的CS注册请求消息,并向所述CS返回CS注册应答消息,建立与所述CS之间的第一长连接;

接收所述CS通过第一长连接中永远在线引擎AOE的第一长连接转发的AOE注册请求,根据所述AOE注册请求消息为所述AOE创建对应的PS会话Session,记录所述PS Session对应的PS Session ID;

通过所述AOE的第一长连接向所述CS发送AOE注册应答消息,所述AOE注册应答消息中携带有所述PS Session ID;

接收所述CS通过所述AOE的第一长连接转发的AOE消息,所述AOE消息中携带有所述CS-PS消息头,所述CS-PS消息头中包括AOE标识、PS Session ID和CS Session ID;

根据所述AOE标识和PS Session ID定位到AOE的Session,并完成对所述AOE消息的处理;

通过所述AOE的第一长连接向所述CS返回PS消息,所述PS消息中携带有所述CS-PS消息头。

上述方案中,在建立与所述CS之间的至少一个第一长连接之后,所述方法还包括:

接收所述CS发送的CS负载信息,并将所述CS负载信息发送给状态同步设备;

接收所述状态同步设备同步的各CS的CS负载信息;

接收AOE发送的通过请求消息,并根据所述各CS的CS负载信息选择出负载最轻的CS,返回通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址。

一种永远在线业务的实现方法,所述方法应用于用户终端上的永远在线引擎AOE,包括:

向连接服务器CS发送AOE注册请求消息;

接收所述CS转发的AOE注册应答消息;

向所述CS发送AOE消息;

接收所述CS转发的推送业务服务器PS消息。

上述方案中,在向CS发送AOE注册请求消息之前,所述方法还包括:

向PS发送通过请求消息;

接收所述PS返回的通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址;

相应的,所述向CS发送AOE注册请求消息,包括:

向所述负载最轻的CS的IP地址对应的CS发送AOE注册请求消息。

一种连接服务器CS,包括:

第一发送单元,用于至少一次向部署在防火墙之内的推送业务服务器PS发送CS注册请求消息,所述CS注册请求消息中包括所述CS的IP地址,所述CS的IP地址用于使所述CS注册请求消息通过防火墙至所述PS;

第一接收单元,用于对应接收至少一次所述PS返回的CS注册应答消息,建立与所述PS之间的至少一个第一长连接;

所述第一接收单元,还用于接收永远在线引擎AOE发送的AOE注册请求消息,根据所述AOE注册请求消息为所述AOE创建对应的CS会话Session,记录所述CS Session对应的CS Session ID;

所述第一发送单元,还用于从所述至少一个第一长连接中选择一个第一长连接为所述AOE的第一长连接,并通过所述AOE的第一长连接向所述PS转 发所述AOE注册请求消息;

所述第一接收单元,还用于通过所述AOE的第一长连接接收所述PS返回的AOE注册应答消息,所述AOE注册应答消息中携带有所述PS为所述AOE创建的PS Session的PS Session ID;

所述第一发送单元,还用于保存所述PS Session ID,并将所述AOE注册应答消息中的PS Session ID删除后转发给所述AOE;

所述第一接收单元,还用于接收所述AOE发送的AOE消息;

所述第一发送单元,还用于在所述第一接收单元接收的AOE消息上增加一个CS-PS消息头后通过所述AOE的第一长连接转发给所述PS,所述CS-PS消息头中包括AOE标识、PS Session ID和CS Session ID;

所述第一接收单元,还用于通过所述AOE的第一长连接接收所述PS返回的PS消息;

所述第一发送单元,还用于在删除所述第一接收单元接收的PS消息中的CS-PS消息头后转发给所述AOE。

上述方案中,所述第一发送单元,还用于在建立与所述PS之间的至少一个第一长连接后,通过任意一个第一长连接定时向所述PS发送CS负载信息。

一种推送业务服务器PS,包括:

第二接收单元,用于接收部署在防火墙之外的连接服务器CS发送的CS注册请求消息;

第二发送单元,用于向所述CS返回CS注册应答消息,建立与所述CS之间的第一长连接;

所述第二接收单元,还用于接收所述CS通过第一长连接中永远在线引擎AOE的第一长连接转发的AOE注册请求,根据所述AOE注册请求消息为所述AOE创建对应的PS会话Session,记录所述PS Session对应的PS Session ID;

所述第二发送单元,还用于通过所述AOE的第一长连接向所述CS发送AOE注册应答消息,所述AOE注册应答消息中携带有所述PS Session ID;

所述第二接收单元,还用于接收所述CS通过所述AOE的第一长连接转发的AOE消息,所述AOE消息中携带有CS-PS消息头,所述CS-PS消息头中包括AOE标识、PS Session ID和CS Session ID;

所述第二发送单元,还用于根据所述第二接收单元接收的AOE标识和PS Session ID定位到AOE的Session,完成对所述AOE消息的处理;并通过所述AOE的第一长连接向所述CS返回PS消息,所述PS消息中携带有所述CS-PS 消息头。

上述方案中,所述第二接收单元,还用于在建立与所述CS之间的至少一个第一长连接之后,接收所述CS发送的CS负载信息;

所述第二发送单元,还用于将所述第二接收单元接收的CS负载信息发送给状态同步设备;

所述第二接收单元,还用于接收所述状态同步设备同步的各CS的CS负载信息;

所述第二接收单元,还用于接收AOE发送的通过请求消息;

所述第二发送单元,还用于根据所述第二接收单元接收的各CS的CS负载信息选择出负载最轻的CS,返回通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址。

一种永远在线引擎AOE,包括:

第三发送单元,用于向连接服务器CS发送AOE注册请求消息;

第三接收单元,用于接收所述CS转发的AOE注册应答消息;

所述第三发送单元,还用于向所述CS发送AOE消息;

所述第三接收单元,还用于接收所述CS转发的推送业务服务器PS消息。

上述方案中,所述第三发送单元,还用于在向CS发送AOE注册请求消息之前,向PS发送通过请求消息;

所述第三接收单元,还用于接收所述PS返回的通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址;

相应的,所述第三发送单元,具体用于向所述负载最轻的CS的IP地址对应的CS发送AOE注册请求消息。

本发明实施例提供了一种永远在线业务的实现方法及装置,用户终端的AOE通过CS与PS建立长连接,一个CS下可连接有多个用户终端,每个用户终端上的AOE都对应有一个TCP长连接与CS通信,用户终端上的AOE与CS之间的TCP长连接并不通过防火墙;每个CS与PS之间通过少量TCP长连接通信,多个用户终端可以共用CS与PS之间的一个TCP长连接进行推送业务。随着在线用户终端数量的持续增长,多个用户终端的AOE可以共用一条CS与PS之间的第一长连接,故通过防火墙的第一长连接的数目小于用户终端数量,这就极大降低了通过防火墙的TCP连接数,并且本发明实施例中将涉及到用户终端的数据的PS部署在防火墙内。这样就在保证永远在线终端用户数据安全性和服务器稳定性的前提下,避免防火墙设备的并发连接数随在线用户数增长而大幅增加,降低对防火墙容量的需求,降低运营成本,为用户终端提供安全、稳定、低成本的推送服务。

附图说明

图1为现有技术中的一种永远在线业务的系统结构图;

图2为本发明实施例提供的一种永远在线业务的系统结构图;

图3为本发明实施例提供的一种永远在线业务的实现方法流程示意图;

图4为本发明实施例提供的一种CS均衡方法流程示意图;

图5为本发明实施例提供的一种CS的结构框图;

图6为本发明实施例提供的一种PS的结构框图;

图7为本发明实施例提供的一种AOE的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

现有技术中,AOG的功能是建立并维持与用户终端上AOE之间的TCP长连接,通过该TCP长连接进行推送业务。由于AOG需要保存用户终端的相关数据;为了保证这些数据的安全性,避免潜在的网络攻击,保证AOG的稳定性,所以AOG必须部署在防火墙之内;每个在线用户终端独占防火墙设备的一个TCP长连接,随着在线用户终端数量的持续增长,通过防火墙的并发连接数会持续增加。为了解决现有技术中永远在线类业务受防火墙并发连接数限制的问题,本发明实施例是基于如图2所示的系统构架来实现永远在线业务,本发明实施例将现有技术中的AOG分成两个模块,一个模块定义为AOG的连接服务器(CS,Connection Server),另一个模块定义为AOG的推送业务服务器(PS,Push Server)。

PS涉及到用户终端的数据,对安全性和稳定性要求极高,所以部署在防火墙之内;CS只负责建立并维持与用户终端上AOE之间的长连接,并不涉及到用户数据和系统的核心推送业务,对系统安全性要求相对较低,逻辑相对简单,抗攻击能力较强,故部署在防火墙之外。

本发明实施例提供的系统中,一个CS下可连接有多个用户终端,每个用户终端上的AOE都对应有一个TCP长连接与CS通信,用户终端上的AOE与CS之间的TCP长连接并不通过防火墙;每个CS与PS之间通过少量TCP长连接通信,多个用户终端可以共用CS与PS之间的一个TCP长连接进行推送业务。由于用户终端上的AOE与CS之间的TCP长连接并不通过防火墙,只有CS与PS之间的少量长连接通过防火墙的,从而极大降低了通过防火墙的TCP连接数,降低了防火墙压力,降低了系统运营成本。

实施例1

本发明实施例提供了一种永远在线业务的实现方法,如图3所示,本实施例方法的处理流程包括以下步骤:

步骤301、CS至少一次向部署在防火墙之内的PS发送至少一个CS注册请求消息,PS接收部署在防火墙之外的CS发送的CS注册请求消息。

CS启动时,需要通过CS注册流程建立该CS与PS之间的TCP长连接。由于防火墙设备对CS的IP地址进行限制,所以CS注册流程并不需要复杂的认证逻辑。

启动CS注册流程后,所述CS向PS发送CS注册请求消息,由于CS部署在防火墙之外,PS部署在防火墙内,防火墙需要设置IP地址过滤规则,只有CS可以建立到PS的TCP长连接,保证系统的安全性。所述CS注册请求消息中包括所述CS的IP地址,所述CS的IP地址可以使所述CS注册请求消息通过防火墙至所述PS。

在这里需要说明的是,本实施例中各设备之间传输的消息都是TCP/IP协议消息,这些消息都遵循TCP/IP协议的规定,数据格式为:

数据帧:帧头+IP数据包+帧尾(帧头包括源和目标主机MAC初步地址及类型,帧尾是校验字);

IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等);

TCP数据信息:TCP头部+实际数据(TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)。

在此步骤中,源主机为CS,目标主机为PS,CS向PS发送的CS注册请求消息中必然携带有所述CS的IP地址,这样防火墙就可以使所述CS注册请求消息通过到达PS。

所述CS可以多次向PS发送CS注册请求消息,以请求与所述PS之间建立多个TCP长连接,所述CS每次向所述PS发送CS注册请求消息时采用的文件描述符不同。

步骤302、PS向所述CS返回CS注册应答消息,所述CS对应接收至少一次所述PS返回的CS注册应答消息,建立所述CS与所述PS之间的至少一个第一长连接。

所述PS接收到所述CS发送的CS注册请求消息后,会创建一个Session, 并向所述CS返回CS注册应答消息,这样就建立了与所述PS之间的一个第一长连接。所述CS注册应答消息的数据格式遵循TCP/IP协议的规定。

该第一长连接建立后,所述CS会定期发送心跳消息,以维持该第一长连接,当第一长连接因为异常断开时,CS需要再次进行步骤301发起CS注册流程,恢复CS与PS之间的第一长连接。

所述CS可以多次向PS发送CS注册请求消息,所述PS可以根据每次接收的CS注册请求消息,创建一个该CS对应的Session,并向所述CS返回对应的CS注册应答消息,这样每次注册完成后就可以建立一个CS与PS之间的第一长连接。即对于一个CS和对应的一个PS来说,所述CS与PS之间可以建立有多个第一长连接,这几个长连接之间是相互独立的。多个第一长连接可实现CS和PS间的负载均衡和故障切换,当某个第一长连接异常时,CS可通过注册流程只恢复异常连接,并不影响其他的第一长连接,且CS与PS之间仍可以应用其他正常的第一长连接为其他用户终端的AOE提供服务。

步骤303、AOE向CS发送AOE注册请求消息,CS接收AOE发送的AOE注册请求消息,根据所述AOE注册请求消息为所述AOE创建对应的CS Session,记录所述CS Session对应的CS Session ID。

在CS与PS之间的第一长连接建立后,所述用户终端上的AOE就可以启动AOE注册流程,建立该AOE与PS之间的长连接,这样PS就可以通过该长连接向AOE推送数据。AOE启动注册时,所述AOE会将AOE注册请求消息发送给CS,所述CS接收AOE发送的AOE注册请求消息。

所述AOE注册请求消息的数据格式遵循TCP/IP协议的规定。

所述CS接收到该AOE发送的AOE注册请求消息后,会创建该AOE对应的CS Session,记录该CS Session对应的CS Session ID。

步骤304、CS从所述至少一个第一长连接中选择一个第一长连接为所述AOE的第一长连接,并通过所述AOE的第一长连接向所述PS转发所述AOE注册请求消息,PS接收所述CS通过AOE的第一长连接转发的AOE注册请求。

所述CS接收到AOE注册请求消息后,会从所述CS与PS之间的至少一个第一长连接中选择出一个第一长连接为所述AOE的第一长连接,并通过所述AOE的第一长连接向所述PS转发所述AOE注册请求消息。

步骤305、PS根据所述AOE注册请求消息为所述AOE创建对应的PS Session,记录所述PS Session对应的PS Session ID,通过所述AOE的第一长连接向CS返回的AOE注册应答消息,所述CS接收所述AOE注册应答消息,其中,所述AOE注册应答消息携带有所述PS Session ID。

所述PS通过所述AOE的第一长连接接收到所述AOE注册请求消息后,会创建该AOE对应的PS Session,并通过所述AOE的第一长连接向所述CS返回AOE注册应答消息,所述AOE注册应答消息中携带有所述PS Session对应的PS Session ID。所述CS通过所述AOE的第一长连接接收所述PS返回的AOE注册应答消息。

步骤306、所述CS保存所述PS Session ID,并将所述AOE注册应答消息中的PS Session ID删除后转发给所述AOE,所述AOE接收AOE注册应答消息。

所述CS通过所述AOE的第一长连接接收所述PS返回的AOE注册应答消息后,保存所述AOE注册应答消息中的PS Session ID,并将所述AOE注册应答消息中的PS Session ID删除后转发给所述AOE。

这样就建立了该AOE与PS之间的TCP长连接,AOE与PS之间的TCP长连接包括AOE与CS之间的TCP长连接,以及CS与PS之间的第一长连接。

可以有多个AOE都通过一个CS注册到一个PS上,示例的,如图2所示,用户终端A的AOE与该CS之间对应有一个TCP长连接,用户终端B的AOE与该CS之间也对应有一个TCP长连接,该CS与PS之间只有一个第一长连接,用户终端A的AOE与用户终端B的AOE可以共用该CS与PS之间的这一个第一长连接与PS进行通信。

在有N个用户终端的情况下,现有技术防火墙需要支持N个TCP长连接, 采用本实施例方法,N个用户终端与CS之间需要有N条TCP长连接,但是这N条TCP长连接并不通过防火墙,而多个用户终端的AOE可以共用一条CS与PS之间的第一长连接,故第一长连接的数目必然小于N,即通过防火墙的第一长连接的数目小于N,这就极大降低了通过防火墙的TCP连接数,降低了防火墙压力,降低了系统运营成本。

步骤307、AOE向CS发送AOE消息,CS接收所述AOE发送的AOE消息。

步骤308、所述CS在所述AOE消息上增加一个CS-PS消息头后通过所述AOE的第一长连接转发给所述PS,所述PS接收所述CS通过所述AOE的第一长连接转发的AOE消息。

AOE完成注册流程后,所述AOE与所述PS之间就可以进行消息传输。所述AOE可以向所述CS发送AOE消息,所述CS可以通过所述AOE注册时选定的所述AOE的第一长连接将所述AOE消息转发给所述PS。

由于多个用户终端的AOE可以共用一个第一长连接,故所述CS在应用所述AOE的第一长连接将所述AOE消息转发给所述PS时,需要给所述AOE消息增加CS-PS消息头,以区分该AOE消息是属于哪个用户终端的AOE的。

所述CS-PS消息头中包括AOE标识、PS Session ID和CS Session ID;其中,

AOE标识:系统内部用户终端的AOE的唯一标识;

PS Session ID:PS为该用户终端的AOE创建的Session的ID,PS利用PS Session ID可以快速定位用户终端的AOE在PS上的Session对象(AOE在PS上的Session对象为所述PS在进行步骤305时创建,并在注册流程时将对应的PS Session ID发送给CS);

CS Session ID:CS为该用户终端的AOE创建的Session的ID,CS利用CS Session ID可以快速定位用户终端的AOE在CS上的Session对象(AOE在CS上的Session对象为所述CS在进行步骤303时创建,CS自己记录有对应的 CS Session ID)。

步骤309、PS根据所述AOE标识和PS Session ID定位到AOE的Session,完成对所述AOE消息处理,并通过所述AOE的第一长连接向CS返回的PS消息,所述CS接收所述PS消息。

所述PS接收到CS转发的AOE消息后,根据CS-PS消息头中的AOE标识和PS Session ID定位到该AOE的Session对象,并完成对所述AOE消息处理;然后所述PS会构建PS消息,所述PS消息中也需要携带有所述CS-PS消息头。

步骤310、所述CS删除所述PS消息中的CS-PS消息头后转发给所述AOE,所述AOE接收所述CS转发的PS消息。

所述CS接收到PS发送的PS消息后,根据所述CS-PS消息头中的CS Session ID,定位用户终端的AOE的Session对象,并去除所述CS-PS消息头,只将消息内容转发给用户终端的AOE,这样就实现了PS与AOE的通信。

PS主动向用户终端的AOE推送数据业务时,所述PS会首先从其他设备获取要推送的内容,推送目标AOE的信息即AOE标识、PS Session ID和CS Session ID;然后将其构建成PS消息发送给CS,所述CS接收到PS发送的PS消息后,根据所述CS-PS消息头中的CS Session ID,定位用户终端的AOE的Session对象,并去除所述CS-PS消息头,只将推送的内容转发给用户终端的AOE,这样PS就主动将推送的内容下发给了用户终端的AOE。

为提升AOG系统容量和可用性,防火墙外可以部署多个CS,通过线性扩展,可以支持海量用户请求。由于用户终端上的AOE直接连接CS,AOE与CS之间没有负载均衡器设备,不同的AOE可以连接到不同CS,因此,AOG系统需要实现CS负载均衡逻辑,从而保证CS之间的负载基本均衡。

本实施例在PS集群中,部署了状态同步设备,通过PS和状态同步设备可以实现CS的负载均衡,如图4所示,具体方法包括以下步骤:

步骤401、CS通过任意一个第一长连接定时向所述PS发送CS负载信息, 所述PS接收所述CS发送的CS负载信息。

在步骤302之后,所述CS与PS之间建立了至少一个第一长连接,所述CS通过任意一个第一长连接定时向所述PS发送CS负载信息,所述PS接收所述CS发送的CS负载信息。所述负载信息包括该CS负载的用户终端的AOE的数量。

步骤402、PS将所述CS负载信息发送给状态同步设备。

任一个PS接收到CS发送的CS负载信息后,都会将所述CS负载信息发送给状态同步设备。

步骤403、所述状态同步设备同步各CS的CS负载信息到所有PS,各PS接收所述状态同步设备同步的各CS的CS负载信息。

所述状态同步设备可以接收到各PS同步过来的各CS的CS负载信息,所述状态同步设备会将该CS的CS负载信息同步下发给所有PS,这样所有PS就可以获取各CS的CS负载信息。

步骤404、AOE向CS发送AOE注册请求消息之前,向PS发送通过请求消息,所述PS接收AOE发送的通过请求消息。

AOE在向CS发送AOE注册请求消息之前,会先向PS发送通过请求消息,请求PS为其分配一个CS来进行注册。

步骤405、PS根据所述各CS的CS负载信息选择出负载最轻的CS,返回通过应答消息,所述AOE接收所述PS返回的通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址。

由于步骤401-403,所有PS都可以获取各CS的CS负载信息,故所述PS可以根据所述各CS的CS负载信息选择出负载最轻的CS,返回通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址。

在步骤404-405中,所述AOE与PS之间通过建立TCP短连接进行通信,通过请求消息处理完成后,该TCP短连接会自动断开,因此,步骤404-405中应用到的TCP短连接,不会对防火墙造成巨大压力。

步骤406、向所述负载最轻的CS的IP地址对应的CS发送AOE注册请求消息。

AOE根据返回的CS的IP地址,向所述负载最轻的CS的IP地址对应的CS发起注册流程(参考步骤303),建立TCP长连接,由于返回的通过应答消息中携带的是负载最轻的CS的IP地址,故AOE会优先注册到负载最轻的CS,从而实现了CS的负载均衡。

实施例2

本发明实施例提供了一种CS,如图5所示,所述CS包括:第一发送单元501和第一接收单元502,其中,

第一发送单元501,用于至少一次向部署在防火墙之内的推送业务服务器PS发送CS注册请求消息,所述CS注册请求消息中包括所述CS的IP地址,所述CS的IP地址用于使所述CS注册请求消息通过防火墙至所述PS;

第一接收单元502,用于对应接收至少一次所述PS返回的CS注册应答消息,建立与所述PS之间的至少一个第一长连接;

所述第一接收单元502,还用于接收永远在线引擎AOE发送的AOE注册请求消息,根据所述AOE注册请求消息为所述AOE创建对应的CS会话Session,记录所述CS Session对应的CS Session ID;

所述第一发送单元501,还用于从所述至少一个第一长连接中选择一个第一长连接为所述AOE的第一长连接,并通过所述AOE的第一长连接向所述PS转发所述AOE注册请求消息;

所述第一接收单元502,还用于通过所述AOE的第一长连接接收所述PS返回的AOE注册应答消息,所述AOE注册应答消息中携带有所述PS为所述AOE创建的PS Session的PS Session ID;

所述第一发送单元501,还用于保存所述PS Session ID,并将所述AOE注册应答消息中的PS Session ID删除后转发给所述AOE;

所述第一接收单元502,还用于接收所述AOE发送的AOE消息;

所述第一发送单元501,还用于在所述第一接收单元502接收的AOE消息上增加一个CS-PS消息头后通过所述AOE的第一长连接转发给所述PS,所述CS-PS消息头中包括AOE标识、PS Session ID和CS Session ID;

所述第一接收单元502,还用于通过所述AOE的第一长连接接收所述PS返回的PS消息;

所述第一发送单元501,还用于在删除所述第一接收单元502接收的PS消息中的CS-PS消息头后转发给所述AOE。

可选的,所述第一发送单元501,还用于在建立与所述PS之间的至少一个第一长连接后,通过任意一个第一长连接定时向所述PS发送CS负载信息。

本发明实施例还提供了一种PS,如图6所示,所述PS包括:第二接收单元601和第二发送单元602;其中,

第二接收单元601,用于接收部署在防火墙之外的连接服务器CS发送的CS注册请求消息;

第二发送单元602,用于向所述CS返回CS注册应答消息,建立与所述CS之间的第一长连接;

第二接收单元601,还用于接收所述CS通过第一长连接中永远在线引擎AOE的第一长连接转发的AOE注册请求,根据所述AOE注册请求消息为所述AOE创建对应的PS会话Session,记录所述PS Session对应的PS Session ID;

所述第二发送单元602,还用于通过所述AOE的第一长连接向所述CS发送AOE注册应答消息,所述AOE注册应答消息中携带有所述PS Session ID;

第二接收单元601,还用于接收所述CS通过所述AOE的第一长连接转发的AOE消息,所述AOE消息中携带有CS-PS消息头,所述CS-PS消息头中包括AOE标识、PS Session ID和CS Session ID;

所述第二发送单元602,还用于根据所述第二接收单元601接收的AOE标识和PS Session ID定位到AOE的Session,完成对所述AOE消息的处理;并通过所述AOE的第一长连接向所述CS返回PS消息,所述PS消息中携带有所 述CS-PS消息头。

可选的,第二接收单元601,还用于在建立与所述CS之间的至少一个第一长连接之后,接收所述CS发送的CS负载信息;

所述第二发送单元602,还用于将所述第二接收单元601接收的CS负载信息发送给状态同步设备;

第二接收单元601,还用于接收所述状态同步设备同步的各CS的CS负载信息;

第二接收单元601,还用于接收AOE发送的通过请求消息;

所述第二发送单元602,还用于根据所述第二接收单元601接收的各CS的CS负载信息选择出负载最轻的CS,返回通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址。

本发明实施例还提供了一种AOE,如图7所示,所述AOE包括:第三发送单元701和第三接收单元702,其中,

第三发送单元701,用于向连接服务器CS发送AOE注册请求消息;

第三接收单元702,用于接收所述CS转发的AOE注册应答消息;

所述第三发送单元701,还用于向所述CS发送AOE消息;

所述第三接收单元702,还用于接收所述CS转发的推送业务服务器PS消息。

可选的,所述第三发送单元701,还用于在向CS发送AOE注册请求消息之前,向PS发送通过请求消息;

所述第三接收单元702,还用于接收所述PS返回的通过应答消息,所述通过应答消息中携带有所述负载最轻的CS的IP地址;

相应的,所述第三发送单元701,具体用于向所述第三接收单元702接收到的负载最轻的CS的IP地址对应的CS发送AOE注册请求消息。

在实际应用中,本实施例中所述的第一发送单元501和第一接收单元502可以由CS上的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP) 或现场可编程门阵列(FPGA)等器件实现。本实施例中所述的第二接收单元601和第二发送单元602可以由PS上的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等器件实现。本实施例中所述的第三发送单元701和第三接收单元702可以由测试仪表上的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等器件实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1