一种支持应用客户端永久在线的方法、系统及装置转让专利

申请号 : CN201110360998.2

文献号 : CN102395119B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 仲其涛

申请人 : 华为技术有限公司

摘要 :

一种支持应用客户端永久在线的方法,该方法包括:在位于终端(10)中的永久在线引擎AOE(101)和位于网络侧的永久在线服务网关AOG(20)之间建立一个长链接,其中,至少两个应用客户端通过所述长链接分别与一个或者多个应用服务器(04,05)通信;在建立所述长链接的过程中,位于网络侧的用户管理服务器(30)向所述AOE(101)提供路由信息,向所述AOG(20)提供鉴权信息。

权利要求 :

1.一种支持应用客户端永久在线的方法,在位于终端(10)中的永久在线引擎AOE(101)和位于网络侧的永久在线服务网关AOG(20)之间建立一个长链接,其中,所述终端中的至少两个应用客户端通过所述长链接,经由所述AOG(20),分别与一个或者多个应用服务器(04,05)通信;该方法包括:位于网络侧的用户管理服务器(30)向所述AOE(101)提供路由信息,其中,所述AOE(101)根据所述路由信息请求建立所述长链接;所述用户管理服务器(30)进一步用于在建立所述长链接的过程中,向所述AOG(20)提供鉴权信息。

2.根据权利要求1所述的方法,进一步包括

所述用户管理服务器(30)获取并存储终端身份信息和用户身份信息的对应关系,存储所述用户身份信息归属的AOG(20)的地址;

当所述AOE(101)发送携带所述终端身份信息的路由信息请求时,所述用户管理服务器(30)根据存储的所述终端身份信息和用户身份信息的对应关系,以及所述用户身份信息归属的AOG的地址,向所述AOE(101)提供所述用户身份信息归属的AOG的地址;

当所述AOG(20)发送携带所述终端身份信息的鉴权信息请求时,所述用户管理服务器(30)根据所述终端身份信息和所述用户身份信息的对应关系,向所述AOG(20)提供所述用户身份信息。

3.根据权利要求2所述的方法,所述终端身份信息为IMSI信息,所述用户身份信息为手机号码;

所述用户管理服务器(30)向所述AOE(101)提供路由信息,以及,向所述AOG(20)提供鉴权信息的过程具体包括:所述AOE(101)在所述永久在线引擎AOE(101)启动时或者检测到SIM卡中的IMSI信息与上次注册的信息不同时,自动发送上报消息到所述用户管理服务器(30),所述上报消息携带所述IMSI信息和所述手机号码;

所述用户管理服务器(30)根据收到的所述上报消息获取所述IMSI信息和所述手机号码,存储所述手机号码和所述IMSI信息的对应关系;

所述AOE(101)向所述用户管理服务器(30)发送路由信息请求,所述路由信息请求中携带所述IMSI信息;

所述用户管理服务器(30)根据接收到的路由信息请求中的IMSI信息查找到对应的手机号码,再根据预先存储的手机号码归属的AOG地址,返回该手机号码归属的AOG(20)的地址给所述AOE(101);

所述永久在线引擎AOE(101)向所述手机号码归属的AOG(20)发起注册请求,该注册请求携带IMSI信息;

所述AOG(20)接收到所述AOE(101)的注册请求后,判断其中包含的IMSI信息在该AOG(20)中是否已经注册,如果没有注册则向所述用户管理服务器(30)发送鉴权信息请求,所述鉴权信息请求携带所述注册请求中的IMSI信息;

用户管理服务器(30)接收到所述鉴权信息请求后根据存储的所述手机号码和所述IMSI信息的对应关系,返回所述IMSI信息对应的所述手机号码;

当所述AOG(20)判断所述手机号码属于所述AOG(20)的服务范围,所述AOG(20)存储所述手机号码,并向AOE(101)返回注册响应。

4.根据权利要求3所述的方法,

所述上报消息为短信息,所述上报消息携带IMSI信息和手机号码具体包括:所述短信息的内容中包括所述IMSI信息,所述短信息的发送方为所述手机号码。

5.根据权利要求2所述的方法,所述终端身份信息为终端设备标识,所述用户身份信息为用户名称或者用户标识。

6.一种支持应用客户端永久在线的系统,该系统包括:

永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信连接;

永久在线服务网关AOG(20),位于网络侧,与位于网络侧的一个或者多个应用服务器(04,05)通信连接;

所述永久在线引擎AOE(101)和所述永久在线服务网关AOG(20),用于建立一个长链接,其中,所述终端中的所述至少两个应用客户端通过所述长链接,经由所述AOG(20),分别与所述一个或者多个应用服务器(04,05)通信;

用户管理服务器(30),位于网络侧,与所述永久在线引擎AOE(101)和所述永久在线服务网关AOG(20)通信连接,用于向所述AOE(101)提供路由信息,以便于所述AOE(101)根据所述路由信息请求建立所述长链接,在所述AOE(101)和所述AOG(20)建立长链接的过程中,进一步向所述AOG(20)提供鉴权信息。

7.根据权利要求6所述的系统,

所述用户管理服务器(30),具体用于:获取并存储终端身份信息和用户身份信息的对应关系,且存储所述用户身份信息所归属的AOG(20)的地址;当所述AOE(101)发送携带所述终端身份信息的路由信息请求时,根据所述终端身份信息和所述用户身份信息的对应关系,以及所述用户身份信息归属的AOG的地址,向所述AOE(101)提供所述用户身份信息归属的AOG的地址;当所述AOG(20)发送携带所述终端身份信息的鉴权信息请求时,根据所述终端身份信息和所述用户身份信息的对应关系,向所述AOG(20)提供所述用户身份信息。

8.根据权利要求7所述的系统,所述终端身份信息为IMSI信息,所述用户身份信息为手机号码;

所述AOE(101)具体用于:在所述永久在线引擎AOE(101)启动时或者检测到SIM卡中的IMSI信息与上次注册的信息不同时,自动发送上报消息到用户管理服务器(30),所述上报消息携带所述IMSI信息和所述手机号码;向所述用户管理服务器(30)发送路由信息请求,该路由信息请求中携带所述IMSI信息;向接收到的所述手机号码归属的AOG(20)发起注册请求,该注册请求携带IMSI信息;

所述用户管理服务器(30)具体用于:根据收到的所述上报消息获取所述IMSI信息和所述手机号码,存储所述手机号码和所述IMSI信息的对应关系;根据接收到的路由信息请求中的IMSI信息查找到对应的手机号码,再根据预先存储的手机号码归属的AOG地址,返回该手机号码归属的AOG(20)的地址给所述AOE(101);接收到所述鉴权信息请求后根据存储的所述手机号码和所述IMSI信息的对应关系,返回所述IMSI信息对应的所述手机号码;

所述AOG(20)具体用于:接收到所述AOE(101)的注册请求后,判断其中包含的IMSI信息在该AOG(20)中是否已经注册,如果没有注册则向用户管理服务器(30)发送鉴权信息请求,所述鉴权信息请求携带所述注册请求中的IMSI信息,接收返回的所述IMSI信息对应的所述手机号码;当判断所述手机号码属于所述AOG(20)的服务范围,所述AOG(20)存储所述手机号码,并向AOE(101)返回注册响应。

9.根据权利要求8所述的系统,

所述上报消息为短信息,所述上报消息携带IMSI信息和手机号码具体包括:所述短信息的内容中包括所述IMSI信息,所述短信息的发送方为所述手机号码。

10.根据权利要求7所述的系统,所述终端身份信息为终端设备标识,所述用户身份信息为用户名称或者用户标识。

11.一种永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信连接;

包括:

链接管理模块(1011),用于在所述AOE(101)和永久在线服务网关AOG(20)之间建立一个长链接,其中,所述终端中的所述至少两个应用客户端通过所述长链接,经由所述AOG(20),分别与一个或者多个应用服务器(04,05)通信;从用户管理服务器(30)获取路由信息,并根据所述路由信息请求建立所述长链接。

12.根据权利要求11所述的AOE(101),

所述链接管理模块(1011),具体用于向所述用户管理服务器(30)发送包含终端身份信息的路由信息请求,接收所述用户管理服务器(30)根据存储的所述终端身份信息和用户身份信息的对应关系,以及所述用户身份信息归属的AOG的地址返回的所述AOG的地址。

