短信接口(精选4篇)
短信接口 篇1
一、CMPP协议概述
CMPP (China Mobile Peer to Peer) 协议即中国移动点对点协议, 是中国移动通信互联短信网关接口协议。
CMPP主要提供两类操作:短信发送和短信接收。对于短信发送功能需要前转的MO操作主要可分为八步: (1) 源ISMG接受手机发出的数据请求; (2) 源ISMG返回响应; (3) 源ISMG在本地无法查询到要连接的SP, 向GNS即汇接网关发送路由请求信息; (4) GNS返回路由信息; (5) 源ISMG根据GNS返回的路由信息将请求前转给目的ISMG; (6) 目的ISMG返回响应; (7) 目的ISMG将请求信息送往SP; (8) SP返回响应。随后, SP返回响应被目的ISMG接收到后会生成MO状态报告发送至源ISMG。而以上所述八个步骤中三至八步骤皆使用CMPP协议。
短信接收与短信发送是逆向的, 也可分为八个步骤: (1) 源ISMG接收SP发出的数据请求; (2) 源ISMG返回响应; (3) 源ISMG在本地数据库中无法找到目标手机号段对应的网关代码便向GNS发送路由请求信息; (4) 汇接网关返回路由信息; (5) 根据路由信息, 源ISMG将请求前转给目的ISMG; (6) 目的ISMG返回响应; (7) 目的ISMG将请求信息发送给SMC; (8) SMC返回响应给目的ISMG。而对于以上短信接收的八个步骤, 步骤一至六皆使用CMPP协议。
二、网关接口系统
一系列逻辑通信机组成了网关接口层, 接口层接入各地市的移动短信网关, 建立一条各移动的短信网关与短信平台之间的信息传输通道, 实现短信的流量控制和存储转发。通信接口层接收到业务层群发服务器提交的需要下发的短信, 并将短信发送至移动的短信网关, 再经由移动短信网关向用户发送短信。通信接口层接收移动的省短信网关汇集的全省移动用户发送的短信, 再转发到业务逻辑层应用服务器进行逻辑处理。
2.1流量控制算法
网关发送的流量控制直接影响到发送的成功率和发送速率, SP的发送流量会受到运营商网关一端资源、处理能力以及短信中心承载能力等因素的限制。若要使资源得到充分利用, 以最快速度完成发送任务, 则SP一端需要保持发送速率小于等于运营商分配的流量。控制方法可分为三步:①在每个连接上设立发送计数器, 按照设定好的时间粒度在间隔时间内统计短信条数, 计数器达到分配的流量则暂停发送, 下一个时间间隔开始后重新启动发送过程。②在发送失败率提高时将发送速率适当向下微调。③发送速率低于下限值关闭当前连接重新建立新连接。
2.2网关发送加速过程
本文采用以下三种措施解决网关发送速度慢的问题:①动态配置协议模块。每个协议处理模块皆可根据网关分配的流量来工作, 一个运营商网关可以承载多个协议处理模块, 在协议处理模块的TCP连接上有一个滑动窗口来控制底层的通讯流量, 一般设定为16, 根据端处理能力和网络条件判断, 来对这个值进行调节。②配置发送任务生成模块。某些时刻发送任务生成会受到数据库和计算机任务调度的限制, 无法满足发送速度所需。所以系统对模块的个数会依据发送和生成速度来动态增加和减少, 及时将发送短信放入缓冲池。③缓冲池管理。采用最近、最少使用法管理发送接收缓冲池, 有效提高发送性能和缓冲池利用率。
2.3协议处理和协议跟踪实现
协议处理, 首先将需要发送的气象短信发送到缓冲池, 等待系统调度, 当网关成功接收到短信并建立长连接, 缓冲池中的有关信息与系统业务代码建立对应关系, 然后将气象短信通过网关发送给用户。同时为了保证完整性, 系统会依据用户接收状态判断是否重发。
协议跟踪, 协议跟踪功能使得用户可以监视系统运行情况, 在系统异常和用户反映时可以利用消息跟踪对错误原因进行分析, 同时重要错误信息可产生告警记录, 根据用户号码、业务接口号和服务类型进行统计可使用户明确掌握系统日常运行情况。
三、总结
目前, 手机用户发送接收短信已经非常自由, 信息技术不断发展, 用户需求不断提高, 对于气象的动向掌握越来越重视。本文应用中国移动点对点协议CMPP, 基于气象实时数据库, 讨论并设计了气象短信网关接口系统, 为气象移动互联网形成了“一点接入、全省服务”的服务体系。
摘要:在标准协议的支持下, 接口系统接入各地市的移动短信网关, 从而建立了一条各移动的短信网关与短信平台之间的信息传输通道, 该通道的建立实现了短信的流量控制和存储转发, 除此之外, 接口系统要保证与移动短信网关之间建立的通信联接稳定可靠, 遇到错误能够实现重建联接, 并且在联接终端情况发生时停止提交短信。
关键词:气象,短信,网关接口,CMPP协议
参考文献
[1]李廷兰.基于CMPP协议的短信接口程序开发设计.电子科技大学.2010 (10)
[2]李旭.四川省气象短信服务系统的设计与实现.电子科技大学.2009 (10)
[3]刘东华, 张琳琳, 康恺.深圳气象短信系统简介.信息系统工程.2012 (06)
谈谈SP短信接口网关开发 篇2
SP短信接口网关在运营商和SP企业之间起着重要的桥梁作用, SP短信接口网关性能的好坏将直接影响整个SP业务的性能, 因此, 如何开发出一个稳定、高性能的短信接口网关就显得至关重要。本文以笔者个人亲身的开发经历, 谈谈SP短信接口网关开发经验。
1. SP短信接口网关的开发
通用SP短信业务平台, 逻辑可分为用户层、系统层、接口层。短信接口网关处于SP业务平台的最底层, 是整个SP业务平台的基础, 因此, 我们在进行短信接口网关开发的时候, 必须严格按照底层通信模块的标准 (即高效、稳定) 来进行。下面将围绕提高短信接口网关处理能力、提高短信接口网关得稳定性以及其他控制措施三个方面展开阐述。
1.1 提高短信接口网关处理能力
作为底层通信接口, 其处理能力当然是最受关注的, 提高短信接口网关处理能力所用到的方法包括多线程编程、事务分割、内存缓冲以及滑动窗口机制。
1.1.1 多线程编程
如果仅仅采用单线程编程的话, 则接口网关无论如何都只能工作在半双工的模式下。为了提高通信效率, 短信接口网关采用了多线程的编程模式, 接口网关启动后, 由一个主线程分别启动两个主要线程, 即:发送线程和接收线程, 分别处理短信的发送和接收事务, 使短信接口网关真正做到全双工。
1.1.2 事务分割
由于接收短信的时候要做的事务比较多, 包括接收短信息、记录日志、解码、处理短信息、把处理结果入库五个动作。如果在一个事务中一次性完成这些动作的话, 那么, 将会影响短信接收的效率, 因此, 把整个接收事务细化成五个子事务:接收、写日志、解码、信息处理、入库, 这五个事务彼此相对独立, 仅仅通过各个子事务之间的缓冲池进行交互。这样一来, 就能够确保前面的事务不会因为后续事务处理速度跟不上而影响短信的接收。
1.1.3 内存缓冲
短信入库的速度受到I/O性能的影响, 如果频繁跟I/O交互的话, 将会严重影响短信的接收效率。结合考虑到目前所有的运营商短信网关/SP短信管理平台, 都仅仅能够为SP等ESME提供相对数量较少的缓冲池, 当处于某一个话务高峰的时候, I/O操作就会成为系统的瓶颈而导致部分短信息的丢失。考虑到计算机内存读写得速度远远高于I/O的读写速度, 为了提高接收效率, 确保不会因为接受效率而影响短信的正常接收, 在内存开辟一定数量的缓冲池 (根据实际短信息的吞吐量而定, 如1万条) , 如此一来, 即使碰到话务高峰的时候, 也能够把接收到的短消息及时地写入到内存中, 不至于短消息丢失。
1.1.4 滑动窗口
很显然, 在接收、写日志、解码、信息处理、入库五个子事务之间的处理速度不可能一致, 那么, 为了确保整个事务能够顺畅的进行, 那么, 我们还应该在每两个需要通信的子事务之间开辟对应的滑动窗口, 用于适配两个子事务的处理速度, 滑动窗口的大小应根据接口的吞吐量及峰值进行适当的调整。
1.2 提高短信接口网关稳定性
作为底层通信接口, 其稳定性也不容忽视, 提高接口网关稳定性的方法大致如下。
1.2.1 守护程序
作为不间断的底层通信程序, 其服务可用性的要求相当的高, 为此, 必须引入守护程序其进行监管, 一旦发现服务异常, 马上对接口网关程序做相应的处理, 如关闭异常进程并重新启动新的进程及时确保接口程序的服务可用。
1.2.2 监控模块
为了确保网关的高效运行, 还必须考虑系统监控问题, 通过监控模块实时监控网关的运行情况, 并及时的调整发送策略, 如发送速率、是否应急关闭关键字过滤功能等。
1.2.3 预警机制
考虑到大多数机房都是无人值守或巡查周期较长, 因此, 短信接口网关开发的时候还需要考虑接口的预警机制, 如短信接口网关长时间无收发记录或者待发送队列积压过多的时候, 能够触发预警流程, 及时地告知维护人员进行处理。
1.2.4 专用通道
在上述预警机制的部署中, 如果由于发送功能异常 (如发送线程异常、SP通道受限等) , 则预警短信也将无法通过接口进行发送, 必须有另外的通道把该预警短信及时的送达维护人员, 建议采用专用通道 (如GSM、CDMA工业Modem) 进行预警短信的发送。
1.2.5 现场保护与恢复机制
由于采用了内存缓冲机制, 为了确保短信息不丢失, 在守护进程进行异常处理的时候, 还需要考虑内存的现场保护, 把没有完成处理的任务保存期来, 以便在重新启动新的网关进程的时候, 能够把这些任务不遗漏的进行继续处理, 即现场恢复。
1.2.6 程序异常捕获
虽然有守护进程和监控模块能解决服务可用性的问题, 不过, 那是比较被动的解决途径, 为了能够更加积极地解决这个问题, 我们在网关开发的时候, 还需要多采用“try…catch…”语句, 能够更加有效地捕获到程序各个地方所可能产生的异常, 并积极地作相应处理。
1.3 其他控制措施
作为SP短信接口网关, 除了考虑处理能力与稳定性之外, 关键字过滤、发送优先级控制、发送流量控制这三种机制也是必不可少的。
1.3.1 关键字过滤
作为一个成熟的SP短信接口网关, 在规划过程中, 也必须考虑短信内容安全的问题。在功能模块分析中还必须增加关键字过滤模块。由于关键字过滤的算法相当复杂, 且对系统资源的开销相当大, 作为通用的SP短信接口网关, 仅仅考虑的是简单的关键字过滤而已。
1.3.2 发送优先级控制
值得一提的还有, 在SP短信应用中, 还有一类业务 (如获取校验码等) , 这类业务的实时性要求比较严格的, 所以, 不可能全部机械地扔到短信接口中进行排队发送。因此, 短信接口网关还必须引入一个重要的参数, 即发送优先级, 通过对发送优先级进行控制, 我们可以针对整个SP短信应用提交的发送请求, 按照既定的优先级由高至低有序的进行发送。
1.3.3 发送流量控制
在运营商的SPMS (SP管理系统) 或者SMGW (短信网关) 上都有对每一个ESME (扩展短消息实体) 都有一定的流量限制, 对于超过流量限制的短信息, 执行丢弃的动作。为了确保SP短信接口网关所提交到运营商的短信息不被丢弃, 那么, 在提交的速度上也必须有一个控制, 最快不能够超过运营商提供给该ESME的最快发送速度。
2. 结束语
本文设计的SP短信接口网关, 目前已开始应用于各类SP, 有着比较广阔的应用市场前景。本短信接口网关存在许多优点的同时, 也存在一些不足之处, 如目前版本仅支持SMGP协议等, 这些还需进一步的完善。
参考文献
[1]郝文化.Windows多线程编程技术与实例[M].中国水利水电出版社, 2005-10
[2]候俊杰.深入浅出MFC (第2版) [M].华东科技大学出版社, 2001-1
[3]葛亮.VisualC++从入门到实践[M].清华大学出版社, 2009-7
短信接口 篇3
一、网关体系结构
为了方便用户使用, 提高通信效率, 业务平台对按键通话、语音留言、短信等多种通信方式进行了整合, 使用户能通过一个用户界面对各类通信业务进行使用。
本文介绍的短信网关接口模型从整体架构上看分为业务逻辑层、数据持久层、协议接口层, 从功能上看分为SIP互联接口、协议适配模块、数据库、TVPP接口、数据访问接口模块以及TVPP会话控制模块。
TVPP接口与遥控器之间的信息交互遵循既定的TVPP协议。TVPP接口负责客户端与服务器之间的消息传输以及在唤醒初始状态下的客户端, 具体的执行单位是数据通道和通信初始化请求通道。
SIP互联接口与业务平台之间的信息交互遵循既定的SIP协议, 具有一定扩展性, 保证其后期的发展潜力。
TVPP会话控制模块维系着客户端与业务平台的绑定关系, 从客户端的注册及认证到客户端与业务平台的消息互通, 其通过控制会话的建立来支配会话的结束及开始, 并处理超时和监控心跳。协议适配模块与接口层相连, 主要负责把客户端业务请求转化为业务平台认可的SIP请求[1]。
业务平台接受到SIP请求后会反馈相应的SIP应答, 然后协议适配模块再把SIP应答转化为遥控器能认可的业务应答, 也就说协议适配模块负责SIP协议与TVPP协议之间双向适配。
关系对象映射技术、数据库连接池技术是数据访问接口模块的技术支撑, 负责数据库的建立以及各项数据的处理。
业务平台储存管理用户有关数据, 数据库储存管理系统运行日志、系统管理维护数据、TVPP系统配置参数以及用户业务操作日志。
二、TVPP 与 SIP 协议间映射
用户标识的映射、消息类型映射、消息模式映射等是TVPP与SIP协议间映射的主要内容。值得注意的是, TVPP与SIP协议间映射并不是一一对应的关系。
2.1 消息类型映射
TVPP协议与SIP协议标示消息类型的方式不同, 前者用信息单元MESSAGE—TYPE, 后者用请求行的方法名。如果方法名是NOTIFY或SUBSCRIBE, 还需要先进行区别和标识。
消息类型映射的映射如表1所示。
2.2用户标识映射
在SIP协议中, 用户标识主要应用于TO头域、消息体中、FROM头域。根据SIP协议的要求, 网关在完成用户地址的映射时, 消息体中及TO头域的用户地址应把SCHEMA转换为SIP, 而FROM头域中只需填写USER-ID[2]。选定一个与标识用户逻辑区域ID相同的之于客户端透明的P参数, 以方便网关可根据P参数与业务平台返同的值对SIP中的用户标识进行处理。
2.3消息模式映射
由于TVPP与SIP协议间映射并不是一一对应, 它们之间存有差异, 为了有效维护相关资源, 网关要消除这种差异。例如, SIP协议有“Dialog”的概念, 而TVPP协议中没有, 这就使得TVPP与SIP协议间映射存有差异, 这种差异会影响到客户端会话对资源的使用效果。当TVPP客户端用户退出系统时会释放一定的资源, 网关通过向业务平台发送消息来显示资源的释放, 并结束此次会话, 以便资源得到更加高效的利用。此外, 网关可直接回送业务平台200OK来显示TVPP协议中无法匹配的SIP消息。
三、结束语
通过对SIP和TVPP协议的短信网关接口模型体系结构的分析, 我们知道该模型体系实现了SIP和TVPP协议之间的良好转化, 保留了短信的主要功能, 但由于差异的存在, 部分功能有所损失, 但整体而言其不仅流程简便还具备较高的运行效率, 对“三网融合”具有一定的启发意义。
摘要:短信网关功能的实现遵循电视对等通信协议 (TVPP) 和会话发起协议。本文对基于SIP和TVPP协议的短信网关接口模型体系结构进行了分析, 借此对短信网关的功能进行了介绍。
关键词:SIP协议,TVPP协议,短信网关,分析
参考文献
[1]王良家, 姜昱明, 陈婵颖.基于多协议网关的短信增值业务系统的研究与设计[J].计算机丁程与设计, 2002 (12) :2227-2230.
短信接口 篇4
本文设计并实现了这种要求的短信网关接口系统。此系统采用JAVA作为编程语言,并使用SOKCET、多线程、非阻塞IO、异步通信等技术,采用多数据库、多层结构体系的设计方法来实现该系统,能够承受较大的短信流量负荷,达到企业级的应用要求。
1 系统设计
1.1 系统结构
本系统位于移动运营商的短信网关和服务提供商的短信业务之间,负责完成各类短信业务的综合接入和管理。从总体上看,可以分为四大部分,分别是短信网关接口模块、业务逻辑处理模块、业配置管理模块、和多数据库模块,如右图所示。
短信网关接口模块:它主要负责费率转换、记录话单、与短消息网关交互等功能;
业务逻辑处理模块:主要负责短信MO、MT消息业务的具体处理逻辑;
配置管理模块:为短信网关接口模块提供路由、帐号、接入地址、网关流量速度等配置信息的管理;
多数据库模块:用于记录短信消息、费率信息、话单数据、业务数据以及各种业务信息;
1.2 系统模块功能设计
1.2.1 短信网关接口模块设计
此模块是本系统的核心模块,它负责与短消息中心和一级网关的消息交互,以及消息的存储转发、协议的转换、费率转换、身份验证,以及生成话单等功能。
它的具体业务流程如下:
1)根据从运营商申请的网关地址、用户名和密码与短信网关建立联接;
2)从短消息网关接受消息,将四大运营商的协议进行解析并转换成标准的SMPP协议消息包,并写短信信息话单到文本文件;
3)如果是上行MO消息,且信息类型是状态报告则把状态报告直接写到文本文件,否则将SMPP消息包根据不同的路由转发到业务逻辑处理模块;
4)如果是SP的主动MT消息,则根据预先配置的费率转换信息把消息中包含的内部扣费码转换为外部扣费码,然后将内部的SMPP消息包,转转换成实际运营商使用的短消息协议包,然后Submit到短消息网关上;
5)对于生成的话单,要使用一个话单入库程序,负责把生成的话单文件和状态报告文件导入到数据库中,供系统监控跟踪和分析统计使用。
1.2.2 业务逻辑处理模块设计
本模块是根据网关接口模块传过来的SMPP消息包,执行业务处理存储过程,来保存业务数据和执行具体的业务逻辑。
它的具体业务流程如下:
1)根据SMPP协议包中的消息内容、源手机号码和目的号码,找到该条消息对应的处理存储过程;
2)将协议包中的参数转换成存储过程的输入参数,然后执行存储过程;
3)存储过程负责该条消息的业务逻辑处理和相应数据的保存,并获取最终的结果;
4)将最终的结果重新封装成SMPP协议包转发给网关接口模块处理;
1.2.3 配置管理模块设计
本模块是对网关接口模块和业务处理模块连接参数的配置和短信消息的实时监控。
它的具体业务流程如下:
1)根据配置的用户名和密码登陆;
2)为网关接口模块配置与短信网关相连接的地址、端口、登陆名、登陆密码、协议类型、服务类型、流量速度、路由信息等参数;
3)配置与业务处理模块相连接的帐号、密码、服务类型、路由信息等参数;
4)当网关接口模块与短信网关模块连接上时,可以实时的跟踪短信消息的协议参数,并能监控收发短信的状态,并能图形化的显示短信协议包内部所有协议信息;
5)还能提供对某一个手机号码消息的跟踪功能,并能对某一时间段的跟踪数据进行保存。并提供对保存数据的查看、删除等管理功能;
1.2.4 多数据库模块设计
本模块是用来保存业务数据和多个不同数据库之间的数据同步。本系统为了达到较高的吞吐率,至少要采用3个库,可以称之为主库、运行库和话单库。
主库主要是用于网关接口模块的连接,来获取费率转换信息;
运行库主要用于业务处理模块的连接,用来执行业务逻辑处理的存储过程;
话单库主要用于短信话单和状态报告入库程序的连接,用于保存话单和状态报告数据;
具体短信业务处理流程都是通过存储过程来实现,数据库的同步则由数据库的JOB来调用相应的同步存储过程来完成不同数据库的数据同步。
2 系统实现
2.1 网关接口模块实现
本模块主要采用JAVA的SOCKET技术来与短信网关建立连接,使用多线程和非阻塞技术来提高系统性能。部分核心代码如下:
1)网关接口模块作为Socket的客户端与短信网关的Socket服务端进行连接;
2)网关接口模块作为Socket服务端等待与业务处理模块的Socket客户端进行连接;
2.2 业务逻辑处理模块实现
本模块主要采用非阻塞的方式来与网关接口模块的服务端来建立连接。此部分实现可参考网关接口模块实现部分。
2.3 配置管理模块实现
本模块采用阻塞技术和线程池相结合的方式来分别与网关接口模块和业务逻辑模块建立连接。此部分实现可参考网关接口模块实现部分。
3 结束语
本文设计并实现了一种短信二级网关接口系统,为了获取高性能和高吞吐率,系统使用了Java的非阻塞、多线程、线程池、数据库连接池等技术,并对系统分层,利用Socket技术将系统分成多个模块,并加入多个数据库进行数据量的分流。从而,使本系统能够获得较好的性能,为运营商和SP提供了网关接口系统企业级的解决方案。
参考文献
[1]金勇华,曲俊生.JAVA网络高级编程[J].2003,29(8):195-196,F003.
[2]哈诺德.Java网络编程[M],2005.
[3]Relly,D,Reilly,M.Java网络程序设计与分布式计算[M].北京:清华大学出版社,2004.
[4]萧文龙,林松檽.TCP/IP最佳入门[M].北京:机械工业出版社,2007.
[5]刘著,顾铁成.分布式计算原理与应用[M].北京:清华大学出版社,2000.
[6]Crawford,W,Kaplan,J.J2EE设计模式[M].北京:中国电力出版社.刘邵华,译.2000.