浅谈基于SSH的智能交通短信平台的设计与实现
2019-05-14詹立勇
□ 文/詹立勇
引言
在智能交通行业中,传统的短信平台是以短信猫(GSM MODEM)技术实现对手机的短信发送达与接收,从而实现智能交通业务中的气象预警信息、防污防台信息、路网运行路政设施情况、突发事件信息等及时通知相关管理人员和维护人员。随着网络技术的不断发展,移动、联通、电信三大运营商已推出各自的短信网关接口用于企业级的短信平台接入。智能交通行业的短信平台需要在此基础上根据各运营商的接口进行功能的升级和完善,以适应行业的发展需求。
关键技术介绍
短信网关
短信网关主要是解决各运营商之间短信互通和服务提供商(SP)的接入问题,同时完成计费采集、业务管理、网络管理等功能。通过短信网关接口,可以将短信平台与各种应用系统进行无缝高效对接,将应用系统产生的动态信息转变成手机短信。
传统的短信猫技术(GSM MODEM)技术实现PC对手机收发信息,适合小项目的开发。直接接入运营商短信网关的方法实现不需要附加新的硬件,但是需要到运营商申请网关,适合于企业级的大型通信开发,如向移动、联通、电信等公司申请,使用起来比较方便。
Web Service介绍
Web Service是一种轻量级的、独立的、低耦合的通讯技术,它可以接收从其它系统中传递过来的各种请求。对于Web Service技术来说Web服务就是一个URL资源,调用方可以通过编程方式请求得到它的服务,并且不需要知道所请求的服务内部机制是如何实现的。(Web Service体系结构如图1所示)通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
▲图1:Web Service的体系结构
SSH框架
SSH框架采用面向对象的分析方式将一些模型实现为java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate框架实现的DAO类来实现java类与数据据之间的转换和访问,最后由Spring管理Struts和Hibernate。
SSH框架自上而下可以分为表示层、业务逻辑层、数据持久层和域模块层四个层次。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,大大提高了系统的可复用性,提高了开发效率。
短信平台总体设计
功能设计
通知短信提醒功能
短信平台可以与智能交通的交通监控系统、设施设备运维系统等外部系统进行关联,当系统出现异常情况可通过用户登记的手机号送相应的短信提示,及时通知监控人员、运维人员,以便及时查看,大大提高了工作效率。
短信发送功能
用户可以通过相应帐号向在系统中已登记的手机号发送短信。子功能包括:从组织结构树选择接收短信的人员,定义接收短信子组。如根据监控、运维、应急等业务定义需要接收短信的短信子组。在短信发送时可以选定后一次发送,同时可以查看短信发送内容和条数等情况。
短信自动分发功能
短信平台对应移动、联通和电信三个发送通道,可根据接收手机号不同,自动将信息分发到相应的短信网关。同时保留短信猫接口,当短信网关通讯出现异常时可以使用短信猫接口作为备用接口。
总体架构设计
▲图2:短信平台的整体架构
短信平台的整体设计决定了系统的健壮性和易用性。本架构采用基于java语言的SSH框架架构技术,自上而下可以分为应用层、接口层、协议层、数据层和接入层五个层次:
应用层:监控系统、运维系统、日常管理以及其它在信息化建设过程中上线的各种应用都可以实现信息发送通知和短信提醒的功能。虽然系统架构和所采用编程语言可能有所不同,但是采用Web Service接口技术可以很好的实现这些异构系统与短信平台的无缝对接。
接口层:短信平台采用B/S架构,用户可以统一登录到短信平台。第三方的应用程序则通过Web Service接口接入至短信平台。
协议层:SMS(短信服务)协议主要用来处理文本、数字或二进制非文本数据为主,对于长度超过140字节的短信自动拆分,然后分别发送,接收端接收后拼接还原为长短信。MMS(多媒体信息服务)协议主要用来处理多媒体短信的发送,包括视频、图片、声音和文字等。
数据层:数据层是整个短信平台的核心模块,为其他层次提供数据库支持。数据主要包括用户数据、短信数据和汇总统计数据,同时还可以用来存储短信发送、接收和定制情况等。
接入层:目前国内各大电信运营商在短信网关的通信上分别制定了不同的协议,例如:EMPP协议(移动)、SGIP协议(联通)、SMGP协议(电信)。不同运营商用户分别连接不同的运营商网关,接入层主要的工作是实现各短信运营商短信网关的对接,由于每一家短信运营商的短信接入协议并不相同,因此在接入层按照短信运营商划分为移动、联通、电信接入模块。同时保留短信猫模块,当与运营商网关通讯出现异常时,可通过短信猫进行信息发送。
关键模块的实现
短信平台整体功能强大,具体多个功能模块。平台采用J2EE技术开发,整体架构采用SSH框架和Oracle数据库技术。开发环境使用Myeclipse实现部署。关键模块主要包括移动、联通、电信三家主流运营商的接口实现。
基于EMPP协议实现移动运营商短信的发送
EMPP是上海移动制定的企业短信通平台接口协议,版本为V2.0。它规定了上海移动企业短信通业务客户接入的消息类型和定义,规定了EP(使用短信平台发送短信的企业客户端)与ESMP(企业短信平台)之间短信收发接口协议的内容,适用于各EP的开发厂商。
EMPP协议主要提供以下两类业务操作:短信接收和短信发送。协议以TCP/IP作为底层通信承载。企业端可以在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发链路检测包以维持此连接。通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。
在EP与ESMP之间发送短信时采用异步方式,即客户端在发送一条短信后不必等待服务器端的响应即可再次发送短信。
▲图3:EP与ESMP交互过程中的应答方式
基于SGIP协议实现联通运营商短信的发送
SGIP是中国联通制定的短消息网关系统接口协议(,版本为V1.2。协议所描述的短消息网关接口协议,用于完成在SMG(联通公司的短消息网关)和SP(服务提供商)之间、SMG和SMG之间短消息的发送、接收和转发功能,以及SMG和GNS之间路由表的同步功能。
SMG是具有短消息转发功能的短消息网关。全国可以有多个SMG网关,SMG网关之间通过互联网等方式实现网络互联。每一个SMG同时与多个SMSC以及多个SP连接。全网具有唯一有效的GNS,GNS负责全局路由表的维护与更新;为了确保路由表存储的安全性,网络中设置主备用GNS,两个GNS要保持一致性。每一个SMG都和GNS连接。SMG与SP、SMG与GNS以及SMG与SMG之间的通信协议为SGIP协议。SMG与SMSC之间的通信统一采用SMPP3.3协议。
▲图4:SMG的体系结构
SGIP有两种具体实现方式,一种是采用专用SGIP方式,另一种是采用通用HTTP方式。SMG和GNS、以及SMG和SMG之间采用专用SGIP方式作为承载协议;而SP和SMG的通信同时支持专用SGIP方式和通用HTTP方式两种承载协议。
SP和SMG之间的通信由客户端向服务器端发起连接。连接建立以后,由客户端向服务器端发送命令,服务器端必须对接收到的每一条命令返回一条应答消息。SP和SMG互为客户端和服务器端。
SP与SMG之间发送的任何一条命令都带有一个序列号,序列号由命令源产生。
▲图5:SP和SMG的通信业务实现(SP为客户端)
▲图6:SP和SMG的通信业务实现(SMG为客户端)
客户端与服务器端通信开始以后,客户端可以向服务器端发送相应的命令,服务器端对收到的命令返回应答。命令在SP和SMSC之间的传输是采用类似接力的方式,每条命令和对应的应答仅仅表示该次命令发送的结果是否正确。比如,SP向某一个手机发送一条短消息,是通过向本地SMG发送一条Submit命令实现的,随后,SP会从SMG接收到一条Submit_Resp应答。但是,即使应答表示Submit命令已正确接收,也不表示Submit命令内的短消息已经发送到手机上了,而仅仅表示该短消息已经传送到SMG,SMG将会作下一步处理,或者发送给SMSC,或者路由到另外的SMG,最终由目的SMSC发送到手机上。这中间任何一个环节出现错误,系统会终止信息的继续发送,并且通过向原SP发送Report命令告诉发送出错的原因(如果SP指定要求反馈的话)。
基于SMGP协议实现电信运营商短信的发送
SMGP是中国电信制定的短消息网关协议(短消息网关协议),版本为V3.0.3。协议适用于适用于短消息网络上(固定网、移动网)短消息网关与其它网元之间进行短消息的传输,适用于短消息网关、相关网元设备开发商及内容提供商。
SMGW(短消息网关)与ESME(外部短消息实体)之间共有两种连接方式:长连接和短连接。本系统采用短连接方式。通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。通信双方之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1次后仍未得到响应则停发。
▲图7:业务实现流程图
结束语
随着信息技术的不断发展,短信平台作为获取信息、发布通知公告的一种重要方式越发显得重要。文章提出的基于SSH的短信平台,实现了移动、联通、电信三大运营商短信网关接口的接入,并在此基础上实现了通知短信提醒功能、短信发送功能以及短信自动分发功能,有效地延伸了有效延伸了其他应用系统的信息流,提高了信息发送的便捷性和针对性,具有一定的推广性和研究价值。
目前系统已经上海市交通委指挥中心监控系统正式使用,在今后的信息化发展中如何能够更加充分有效地利用短信平台还需要进一步研究和探索。