13.根据权利要求12的AOE(101),所述终端身份信息为IMSI信息,所述用户身份信息为手机号码;

所述链接管理模块,具体用于在所述永久在线引擎AOE(101)启动时或者检测到SIM卡中的IMSI信息与上次注册的信息不同时,自动发送上报消息到用户管理服务器(30),所述上报消息携带所述IMSI信息和所述手机号码;向所述用户管理服务器(30)发送路由信息请求,该路由信息请求中携带所述IMSI信息;向接收到的所述手机号码归属的AOG(20)发起注册请求,该注册请求携带IMSI信息。

14.根据权利要求13中的AOE(101),

所述上报消息为短信息,所述上报消息携带IMSI信息和手机号码具体包括:所述短信息的内容中包括所述IMSI信息,所述短信息的发送方为所述手机号码。

15.根据权利要求12-14任一所述的AOE(101),所述终端身份信息为终端设备标识,所述用户身份信息为用户名称或者用户标识。

16.一种永久在线服务网关AOG(20),位于网络侧,与位于网络侧的一个或者多个应用服务器(04,05)通信连接;

所述AOG(20),包括:

终端管理模块(2011),用于在永久在线引擎AOE(101)和所述AOG(20)之间建立一个长链接,其中,终端中的至少两个应用客户端通过所述长链接,经由所述AOG(20),分别与所述一个或者多个应用服务器(04,05)通信;在建立所述长链接的过程中,从用户管理服务器(103)获取鉴权信息。

17.根据权利要求16的AOG(20),

所述终端管理模块(2011),具体用于:向所述用户管理服务器(30)发送携带终端身份信息的鉴权信息请求,接收所述用户管理服务器(30)根据终端身份信息和所述用户身份信息的对应关系返回的所述用户身份信息。

18.根据权利要求17的AOG(20),所述终端身份信息为IMSI信息,所述用户身份信息为手机号码;

所述终端管理模块(2011),具体接收到所述AOE(101)的注册请求后,判断其中包含的IMSI信息在该AOG(20)中是否已经注册,如果没有注册则向用户管理服务器(30)发送鉴权信息请求,所述鉴权信息请求携带所述IMSI信息,接收返回的所述IMSI信息对应的所述手机号码;当判断所述手机号码属于所述AOG(20)的服务范围,所述AOG(20)存储所述手机号码,并向所述AOE(101)返回注册响应。

19.根据权利要求17的AOG(20),所述终端身份信息为终端设备标识,所述用户身份信息为用户名称或者用户标识。

20.一种用户管理服务器(30),位于网络侧,与永久在线引擎AOE(101)和永久在线服务网关AOG(20)通信连接,在位于终端(10)中的所述AOE(101)和位于网络侧的所述AOG(20)之间建立有一个长链接,所述终端中的至少两个应用客户端通过所述长链接,经由所述AOG(20),分别与一个或者多个应用服务器(04,05)通信,所述用户管理服务器(30)包括:路由信息模块(3012),用于向所述AOE(101)提供路由信息,以便于根据所述路由信息请求建立所述长链接;

鉴权信息模块(3013),用于在所述AOE(101)和所述AOG(20)建立长链接的过程中,向所述AOG(20)提供鉴权信息。

21.根据权利要求20的用户管理服务器(30),

所述用户管理服务器(30)进一步包括注册管理模块(3011),用于获取并存储终端身份信息和用户身份信息的对应关系,且存储所述用户身份信息所归属的AOG(20)的地址;

所述路由信息模块(3012),具体用于:根据所述AOE(101)发送的路由信息请求中的终端身份信息,以及注册管理模块获取并存储的所述终端身份信息和所述用户身份信息的对应关系,向所述AOE(101)提供所述用户身份信息归属的AOG的地址;

所述鉴权信息模块(3013),具体用于:当所述AOG(20)发送鉴权信息请求时,根据所述鉴权信息请求中的终端身份信息,以及注册管理模块获取并存储的所述终端身份信息和所述用户身份信息的对应关系,向所述AOG(20)提供所述用户身份信息。

22.根据权利要求21的用户管理服务器(30),所述终端身份信息为IMSI信息,所述用户身份信息为手机号码;

所述注册管理模块(3011),具体用于根据所述AOE(101)发送的上报消息获取所述IMSI信息和所述手机号码,存储所述手机号码和所述IMSI信息的对应关系;

所述路由信息模块(3012),具体用于:根据接收到的路由信息请求中的IMSI信息查找到对应的手机号码,再根据预先存储的手机号码归属的AOG地址,返回该手机号码归属的AOG(20)的地址给所述AOE(101);

所述鉴权信息模块(3013),具体用于:接收到包含所述IMSI信息的鉴权信息请求后根据存储的所述手机号码和所述IMSI信息的对应关系,返回所述IMSI信息对应的所述手机号码。

23.根据权利要求22的用户管理服务器(30),

所述上报消息为短信息,所述短信息的内容中包括所述IMSI信息,所述短信息的发送方为所述手机号码;

所述注册管理模块,具体用于:根据所述短信息的内容获取所述IMSI信息,根据所述短信息的发送方获取所述手机号码,存储所述手机号码和所述IMSI信息的对应关系。

24.根据权利要求21的用户管理服务器(30),所述终端身份信息为终端设备标识,所述用户身份信息为用户名称或者用户标识。

说明书 :

一种支持应用客户端永久在线的方法、系统及装置

技术领域

[0001] 本发明涉及通信领域,尤其是一种支持应用客户端永久在线的方法,系统及装置。

背景技术

[0002] 智能终端上有大量“永久在线”类的应用,这种类型的应用通过终端主动发起的PULL方式周期性的与服务器主动建立链接,更新状态,因而会产生大量重复的、短小的PULL消息,比如即时消息IM、社交网络SNS、VOIP等永久在线应用需要客户端频繁发送“keep alive”消息通知服务在线状态;又例如,IM、SNS应用需要客户端频繁向服务器Pull消息更新好友状态;PushMail需要周期性同步、刷新;iphone4的iAD广告推送,定位跟踪服务都需要耗费大量的通信资源等等。
[0003] 为了维持应用永久在线,一个或者多个应用服务器至少需要维持与用户终端间的一条永久链路。终端与一个或者多个应用服务器之间的链路是不稳定的,例如链路中间有NAT、防火墙,用户的IP地址可能变化,因此需要通过频繁的心跳维持链路,并获取用户状态(呈现信息)。
[0004] 一般情况下,终端进行正常的数据通信时,网络给终端分配专用的物理信道用于数据的上下行无线传输,这种状态称之为DCH(Dedicated CHannel专用信道)状态。当没有数据传输时,可使终端处理Idle状态,在Idle状态下所有的链接在接入层都是关闭的,终端只监听寻呼信息。因而在DCH和Idle状态下,终端对于电量的消耗差别非常大。智能终端基于省电的考虑,一般6~8秒无数据传输,手机进行“快速休眠”强制切换到Idle状态。而“永久在线”应用又经常需要与服务端进行心跳联接。从而导致终端在Idle状态与DCH状态间的频繁切换,从Idle状态到DCH激活态转换无线侧需要32条信令恢复链接,这种状态间的频繁切换对无线侧的信令造成重大的冲击。

发明内容

