首页 > 代码库 > 基于j2ee的信箱与短信系统设计与实现
基于j2ee的信箱与短信系统设计与实现
摘 要
当前,信箱与短信系统己经成为对外信息公开、受理公众投诉、咨询和政民互动的主要渠道之一。传统的信箱与短信系统受理时间长、效率低、渠道单一,同时受人为影响较大,督促较为困难。
随着科学技术的发展,计算机网络技术在行业应用的普及,应用现代信息技术在市长信箱与短信系统展现出了越来越多的优势。木文基于贵州某市的实际需求,完成了市长信箱与短信系统的分析和设计。
本文完成了一个基于B/S架构、以J2EE技术和SQLServer后台数据库为基础的、具备多渠道受理、后台统一管理、标准化、流程化、大量数据统计与分析的信箱与短信系统。
本系统利用J2EE技术架构特点,解决了目前现有的市长信箱与短信系统在实际应用中数据提交缓慢、用户投诉受理渠道单一、处理过程无法查看的种种问题。基于J2EE技术架构的市长信箱与短信系统,不仅符合了贵州某市的需求,而且提供给管理员和社会大众更流畅的操作界面,在管理员处理信息时,操作更方便;在社会大众提交信息时更方便、快捷,大大节省了人力成本、提高了形象。
关键词:市长信箱,信箱与短信系统,,JavaEE,B/S结构
ABSTRACT
At present, the government mayor mailbox system has already become one of the main channels of government information disclosure, receiving public complaints, advice and political interaction between the people. Mayor mailbox system of traditional processing time long, low efficiency, single channel, also greatly influenced by man-made, urge more difficult.
With the development of science and technology, popularization and application of computer network technology in government, industry, the application of modern information technology in the mayor‘s mailbox system shows more and more advantages. In this paper, the actual demand of Jiangsu Changzhou City Hall based, completed the analysis and design of the mayor‘s mailbox system.
An B/S based architecture, J2EE technology and SQLServer database based, with multiple channels, unified management, backstage by standardization, process, a number of statistical data and analysis of government mayor mailbox system.
This system uses J2EE architecture, to solve the current data mayor mailbox system existing in the actual application submitted to slow, customer complaints problems receiving channels of a single, processing can not be see. The mayor‘s mailbox system framework based on J2EE technology, not only in line with the Changzhou City Hall demand, but also provides the administrator and the public more fluid interface, the administrator to process information, more convenient operation; in the public to submit information more convenient, fast, save manpower cost, improve the image of the government.
Key words: mayor mailbox, the mailbox system, government, JavaEE, B/S structure
目 录
1 绪 论···· 1
1.1 研究的背景··· 1
1.2课题研究意义··· 1
1.3 国内外发展现状··· 2
1.4 本文的主要工作和组织结构··· 2
1.5 本章小结··· 3
2 系统开发关键技术···· 4
2.1 排队论··· 4
2.2 Java技术··· 7
2.3 短信技术··· 9
2.4 XML技术··· 11
2.5系统安全技术··· 15
2.6 本章小结··· 18
3 系统需求分析···· 19
3.1 可行性分析··· 19
3.2 需求分析··· 19
3.2.1 业务功能··· 19
3.2.2 功能需求分析··· 21
3.2.3 非功能需求分析··· 23
3.3 系统用例分析··· 23
3.4 系统开发平台··· 25
3.5 本章小结··· 25
4 系统设计···· 26
4.1 设计思想··· 26
4.2 系统体系架构··· 26
4.3 功能模块设计··· 28
4.3.1 前台功能模块设计··· 28
4.3.2 后台功能模块设计··· 29
4.4 基本模块的详细设计··· 31
4.4.1 前台基本模块详细设计··· 31
4.4.2 后台基本模块详细设计··· 31
4.5 系统数据库设计··· 32
4.6 系统功能架构··· 35
4.7 系统物理拓朴··· 36
4.8 系统选型··· 37
4.9 本章小结··· 38
5 系统实现···· 39
5.1 市长信箱模块实现··· 39
5.2 短信收发模块··· 46
5.3 Web缓存及实现··· 47
5.4 同步令牌(Token)机制··· 49
5.5 数据库连接池··· 50
5.6 本章小结··· 52
6 总结与展望···· 53
致 谢···· 54
参考文献···· 55
1 绪 论
1.1 研究的背景
随着信息技术的发展和网络技术的普遍应用,电子政务建设已成为提升一个国家或地区综合竞争力的主要源动力。为此,党中央、国务院确定了“信息现代化带动经济现代化,经济现代化促进信息现代化”的发展战略。
信息化步伐日趋稳健,电子政务在各单位得到了广泛的应用,随着信息化进程的加快,2013年初,江苏省贵州某市把电子政务建设提到了重要议事日程,拟充分运用信息网络技术替代传统的办公决策方式,实现政务信息资源数字化、信息应用集约化、办公业务无纸化,建立起办公高效、决策科学、行为规范、运转协调、廉明公正的现代化行政管理体系,为工作提速、实现经济跨越式发展打下基础。
根据贵州某市的实际需求,作者之前所在工作单位(南京东南睿道科技有限公司)积极介入,为贵州某市提供了一整套信息化解决方案,并为其建设了“贵州某市综合门户网站”系统。贵州某市门户网站是良好形象的充分体现,其中包含政务公开、政民互动、网上服务等功能模块,并开通了市长信箱等经典功能。
贵州某市门户网站建设项目为推动贵州某市电子政务的建设起到了积极的作用。为了进一步拓宽政民信息交流渠道,助力提高工作效率,根据公司的安排,本人在其他人的协助下设计并开发了“市长信箱与短信系统”。“市长信箱与短信系统”将作为网站特色栏目,会为推进贵州某市电子政务建设起到了积极作用。
1.2课题研究意义
目前,从国家到地市级,多数都建设了具有自己特色的“门户网站”系统。门户网站是良好形象的充分体现,其中包含政务公开、政民互动、网上服务等功能模块,其中市长信箱与短信系统是网站政民互动模块的重要功能之一,而且“市长信箱”功能模块都会放到门户网站首页的显著位置,能够让社会公众快速便捷的找到该栏目,以便填报。
通过开发这套系统带来的意义有以下几点:
第一,开发这套系统可以改变传统信箱与短信系统受理时间长、效率低、渠道单一、受人为影响大,督促较为困难等多种弊端。
第二,通过市长信箱功能的开通与使用,将在社会各行业产生一定的影响,树立了“阳光”形象,能够实现市民向热点问题咨询、反映问题的更好渠道。
第三,最重要的意义就是,该系统一旦开发与应用成功,将作为贵州某市门户网站系统的特色栏目,比起其它网站系统的功能更齐全、更强大,在每年网站评比中将具备一定的竞争优势。
1.3 国内外发展现状
目前国内在市县长信箱信息的处理上,大多还是网络信息共享和传输阶段,各级的具体流程和规章有所不同,其信息化的手段差异也很大,市县长信箱主要是收集群众反映的问题,然后行政领导将问题回复通过政务平台展示,在实时性上是需要亟待提高的。随着 3G 网络技术的发展,有学者提出了把市县长信箱的处理和 3G 技术进行整合,但目前国内 3G 网络还没有完全覆盖,这个整合还需要些时日。
国外在电子政务发展战略上,电子政务发达国家倡导“用户导向、结果导向、市场基础”,以政务为核心,各国致力于建立透明、高效、公正和具有服务意识的,异曲同工地实践,达到满足公众意愿和需要的结果。
新加坡广设渠道,密切与公众互动。新加坡总理率官员用 E—mail 收发个人邮件,进行网上购物、驾照申请、纳税等,直接带动官员的网络利用率,熟练 E—mail 与民众沟通,搜寻了解民众网络上发表的意见和建议,推动了网络建设。为方便民众上网查询,新加坡在每个社区设立民众服务中心,设置电话呼叫,提供智能卡、数码电视,并提供 2 万多台公共电脑,给予民众与随时互动的机会。
美国了解公众呼声,注重改变形象。美国宣称:“我们希望通过互联网改进人们与打交道的方式,从而改变他们对的看法,这是我们真正的驱动力。” 美国为了贴近公众 ,“通过美国电子商务中心调查、了解公众需要和呼声,在电子政务变革中改变办事复杂和繁琐方式。”
德国关爱公民,实现政务信息化。德国推出一句颇为吸引人的口号:“让数据而不是让公民跑路”,期望通过电子政务增加国民对联邦政策及管理的满意程度。它实施了“联邦在线 2005”计划,目的在于简化机构及政务处理手续,方便国民。
1.4 本文的主要工作和组织结构
本课题从贵州某市及社会公众对市长信箱与短信系统的实际需求出发,着重对目前的信箱与短信系统进行研究和分析,找出原有的信箱与短信系统存在的几大问题。全文分为六章:
第一章为绪论,介绍本课题研究的背景和意义,对国内外的发展现状进行分析,说明本文的主要工作和组织结构。
第二章主要介绍开发考核系统中使用到的相关技术,包括MVC设计模式、struts开发框架、JSP等。
第三章是需求分析与总体设计,主要分析考核现状和存在问题,对系统整体架构进行设计。
第四章根据考核工作的需求,完成数据库设计,通过系统uml建模,给出系统用例图、序列图和状态图,构建系统登录、测评表生成、录入、统计等各个子模块。
第五章首先介绍系统的功能框架及运行环境,数据安全处理,以及各个功能模块的实现。
第六章是总结与展望,总结了本课题的研究成果和系统存在的不足,并对系统提出一个未来完善和发展的方向。
1.5 本章小结
本章主要介绍信箱与短信系统的研究背景,需要开发本系统的意义,并分析了国内外的现状及发展趋势,介绍本课题的研究内容和论文组织结构。
2 系统开发关键技术
本章论述了根据需求所涉及的相关技术。首先介绍了几大关键技术,然后介绍了系统的实现工具。
2.1 排队论
queuing theory即所谓的排队论,它属于运筹学的范围,被普遍应用于系统有实现,特别是在处理等待情形的设计环境中,该理念的引用已相当完美。
虽然大多数人对等待时间的长短没什么概念,不过无论是怎样的商务活动,都应该更加关注客人的等待时间问题。有很多大型零售店都希望通过自身内部结构的调整来对企业运营效率与客户方便程度进行均衡,这就是为什么尽管一般情况下超级市场里只有两三个收银通道在使用,但依然还是准备了十几个收银通道备用。有的客户的时间可能非常珍贵,所以零售商为了避免客户转向购买竞争者的产品,往往不愿意也不敢让客户消耗太多时间来等待付款。
在管理科学或运筹学中,等待的队伍被称为队列(queue),queuing theory属于运筹学重要分支体系,经过长期的研究与发展已获得了突出的研究成果,由其定义可知,在特殊环境下模型的数量持续、稳定增涨。排队论也是定量优化中最先提出的方法,A. K. Erlang, a Danish telephone engineer在一九零九年发表的学术研究报告中首次提到queuing theory,从而为queuing theory方法的提出发展埋下伏笔,从此,A. K. Erlang, a Danish telephone engineer这一名字便与queuing theory密不可分了。
与存贮模型、线性规划模型相比,它不是为实现系统成本的最小化或者取得利益的最大化,而是为达到规定的系统运营效率。通常queuing模型能够通过对用户提供服务的规划来实现这一目的。详细而言,排除模型主要的作用在于对排队系统的特性(平均队长、平均等待时间等)进行确定,亦或是为了完成用户特定系统服务水平而组建相应的服务系统。在排队模型中所确定的特征值能够反映用系统对用户的服务水平,在下文中对于系统成本的分析有着重大的意义。
排队系统在工业生产与日常生活中均被广泛应用,如商店的收银系统、通讯系统、马路上的红绿灯系统等均用到了排队系统。然而根据系统功能的不同,对于排队系统的应用的构成也有模糊与清楚之分。比如,上海拨至深圳的电话,因为受到通信线道功能的限制,上海与深圳间的通话数量是有一定的限制。所以若上海与深圳通讯数量达到阀值,便需等待。尽管通话的人处于城市中的不同位置,相互之间也并未实际排队,可是却可以把这些人与长话台共同看作一个服务系统,假定其在长话台前进行排队,因此,无论队伍是有形的还是无形的,均能够组成排队系统的队列。
service facility,即服务设施,它与排队系统一一对应。Customer(顾客)访问排队系统要求服务是没有规律可言的,在得到服务后便自行离开。若是用户在排队系统的service facility空闲时,便能得马上得到服务,反之,用户则需排队等候或者选择离开。传统观念中很容易把前往服务系统要求服务的对象理解成人,但是queuing theory中并没有此方面的设定,人、物,或人和特的集合均可为该系统的对象。例如机场中等待起飞的飞机、4S店中等待检修的车辆等。
若是设定每个用户来到系服系统的时间间隔为定值,而service facility对各个用户的服务时间也为定值,与生产流水线的产品制造的速度为定值一样,这样此类服务系统的研发便会很简单、便捷,可是现实中绝大部分的服务系统,用户来到的节骤并没有规律可循,而其queuing theory的服务时间也有着不确定性,从而使得queuing theory有着十分广阔的应用发展空间。
排队系统的基本构成
由下图(3-1)可知,输入、队列、服务台与输出共同构成了排队体系统。
图3-1 排队系统的基本构成
1、 输入
用户来到排队系统能够用输入来表示,而输入过程是一种随机过程,而具它含有任意参数和合理的单一假设,顾客总体、顾客总体、顾客到达的相关性、顾客到达的时间间隔、 顾客到达的平稳性是输入过程的五大得要元素。
顾客总体
顾客总体可以看作是一个集合,而它所包含的元素个数可以是有限的,也能够是无限的;当顾客总体的数量十分庞大时,便能够将其元素的个数近似趋于无穷来简化计算。河水流入水库,河水为顾客总体,其元素个数无穷,而修理厂等待维修的汽车中汽车为顾客,它的顾客总体明显为有限的。
顾客到达的时点
虽然现实中顾客的来到有成批的,也有单个的,但在排队系统中把一个时间到达的顾客(不管一个还是一批)只看作为一个顾客中。
顾客到达的相关性
排队系统中,顾客到达的相关性包括独立与相互关联两种关系,相互关联关系指的是已经到达的顾客与后面顾客的来到有一定的影响作用,反之即为独立关系。
顾客到达的时间间隔
该元素分为随机与确定两种情况。像定点航班、汽车的到达、流水线上产品部件必须按标准时间抵达装配点等均有着确定的顾客到达时间间隔;而到门诊的病人、某一路口经过的汽车、景点旅游的游客等的顾客到达时间间隔均为随机的,针对此类,需掌握一定时间内顾客到达数值,或是顾客到达的时间间隔的概率分布。
顾客到达的平稳性
所谓顾客到达平稳性,即为顾客到达的时间间隔分布以及它的方差、数学期望等参数值为定值,与时间变化无关。
而若随机过程有着Poisson分布的特性,那么此种情况顾客到达过程最为简单,并且顾客来到的时间间隔为有着负指数分布的随机变量(各个变量间相互独立)。
2、 队列
当顾客来到服务台时,并没有空闲的服务台供其使用,这时顾客便可自行离开或排队等候。顾客选择马上离开的系统又被称为损失制系统,也叫即时制系统,而排队等候的系统即为等待系统。若系统的服务台并非一个,每个服务台能够共同或单独进行列队,队列能够是人、物,或者抽象意义,而其所包含的元素能够是有限的,也可是无限的。
而在现实的排除系统中,往往也存在顾客由于等候时间太久从而选择离开的,也有由于个别队列服务快而调换的,然而queuing theory中通常忽略此类情况不计。
3、 服务台
排队系统中的服务台能够是多个,也可仅有一个。而针对多服务台的排队系统而言,每个服务台的关联能够是串联关系、并联关系,也能够是混联关系。
服务方式
排队系统中的服务对象可以是一批顾客,也能够为单独的顾客,而对于候机服务方式便是针对一批批进行的。
服务时间
与顾客到达时间相同,有着随机与确定两种情况。买票,登车等日常排除绝大部分为随机的,而如道路的红绿灯系统等其服务时间均为定值。
服务的平稳性
所谓的服务平稳性,即为服务时间以及它的参数值均为定值,与时间变化无关。这里不考虑服务人员列队长度与工作时间对于服务时间分布的影响与作用。
服务规则
根据顾客得到服务的次序,能够将其划分成下面四种服务,即SWP,LIFO,SIRO与FIFO四种,依次为有优先权的服务、后到先服务、随机服务和先到先服务。其中FIFO是日常中最合规距的一种排队规则,可是若顾客为一堆需完成的零部件时,便没有必要按此规则,而当顾客为一堆堆工件时,则遵守FIFO规则,可是若顾客为散乱工件时,则最符合的为SIRO规则。而对于SWP则是服务台针对某特征对顾客给予优先服务,比如军属优先买票等。
服务时间分布为负指数分布时,它的运算最为简单,此时,仅使用平均服务率便能够对所有的服务过程进行阐述。
4、 输出
输出,即服务结束后至离开服务系统的过程,又因为顾客一般在服务完成后便马上离去,因此能够以服务时间来反映输出。
2.2 Java技术
JavaScript[16]是脚本语言(scripting language),或描述性语言的一种,其开发公司是Netscape,作为新型编程语言,其作用在于满足动态网页制作需求,很多Internet网页在制作过程中都使用了这一语言。JavaScript可以以HTML为基础,进行交互式Web网页的开发。自从出现了JavaScript,用户可以实时的、动态地与网页开展交互性交流,丰富了网页内容,使网页变得更加活泼、精彩。JavaScript编写的必须在支持JavaScript语言的浏览器中进行,当前已开通支持的浏览器版本包括:微软公司Internet Explorer 3.0以上版本及Netscape公司 Navigator 3.0以上版本。JavaScript的特点是间接明了,而且能够在客户机上进行运作,使得网页浏览更加方便快捷,交互能力大大加强。再加上该语言是Web网页设计的专有编程语言,更加简单的同时也使网页互动性有效提升。原有的有规律性重复的HTML语言在JavaScript 的帮助下更加简短,节省了下载时间。同时,JavaScript 可以对用户指令进行及时响应,可以即时检查所提交的表单,省去了服务器验证的时间。JavaScript对象XmlHttpRequest 作为Ajax[32]的核心,能够对异步请求进行适当处理。换句话说,在XmlHttpRequest的帮助下,用户就可以利用JavaScript进行操作,再由服务器接受指令并作出处理,使得用户操作畅通无阻。
AJAX 的实质是一种Web应用程序技术而不是编程语言,它能够大大提高Web的浏览速度和交互性。在 AJAX的帮助下,JavaScript 就能利用自身对象 XMLHttpRequest 来实现与服务器的直接通信。该对象使得JavaScript在与Web服务器进行数据交换时不用对页面进行重新加载。在浏览器与Web 服务器之间,AJAX 可以采取异步数据传输(HTTP 请求),这样就网页就不用从服务器那里请求页面的所有信息,而是只需要获得少量信息就可以了。
AJAX 是一种独立于 Web 服务器软件的浏览器技术。Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。 通过 AJAX,因特网应用程序可以变得更完善,更友好。
Jquery [16]是继prototype之后又一个优秀的JavaScript框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。JQuery能够使用户的Html页面保持代码和Html内容分离,也就是说,不用再在Html里面插入一堆JS来调用命令了,只需定义id即可。 架构人们对一个结构内的元素及元素间关系的一种主观映射的产物。项目架构是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构。架构设计是软件设计过程的早期阶段,它把需求分析和设计流程连接在一起。一个项目架构好坏决定了整个软件开发项目的成败。此项目Model-View-Presenter设计模式[21]和依赖注入技术,以实现项目的可扩展性。
经过多年代的ASP代码积累,微软开发了具有一流水平的网络平台:ASP.NET. ASP.NET使用后置代码页面方式隔离业务逻辑。虽然用心良苦,但是ASP.NET在企业级应用开发方面还是存在如下的不足:
后置代码页中混合了表现层,业务逻辑层,数据访问层的代码。之所以出现这种情况是因为后置代码充当了事件引发,流程控制,业务规则和表现逻辑,业务逻辑和数据访问的协调者等多种角色。后置代码页充当这么多的职责导致许多难处理的代码。在企业应用中,一个良好的设计原则是各层之间的适当分离和保持后置代码页内容的尽可能干净。使用Model-View-Presenter 模式,后置代码的内容将非常简单,严格的管理表现层内容。
后置代码模型的另一个缺点是它很难不借助帮助类/工具类,实现重用后置代码页面之间的可重用代码。很明显的,这也是提供了一个适当的解决方案,但往往导致ASP式的类,不像是一流的对象。通过适当的设计,每个类都应有清晰的职责,通常一个叫ContainsDuplicatePresentationCodeBetweenThisAndThat.cs并不合适对后置代码页进行单元测试非常困难,因为它们和表现层太紧密了,当然可以选择NUnitASP这样的工具,但是他们非常的耗费时间,并且难以维护。单元测试应当是简单快速的。
可以采用各种技术手段是后置代码页保持分离。例如Castle MonoRail项目仿效Ruby-On-Rails ,但是放弃了ASP.NET的事件模型。Maverick.NET是一个支持ASP.NET事件模型的框架但是保留后置代码页作为程序的控制器。理想的解决方案是使用ASP.NET的事件模型并保持后置代码页的尽可能简单。Model-View-Presenter 模式是一个不需要借助第三方框架实现这个目标。
Model-View-Presenter (MVP) 模式是 Model-View-Controller (MVC) 模式的变种,针对事件模型,像ASP.NET这样的框架。MVP主要的变化是Presenter实现MVC的Observer设计,基本设计和MVC相同:Model存储数据,View表示Model的表现,Presenter协调两者之间的通信。在 MVP 中 view 接收到事件,然后会将它们传递到 Presenter, 如何具体处理这些事件,将由 Presenter 来完成。
2.3 短信技术
短信short message service,简称SMS是用户通过手机或其他电信终端直接发送或接收的文字或数字信息,用户每次能接收和发送短信的字符数,是160个英文或数字字符,或者70个中文字符。
电信增值业务的表现之一为短信业务,移动终端的信息传送可通过短信业务来实现,移动终端接受与发送的信息都属于文本格式形式的信息,消息内容一般为数字、字母等,通常会限制信息长度。
短信业务是数字业务的表现形式之一,端到端的业务渠道不需要被建立,所以不会影响数据业务和语音业务。该业务选择的是存储转发体制,特点之一是分组数据。短信业务包括短信小区广播业务和点对点短信业务两种。小区广播业务是采用基站向特定区域全部短信终端设备发送的方式。实体之间通过短信业务中心收发短信业务的方式就是点到点短信业务。
伴随着通信技术与信息技术的快速发展,渐渐地各种通信工具运用于日常生活中,手机等通信设备与人们的日常工作和生活息息相关,这些工具使得人们可以迅速进行交流与经常联系。由于移动终端具备优越性与方便性,所以使用者数量快速增加。这为电信业务向前发展开拓了有利条件。
根据不完全统计的信息产业,在2003年前四个月,使用中国移动的用户突破2.2亿户,而且每月以500万户的速度增长。在移动通信用户增长呈现爆炸性时期。Internet在全球也得到很好的发展,根据CNNIC的统计,在20世纪初,中国Internet用户突破6800万。不断上升的用户数,逐渐健全的移动网络建设,网络覆盖面逐渐变大,基于这种现状,电信运营商除了要保证用户的基本通话外,给用户提供的信息服务要具有丰富性与全面性,使得自己的竞争水平有所提高,使收益呈现多元化。在诸多条件下,短信业务(SMS)也随之出现,GSM和CDMA网络的全程全网的优点与基站覆盖面积广的特征在短信业务中得到很好的运用,移动性达到最佳状态。由于其价格便宜、便捷、信息传递及时等优点而深受用户喜爱。现在,手机用户经常使用的业务之一就是短信服务。根据统计,20世纪初中国移动短信业务总量已突破159亿;在欧洲,电信运营商重要收入来源之一是短消息。
短息业务的几个发展时期:SMS短信业务与给用户提供的语音传输通信业务有所区别,该业务经历了下面几个发展时期,不同发展时期,其业务模式、网络结构等也是不同的:
(l)、第一阶段
最初短信业开始起步时,短信中心(SMSC)起到了核心作用,作为唯一可以进行数据提供和数据传输的通道,进行点对点短信服务的提供。该阶段的特征是信息量不大。
(2)、第二阶段
接下来一个阶段的主要信息来源变成了互联网,互联网上的业务提供商SP以及SMSC共同构建起信息交换接口,实现信息流通。这个时期。SMSC的缺点就因为SP这个新的信息提供方的出现而受到了弥补。SP利用短消息点对点协议SMPP跟短信中心开展信息沟通。这段时期的SP跟短信中心是直接相连的,短信中心的将短信在信令网的传播下直接发送到用户手中。如果出现了大量的短信服务业务量,那么SMSC就必须发送所有跟SP相连的信息,导致负荷过大的情况。
(3)、第三阶段
第二阶段的SP是与某个短信中心连接在一起进行工作的,使得短信中心不得不发挥很多作用,而在转发信息的过程中,SMSC的负荷量非常大,已经难以支持基本业务的进行,随着业务的不断发展,很多需求无法得到满足。这就催生了短信网关SMG这一概念的出现。在互联网的连通作用下,SMG一边跟SP连接在一起,一边又连着SMSC。该结构的运作方式是,SP在SMG的帮助下与短信网络连通,再选取中国移动的CMPP或中国连通的SGIP这两个运营商运短信网关进行信息交换,同时,短信网关在SMPP的连接下与SMSC开展信息交换。短信网关的出现使得短信业务发展赢得了更多的优势,第一,SP接入的接口得到了统一,变得更加规范了,这就使得短信网络的接入能力得到了整体提升。第二,SP在短信网关互相连接的过程中,实现了“一点接入,全网服务”的业务能力。第三,短信中心的负荷得到了减轻,工作效率大大提升。
(4)、第四阶段
由于短信业务持续发展壮大,SP的数量提高也更加突飞猛进。短信网络的缺陷也因为大量出现的业务而显现出来,而在管理SP方面的失误也是的很多业务发展受到了阻碍。面对这样的问题,业界从两个方面入手进行解决。首先要完善业内规范;其次是对运营商的短信网络进行改善健全,形成管理SP业务的良好平台,鉴别所有SP业务的权力。构建SP管理平台的工作是短信业务发展的又一个里程碑,引进这一平台后,短信网络得到了提升,短信业务管理升级,而运营商的管控力度则在管理用户和鉴别SP业务的权力的过程中得到了大幅度的提升,为短信业务未来的发展营造了非常适宜的环境。
2.4 XML技术
和HTML相同,可扩展标记语言也属于标准通用标记语言(SGML)。它是一种基于互联网的技术,有着良好的兼容性,并取决于内容。XML是我国现今管理应用结构文档信息的基础技术之一。它能够对数据信息进行简单储存,并应用标识对信息进行概括阐述,而我们在创建标记时操作也非常简便,尽管相较于二进制数据,扩展标记语言所需的存储空间更多,可是它却有着操作简捷,易初学者学习的特点。
相较与SQL Server、,Oracle与Access等数据库强大的分析能力与存储数据,可扩展标记语言并没有明显的优势,单单是能够显示数据,并没有数据查找、排序、检索等功能,但这也正是它区别于其他数据库的最显著的特征与优点,XML极为简便,也是它的特别之处。
HTML与可扩展标记语言最大的不同之处是后者主要是对数据的定义,侧重于数据的显示模式,而后者则是对数据的存储,其核心在于数据。
可扩展标记语言有着极其简单的优点,也因此能够应用于所有的系统来读写数据信息,成为跨平台数据信息传递的标准语言,且只有XML这一种。尽管有些系统也能够使用其他的数据交换语言,可是XML做为交换格式的发展趋势,此类系统也必将支持可扩展标记语言,这样系统便能够更简便的在各大系统平台(Linux、Windows、Mac OS等)进行数据交换与应用,也能够简单的将数据以XML数据读入系统程序,并将结果以可扩展标记语言格式展示。
标准通用标记语言的用户界面过于冗繁,并且有很多功能并不常用使得系统平台的设计更加复杂。为此可扩展标记语言在研发时,去除了SGML的部分参数值并删减不常用功能,让用户界友更加友好,设计更加简单。同时对标准通用标记语言的结构化功能进行保留,从而让编程人员能够自主定义所需的文件类型;并有提供基本文档类型,可方便设计者从中选择。
来自不同地区与领域的专家学者共同组成了全球信息联盟的可扩展标记语言工作组,W3C制定了可扩展标记语言并对其进行了规范化操作,而小组工作的形式主要是以邮件进行意见交流和发表,主要是在www.w3.org/TR/WD-xml。而又由于可扩展标记语言并不是属于某一个公司,有着公共的格式,所以它并不依附于哪个系统,也不会成为部分企业谋取利益的工具。
一九九六,可扩展标识语言初步组建,并将此提交给全球信息网联盟;1998年2月,全球信息网联盟将XML(版本为1.0)做为其标准。而最开始W3C的标准为标准通用标记语言,它是在1960年IBM公司由GML基础上规范化的名称。
文档类型定义即为DTD,而HTML的DTD通常我们以标准通用标记语言来实现,而可扩展语言的文档类型定义通常也使用SGML实现,可是因为在标准通用标记语言中并没有有效对语法进行规范,使得HTML解析器的正确组建十分困难。下面为HTML的语法。
起始标记并非一定要有结束标签,例结束标签出现在HTML中<img>标签中时,解析器便会出错。
有的开始标签在特定的环境下,能够针对性的出现或隐含结束标签。
某些起始标签要求必须出现结束标签,例如HTML中<script>标签。
有的开始标签一定要有结束标签与其对应,像HTML中<script>标签。
SGML中对于标签的排序并无限定,结束标签能够出现在开端,中间部分与结尾,像this is a sample string 语法书写在HTML中也是允许的,正确的。
有的标签中需有参数值,像<img src="http://www.mamicode.com/picture.jpg">中的src就必须包含数值。
某些特性不要求一定有值,例如中的nowrap特性。
有的标签对特性值并没有相关要求,像nowrap。
在SGML中,对标签属性的定义用引号或者不用都是被允许的,如<imgsrc=http://www.mamicode.com/”picture.jpg”>与均可以看作正确书写。
而上述SGML语法规则中所存在的语法问题使得创建SGML语言解析器有着相当大的难度,对于上述标准的应用在实际中设计中很难实现,这也是致使标准通用标记语言发展滞后的根本。为了解决上述问题,可扩展标记语言应运而生。
在可扩展标记语言中,针对上述问题规范系统化SGML的编程语法。下面是可扩展标记语言中所应用的语法:
在XML中,结束标签与起始标一一对应。
能够将标签进行简化表示,即起始均签与结束标签可以是同一标签。其书写是在“>”前写入“/”。如<tag%20/>它就表示起始标签<tag>与结束标签</tag>。
需按一定的次序对标签进行排序,因此结束标签一定是在最后的位置。就像是我们在同时使用若干小括号、中括号及大括号时,内部小括号与中括号没有闭合时,外面的大括号便不能闭合。这里的结束标签与起始标签是依照镜像顺序排序的,如:this%20is%20a%20sample%20string%20.
标签的任意特性均有值与之对应。
对于特性值的书写,需把其以双引号括起。%20
上述语法标准让XML的解析器创建更加简单、方便,并且也大大缩减了用于语法研究上的时间。而在可扩展标识语言发展初始阶段,6年内便在此基础上提出了RSS、SVG、RDF、SOAP、MathML等许多语言,并且HTML也由此更改为XHML。可见XML的深远影响力。
若是想要进一步了解关于可扩展标记语言与标准通用标记语言的差异,可登录http:///TR/NOTE-sgml-xml.html查看,上面有全球信息网联盟(W3C)的注解。
现今,用文本结构化表示数据的可扩展标记语言的发展速度十分迅猛。它有时也能相当于数据库,能够对数据的结构化视图进行展示。
HTML和XML之间是存在不同的,对于两者之间的不同点可以总结为三个方面:
在扩展性方面,HTML比XML弱
扩展标记语言的英文缩写是XML(Extensible%20Markup%20Languages),对于它的作用是创建的标记语言是具有个性化的,因此也把XML称作元语言。和HTML不同的是,XML的标记语言能够自己进行定义,在终端显示时并不是局限于某一格式,因此能够由更多的数据操作被提供。XML的功能比HTML丰富,对于HTML而言只能适合静态网页所提出的要求,并且显示和打印的放入只是在浏览器中。
HTML和XML相比,它的语法没有那么严格
对于XML而言,它需要稳定的基础进行支持,因为它的扩展性非常强。它有非常严格的规则:%20
1、对于结束和起始的标签要相互匹配
%202、在相互嵌套时,其嵌套标签不能相互嵌套
3、对于大小写要进行区分
对于HTML而言,由于它没有非常严格的规定,因此对于大小写也不用进行区分,并且对标签的绝对位置也没有给出规定,当然这些工作都是由浏览器进行更正和识别。
XML与HTML互补
对于XML的功能,它能够被其他解析器进行使用,当然它也能够将应用之间的信息进行获取,并且对于终端的多项处理要求进行解决,为了适应浏览器的需求,在现阶段XML可以转化成HTML来完成相应工作。
XML有众多优点,主要可以概括为以下几点:
在HTML中可以通过XML进行对数据的分离
对于数据存储,可以使用XML将数据存在HTML文件之外。如果XML不使用时,那么此时数据都存储在HTML之内,此时HTML的作用是显示数据。如果XML被使用时,那么此时的数据可以在分离的XML文档中进行存放。由于有以上这些方法,它的好处就是可以减少无用功,让你有更多的时间在HTML的布局以及数据显示上使用,能够做到当数据发生改变时,此时HTML文件并不需要进行改动,因此在网页维护方面找到了好方法。
在HTML的页面中,XML的数据可以以“数据岛”的形式进行存储。这样做的好处是能够拥有更多的时间用于HTML的显示数据以及格式化上。
XML用于交换数据%20
对于系统是不兼容的情况时,我们可以采用XML来进行数据交换。对于系统开发者来说,最费时间的事情就是在庞大哦网络系统中进行数据交换,因为数据系统储存和计算机系统之间有有N^N种形式进行数据储存。通过将数据转换为XML格式,这些数据既能由不同的程序对它进行读取也能将交换数据时的复杂性减少。
XML和B2B%20
对于XML的另一个作用是在网络平台上进行金融信息的交换。因此在过几年,我们可以展望到XML以及B2B正被运用到多出领域。在商业系统的金融交换领域XML也逐渐成为越来越有话语权的交流语言。
一些基于XML的B2B应用程序正逐渐的被开发。
共享数据也是XML的一个特点
对于纯本文件可以通过XML来进行数据共享。在数据共享的方法中,XML提供的是和硬件以及软件没有关系的%20方法,因为它是通过纯文本格式进行存储的。以上的方法可以使原先有些文件不能被不同的应用程序进行读取,现在可以被读取了。当然其优点还体现在容易更新浏览器、升级服务器、升级操作系统、升级应用程序。
存储数据也是XML的一个特点,对于那些纯文本文件可以通过XML来进行存储。如果数据比较多那么可以将数据存储到XML的数据库或者文件中。如果是一般程序,那可以显示数据,如果是应用程序那可以进行存储以及读写数据。
对数据的充分利用也是XML的特点
如果你的数据项被更多用户使用,那么可以使用XML。因为XML是与硬件、应用程序以及软件没有关系的,因此你的数据可以被许多设备以及用户使用都是可以的,并且不仅仅局限于在浏览器中。如果用户使用你的数据,那么你的XML文档将会被利用,因此那你的数据就会被读取,这些程序比较适合盲人以及残疾人。
在XML中,创建新的语言也是它的特点
对于WML以及WAP而言,其母语应该是XML。它是一种无线标记语言,作用是对手持设备上的internet程序进行标识。
2.5系统安全技术
为了确保各系统或者软件在工程中能够正常运行,对系统进行安全管理,常用的系统安全管理方法有病毒防护、入侵检测、系统地方备份与恢复等;
为了确保在正常运行中,能够对系统的各类信息有机密的、完整的以及可用的进行存取、处理以及传输,对系统信息进行安全管理,一般采用具有公钥证书以及属性证书的信息安全机制,并且在信息安全管理中,将CA系统作为其基础系统。
系统安全管理采取的办法及具体措施如下表3-1所示:
表2.1 系统安全管理情况表
Table 2.1 System security management table
安全管理分类 | 采用方法 | 具体措施 |
系统安全 | 防火墙设置 | 对系统进行防火墙限制 |
访问控制 | 登陆控制 | |
功能访问控制 | ||
数据备份 | 重要数据和操作系统进行备份 | |
病毒防护 | 网关防病毒 | |
服务器防病毒 | ||
工作站防病毒 | ||
安全审计 | 对各类操作痕迹的审计追踪 | |
信息安全 | CA系统安全服务 | 鉴别服务 |
访问控制服务 | ||
保密服务 | ||
数据完整性服务 | ||
抗抵赖服务 | ||
系统应用程序与数据分离 | 应用程序与数据分离 | |
数据传输安全 | 对数据传输进行加密处理 |
1、 防火墙设置
系统已经做了防火墙限制,只放开HTTP协议的80端口供用户通过IE浏览器访问系统。其它端口已经做了限制。用户不能使用。防止病毒攻击。当外部用户进行访问时,防火墙会对其进行如下一系列的安全检测,分别是多级过滤、监控、记录、安全审计。其中在安全审计中,防火墙有三种级别,第一是不进行审计,第二是简要审计,也就是对源、目的IP、日期以及时间进行审计,最后是详细审计,也就是具体到对内容进行审计。防火墙在进行实时监控时,会对监控到的信息进行一定的记录,最后做成记录表,通过这些记录表,能够随时查询到网络上传送数据包的记录,每条记录中都包含了规则号、使用者、目的主机、来源主机、时间、服务项目、通讯协议、传输资料量及连线时间。
2、 访问控制
1) 登陆控制
系统登陆采用手机随机验证码登陆。用户登陆时,系统会自动下发验证码到用户手机,用户必需输入正确的验证码才能登陆系统。手机验证码登陆只允许授权已登记手机的用户正常使用。防止其它用户匿名登陆。保护数据的安全性和数据隐私。
功能访问控制
在功能访问控制中,可以对不同的层次进行访问控制。在功能访问控制中,为了确保系统安全,通过以下几个方面进行访问控制,用户认证和授权、用户操作权限控制、数据和系统的完整性、可靠性和可用性、系统操作的记录和稽核、数据库对象的访问控制、基于业务规则的访问控制等。
数据备份
对数据进行备份,主要备份重要的业务数据、关键数据、操作日志、数据库以及操作系统,并且在备份时采用的是以备份软件以及相应的设备构成的备份系统,这种备份不仅能够做到普通的备份,还可以进行复制性的备份,或者是差量备份、增量备份。
在行政审批电子监察系统中,数据库服务器时整个业务的核心,并且该服务器的构建方式时集群的方式,也就是说能够使关键任务支持更加可靠、性能更加、易拓展的服务,这样一来就可以有效的保护数据库的安全性,确保其可靠以及高性能的运行。上述就是系统对数据库提供的备份功能。
病毒防护
在系统中最常见并且对系统安全威胁最大的就是病毒。因此在安装使用病毒防范系统时,要能够将系统配置成分布式和集合管理,并且该系统基于防病毒代理以及防病毒服务器。
在系统的关键主机中安装防病毒客户端,关键的主机可以使关键的服务器、网管终端或者是工作站等。在防病毒服务器端,对防病毒客户端以交互的操作方式进行病毒扫描以及病毒的清杀,并且在客户端设置一定的防毒策略。对病毒进行多层次的防范,顺序分别是工作站、服务器以及网关,在这几个层次中,由相应的防毒软件进行全面完整的防病毒保护。
网关防病毒系统
在网络中的网关处在一个特殊的位置位置,根据这一点,当电脑病毒在进入内部网之前就会被立即阻截。
服务器防病毒系统
服务器防病毒系统的作用就是对各种病毒进行实时监测,并且清除病毒,对病毒码文件进行自动更新以及对其进行传送,将病毒事件进行详细报告,除此之外,该系统下还支持集中式的安装以及管理。使用该系统的好处就是能够更加防范内部服务器的病毒。
工作站防病毒系统
服务器端防病毒系统在C/S结构模式基础下,对各个工作站的防病毒软件安装的实际情况进行自动的检测,而对于服务端来说,在该模式下,对各个工作站进行自动分发病毒防护系统并且进行远程的安装。这样不仅能够使工作站避免受到病毒的侵害,还能使安全管理的工作强度大幅度的减轻。
安全审计
在安全审计中,系统对应用级的操作日志以及审计功能进行实现,也就是说,对操作员进出的时间以及每项重要的操作进行记录。并且可以对各种操作痕迹进行审计追踪,这样就可以保证用户在所有行为之后都会留下一定的操作痕迹,并且方便之后的审计验证,使其可以采用防抵赖的方式。
基于CA系统的安全服务
在CA系统的基础上构建系统信息安全保障。以下是CA系统提供的主要安全服务:
鉴别服务
为了避免独立操作实体的身份被其他实体占用或者别另一实体假办,对其进行鉴别。对于重放攻击,鉴别服务可以抵抗,所谓重放攻击就是对某信息进行全部重复或者是部分的重复,并且通过这种方法达到未经许可的效果。鉴别的实体可以是人,也可以是物理实体或者是逻辑实体。并且可以对对等实体进行鉴别或者是对数据源进行鉴别。
访问控制服务
对信息系统资源进行保护,避免其受到非授权的访问以及操作。
保密服务
对信息进行保护,防止非授权者或者是实体、进程利用或者泄露信息。也就是说保密服务的工作主要3就是对存储或者是传送中的数据进行保护,避免被非授权者利用或泄露。
数据完整性服务
在数据完整性服务下,可以对抗数据的值和数据存在性可能被改变的威胁。在数据中插入别的数据或者是删除数据中的某一部分,或者是对数据中的某一部分进行修改值或者是数据的顺序,都可能改变数据值。而对数据创建或者删除都可能改变数据的存在性。
抗抵赖服务
抗抵赖服务的作用就是防止通信中的实体否认在之前的全部或部分通信中有参与的份。其中包括两类抗抵赖,一是发送方抗抵赖,二是接收方抗抵赖。
系统应用程序与数据分离
系统采用应用程序与数据分离,用户数据放在内网,而系统应用程序放在外网,如是病毒攻击进外网的服务器也不会对内网的数据造成影响。很好地保护了数据的安全性。
数据传输安全
实现机制
需要传递的数据(包括文件)统一采用标准的XML作为数据表达形式。采用同步方式实现。字符集编码用UTF-8。
安全机制
数传输采用DES算法对数据进行加密,DES加密只针对消息体,对消息头不加密。对消息的加密算法:Base64(DES(MD5(消息体)+消息体))。
系统平台接收到应用系统的消息后,根据消息头中的SERVICEID获取对应的密钥后,即可对消息体进行解密。
应用系统生成的密钥为24位的Base64字符,由两部分构成:12位Key(密钥密码)+12位的IV(初始化向量)。在进行加密解密的时候,需要分别将密钥密码和初始化向量转换为等效的8为无符号字节数组。
应用系统的IP地址必须进行注册到内网的数据系统上(通过接口参数配置功能),内网数据系统只接收来自信任的IP地址的请求。应用系统在变更部署地址后,必须同步更改在内网数据系统上注册的IP地址。
将办理业务的相关信息与客户进行互动。
为用户提供排队申请及信息反馈(如禁止在一定时间内多次排队申请控制信息等)、现场排队情况查询,到达提醒(如提前5名用户)等。
2.6 本章小结
本章介绍了系统的五大关键技术,并阐述使四大技术有机结合所采用的网络平台、开发平台、开发语言和系统安全技术。
3 系统需求分析
根据软件的开发流程,在系统开发前要进行系统分析及需求分析。文章通过UML用例的方式,用例阐述各个用户角色的需求情况。
3.1 可行性分析
在开发基于三层架构的信箱与短信系统之前,要进行可行性分析,分析投入和产出是否符合要求。因此,系统设计的质量如何,不是完全看重其设计的繁杂长度如何,相反,设计的系统能否有效改进企业管理,能否带来更大的附加值,是程序开发人员和用户非常关心的问题。本文从如下三个方面进行可行性分析。
(1)社会可行性
系统用于信办公自动化的管理,由于传统的管理是通过纸张或者excel或者word文档记录日常办公情况,带来的缺点是记录容易丢失,而且也不容易统计过,因此,开发的信箱与短信系统也是使用计算机软件技术发展而且诞生的,给管理工作带来了很大的方便,节省了人力成本,提高了员工满意度。
(2)经济可行性
开发的信箱与短信系统由于提高了管理效率和精确地,因此也是节省了成本,另外在开发过程中,由于运行该系统所需要的服务器是Tomcat,是免费的,因此也在一定程度了节省了成本;另外系统由于通过工作流技术的应用,可以实现公司各项业务的跨部门协同完成,能够实现公司日常办公的动态化、规范化和柔性化管理。系统的投入使用,提高了公司日常办公管理的能力,使得公司日常管理工作变得科学化、高效化、规范化和精细化。
(3)技术可行性
在贵州某市信箱与短信系统实现时,采用了大量开源的项目和开发平台,比如Eclipse是IBM的开发IDE,也用到了其他一些免费的插件,技术上完全可行。上述技术和框架比较成熟,开发出来的软件运行稳定,没有潜在的bug或者异常发生,因此技术上是可行的。
3.2 需求分析
3.2.1 业务功能
该系统主要是以四种不同的角色登陆系统后执行不同的操作,对各模块的信息进行操作,业务功能图如图3-1所示。
图3-1 信箱与短信系统业务功能图
3.2.2 功能需求分析
本课题功能包括如下部分:
3.2.2.1前台部分
前台应包含登录功能、注册功能、分工、用户修改、我的信件、我要写信、信件查询和注销退出等功能。
◆ 登录功能:市民输入用户名、密码即可以登录信箱,登录后才能写信。
◆ 注册功能:如果没有账号,则市民需要填入相应的个人信息进行注册,注册成功方可登录信箱,进行相关操作。
◆ 分工:用户无需登录即可进入分工页面,了解的相关信息(简介和分工),若要写信,需要登录系统。
◆ 用户修改:主要用于修改用户个人信息(包括密码、真实姓名等)。
◆ 我的信件:主要用于查看个人发送给的信件的办理情况,包括公开和非公开的信件。
◆ 我要写信:主要实现写信功能,可以选择对应的人员。提高信件的办理效率。
◆ 信件查询:无需登录即可查看,对任何人都开放,体现管理的民主化、阳光化。这里只可以查看同意公开的信件,不公开的信件无法查阅。
◆ 注销退出:退出信箱系统。
3.2.2.2 后台部分
信箱的后台部分主要包括三大部分功能:系统管理、网站管理、信箱。
(1)系统管理
系统管理模块的功能大致包括模块管理、菜单管理、菜单权限管理、字典管理、字典定制管理、用户管理、用户组管理、用户分管部门管理、部门管理、部门组管理、角色管理、角色组管理、职务管理、测试工具和公告管理等。
◆ 模块管理:实现菜单与模块相关联,提供菜单的操作权限编码,以供权限分配。设置菜单的首页,实现程序的解耦。
◆ 菜单管理:绑定对应的模块,获得首页地址和操作权限,设置系统后台显示的菜单项。
◆ 菜单权限管理:实现用户权限的分配。
◆ 字典管理:用于添加字典项(性别、政治身份、婚姻状况、满意度等)。
◆ 字典定制管理:用于对添加的字典项进行分类定制。
◆ 用户管理:用于添加、禁用、修改、删除和查询用户信息,以及给用户分配角色和职务。
◆ 用户组管理:用于将共性的用户分组,这样便于用户管理。
◆ 用户分管部门管理:设置用户分管的部门,便于信件的办理。
◆ 部门管理:用于对部门执行添加、修改、查询和禁用操作,实现部门的规范化管理。
◆ 部门组管理:便于对部门进行管理,实现部门分类管理。
◆ 角色管理:用于对角色执行添加、禁用、修改和查询操作,角色分级别管理。
◆ 角色组管理:为了便于管理,实现对角色分组化管理。
◆ 职务管理:实现职务添加、禁用、修改和查询功能。
◆ 测试工具:主要由开发人员使用,便于系统测试。
◆ 公告管理:用于实现对通知公告的增、删、改、查、禁用等操作。
(2)网站管理
该模块包括市民注册管理和工作日管理两部分功能。
◆ 市民注册用户:实现对前台用户信息管理,限制恶意账号的非法操作。
◆ 工作日管理:用于设置工作日,设置信件办理的预警周期和超期周期。
(3)信箱
信箱模块主要功能应包括信箱待办件、办理中信件、已办结信件、来信管理查询、信箱领导批示件、再次回复信件和统计—综合统计等。
◆ 信箱待办件:显示尚未查看的信件,以便拥有信箱管理角色的人员登录办理。点击信件标题,即可进入办理页面进行信件的办理。若信件办理超期,将亮红灯,若信件办理进入预警期,则亮黄灯,正常情况下亮绿灯。
◆ 办理中信件:显示正在办理的信件,这里的信件也拥有提示办理超期和预警功能。
◆ 已办结信件:显示已办结信件列表,点击信件名称或编号,可以查看信件的办理过程及写信人的评价。
◆ 来信管理查询:这部分功能一般由管理员使用,可以查看所有信件的办理情况(包括待办、办理中、已办结、领导批示件、再次回复信件等)。
◆ 信箱领导批示件:由于有些信件涉及的问题很重要,可以设成领导批示件,加快信件的办理,使问题迅速得到解决。
◆ 再次回复信件:对于少数较难在短期内答复的来信,允许在规定的时间内先初次答复,告知初步办理情况和进展,待该问题处理完毕后再次答复。
◆ 统计—综合统计:综合统计分为五部分,包括按事项类型、按性质分类、按满意度、按办理情况、按单位统计。按事项类型统计主要是按信件所属事项的类型进行统计,用户登录后,可以看到当前所在部门及子部门的信件办理情况。按性质分类统计实现按信件的性质进行统计,统计结果分页显示。按满意度统计只统计的信件办理情况。按办理情况统计主要实现按办理的结果进行统计,统计结果分页显示。按单位统计主要统计统计各单位的信件办理情况(包括收信、主办、协办、分办、办结等)。所有统计结果都可以导出到excel或在线查看。
3.2.3 非功能需求分析
① 操作需求:用户界面友好、简洁,操作简单、方便,容易上手。
② 性能需求:信息的存取与检索要正确,响应时间要快速,稳定性要强,安全性要高。
③ 安全需求:登录数据库时,用户必须输入帐号和密码,系统自动核实,如合法,用户才能进入系统。
3.3 系统用例分析
用例图是一种有效的表达系统需求情况的一种常用方式,在软件开发过程中,系统开发人员之间需要交互,那么用例图是一个非常规范的交流方式,是软件开发人员的交流语言,本章采用Office Visio2007画图。
1) 系统顶层用例图
系统管理员的权限相比其他普通用户,其功能要稍微多点。系统管理员的用例图如图3-6所示。
图3-6 系统顶层用例图
2) 普通用户用例图
普通用户的用例图如图3-7所示。
图3-7 普通用户用例图
3) 邮箱查询用例图
邮箱查询用例图如图3-8所示。
图3-8 邮箱查询用例图
4) 系统设置用例图
系统设置用例图如图3-9所示。
图3-9 系统设置用例图
3.4 系统开发平台
采用JavaEE技术开发贵州某市信箱与短信系统统采用如下开发IDE,采用MyEclipse9.0开发平台,设计完成的贵州某市信箱与短信系统需要采用web服务器是Tomcat6.0,这个是免费的不需要花费成本即可使用,而且性能比较稳定。
3.5 本章小结
本章包括可行性分析和需求分析,包括贵州某市信箱与短信系统业务功能等,最后介绍了系统的开发平台。
4 系统设计
本章主要阐述系统的体系架构、系统功能结构、系统网络拓扑、接口设计和系统算法等。
4.1 设计思想
根据系统需求分析,对贵州某市信箱与短信系统的采用模块化的设计思想来实现该系统的各项功能。
系统性
对于整个系统来说,不仅要有统一的代码,而且还要有标准的设计规范、一致的传递语言,并且在采集系统数据时要求数据来自一个地方,并且能够在全局共享,也就是说输入一次数据,就可以在不同地方多次使用该数据。
灵活性
系统要有良好的开放性,并且系统的结构要做到可以改变,在设计系统时,通过模块化的结构,使各模块更加独立,并且模块之间的数据耦合度也相对降低了,也就是说,各个子系统之间的关系是最低限度的数据依赖。
可靠性
所谓可靠性,就是对于外界的干扰,系统所拥有的抵御能力以及恢复能力。管理信息系统成功的前提就是在可靠性方面必须要有较高的水平,如安全保密性、抗病毒能力等。
经济性
所谓经济性,就是系统的需求已经都实现的情况下,对开销进行适当的缩减。也就是说,不仅只是为了让硬件能够拥有先进的技术,进行盲目的投资,更加重要的是能够满足应用需要;除此之外,在系统设计中,模块设计要尽可能的简单,不应该有的复杂尽量不要出现,这样可以在缩短处理流程时更加方面,并且能够降低处理费用。
根据以上几项设计思想,该贵州某市信箱与短信系统的设计在兼顾系统的跨平台运行,确保系统具有较强的灵活性和可移植性。友好的操作界面,便于管理维护人员的操作维护。灵活的部署方式,良好的抗干扰能力保障系统能持续可靠的运行,也应该充分考虑整个系统的高性价比,把有限的资金投入,发挥出最大的经济效益。
4.2 系统体系架构
1、 系统的功能模块架构如下图4-1:
图4-1 系统功能架构图
2、 系统软件体系架构
系统的软件架构如下示:
图4-2 系统软件体系架构图
3、 系统逻辑架构如下:
SMTP SMS |
其他 |
系统 |
专线或 |
INTERNET |
政 |
府 |
系 |
统 |
接 |
口 |
模 |
块 |
SMTP |
服务 |
程序 |
SMS |
服务 |
程序 |
WEB |
服务 |
程序 |
权限控制 |
其 |
他 |
服 |
务 |
程 |
序 |
接 |
口 |
服 |
务 |
程 |
序 |
接入方式和身份识别 |
政府信箱与短信系统 |
信息资源 |
和发送功能
|
|
图4-3 系统逻辑架构设计图
4.3 功能模块设计
4.3.1 前台功能模块设计
(1)登录:
表 4-1 登录功能设计表
名称、标识符 | 登录 |
功能描述 | 用户向网上订餐输入帐号,并且输入正确密码系统给出登录成功与否的相应提示。 |
用户输入 | 帐号、密码 |
输出 | 登陆成功与否的信息 |
(2)写信:
表 4-2 写信功能设计表
名称、标识符 | 写信 |
功能描述 | 用户成功登录后进入给市长写信界面 |
用户输入 | 信件信息 |
输出 | 填好的信件添加到数据库中 |
(3)信件查询:、
表 4-3 信件查询功能设计表
名称、标识符 | 信件查询 |
功能描述 | 用户通过不同的条件查询与之相对应的信件 |
用户输入 | 信件查询条件 |
输出 | 符合用户查询条件的信件 |
(4)我的信件:
表 4-4 我的信件功能设计表
名称、标识符 | 我的信件 |
功能描述 | 查询登录用户的个人信件 |
用户输入 | 无输入 |
输出 | 用户自己的信件 |
(5)用户修改:
表 4-5 用户修改设计表
名称、标识符 | 用户信息 |
功能描述 | 修改用户资料 |
用户输入 | 修改后的用户资料 |
输出 | 用户信息 |
(6)退出:
退出信箱与短信系统。
4.3.2 后台功能模块设计
(1) 登录:
表 4-6 后台登陆功能设计表
名称、标识符 | 登录 |
功能描述 | 用户向网上订餐输入帐号,并且输入正确密码系统给出登录成功与否的相应提示。 |
用户输入 | 帐号、密码 |
输出 | 登陆成功与否的信息 |
(2)信件办理:
表 4-7 后台信件办理功能设计表
名称、标识符 | 办理信件 |
功能描述 | 对不同类别的信件处理 |
用户输入 | 处理意见 |
输出 | 处理的信件 |
(3)信件统计:
表 4-8 后台信件统计功能设计表
名称、标识符 | 信件统计 |
功能描述 | 按照不同的条件统计信件 |
用户输入 | 统计条件 |
输出 | 信件 |
(4)个人信息修改:
表 4-9 后台个人信息修改功能设计表
名称、标识符 | 用户信息 |
功能描述 | 修改用户资料 |
用户输入 | 修改后的用户资料 |
输出 | 用户信息 |
(5)退出:
退出信箱与短信系统。
4.4 基本模块的详细设计
4.4.1 前台基本模块详细设计
(1)我要写信
师生写信给市长,新增信件。择分管不同领域的市长而向他们写信。如果信件涉及很敏感话题,可以选择信件的不公开。
(2)用户注册
该模块用于相关人员和市民的账号注册。
(3)市长分工
该模块主要介绍各位市长分管的各个方面,方便相关人员和同学将信件投给主管市长减少回复信件时间。
(4)信件查询
该模块可以通过时间和标题查询已有信件,同时可以查询信件详细信息。
4.4.2 后台基本模块详细设计
后台主要有系统管理、网站管理和市长信箱三个模块。
(1)网站管理
师生注册用户模块
该模块主要功能是实现对前台用户账号管理功能,限制恶意账号的非法操作。通过不同条件查询用户账号。系统管理员可以实现对账号的删除、禁用操作。师生信息以列表形式,实现分页显示
工作日管理模块
用于设置工作日,设置信件办理的预警时间和超期时间。添加初始年份和结束年份,实现工作日的初始化设置。实现各类信件的超期和预警周期,提高信件的办理效率。此外,该部分以日历形式显示固定年份的日期,实现工作日的设置,默认工作日为周一到周五,管理员可以自己设置,设置成功后给出相应的提示。
(2)市长信箱
市长的信件处理
市长处理发送给他的信件有两种方式:
转交:
由于发件人对市长主管方面认识不够,可能会发错信件。收到信件的市长若发现该信件不属于自己的管辖范围,可以通过转交操作将其转交给分管此方面的其他市长。这样就可以让分管不同方面的市长处理本范围的信件。
交办:
若市长发现他们收到的信件必须让更加具体的分管领导或系部来处理,市长可以通过交办操作来完成。将信件下发给其他能更好处理本信件的部门,以便于能够更好和更及时地处理该信件。
统计—综合统计:
本模块市长可以通过不同的需求(按事项类型、按性质、按满意度、按办理情况、按单位)来统计信件办理情况。
同时还有具有Excel导出功能。
(3)系统管理
本模块主要是对系统的管理性操作。
4.5 系统数据库设计
系统功能由五个功能模块来实现,如下:
1.前台数据库表包括A_CITIZEN 、A_CITIZEN_ACTIVE、A_COMMON_PHRASE、A_DELEGATION、A_EXTENDED、A_FAVOR、A_MAIL_DISTRIBUTE、A_MAIL_DISTRIBUTE_COMMUNICATE、A_MAIL_HANDLE_IDEA_HIS、A_MAIL_INFO、A_MAIL_SENDBOX等
2.前台数据库表设计示例:A_MAIL_INFO
表名:A_MAIL_INFO
表4-10 信件详细信息表
字段名 | 类型 | 默认值 | 是否可以为空 | 描述 |
MAIL_INFO_ID | numeric (10) |
| No | 主键
|
OLD_MAIL_INFO_ID | varchar (100) |
| Yes | 原外网主键(原查询号,现在查询号用字母打头+主键)
|
TITLE | varchar (200) |
| No | 标题
|
TRADE_TYPE_ID | numeric (10) |
| Yes | 行业类型Id
|
TRADE_TYPE_NAME | varchar (100) |
| Yes | 行业类型名称
|
PROP_ID | numeric (10) |
| Yes | 性质分类Id
|
PROP_NAME | varchar (100) |
| Yes | 性质分类名
|
CONTENT | text |
| No | 信件内容
|
SENDER_ID | numeric (10) |
| No | 发信人Id,关联到师生表
|
SENDER_NAME | varchar (100) |
| No | 发信人姓名
|
SENDER_IP | varchar (50) |
| No | 发信人Ip
|
SENDER_MPHONE | varchar (50) |
| Yes | 发信人手机号
|
SEND_DATE | datetime |
| No | 发信日期
|
SENDER_EMAIL | varchar (150) |
| No | 发信人电子邮箱
|
MAYOR_ID | numeric (18) |
| No | 院长Id
|
MAYOR_NAME | varchar (100) |
| No | 院长姓名
|
HANDLE_STATUS | numeric (2) | (0) | No | 办理状态,0:未办理;1:办理中;2:转交;3:交办;4:不予回复;5:已办结;
|
HANDLE_IDEA | varchar (8000) |
| Yes | 办理意见,办结时才填写此字段
|
CITIZEN_ISSUE_IDEA | numeric (5) | (0) | Yes | 信件状态,0:不公开;1:公开;师生设定,供院长信箱办理人员参考
|
MAIL_STATUS | numeric (1) | (0) | No | 信件状态,0:不公布;1:公布所,有市民可以看到;2:删除,所有用户都不可见;
|
RELAY_PRODUCE | varchar (2000) |
| Yes | 转交历程
|
FK_XZ | int |
| Yes | 暂不使用---反馈选择(0:满意;1:基本满意;2:不满意)
|
FK_NR | varchar (1000) |
| Yes | 反馈内容
|
WARN_DATE | datetime |
| Yes | 警告时间
|
CJ_DATE | datetime |
| Yes | 超期时间
|
OPEN_ID | varchar (1000) |
| Yes | 阅信人id |
over_date | datetime |
| Yes | 超期日期 |
IS_SZMAIL | numeric (1) | (0) | No | 标明是否是院长信箱来件,0表示否,1表示是
|
IS_LEADER | numeric (1) | (0) | No | 标明是否是领导批示件,0表示否,1表示是
|
IS_ADMIN | numeric (1) | (0) | No | 标明是否是管理员抽查件,0表示否,1表示是
|
IS_FIRST | numeric (1) | (0) | No | 标明是否是再次答复件,0表示否,1表示是
|
address | varchar (50) |
| Yes | 地址 |
summary | varchar (200) |
| Yes | 描述 |
sz_mail_info_id | numeric (18) |
| Yes | 信件id |
leader_mailid | numeric (18) |
| Yes | 领导批示件id |
IS_DEPT | numeric (1) | (0) | Yes | 是否为部门内部信件 |
DEPT_ID | nvarchar (9) |
| Yes | 部门id |
3.后台数据库表包括PT_ANNOUNCE、PT_CATEGORY、PT_CATEGORY_FOLDER、PT_CATEGORY_VALUE、PT_DEPT、PT_DEPT_EXT、PT_DEPT_GROUP、PT_DEPT_GROUP_REL、PT_DIC_CUSTOM、PT_HEADSHIP、PT_HEADSHIP_RIGHT、PT_LOGIN_USER、PT_MENU、PT_MODULE、PT_MODULE_OP、PT_MODULE_PAGE、PT_ROLE、PT_ROLE_GROUP、PT_ROLE_GROUP_REL、PT_ROLE_RIGHT、PT_SEQUENCE等
4.后台数据库表设计示例:PT_ROLE_RIGHT
表名:PT_ROLE_RIGHT
表3-2 角色权限表
字段名 | 类型 | 是否可以为空 | 字段描述 |
RIGHTID | decimal (10) | No | 权限id |
MENU_ID | decimal (10) | Yes | 菜单id,关联到菜单表 |
OPERCODE | varchar (100) | Yes | 操作权限编码 |
RANAGE | decimal (10) | Yes | 权限范围 |
DEPT_ID | decimal (10) | Yes | 部门id,关联到部门表 |
ROLEID | decimal (10) | Yes | 角色id,关联到角色表 |
CREATE_UID | decimal (10) | Yes | 创建人id |
CREATE_TIME | datetime | Yes | 创建时间 |
UPDATE_UID | decimal (10) | Yes | 更新人id |
UPDATE_TIME | datetime | Yes | 更新时间 |
4.6 系统功能架构
系统功能由五个功能模块来实现,如下:
1、 基本功能模块
对系统账号、系统权限等的管理。
2、 信箱及短信管理模块
包括我的信件,我要写信,信件查询,已办结信件,来信管理查询,信箱领导批示件,再次回复信件等功能。
3、 结果通知、满意度反馈模块
市民在业务开始受理后,贵州某市信箱与短信系统会根据该业务正常受理工作时间,结果通知通过邮箱或者短信息发通知市民,如果公安办理人员、管理人员在处理市民的业务过程,如需调整领取结果单的时间,办理人员可以更改通知单领取的时间和办理进度时间,更改的通知单时间会以短信的形式及时下发通知市民。市民也可以将受理号以短信的形式发送到指定的端口,在贵州某市信箱与短信系统会做出响应并发送业务办理进度通知客户。
4、 数据采集模块
该模块通过访问公安接口,采集到预约业务的相关辅助数据,如公安信息、公安科室数据,管辖区域等相关数据。
5、 业务数据接口模块
数据接口提供贵州某市信箱与短信系统业务办理资料数据库、用户资料数据库、管辖区域地方派出所业务办理资料数据库、数据交互和数据传输、以及数据处理等。采用Web Service进行数据信息交换,每个业务接口主要步骤均为:请求通过接口提交一个请求,贵州某市信箱与短信系统收到请求后进行业务的处理并返回处理的结果。
4.7 系统物理拓朴
系统物理拓朴如下:
图4-4 系统网络拓朴图
4.8 系统选型
所谓系统选型,就是准用户要先对需求进行客观的分析,并且对系统进行合理的规划,充分考虑信息化投入的预算,以及调查、比较、分析和评估市面上已有的主要系统产品以及供应商,在这了解之后,选择与自身需求以及特点最为符合的产品,之后才能在拟上新信息系统。以下是具体的要求:
必须对需求进行明确客观的分析,对系统进行完整合理的规划,这是系统选型的前提,基于这个前提,才能更改的选择系统类型,使其能够有的放矢、富有针对性;
在系统选型之前,充分考虑信息化投入的预算,选择与预算等级向吻合的系统选型范围以及方向,不要让预算影响了系统选型的范围和方向;
调查、比较、分析和评估市面上已有的主要相关产品以及其供应商,并且综合各个方面的关键指标,对其进行全面的衡量,这是系统选型的主要工作;
在系统选型时,必须要结合用户的需求和特点,这是系统选型的核心要素,其实有以下一系列要求,经济性、稳定性、安全性、技术先进性、可扩展性、针对性等。
根据贵州某市信箱与短信系统的需求分析现状,和本项目的设计思想,此次项目需求如下:
前台设备(直接面对群众的显示屏等)需求如下:
对于前台设备要求有良好的显示效果,相对简单友好的操作界面,以及维护方式要求相对简单。
需要主流的,可靠的品牌,以及良好的售后服务。
要求低能耗,绿色环保。
后台设备(包括硬件服务器,软件平台)需求如下:
硬件服务器要求:
能够满足相关系统和应用的需求,有相对稳定的性能和良好的可扩展性。
良好的数据备份能力,优良的工作效率。
设备有较强的抗干扰能力,能有效保证数据的安全性和可靠性。
绿色环保,低能耗,低噪音,有良好的散热功能。
软件平台需求:
系统的代码要统一,设计规范要标准,传递语言要尽可能一致
能够及时更新,升级,没有重大的安全漏洞。
友好的操作界面,易于安装和维护。
4.9 本章小结
本章通过分别阐述系统的体系架构,系统功能结构,系统网络拓扑,接口设计,系统算法实现等,为下一章系统详细设计做了总体的铺垫。
5 系统实现
5.1 市长信箱模块实现
系统是贵州某市网的一个子系统,成为网站中的政民互动系统。首页主要用于信息的显示和排版,主要涉及到dbc 连接数据库和数据查询,内容包括了群众选择留言的形式、查询信件接口、市长信件选登、市长私人信件等几个部分。最终主页面展示,如图 5-1 所示:
图 5-1 前台首页界面
系统连接的是SQLServer2005数据库,连接的代码如下:
public Properties getProperties() {
if (p == null) {
p = new Properties();
p.put("hibernate.dialect", "net.sf.hibernate.dialect.SQLServerDialect");
p.put("hibernate.connection.driver_class", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
p.put("hibernate.connection.username", "sa");
p.put("hibernate.connection.password", "sa111111");
p.put("hibernate.connection.url", "jdbc:sqlserver://localhost:1433" + "/yzxx;instanceName=sql2005");
Log.debug(this.getClass(), "加载SqlServer数据库配置: ", p.toString());
}
return p;
}
系统不仅可以对sqlserver可以使用,也可以对其他数据库可以使用,在db.xml文件中设置了统一的访问方法:
<!--环境配置-->
<root>
<!-- ================= 平台参数配置 ================= -->
<!-- -->
<!-- ===================数据库类型定义================= -->
<!-- 配置数据库类型的标识, 可选值(大写) -->
<!-- SQLSERVER2005 SQLSEVER2000 ORACLE9I DB2 MYSQL4 MYSQL5 -->
<!-- -->
<!-- SqlServer2005 -->
<db.type desc="数据库类型">SQLSERVER2005</db.type>
<db.host desc="数据库服务器">localhost:1433;instanceName=SQL2005</db.host>
<db.database desc="数据库名">yzxx</db.database>
<db.user desc="数据库用户名">sa</db.user>
<db.password desc="数据库密码">sa111111</db.password>
<!-- SqlServer2000 -->
<!--<db.type desc="数据库类型">SQLSERVER2000</db.type>
<db.host desc="数据库服务器">localhost:1433</db.host>
<db.database desc="数据库名">yzxx</db.database>
<db.user desc="数据库用户名">sa</db.user>
<db.password desc="数据库密码">sa</db.password>
--><!-- Oralce -->
<!--<db.type desc="数据库类型">ORACLE9I</db.type>-->
<!--<db.host desc="数据库服务器">localhost:1521</db.host>-->
<!--<db.database desc="数据库名">jvoracle</db.database>-->
<!--<db.user desc="数据库用户名">orcl</db.user>-->
<!--<db.password desc="数据库密码">orcldbn</db.password>-->
群众进入市长信箱中,系统将从数据库中查找出最近前六条市长选登信件和私人信件的编号、类型、标题等信息显示出来。同时也为群众提供了市长信箱的留言板的入口。群众也可以选择具体的某一条信件,查看具体的信件所有内容,然而市长信箱中,市长选登中的信件用户可以直接点击查看;对于私人信件,用户必须输入具体信件的密码才能查看对应的内容。具体的效果图,如图 5-2 所示
图5-2市长信箱界面
群众通过市长信箱提供的写信入口进入到留言板,写信左端将展示写信须知,群众在写信前需仔细阅读其中的内容,并在写信时遵守其中的相关规定。留言时,首先群众需选择写信的内容,如:反映、举报等;填写信件正确的标题;写信人的真实姓名、相关电话号码、具体的联系地址;信件的主要内容;同时需填写信件查询密码(3 位的字母或数字);以及选择是否在前台显示等选项。
写信人在填写相关内容时,必须是正确的信息。相关部门或领导在处理信件过程中,可能会通过电话了解相关的情况。对于信件密码是为了防止某些信件被其他的人员查看到,可能会为发件人带来一些不必要的麻烦,而发件人就可以通过设置的密码查看到领导对信件的相关回复。
具体的界面展示,如图 5-3 所示
图 5-3 市长信箱写信界面
我要写信代码实现:
private CommonBizMsg insertAmailInfo(HttpServletRequest request) throws Exception {
CommonBizMsg bizMsg = new CommonBizMsg();
MutSeaObject mso = null;
// 从前台得到写信市民的用户ID
Long mayorId=RequestUtil.getLong(request, "mayorId");
PtUserView ptuserview=new PtUserView();
List ptuserlist=ptuserview.getUserById(mayorId);//根据pk获取用户对象
String reciver_branch_id="";
String reciver_branch_name="";
if(ptuserlist != null && ptuserlist.size()>0){
DynaBean ptuser=(DynaBean)ptuserlist.get(0);
reciver_branch_id=ptuser.get("dept_id").toString();//获取部门名称
//reciver_branch_name=ptuser.get("")
}
Long citizenId = RequestUtil.getLong(request, "userId");//市民id
if(citizenId == null || citizenId.equals("")) return bizMsg;
//从后台得到注册市民的相关信息
AcitizenView av = new AcitizenView();
Acitizen citizen = av.selectById(citizenId);//根据id获取市民的相关信息
if(citizen == null) return bizMsg;
AmailInfo mailInfo = null;
// 处理AmailInfo
mailInfo = (AmailInfo) BeanInitializer.initBean(AmailInfo.class, request);//初始化javabean,把request获取到的值初始化到该javabean
mailInfo.setTitle(StringUtil.convertStr(mailInfo.getTitle()));//来信标题
mailInfo.setContent(StringUtil.convertStr(mailInfo.getContent()));//信件内容
mailInfo.setSenderId(citizenId);//获取发信人id
mailInfo.setSenderEmail(citizen.getEmail());//市民email
mailInfo.setSenderMphone(citizen.getMobilePhone());//市民手机
mailInfo.setSenderName(citizen.getCname());//市民名字
mailInfo.setMailStatus(mailInfo.getCitizenIssueIdea());//信件状态,公布,不公布,删除
Long id = AmailInfoView.getNewMailId();//新信件编号自动增加1
//System.out.println("市民新增信件的编号:"+id);
if(id==null){
id=new Long(1);
}
mailInfo.setMailInfoId(id);//mail_info_id信件号
Date date = new Date();
mailInfo.setSendDate(date); //发送日期为当前日期
mailInfo.setWarnDate(OverWorkdayMng.isChaoqi(date,AmailDistributeFieldsDefine.WARNDUE)); //警告日期 ,2参数为10
mailInfo.setCjDate(OverWorkdayMng.isChaoqi(date,AmailDistributeFieldsDefine.OVERDUE));//超期,2参数为15
mailInfo.setIsSzmail(new Integer(AmailInfoMailStatusDefine.IS_SZMAIL_0));//0 院长信箱来信
mailInfo.setIsLeader(new Integer(AmailInfoMailStatusDefine.IS_LEADER_0));//0 不是领导批示件
mailInfo.setIsAdmin(new Integer(AmailInfoMailStatusDefine.IS_ADMIN_0));//0 不是管理员抽查件
mailInfo.setIsFirst(new Integer(AmailInfoMailStatusDefine.IS_FIRST_0));//0 不是再次答复件,是刚接收到的信件
mso = new MutSeaObject();//实例化存储过程对象
mso.setHbmSea(mailInfo, MutSeaObject.SEA_HBM_INSERT);//传入对象和操作方式0,新增
bizMsg.v.add(mso);
// 处理AmailDistribute AmailDistributeFieldsDefine
AmailDistribute mailDistribute = new AmailDistribute();//对应a_mail_distribute
mailDistribute.setMailDistributeId(SequenceManager.getSequencePt());//设置maildistributeid值,平台管理序列号
mailDistribute.setDataStatus(new Integer(AmailDistributeFieldsDefine.DATA_STATUS_0));//数据状态, 当前数据
mailDistribute.setDoStatus(new Integer(AmailDistributeFieldsDefine.DATA_STATUS_0));
mailDistribute.setHandleStatus(new Integer(AmailDistributeFieldsDefine.HANDLE_STATUS_0));// 未办理
mailDistribute.setIsmaster(new Integer(AmailDistributeFieldsDefine.ISMASTER_0)); // 0,主办,1, 协办,2,分办
mailDistribute.setMailInfoId(mailInfo.getMailInfoId());//设置mail_info_id
mailDistribute.setReciverId(mailInfo.getMayorId());//信件接收者(院长)
mailDistribute.setReciverName(mailInfo.getMayorName());//收信人姓名
//if(!reciver_branch_id.equals("")){
//System.out.println("555555555555555555555");
//mailDistribute.setReciverBranchId(new Long(reciver_branch_id));
//}
mailDistribute.setReciverStatus(new Integer(AmailDistributeFieldsDefine.RECIVER_STATUS_0));//签收状态,0未签收,1已签收,2拒签
mailDistribute.setSenderDate(date);//发送日期
mailDistribute.setSenderId(citizen.getCitizenId());//来信市民id
mailDistribute.setSenderName(citizen.getCname());//来信市民名字
mso = new MutSeaObject();
mso.setHbmSea(mailDistribute, MutSeaObject.SEA_HBM_INSERT);//插入
bizMsg.v.add(mso);//vector
bizMsg.status = CommonBizMsg.BIZ_STATUS_SUCCESS;//0 业务操作成功,-1业务操作失败
bizMsg.extValue.put("mailInfoId", mailInfo.getMailInfoId());//业务操作附加信息放在extValue HashMap里
return bizMsg;
}
5.2 短信收发模块
系统提供的短信收发平台是基于中国移动通信互联网短信网关接口协议CMPP (China Mobile Peer to Peer)协议的基础上开发的一个用于将信件转发到手机上的平台。作为移动梦网的客户,我们开发的系统将会在移动梦网中扮演增值服务商(Service Provider SP )的角色,从而需要按照 CMPP 协议规范实现这部分,才能够将自己的转换后的信件即短信通过移动梦网提供的GSM网络的数据通道传输到最终用户的手机上。
其中 CMPP 协议规范了以下几个方面的内容:
1. 移动增值服务商与移动的互联网短信网关( Internet Short MessageGateway,ISMG)之间的接口协议
2. 短信网关之间的接口协议即中国移动在各省、市之间的短信息交换接口规则
3. 短信网关与汇接网关(Gateway Name Server GNS)之间的接口协议,也就是对跨省传输的短信就需要一个汇接网关进行指导,主要是指导当前的 ISMG 在怎样在信道上进行短信的传输。
对于短信网关内部信息之间传输的接口协议以及短信网关与汇接网关之间传输的协议都是由中国移动公司的短信息系统进行设定的,从而我们只需要实现 SP与 ISMG 之间信息的正确交互,就能够实现系统接入移动梦网短信系统。
系统实现 SP 开发的方式,首先系统必须了解在进行 SP 与用户进行短信的接收和发送的方式:短信接收,MT(Short Message Mobile Terminated, SMMT),短信传输方式是从 SP 通过网络通道传输到手机用户;短信发送,MO (Short MessageMobile Originate,SMMO),传输方式是从用户的手机通过网络通道传输到目标 SP处。从中也可以得出这两种传输方式都是属于网络(Socket)传输应用。
根据移动梦网提供的协议,可以知道 SP 与 ISMG 的交流方式有多种,但是这些都有一个共同的特点:在消息发出后,接收方都会回复一个应答(RESP)类消息。对于这些消息大部分都是只能够从系统的一端传输到另一端,但也有少部分的消息可以进行双向的传输。
5.3 Web缓存及实现
贵州某市市长信箱和短信系统是在特定的时间段内对系统用户进行开放,而通常白天的8:00~17:00是用户访问最多的时段,此间系统服务器的工作量大,负荷高,所以市长信箱系统在设计时需充分考虑用户流量大与服务器负荷强的现实情况。而针对此情况,Web缓存技术有效的解决了系统堵塞引起的访问延后,它也是现今应用最为广泛的技术之一。
之所以要进行缓存,是因为:(1)降低响应延迟,由于请求不是来自服务器,而是来自与客户端距离更近的缓存服务器,这就大大降低了请求反馈消耗的时间,使得Web服务器响应速度显著提升;(2)减少网络带宽消耗,缓存以后重用副本能够有效降低客户端的宽带消耗,有效管控带宽的需求增长,使得客户宽带费用大大减少,管理也更容易。所以如果访问量很大的时候进行缓存,可以使得数据库的操作次数和系统负荷大大降低,系统性能有效提升。该技术的重点在于缓存用户的常用数据,使得用户访问数据库的次数得到减少,这样数据库服务器的负荷就会降低,用户的响应时间更短,而系统整体性能则会更高。在设计缓存的过程中,必须遵守的原则就是保持数据的恒定,就像性别表、政治面貌表、民族表等码表的数据都是始终不变的,所以才可以成为缓存;而像办事人员基本信息表这样经常变化的数据,就无法做成缓存得以保存。Web缓存最大的优点是,数据库将对第一次进行访问的外部进行进行数据的读取和缓存,如果第二次进行同样数据的访问,将直接读取缓存中的信息,使得数据库与服务器之间的直接交互变得更少,数据库符合降低,系统的总体性能与存储效率都会更高。图5-1显示了缓存的整个工作流程:
定义缓存大小 |
定义缓存存放内容 |
是否读取信息 |
根据条件读取相关信息 |
缓存 |
是否找到信息 |
是 |
否 |
是 |
返回相关信息 |
否 |
到数据库查询相关信息 |
把相关信息放进缓存 |
开始 |
结束 |
图5-4 缓存读取流程图
5.4 同步令牌(Token)机制
现今,Token机制已发展的相当完善。用户通过系统界面的报表单进行报考,将填写完的表单进行“提交”操作时,易发生服务器繁忙或网络速度慢等现象,系统网络页面长时期无响应,而此时用户往往会选择再次进行“提交”操作,从而数据服务器中便会有着2次的报考请求信息,即2条排队信息,从而使得服务器数据重复、冗长。在基于J2EE的系统中,同步令牌机制可以有效的解决服务器数据冗余的难题,其理念为:当数据库服务器在进行请求处理前,对其所有的token值与正在会话中的token值对比,判断是否相同。服务器在完成请求指命后,便将信息传给用户,便会重新生成token,同时它将对系统中原有的令牌进行更换。从而当用户通过退后操作使页面回到提交界面,并再次进行报表提交时,由用户传来的token便与服务器现有的令牌不同,进而很大程度上减少了数据的冗余。所以,针对此类问题,我们在编程过程中使用了令牌机制:当用户完成提交操作后,此操作便不可再用,这样用户便无法重复提交了[18]。同步令牌机制的设计原理为,当数据库在进行请求处理前,会对本身储存的token与现有的token对比,服务器在完成请求指令后,便将信息传给用户,便会重新生成token,同时它将对系统中原有的令牌进行更换。从而当用户通过退后操作使页面回到提交界面,并再次进行报表提交时,由用户传来的token便与服务器现有的令牌不同,很大程度上避免了用户的重复提次。以此来杜绝用户恶意操作或反复提交,进而减少数据的冗余,增加了系统运行的稳定性。Token机制也用于该系统的用户登录,从而减少黑客强行盗取用户名及密码,有效的确保了客户信息的安全。下图例举将一条信息插入数据库的操作,以此阐述系统怎样利用同步令牌机制避免信息的反复提交。
是 |
继续执行 |
用户填写的数字与Session数字是否相同 |
用户请求打开某页面 |
页面生成,同时生成随机数小图片并将该随机数存入Session |
用户依照图片填写数字 |
用户提交 |
生成并发放令牌 |
返回错误提示信息 |
否 |
检查令牌是否正确 |
图5-5 Token工作原理的流程图
5.5 数据库连接池
数据库连接不但非常重要,也非常昂贵,管理数据库连接的工作可以对应用程序的健全性与延展性产生重大影响,还关系到程序性能的好坏。在这样的情况下,人们创造了数据连接的“缓冲池”——数据连接池。可以将某些连接提前放置在缓冲池中,如果要用到数据连接,之间抽取“缓冲池”中的连接进行使用,工作结束后在放回就可以了。数据库连接池的主要作用是对数据库连接进行分配、管理以及释放,在数据库连接池中的数据连接能够在应用程序里得到重复使用,省去了重新构建的麻烦;如果数据库的空闲时间比最大空闲时间还要大,就可以对其进行释放操作,使得未释放导致的数据库连接遗漏情况得到规避。在初始化过程中,数据库连接池可以创建新的数据库连接,并进行保存,而确定数据库连接池容量的标准是最小数据库连接的数量。不管这些数据库连接有没有被调用,数据库连接池中的连接数量必须保持恒定。决定了该连接池中能够容纳的连接数量额最大限额,如果应用程序提出的请求比连接池的连接数量要多的话,请求就会直接进入等待队伍进行等待。
数据库连接池的基本工作原理是:当应用程序一启动,系统便自动建立足够多的数据库连接从而形成了一个连接池,然后通过程序对池中的连接进行动态的管理,如申请连接、使用空闲池和释放池空间等。当有一个连接请求到达时,数据库连接池先对该连接做出是否有效的判断。如果有效,就将池分配给发送此请求的用户;如果判断无效,则把这个连接从空闲池删掉,接着再重新检测空闲池是否还有到达的空闲连接请求。如果有,就把建立时间最长的那个连接分配给用户;如果没有则检查连接池是否达到设置的最大连接数。如果尚未达到连接池设置的最大连接数则新建一个物理连接;如果己经达到则等待一定时间。倘若在等待允许的规定时间内有连接被释放出来,则就可以把这个连接分配给等待的用户;如果等待时间超过规定时间则返回空值。当连接使用完后返还给数据库连接池,然后再根据连接请求进行重新分配。数据库连接池的工作流程如图5-6所示:
请求连接 |
连接池是否有空闲连接 |
连接是否有效 |
连接数是否小于最大连接数 |
分配连接 |
创建新连接 |
等待M秒 |
删掉该连接 |
有 |
是 |
是 |
没有 |
否 |
否 |
开始 |
结束 |
结束 |
图5-3 数据库连接池工作流程图
5.6 本章小结
本章首先对贵州某市市长信箱和短信系统功能如何实现进行详细的分析和讲解,并分析了系统中关键技术,包括web缓存技术,同步令牌机制,数据库连接池等。
6 总结与展望
在前期的开题报告中,详细的研究了国内外的背景及研究状况,对贵州某市市长信箱和短信系统的意义及需求作出了详细、合理的评估。本课题是基于目前流行的三层B/S结构,开发设计市(县)长信箱与手机短信信息互动管理系统。同时向客户提供客户端软件操作和浏览器操作两种方式,适应不同客户的需求,适于部门局域网内用户管理,同时便于远程用户使用。既保证了数据的强大处理功能和安全性,同时也实现了用户使用的方便性。系统将信件管理和WEB发送短信功能密切结合,利用信件管理模块,对各子模块之间进行数据交互,有效利用数据减少人工介入。
在贵州某市市长信箱和短信系统的研制开发过程中,主要做了以下工作:
1. 进行系统的总体设计和各个子系统的需求分析。
2. 理解当前用于基于WEB开发的短信收发平台的开发方式,把县长信件通过短信直接发送给领导。在参与设计开发的过程中,有许多体会和经验教训值得总结。对系统功能需求进行正确的分析是系统开发得以顺利进行的关键;正确的使用各种系统开发工具、充分了解并利用开发工具提供的各种功能,不仅能够减轻工作负担、提高工作效率,同时提高系统的质量。
由于本系统不可能面面俱到,且用户的需求随着时间会有新的变化,这个信息互动系统还可能需要进一步增加功能。有关这方面的问题,还需要开发维护人员和人员的商讨。
致 谢
即将告别三年的研究生生活。三年来,无论在专业学习还是在为人处世方面,都得到了老师和同学的帮忙,他们的教诲将继续影响我今后的工作和生活。在此对给予我辛勤教育和关心的教授们和同事们表示我深深的感谢。
我非常感谢我的硕士论文指导教授——***教授,导师为本课题研究提供了专业化的指导,提出了诸多有见解的意见,同时在生活中也给予了诸多帮助,这将深深影响我日后的工作和学习。
其次,我非常感谢在研究生学习和生活中给予我帮助的的老师们,正是由于你们无私的帮助,我通过三年的学习,知识水平得到了提高,圆满的完成了硕士阶段的学习和最终论文的撰写。
最后,我要感谢我的家人,正是他们默默的支持和鼓励使我一直向前行。
在过去的三年生活中,在导师、其他老师、同学、家人们的无私帮助和支持下,我收获了很多,逐渐从稚嫩走向成熟,这将是一段永远难以忘却的岁月。
参考文献
[1] Jacobson I. Object-Oriented Software Engineering:A Use Case Driven Approach .Addison-WesleyPublishing Company,1992
[2] Klyohito Nagata,Kei .IMT-2000 Service Overview .NTT REVIEW,2001,11 (11) :14-18
[3] Koji Morita Kazuhiro,Takagi Atsushi Murase. IMT-2000 Services and Terminals .NTTREVIEW,2001,11 (11) :19-24
[4] Michael Wenstrom. Managing Cisco Network Security .USA: Cisco Press,2001,:30-35
Yoshifumi Ooyama. Communication Science for Individuals and Society .NTT REIEW,2001,5 (5) :44-53
[5] 陈棉,刘晓玫,沈春迎.多媒体电子地图的信息传递[J].测绘科学,2003,(03)
[6] 程国达,嵌入式系统的硬/软件协同设计研究[D],复旦大学,2003年
[7] 冯蕾,韩念眉,刘汉群.天津移动旅游行业信息化彰显实效[N].人民邮电,2009,(2009-02-27)
[8] 龚炳铮,嵌入式系统大有作为[N],中国石油报,2003年
[9] 郝永生,冰冰,M/M/1排队系统的服务能力[A],全国青年管理科学与系统科学论文集第5卷[C],1999年
[10] 华亮,杨世锡,基于C/OS-Ⅱ的嵌入式系统应用平台的构建[J];计算机工程;2004年15期
[11] 姜宏伟.防盗监控——让通信基站具有自卫能力[J].安防科技,2007,(12)
[12] 姜换新,ARM嵌入式系统C语言编程[J],计算机应用与软件,2003年10期
[13] 李斌,陈建辉,邱鹏,基于嵌入式系统的行驶信息记录报警系统[J],仪表技术与传感器,2006年08期
[14] 刘昶;涂菶生;基于遗传算法的随机排队系统参数优化[A];1994中国控制与决策学术年会论文集[C]; 1994年
[15] 刘南川,李韩.RNP-RF基站勘测指导书-20081203-A-1.0 2008-12-03 [M]
[16] 卢士堂,三种排队方式的比较[J],信阳师范学院学报(自然科学版),1993年03期
[17] 马世国.全面提升公安信息化应用水平,铜川日报2007(11)
[18] 邱燕娜.用友携手行业协会共推行业信息化[N].中国计算机报,2009,(2009-04-20)
[19] 苏远霖,用于描述排队系统的广义Petri网[J],暨南大学学报,1988年01期
[20] 孙香川.无线电基站建设标准与设备安装调试、运行维护及常用数据实用手册[M].当代中国音像出版社,2005
[21] 唐乾玉,韩曾晋,基于扰动分析的优化算法[A],1994中国控制与决策学术年会论文集[C],1994年
[22] 王芳.Google地图开发研究[J].计算机与数字工程,2010,(03)
[23] 王茜.移动基站动力及环境设备集中监控系统的设计[J].计算机应用,2002,(03)
[24] 王庆华,郝伟.地理信息系统的发展趋势[J].资源开发与市场,2005,Vol.4 No.2:2-5
[25] 王庆育,一种新的排队方式[J],控制与决策,1987年02期版),1983年Z1期
[26] 张斌峰.西安电信有力提升各行业信息化水平[N].陕西日报,2009,(2009-02-03)
[27] 张福基,刘浩培.有限容量成批到来排队系统M/M/n/r的平稳分布[J],新疆大学学报(自然科学版),1982年02期
[28] 张骥,叶桦.基站机房集中监控系统及其可靠性设计[J].东南大学学报(自然科学版),2006,(S1)
[29] 张向涛,朱红.基于GSM和ARM的远程监控系统[J].电子技术,2006,(09)
张永强,陈庆华,基于面向对象的排队系统仿真设计及实现[A],1999中国控制与决策学术年会论文集[C],1999年
[31] 张宁,吴捷,杨卓,张涛. 基于SQL Server的脑电数据库的构建[J]. 广西科学院学报, 2006, 22(4): 275-278
[32] Jon Titus. ECN Technical Editor: The Eclipse of stand[J]. Journal of Zhongkai Agrotechnical College, Vol.19, No.2, 2006
[33] P. Coad&E.Yourdon. 面向对象的设计[M]. 北京大学出版社, 1994
[34] Joseph Schmuller. UML基础、案例与应用[M]. 人民邮电出版社, 2002
[35] Raymond McLeod,jr.George Schell.Management Information Systems[J].2002
[36] Solid Quality Learning. Microsoft SQL Server 2005:Database Essentials Step by Step. Microsoft Press, 2007
[37] Gerald Post, Albert Kagan. Database management system:design consideration and attribute, 2003
[38] 张桂元,贾燕枫. Eclipse开发入门与项目实践. 人民邮电出版, 2006
基于j2ee的信箱与短信系统设计与实现