构建基于J2EE的广播发射台短信预警系统
谈燕
(国家新闻出版广电总局五〇一台)
摘要:本文阐述了建设广播发射台短信预警系统的意义,以及系统的设计与说明;通过实例,详细介绍了基于J2EE架构的短信预警系统的编程方法。关键词:短信预警系统 GSM Modem SMSLib1 建立广播发射台短信预警系统的意义
国家新闻出版广电总局无线局直属广播发射台(以下简称“广播发射台”)肩负着“中央三台”及部分省市广播节目的播出任务。从节目接收、传送到发射机,发射机将信号放大、调制,转变成电磁波,通过天线发射出去,整个传输发射过程系统庞大、环节重多,任何一个地方出现问题,均会影响到节目的播出效果。为了保证节目播出工作中出现突发事件时,能够准确、迅速地采取有效措施进行处理,减少停播时间,结合节目播出工作特点,广播发射台制定了安全、有效、完备的应急管理体系。广播发射台短信预警系统是发射台安全播出应急体系的重要组成部分,它是一个基于通信网络和业务平台的系统。当广播发射台节目播出工作中出现突发事件时,应急指挥中心通过短信预警系统,对全台职工手机进行应急信息发布,大大提高了广播发射台突发事件应急处置反映速度及防范处理等方面的能力。广播发射台短信预警系统的实现方法很多,大致可归纳为以下三种方法:(1)使用中国移动或联通公司提供的短信网关来实现预警信息的发送,如中国移动公司提供的和通讯录手机应用软件、企信通服务平台等。这种方法的优点是短信发送质量高、并发性能好。缺点是需要向运营商申请办理,此类业务的办理,对申请者有一定的条件限制;同时运营商不提供API接口,不能针对广播发射台应急处突的特定需求进行二次开发。(2)找第三方短信群发服务网站付费来实现预警信息的发送。这种方法的优点是一次性投资费用低廉,对方能够提供相应的CGI接口,有利于二次开发。缺点是短信发送并发性能不佳,安全性没有保障;此外,在做二次开发时,需要编写代码来实现消息排队等机制。(3)采用GSM modem + 服务器的开发模式进行二次开发,实现预警信息的发送。 这种方式的优点是成本低廉,可以根据业务需要,进行二次开发实现高级的短信功能;缺点是要求具体一定编程能力的技术人员完成二次开发工作。2 短信预警系统的设计与说明
本文重点介绍采用GSM modem + 服务器的模式,实现预警信息发送的设计方法。在进行系统设计之前,我们首先要了解什么是GSM Modem 。2.1 什么是GSM ModemGSM Modem是一种用于接收、发送短信的专用设备,通常称之为短信猫。其使用方法很简单,在GSM Modem中插入一张SIM手机卡,采用USB口或串口与计算机连接,通过调用短信发送管理软件,来实现信息收发等功能。GSM Modem分为手机版和工业模块版两种类型,技术成熟、稳定性好的是西门子和WAVECOM两家的产品。如西门子的TC35 、TC37 MC,WAVECOM的 2303A 、2403 、2403A、2406A等型号。广播发射台短信预警系统中选用了WAVECOM 2303A工业级GSM Modem,通过USB接口与服务器连接,通过调用AT指令实现预警信息的发送。2.2 GSM Modem的开发应用实现GSM Modem的开发应用的方法可分为以下三种:(1)通过接口直接调用AT指令,驱动GSM Modem硬件收发短信。这种方法属于最底层的开发应用,开发灵活,但要求编程员熟悉短信模块AT指令调用方法。(2)采用GSM Modem厂商提供的封闭了AT指令的二次开发包,通过调用短信收发API接口实现开发应用。(3)采用GSM Modem厂商提供的基于数据库接口的GSM Modem通信中间件来实现开发应用,这是一种更高级的短信开发解决方案,实用于大、中型短信群发平台的开发应用。2.3 短信预警系统的架构原则短信预警系统中所采用的GSM Modem是典型的串行通讯设备,在提交短信发送信息后必须等待回应后方可发送下一条信息,否则会造成死机。在广播短信预警系统应用中,存在多线程同时并发操作短信模块的需求,为避免发生GSM Modem死机的问题,我们在进行软件编写时,应遵循如下架构原则:(1)创建相应的数据库表,实现短信队列。在发送预警短信时,先将短信接收者与发送内容提交到短信发送队列。(2)开发独立的短信服务后台,从短信发送队列中读取发送信息,再调用GSM Modem开发包发送短信;通过调用开发包,读取GSM Modem收到的短信,并放入短信接收队列。(3) GSM Modem开发包内部封装的是GSM Modem与计算机之间的通讯接口程序,通过调用封装的AT指令驱动短信模块收发短信。2.4 短信预警系统架构如图1所示,短信预警系统采用GSM Modem+服务器的开发应用模式,用户通过客户端浏览器访问短信服务器,提交短信发送请求,短信服务器通过USB口与GSM Modem连接,将客户端提交的短信发送请求转换为AT指令发送GSM Modem,达到发送接收短信的目的。图1短信预警系统架构
2.5 短信预警系统主要功能通过对广播发射台应急处突需求进行调研, 短信预警系统主要包括:发送预警信息、预警信息自动重发、地址本管理、常用短信设置、发送结果查询、发送报表查询、用户管理等功能。2.6 系统设计特点(1)短信预警系统使用J2EE平台,MyEclipse8.5作为开发环境,采用应用层、业务层、集成层和数据库层的四层构架, 实现了业务逻辑与表示逻辑的分离;为保证系统高效、安全、稳定的运行,开发中采用分布式的数据管理、事务处理以及多线程的异步消息通讯等机制,提高系统通信的效率和可靠性。(2)数据库采用MySQL5.0,数据部署在服务器上,包含用户信息表、短消息收发信息、短消息收发日志等表单。2.7 调用SMSLIB 库实现预警信息的发送功能SMSLib是Apache支持短信发送的一个开源项目,分.Net和JAVA两个版本。短信预警系统是在Windows环境下,MyEclipse8.5开发环境中,通过调用JAVA版的SMSLIB 库,采用java编程实现开发应用的。调用SMSLIB 库包括加载SMSLib库和配置运行环境两个重要步骤。2.7.1 如何加载SMSLib库(1)SMSLib官网下载“SMSLib for Java v3.5.2”开发包,解压后的目录结构如图2所示:图2
文件说明:lib用来存放slf4j、log4j、commons-net、jsmpp等运行文件以及smslib-3.5.2.jar二次开发包。dist用来存放smslib-3.5.2.jar等核心类和smsserver-3.5.2.jar二次开发包。doc用来存放smsserver安装与配置信息、smslib使用指南等文档。javadoc用来存放API开发包。src用来存放示例及开发包源码。msc用来存放smsserver数据库脚本、smslib日志配置模板及服务接口等文件。build用来存放项目管理文件。(2)官网下载SUN JavaComm v2 (Win32)动态库,解压后的目录结构如图3所示:图3
2.7.2 配置运行环境(1)将图3中“javax.comm.properties”文件复制到“%JAVA_HOME%\jre\lib”目录里,同时把“win32com.dll”复制到“%JAVA_HOME%\jre\bin”目录里。(2)将图3中“comm.jar”包和图2中所有jar文件复制到CLASSPATH目录里,如果编程中使用eclipse等IDE工具时,还应将这些jar文件导入到工程内。2.7.3 运行示例并测试图2所示“src\java\examples\modem”目录里包含SendMessage.java和ReadMessages.java两个信息发送和接收的示例程序,根据选用硬件情况,进行参数配置、编译并可运行测试。2.8 运行SMSServer实现预警信息的发送功能除2.7所述,在MyEclipse里调用SMSLIB 库实现短信收发的方法外,还可以通过配置SMSLIB 库中的 SMSServer来实现短信收发,这种方法不需要编写额外的发送和接收代码,只需完成SMSServer的安装、配置等工作后,将SMSServer安装作为Windows系统服务运行,就能实现短信收发服务功能。要将SMSServer安装作为Windows系统服务需要完成以下工作:(1)调出“org.smslib.smsserver”包里的SMSServer文件,根据提示,完成SMSServer的安装。(2)进行SMSServer.conf文件的参数配置。在标准开发包中包括有一个conf实例,可使用-Dsmsserver.configdir或-Dsmsserver.configfile参数进行目录、文件的设定。如:设定目录:“java -Dsmsserver.configdir=/path/ org.smslib.smsserver.SMSServer”。设定文件 :“java -Dsmsserver.configfile=/path/MyConfig.cfg org.smslib.smsserver.SMSServer”(3)配置GateWay网关。在工程的配置文件中至少要配置一个网关,而且每个网关都应有各自的配置项。(4)配置interfaces接口,Interfaces包含系统发送消息的数据源以及从网关接收到消息保存的地址。需要注意的是:系统只允许一个interfaces同时处理上行与下行信息。
评论 点击评论