[0005] 本发明的一个实施方式,提供了支持应用客户端永久在线的方法,在位于终端(10)中的永久在线引擎AOE(101)和位于网络侧的永久在线服务网关AOG(20)之间建立一个长链接,其中,至少两个应用客户端通过该长链接分别与一个或者多个应用服务器(04,05)通信;位于网络侧的用户管理服务器(30)向该AOE(101)提供路由信息,其中,该AOE(101)根据该路由信息请求建立该长链接;用户管理服务器(30)进一步用于在建立该长链接的过程中,向该AOG(20)提供鉴权信息。
[0006] 较优的,该用户管理服务器(30)获取并存储终端身份信息和用户身份信息的对应关系,且存储该用户身份信息所归属的AOG(20)的地址;当该AOE(101)发送携带终端身份信息路由信息请求时,该用户管理服务器(30)根据该终端身份信息和该用户身份信息的对应关系,以及,该用户身份信息所归属的AOG(20)的地址,向该AOE(101)提供该用户身份信息归属的AOG的地址;当该AOG(20)发送鉴权信息请求时,该用户管理服务器(30)根据该鉴权信息请求中的终端身份信息,以及,该终端身份信息和该用户身份信息的对应关系,向该AOG(20)提供该用户身份信息。
[0007] 较优的,该终端身份信息为IMSI信息,该用户身份信息为手机号码。
[0008] 较优的,该位于网络侧的用户管理服务器(30)向该AOE(101)提供路由信息,以及,向该AOG(20)提供鉴权信息的过程具体包括:
[0009] 该AOE(101)在该永久在线引擎AOE(101)启动时或者检测到SIM卡中的ISMI信息与上次注册的信息不同时,自动发送上报消息到用户管理服务器(30),该上报消息携带该IMSI信息和该手机号码;该用户管理服务器(30)根据收到的该上报消息获取该IMSI信息和该手机号码,存储该手机号码和该IMSI信息的对应关系;该AOE(101)向该用户管理服务器(30)发送路由信息请求,该路由信息请求中携带该IMSI信息;该用户管理服务器(30)根据接收到的路由信息请求中的IMSI信息查找到对应的手机号码,再根据预先存储的手机号码归属的AOG地址,返回该手机号码归属的AOG(20)的地址给该AOE(101);该永久在线引擎AOE(101)向该手机号码归属的AOG(20)发起注册请求,该注册请求携带IMSI信息;该AOG(20)接收到该AOE(101)的注册请求后,判断其中包含的IMSI信息在该AOG(20)中是否已经注册,如果没有注册则向用户管理服务器(30)发送鉴权信息请求,该鉴权信息请求携带该注册请求中的IMSI信息;用户管理服务器(30)接收到该鉴权信息请求后根据存储的该手机号码和该IMSI信息的对应关系,返回该IMSI信息对应的该手机号码;当该AOG(20)判断该手机号码属于该AOG(20)的服务范围,该AOG(20)存储该手机号码,并向AOE(101)返回注册响应。
[0010] 较优的,该上报消息为短信息,该上报消息携带IMSI信息和手机号码具体包括:该短信息的内容中包括该IMSI信息,该短消息的发送方为该手机号码。
[0011] 较优的,该终端身份信息为终端设备标识,该用户身份信息为用户名称或者用户标识。
[0012] 本发明的另一个实施方式,提供了一种支持应用客户端永久在线的系统,该系统包括:永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信连接;永久在线服务网关AOG(20),位于网络侧,与位于网络侧的一个或者多个应用服务器(04,05)通信连接;该永久在线引擎AOE(101)和该永久在线服务网关AOG(20),用于建立一个长链接,其中,该至少两个应用客户端通过该长链接分别与该一个或者多个应用服务器(04,05)通信;用户管理服务器(30),位于网络侧,与该永久在线引擎AOE(101)和该永久在线服务网关AOG(20)通信连接,用于向该AOE(101)提供路由信息,以便于该AOE(101)根据该路由信息请求建立该长链接,在该AOE(101)和该AOG(20)建立长链接的过程中,进一步向该AOG(20)提供鉴权信息。
[0013] 较优的,该用户管理服务器(30),具体用于:该获取并存储终端身份信息和用户身份信息的对应关系,且存储该用户身份信息所归属的AOG(20)的地址;当该AOE(101)发送携带终端身份信息路由信息请求时,根据该终端身份信息和该用户身份信息的对应关系,以及,该用户身份信息所归属的AOG(20)的地址,向该AOE(101)提供该用户身份信息归属的AOG的地址;当该AOG(20)发送鉴权信息请求时,根据该鉴权信息请求中的终端身份信息和该终端身份信息和该用户身份信息的对应关系,向该AOG(20)提供该用户身份信息。
[0014] 较优的,该终端身份信息为IMSI信息,该用户身份信息为手机号码;该AOE(101)具体用于:在该永久在线引擎AOE(101)启动时或者检测到SIM卡中的ISMI信息与上次注册的信息不同时,自动发送上报消息到用户管理服务器(30),该上报消息携带该IMSI信息和该手机号码;向该用户管理服务器(30)发送路由信息请求,该路由信息请求中携带该IMSI信息;向接收到的该手机号码归属的AOG(20)发起注册请求,该注册请求携带IMSI信息。该用户管理服务器(30)具体用于:根据收到的该上报消息获取该IMSI信息和该手机号码,存储该手机号码和该IMSI信息的对应关系;根据接收到的路由信息请求中的IMSI信息查找到对应的手机号码,再根据预先存储的手机号码归属的AOG地址,返回该手机号码归属的AOG(20)的地址给该AOE(101);接收到该鉴权信息请求后根据存储的该手机号码和该IMSI信息的对应关系,返回该IMSI信息对应的该手机号码。该AOG(20)具体用于:接收到该AOE(101)的注册请求后,判断其中包含的IMSI信息在该AOG(20)中是否已经注册,如果没有注册则向用户管理服务器(30)发送鉴权信息请求,该鉴权信息请求携带该注册请求中的IMSI信息,接收返回的该IMSI信息对应的该手机号码;当判断该手机号码属于该AOG(20)的服务范围,该AOG(20)存储该手机号码,并向AOE(101)返回注册响应。
[0015] 在其他的实施方式中,相应的提供了可以执行前述方法各相关步骤的永久在线引擎AOE(101),永久在线服务网关AOG(20),以及用户管理服务器(30)。
[0016] 在另一个本发明实施方式的支持应用客户端永久在线的系统中,永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信连接,用于和永久在线服务网关AOG(20)之间建立一个长链接;永久在线服务网关AOG(20),位于网络侧,用于与永久在线引擎AOE(101)之间建立该长链接,以及发起心跳消息,以便于维护该长链接;其中,该至少两个应用客户端通过该长链接与该一个或者多个应用服务器(04,05)通信。
[0017] 较优的,AOE(101)和AOG(20)可以各自分别根据自己的判断主动地断开该长链接。
[0018] 较优的,该永久在线引擎AOE(101)进一步用于当判断出收到心跳请求后超过一定的时间阈值的时候还未收到其他心跳请求,则主动向AOG(20)发送断开请求;或者,当检测到其管理的所有应用客户端在一定的时间阈值内未运行时,则主动向AOG(20)发起断开请求;或者,当检测到终端01上的电池电量低于一定的阈值时,则主动向AOG(20)发送断开请求,该断开请求用于断开该长链接。
[0019] 较优的,AOG(20)进一步用于当判断出超过一定时间阈值没有收到从该AOE101发送的数据流,则主动发起断开请求;当判断出超过一定的次数阈值发送心跳请求后,但没有得到AOE101的响应时,主动发起断开请求,该断开请求用于断开该长链接。
[0020] 较优的,AOG(20)进一步用于将已经断开该长链接的AOE101在该AOG(20)上记录的是否在线状态修改为离线,并且构造下线通知消息发给应用服务器发送给该应用服务器。
[0021] 较优的,AOG(20)进一步用于在特殊情况下向AOE(101)发送唤醒短信,用于唤醒尚未建立或者已经断开的长链接。
[0022] 较优的,AOE(101)进一步用于监听并拦截到该唤醒短信后,解析该唤醒短信,并触发建立长链接。
[0023] 在另一个本发明实施方式的支持应用客户端永久在线的系统中,永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信连接,用于和永久在线服务网关AOG(20)之间建立一个长链接;其中,该至少两个应用客户端通过该长链接与一个或者多个应用服务器04通信;AOE(101)进一步用于在该长链接正常(已经成功地建立)时,终端(10)中的应用客户端已经退出,但是接收到了AOG(20)转发的发送给该应用客户端的数据时,拉起该已经退出的应用客户端。
[0024] 在另一个本发明实施方式的支持应用客户端永久在线的系统中,永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信连接,用于和永久在线服务网关AOG(20)之间建立一个长链接;其中,该至少两个应用客户端通过该长链接与一个或者多个应用服务器04通信;AOE(101)进一步用于当应用客户端有大量数据需要与该应用服务器中的一个交互时,提供单独的连接与该应用服务器交互,原来的长链接可以主要用来传输控制流相关的数据。
[0025] 较优的,当传递的数据达到阈值时,需要建立专门的IP代理通道,由该通道专门传输该传递的数据,一般的,这些数据是提供应用的过程中产生的数据流。
[0026] 较优的,在数据传递结束时可以主动关闭该IP代理通道。
[0027] 较优的,对于应用客户端或者应用服务器不主动关闭IP代理通道的,AOE(101)可以设定超时机制,在无数据交互达到阈值(例如60s)后,AOE(101)主动断开连接。
[0028] 本发明的另外一些实施方式中,提供了上述系统执行的相应的方法,以及相应的AOE(101),终端(10),以及AOG(20)。
[0029] 通过上述不同的实施方式,从不同的侧面提供了一个节约通信资源的支持应用客户端永久在线的系统,方法和装置。

