1.一种业务分发平台SDP消息推送方法,其特征在于,包括:
获取业务平台发送的第一通知消息;所述第一通知消息包括:通知消息类型,接收方地址以及消息内容;
获取第一通知消息的协议类型;对所述第一通知消息进行解封装得到消息内容;根据所述第一通知消息的协议类型在协议类型映射关系中查询对应的统一协议;按照所述统一协议对所述消息内容进行封装,得到第二通知消息;
根据第一通知消息中的通知消息类型以及接收方地址查询对应的通知策略;当所述通知策略指示为条件式下发时,根据所述通知策略对第二通知消息进行缓存;
通过IM服务器向用户终端发送所述第二通知消息。
2.根据权利要求1所述的方法,其特征在于,所述根据通知策略对第二通知消息进行缓存之后包括:
判断是否需要对缓存后的第二通知消息进行合并,若需要,则根据所述通知策略对缓存后的第二通知消息进行合并,得到新的第二通知消息。
3.根据权利要求1或2所述的方法,其特征在于,所述通过IM服务器向用户终端发送所述第二通知消息包括:
当达到预置周期时,向IM服务器发送该时间周期内缓存的第二通知消息;
和/或,
当缓存的第二通知消息达到预置数目时,向IM服务器发送缓存的第二通知消息。
4.根据权利要求1所述的方法,其特征在于,当所述通知策略指示为直接下发时,所述通过IM服务器向用户终端发送所述第二通知消息具体为:直接向所述IM服务器发送获得的第二通知消息。
5.根据权利要求1或2所述的方法,其特征在于,所述通过IM服务器向用户终端发送所述第二通知消息之后包括:
判断是否接收到IM服务器反馈的发送成功报告,若接收到,则删除缓存的第二通知消息,若未接收到,则按照预置的重发规则向IM服务器重发所述第二通知消息。
6.一种SDP消息推送方法,其特征在于,包括:
接收SDP消息推送装置所发送的第二通知消息,所述第二通知消息是由SDP消息推送装置对由业务平台发送的第一通知消息进行统一协议转换所得到;
与用户终端建立IM网络连接;若在预置时间内,没有通过所述IM网络连接发送第二通知消息,则断开所述IM网络连接;
优先通过所述IM网络连接向所述用户终端发送所述第二通知消息;
判断通过所述IM网络连接发送第二通知消息是否失败,若是,则与用户终端建立传输控制协议TCP连接并通过所述TCP连接向所述用户终端发送第二通知消息,或直接以短消息的方式向所述用户终端发送第二通知消息。
7.根据权利要求6所述的方法,其特征在于,所述与用户终端建立IM网络连接之后包括:
记录用户终端的IP状态,并将TCP计数器清零;
所述与用户终端建立TCP连接并通过所述TCP连接向所述用户终端发送第二通知消息,或直接以短消息的方式向所述用户终端发送第二通知消息包括:
判断所述用户终端的IP状态是否可用,若不可用,则直接以短消息的方式向所述用户终端发送第二通知消息,若可用,与用户终端建立TCP连接;
判断建立TCP连接是否成功,若成功,则通过所述TCP连接向所述用户终端发送第二通知消息,若不成功,则更新TCP计数器并判断TCP计数器是否达到预置数值,若未达到,则继续尝试与所述用户终端建立TCP连接,若达到,则以短消息的方式向所述用户终端发送第二通知消息,并设置所述用户终端的IP状态为不可用。
8.根据权利要求7所述的方法,其特征在于,当通过TCP通道向用户终端发送第二通知消息,或以短消息方式向用户终端发送第二通知消息之后包括:
向用户终端发送重连通知消息,所述重连通知消息用于指示所述用户终端主动发起重连请求;
接收用户终端发送的主动重连IM网络的请求;
根据所述请求与所述用户终端建立IM网络连接。
9.根据权利要求8所述的方法,其特征在于,所述断开IM网络连接之后包括:
若收到新的第二通知消息,则判断所述新的第二通知消息中是否包含有IM消息,若有,则与用户终端再次建立IM网络连接。
10.一种SDP消息推送装置,其特征在于,包括:
通知消息获取单元,用于获取业务平台发送的第一通知消息;
协议转换单元,用于当通知消息获取单元获取到所述第一通知消息之后,对所述第一通知消息进行统一协议转换,得到协议统一的第二通知消息;
查询单元,用于所述对第一通知消息进行统一协议转换得到协议统一的第二通知消息之后,根据第一通知消息中的通知消息类型以及接收方地址查询对应的通知策略;
策略判断单元,用于根据所述通知策略判断下发第二通知消息的方式为直接下发或条件式下发,若为直接下发,则触发通知消息发送单元执行相应操作;若为条件式下发,则触发缓存单元执行相应操作;
缓存单元,用于当所述通知策略指示为条件式下发时,根据所述通知策略对第二通知消息进行缓存;
通知消息发送单元,用于在得到协议统一的第二通知消息之后,通过IM服务器向用户终端发送所述第二通知消息。
11.根据权利要求10所述的SDP消息推送装置,其特征在于,所述SDP消息推送装置还包括:
合并判断单元,用于当所述缓存单元根据通知策略对第二通知消息进行缓存之后,判断是否需要对缓存后的第二通知消息进行合并,若需要,则触发合并单元执行相应操作;
若不需要,则触发通知消息发送单元执行相应操作;
合并单元,用于根据所述通知策略对缓存后的第二通知消息进行合并,并得到新的第二通知消息,触发通知消息发送单元执行相应操作。
12.根据权利要求11所述的SDP消息推送装置,其特征在于,所述协议转换单元包括:
协议类型获取单元,用于获取第一通知消息的协议类型;
解封装单元,用于对所述第一通知消息进行解封装得到消息内容;
查找单元,用于根据所述第一通知消息的协议类型在协议类型映射关系中查询对应的统一协议;
封装单元,用于按照所述统一协议对所述消息内容进行封装,得到第二通知消息。
13.一种IM服务器,其特征在于,包括:
接收单元,用于接收SDP消息推送装置所发送的第二通知消息,所述第二通知消息是由SDP消息推送装置对由业务平台发送的第一通知消息进行统一协议转换所得到;
第一连接单元,用于当接收单元接收到所述第二通知消息之后,与用户终端建立IM网络连接;若在预置时间内,没有通过所述IM网络连接发送第二通知消息,则断开所述IM网络连接;
第一发送单元,用于当第一连接单元与用户终端建立IM网络连接之后,优先通过所述IM网络连接向所述用户终端发送所述第二通知消息。
14.根据权利要求13所述的IM服务器,其特征在于,所述IM服务器还包括:
发送判断单元,用于判断通过所述IM网络连接发送第二通知消息是否失败,若是,则触发第二连接单元或第三发送单元执行相应操作;
第二连接单元,用于与用户终端建立传输控制协议TCP连接;
第二发送单元,用于通过所述TCP连接向所述用户终端发送第二通知消息;
第三发送单元,用于直接以短消息的方式向所述用户终端发送第二通知消息。
15.根据权利要求14所述的IM服务器,其特征在于,所述第二连接单元包括:
记录单元,用于在第一连接单元与用户终端建立IM网络连接之后,记录用户终端的IP状态是否可用;
TCP计数控制单元,用于在第二连接单元与用户终端建立TCP连接之前,对TCP计数器进行清零操作;
TCP计数单元,用于在建立TCP连接不成功时,计数器加一;
状态判断单元,用于在第二连接单元与用户终端建立TCP连接之前,判断所述用户终端的IP状态是否可用,若不可用,则触发第三发送单元执行相应操作,若可用,则触发第二连接单元执行相应操作;
连接判断单元,用于判断建立TCP连接是否成功,若成功,则触发第二发送单元执行相应操作,若不成功,则触发数值判断单元和TCP计数单元执行相应操作;
数值判断单元,用于判断TCP计数器是否达到预置数值,若达到,则触发第三发送单元执行相应操作,并触发记录单元记录所述用户终端的IP状态为不可用,若未达到,则触发第二连接单元执行相应操作。
16.一种SDP消息推送系统,其特征在于,包括:
SDP消息推送装置和IM服务器;
所述SDP消息推送装置包括:
通知消息获取单元,用于获取业务平台发送的第一通知消息;协议转换单元,用于当通知消息获取单元获取到所述第一通知消息之后,对所述第一通知消息进行统一协议转换,得到协议统一的第二通知消息;查询单元,用于所述对第一通知消息进行统一协议转换得到协议统一的第二通知消息之后,根据第一通知消息中的通知消息类型以及接收方地址查询对应的通知策略;策略判断单元,用于根据所述通知策略判断下发第二通知消息的方式为直接下发或条件式下发,若为直接下发,则触发通知消息发送单元执行相应操作;
若为条件式下发,则触发缓存单元执行相应操作;缓存单元,用于当所述通知策略指示为条件式下发时,根据所述通知策略对第二通知消息进行缓存;通知消息发送单元,用于在得到协议统一的第二通知消息之后,通过IM服务器向用户终端发送所述第二通知消息;
所述IM服务器包括:
接收单元,用于接收SDP消息推送装置所发送的第二通知消息,所述第二通知消息是由SDP消息推送装置对由业务平台发送的第一通知消息进行统一协议转换所得到;第一连接单元,用于当接收单元接收到所述第二通知消息之后,与用户终端建立IM网络连接;若在预置时间内,没有通过所述IM网络连接发送第二通知消息,则断开所述IM网络连接;第一发送单元,用于当第一连接单元与用户终端建立IM网络连接之后,优先通过所述IM网络连接向所述用户终端发送所述第二通知消息。
一种业务分发平台消息推送方法、相关设备及系统\n技术领域\n[0001] 本发明涉及通信领域,尤其涉及一种业务分发平台(SDP,Service Delivery Platform)消息推送方法、相关设备及系统。\n背景技术\n[0002] 随着第三代移动通信3G时代的到来,用户终端上将能够使用越来越多的数据业务,除了传统的短信、彩信业务以外,还可以使用社交网络服务(SNS,Social Network Service),推送邮件(Push Mail)业务,如黑莓的邮件主动推送业务;即时消息(IM,Instant Message)服务,融合地址簿(CAB,Convergent Address Book)等。\n[0003] 为提升用户在用户终端上使用以上业务的体验,可以定制一款社交网络手机,依托SDP平台,可以实现打电话、访问社交网络、即时消息、查看好友信息、同步通信簿、收邮件等功能。\n[0004] 现有的技术方案中,各种数据业务,用户终端接收消息的通道皆不同,如短信是传统信令网络下发;彩信是先下发一条推送(PUSH)消息通知,再通过通用分组无线业务(GPRS,General Packet Radio Service)下载消息内容;SNS没有统一的标准,SNS需要先下发通知消息到用户终端,提示用户有添加好友请求、好友状态更新、日志更新的通知,用户终端再通过GPRS查看详细类容;IM需遵循访问启动协议(SIP,Session Initiation Protocol)、可扩展消息与存在协议(XMPP,Extensible Messaging and Presence Protocol)标准;CAB需遵循可扩展标记语言配置访问协议(XCAP,XML ConfigurationAccess Protocol)和同步的标记语言协议(SYNCML,Synchronization Markup Language)规范;Push Mail业务采用电子邮件通知(EMN,Email notification)消息或交互式邮件存取协议-空闲模式(IMAP-IDLE,Internet Mail Access Protocol-IDLE)下发通知消息。\n[0005] SDP平台需要根据不同的数据业务收发消息的通道来下发消息,没有统一的下发通道,造成网络利用的效率不高;用户终端若想同时使用多个业务,则需要根据不同的协议通道建立不同的连接以接收消息,这样会导致用户终端电池的电量消耗过快,且用户终端也需要支持多种协议的通知机制,使用户终端软件的开发变得复杂。\n发明内容\n[0006] 本发明实施例提供了一种业务分发平台消息推送方法、相关设备及系统,能够提高网络利用率,简化用户终端软件开发,并节省用户终端电量。\n[0007] 本发明实施例提供的业务分发平台SDP消息推送方法,包括:获取业务平台发送的第一通知消息;对所述第一通知消息进行统一协议转换,得到协议统一的第二通知消息;\n通过IM服务器向用户终端发送所述第二通知消息。\n[0008] 本发明实施例提供的SDP消息推送方法,包括:接收SDP消息推送装置所发送的第二通知消息,所述第二通知消息是由SDP消息推送装置对由业务平台发送的第一通知消息进行统一协议转换所得到;与用户终端建立IM网络连接;优先通过所述IM网络连接向所述用户终端发送所述第二通知消息;判断通过所述IM网络连接发送第二通知消息是否失败,若是,则与用户终端建立传输控制协议TCP连接并通过所述TCP连接向所述用户终端发送第二通知消息,或直接以短消息的方式向所述用户终端发送第二通知消息。\n[0009] 本发明实施例提供的SDP消息推送装置,包括:通知消息获取单元,用于获取业务平台发送的第一通知消息;协议转换单元,用于当通知消息获取单元获取到所述第一通知消息之后,对所述第一通知消息进行统一协议转换,得到协议统一的第二通知消息;通知消息发送单元,用于在得到协议统一的第二通知消息之后,通过IM服务器向用户终端发送所述第二通知消息。\n[0010] 本发明实施例提供的IM服务器,包括:接收单元,用于接收SDP消息推送装置所发送的第二通知消息,所述第二通知消息是由SDP消息推送装置对由业务平台发送的第一通知消息进行统一协议转换所得到;第一连接单元,用于当接收单元接收到所述第二通知消息之后,与用户终端建立IM网络连接;第一发送单元,用于当第一连接单元与用户终端建立IM网络连接之后,优先通过所述IM网络连接向所述用户终端发送所述第二通知消息。\n[0011] 本发明实施例提供的SDP消息推送系统,包括:SDP消息推送装置,用于获取业务平台发送的第一通知消息,对所述第一通知消息进行统一协议转换,得到协议统一的第二通知消息,通过IM服务器向用户终端发送所述第二通知消息;IM服务器,用于接收SDP消息推送装置所发送的第二通知消息,与用户终端建立IM网络连接,优先通过所述IM网络连接向所述用户终端发送所述第二通知消息,判断通过所述IM网络连接发送第二通知消息是否失败,若是,则与用户终端建立传输控制协议TCP连接并通过所述TCP连接向所述用户终端发送第二通知消息,或直接以短消息的方式向所述用户终端发送第二通知消息。\n[0012] 从以上技术方案可以看出,本发明实施例具有以下优点:当用户终端数据业务较多,需要下发的消息较多时,SDP平台可以通过SDP消息推送装置接收业务平台的第一通知消息,对协议不同的第一通知消息进行统一协议转换,得到协议统一的第二通知消息,然后通过IM服务器向用户终端发送所述第二通知消息,从而大大提高了网络利用的效率;\n[0013] 其次,用户终端也仅需要支持所选择下发通道的协议,简化了用户终端软件的开发过程;\n[0014] 再次,本发明实施例中可以采用统一的下发通道,用户终端可以只建立一种连接接收通知消息,节省了用户终端的耗电量。\n附图说明\n[0015] 图1是本发明实施例SDP消息推送方法的一个流程示意图;\n[0016] 图2是本发明实施例SDP消息推送方法的另一个流程示意图;\n[0017] 图3是本发明实施例SDP消息推送方法的一个具体流程示意图;\n[0018] 图4是本发明实施例SDP消息推送方法的另一个具体流程示意图;\n[0019] 图5是本发明实施例SDP消息推送方法的另一个流程示意图;\n[0020] 图6是本发明实施例消息推送装置的逻辑结构示意图;\n[0021] 图7是本发明实施例IM服务器的逻辑结构示意图;\n[0022] 图8是本发明实施例SDP消息推送系统的逻辑结构示意图。\n具体实施方式\n[0023] 本发明实施例提供了一种业务分发平台消息推送方法、相关设备及系统,能够提高网络利用率,简化用户终端软件开发,并节省用户终端电量。\n[0024] 请参阅图1,本发明实施例中业务分发平台SDP消息推送方法的一个实施例包括:\n[0025] 101、获取第一通知消息;\n[0026] SDP消息推送装置获取业务平台发送的第一通知消息,该第一通知消息包括通知消息的类型、接收方地址以及消息内容,该通知消息的内容不是指消息的具体内容,指的是该消息的条数等信息,如:(mail.A.2),其中“mail”指的是消息的类型,“A”指的是接收方的地址,“2”指的是消息的条数。\n[0027] 在实际应用中,消息内容还可以包括发送方的姓名和/或地址,此处具体不做限定。\n[0028] 该第一通知消息可以是SNS,Email或CAB等业务平台所发送的,也可以是其他业务平台所发送的,此处具体不作限定。\n[0029] 102、统一协议转换;\n[0030] SDP消息推送装置获取到了各个业务平台所发送的第一通知消息后,由于各个业务平台所使用的协议存在着不同,所以需要对这些第一通知消息进行统一协议转换,得到协议统一的第二通知消息。\n[0031] 103、发送第二通知消息;\n[0032] SDP消息推送装置先向IM服务器发送协议统一的第二通知消息,然后再由IM服务器向用户终端发送该第二通知消息。\n[0033] 本实施例中具体发送第二通知消息的方式将在后续的实施例中进行详细描述。\n[0034] SDP消息推送装置获取业务平台的第一通知消息,对协议不同的第一通知消息进行统一协议转换,得到协议统一的第二通知消息,然后通过IM服务器向用户终端发送第二通知消息,从而大大提高了网络利用的效率;\n[0035] 其次,用户终端也仅需要支持所选择下发通道的协议,简化了用户终端软件的开发过程;\n[0036] 再次,本发明实施例中可以采用统一的下发通道,用户终端可以只建立一种连接接收通知消息,节省了用户终端的耗电量。\n[0037] 在发送第二通知消息时,具体的下发方式可以根据网络状态、网络带宽和用户需求等情况进行确定,为了便于理解,下面以一具体实施例对本发明实施例中的SDP消息推送方法进行描述,请参阅图2,本发明实施例中的SDP消息推送方法另一实施例包括:\n[0038] 201、本实施例中的步骤201的内容与前述图1所示的实施例中步骤101的内容相同,此处不再赘述。\n[0039] 202、统一协议转换;\n[0040] SDP消息推送装置获取到了各个业务平台所发送的第一通知消息后,由于各个业务平台所使用的协议不同,所以需要对这些第一通知消息进行统一协议转换,具体的统一协议转换可以包括:\n[0041] SDP消息推送装置获取第一通知消息的协议类型,然后对第一通知消息进行解封装得到消息内容(即消息体),并根据第一通知消息的协议类型在协议类型映射关系中查询对应的统一协议;\n[0042] 需要说明的是,本实施例中,在SDP消息推送装置中存储了各种协议类型统一转换为预置协议的映射关系,和具体的参数转换内容,SDP消息推送装置可以根据第一通知消息的协议类型在该映射关系中确定对应的统一协议。\n[0043] 查询到统一协议之后,然后按照统一的协议对解封装得到的消息内容进行重新封装,则可以得到协议统一的第二通知消息。\n[0044] 需要说明的是,本实施例中协议转换方式仅为一个例子,在实际应用中,同样还可以采用其他的方式进行协议转换,具体此处不做限定。\n[0045] 203、选择下发方式;\n[0046] 具体的下发方式可以根据网络状态、网络带宽和用户需求等情况进行确定,具体的下发方式包括直接下发和条件式下发。\n[0047] 例如,若当前网络状态拥挤,不适宜逐条实时地下发第二通知消息,即不能直接下发,则采用条件式下发,先将第二通知消息进行缓存,然后按照系统或用户所设置的通知策略进行下发。\n[0048] 再如,若第二通知消息为用户预先在SDP消息推送装置中登记的紧急消息(例如该第二通知消息为通知有重要客户发来邮件),则SDP消息推送装置可以采用直接下发。\n[0049] 若下发方式为直接下发,则触发步骤204;若下发方式为条件式下发,则触发步骤\n205。\n[0050] 具体的下发方式可以由用户预先在SDP消息推送装置中登记的内容确定,也可以由运营商根据网络状态、网络带宽和用户需求等因素来确定。具体由哪一方确定下发方式,此处不作限定。\n[0051] 204、直接下发;\n[0052] 若采用的是直接下发,SDP消息推送装置则处理完一条第二通知消息后,就马上向IM服务器发送这条协议统一的第二通知消息,使得IM服务器向用户终端发送该第二通知消息。\n[0053] 205、条件式下发;\n[0054] 若采用的是条件式下发,SDP消息推送装置则按照通知策略向IM服务器发送协议统一的第二通知消息,使得IM服务器向用户终端发送该第二通知消息。\n[0055] 该通知策略包括系统预置的通知策略和用户设置的通知策略。系统预置的通知策略是对所有用户都有效的默认策略,当用户没有自定义控制策略时,SDP消息推送装置则采用系统预置的通知策略下发;用户设置的通知策略是根据用户自身的喜好和需求自定义的通知策略。\n[0056] 具体通知策略的内容包括通知消息下发的频率和通知消息一次所下发的条数,若用户的习惯是一周查看一次通知消息,则通知消息下发的频率设置为一周一次;若用户的手机信息容量受限,则可根据手机信息容量设置通知消息一次所下发的条数;或者用户基于自身各种条件因素的考虑,可以同时设置通知消息下发的频率和一次所下发的条数,以更灵活的满足自身的需求。\n[0057] 本发明实施例中,具体的下发方式可以根据网络状态、网络带宽和用户需求等情况进行确定,提高了网络利用效率和用户体验。\n[0058] 在根据网络状态、网络带宽和用户需求等情况确定了下发方式之后,用户还可以根据上述的条件来设置通知策略。\n[0059] 为了便于理解,下面以一具体实施例对本发明实施例中的SDP消息推送方法进行描述,请参阅图3,本发明实施例中的SDP消息推送方法另一实施例包括:\n[0060] 301~302、本实施例中的步骤301和302的内容与前述图2所示的实施例中步骤\n201和202的内容相同,此处不再赘述。\n[0061] 303、选择下发方式;\n[0062] 具体的下发方式可以根据网络状态、网络带宽和用户需求等情况进行确定,具体的下发方式包括直接下发和条件式下发。\n[0063] 若当前网络状态拥挤,不适宜逐条实时地下发第二通知消息,即不能直接下发,则采用条件式下发,先将第二通知消息进行缓存,然后按照系统或用户所设置的通知策略进行下发。\n[0064] 若下发方式为直接下发,则触发步骤304;若下发方式为条件式下发,则触发步骤\n305。\n[0065] 具体的下发方式可以由用户通过手机终端预置的接收模式来确定,也可以由运营商根据网络状态、网络带宽和用户需求等因素来确定。具体由哪一方确定下发方式,此处不作限定。\n[0066] 304、直接下发;\n[0067] 本实施例中的步骤304的内容与前述图2所示的实施例中步骤204的内容相同,此处不再赘述。\n[0068] 305、缓存第二通知消息;\n[0069] 若下发方式为条件式下发,SDP消息推送装置则先缓存第二通知消息。\n[0070] 306、判断是否需要合并;\n[0071] 根据通知策略判断是否需要对缓存后的第二通知消息进行合并,若不需要,则直接触发步骤308;若需要,则触发步骤307。\n[0072] 该通知策略的内容包括通知消息下发的频率和通知消息一次所下发的条数,例如,通知策略为每5分钟将所有的第二通知消息发送给IM服务器,每次只能下发5条第二通知消息,但SDP消息推送装置在5分钟内缓存了10条第二通知消息,则此时就需要对第二通知消息进行合并。\n[0073] 307、合并第二通知消息;\n[0074] 根据该通知策略对缓存后的第二通知消息进行合并,得到新的第二通知消息。\n[0075] 例如,若步骤306中确定需要进行合并,则SDP消息推送装置将5分钟内缓存的10条第二通知消息合并为5条以内新的第二通知消息。\n[0076] 308、发送第二通知消息;\n[0077] SDP消息推送装置向IM服务器发送协议统一的第二通知消息,使得IM服务器向用户终端发送该第二通知消息。\n[0078] SDP消息推送装置具体可以通过以下方式发送第二通知消息:\n[0079] 一、当达到预置周期时,向IM服务器发送该预置周期内缓存的所有第二通知消息,该预置周期可以为系统的预设值,也可以是用户设定的;\n[0080] 二、当缓存的第二通知消息达到预置数目时,向IM服务器发送缓存的第二通知消息,该预置数目可以为系统的预设值,也可以是用户设定的;\n[0081] 三、结合第二通知消息的数目和预置时间,设置并列的条件进行发送。如:若缓存的第二通知消息达到预置数目,则向IM服务器发送缓存的第二通知消息;若缓存的第二通知消息未达到预置数目,但缓存的时间达到预置周期,则向IM服务器发送该预置周期内缓存的所有第二通知消息。\n[0082] 309、判断发送是否成功;\n[0083] SDP消息推送装置向IM服务器发送协议统一的第二通知消息之后,判断是否接收到IM服务器反馈的发送成功报告,若接收到,则触发步骤310;若没有收到,则触发步骤\n311。\n[0084] 310、删除缓存;\n[0085] 若接收到IM服务器反馈的发送成功报告,且发送时采用条件式下发,则删除缓存的第二通知消息。\n[0086] 311、重发第二通知消息;\n[0087] 若未接收到IM服务器反馈的发送成功报告,则按照预置的重发规则向IM服务器重发该第二通知消息。\n[0088] 预置的重发规则可以为:向IM服务器重发该第二通知消息,并要求IM服务器以TCP方式主动连接用户终端,当IM服务器多次以TCP方式主动连接用户终端发送该第二通知消息仍未成功,则要求IM服务器改用短信息方式发送该第二通知消息。\n[0089] 上述的重发规则仅为实际应用中的一个例子,可以理解的是,重发规则同样还可以有另外的重发过程,具体此处不作限定。\n[0090] 本实施例中通过步骤309的判断机制判断通过IM服务器发送第二通知消息是否成功,若成功则删除缓存的第二通知消息,若不成功,则触发重发机制。步骤309至311为本实施例中的可选方案,不作具体限定。\n[0091] 本发明实施例中,详细地描述了当下发方式为条件式时,用户可以更自由的根据自身的需求(如:身处的环境,用户终端的性能)设定通知策略,减少了通知消息下发的频率,提高了通知消息的可靠性,而且当用户终端没有成功的收到第二通知消息时,本发明提供了自动重发的机制,使用户最大可能的收到各业务平台所发送的消息,更进一步的提高了网络利用效率和用户服务体验。\n[0092] 上面是从SDP消息推送装置侧的角度对本发明实施例中的SDP消息推送方法进行了描述,下面从IM服务器侧进行对本发明实施例中的SDP消息推送方法进行描述,请参阅图4,本发明实施例中的SDP消息推送方法另一实施例包括:\n[0093] 401、接收第二通知消息;\n[0094] IM服务器接收SDP消息推送装置所发送的第二通知消息,该第二通知消息是由SDP消息推送装置对由业务平台发送的第一通知消息进行统一协议转换所得到。\n[0095] 402、建立IM网络连接;\n[0096] IM服务器与用户终端建立IM网络连接,并记录用户终端的IP地址。\n[0097] IM网络通道所使用的协议可以包括XMPP协议和SIP协议,在实际应用中,IM通道还可以使用其他即时通信协议,具体此处不做限定。\n[0098] 403、发送第二通知消息;\n[0099] IM服务器优先通过该IM网络连接向用户终端发送该第二通知消息,本发明的IM服务器具有IM、TCP、SMS三种通道,由于一般SDP消息推送装置会将第一通知消息统一转换为XMPP协议的第二通知消息,而XMPP协议是IM通道默认的协议,所以IM服务器会优先选择IM网络连接发送该第二通知消息。\n[0100] 404、记录IP状态,清零TCP计数器;\n[0101] IM服务器记录该用户终端的IP状态,IP状态用于指示用户终端当前的IP地址是否可用。\n[0102] IM服务器将TCP计数器清零,TCP计数器记录了IM服务器向用户终端发起主动连接的次数,当超过某一阈值时,IM服务器将不会再发起TCP连接。\n[0103] 405、判断发送是否失败;\n[0104] IM服务器判断通过该IM网络连接发送第二通知消息是否失败,若是,则触发步骤\n407;若否,则触发步骤406。\n[0105] 通过IM网络连接发送第二通知消息是否失败可以根据IM服务器和终端之间的协议来判断。\n[0106] 406、反馈发送成功报告;\n[0107] 若IM服务器通过IM网络连接向用户终端发送第二通知消息成功,或通过TCP连接、短信息方式向用户终端发送第二通知消息成功,则向消息推送装置反馈发送成功报告,使得消息推送装置删除该第二通知消息的缓存。\n[0108] 407、判断IP状态是否可用;\n[0109] IM服务器判断该用户终端的IP状态是否可用,若不可用,则直接触发步骤412;若可用,则触发步骤408。\n[0110] 408、建立TCP连接;\n[0111] IM服务器主动发起与用户终端的TCP连接,用于与用户终端建立TCP网络通道,发送第二通知消息。\n[0112] 409、判断建立TCP连接是否成功;\n[0113] IM服务器判断与用户终端建立TCP连接是否成功,若成功,则触发步骤411;若不成功,则更新TCP计数器,使TCP连接失败计数加一,并触发步骤410。\n[0114] 410、判断TCP计数器是否达到阈值;\n[0115] IM服务器判断TCP计数器的累加计算是否达到预置数值,若达到,则直接触发步骤412并设置该用户终端的IP状态为不可用;若未达到,则继续尝试与该用户终端建立TCP连接。\n[0116] 411、通过TCP发送第二通知消息;\n[0117] 若IM服务器与用户终端建立TCP连接成功,则通过该TCP连接向该用户终端发送第二通知消息,在发送成功后关闭TCP通道,向用户终端发送重连通知消息,该重连通知消息用于指示用户终端主动发起重连请求。\n[0118] 412、通过短信息发送第二通知消息;\n[0119] 若IM服务器与用户终端建立TCP连接不成功,通过短信息方式向用户终端发送第二通知消息,在发送成功后向用户终端发送重连通知消息,该重连通知消息用于指示用户终端主动发起重连请求。\n[0120] 本发明实施例在优先采用IM通道下发第二通知消息失败的情况下,采用备用的TCP通道下发,其次再采用短信息的方式下发,使用户可以最大可能的随时在线接收通知,提高了用户体验。\n[0121] 当通过TCP通道向用户终端发送第二通知消息,或以短消息方式向用户终端发送第二通知消息之后,IM服务器会向用户终端发送重连通知消息,用于指示用户终端主动发起重连,保证了在下一次通知消息下发时优先以IM通道下发,同时提供给用户终端了一个统一的断连唤醒机制,使得用户终端不会胡乱的发起重连,节省了用户终端的耗电量。\n[0122] 在通过IM网络连接发送第二通知消息失败后,还可以执行以下步骤,断开IM网络连接,本发明实施例中的SDP消息推送方法另一实施例包括:\n[0123] 一、断开IM网络连接;\n[0124] IM服务器在建立IM网络连接之后,由于通过IM网络连接发送第二通知消息失败,所建立的IM网络连接可能长时间闲置,浪费了网络资源,故若在一段预置时间之内,所建立的网络连接没有任何数据流传输,则断开该IM网络连接。\n[0125] 二、再次接收第二通知消息;\n[0126] IM服务器再次接收新的第二通知消息,并判断新的第二通知消息中是否含有IM消息,若有,则触发步骤三,若没有,则触发步骤四。\n[0127] 三、重连IM网络;\n[0128] 若该新的第二通知消息中包含有IM消息,则在IM服务器接收到新的第二通知消息后,重新与用户终端建立IM网络连接,便于更快速便捷的发送新的第二通知消息。\n[0129] 四、建立TCP或短消息连接;\n[0130] 若该新的第二通知消息中没有包含有IM消息的内容,则与用户终端建立传输控制协议TCP连接并通过TCP连接向该用户终端发送第二通知消息,或直接以短消息的方式向该用户终端发送第二通知消息。\n[0131] 本实施例描述了在通过IM网络连接发送第二通知消息失败的情况下,断开IM网络连接,节省了网络资源;并在后续再收到新的第二通知消息时,根据第二通知消息的内容判断该建立什么连接,更有效的提高了发送第二通知消息的效率。\n[0132] 为了便于理解,下面以一具体应用场景对上述的实施例中描述的SDP消息推送方法再进行详细描述,请参考图5,具体为:\n[0133] 501、业务平台发生事件,下发通知;\n[0134] 业务平台发生事件,需要下发通知,这些事件如:新增好友通知,有新邮件到达或好友博客更新通知,业务平台需要调用SDP消息推送装置的接口以发送通知。称上述通知为第一通知消息,第一通知消息的内容包括(QQ.A.B.2),“QQ”表示是由QQ业务平台下发的,“A”表示接收方地址,“B”表示发送方地址,“2”表示有两条消息。\n[0135] 502、统一协议转换;\n[0136] SDP消息推送装置调用与IM服务器的通知接口,获取第一通知消息的协议类型(如:Email采用的是IMAP协议),并对第一通知消息进行解封装,得到消息内容的参数;然后根据该协议类型(IMAP协议)在协议类型映射关系中查找对应的映射关系;在SDP消息推送装置中存储了各种协议类型统一转换为预置协议类型的映射关系(如:管理员设置了预置的协议类型为XMPP协议,所有业务平台的通知消息的协议类型都统一转换为XMPP协议,则该映射关系为:IMAP协议-XMPP协议),和具体的参数转换内容,只要在协议类型映射关系中查找到对应的映射关系,进行相应参数的映射转换,就可以将第一通知消息转换为预置协议类型(XMPP协议)的第二通知消息。\n[0137] 503、查询通知策略;\n[0138] SDP消息推送装置查询通知策略,如果通知策略指示为直接下发,则将第二通知消息直接下发给IM服务器;如果通知策略指示为条件式下发,则先将接收的第二通知消息缓存下来。\n[0139] 假设通知策略所设置的条件是通知策略为每5分钟将所有的第二通知消息发送给IM服务器,每次只能下发5条第二通知消息。但SDP消息推送装置在该5分钟内缓存了\n10条第二通知消息,其中包括:(mail.C.D.3),(QQ.A.B.2),(MSN.E.F.2)等,则SDP消息推送装置根据通知策略将每两条第二通知消息合并为一条新的第二通知消息,如:【(mail.C.D.3);(QQ.A.B.2)】。\n[0140] 或假设通知策略的条件是每5分钟,且第二通知消息达到三条时下发。SDP消息推送装置在该5分钟内缓存的第二通知消息包括:(mail.C.D.3),(QQ.A.B.2),(MSN.E.F.2)等,则SDP消息推送装置根据通知策略将3条通知消息合并为一条新的第二通知消息,如:\n【(mail.C.D.3);(QQ.A.B.2);(MSN.E.F.2)】。\n[0141] 504、发送第二通知消息;\n[0142] SDP消息推送装置根据通知策略向IM服务器发送第二通知消息。下发的通知策略可以每次发一条或若干条,由用户设定。下发时可以逐条发送,或先合并在一起再发送,只要符合所设定的通知策略就行。\n[0143] 505、与用户终端建立XMPP连接;\n[0144] IM服务器与用户终端建立XMPP连接,并记录用户终端的IP地址、当前的IP状态,将TCP计算器清零。\n[0145] 506、发送第二通知消息;\n[0146] IM服务器通过XMPP连接发送第二通知消息。\n[0147] 507、判断通过XMPP连接发送成败;\n[0148] IM服务器与用户终端进行数据链接的检测,若IM服务器在发送第二通知消息后,\n20秒内未收到用户终端的任何反馈,则确定通过该XMPP网络连接发送第二通知消息失败,触发步骤508;\n[0149] 若收到用户终端的反馈,则确定通过该XMPP网络连接发送第二通知消息成功,触发步骤513返回成功发送的状态报告。\n[0150] 508、判断IP状态是否可用;\n[0151] IM服务器判断该用户终端当前的IP状态是否可用,若不可用,则直接触发步骤\n513通过短信息发送;若可用,则触发步骤509。\n[0152] 509、建立TCP连接;\n[0153] IM服务器主动发起与用户终端的TCP连接,用于与用户终端建立TCP网络通道,发送第二通知消息。\n[0154] 510、判断建立TCP连接是否成功;\n[0155] IM服务器判断与用户终端建立TCP连接是否成功,若成功,则触发步骤512;若不成功,则更新TCP计数器,使TCP连接失败计数加一,并触发步骤511。\n[0156] 511、判断TCP计数器是否达到阈值;\n[0157] IM服务器判断TCP计数器的累加计算是否达到预置数值,若达到,则直接触发步骤513并设置该用户终端的IP状态为不可用;若未达到,则继续尝试与该用户终端建立TCP连接。\n[0158] 512、通过TCP发送第二通知消息;\n[0159] 若IM服务器与用户终端建立TCP连接成功,则通过该TCP连接向该用户终端发送第二通知消息,在发送成功后关闭TCP通道,并触发步骤514返回成功发送的状态报告。\n[0160] 513、通过短信息发送第二通知消息;\n[0161] 若IM服务器与用户终端建立TCP连接不成功,通过短信息方式向用户终端发送第二通知消息,并触发步骤514返回成功发送的状态报告。\n[0162] 514、返回成功发送的状态报告;\n[0163] IM服务器向SDP消息推送装置返回成功发送的状态报告。\n[0164] 515、删除第二通知消息;\n[0165] SDP消息推送装置在收到IM服务器返回的成功发送的状态报告后,删除该5分钟内缓存的第二通知消息。\n[0166] 下面对用于执行上述SDP消息推送方法的本发明SDP消息推送装置的实施例进行说明,其逻辑结构请参考图6,本发明实施例中的SDP消息推送装置一个实施例包括:\n[0167] 通知消息获取单元601:用于获取业务平台发送的第一通知消息;\n[0168] 协议转换单元602:用于当通知消息获取单元获取到第一通知消息之后,对该第一通知消息进行统一协议转换,得到协议统一的第二通知消息;\n[0169] 通知消息发送单元603:用于在得到协议统一的第二通知消息之后,通过IM服务器向用户终端发送第二通知消息。\n[0170] 本发明实施例中的SDP消息推送装置还可以进一步包括:\n[0171] 查询单元604,用于对第一通知消息进行统一协议转换得到协议统一的第二通知消息之后,根据第一通知消息中的通知消息类型以及接收方地址查询对应的通知策略;\n[0172] 策略判断单元605,用于根据通知策略判断下发第二通知消息的方式为直接下发或条件式下发,若为直接下发,则触发通知消息发送单元603执行相应操作;若为条件式下发,则触发缓存单元606执行相应操作;\n[0173] 缓存单元606,用于当通知策略指示为条件式下发时,根据通知策略对第二通知消息进行缓存;\n[0174] 合并判断单元607,用于根据通知策略对第二通知消息进行缓存之后,判断是否需要对缓存后的第二通知消息进行合并,若需要,则触发合并单元608执行相应操作;若不需要,则直接触发通知消息发送单元603执行相应操作;\n[0175] 合并单元608,用于根据通知策略对缓存后的第二通知消息进行合并,并得到新的第二通知消息,触发通知消息发送单元603执行相应操作。\n[0176] 本发明实施例中SDP消息推送装置的协议转换单元602还可以进一步包括:\n[0177] 协议类型获取单元,用于获取第一通知消息的协议类型;\n[0178] 解封装单元,用于对第一通知消息进行解封装得到消息内容;\n[0179] 查找单元,用于根据第一通知消息的协议类型在协议类型映射关系中查询对应的统一协议类型;\n[0180] 封装单元,用于按照统一协议类型对该消息内容进行封装,得到第二通知消息。\n[0181] 本发明实施例SDP消息推送装置的各个单元具体的交互过程如下:\n[0182] 通知消息获取单元601获取业务平台发送的第一通知消息,协议转换单元602对获取到的第一通知消息进行统一协议转换,得到协议统一的第二通知消息。\n[0183] 然后查询单元604根据第一通知消息中的通知消息类型以及接收方地址查询到对应的通知策略,该通知策略的内容包括通知消息下发的频率和通知消息一次所下发的条数。策略判断单元605根据通知策略判断下发第二通知消息的方式为直接下发或条件式下发。\n[0184] 若为直接下发,则触发通知消息发送单元603向IM服务器发送该第二通知消息,使得IM服务器向用户终端发送该第二通知消息;\n[0185] 若下发方式为条件式下发,则缓存单元606通知策略先缓存第二通知消息,缓存的主要目的有两个,一是统一时间发送一定数量的第二通知消息;二是当第二通知消息发送失败后进行重发。然后合并判断单元607根据通知策略判断是否需要对缓存后的第二通知消息进行合并。若需要,则触发合并单元608根据通知策略对缓存后的第二通知消息进行合并,并得到新的第二通知消息,再触发通知消息发送单元603向IM服务器发送该第二通知消息;若不需要,则直接触发通知消息发送单元603向IM服务器发送该第二通知消息。\n[0186] 下面对用于执行上述SDP消息推送方法的本发明IM服务器的实施例进行说明,其逻辑结构请参考图7,本发明实施例中的IM服务器一个实施例包括:\n[0187] 接收单元701,用于接收SDP消息推送装置所发送的第二通知消息,第二通知消息是由SDP消息推送装置对由业务平台发送的第一通知消息进行统一协议转换所得到;\n[0188] 第一连接单元702,用于在接收单元701接收到该第二通知消息之后,与用户终端建立IM网络连接;\n[0189] 第一发送单元703,用于第一连接单元702与用户终端建立IM网络连接之后,优先通过该IM网络连接向用户终端发送第二通知消息。\n[0190] 发送判断单元704,用于判断通过该IM网络连接发送第二通知消息是否失败,若是,则触发第二连接单元705或第三发送单元707执行相应操作;\n[0191] 第二连接单元705,用于与用户终端建立传输控制协议TCP连接;\n[0192] 第二发送单元706,用于通过TCP连接向用户终端发送第二通知消息;\n[0193] 第三发送单元707,用于直接以短消息的方式向用户终端发送第二通知消息。\n[0194] 本发明实施例中的IM服务器的第二连接单元705还可以进一步包括:\n[0195] 记录单元7051,用于在第一连接单元702与用户终端建立IM网络连接之后,记录用户终端的IP状态是否可用;\n[0196] TCP计数控制单元7052,用于在第二连接单元705与用户终端建立TCP连接之前,对TCP计数器进行清零操作;\n[0197] TCP计数单元7053,用于在建立TCP连接不成功时,TCP计数器加一;\n[0198] 状态判断单元7054,用于在第二连接单元与用户终端建立TCP连接之前,判断用户终端的IP状态是否可用,若不可用,则触发第三发送单元执行相应操作,若可用,则与用户终端建立TCP连接;\n[0199] 连接判断单元7055,用于判断建立TCP连接是否成功,若成功,则触发第二发送单元706执行相应操作,若不成功,则触发数值判断单元7056和TCP计数单元7053执行相应操作;\n[0200] 数值判断单元7056,用于判断TCP计数器是否达到预置数值,若达到,则触发第三发送单元707执行相应操作,并触发记录单元7051记录该用户终端的IP状态为不可用,若未达到,则触发第二连接单元705与用户终端建立TCP连接。\n[0201] 本发明实施例IM服务器的各个单元具体的交互过程如下:\n[0202] 接收单元701接收SDP消息推送装置所发送的第二通知消息,为了转发第二通知消息,第一连接单元702与用户终端建立IM网络连接,并记录用户终端的IP地址,在连接建立后,第一发送单元703优先通过该IM网络连接向用户终端发送第二通知消息。\n[0203] 发送判断单元704根据IM服务器和终端之间的协议来判断通过IM网络连接发送第二通知消息是否失败。若是,则触发第二连接单元705与用户终端建立传输控制协议TCP连接,或第三发送单元707直接以短消息的方式向用户终端发送第二通知消息。\n[0204] 本发明实施例用TCP通道发送第二通知消息优先于用短信消息发送,具体在什么时候建立TCP连接,什么时候以短消息的方式向用户终端发送第二通知消息,在第二连接单元705的子单元中有完整的判断机制:在建立TCP连接之前,记录单元7051记录用户终端的IP状态是否可用,TCP计数控制单元7052将TCP计数器清零,然后状态判断单元7054判断用户终端的IP状态是否可用,若不可用,则直接触发第三发送单元707,若可用,则与用户终端建立TCP连接。连接判断单元7055判断建立TCP连接是否成功,若成功,则触发第二发送单元706通过TCP连接向用户终端发送第二通知消息;若不成功,则触发TCP计数单元7053更新TCP连接次数,并触发数值判断单元7056判断TCP计数器是否达到预置数值。若达到阈值,则触发第三发送单元707,若未达到,则触发第二连接单元705继续与用户终端建立TCP连接。\n[0205] 下面对用于执行上述SDP消息推送方法的本发明SDP消息推送系统的实施例进行说明,其逻辑结构请参考图8,本发明实施例中的SDP消息推送系统一个实施例包括:\n[0206] SDP消息推送装置801,用于获取业务平台发送的第一通知消息;对第一通知消息进行统一协议转换,得到协议统一的第二通知消息;通过IM服务器向用户终端发送第二通知消息。\n[0207] 即时消息IM服务器802,用于接收SDP消息推送装置所发送的第二通知消息,与用户终端建立IM网络连接;优先通过IM网络连接向该用户终端发送该第二通知消息;判断通过IM网络连接发送第二通知消息是否失败,若是,则与用户终端建立传输控制协议TCP连接并通过TCP连接向该用户终端发送第二通知消息,或直接以短消息的方式向该用户终端发送第二通知消息。\n[0208] 上述系统应用于如图5实施例中所描述的应用场景。\n[0209] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。\n[0210] 以上对本发明所提供的一种业务分发平台消息推送方法、相关设备及系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
法律信息
- 2014-01-01
- 2011-09-28
实质审查的生效
IPC(主分类): H04W 4/12
专利申请号: 201010273420.9
申请日: 2010.09.02
- 2011-08-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-09-24
|
2008-05-05
| | |
2
| |
2008-07-02
|
2007-01-12
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |