基于WEB服务的短信发送平台设计实现
2016-11-09徐乐赵荣辉
徐乐 赵荣辉
摘要:本文针对企业级短信应用,结合国内外短信业务的现状,深入分析了短信猫的应用场景,实现原理和工作方式,结合工作需要,提出了基于web服务的短信猫发送平台,详细阐述了应用开发流程。运用java语言实现了短信猫的web service服务器端,企业级用户可通过调用短信猫通信接口,实现中英文短信的发送功能,支持常用特殊字符,支持发送超长短信。本平台通用性较好,可安装在Linux的服务器上,也可以用于windows系统,具有稳定性高,易维护,易升级等特点。
关键词:GSM短信猫 web service 超长短信
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2016)09-0193-02
1 引言
近年来,随着信息技术的发展,全球数字移动通信系统(Global System for Mobile Communication,GSM)迅速发展起来,广泛应用于各个行业和领域,是目前较为稳定、应用面较广的移动通讯方法。短消息业务(Short Message Service,SMS)是基于GSM的一项短信通信功能,是GSM网络提供给用户的一种有别于语音传输的基本通讯业务[1],具有实时性强、成本低廉、无线传输等优势,也引起了诸多系统运营商的高度关注,许多针对该业务的应用也迅速开发出来。基于技术发展现状和业务需求,笔者开发了基于WEB的短信发送平台,可应用于中小企业的即时短信通讯,便于提高企业内部的沟通能力和管理效率。
主要的短信传输方法:(1)通过运营商网关发送。开发者可向各大运营商申请网关,无需任何硬件配合,即可实现大规模的短信收发系统,较为便捷,但价格昂贵;(2)通过GSM MODEM模块实现PC对手机收发信息。GSM MODEM通常为短信猫,通过此模块,结合短信控制的AT指令以及串口传输协议,即可实现小规模的短信收发系统的开发;(3)通过一些网站提供的短信发送功能。这种方法易于实现,所需资源少,但对网络的依赖性很强,不利于集成到企业的管理系统中。根据实际需要,本系统采用GSM MODEM模块的方法来实现基于WEB的短信发送平台。
2 短消息业务
短消息业务(SMS)指通过无线网络和短消息中心,在手机之间以及手机和业务平台之间,交换有限长度的文本或二进制短消息,实现信息的存储和转发功能。短消息业务是充分利用移动网信令资源前提下发展起来的业务,相对于移动话音基本业务,被确认为是增值业务。短消息服务具有应用面广泛,成本较低,运行稳定等特点,可广泛应用于频繁远距离小流量消息的传输。
短消息的基本业务特征:(1)短消息可发送的信息长度有严格规定,每条短信最多可传输140个字节,每个汉字占两个字符,英文字母、标点符号均占用一个字符,长度大于140个字符的为超长短信,需分条发送;(2)短信属于非实时性业务,对带宽和时延要求低,属于非面向连接的业务,是GSM系统中唯一不需要建立端到端信道的服务;(3)采用存储转发服务机制,即使用户关机,没有任何响应,也会自动保存短信,一旦用户再次开机,会立刻再次发送短信,从而保证短信能够发送成功,并返回发送结果。(4)当用户空闲、通话过程中都可接收短消息。
3 系统设计
3.1 短信猫平台结构
短信猫平台结构如图1所示。
3.2 短信猫的硬件连接
首先将作为短信中心的SIM卡放置到短信猫的卡槽内,将天线固定在信号强的位置,然后用串口线将短信猫与电脑或服务器的串口或USB口连接,最后给短信猫上电。检测短信猫的NET指示灯闪烁状况,确保短信猫成功与GSM网络连接。
3.3 短信猫的软件总体结构
软件总体结构如图2所示,包括三大主要模块,具体功能模块和子模块描述如下:
3.3.1 接收客户端请求消息
平台作为web service服务器端,当收到客户端发来的信息发送请求时,解析出要发送的目的号码,发送的内容,并标记发送的信息(该标记便于将发送结果返回给客户端),然后存入发送的消息队列中。
3.3.2 发送消息
此模块为本平台的重要实现部分,用于实现短信发送业务,主要包括几个方面:(1)通过定时器启动发送线程,平台定时从发送队列顶部取出待发送的短消息,解析出相应的发送目的地址和发送内容,并通过编号标记短消息;(2)发送正常短消息,即长度在140个字符内的短消息;(3)发送超长短消息,对于消息内容长度超出限制的短消息,可通过相应指令和编码控制将其分割为多条连续短消息,按多条方式连续发送給用户,此模块用于发送长度超过140个字符的短消息;(4)发送特殊字符,对于某些英文或中文的特殊字符,需要特殊的ASCII编码和USC2编码,此模块用于实现特殊字符的编码;(5)发送中文短信,中文采用UCS2编码,通过PDU模式发送,最多可发送70个字符;(6)发送英文短信,英文采用ASCII编码,可通过TEXT或PDU模式发送,最多可发送140个字符。
3.3.3 返回发送结果
为防止客户端由于长期未收到短信发送结果而阻塞,采用了超时机制,即若在1分钟内服务器端未收到短信发送结果,默认返回-1,以通知客户端短信发送失败,可改为调用备用短信猫。
3.4 短信猫的软件流程
具体软件发送过程如图3所示。
(1)串口初始化。服务器启动后,先遍历所有的端口,查看哪个端口被占用,即外接有短信猫设备,找到后,设置该串口的波特率、停止位、数据位、奇偶校验位等信息,建立连接,并启动串口监听,注意应加入支持串口通讯的jar包和.so文件;(2)设置短信猫格式。通过AT+CMGF设置短信发送模式,AT+CMGF=1,表示为PDU模式,AT+CMGF=0,表示为TEXT模式,还有Block模式,但较为少用。Text模式较为简单,但只能发送英文短信;而PDU模式中英文短信均可发送。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。(3)后台启动发送线程,定时从短信队列的顶端取出消息,并解析出内容,若为中文,则调用ucs2编码,若为英文,则调用7-bit编码,内容编码结束后,再判断信息长度,若为正常短信,则正常发送,若为超长短信,则分段发送。利用串口发送AT指令驱动短信猫完成短信的收发,并将发送结果返回给客户端。(4)若短信发送失败,可再次加入到发送队列中,等待下一次发送。
3.5 热备系统
由于短信猫通过串行方式收发短信,即必须收到前一条短信的返回值,方可发送下一条,否则会导致短信猫死机[2]。随着请求短信数量的增加,短信猫业务会更繁忙,即使通过多线程并行处理也无法解决。因此本次设计使用短信队列结合主备两个服务器的方式来完成。通过多个短信猫模块,可提高短信猫并发传输的能力,并且预防短信猫欠费、运行故障或服务器挂机等意外,从而提高了整体服务的效率和质量。
4 结语
本平台基于web service服务,以手机应用为基础,以短信猫为收发短信的硬件设备,实现了实时、稳定、高效的短信收发系统,一小时可发送约660条短信。为企事业单位提供了新型短信应用,通过这个系统,可以向中国移动、中国联通用户提供短信服务。同时,本平台是一个开放的平台,便于为第三方应用提供接口,从而进一步开发。
参考文献
[1]沈炜.化工企业短信平台的开发与应用[D].浙江:浙江大学,2011.
[2]刘兴淮.建立短信平台实现医疗设备效益分析[J].中国医疗设备,2012(12):59-61.