CN101925028B - 一种短消息网关及其短消息异网互通处理方法 - Google Patents

一种短消息网关及其短消息异网互通处理方法 Download PDF

Info

Publication number
CN101925028B
CN101925028B CN 200910147853 CN200910147853A CN101925028B CN 101925028 B CN101925028 B CN 101925028B CN 200910147853 CN200910147853 CN 200910147853 CN 200910147853 A CN200910147853 A CN 200910147853A CN 101925028 B CN101925028 B CN 101925028B
Authority
CN
China
Prior art keywords
short message
connection
interface machine
message
gateway
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200910147853
Other languages
English (en)
Other versions
CN101925028A (zh
Inventor
杨丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Luoyuan Product Quality Inspection Institute
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN 200910147853 priority Critical patent/CN101925028B/zh
Publication of CN101925028A publication Critical patent/CN101925028A/zh
Application granted granted Critical
Publication of CN101925028B publication Critical patent/CN101925028B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种异网互通性能较好的短消息网关及其采用的短消息异网互通处理方法,本发明短消息网关包括一个接口机和多个业务处理机,其中接口机负责发送和接收短消息,以及在接收到短消息后根据本发明特定的分布式算法将其分派给各业务处理机处理;接口机在发送短消息时与其它短消息网关之间的TCP连接的数量大于一个,并且连接数是动态调整的,本发明提供了设定固定流量阀值调整和根据各连接负荷自适应调整两种调整方式,当多条连接中编号非最大的一条断链时,将该断链之后的所有连接编号均减1;业务处理机中选定一个作为主业务处理机,本网业务和发送方向的短消息业务均由主业务处理机处理。

Description

一种短消息网关及其短消息异网互通处理方法
技术领域
本发明属于短消息处理技术领域,尤其涉及一种短消息网关及该网关采用的短信息异网互通处理方法。
背景技术
短消息业务由于自身方便快捷、经济实用、覆盖面广等特点,已经成为传递非正式消息的标准方式,并应用于人们生活的各个方面。而短消息网关承担着短消息在各个网元之间中转交换的责任,是整个短消息业务中的核心网元。在很多时候,短消息需要从一个运营商的网络传输到另一个运营商的网络,则短消息需要在短消息网关之间进行传递,在消息量很大的情况下,就会存在性能的问题。
传统的短消息网关如图1所示,它与其他短消息网关之间采用的都是单链路的方式来进行连接的,即与其他短消息网关之间只保持一条TCP物理链路,所有消息都在这条链路上发送;短消息网关的业务处理也全部集中在一个服务器上进行。传统的短消息网关的工作流程大致如下:短消息网关启动时,会主动与其他运营商的短消息网关建立一条TCP连接;当网关接收到消息时,首先进行业务流程的处理,判断出需要把消息转发至哪一个网元;如果判断出需要将消息转发到另一个短消息网关,则本网关会找到与对方网关之间的那条TCP连接,然后通过这条TCP连接把消息发送到对方网关。
从以上的工作流程可以看出,传统的短消息网关与其他网关之间是通过一条连接来传输消息的,其业务处理也是在一个节点上进行的。这种方式虽然简单易于实现,但是在消息流量较大时,或者物理网络较为拥塞时,短消息就有可能会在网络上或是在短消息网关的消息发送队列上大量积压;即使网络条件足够好,大量需要处理的消息也可能会超过网关本身处理能力的极限,从而导致短消息的大量丢失。由此可见,传统的基于单连接单节点的短消息网关存在互通性能较差的缺点。
发明内容
本发明要解决的技术问题是提供一种异网互通性能较好的短消息网关及该网关采用的短消息异网互通处理方法。
为解决上述技术问题,本发明短消息网关包括接口机和业务处理机;
所述接口机负责发送和接收短消息,以及在接收到短消息后交由所述业务处理机处理;
其中,所述接口机在负责向其它短消息网关发送短消息时,其与所述其它短消息网关之间建立的TCP连接的数量大于一个;
所述业务处理机负责对所述短消息进行具体业务处理,即所述业务处理机负责路由、鉴权等具体的短消息网关业务的处理。
作为本发明的一种改进,所述业务处理机的个数超过一个;则其中一个为主业务处理机,所述主业务处理机负责处理本网业务和发送方向的异网互通业务,以及所述接口机交给其的接收方向的异网互通业务;其它各业务处理机负责处理接口机交给其的接收方向的异网互通业务。
当所述业务处理机的个数超过一个时,所述接口机在负责将接收到的短消息交给所述各业务处理机时,其采用的分配方案可以为:
1、接口机从所述其它短消息网关接收到短消息后,得到发送该短消息的TCP连接的编号linkid;
2、接口机获取当前业务处理机的个数n,这些业务处理机已经从1到n进行编号;
3、接口机计算i=linkid%n,其中%为取模运算;
4、若步骤3中计算得到i等于0,则将i置为n;
5、接口机将该条短消息分派到第i号业务处理机进行处理。
为解决上述技术问题,本发明短消息网关采用的短消息异网互通处理方法包括:
当需要将短消息转发给其它短消息网关时,由所述业务处理机完成路由,然后由所述接口机发送出去;
当接收到其它短消息网关发来的短消息时,所述接口机将该短消息交由所述业务处理机进行处理。
进一步地,本发明短消息网关采用的短消息异网互通处理方法还包括按照如下方式对所述接口机与所述其它短消息网关之间的TCP连接的个数进行动态调整:
第一种方式:
所述接口机启动时,主动向所述其它短消息网关建立一条连接;
预设一个消息流量间隔阀值,则所述接口机定时检查与所述其它短消息网关之间的消息流量大小,当该消息流量每增加或减少所述消息流量间隔阀值时,相应地所述接口机增加或减少一个与所述其它短消息网关之间的连接。
为了防止由于流量的突变而可能引起的同一时间出现大量的建链或断链请求的情况发生,对所述第一种方式进行修改得到以下方式:
所述接口机启动时,主动向所述其它短消息网关建立一条连接;
预设一个消息流量间隔阀值,则所述接口机定时检查与所述其它短消息网关之间的消息流量大小,凡该消息流量增加或减少超过所述消息流量间隔阀值时,无论具体增减多少,均只增加或减少一个所述接口机与所述其它短消息网关之间的连接。
针对以上TCP连接动态调整方式,所述接口机是采用循环发送机制,即循环使用各条TCP连接的机制,向所述其它短消息网关发送短消息的。
第二种方式:
所述接口机启动时,主动向所述其它短消息网关建立一条连接;
接口机定时检查与所述其它短消息网关之间的各条连接的负荷情况,如果有消息需要发送,且所有连接均达到满负荷,则增加连接;如果某条连接上没有消息发送,则断开该条连接。
针对该TCP连接动态调整方式,所述接口机在向所述其它短消息网关发送短消息时,是采用优先在较早建立的TCP连接上发送短消息的机制的。
更进一步地,本发明设定一个TCP最大连接数,在对所述接口机与所述其它短消息网关之间的TCP个数进行调整时,保证所述接口机与所述其它短消息网关之间的TCP个数不超过该最大连接数。
更进一步地,当所述接口机与所述其它短消息网关之间存在两条以上的连接,且连接编号linkid非最大的一条连接异常断链时,将该断链之后的所有连接的编号linkid值减1。这样就填补了连接编号linkid的间断,使得短消息网关重新回到正常状况。
本发明的有益效果为:
与现有技术相比较,本发明所提供的短消息网关,通过一条以上并行的连接来发送短消息,大大降低了每一条连接的负载;本发明采用一个以上的业务处理机,这些业务处理机采用分布式的业务处理方式,大大提高了整个网关系统的处理能力;同时,本发明对于短消息网关与其它短消息网关之间的并行的TCP连接提供了两种动态调整方式,最大程度的减小了因引入多连接和分布式计算而增加的系统和网络资源,以最小的代价就换取了短消息处理性能的显著提高。
附图说明
图1是传统短消息网关之间传递短消息的工作模式;
图2是本发明的短消息网关之间传递短消息的工作模式;
图3是本发明中短消息网关的内部体系结构。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
本发明的目的在于提供一种采用动态多连接的短消息网关及其工作方法,以克服传统短消息网关由于采用单连接工作方式而导致的互通性能较差的问题,有效提高短消息网关的消息处理能力。
由于本发明的主要目的在于提高一种短消息异网互通处理性能较好的短消息网关,因此,以下主要结合短消息异网互通处理流程对本发明短消息网关进行说明,而忽略了本发明短消息网关对本网业务的处理流程,而本发明短消息网关的功能当然也包括对本网业务的处理。因此,若无其它说明,下文提到的接口机接收方向或发送方向的业务处理均是指接口机与其它短消息网关之间的消息传递处理。
首先,网关系统由接口机和业务处理机组成,业务处理机可以为一个,也可以为一个以上,以下针对业务处理机为一个以上的情况进行具体说明。包括其他短消息网关在内的外部网元都与接口机连接,接口机接收到短消息后,负责将短消息分派到各个业务处理机进行业务流程的处理;处理完毕后,业务处理机又将短消息传给接口机,由接口机进行转发。
多个业务处理机中,设定一个为主业务处理机,对于本网业务以及发送方向的异网互通业务,全部由主业务处理机进行处理;而对于接收方向的异网互通业务,接口机根据接收链路的连接编号来确定送往哪一个业务处理机进行处理,这就实现了由多连接驱动的分布式计算。另外,当主业务处理机处理性能达到极限时(如CPU占用率超过了一个阀值),也可以将业务处理任务分摊到其他业务处理机上进行处理。
接口机与其他短消息网关之间采用动态多连接的方式进行连接,具体如下:
发送方向:首先,在接口机启动时,主动向其他网关建立一条连接,并为这条连接设置连接编号为1。接口机与其他网关之间连接数的动态变化机制,可以采取两种方式,一种是在网关设置固定的消息流量间隔阀值,每增加一个阀值的流量则增加一个连接;另一种是根据每条链路当前负荷情况进行自适应调整。如果采用设置固定的流量间隔阀值的方式,则接口机定时检查与其他网关之间的消息流量大小,每增加该阀值的流量,则接口机在保持已有连接不变的情况下,再向对方网关建立一条连接,并为其设置一个新的连接编号,具体如图2所示,图中虚线表示当消息流量较大时新增的连接;当前流量值每减少设置的阀值量的时候,则断开一个连接,优先断开连接编号较大的连接。这种方式的优点是实现简单,算法效率高。如果采用自适应调整的方式,则接口机定时检查与其他网关之间的每条连接的负荷情况,如果所有连接都达到满负荷,则说明可能需要增加连接,但是考虑到此时流量可能已经达到峰值,不一定会继续增加,因此,此时并不增加连接,而是在有消息发送时,再对所有连接是否满负荷进行判断,如果满负荷,那时再增加连接;如果某一条连接上没有消息发送,则断开该条连接。这种方式的优点就是能够根据网络的当前情况自适应的增加或减少连接数,但实现较为复杂。
当接口机接收到短消息处理中心发来的短消息并发送给业务处理机完成路由后,如果目的网元是异网的互通网关,则接口机会将消息分派到某一条连接上进行发送。在前面两种方式的情况下,接口机分派短消息到不同链路发送的处理也是不同的。如果采用的是设置固定阀值的方式,则循环使用当前与对方网关之间建立的多条连接来发送消息。当网关需要发送一条消息到异网的互通网关,则通过本网关与对方网关之间多条连接中的一条把消息发送到对方网关,然后记录下当前使用连接的连接编号;以后如果需要再次转发消息到该网关,则先判断之前使用的那条连接的后一条连接是否仍然存在,如果存在,则通过这条连接将消息转发出去,如果不存在则从第一条连接转发消息,然后还需要更新当前使用连接的连接编号。如果采用的是自适应调整的方式,则消息优先在第1条连接上发送,如果第1条连接达到满负荷,才会通过第2条连接发送消息;如果第2条连接达到满负荷,才会通过第3条连接发送消息,以此类推;如果所有的连接均已满负荷,则说明需要增加连接,于是增加一条连接,并通过这条连接发送消息。之所以要这样设计,为了能充分发挥这种方式能够根据网络情况进行自适应调整的优势。
接收方向:首先,当接收到其他网关发起的连接请求后,只要连接总数在最大连接数的范围内,则接口机不进行限制,同意与其他网关之间建立多条连接;接口机为每一条连接设置一个连接编号来管理多条连接;接口机从某一条连接中接收到消息,则选择与这条连接相对应的业务处理机,将消息分派到这个业务处理机进行处理。另外,在其他网关发起连接请求时,本网关只对这个连接请求的用户名、密码进行鉴权,而不对对方的IP地址进行鉴权。这样,对方网关就可以在不同地址上进行登录且都能成功,而且,如果对方网关本身是一个分布式的系统,存在多个服务节点,则我们也能够支持它的多个节点的同时登录。
本发明短消息网关设计成一个分布式的架构,如图3所示。整个网关由一个接口机和多个业务处理机组成。接口机负责发送和接收短消息,以及在接收到短消息后分派到各个业务处理机进行处理。而业务处理机负责路由、鉴权、计费等具体的流程处理,各业务处理机可以分别放置在不同的服务器上,这样便于提高效率。接口机为每个业务处理机分配一个编号,假设有n个业务处理机,则编号从1开始一直到n。业务处理机有主次之分,编号为1的业务处理机是主业务处理机。一般情况下,对于本网业务和发送方向的异网互通业务的短消息,固定由主业务处理机进行处理,而接收方向的异网互通业务的短消息,由接口机负责分派到各个业务处理机进行处理。此外,当主业务处理机达到性能极限时,接口机也会把本该由主业务处理机处理的任务(包括本网业务、发送方向的异网互通业务和本该由主业务处理机处理的接收方向的异网互通业务),分派给编号为2的次业务处理机进行处理。这样做,能够使整个网关系统具有更强的容错能力。
下面对接口机与其它短消息网关之间的动态TCP连接的管理进行详细说明。短消息网关之间,是通过PPSP协议(点对点短消息网间互通协议)来进行连接和发送消息的。PPSP协议规范中定义,互联网关之间进行数据交互时,采用长连接方式。因此,在接口机启动后,就需要立即与其他网关之间建立连接。同时,PPSP协议定义,互联网关之间的连接是双向的,也就是有两个方向的连接,一个方向的连接负责发送,一个方向的连接负责接收。所以,接口机启动后,首先需要主动向其他互联网关发起连接,每个网关一条连接,这个连接就是发送方向的连接;同时,其它的互联网关也会主动来连接本短消息网关的接口机,本短消息网关的接口机在通过账号鉴权后应该同意对方的连接,这个连接是接收方向的连接。下面首先说明发送方向的工作细节。
对于发送方向而言,由于网关系统在路由之前并不知道消息将要转发到哪一个网元,而路由又是属于业务处理机的任务,因此,接口机在接收到消息时,还无法确定需要将其送往哪一个业务处理机进行处理。所以,发送方向业务流程的处理不采用分布式计算的方式,全部在主业务处理机上进行(除非主业务处理机达到性能极限)。因此,对于发送方向,将主要说明其对于动态TCP连接的管理。以下先介绍几个动态多连接管理中所需要用到的参数。
首先,如果采用设置固定阀值的动态调整多连接的方式,则网关系统中需要设置一个扩大PPSP连接数的消息流量间隔阀值。例如,设置扩大PPSP连接数的消息流量间隔阀值为100条短消息/秒,则当接口机向另一个互联网关发送消息时,如果消息流量小于100条/秒,则不需要扩大PPSP连接数,只保持最初的一条连接即可,所有待发送的消息也都在这一条连接上面发送;如果消息流量大于100条/秒而小于200条/秒,则新增一条连接,一共保持两条连接,待发送的消息在这两条连接上轮流发送;如果消息流量大于(n-1)×100条/秒而小于n×100条/秒,则接口机与对方网关之间保持n条连接,待发送的消息在这n条连接上轮流发送。因此,假设我们设定网关的扩大PPSP连接数的消息流量间隔阀值为m条/秒,则当消息流量大于(n-1)×m条/秒而小于n×m条/秒,则接口机与对方网关之间保持n条连接。
此外,如果采用设置固定阀值的方式,网关还需要设置另一个参数,就是允许与其他互联网关之间保持的最大连接数。在当前连接数已经达到最大连接数时,即使流量再进一步增大,也不再新增连接。这样做,是为了防止连接数无止境的增加而导致网络资源消耗过大。
由于采用了多连接即一个以上连接的工作模式,为了便于对与同一个网关之间的多条连接进行管理,需要为每条连接设置一个连接编号linkid值。对于与同一个网关之间的多条连接而言,linkid能够唯一标识其中一条连接。为了便于遍历,对linkid的取值规则做如下规定:对于与同一个网关之间的多条连接,linkid取值从1开始依次递增。例如,与某一个网关之间建立的第一条连接,将其linkid赋值为1;以后在建立第二条连接时,将这条连接的linkid设置为2;以此类推,若当前已经建立的连接的最大的一个linkid为n,则当新增一条连接时,这条连接的linkid设置为n+1;当需要减少一条连接时,若采用的是设置固定阀值的方式,则接口机会找到linkid最大的一条连接,然后断开这条连接。这样,就保证了与同一个网关的多个连接,其linkid从1开始取值并且依次递增;而如果采用的是自适应调整的方式,网关会断掉流量为0的那条连接,同时,由于这种方式下,网关会在linkid较小的连接达到满负荷时才会通过linkid较大的连接发送消息,因此,流量为0的连接一定是linkid最大的连接,所以断掉的连接也一定是linkid最大的连接。
为了便于介绍,在采用设置固定阀值方式的情况下,设定网关的扩大PPSP连接数的消息流量间隔阀值为100条/秒,与其他互联网关间保持的最大连接数为20。以下对本发明短消息网关的工作模式分为三个部分进行说明,分别是:初始化、多连接的动态管理、在多连接模式下发送短消息的管理。
(1)首先是接口机的初始化工作,该工作在接口机启动时执行:
当接口机启动时,首先遍历所有配置的账号,找出需要与哪些网关进行互联;
(2)找到后,对每一个需要互联的网关,接口机会主动发起一个PPSP连接请求(Connect信令),对方通过请求后,会返回一个成功的Connect Response信令,这样,连接就建立成功了。此后,接口机与对方网关就会保持这一条PPSP连接,并且将这条连接的linkid设置为1,同时,接口机还会记录下两个参数,一个是当前连接数为1,一个是下一次发送消息时应使用连接的linkid为1;
以下是接口机的多连接动态管理流程,该管理流程每过一个时间间隔执行一次,时间间隔可以配置,这里假设设定每5秒钟执行一次。对于多连接动态管理流程,管理方式采用设置固定阀值的方式和采用自适应调整的方式是不同的,因此这里分开说明。首先是采用设置固定阀值的方式时的多连接动态管理流程:
(1)接口机每过5秒钟对与其他每个互联网关之间的当前消息流量值进行一下计算,得到与其他每个网关之间的当前消息流量值;
(2)得到与每个网关之间的消息流量值后,遍历所有的这些消息流量值;
(3)若与某个网关之间的消息流量值大于(n-1)×100条/秒、小于n×100条/秒,则可以判定需要与这个网关之间建立n条连接。再检查当前已经与这个网关建立了多少条连接,假设已经建立了m条连接;
(4)得到n和m后,将n和m做比较,根据比较结果的不同,判断下一步需要进行什么操作;
(5)在第(4)步判断中,如果n>m,则说明连接数不够,需要增加连接。此时,需要先判断n是否大于20,如果大于20,则将n置为20,然后重新进入第(4)步再次进行m和n的比较;
(6)增加连接数时,在已有连接保持不变的情况下,由接口机向对方网关再次发起一个Connect信令请求建立连接,对方网关通过该连接请求后,返回成功Connect response,连接就建立成功了,此时,为这条连接分配linkid为m+1,并更新当前连接数为m+1;
(7)为了防止由于流量的突变而可能引起的同一时间出现大量的建链请求的情况发生,每一次判断出需要新增连接时,无论需要新增多少条连接,都只新增一条连接,这样做,也可以使得与其他网关之间的连接数较为稳定,不会出现大的突变。而如果连接数变化太大,建链太频繁,则建链过程本身就会消耗掉较大的网络和系统资源,这就违背了本发明希望尽量节约资源的初衷;
(8)在第(4)步判断中,如果n<m,则说明当前连接数太多,需要减少一些连接;
(9)减少连接时,接口机首先找到linkid最大的一条连接,在这条连接上,由接口机向对方网关发起Terminate信令请求断开这条连接,对方网关返回Terminate response后,连接就断开了,此时,更新当前连接数为m-1,这样就断开了一条连接;
(10)减少连接的方式和增加连接类似,每次判断出需要减少连接时,都只断开一条连接,这样可以使得本网关与其他网关之间的连接数较为稳定,不会出现大的突变。另外,这种缓慢的减少连接的方式还有一个好处,就是当网关本次检测到需要减少多条连接而下一次又需要增加连接时,由于本次实际上只减少了一条连接,因此下一次增加连接时就可以少很多重新建链的过程;
(11)在第(4)步判断中,如果n=m,则说明连接数刚好合适,不需要做任何调整;
(12)等待5秒钟,重新进入第(1)步。
如果动态多连接管理方式采用的是自适应调整的方式,则多连接动态管理流程如下:
(1)对于与其他互联网关之间的连接,接口机每过5秒钟检查一次linkid最大的一条连接的负荷情况;
(2)衡量一条连接的负荷情况如何,我们可以采用这条连接的发送缓存队列的消息积压情况作为一个衡量指标,若一条连接的发送缓存队列已经放满,则认为这条连接已经满负荷,如果一条连接的发送缓存队列为空,则说明这条连接的当前流量为0;
(3)如果检查出linkid最大的一条连接达到满负荷,则说明与这个互联网关之间的连接已经达到满负荷,按理此时应该增加连接。但是,考虑到此时流量可能已经达到峰值,不会再进一步增加,因此,这里我们不增加连接。而在有短消息发送时,接口机应再去判断与对方网关的所有连接是否都已经满负荷,如果都已经满负荷,那时再增加连接;
(4)如果检查出linkid最大的一条连接其流量为0,且这条连接的linkid不为1(即该连接不是本网关与对方网关之间的唯一一条连接),则说明需要断开这条连接,于是接口机向对方网关在这条linkid最大的连接上发送Terminate信令请求断开该条连接,对方网关返回Terminate response后,连接就断开了;
(5)如果检查出linkid最大的一条连接其流量既没有满负荷也不为0(即消息发送缓存队列既没有放满也不为空),则说明当前连接数刚好合适,不需做任何调整。
最后是在多连接模式下转发短消息的管理流程,这个流程在网关判断出需要将短消息转发到某个互联网关的时候执行。与多连接动态管理流程一样,转发短消息的管理流程采用设置固定阀值的方式和采用自适应调整的方式两种情况将分开介绍。如果动态多连接管理方式采用的是设置固定阀值的方式,则转发短消息的流程如下:
(1)当接口机从短信中心接收到短消息后,首先会分派给主业务处理机进行流程判断,如果判断出需要转发到某一个互联网关,则接口机会找出与这个互联网关之间的下一次发送消息时应使用连接的linkid的值,这个参数值在接口机进行初始化工作时设置,在每次发送消息后会更新;
(2)找到应使用的连接的linkid后,再检查当前已经与这个网关建立了多少条连接,这里假设已经建立了m条连接;
(3)将应使用的连接的linkid值与当前连接数m做比较,如果linkid>m,则将linkid置为1;这样做的目的是循环发送短消息;
(4)通过linkid找到发送这条消息应该使用的连接,然后在这条连接上,利用Forward信令将短消息发送出去;
(5)将下一次发送消息时应使用连接的linkid值更新为当前linkid+1。
如果动态多连接管理方式采用的是自适应调整的方式,则转发短消息的流程如下:
(1)当接口机从短信中心接收到短消息后,首先会分派给主业务处理机进行流程判断,如果判断出需要转发到某一个互联网关,则接口机会找出与这个互联网关之间的linkid为1的那一条连接,判断该连接是否已经满负荷,如果未达到满负荷,则通过这条连接将消息发送出去;
(2)如果linkid为1的连接已经达到满负荷,且当前linkid的最大值不为1,则检查linkid为2的连接是否已经满负荷,如果未达到满负荷,则通过这条连接将消息发送出去;
(3)以此类推,如果linkid为i的连接已经达到满负荷,且当前linkid的最大值不为i,则检查linkid为i+1的连接是否已经满负荷,如果未达到满负荷,则通过这条连接将消息发送出去;
(4)如果检查到linkid最大的一条连接也已经达到满负荷,则说明需要增加连接,于是发送Connect信令请求建立连接,连接建立成功后,为这条连接设置linkid,该linkid设置为当前最大的linkid加1;
(5)将消息从新建的那条连接上发送出去。
从前面的描述可以看出,本发明提供的动态多连接管理的两种方式各有优势。采用设置固定阀值的方式时,短消息转发的算法比较简单,只需要每次发送时记录下一次发送消息的连接linkid,然后在下一次发送消息时通过这个linkid找到连接,然后将消息通过这条连接发送出去即可。而采用自适应调整的方式时,接口机能够根据网络的当前状况自适应的增加或者减少连接数,使得网关的工作跟网络实际情况更加贴近。但是,其短消息转发算法的效率较设置固定阀值的方式要低:每次需要转发消息时,接口机需要遍历所有的连接,查看这些连接有没有满负荷。
以上就是发送方向动态多连接管理的工作细节,下面说明接收方向的工作细节。接收方向接口机与其它短消息网关之间可以采用一条TCP连接,也可以采用多条TCP连接。以下对采用多条TCP连接的方案进行具体说明。对于接收方向而言,主要处理为:接口机从某一条连接上接收到短消息,则将这条连接的连接编号映射到一个业务处理机,然后将这条短消息分派到这个业务处理机进行处理。由此可见,接收方向的动态多连接管理相比发送方向较为简单,但是加入了分布式计算的管理。
对于接收方向,也需要设置一个参数,即接收最大连接数。这个参数用于控制同一个互联网关连接本网关时,本网关允许其连接的最大连接数。对每一个需要连接本网关的互联网关,都要设置一个这样的参数。
接收方向动态多连接管理的初始化工作比较简单,只需要在接口机启动的时候,监听指定的端口,然后将当前连接数置为0即可。
每次有其他互联网关向接口机发起PPSP连接或者断链请求时,将触发接收方向动态多连接的管理流程:
(1)当有其他互联网关向接口机发起PPSP连接时,接口机首先对该连接请求的用户名、密码进行鉴权。此处,我们不对连接请求的IP地址进行鉴权,这样,即使对方网关的IP地址发生变化,或者对方网关是一个分布式的系统,本身就存在多个服务节点,本发明也能够支持;
(2)鉴权成功后,接口机会比较当前连接数和接收最大连接数,假设当前接收方向的连接数为m,接收最大连接数为max;这里当前连接数及接收最大连接数都指的是同一个短消息网关与本短消息网关之间的连接数;
(3)如果m<max,则接受该连接请求,向对方网关返回成功的Connectresponse信令,然后将该连接的linkid置为m+1,并更新当前连接数为m+1;
(4)如果m>=max,则拒绝该连接请求,返回失败的Connect response信令即可;
(5)当有互联网关在其与接口机的某一条连接上向接口机发起断链请求时,接口机直接返回Terminate response信令同意断链,然后断开物理连接,并更新当前连接数为m-1;
接口机从其他互联网关接收到短消息后,会启动分布式业务处理计算:
(1)接口机从其他互联网关接收到短消息后,首先会找到这条消息的接收链路,并得到这条链路的linkid;
(2)接口机获取当前业务处理机的个数,假设一共有n个业务处理机;
(3)接口机计算i=linkid%n,其中%为取模运算;
(4)若步骤(3)中计算得到i等于0,则将i置为n;
(5)接口机将该条短消息分派到第i号业务处理机进行处理,第i号业务处理机处理完毕后,再将短消息返回给接口机,并附带上转发信息,最终由接口机实现转发。
本发明除了可采用上述分布式计算方案外,还可以采用其它方案,例如,预先确定某个编号段的TCP连接归某个业务处理机处理,这样,接口机根据发送短消息的TCP连接的编号即可将该短消息分配到对应的业务处理机处理。
以上就是本发明的短消息网关系统动态多连接以及分布式计算管理的工作细节。在正常情况下,这些工作机制已经比较完备了,但是还没有考虑异常情况。为了使得这种工作方式更加健壮,本发明加入了一些异常处理的机制。下面对这些异常处理机制进行简单介绍。
以上的网关间动态多连接管理有一个前提,那就是每条连接的linkid值必须是从1开始依次连续的递增,中间不能有间断。在正常情况下,我们的建链和断链的工作流程可以保证这一点。但是当遇到异常情况时,比如由于物理网络原因引起的linkid非最大的一条连接异常断链,此时就会造成所有linkid值的混乱。在这种情况下,我们就需要做一些异常处理,让网关可以自行修复。首先,网关每过一段时间对与每一个互联网关之间的连接进行一次轮询,查看它们的linkid是否有间断;如果不存在间断,则说明网关处在正常情况下;如果存在间断,则记录下这个间断的位置,然后将这个间断以后的所有连接的linkid值减1,这样就填补了这个间断,使得网关重新回到正常状况下。比如,网关与某一个互联网关之间本来有5条连接,linkid从1到5不间断递增。现在linkid为3的那条连接异常断链,导致linkid出现间断。此时,当网关轮询发现linkid为3的连接断开后,将linkid为4和5的两条连接,重置其linkid为3和4。这样,这两个网关之间的所有连接的linkid就恢复正常了:网关之间一共4条连接,linkid从1到4不间断递增。
还有一种异常情况需要考虑,就是在发送消息的时候,如果接口机首先判断出需要将消息从第i号连接上发送出去,但是在准备发送时,这条连接却断开了。这种情况下,为了使消息不丢弃,一个最简单的异常处理方法就是,将这条消息放入重试队列,等到重试时间到时,再将其作为一条普通的重试消息发送出去。
以上就是本发明的具体实施方式,其中,对于动态多连接的管理,本发明提供了各具优势的两种方式。当然,本发明还可以有其它多种实施方式,在不背离本发明精神及其实质的情况下,熟悉本领域的普通技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所要求的保护范围。

Claims (7)

1.一种短消息网关,其特征在于:
该短消息网关包括接口机和业务处理机;
所述接口机负责发送和接收短消息,以及在接收到短消息后交由所述业务处理机处理;
其中,所述接口机在负责向其它短消息网关发送短消息时,其与所述其它短消息网关之间建立的TCP连接的数量大于一个;
所述业务处理机负责对所述短消息进行具体业务处理;
所述业务处理机的个数超过一个:
其中一个为主业务处理机,所述主业务处理机负责处理本网业务和发送方向的异网互通业务,以及所述接口机交给其的接收方向的异网互通业务;
其它各业务处理机负责处理接口机交给其的接收方向的异网互通业务。
2.根据权利要求1所述的短消息网关,其特征在于:
所述接口机在负责将接收到的短消息交给所述各业务处理机时,其采用的分配方案为:
(1)接口机从所述其它短消息网关接收到短消息后,得到发送该短消息的TCP连接的编号linkid;
(2)接口机获取当前业务处理机的个数n,这些业务处理机已经从1到n进行编号;
(3)接口机计算i=linkid%n,其中%为取模运算;
(4)若步骤(3)中计算得到i等于0,则将i置为n;
(5)接口机将该短消息分派到第i号业务处理机进行处理。
3.权利要求1所述短消息网关采用的短消息异网互通处理方法,其特征在于包括:
当需要将短消息转发给其它短消息网关时,由所述业务处理机完成路由,然后由所述接口机发送出去;
当接收到其它短消息网关发来的短消息时,所述接口机将该短消息交由所述业务处理机进行处理;
该方法还包括按照如下方式对所述接口机与所述其它短消息网关之间的TCP连接的个数进行动态调整:
所述接口机启动时,主动向所述其它短消息网关建立一条连接;预设一个消息流量间隔阀值,则所述接口机定时检查与所述其它短消息网关之间的消息流量大小,当该消息流量每增加或减少所述消息流量间隔阀值时,相应地所述接口机增加或减少一个与所述其它短消息网关之间的连接;或者凡该消息流量增加或减少超过所述消息流量间隔阀值时,无论具体增减多少,均只增加或减少一个所述接口机与所述其它短消息网关之间的连接;
或者,
所述接口机启动时,主动向所述其它短消息网关建立一条连接;接口机定时检查与所述其它短消息网关之间的各条连接的负荷情况,如果有消息需要发送,且所有连接均达到满负荷,则增加连接;如果某条连接上没有消息发送,则断开该条连接。
4.根据权利要求3所述的短消息异网互通处理方法,其特征在于:
所述接口机是采用循环发送机制,即循环使用各条TCP连接的机制,向所述其它短消息网关发送短消息的。
5.根据权利要求3所述的短消息异网互通处理方法,其特征在于:
所述接口机是采用优先在较早建立的TCP连接上发送短消息的机制,向所述其它短消息网关发送短消息的。
6.根据权利要求3至5中任一项所述的短消息异网互通处理方法,其特征在于:
设定一个TCP最大连接数,在对所述接口机与所述其它短消息网关之间的TCP个数进行调整时,不能超过该最大连接数。
7.根据权利要求3至5中任一项所述的短消息异网互通处理方法,其特征在于:
当所述接口机与所述其它短消息网关之间存在两条以上的连接,且连接编号linkid非最大的一条连接异常断链时,将该断链之后的所有连接的编号linkid值减1。
CN 200910147853 2009-06-16 2009-06-16 一种短消息网关及其短消息异网互通处理方法 Expired - Fee Related CN101925028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910147853 CN101925028B (zh) 2009-06-16 2009-06-16 一种短消息网关及其短消息异网互通处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910147853 CN101925028B (zh) 2009-06-16 2009-06-16 一种短消息网关及其短消息异网互通处理方法

Publications (2)

Publication Number Publication Date
CN101925028A CN101925028A (zh) 2010-12-22
CN101925028B true CN101925028B (zh) 2013-09-11

Family

ID=43339602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910147853 Expired - Fee Related CN101925028B (zh) 2009-06-16 2009-06-16 一种短消息网关及其短消息异网互通处理方法

Country Status (1)

Country Link
CN (1) CN101925028B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904899A (zh) * 2012-10-26 2013-01-30 苏州阔地网络科技有限公司 一种动态控制网络连接的方法及系统
CN102916870A (zh) * 2012-10-26 2013-02-06 苏州阔地网络科技有限公司 一种控制网络连接的方法及系统
CN102932226B (zh) * 2012-10-26 2015-07-15 苏州阔地网络科技有限公司 一种减少网络连接的方法
CN104735096A (zh) * 2013-12-18 2015-06-24 博雅网络游戏开发(深圳)有限公司 消息推送请求的发送方法和系统
CN107645517B (zh) * 2016-07-20 2021-04-16 腾讯科技(深圳)有限公司 数据推送方法及装置
CN108243397B (zh) * 2016-12-26 2023-02-17 中兴通讯股份有限公司 一种短信发送方法和短信网关设备
CN108200544B (zh) * 2018-03-02 2021-12-28 北京中电普华信息技术有限公司 短信下发方法和短信平台
CN108513271B (zh) * 2018-06-22 2021-06-25 武汉斑马快跑科技有限公司 基于多个短信通道的短信分发方法和设备
CN115242745B (zh) * 2022-07-19 2023-08-15 南京鼎山信息科技有限公司 基于5g通信网络的短信推送系统及方法

Also Published As

Publication number Publication date
CN101925028A (zh) 2010-12-22

Similar Documents

Publication Publication Date Title
CN101925028B (zh) 一种短消息网关及其短消息异网互通处理方法
EP3528440B1 (en) Path selection method and system, network acceleration node, and network acceleration system
CN113472606B (zh) 一种心跳超时检测方法、服务器及电子设备
CN102065000B (zh) 网络拥塞控制方法、装置及系统
US9137623B2 (en) Method and system for realizing concurrent access of multi-kinds of bearer protocols on machine-to-machine (M2M) platform
CN102469124B (zh) 基于aog的移动互联网业务的实现方法、网关、代理及系统
CN102084634B (zh) 与阈值有关的传输协议优化选择
CN102394925B (zh) 远程监测诊断中心与地区调度中心的通讯方法及装置
CN102647314A (zh) 一种客户端在线状态判定方法及其系统
WO2011020363A1 (zh) 负载均衡的实现方法和系统以及Diameter客户端
US20080232390A1 (en) Path multiplexing communication system, communication node, and communication method
USRE44104E1 (en) Cross-layer architecture for a network device
WO2013078869A1 (zh) 一种aos中保持长连接的方法、系统、aoe、aog及终端
CN105262836A (zh) 服务器推送信息的方法及客户端接收推送信息的方法
CN111147573A (zh) 一种数据传输的方法和装置
CN114422571A (zh) 一种量子通信客户端断开重连系统及方法
CN104618123B (zh) 一种供电方法以及装置
WO2011035639A1 (zh) 升级保护方法及装置
CN102055639A (zh) 建立远程访问虚拟专用网连接的方法和访问集中器
CN102067516A (zh) 请求组播、处理组播请求及对其进行辅助的方法和装置
EP1605719A1 (en) Station device
US8908519B2 (en) SCTP communication method
JP2008160302A (ja) 送信レート制御方法および送信レート制御装置並びに送信レート制御プログラム
JP3682439B2 (ja) データ通信システム及び方法、サーバ装置、クライアント装置、並びにプログラム
CN113840331A (zh) 数据传输方法、网络接入设备及网络系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20161122

Address after: 350600 Luoyuan, Fuzhou Province, nine central building, floor, floor, No. 2,

Patentee after: LUOYUAN COUNTY PRODUCTIVITY PROMOTION CENTER

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corp.

TR01 Transfer of patent right

Effective date of registration: 20201019

Address after: 6 / F, No.1, Dongwai Road, Fengshan Town, Luoyuan County, Fuzhou City, Fujian Province

Patentee after: Luoyuan product quality inspection institute

Address before: 350600 Luoyuan, Fuzhou Province, nine central building, floor, floor, No. 2,

Patentee before: LUOYUAN COUNTY PRODUCTIVITY PROMOTION CENTER

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130911

CF01 Termination of patent right due to non-payment of annual fee