1、摘要随着城市化进程的进一步加快,城市的人口和机动车拥有量也在急剧增长,城市交通交通压力日益加大,但是城市的一些交通的配套设施和管理措施没有跟上车辆增长的速度,从而交通拥挤堵塞现象日趋严重,交通事故时有发生。该系统在交通管理者与公众之间架起一座信息的桥梁,使交管部门所掌握的一手路况信息,能够准确、及时地发布给公众,从而达到指导出行、缓解拥堵的目的,让人们的出行能够通畅、快捷。从查看路况上网站,到导航仪实时播报拥堵信息,使得我们每天不在与道路拥堵“斗智斗勇”的时候,道路交通也越来越智能了。实时路况系统在Struts2HibernateSpring框架的基础上,抓住MVC的思想的灵魂,用当今主流的网
2、站开发技术html5,jsp语言并结合实用的javascript,ajax,servlet过滤器等技术进行开发。该系统采用B/S体系结构,人们通过浏览器进行访问网站的主页,保证的服务器的安全。数据库采用免费,小巧,易用的mysql数据库。该系统功能较齐全,用户可以搜寻路况信息,定位,查看监控视频。管理员可以管理各种路况、监控信息,以及搜索定位等功能。通过管理员及时的上传路况,监控信息,用户可以方便的查看自己路况的信息,选择合适的出行路线,使出行更加智能。本套论坛的优点在于发效率快 稳定集成性能好,易于维护及扩展。关键字:实时路况,S.S.H(Struts ,Hibernate ,Spring)
3、,JAVA , MySQL ,JSP,html5 AbstractAlong with With the further accelerate a city to change a process, the amount of city population and the vehicle is in rapid growth of city traffic, traffic pressure increasing, but some of the citys traffic facilities and management measures have not kept pace with
4、the vehicle speed, and traffic congestion is becoming more and more serious, traffic accidents have occurred from time to time. The system sets up an information bridge between traffic managers and the public, the traffic control department of a traffic information, can accurately, timely release to
5、 the public, so as to achieve the guiding travel, alleviate the congestion to allow people to travel, to smooth, fast. The web site from the view on the road, to broadcast real-time traffic information navigator, so every day we do not in and road congestion wits, road traffic is becoming more and m
6、ore intelligentThis Real-time traffic system based on Struts2+Hibernate+Spring framework, grab the MVC idea of the soul, with HTML5 web development technology of the current mainstream, JSP language and combining with the practical JavaScript, AJAX technology development. The system uses the B/S arc
7、hitecture, people visit the site through the browser home page, ensure the safety of the server. Database using free, compact, easy to use MySQL database. The system function is complete, the user can search traffic information, location, view the surveillance video. The administrator can manage var
8、ious kinds of road conditions, monitoring information, and search features such as location.The forum is the efficiency of fast and stable integration of good performance, easy to maintain and extend.目录1绪论11.1作品构思的创意与价值11.1.1背景11.1.2选题动机11.2国内外研究现状和发展趋势12理论技术基础22.1开发语言综述22.2MYSQL数据库32.2JBOSS32.3SSH框
9、架33.系统的分析与设计43.1系统开发运行环境43.2需求分析43.2.1可行性分析43.2.2系统功能分析53.3总体设计53.3.1逻辑结构设计53.3.2路况维护流程图63.3.3监控维护流程图73.3.4.基础设置流程图73.4系统详细设计83.4.1系统E-R图93.4.2数据字典103.4.3各模块流程图114系统的实现144.1目录结构144.2框架配置文件154.2.1Struts配置文件154.2.2Spring+Hibernate配置文件164.3系统权限管理174.4路况维护184.4.1路况添加184.4.2路况管理214.5监控维护234.5.1监控添加234.5.
10、2监控管理254.6基础设置275总结29参考文献301绪论1.1作品构思的创意与价值1.1.1背景随着我国经济的快速发展,城市化、机动化的进程日益加快,交通工具的增长速度远远高于道路和其他交通设施的增长,随之引起了交通堵塞、环境污染、交通事故等一系列的交通问题。本项目依托于河北省高速公路交警总队保定支队项目高速公路智能交通管理系统,是对该项目路况管理功能的扩充和延伸。实现由交管部门向公众发布实时路况,使公众在出行前、特别是出行中了解准确、及时的路况信息的功能,希望在一定程度上实现对公众的出行诱导,缓解交通拥堵问题。1.1.2选题动机现在,通过前期的调研,我们发现,目前存在两个问题:(1)公众
11、在出行前、特别是出行中对于准确、及时的路况信息有着迫切的需求,目前在行车中公众主要是通过交通广播电台和司机手中两种途径获得路况信息,但这种信息往往是片面的,零散的,没有经过系统化的整理,对于公众出行的指导作用有限;(2)做为交通管理者的交警部门、路政部门掌握着大量的一手的路况信息(如事故信息、交通管制信息、治安事件信息、监控信息等),但没有一个有效的平台将信息及时发布出去,以达到车辆分流、缓解拥堵的目的。本系统的目的就是要建立一个平台,在交通管理者与公众之间架起一座信息的桥梁,使交管部门所掌握的一手路况信息,能够准确、及时地发布给公众,从而达到指导出行、缓解拥堵的目的。1.2国内外研究现状和发
12、展趋势目前,卫星定位导航领域走在世界最前沿的是美国的GPS系统。GPS系统的前身是美国军方研制的一种子午仪卫星定位系统(Transit),1958年研制,1964年正式投入使用。该系统用5到6颗卫星组成的星网工作,每天最多绕过地球13次,并且无法给出高度信息,在定位精度方面也不尽如人意。然而,子午仪系统使得研发部门对卫星定位取得了初步的经验,并验证了由卫星系统进行定位的可行性,为GPS系统的研制埋下了铺垫。由于卫星定位显示出在导航方面的巨大优越性及子午仪系统存在对潜艇和舰船导航方面的巨大缺陷。美国海陆空三军及民用部门都感到迫切需要一种新的卫星导航系统。为此,美国海军研究实验室(NRL)提出了名
13、为Tinmation的用12到18颗卫星组成10000km高度的全球定位网计划,并于67年、69年和74年各发射了一颗试验卫星,在这些卫星上初步试验了原子钟计时系统,这是GPS系统精确定位的基础。而美国空军则提出了621-B的以每星群4到5颗卫星组成3至4个星群的计划,这些卫星中除1颗采用同步轨道外其余的都使用周期为24h的倾斜轨道,该计划以伪随机码(PRN)为基础传播卫星测距信号,其强大的功能,当信号密度低于环境噪声的1%时也能将其检测出来。伪随机码的成功运用是GPS系统得以取得成功的一个重要基础。海军的计划主要用于为舰船提供低动态的2维定位,空军的计划能供提供高动态服务,然而系统过于复杂。
14、由于同时研制两个系统会造成巨大的费用而且这里两个计划都是为了提供全球定位而设计的,所以1973年美国国防部将2者合二为一,并由国防部牵头的卫星导航定位联合计划局(JPO)领导,还将办事机构设立在洛杉矶的空军航天处。该机构成员众多,包括美国陆军、海军、海军陆战队、交通部、国防制图局、北约和澳大利亚的代表。由于种种原因,我国的卫星定位导航水平远远落后于信息基础设施的建设的水平。但通过近年来我国的大力发展,2000年,首先建成北斗导航试验系统,使我国成为继美、俄之后的世界上第三个拥有自主卫星导航系统的国家。该系统已成功应用于测绘、电信、水利、渔业、交通运输、森林防火、减灾救灾和公共安全等诸多领域,产
15、生显著的经济效益和社会效益。特别是在2008年北京奥运会、汶川抗震救灾中发挥了重要作用。为更好地服务于国家建设与发展,满足全球应用需求,我国启动实施了北斗卫星导航系统建设。全国政协副主席、中国科学技术部部长万钢日前透露,2013年将中国在东盟各国合作建设北斗系统地面站网。而根据中国卫星导航定位协会最新预测数据,到2015年,我国卫星导航与位置服务产业产值将超过2250亿元,至2020年则将超过4000亿元。鉴于上述卫星定位导航系统的日趋成熟和收集信息的情况,该系统充分综合应用了SSh架构、Mysql、Html5、JSP等技术,真正完好地达到服务于交通的计划。2理论技术基础2.1开发语言综述本系
16、统是基于面向对象思想的JAVA语言中J2EE平台进行编写,J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。J2EE组件和“标准的” Java类的不同点在于:它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理。J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages (JSP) 是运
17、行在服务器端的Web组件;Enterprise Java Bean (E JB )组件是运行在服务器端的业务组件。J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:1. 保留现存的IT资产:由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS,IBM Encina,、Inprise VisiBroker 以及Netscape App
18、lication Server。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的企业计算领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。2. 高效的开发:J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务:o 状态管理服务 - 让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开
19、发。o 持续性服务 - 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。o 分布式共享数据对象CACHE服务 - 让开发人员编制高性能的系统,极大提高整体部署的伸缩性。3. 支持异构环境:J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。4.
20、 可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。5.稳定的可用性:一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可
21、能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择鲁棒性更好的操作系统如Sun Solaris、IBM OS/390。鲁棒性最好的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。2.2MySQL数据库MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,对于一般中
22、小型,甚至大型应用都能够胜任2.3JBossJBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它,而不用支付费用。除此之外,JBoss需要的内存和硬盘空间比较小,支持集群。2.4SSH框架集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Sprin
23、g做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将Action
24、Servlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且
25、由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。3.系统的分析与设计3.1系统开发运行环境鉴于系统的开发语言和数据库,采用如下的开发环境系统模式:B/S开发环境: Windows 2000NT JDK1.6WEB 服务器:Jboss硬件实现: Pentium2.4G 1G内存 80G硬盘开发语言: Java数 据 库: MySQL开发工具: MyEclipse10 框架:Struts2+Hibernate+Spring预期成果: 一个可扩展的基于MVC模式的实时路况系统3.2需求分析3.2.1可行性分析在有限的时间中,完成高品质的系统,不得不提前考虑该系统的可行性。可行性的
26、分析包括:经济可行性、技术可行性、操作可行性等等。(1)经济可行性:本系统采用B/S系统模式,采用开源的服务器和数据库,节约一定的财务支出,当系统建成之后,可以实现资源共享,节约用户的出行时间,还带来了经济效益,从经济上说是可行的。(2) 技术可行性我们已经系统的学习了mysql,java,web系统开发课程,并且已经深入学习了HTML5,CSS3,js,SSH框架,ajax等相关技术,为项目的完成提供了技术保障。(3) 操作可行性本系统逻辑结构清晰,操作简单,易于理解,只需通过简单指导,系统管理员、以及普通用户均能进行操作,操作可行性是完全可行的。综上所述:该实时路况系统效率高,成本低,出错
27、率低,使用户的使用,总体上来说是完全可行的。3.2.2系统功能分析该实时路况系统实现以下管理功能:用户管理,路况查询,路况维护,监控维护,基础设置等。用户管理模块:该模块的主要功能是实现对用户的管理工作,包括用户的注册,登陆以及用户的修改删除功能。用户在注册时,利用ajax实现了在本页面内的刷新,来判断用户是否已经存在,并用session保存用户的信息。路况查询模块:该模块的主要是利用百度地图API完成用户可以定位具体的位置,查询起始点到终止点的路线方案,以及放大缩小地图。路况维护模块:该模块主要功能是利用SSH完成路况信息的添加,路况的搜索,以及对路况的修改和删除操作还有定位等功能。监控维护
28、模块:该模块的主要功能是利用SSH实现视频的上传,监控的搜索,以及对监控的修改和删除功能,这个模块将具体位置的视频录像清晰的展示给用户,使得用户准确的了解路况情况。基础设置模块:该模块的主要功能是利用SSH实现图标的上传,对图标的列表显示,以及图标的修改和删除等功能。3.3总体设计3.3.1逻辑结构设计该系统拥有管理员和普通用,逻辑结构如图3-1所示。登陆主页管理员普通用户用户管理路况查询监控维护路况维护基础设置路况查询监控搜索图3-1系统角色权限图3.3.2路况维护流程图添加后的页面更新后的页面显示以输入位置为中心的地图删除更改路况搜索路况添加显示中心位置路况维护界面开始进入路况维护界面选择
29、路况搜索页面路况添加页面弹出输入信息框在输入框中输入中心位置的地址在复选框中选择要显示的路况,点击显示输入相关的路况信息,点击确定选择要查询的路况搜索在页面中显示搜索的相关信息显示添加跳转页面选择路况更改页面更改相关的路况信息,点击确定地图中显示相关路况信息 图3-2.路况维护流程图3.3.3监控维护流程监控添加添加后的页面更新后的页面显示以输入位置为中心的地图删除更改监控搜索显示中心位置监控维护界面开始进入监控维护界面选择监控搜索页面监控添加页面弹出输入信息框在输入框中输入中心位置的地址输入相关的监控信息,点击确定输入要查询监控搜索在页面中显示搜索的相关信息显示添加跳转页面选择监控更改页面更
30、改相关的监控信息,点击确定图3-3.监控流程图3.3.4.基础设置流程显示更新后的页面删除更改基础设置界面开始进入路况类型维护界面选择在填写相应的路况类型信息,点击添加路况类型更改页面更改相关的路况类型信息,点击确定图3-4.基础设置流程图3.4系统详细设计3.4.1系统E-R图该实时路况系统中的管理员模块涉及到4个数据表路况类型:编号,类型名称、显示图标路况信息:编号,路况类型,发生时间、预计结束时间、地点、经度,纬度、路况描述、状态 监控信息:编号、名称、经度,纬度、视频信息用户信息:编号、用户名、密码、角色类型系统各实体ER图以及实体之间的联系如下:(1)用户ER图用户姓名密码 编号 角
31、色ID图3-5.用户实体ER图(2)路况类型ER图 路况类型 编号 路况类型 显示图标图3-6. 路况类型ER图(3)路况信息ER图 路况信息 编号 路况类型 发生时间 地点 预计结束时间 经度 纬度 路况描述 状态图3-7 .路况信息ER图(4)监控信息ER图 监控信息 经度 名称 编号 纬度 视频信息图3-8. 监控信息ER图3.4.2数据字典本系统采用的后台数据库是Mysql数据库系统,本数据库包含四张表。各表结构分别如以下列表所示。(1) 路况类型表(tb_eventtype)表3-1. 路况类型表序号字段名称字段说明字段类型宽度允许空主键备注1id类型编号int 10是自增12nam
32、e类型名称varchar203icon显示图标varchar50(2)路况信息表(tb_event)表3-2.路况信息表序号字段名称字段说明字段类型宽度允许空主键备注1id路况编号int10是自增12typeId路况类型int103start发生时间timestamp04end预计结束时间timestamp05address地点varchar1006Lng经度double07lat纬度double08description路况描述varchar2009status状态varchar2(3)监控信息表(tb_monitor)表3-3. 监控信息表序号字段名称字段说明字段类型宽度允许空主键备注1i
33、d监控编号int 10是自增12name监控名称varchar303video视频信息varchar504lng经度double5lat纬度double(3)用户表(tb_user)表3-4.用户表序号字段名称字段说明字段类型宽度允许空主键备注1id类型编号int 11是自增12name类型名称varchar503password显示图标varchar504role角色tinyint23.4.3各模块顺序图(1)路况维护:管理员:浏览器端:服务器端:数据库显示路况选择要显示的路况数据查找返回数据显示路况信息添加路况填入路况信息数据提交数据库显示添加后结果搜索路况更改路况删除路况选择或填入要查询
34、的路况信息数据查找返回数据以列表形式显示路况删除数据命令删除数据显示删除后结果更改数据命令更改数据返回路况数据显示更改后的结果返回路况数据更改中心坐标添加中心坐标地址显示地图返回路况数据(2)监控维护:管理员:浏览器端:服务器端:数据库添加监控填入监控信息数据提交数据库显示添加后的结果搜索监控更改监控删除监控填入要查询的监控地址信息数据查找返回数据以列表形式显示监控删除数据命令删除数据显示删除后结果更改数据命令更改数据返回监控数据显示更改后的结果返回监控数据更改中心坐标添加中心坐标地址显示地图返回监控数据 (4)基础设置:管理员:浏览器端:服务器端:数据库添加路况类型填入路况类型信息数据提交数
35、据库显示添加后的结果删除路况类型删除数据命令删除数据显示删除后结果返回监控数据更改路况类型返回路况类型数据更改数据命令更改数据返回路况类型数据显示更改后的结果4系统的实现4.1目录结构4.2框架配置文件4.2.1Struts的配置文件Struts.xml(1)头部配置文件(2)action配置image/pjpeg,image/bmp,image/jpg,image/png,image/gif,image/jpeg uploadtypelist.action/admin/typeMaintenance.jsp/admin/updateType.jsp/admin/typeError.jspvi
36、deo/x-flv,audio/mpeg,video/mp4,application/ogg upload/admin/searchMonitor.jsp monitorssearch.action/admin/monitorError.jsp/admin/updateMonitor.jsp/admin/searchRoad.jsproadlist.action/admin/roadError.jsp/admin/addRoad.jsp/admin/updateRoad.jsp上面的action中的name对应前台传递的名称,class对应spring配置文件中的定义的类名。Result表示后台执行完后,需要跳转到哪个页面。4.2.2Spring+Hibernate的配置文件(1)头部配置文件(2)配置数据库(3)配置数据源,hibernate属性设置org.hibernate.dialect.MySQLDialectcom/tmc/dao/TbEvent.hbm.xmlcom/tmc/dao/TbEventtype.hbm.xmlcom/tmc/dao/TbMonitor.hbm.xmlcom/tmc/dao/TbUser.hbm.xml(4)DAO依赖注入prope