附图说明

[0030] 图1为一个本发明实施方式应用环境的示意图;
[0031] 图2a为一个包含用户管理服务器的实施方式的系统架构图;
[0032] 图2b为一个包含用户管理服务器的系统中建立长链接的实施方式的方法流程图;
[0033] 图3a为一个以运营商通信系统为例的建立长链接的实施方式的方法流程图;
[0034] 图3b为一个更新应用客户端的流程示意图实施方式的方法流程图;
[0035] 图4a为一个关于长链接心跳维护的实施方式的系统架构图;
[0036] 图4b为一个关于长链接心跳维护方法的实施方式的方法流程图;
[0037] 图5a为一个从AOE(101)角度描述的关于长链接心跳维护的实施方式的方法流程图;
[0038] 图5b为一个从AOG(20)角度描述的关于长链接心跳维护的实施方式的方法流程图;
[0039] 图6为一个从包含了扩展的功能的实施方式的系统架构图;
[0040] 图7为一个关于唤醒长链接的实施方式的方法流程图;
[0041] 图8为一个关于唤醒应用客户端的实施方式的方法流程图;
[0042] 图9为一个终端的实施方式的结构示意图;
[0043] 图10为一个AOG(20)的实施方式的结构示意图;
[0044] 图11为系统中用户管理服务器(30)的一个实施方式的结构示意图。

具体实施方式

