摘 要 本文使用Java串口通信技术和JSP技术,对已有的短信系统进行研究,分析系统存在的问题,改善系统提取短信方法、提高系统性能、实现定时发送短信功能,并应用于Windows平台下的Web系统中。
关键词 串口通信;手机短信;管理信息系统;JSP
1 引言
随着移动通讯的发展,移动办公提供随时随地服务正成为当今信息技术发展的重要方向。以短信为基本服务平台的服务渠道正被越来越多商家所采用。手机短信的行业应用越来越广泛,它具有快捷、经济、针对性强、可移动等优点。很多行业的企业用户都希望能够利用Web系统提供的手机短信服务功能来发布企业信息。如:客户联络、新产品通知、会议通知、紧急通知、催费通知、发货通知、订单查询、节日问候等,从而达到提高办公效率、降低办公成本的目的。2 问题分析
目前在PC上实现手机短信收发技术主要有三种: (1)直接接入运营商短信网关,这种方法的实现不需要附加新的硬件,但是需要到运营商申请网关,适合于大型通信开发,如向移动、电信等公司申请,使用起来比较方便,但费用较高。 (2)通过一些网站上提供的短信发送功能来实现,如腾迅、网易等都提供这方面的服务,这种方法实现起来比较简单,所需资源较少,但缺点是对网络的依赖性太强,不利于集成到企业的MIS系统中。 (3)用GSM MODEM技术实现PC对手机收发信息,这是目前比较适合于小项目开发的一种方法,只需要对AT指令和串口编程的知识运用熟练就可以实现,但需要硬件GSM MODEM的支持。当前,一些公司提供了短信开发的设备和配套的短信群发软件,用它可以在软件中集成相应的群发功能,虽然实现了发送短信的功能,但由于是单机版的,不利于远程操作和多用户的同时使用;也有一些基于Web的短信系统开发出来了,实现了手机短信的发送,但在手机短信的接收方面仍存在不足:如很多系统都是通过不断刷新页面来判断是否收到有新的信息,这种方式使得系统效率下降,需要改进。另外,在目前已开发出的短信系统中尚缺乏定时发送短信功能,此功能的实现,可以为用户的日程安排提供短信提醒服务。 基于以上因素,可以设计并实现一种B/S模式的短信系统,此系统在一种能通过输入设备与服务器直接通信的MVC体系结构下构架,使用GSM MODEM以串口监听方式触发事件的方式接收短信以提高系统的性能,实现定时发送短信功能以满足更多用户的需求。3 系统体系结构
基于J2EE的Web式信息管理系统技术现已比较成熟,如Struts框架、Model I体系结构、Model II体系结构都可实现。本文体系结构是基于J2EE的MVC结构,实现一种能通过串口设备实现向系统进行输入输出的系统结构,如图1所示。
4 系统功能
短信系统的主要功能有写短信、发件箱、收件箱、电话簿、统计查询和常用语的插入等,其功能模块如图2所示。
5 系统实现
JSP、Servlet技术和数据库技术在Web应用程序开发中的大量普及和应用,使得系统中写短信、查询统计、常用语等模块的实现变得非常容易。5.1 收发短信
当前,采用的收发短信方法主要是在服务器端使用定时刷新页面或通过定时器来实现。此方法是在每间隔一定时间,服务器扫描串口并读取串口中的数据,然后确认是否解收到新数据。这虽然实现了信息的接收,但增加了服务器的开销,无论是串口有无新数据,服务器都定时读取数据,这便增加系统的负担,从而将低了系统的性能。 基于串口监听的方法接收数据,即当串口有新数据接收时产生监事件,通过事件驱动来“通知”服务器,然后取得手机发送过来的信息,从而进行处理和响应事件。这种方式的实现,其优势主要体现在节省系统资源和数据接收的及时响应。
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
5.2 定时功能的实现
收发短信的实现,虽然为信息管理系统增加了新的功能,但还不能满足其应用的需要,尚需要在系统中新增更多功能。以下实现的是在系统中定时发送短信功能,如定时为某用户发送信息。 当Web工程启动时,必须能让定时器宿主的存活期为整个Web工程生命期,在工程启动时能自动加载运行。结合这两点,确定使用Servlet上下文有关的侦听器实现定时功能,通过在工程的配置文件中加以合理配置,会在工程启动时自动运行,并在整个工程生命期中处于监听状态。通过Servlet侦听器与Timer的结合,运用Servlet侦听器需要实现javax.servlet.ServletContextListener接口,同时实现它的contextInitialized(ServletContextEvent event)和context Destroyed(ServletContextEvent event)两个接口函数。程序实现代码如下:public class TimerListener extends HttpServlet implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { //开始监听,在此部分编写定时功能的程序 SmsManager[] sm=new SmsManager[10000]; for(i=1;i<10000;i++);//初始化任务 Timer t=new Timer(); i=0; MyTask mt = new MyTask(sm); //自定义任务类//该类run()方法执行发送短信 t.schedule(mt,0,1000); //每秒钟检测一次 } public void contextDestroyed(ServletContextEvent sce) { //定时器的销毁 }} 实现短信定时发送的具体方案中,将预发内容、时间、手机号码、用户等信息保存在数据库中,当预发时间与当前系统时间相同时,将内容自动发送到指定手机中。于是,在实现时,时刻都要取出数据库中的时间进行比较,这将大大地增加系统的开销。为了减少频繁的访问数据库,降低系统开销,本文是使用动态链表实现。 首先将预发的内容、时间等信息封装成类SmsManager,然后由该类创建对象数组,数组的长度可根据系统的用户量决定,并由数据库中未发标记的记录按时间对每个数组元素初始化。功能的实施,就是通过对数组元素依次访问,当数组每个元素全部访问,系统再重新自动初始化数组对象。若有在当天预发的情况,则可用插入算法,按照时间链插入在数组中。6 结语
本系统作为某高校学生成绩管理系统的一个子系统,实现了学生的短信查分、教学通知等服务,还为教职工的日程安排、会议通知等提供短信服务,这节省了学校的日常通讯费用,也提高了教务部门的工作效率。参考文献
[1] 潘旭兵,林中.短信收发系统[J].电脑编程技巧与维护.2007(5):44-49[2] William Crawford,Jonathan Kaplan着,刘绍华,毛天露译.J2EE设计模式[M].中国电力出版社,2005[3] Deepak Alur,John Crupi,Dan Malks着,刘天北,熊节等译.J2EE核心模式(第二版).机械工业出版社,2005[4] 郭文生,杜军平,尹怡欣,基于J2EE的旅游电子商务平台的设计研究[J].计算机应用与软件.2007(2):118-120[5] 陈军,段良辉.基于J2EE的通用Web信息系统框架设计与实现[J].计算机系统应用.2007(1):6-9[6] Y.Daniel Liang着,王镁,李娜等译,Java语言程序设计[M],机械工业出版社.2004
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
国家、市场与社会(下)从全球视野和批判角度审视中国传播04-26
关于国家权力合法性04-26
刑法的意义与国家刑权力的调整——对人权两《公约》的04-26
和谐社会视域中的国家权力与社会权力04-26
审美权力假设与“国家美学”问题04-26
公民权利国家权力对立统一关系论纲04-26
人格魅力、权力制约与法治国家04-26
国家审计对权力的制约与监督探讨04-26
刑事政策的理论预设:国家、权力与公共政策04-26
论国家权力分配原理04-26