手机:18025323007
QQ: 723273055
e-mail: [email protected]
Pango短信平台是运营商级的短信处理平台,支持短信的快速路由转发、消息鉴权、快速业务开发等特点,同时集成本公司的ROSE内存数据库系统和脚本引擎系统。该短信网关已成功应用于多省气象业务平台和电信运行商业务平台。
短信平台由以下模块构成:
1、短信网关模块(switch)
Switch模块负责和电信运营商短信的短信网关(短信中心)通讯,用于转发来自业务模块和运营商短信网关的上下行消息,是系统的核心模块。
2、鉴权模块
对来自网关的上行消息和来自业务模块的下行消息进行鉴权,包括黑白名单鉴权、关键词过滤、主叫号码过滤、业务类型过滤;鉴权模块还具有字段替换功能:主叫号码、被叫号码、优先级、业务代码、计费类型、计费号码、状态报告标志等。
3、计费模块
用于生成短信平台和运营商短信关的话单,包括上下行短信和状态报告。
4、话单入库模块
用于把计费模块生成的话单导入到关系数据库。
5、维测台
用于管理switch模块的可视化工具。
6、业务模块
业务模块连接switch模块,用来接收和处理来自switch转发来的上行短信,根据短信内容和被叫号码进行命令解析,调用相应的存储过程、Url、动态库,同时返回下行应答短信;业务模块也可以主动调用存储过程、url、动态库下发消息,可以设置下发速度等信息。
7、短信群发器
专用的短信群发工具,支持连接多个switch模块,支持虚拟通道的概念,虚拟通道支持发送速度控制、优先级控制,支持多个任务并行发送。群发器支持创建新群发任务、暂停任务、恢复任务、删除任务等控制。群发器和业务系统的接口采用关系数据库的方式,通过调用存储过程实现业务系统和群发器的交互。
switch网关模块是短信平台的核心模块,对流经网关模块的上下行消息进行存
储、路由、转发;另外网关模块配合鉴权模块(auth)对上下行消息进行鉴权,根据鉴权结果决定是否继续进行转发到下一个网元;网关产生的话单转发到Fee模块进行存储。
switch模块基本功能如下。
switch支持帐号管理,可以添加、删除帐号、修改账号信息;在帐号下可添加网络接口和路由。switch的账号可接收来自外部的网络连接,也可在账号下建立到其他远程的连接。可以限制账号的连接数量和IP地址,发送和接收消息的速度。
1)支持账号鉴权
根据用户名、密码方式鉴权,支持限制来自远程网络连接的IP地址
2)支持流量控制
3)账号支持负荷分担
4)支持多种账号类型,业务模块账号、鉴权模块账号、计费模块账号、switch账号、短信网关账号、短信中心账号、管理员账号。
5)支持账号的数量没有限制
6)设置此路由到该账号下的路由,每个账号下设置的路由数量没有限制
7)可设置某账号是否进行鉴权
8) 通过使用维测台(企业管理器)可实现对网关账号的管理。例如:增加账号、
删除账号、修改账号等操作。
Switch根据每个账号下的路由可建立数量庞大的消息路由表,路由根据:主叫号码(源账号)、被叫号码进行路由,路由的结果是消息的目的账号。
从某个账号来的消息根据此消息的源账号、主叫号码、被叫号码路由到目的账号的等待发送消息队列。
Switch路由系统的特点:
1)支持完全精确匹配
2)支持前缀的最大精确匹配
3)支持多级匹配
4)可支持庞大的路由表,系统支持的路由数量达上千万级别或更多,理论
上不受限制,实际运行受机器内存限制。基于系统的路由功能可将消息路
由到其他模块,实现系统的分布式处理。
5)高效匹配路由,由于采用高效的匹配路由算法,即使在庞大路由表中,
匹配的效率也不会明显降低。
由于switch的消息路由具有前缀模糊匹配功能,可实现虚拟SP,每个虚拟SP
可分配一个或多个扩展的SP号码(长、短号码),虚拟SP可作为业务模块的方
式连接switch,switch把收到的上行消息根据主叫号码(源账号)、被叫号码路
由到指定的虚拟SP,虚拟SP下行消息时的主叫为分配的扩展SP号码(长号码或短号码)。Switch可同时支持上万个虚拟SP和网络接口。
1) 在账号下可建立连接到远程的接口;每个账号下可建立多个连接,连接数量没有限制;每个账号下可建立发送接口、接收接口、发送接收接口。
2) 在账号下可接收来自远程的主动连接
可设置每个账号可接受的最大连接数,避免对方使用同一账号产生大量连接。
3) 接口支持发送接口、接收接口、发送接收接口
(1) 发送接口,只用于向对方发送消息,消息包括普通短信和状态报告
(2) 接收接口,只用于接收来自对方的普通消息和状态报告
(3) 发送接收接口,即可用于接收来自对方的普通消息和状态报告,也可用于向对方发送消息,消息包括普通短信和状态报告
4) 支持握手检测和握手超时处理。
5) 支持滑动窗口流量控制机制。
6) 同时支持长短连接
(1)针对CMPP、SGIP、SMGP、SMPP协议采用长连接的方式。
(2)针对电信ISAG协议HTTP协议,支持长连接方式也支持短连接方
式。
7) 支持网络重连
对于switch主动连接其他网元的接口,在由于各种原因导致断连的情况下,都会定时的进行重连,直到重新连上。
8) 可同时支持上万个TCP连接。
9) 利用维测台可实现对switch网络连接的管理,可增加接口、删除接口、
查询接口、修改接口等操作。
switch支持目前中国所有的短信网关协议:
1)支持中国移动的CMPP协议
2)支持中国联通的SGIP
3)支持中国电信的SMGP协议
4)支持中国电信的ISAG协议
5)支持短信中心的标准协议 SMPP协议
单个switch可同时连接多个运营商的多个网关,即单个switch可同时连接多个移动短信网关、联通短信网关、电信短信网关、短信中心,可处理来自多个网关的上行消息和下行消息。并可同时支持多个短信接入号码。
1、短信平台的业务部分由业务模块完成,业务模块提供简易的开发接口供开发
人员调用。
2、一般业务模块完成上行点播业务或主动下发业务,处理上行业务的业务模块
需要在switch上为业务模块设置路由。
3、switch可支持上万个业务模块接入,switch可将上行消息分布到不同的业务
模块,实现业务系统的可分布性、可扩展性。
switch在消息转发过程中,如果接收端阻塞或离线时,switch会将消息进行缓存,消息缓存采用内存和磁盘文件双缓存,待接收端上线后,switch会将缓存的消息发送给接收端。
由于采用内存和磁盘双缓存,即保证消息的转发效率,又可支持缓存庞大数量的消息。每个账号内存缓存消息数量可进行配置,对于32位版本内存消息缓冲的数量受2G内存的限制,对于64位版本,理论上只受物理内存限制。磁盘缓存的消息数量没有限制,受物理磁盘容量限制。
系统关闭时switch会将内存中的缓存消息写到磁盘缓冲文件中,当系统重启时再从文件中加载消息队列,保证消息不丢失。
1、switch支持消息优先级处理,优先保证高优先级消息发送,每个账号下同一
优先级的消息按顺序发送。
2、发送方在发送消息时可指定消息的发送优先级,消息如果需要鉴权,鉴权模
块可根据配置重新设置消息的优先级,具体可参考鉴权模块优先级转换功能
的讲述。
3、系统支持多个优先级。
1、switch的每个账号可设置流入和流出速度,switch根据账号的流速对流入和
流出的消息进行控制。
2、switch的账号和网络连接支持滑动窗口设置,用于控制消息的并发提交数量。
1、超时重发
Switch在提交消息给对方后,接收端在指定的时间没有返回应答,switch会将消息进行重发,并可指定消息重发的次数和间隔。
2、错误重发
Switch在提交消息给对方后,收到对方返回应答,根据错误码决定是否都进行重发,需要重发的错误码、重发次数、重发间隔可设置。
3、断连重发
Switch在发送消息过程中,如果网络接口断连,当网络接口恢复后switch继续在此网络接口上发送。
当系统账号的缓冲消息队列超过指定数量时,系统会自动给源账号返回一个特定的Ack错误码,提示发送方降低发送速度,或终止发送短消息。此拥塞控制功能避免业务模块或群发器把消息都积压在switch而switch又没有及时发送到运营商网关,从而造成从业务侧观察以为短信发送完毕的假象。
Switch的某个账号下有多个具有发送能力的网络接口,switch可以根据发送速度把负荷在多个接口上进行分配,使多个接口共同发送消息。即使其中的若干接口断链或阻塞,其他接口也可进行正常发送,且发送速度不会降低。
Switch的每个账号都可以指定备用账号,当switch的某账号出现特定情况下,将要发送的消息发送到备用账号。目前switch支持以下3种情况的实效转移:
1、当账号下所有的发送接口出现网络故障的情况,可以把消息重新路由到备用账号。
2、当账号下发送速度低于指定最低速度的情况,可以把溢出数量的消息重新路由到备用账号。
3、当收到对端返回指定错误时,可以指定消息重新路由的账号。
Switch对流入、流出某账号的消息中的主叫号码、被叫号码、计费号码进行转换,号码转换规则可在配置文件中设置。
1)switch对流经某账号的的上下行消息可设置是否鉴权。需要鉴权时,可将消息转发到鉴权模块进行鉴权,鉴权模块返回应答后,switch根据鉴权结果决定是否继续转发。如果鉴权通过switch把消息转发到下一个网元,否则返回错误应答给发送方。
2)switch对鉴权成功的消息进行字段替换
字段替换功能实际是由鉴权模块完成,switch根据鉴权模块返回成功应答中
字段替换信息进行解析,把相应字段进行重置,然后再进行转发。
3)switch支持多个鉴权模块,根据消息的主叫号码(源账号)、被叫号码进行鉴权路由,实现分布式旁路鉴权。
4)switch模块和鉴权模块之间采用扩展的smpp协议。
1)对流经switch的上下行消息(包括状态报告)转发到Fee模块,由Fee模块
负责生成话单。
2)由于采用旁路方式记录话单,大大提高switch的消息转发能力。
3)switch模块和计费模块之间采用扩展的smpp协议。
不同的Switch之间支持级联方式组网,级联的层次没有限制。短消息在运营商短信网关和业务模块之间可以支持多个switch的级联,主要用于消息的汇聚和负荷分担。switch级联组网方式参照下图:
1、系统支持的账号数量可达上万
2、系统支持的接口数量可达上万
3、系统支持的路由数量可达上百万
4、每秒可转发25,000条消息
5、本地缓存的消息没有限制,受限于物理内存和磁盘空间
维测台实现对switch的管理,通过维测台可完成以下功能:
通过维测台可以增加账号、删除账号、修改账号信息。
通过维测台可以增加接口、删除接口、修改接口信息。
1、通过维测台可以为某账号增加、删除路由。
2、通过维测台可以实现路由测试。
3、通过维测台可以查询路由。
1、维测台可跟踪switch支持的所有协议,包括:cmpp、smpp、sgip、smgp、
isag等http协议(包括长短连接),维测台可显示每个报文的详细内容,包括
每个字段的值(包括tlv字段)、传输方向、传输时间、接口名称、命令字、
指令名称。
2、维测台实现对账号跟踪,维测台可以跟踪该账号下所有网络接口的消息,包
括登陆包。
2、维测台实现对某网络接口跟踪。
3、维测台可同时跟踪上百个账号和接口。
5、暂停跟踪功能,暂停跟踪后维测台界面不会显示新消息。
6、继续跟踪功能,恢复被暂停的跟踪,维测台界面显示新消息。
7、关闭跟踪功能,恢复被暂停的跟踪,维测台界面显示新消息。
8、跟踪信息过滤,可以只显示指定的号码和命令字信息。
鉴权系统对来自switch上下行消息进行鉴权,以决定消息是否继续进行转发。鉴权系统采用旁路方式接入到switch,鉴权模块除了对消息进行鉴权外,还进行字段替换操作。
3.3.1.1 黑白名单鉴权
1、支持全局黑白名单
全局黑白名单对所有上下行消息有效,黑白名单为手机号码(号段)或SP号码(短号码、长号码),用户下发的消息匹配黑白名单,根据黑白名单对应的处理规则进行相应的处理,如果是黑名单禁止转发,否则属于白名单,允许继续转发。
2、支持局部黑名单
根据源账号(主叫号码或主叫号段)和被叫号码建立两级局部白名单,对于要转发的消息进行局部黑白名单匹配,根据黑白名单对应的处理规则进行相应的处理,如果是黑名单禁止转发,否则属于白名单,允许继续转发。
黑白名单技术特点:
1、黑白名单全部保存在内存中,匹配速度快。
2、支持黑白名单的数量没有限制,如果黑白名单超过上千万,建议采用64位操作系统并配置更多内存。
3、支持精确匹配和最大模糊匹配。
3.3.1.2 关键词过滤
鉴权模块可对短消息中的文本内容进行关键词解析,实现对违禁词的过滤,如果出现违禁词可根据配置的处理方式进行相应的处理。
关键词过滤技术特点:
1、关键词全部保存在内存中,解析速度快。
2、支持关键词的数量没有限制。
3、可针对某消息源账号设置是否进行关键词过滤。
3.3.1.3 主叫号码鉴权
对来自某账号的下行消息的主叫号码进行鉴权,判断主叫号码是否为分配给该账号的号码(号段)。此功能主要针对虚拟CP,判断虚拟CP下发的主叫号码是否合法。
3.3.1.4 业务代码鉴权
对来自某账号的下行消息的业务代码进行鉴权,判断该账号是否允许使用该业务代码。
3.3.1.5 上行命令解析
字段替换是指对上下行中的某些字段进行转换,被转换的字段和字段被新赋的值被传递到switch,switch完成短消息的字段更新,然后继续后续的转发。
3.3.2.1 优先级替换
鉴权模块根据下发消息的被叫号码(号段)、业务代码判断该消息的优先级,完成对消息优先级的重置。
3.3.2.2 业务代码转换
根据下行消息中的业务代码转换成新的业务代码和相关计费字段,例如:计费类型、计费数量、计费用户类型等字段。
3.3.2.3 主叫号码转换
根据短消息的源账号、被转换主叫号码(号段)、替换前缀信息把消息的主叫号码替换成新的主叫号码。
3.3.2.4 被叫号码转换
根据消息的源账号、被转换被叫号码(号段)、替换前缀信息把消息的被叫号码替换成新的被叫号码。
1、鉴权模块采用内存数据库技术和高效脚本引擎技术实现消息的快速鉴权。
2、运行效率高,每秒可进行2万次以上的鉴权处理
3、鉴权模块对外的开发接口采用数据库接口
1)系统启动时从关系数据库加载数据
2)鉴权模块中的数据变更接口采用数据库接口,简单易用
3)外部业务系统通过数据库接口可以实现鉴权模块数据的变更,例如:
增加、删除黑白名单等。
3、可实现上行和下行短信的鉴权。
计费模块连接switch,用来接收来自switch和短信短信网关之间的上下行消息
和状态报告。计费模块对收到的消息写话单文件,话单用于后续的进一步处理。
话单入库模块用于把fee模块生成的话单导入到磁盘数据库,例如:Oracle、MS SQL Server。单个fee模块支持连接多个数据库同时处理,大大提高入库性能。
话单入库模块提供存储过程接口,业务系统可根据实际需要进行具体处理。
业务模块主动连接switch,在switch侧为业务模块建立账号和上行路由。业务模块用于接收来自switch的上行短信,并可向switch下发短信。
业务模块接收到来自switch的上行消息后,首先根据被叫号码和短信内容进行命令解析,根据解析结果决定后续的处理方式,目前支持的处理方式支持调用存储过程、调用http的url、调用dll。业务模块提供标准的开发接口,短信运营商根据开发接口自行开发业务系统。
业务模块可主动下发短信,业务模块通过调用存储过程获取下发短信的被叫号码、短信内容等字段,业务模块下发时可设置下发的速度。业务模块主动下发功能提供存储过程开发接口。
1、支持连接多个switch
2、支持流量控制
3、支持命令解析,且命令解析表的记录数量没有限制。
4、支持长消息下发和短信自动分割
5、开发接口简单
目前支持存储过程、URL、DLL等开发接口,开发接口简洁且功能强大
6、运行效率高
短信群发模块是特殊的业务模块,实现消息的主动下发,支持多任务同时发送,是短信平台重要核心模块。
1、支持多个到switch的连接,每个连接支持速度管理、缓冲管理、发送窗口管
理、拥塞控制。
1、支持虚拟通道的概念。
把每个到switch的连接划分为多个虚拟通道,每个虚拟通道支持配置速度和
优先级。同一个连接下多个虚拟通道共享该连接的带宽,每个虚拟通道依次加载、调度属于自己的任务。
2、支持虚拟通道的优先级调度
每个虚拟通道可设置优先级,优先级从0~9共10个优先级,其中优先级最高
的虚拟通道优先发送。在单位调度周期内(每秒),每个连接只调度优先级最
高的若干虚拟通道(这些通道必须加载活动任务且,必须有要发送的用户号
码),优先级低的通道只能等比它高的通道发送完毕后才能得到调度。
3、支持充分利用带宽
在调度同一优先级的虚拟通道时,所有这些活动通共享所属连接的带宽,即该连接的发送速度。每个虚拟通道所配的速度是用来瓜分所属连接带宽的权值,每个虚拟通道调度时的真实速度是根据所属同一优先级的虚拟通道的配置速度进行加权平均方法计算得到的,当某一个虚拟通道任务发送完毕时,该通道占用的发送带宽会被其他虚拟通道充分利用。
4、支持任务的智能调度策略
群发器的某个虚拟通道在加载任务时,可根据任务的优先级、失效时间、用户号码数量等情况进行加载。
5、并可实现对虚拟通道控制
可实现对虚拟通道速度和优先级的动态配置。
6、并可实现对群发任务的控制
可实现对任务进行的加载、暂停、继续、删除等控制。
7、支持从数据库加载号码
当虚拟通道成功获取并加载任务后,如果任务配置为从数据库加载用户号码,则根据配置参数执行存储过程从数据库获取所有需要发送的用户号码,并依次发送。
8、支持从本地目录中的文件加载号码
从本地文件加载号码的优点是稳定可靠,由其是可即时发送,从提交群发任务到发送第一条短信基本没有延时(小于3秒钟)。缺点是必须预先准备好号码文件,因此无法获取当前符合条件的号码数据。因此此种方式适合与即时发送的群发业务,发送号码数据是海量规模且号码数据相对被动不大。
9、后续版本支持从FTP服务器、WWW服务器获取号码文件。
10、 群发模块和群发业务系统采用数据库接口,接口简单且功能强大。
1、每个群发模块支持100个以上到switch的连接。
2、每个群发模块支持最大500个虚拟通道。
3、每个到switch连接支持调度最大500个虚拟通道。
4、每秒可下发20,000条消息到switch。
5、每个任务对应下发用户号码的数量没有限制。
1、机器A
1)部署switch-1模块(主),连接移动短信网关。
2)部署switch-2模块(主),连接联通短信网关。
3)部署switch-3模块(主),连接电信短信网关。
4)部署重发业务模块-1(备),负责移动用户重发。
5)部署重发业务模块-2(备),负责联通用户重发。
6)部署重发业务模块-3(备),负责电信用户重发。
2、机器B
1)部署switch-1模块(备),连接移动短信网关。
2)部署switch-2模块(备),连接联通短信网关。
3)部署switch-3模块(备),连接电信短信网关。
4)部署重发业务模块-1(主),负责移动用户重发。
5)部署重发业务模块-2(主),负责联通用户重发。
6)部署重发业务模块-3(主),负责电信用户重发。
7)部署群发模块-2,连接switch2,负责联通用户的群发任务。
8)部署群发模块-3,连接switch3,负责电信用户的群发任务。
3、机器C
1)部署Fee-1模块,连接switch1,记录移动用户短信话单。
2)部署Fee-2模块,连接switch2,记录联通用户短信话单。
3)部署Fee-3模块,连接switch3,记录电信用户短信话单。
4)部署话单入库模块-1,负责处理Fee-1模块产生的移动用户话单。
5)部署话单入库模块-2,负责处理Fee-2模块产生的移动用户话单。
6)部署话单入库模块-3,负责处理Fee-3模块产生的移动用户话单。
4、机器D
1)部署群发模块-1,连接switch1,负责移动用户的群发任务。
5、机器E(可选)
1)部署鉴权模块-1,连接switch1,负责对移动用户的消息进行鉴权。
2)部署鉴权模块-2,连接switch2,负责对联通用户的消息进行鉴权。
3)部署鉴权模块-3,连接switch3,负责对电信用户的消息进行鉴权。
1、为便于维护管理,短信分布子系统在逻辑上按运营商分开组网,建立3套完整且相互独立的短信群发系统。
2、每套短信群发系统由:switch模块、计费模块、鉴权模块(可选)、计费模块、重发业务模块、群发器模块组成。
3、由于switch模块在系统中具有关键作用,采用主备双机方案,主备switch采
用互为备份,采用浮动IP技术,系统出现切换时,浮动IP始终绑定主用switch
进程。客户端系统配置无需修改,系统切换时间小于10秒钟。
4、重发业务模块由于只有对需要重发的用户消息才进行补发操作,所以该模块负荷相对较轻,和switch部署在同一台机器。重发业务模块也采用双机主备方式进行部署;主用业务模块部署在备用switch所在的服务器,备用业务模块部署在主用switch所在的服务器。
5、鉴权模块可根据业务需要决定是否部署。
6、计费模块的主要工作是记录上下行消息和状态报告的话单,主要涉及的是磁
盘IO操作,所以单独部署在一台机器,采用单机模式部署。
7、话单入库模块主要处理计费模块生成的话单文件,所以和计费模块部署在同
一台机器,主要涉及读取话单的磁盘I/O操作和执行数据库调用的操作。话
单入库模块采用单击方式运行。
8、由于移动用户占绝大部分,移动用户群发器单独采用单独服务器运行,联通和电信群发器运行在switch的备机。
服务器(A、B、D、E)
CPU:Xeon 2.8G,4核CPU
内存: 4G DDR
硬盘:300GB SCSI
LAN:双千兆网卡
操作系统:企业级中文Windows 2000 Server
服务器(C):
CPU:Xeon 2.8G,4核CPU
内存: 5G DDR
硬盘:4TB SCSI
LAN:双千兆网卡
操作系统:企业级中文Windows 2003 Server
1、switch可提供稳定15,000条/秒、峰值20,000条/秒的消息转发能力。
2、重发业务模块可提供15,000条/秒、峰值20,000条/秒的消息下发能力。
3、群发器模块可提供15,000条/秒、峰值20,000条/秒的消息下发能力。
switch可同时支持10,000个业务接口,包括到运营商短信网关的网络接口、业
务模块和群发器模块主动接入的网络接口,且在此规模数量下,消息转发能力不
会明显下降,满足移动短信网关的组网要求。
群发器可同时调度最大1,000个虚拟通道,即同时支持最大1,000群发任务
同时下发,下发短信速度达15,000条~20,000条/秒。
平台的最大缓冲容量根据缓存大小而定,目前2G的内存,平台内存可以缓冲200
万条短消息。如果启动二级缓存,而平台的的缓存能力可以达到无限。
系统整机平均无故障时间(MTBF)不低于8万小时。
短消息平台可根据运营者的需求,硬盘容量从4G平滑地扩容到800G,用户数也可从20,000平滑扩容到1,000,000。
消息损失概率:P <= 10-7。
消息存储时延:T <= 1000ms。
消息响应时间:20,000个请求时,响应时间< 3 秒。
注:网络带宽为1,000M以上。
1、大型SP短信运营商
2、电信运营商的短信业务系统
3、短信发布系统
气象发布平台、政府应急发布平台
4、短信群发专业公司
5、其他行业应用
学校、医院、广播电视、邮政、银行、证券、电子商务等。