[0045] 为了各发明实施方式清楚明白,各可能用到的术语解释如下:
[0046] AOG:AOG(Always Online Gateway),永远在线网关,通过与永久在线引擎的配合,可以给SP提供通用的PUSH通道,允许SP服务侧随时随地找到终端。
[0047] AOE(101):AOE(101)(Always Online Engine),永久在线引擎,是部署在终端侧的中间件,汇聚和代理客户端应用客户端的永远在线需求。
[0048] AOI:AOI(Always Online Infrastructure),永远在线设施,包括AOE(101)、AOG、或者进一步包括用户管理服务器等各网元的集合。
[0049] 如图1所示为本发明的一个本发明实施方式应用环境系统的示意图,该系统包含多个通信设备,通过有线或者无线通信网络相互通信。这些通信网络包括但是不限于移动通信网络(mobile telephone network),无线本地局域网络(wireless Local Area Network(LAN)),蓝牙网络(Bluetooth personal area network),以太网络(Ethernet LAN),令牌环局部网(a token ring LAN),广域网(a wide area network),互联网(the Internet,)等等。
[0050] 图1所示的系统中,终端(10)可以包括但是不限于,移动设备(mobile device),可移动通信的PDA装置(a combination PDA and mobile telephone),PDA,集成信息装置(integrated messaging device(IMD)),个人计算机(personal computer and笔记本型计算机(notebook computer)。这些终端可以移动,也可以位于某个可移动的设备上,例如但不限于汽车,卡车,出租车,公共汽车,轮船,飞机,自行车,摩托车,等等上面。上述终端(10)可以通过该无线网络和/或该有线网络接入到一个或者多个应用服务器04上,以便于获取该一个或者多个应用服务器04提供的应用。一个或者多个应用服务器包括但不限于,上述网络可以包含其他的各种不同种类的通信设备。
[0051] 上述通信设备可以基于各种不同的传输技术实现通信的过程,包括但不限于码分多址Code Division Multiple Access(CDMA),全球移动通讯系统Global System for Mobile Communications(GSM),通用移动通信系统Universal Mobile Telecommunications System(UMTS),时分多址Time Division Multiple Access (TDMA),频分多址Frequency Division Multiple Access(FDMA),传输控制协议/因特网互联协议Transmission Control Protocol/Internet Protocol(TCP/IP),短 消 息 服 务 Short Messaging Service(SMS),多媒体信息服务Multimedia Messaging Service(MMS),e-mail,即时消息服务Instant Messaging Service(IMS),蓝牙Bluetooth,IEEE 802.11,等等.上述的通信设备之间可以使用不同的媒体资源,包括但是不限于,无线电(radio),红外线(infrared),激光(1aser),电缆(cable connection),等等。
[0052] 如图2a所示为一个支持应用客户端永久在线的系统实施方式的架构示意图,系统中包括:
[0053] 永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信链接;
[0054] 永久在线服务网关AOG(20),位于网络侧,与位于网络侧的一个或者多个应用服务器(04,05)通信链接;
[0055] 所述永久在线引擎AOE(101)和所述永久在线服务网关AOG(20),用于建立一个长链接,其中,所述至少两个应用客户端通过所述长链接分别与所述一个或者多个应用服务器(04,05)通信;
[0056] 用户管理服务器(30),位于网络侧,与所述永久在线引擎AOE(101)和所述永久在线服务网关AOG(20)通信链接,向所述AOE(101)提供路由信息,其中,所述AOE(101)根据所述路由信息请求建立所述长链接;用户管理服务器(30)进一步用于在建立所述长链接的过程中,向所述AOG(20)提供鉴权信息。
[0057] 上述提到的一个或者多个应用服务器可以包括但不限于提供下述应用的之一或者任一组合的服务器:PUSH Mail,天气预报,VOIP,广告,定位服务,企业办公,生活服务,等等。
[0058] 上述提到的长链接,可以是符合传输控制协议(TCP,Transmission Control Protoco1)的长链接,也可以是符合用户数据报协议(UDP,UserDatagramProtoco1)的长链接;
[0059] 上述用户管理服务器(30)可以作为永久在线业务用户数据的管理节点,向所述AOE(101)提供路由信息,以便于所述AOE(101)根据所述路由信息请求建立所述长链接;以及,在所述AOE(101)和所述AOG(20)建立长链接的过程中,向所述AOG(20)提供鉴权信息。上述方案可以使得该永久在线引擎AOE(101)和该永久在线服务网关AOG(20)能够简便的,并且安全的建立该长链接。需要说明的是,该用户管理服务器(30)内部可以是集群式,或分布式;可以是和网络侧任何可能的设备合设,或者独立设置的,但对于AOG而言是能够与其他设备相区分的,上述的系统中AOG可能有多个。
[0060] 在一个较优的实施方式中,上述鉴权信息为用户身份信息,例如手机号码,用户标识或者用户名称,方便各种应用服务器针对其用户进行鉴权,具体实施方式中可以由AOG(20)代理该鉴权的过程。然而一般的,终端(01)在通信的过程中携带的是终端身份信息,例如IMSI信息,或者设备标识,这些信息如果作为鉴权信息,需要提前与一个或者多个应用服务器等设备进行复杂的认证交互。另外需要说明的是,上述路由信息为用户身份信息所归属的AOG(20)的地址,在具体实施方式中,对于整个网络,可能有多个AOG(20),需要明确为某个用户身份信息提供代理服务的AOG。
[0061] 参考图2b,为一个较优的实施方式的流程图,前述图2的系统执行如下的方法:
[0062] 201.用户管理服务器(30)(例如注册管理模块(3011))获取并存储终端身份信息和用户身份信息的对应关系,且存储用户身份信息所归属的AOG(20)的地址;
[0063] 202.当AOE(101)(如链接管理模块(1011))发送路由信息请求时,用户管理服务器(30)(例如路由信息模块(3012))根据路由信息请求中的终端身份信息,以及终端身份信息和用户身份信息的对应关系,向AOE(101)提供用户身份信息归属的AOG的地址;
[0064] 203.当AOG(20)发送鉴权信息请求时,用户管理服务器(30)(例如鉴权信息模块(3013))根据鉴权信息请求中的终端身份信息,以及终端身份信息和用户身份信息的对应关系,向AOG(20)提供用户身份信息。
[0065] 具体的,上述获取并存储终端身份信息和用户身份信息的对应关系的过程,可以是在前述长链接未建立之前,利用其他可能的通信通道实现的,例如电路域通信通道,或者短消息通道。具体的,可以包括但不限于由终端(10)上报给用户管理服务器(30),或者由其他网络设备转发给用户管理服务器(30),也可以是用户管理服务器(30)向终端(10)或者其他网络设备请求的方式得到。
[0066] 参考图3a,较优的,以由运营商提供的通信系统为例,并具体以终端身份信息为IMSI信息,用户身份信息为手机号码为例,上述在建立长链接的过程中,位于网络侧的用户管理服务器(30)向AOE(101)提供路由信息,向AOG(20)提供鉴权信息的过程具体包括:
[0067] 301,所述AOE(101)(例如,AOE(101)上的链接管理模块(1011))在所述永久在线引擎AOE(101)启动时或者检测到SIM卡中的ISMI信息与上次注册的信息不同时,自动发送上报消息到用户管理服务器(30),所述上报消息携带所述IMSI信息和所述手机号码。
[0068] 上述上报消息是不需要建立好前述的AOE(101)和AOG(20)之间的链路的情况下能够发送的信息,例如电路域的信息,或者非数据链路的信息。更具体的,可以是短信息,或者,由AAA服务器转发的上线Radius通知等等。如果为短消息,则只需要在内容中携带IMSI信息,系统将其发送方默认设置为手机号码,进一步节约了数据通信资源。
[0069] 302,用户管理服务器(30)(如上述注册管理模块(3011))根据收到的所述上报消息获取所述IMSI信息和所述手机号码,存储所述手机号码和所述IMSI信息的对应关系。
[0070] 303,可选的,由于上报消息可能有延迟,为了确保用户管理服务器(30)收到该上报消息后再进行后续处理流程,AOE(101)可以进行一定的延时。
[0071] 304,AOE(101)(例如链接管理模块(1011))向所述用户管理服务器(30)发送路由信息请求,该路由信息请求中携带所述IMSI信息。
[0072] 305,用户管理服务器(30)(如路由信息模块(3012))根据接收到的路由信息请求中的IMSI信息查找到对应的手机号码(具体的,即指查找上述注册管理模块(3011)),再根据预先存储的手机号码归属的AOG地址,返回该手机号码归属的AOG(20)的地址给所述AOE(101)。
[0073] 306,AOE(101)(例如链接管理模块(1011))获取到归属的AOG信息后,向归属的AOG(20)发起注册请求,该注册请求携带IMSI信息。
[0074] 较优的,该注册请求还可以携带但不限于:AOE(101)中的已经注册的应用客户端的信息,例如该应用的标识,终端的型号、接入网络APN、操作系统版本,以及AOE(101)的版本等等。
[0075] 307,该AOG(20)收到注册请求后,接收到所述AOE(101)的注册请求后,判断其中包含的IMSI信息在该AOG(20)中是否已经注册。
[0076] 308.如果没有注册则该AOG(20)向用户管理服务器(30)发送鉴权信息请求,所述鉴权信息请求携带所述注册请求中的IMSI信息。
[0077] 309,用户管理服务器(30)接收到鉴权信息请求后(具体的,例如终端信息模块301)向AOG(20)返回IMSI信息对应的终端信息手机号码。
[0078] 310,AOG(20)(例如其中的链接管理模块(2011))判断是该手机号码否为该AOG(20)的服务范围,如果不是返回注册失败,流程结束。如果属于该AOG(20)的服务范围,该AOG(20)(例如其中的链接管理模块(2011))存储该手机号码。较优的,还可以保存前述注册信息中携带的其他信息,例如终端型号,已经注册的应用客户端,等等信息。
[0079] 311,在310中成功注册以后AOG(20)(例如其中的链接管理模块(2011))向AOE(101)(例如链接管理模块(1011))返回注册响应。
[0080] 至此,AOE(101)与归属的AOG(20)成功建立前述长链接。该过程利用了系统中可信任的终端信息,以及用户信息建立长链接,不需要系统通过复杂的交互为每个终端(10)生成唯一的设备ID,并利用该唯一的设备ID建立长链接,从而在简化流程的同时提高了长链接的安全性。
[0081] 前述图3a示出的是终端(10)启动时或者检测到SIM卡中的ISMI信息与上次注册的信息不同时(即终端中的SIM卡被更换,可以理解为一个新的终端(10))的建立联接的过程,具体的,包含终端信息在AOG(20)上的注册和应用信息在AOG(20)上的注册。在其他的情况下,可能出现终端(10)本身到AOG(20)注册后,增加安装或者删除了某些应用,需要采取类似的方法进行应用信息的更新。参考图3b,为更新应用的流程示意图,其中AOG(20)为终端(10)归属地的AOG和应用服务器接入地的AOG所组成的系统。一个具体例子中,其流程包括:
[0082] 301b,终端上安装(或者卸载)支持能与AOE(101)交互实现AOI功能的应用客户端;
[0083] 302b,应用客户端安装完成后(或者卸载完成后),调用SDK的应用登记接口进行登记(卸载视为调用SDK的应用注销接口进行注销);
[0084] 303b,AOE(101)调用REG接口,向终端归属地AOG发送增加应用请求(卸载时为删除应用请求);
[0085] 304b,终端归属地AOG将终端对应的应用信息更新入库;
[0086] 305b,终端归属地AOG向AOE(101)返回注册响应(卸载时未注销响应);
[0087] 305b,终端归属地AOG根据终端上报的应用的ID,构造INFO上线通知消息,发送到应用归属的AOG网关,该上线通知消息携带手机号码。(当卸载时为下线通知消息)。
[0088] 307b,应用服务器接入地的AOG,将手机号码转换为伪码。
[0089] 308b,应用服务器接入地的AOG,将上线通知消息(当卸载时为下线通知消息)转发给应用服务器,消息中携带伪码。
[0090] 309b,应用服务器返回通知响应。
[0091] 310b,应用服务器接入地的AOG将通知响应转发给原通知发起方AOG网关。
[0092] 具体的,当终端归属AOG网关与应用归属AOG网关为同一个网关时,则不需要上述流程中的第306b、310b步的消息在网关间的前转过程。
[0093] 若终端归属地AOG网关与应用归属AOG网关不是同一个网关,并且二者之间没有建立有效联接,则在前转消息前,由终端归属地AOG网关主动向应用归属地AOG网关完成REG注册登录过程,然后再进行消息前转。
[0094] 为了简化AOG网关内部对于REG消息的处理流程,在应用安装流程中,AOG 02可以不区分何种类型的注册消息(或者注销消息),收到报文后仍可按首次注册流程,确认IMSI摘要在本AOG是否存在,如果不存在到用户管理服务器03上查询手机号码,并根据手机号码是否属于本AOG服务的范围,确认给AOE(101)返回消息的内容。只不过在单纯的应用安装流程中,IMSI必定存在,号码必定属于本AOG,不会走到另外分支。
[0095] 如图4a所示为一个支持应用客户端永久在线的系统实施方式的架构示意图,系统中包括:
[0096] 至少两个应用客户端,该应用客户端位于终端(10)中,与所述永久在线引擎AOE(101)通信连接;;
[0097] 永久在线引擎AOE(101),位于终端(10)中,与至少两个应用客户端通信连接,用于和永久在线服务网关AOG(20)之间建立一个长链接;
[0098] 永久在线服务网关AOG(20),位于网络侧,用于与永久在线引擎AOE(101)之间建立所述长链接;
[0099] 一个或者多个应用服务器(04,05),位于网络侧,与永久在线服务网关AOG(20)通信连接;
[0100] 其中,该至少两个应用客户端通过该长链接与该一个或者多个应用服务器04通信,以分别实现该一个或者多个服务器(04,05)提供的应用业务;在该系统中,该长链接的维护由服务侧的AOG(20)负责,也就是说,在终端(10)与AOG(20)之间,由AOG(20)发起心跳消息,以便于维护该长链接。其中应用客户端用于面向用户提供应用业务,应用服务器04用于提供各种应用业务,例如下述应用的之一或者任一组合:PUSH Mail,天气预报,VOIP,广告,定位服务,企业办公,生活服务,等等。
[0101] 如图4a所示,采用这种维护长链接的方式,相对于由终端侧发起心跳的方式,一方面终端(含其内的各个应用客户端)不需要向一个或者多个应用服务器发送大量心跳消息,减少终端侧的信令压力,另一方面终端内的AOE(101)也不需要对这些心跳进行过滤/放弃等特别的处理,在减少了终端向外发送的信令消耗的同时,进一步的减少了终端(10)内部的信令消耗;另外,AOG(20)发起心跳时可以根据网络情况调整心跳间隔,自动控制心跳参数,使心跳最符合于网络的情况,从而避免终端侧主动探测网络参数的过程,进一步的减少了通信资源浪费。
[0102] 参考图4b,在较优的实施方式中,AOE(101)和AOG(20)可以各自分别根据自己的判断主动地断开该长链接,从而进一步得以节省网络、终端、服务器等的通信资源,当然也节省了各设备尤其是终端(10)的电量消耗。当有需要时,AOG(20)可主动再次唤醒与终端侧的连接。
[0103] 参考图5a为从AOE(101)的角度,关于长链接的心跳维护的实施方式的示意图。参考图5a,在建立了长链接后,AOE(101)对长链接进行维护的较优的方法的示意图,包括:
[0104] 可选的,AOE(101)(例如其中的链接管理模块(1011))收到AOG(20)主动发送的断开请求(例如BYE),则断开该长链接。
[0105] 可选的,AOE(101)(例如心跳时间模块(1012))收到心跳消息后,刷新定时器,如果该定时器超过一定的时间阈值的时候还未收到其他心跳消息,则向AOG(20)发送断开请求(例如BYE),用以关闭该长链接。例如,设置该时间阈值为5分钟,10分钟,或者30分钟等等。
[0106] 可选的,AOE(101)(例如其中的应用管理模块(1012))检测到其管理的所有应用客户端在一定的时间阈值内未运行时,主动发起断开请求(例如BYE请求),则断开该长链接。例如,设置该时间阈值为5分钟,10分钟,或者30分钟等等。
[0107] 可选的,AOE(101)(例如其中的电池监控模块(1014))监视终端(10)的电池电量,当电量不足于一定的阈值时(例如电量仅剩10%,或者5%),如果长链接存在,则主动发送断开请求例如BYE),可选的,可以在断开请求中增加标签,表明是因为电量低而断开该长链接。
[0108] 通过前述可能的实施方式,长链接断开以后,AOE(101)进入休眠状态,(可以等待AOG(20)通过短信唤醒),能够节省终端(10)的电量。其中,各种由AOE(101)主动发起的断开长链接的方式,进一步的减少了不必要的信令浪费,例如断开后网络侧的AOG(20)不需要再发送心跳消息,另外也进一步的节省了终端(10)上的电池电量。
[0109] 另外需要说明的是,当AOE(101)与AOG(20)之间的长链接存在时,需要禁止终端(10)的操作系统进入休眠状态,以保证长链接的正常连接,当与AOG之间的长链接断开时,可以恢复操作系统的休眠机制。
[0110] 参考图5b,从AOG(20)的角度说明如何维护该长链接。需要说明的是,图5b描述的AOG(20)在实际的应用过程中,可能是单一的一个服务器,可能根据需要分为终端(10)(具体的其中的AOE(101))归属的AOG(20)和一个或者多个应用服务器归属的AOG(20)。其中,可选的,对于后者(两个AOG的情况),终端(10)归属的AOG(20)和一个或者多个应用服务器归属的AOG(20)之间进行通信连接,终端(10)归属的AOG(20)负责与终端(10)中的AOE(101)交互,一个或者多个应用服务器归属的AOG(20)负责与一个或者多个应用服务器交互。更为具体的,从AOG(20)的内部结构来讲,图5b所示的501到504可以由终端管理模块(1021)执行,该终端管理模块(1021)可以位于终端(10)归属的AOG(20)上;步骤500,505-508可以由应用管理模块(1022)执行,该应用管理模块(1022)可以位于应用服务器归属的AOG(20)上。
[0111] 具体的,图5b所示的实施方式中,包括如下步骤:
[0112] 500-501,AOE(101)与AOG(20)成功的建立长链接。其中包括AOE(101)与终端归属地AOG完成REG注册流程(501),包含终端的信息,以及终端上应用客户端的信息。相应的,一个或者多个应用服务器也需要已经成功的注册到AOG(20)(步骤500),这样,AOE(101)(即终端(10))上下线通知后续能够通知到一个或者多个应用服务器。
[0113] 502,AOE(101)与AOG(20)成功的建立长链接后,AOG(20)主动向终端发起ACK心跳消息,以便于维护该长链接。较优的实施方式中,可以根据网络的状况配置发送心跳消息的时间间隔,即心跳间隔,以及配置超时时间控制等;
[0114] 503,AOE(101)回复ACKRSP响应,表示AOE(101)处于的活动状态。
[0115] 504,AOG(20)根据下面几种情况对长链接进行维护,包括但不限于:
[0116] 5041,当AOG(20)接收到AOE(101)主动发送的断开请求时,断开该长链接,不再发送心跳消息;具体的,可以参考图5a所示的流程。
[0117] 5042,当AOG(20)判断超过一定时间阈值没有收到从该终端(10)(AOE(101))发送的数据流,主动发起断开请求(例如BYE),不再发送心跳消息。较优的实施方式中,该时间阈值可配置,例如,默认5分钟,10分钟或者30分钟。
[0118] 5043,当AOG(20)判断发送心跳消息ACT后,没有得到AOE(101)的响应的情况超过一定的次数阈值时,主动发起断开请求(例如BYE),不再发送心跳消息。较优的实施方式中,该次数阈值可配置,例如,默认为3次,4次或者5次等等。
[0119] 5054,图中未示出,502后,如果既未收到AOE(101)发送的断开请求也未主动向AOE(101)发送断开请求,则根据心跳时间间隔,规律的向AOE(101)发送心跳消息,以便于保持该长链接。
[0120] 较优的实施方式中,在前述针对长链接的维护的基础上,AOG(20)(例如应用管理模块(2012))还可以进一步的对AOE(101)的在线状态,以及该AOE(101)上的应用客户端进行管理。例如,可选的,505,如果AOG(20)根据步骤5041,5042,或者5043等情况断开该长链接,则确认AOE(101)已经离线,更新本地存储的AOE(101)的是否在线状态为:离线。
[0121] 可选的,506,AOG(20)查询AOE(101)上注册的永久在线的应用客户端信息,如果和一个或者多个应用服务器之间需要使用伪码进行交互,则AOG(20)(例如应用管理模块(2012))将AOG(20)上存储的该AOE(101)的手机号码转换为伪码,该伪码用于在AOG(20)和应用服务器之间作为用户身份信息进行传递。这里,伪码是一个用户在系统内部针对某一个应用的唯一身份标识。
[0122] 具体的,为了保护用户隐私,有些应用不能把手机号码透露给应用服务器(SP),这时需要用其它的标识来代替手机号码。一般做法为根据用手机号码和其它随机数这些信息做一个摘要,计算出的摘要可称之为伪码。手机号码与伪码是一一对应的,映射关系可以保留在服务器侧。但算法是单向的,也就是说相关的随机参数不会发送给应用服务器(SP),因而应用服务器(SP)通过伪码不能反推出手机号码。一个或者多个应用服务器(SP)发送下行消息时可以通过伪码来标识用户,在服务器侧例如可由伪码查询出对应的手机号码,则消息可路由到正确的用户。
[0123] 更具体的,伪码是应用级别的,可指定某些应用启用伪码功能,某些应用关闭伪码功能。若应用管理模块(2012)在应用的控制属性中指定了需要传递伪码,则需要为与此应用有交互的手机号码生成伪码,以及,维护用户手机号码与伪码的对应关系。一个例子中,生成的伪码的方法为:伪码=HASH(MSISDN、Time、APPID、Random)其中:HASH为哈希算法,例如采用MD5算法;MSISDN为用户手机号;Time:时间戳,例如采用YYYYMMDDHH24MISS格式;APPID为应用标识;Random为随机数。对于指定的手机号码与某个应用,伪码在系统中只生成一次,终生有效。具体的,当需要由手机号码转换成伪码时,系统首先根据手机号码及应用ID做联合查询本地数据库,查不到伪码,则证明是首次使用该应用,则用上述算法生成伪码。当需要由伪码到手机号码的转换时,AOG(20)查询本地数据库,查询失败,则证明应用指定的伪码错误。查询成功时,将应用消息中的APPID与本地伪码数据库的APPID进行匹配,匹配成功,则认为伪码校验成功。
[0124] 可选的,507AOG(20)构造下线通知消息发给一个或者多个应用服务器,该下线通知消息中包含伪码。
[0125] 相应的,508,一个或者多个应用服务器收到下线通知消息后可以返回通知响应。
[0126] 具体的,如果AOG(20)是一个服务器,则,该AOG(20)自己执行上述步骤506,507;如果AOG(20)是AOE(101)归属的AOG(20)和一个或者多个应用服务器归属的AOG(20)组成的系统,则AOE(101)归属的AOG(20)发送包含手机号码的下线通知消息给一个或者多个应用服务器归属的AOG(20),由一个或者多个应用服务器归属的AOG(20)将该手机号码转换为伪码,将包含伪码的下线通知消息发送给一个或者多个应用服务器。
[0127] 基于上述各种可能的实施方式,在长链接断开以后,AOE(101)可以等待AOG(20)通过短信唤醒,重新建立起该长链接。具体的可以由如图6所示的系统实现,例如是AOG(20)中的“短信推送模块(2015)”,AOE(101)中的“短信处理模块(1013)”,“应用唤醒模块(1015)”等来实现。
[0128] 具体的,参考图7a为长链接断开的情况下可能的唤醒该长链接的实施方式的流程示意图。包括:
[0129] 701,AOG(20)中的短信推送模块(2015)在特殊情况下向AOE(101)发送“唤醒短信”,用于唤醒尚未建立或者已经断开的长链接。
[0130] 具体的,唤醒短信不是普通的文本短信,是一种特殊格式的二进制短信,在AOG(20)和AOE(101)之间约定,二者可理解,其它网络设备不可见。这种用于唤醒长链接的二进制短信,可能包括需要唤醒的应用ID,下行消息发送方标识,目的用户标识,消息的摘要等内容。
[0131] 702,AOE(101)中的短信处理模块(1013)监听、拦截到“唤醒短信”后,解析该“唤醒短信”触发AOE(101)中的链接管理模块(1011)建立长链接;具体的,监听是监测到有唤醒短信存在,拦截是指唤醒短信不再向下传递,其它应用不会再收到唤醒短信内容。
[0132] 703-704,AOE(101)中的链接管理模块(1011)根据短信处理模块(1013)的提示向AOG(20)发起注册请求,以及接收AOG(20)返回的注册响应,相应的建立起该长链接,AOG(20)将应用服务器发送的下行消息通过前述重新建立的长链接发送给AOE(101)。
[0133] 在另一个较优的实施方式中,参考图8,一个唤醒应用客户端的方法实施方式的流程示意图,在长链接已经建立或者已经被唤醒,但是终端(10)中的应用客户端已经退出,但是接收到了AOG(20)转发的发送给该应用客户端的数据时(801),AOE(101)中应用唤醒模块(1015)还可以拉起该已经退出的应用客户端(802)。
[0134] 具体的,应用客户端与AOE(101)在终端(10)上是两个独立的进程,应用启动时需要向AOE(101)注册,告知AOE(101)其程序安装位置、运行参数等信息,AOE(101)得以监控终端上应用客户端的运行状态。当应用客户端退出(可能是根据用户的指令主动退出),又有下行消息需要通知到该应用客户端时,AOE(101)根据前面的注册信息,重新运行客户端的程序,从而拉起该应用客户端,然后通过内部的API接口或消息接口将收到的下行消息通知到该应用客户端。
[0135] 在其他的实施方式中,可以提供不同的可以与上述各实施方式进行任一组合的进一步的实施方式,参考图6,可选的,AOE(101)、AOG(20),用户管理服务器(30)包含多种可能的模块,各模块之间除非逻辑上有排斥,将可以进行任意的组合,从而形成更优的实施方式。下文将对各装置,以及装置中的各模块一一进行介绍。
[0136] 图9为系统中终端(10)的一个实施方式的结构示意图。终端(10)一般包括至少一个处理器(102)(例如CPU),至少一个网络接口(105)或者其他通信接口,存储器(106),和至少一个通信总线(103),用于实现这些装置之间的连接通信。处理器(102)用于执行存储器中存储的可执行模块,例如计算机程序;终端(10)可选的包含用户接口(104),包括但不限于显示器,键盘和点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏。存储器(106)可能包含高速Ram存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该终端(10)与至少一个其他计算机之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0137] 存储器(106)可选的可以包含至少一个位于远离前述CPU801的地方的存储装置(例如外接存储装置)。在一些实施方式中,存储器(106)存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0138] 操作系统(106),用于,包含各种程序,用于实现各种基础业务以及处理基于硬件的任务;
[0139] 至少两个应用客户端(108),用于永久在线引擎AOE(101)通信连接,用于分别向用户提供应用业务;
[0140] 永久在线引擎AOE(101),与位于终端(10)中的至少两个应用客户端(108)通信连接,与位于网络侧的永久在线服务网关AOG(20)通信连接,与位于网络侧的一个或者多个一个或者多个应用服务器04通过所述永久在线服务网关AOG(20)通信连接;
[0141] 该永久在线引擎AOE(101)中包括但不限于下述模块之一或者其组合:
[0142] 链接管理模块(1011),应用管理模块(1012),短信处理模块(1013),数据转发模块(1014),应用唤醒模块(1015),IP代理模块(1016),心跳时间模块(1017),或者,电池监控模块(1018),API接口等等。
[0143] 一个具体实施方式中,链接管理模块(1011),可以用于在所述AOE(101)和永久在线服务网关AOG(20)之间建立一个长链接,其中,所述至少两个应用客户端通过所述长链接分别与一个或者多个应用服务器(04,05)通信;从用户管理服务器(30)获取路由信息,并根据所述路由信息请求建立所述长链接。具体的,获取路由信息的过程包括:向用户管理服务器(30)发送包含终端身份信息的路由信息请求,接收用户管理服务器(30)根据存储的终端身份信息和用户身份信息的对应关系,以及用户身份信息归属的AOG的地址返回的所述AOG的地址。一个例子中,终端身份信息为IMSI信息,用户身份信息为手机号码;另一个例子中,终端身份信息为终端设备标识,用户身份信息为用户名称或者用户标识。具体的,上述过程可以参考图2b,3a,3b所示的实施方式。
[0144] 可选的,永久在线引擎AOE(101)提供API接口,应用客户端可以通过API接口与其进行通信,这样,每个应用客户端不直接与应用提供商建立长链接,而是通过永久在线引擎AOE(101)建立长链接。
[0145] 可选的,AOE(101)中包括应用管理模块(2013),对在该永久在线引擎AOE(101)上注册的应用客户端的管理的功能,包括但不限于程序的登记、取消登记以及程序运行、退出运行状态的上报
[0146] 可选的,永久在线引擎AOE(101),例如进一步包含数据转发模块(1014),可以用于从不同应用客户端接收数据,然后通过前述的“长链接”发送出去;同时还可以从“长链接”获取数据,并根据数据中的应用ID来判断该消息报文属于哪个应用客户端的消息,然后将消息转发给该应用客户端。具体而言,将应用客户端发送的上行消息的,转发给永久在线服务网关102,以便于再转发给一个或者多个应用服务器;以及接收永久在线服务网关AOG(20)转发的由一个或者多个应用服务器发送的下行消息,转发到应用客户端。
[0147] 另一个较优的实施方式中,当应用客户端有大量数据需要与一个或者多个应用服务器交互时,AOE(101),如IP代理模块(1016),可以提供单独的连接与一个或者多个应用服务器交互。较优的,当传递的数据达到阈值时,需要建立IP代理通道,由该IP代理通道专门传输该数据。较优的,在数据传递结束时可以主动关闭IP代理通道。较优的,对于应用客户端或者一个或者多个应用服务器不主动关闭IP代理通道的,AOE(101)可以设定超时机制,在无数据交互达到阈值(例如60s)后,AOE(101)主动断开连接。
[0148] 图10为系统中永久在线网关AOG(20)的一个实施方式的结构示意图。需要说明的是如前文所述,可以根据需要设置为两个分离的不在同一个物理位置的设备,即终端(10)归属的AOG(20)和应用服务器归属的AOG(20),由他们相互通信一起完成相关的功能,其结构类似,但是应用模块中可能根据其所在的位置包含不同的模块。
[0149] AOG(20)位于网络侧,与位于终端(10)中永久在线引擎AOE(101)通信连接,该永久在线引擎AOE(101)与位于终端(10)中的至少两个应用客户端通信连接;与位于网络侧的一个或者多个一个或者多个应用服务器(04,05)通信连接。
[0150] 该AOG(20)一般包括至少一个处理器(202)(例如CPU),至少一个网络接口或者其他通信接口(205),存储器(206),和至少一个通信总线(203),用于实现这些装置之间的连接通信。处理器(202)用于执行存储器中存储的可执行模块,例如计算机程序。该AOG(20)可选的还包含用户接口(904),包括但不限于显示器,键盘和点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏。存储器(906)可能包含高速Ram存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该AOG(20)与至少一个其他计算机之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0151] 存储器(206)可选的可以包含至少一个位于远离前述CPU的地方的存储装置(例如外接存储装置)。在一些实施方式中,存储器(206)存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0152] 操作系统(207),用于,包含各种程序,用于实现各种基础业务以及处理基于硬件的任务;以及,下述模块之一或者任一组合:
[0153] 终端管理模块(2011),应用管理模块(2012),路由管理模块(2013),缓存管理模块(2014),短信推送模块(2015),IP推送模块(2016),协议转换模块(2017),或者,升级管理模块(2018)。
[0154] 具体的实施方式中,终端管理模块(2011),用于在永久在线引擎AOE(101)和所述AOG(20)之间建立一个长链接,其中,至少两个应用客户端通过所述长链接分别与所述一个或者多个应用服务器(04,05)通信;在建立所述长链接的过程中,从用户管理服务器(103)获取鉴权信息。具体的,终端管理模块(2011)用于:向所述用户管理服务器(30)发送携带终端身份信息的鉴权信息请求,接收所述用户管理服务器(30)根据终端身份信息和所述用户身份信息的对应关系,返回的用户身份信息。一种例子中,上述终端身份信息为IMSI信息,用户身份信息为手机号码;另一种例子中该终端身份信息为终端设备标识,该用户身份信息为用户名称或者用户标识。
[0155] 同时参考图6,较佳的实施方式中,可选的,永久在线服务网关AOG(20)中的终端管理模块(2011),还可以用于实现终端(10)的管理,例如,管理注册到系统的中的AOE(101)的信息,例如IMSI摘要、AOE(101)的用户代理(UserAgent,UA)信息等,还包括AOE(101)上注册的应用信息,如该AOE(101)上目前安装了的应用的标识或其版本。可选的,终端管理模块(2011)还可以对AOE(101)身份进行鉴别,对注册信息进行登记,并储存在系统中。具体的过程可以参考2b,3a,3b等所示的实施方式。较优的,终端管理模块(2011)还可以管理AOE(101)与AOG之间的长链接,例如发送心跳消息,维护长链接状态信息,例如已经建立状态,断开状态等。
[0156] 可选的,永久在线服务网关AOG(20)中的应用管理模块(2012),可以对应用进行管理,例如管理接入到本AOG(20)的所有的应用信息,包括应用归属的应用服务器(或者应用提供商SP)及其信息,对接入的一个或者多个应用服务器提供接入鉴权、使用权限控制等功能。较优的实施方式中,针对具体的应用进行伪码的管理,等等。具体过程可参考图5b所示的各实施方式。
[0157] 可选的,永久在线服务网关AOG(20)中的路由管理模块(2013),可以实现路由管理:对于上下行消息,AOG能够正确的路由到对应的网元。
[0158] 可选的,永久在线服务网关AOG(20)中的缓存管理模块(2014),可以实现缓存管理,具体的,根据应用需要,对应用下发给AOE(101)的数据消息,在下发不成功的时候,对消息进行缓存。具体的,缓存后的消息应进行重试,并在重试成功后向应用返回成功的状态报告。
[0159] 可选的,AOG(20)中的短信推送模块(2015),可以在特殊情况下向AOE(101)发送“唤醒短信”,用于唤醒尚未建立或者已经断开的长链接;将应用服务器发送的下行消息通过前述重新建立的长链接发送给AOE(101)。具体的过程可以参考图7所示的实施方式。
[0160] 可选的,AOG(20)中的IP推送模块(2016),可以实现IP数据推送的功能(IP PUSH),具体的,在长链接已经断开的情况下,相比于前述短信唤醒长链接的技术方案,还可以采取另外一个方案:即对于应用服务器需要发送的下行的消息,直接建立一个IP数据通道,通过该IP数据通道下发到永久在线引擎AOE(101),通过该AOE(101)发送给应用客户端。较优的,当应用服务器需要发送的下行的消息数据量较大(例如大于设定的阈值)时,直接建立IP数据通道进行下行数据的推送;当应用服务器需要发送的下行的消息数据量较小时(例如小于等于设定的阈值),可以采用短信唤醒的方式唤醒该长链接后,通过该长链接推送该下行的数据。
[0161] 可选的,当永久在线服务网关AOG(20)与永久在线引擎AOE(101)之间采用内部协议,AOG(20)与一个或者多个应用服务器之间采用公开的协议时,永久在线服务网关AOG(20)中的协议转换模块(2017)可以将消息在这两种协议之间进行转换。
[0162] 可选的,AOG(20)中的升级管理模块(2018),可以管理所有永久在线引擎AOE(101)的版本,可以触发永久在线引擎的自动升级更新。
[0163] 图11为系统中用户管理服务器(30)的一个实施方式的结构示意图。如前文所述,用户管理服务器(30),位于网络侧,与所述永久在线引擎AOE(101)和所述永久在线服务网关AOG(20)通信连接,至少两个应用客户端通过所述长链接分别与所述一个或者多个应用服务器(04,05)通信。该用户管理服务器(30)一般包括至少一个处理器(302)(例如CPU),至少一个网络接口或者其他通信接口(305),存储器(306),和至少一个通信总线(303),用于实现这些装置之间的连接通信。处理器(302)用于执行存储器中存储的可执行模块,例如计算机程序。用户管理服务器(30)可选的包含用户接口(304),包括但不限于显示器,键盘和点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏。存储器(306)可能包含高速Ram存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该用户管理服务器(30)与至少一个其他计算机之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0164] 存储器(306)可选的可以包含至少一个位于远离前述CPU的地方的存储装置(例如外接存储装置)。在一些实施方式中,存储器(306)存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0165] 操作系统(307),用于,包含各种程序,用于实现各种基础业务以及处理基于硬件的任务;以及,下述模块之一或者任一组合:
[0166] 路由信息模块(3012),鉴权信息模块(3013)。
[0167] 具体的,路由信息模块(3012),用于向所述AOE(101)提供路由信息,以便于根据所述路由信息请求建立所述长链接;鉴权信息模块(3013),用于在所述AOE(101)和所述AOG(20)建立长链接的过程中,向所述AOG(20)提供鉴权信息。
[0168] 较优的,可以进一步包括注册管理模块(3011),用于获取并存储终端身份信息和用户身份信息的对应关系,且存储该用户身份信息所归属的AOG(20)的地址;该路由信息模块(3012),具体用于:根据该AOE(101)发送的路由信息请求中的终端身份信息,以及注册管理模块获取并存储的该终端身份信息和该用户身份信息的对应关系,向该AOE(101)提供该用户身份信息归属的AOG的地址;该鉴权信息模块(3013),具体用于:当该AOG(20)发送鉴权信息请求时,根据该鉴权信息请求中的终端身份信息,以及注册管理模块获取并存储的该终端身份信息和该用户身份信息的对应关系,向该AOG(20)提供该用户身份信息。一种例子中,上述终端身份信息为IMSI信息,用户身份信息为手机号码;另一种例子中该终端身份信息为终端设备标识,该用户身份信息为用户名称或者用户标识。
[0169] 需要说明的是,上述各实施方式中,尤其是提到了不同的模块,如果不是说明了无法配合实施,都可以进行任意的组合,以实现更为有益的效果,不受形式上的限制。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0170] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0171] 以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。