1. 网站地图
  2. 设为首页
  3. 关于我们


基于物联网技术的排水管网信息管理系统

发布时间:2023-01-03 13:34
目 录
第1章绪论 1
1.1研究背景与课题来源 1
1.2研究意义 2
1.3国内外研究现状 2
1.4论文组织结构安排和章节内容介绍   4
第2章 系统总体设计 6
2.1系统需求分析 6
2.2系统总体方案设计 7
2.3管网数据釆集方案设计   8
2.4与GIS和下穿隧道积水模拟系统的接口设计 10
2.4.1与下穿隧道积水模拟系统的交互 10
2.4.2与管网GI.S平台的交互 11
2.5本章小结 12
第3章系统技术方案分析     13
3.1系统的开发环境搭建 14
3.2架构分析 15
3.3Oracle 数据库的远程访问 20
3.3.1Oracle 数据库 20
3.3.2JPA 21
3.4Java消息通讯 23
3.4.1JMS 规范 23
3.4.2Active MQ : 24
3.4.3Apache Camel 25
3.5本章小结 26
第4章 数据库设计 27
4.1数据库表结构设计 27
4.1.1监测站点相关表结构 27
4.1.2监测数据相关表结构 28
4.1.3监测因子相关表结构 29
4.1.4权限管理模块相关表设计 30
4.1.5日志和留言库相关表设计 30
4.1.6接警管理相关表结构 31
4.2本章小结 32
第5章 系统实现 33
5.1信息集成平台 33
5.2报警服务集成平台 34
5.3管网信息管理系统   35
5.3.1框架整合   35
5.3.2core 包设计 37
5.3.3entity 包设计 40
5.3.4dao 包设计 40
5.3.5service 包设计 41
5.3.6web 包设计 44
5.4本章小结 48
第6章 管网信息管理系统主要功能验证 49
6.1站点地图 49
6.2实时监测   50
6.3数据管理 50
6.3.1实时数据 50
6.3.2原始数据   51
6.3.3逐条审核 51
6.4接警管理 52
6.5数据报表 53
6.6数据分析   53
6.7报警管理 54
6.7.1报警参数 54
6.7.2羊市街下穿模拟 55
6.8系统管理 56
6.9本章小结 57
总结及工作展望 58
致 谢 59
参考文献 60
攻读硕士学位期间发表的论文及科研成果 63
附录 64
第1章绪论
1.1研究背景与课题来源
随着科技的进步和时代的发展,我国城市化进程的不断加快,城市排水管网建设也 有了较大的发展,但是随着而来的排水管网的管理问题也日渐增多,尤其近年来暴雨 频发,我国已有连续多个城市出现内涝的问题,这对城市排水管网的升级改造、防汛 应急抢险、日常养护维修管理提出了更为迫切的信息化管理要求。目前我国的城市排 水管网信息化建设所面临的主要难点有以下几点:
1) 缺乏完善的相关法律法规和技术标准
我国对于城市排水管网的信息化建设起步较晚,缺乏相应的建设规范和技术标准, 国内一些城市已在这方面有了积极的探索,但是综合来讲,各个城市对于排水管网信 息化建设发展水平不一,技术标准也存在较大差异[1]。
2) 排水管网相关数据图纸等信息不全
国内各个城市排水管网相关管理部门标准不一,对于管网数据存储方式也多种多 样,且由于我国的城市排水管网建设起步较晚,有些地方还在沿用早期修建的排水系 统,许多设计图纸和资料数据都已经遗失,而许多城市对于排水管网采取“重建设轻 管理”态度[2〕,导致相关排水管网数据的不完整,这使得后期的排水管网的改造规划有 诸多不便。
3) 缺乏全面的系统的排水管网信息系统
我国目前尚没有形成全国性的跨区域的大规模排水管网信息系统,仅有部分城市对 排水管网信息化建设进行了一些探索实验,他们吸收国外先进技术给排水管网配置了 基于GIS(Geographic information system)的信息管理系统,这种方式往往只能展示排水 管网的物理地理特征,不具备分析预警功能,所以不能实现智能化排水管网管理⑶。
4) 缺乏对管网科学合理的养护政策
城市管网的养护是目前排水设施管理部门较为头痛的问题,由于缺乏合理的监测手 段和评估手段,难以制定出科学合理又高效的管网养护政策,养护效果也无从判别。
5) 缺乏有效的管网状态评估和运行监测手段
由于缺乏有效的监测手段,排水管网运行状况不能及时掌握,导致部分管网甚至带 压运行,为城市安全埋下了隐忧。总之现有管理水平和效率难以适应城市高节奏、高 品质的发展要求[勺。
为了解决排水管网管理过程中的各项问题,实现对排水管网系统信息化建设,本文 设计了一种基于物联网技术的排水管网信息管理系统,该系统可以实现全面监控管网 运行状态,同时还可和目前国内应用较多的管网GIS平台无缝衔接,实现为GIS平台 推送报警数据,全方位掌握管网动态,系统的另一创新点是结合了 SWMM(Storm water management model)暴雨洪水管理模型和3D仿真技术,可以多角度、跨时空地动态模 拟暴雨时下穿隧道内积水情况,实现了雨洪预警功能。
本文课题来源于成都市排水设施管理处的中心城区排水管网数字化管理系统建设 项目,结合成都市排水设施管理处的需求,采集成都中心城区内51个指定点位的管网 数据,并将数据实时动态展示,同时系统实现了与排水处已有的管网GIS平台以及下 穿隧道积水模拟系统整合,为成都市排水设施管理处提供了一套较为完整的管网管控 平台。
1.2研究意义
本文设计的排水管网信息系统是数字化管网建设中重要的一环,通过本系统可以实 现对管网运行状态的在线分析,以及如下方面的提高:
1) 系统充分利用高效远程的自动化监测手段代替低效的人工监测手段,实现了对于 排水管内部数据信息的远程化和自动化监测,节约了人工成本,提高工作效率。
2) 通过本系统可以管理和评估排水管网设施的规划、设计和建设,通过系统可以分 析可以得出各个监测站点水力负荷,实现对管网过水能力的评估。
3) 通过建设在线监测系统,提升了排水管网事故预警能力,提升了应对管道破裂和 防汛抢险等危机事件的应急能力,提高项目建设单位的排水防汛服务质量和管理水平。
4) 通过连续的管网数据监测,收集了第一手的完整的管网水位、流量、雨量信息。 这些信息可以对排水管网设施的规划、设计、建设及工程验收形成管理和评估支撑, 可用以提高管网养护方案制定的科学化和系统化水平。
5) 实现与结合了 SWMM暴雨洪水管理模型和3D仿真技术的下穿隧道积水模拟系 统的交互,可以多角度、跨时空的动态模拟暴雨时下穿隧道内积水情况,实现了雨洪 预警功能。
6) 系统还可和目前国内应用较多的管网GIS平台集成,以可视方式能生动呈现出管 网分布情况,并能根据实时监测数据对管网水位和流速情况进行预警和报警,全方位 地掌握管网动态。
7) 实现管网数据信息的全面共享。
1.3国内外研究现状
改革开放以来,我国城市排水管网建设取得了较大发展,尤其以东南沿海地区发展 迅速,新建了许多排水管网,但是我国的城市排水管网建设仍然与国外发达国家存在 巨大差距,截止2010年底,我国城市排水管道总长度达到37万km,城市排水管道密 度为9.0km/km2,按照2010年我国城市化率46.6%的水平,经计算城镇人均排水管长 度仅0.57mW 0近年来城市内涝问题频发,给国民经济和人民生命财产安全造成巨大 损失,因此迫切需要科学合理地建设信息化的城市排水管网系统,实现对排水管网管 理监测。结合GIS技术、专业管网模型技术和物联网技术是目前排水管网信息管理系 统的建设发展趋势。
发达国家都非常重视对于排水管网的管理监测。美、日、西欧等国都有较为完善的 城市排水管网监测管理系统。国外的管网管理系统对于GIS技术和管网模型技术及其 他信息技术的应用都较为成熟。
1)GIS技术在排水管网监测中的应用
GIS技术在排水管网监测中的应用较为成熟,美国的ArcGIS是其中比较典型的代 表,它由Esri(Environment System Research Institute)公司研发,具有强大的地图制作、 空间数据管理、空间分析、空间信息整合、发布与共享的能力。该软件可以较好的应 用在城市管网管理中,实现对管网的监控管理[5 6 7]。
我国近年来也在大力推动管网数字化建设工程,推广GIS技术,经过不断努力,我 国目前已有多个城市的排水管网管理部门部署了管网GIS平台,如广州市的地下管线 信息系统,它以GIS系统为核心,可以辅助地下管线规划设计;天津市建设了基于 CityStar排水信息管理系统,该系统可以动态显示管道水流状态,监控水泵工作情况; 上海市也建设了上海市城市地理信息系统基础数据平台冈用来管理市政建设工作。
基于GIS技术的管网管理系统有着强大的空间分析能力,能够结合空间数据库对地 下管网进行分析,但是GIS平台对管网液位、流量等数据处理能力较弱,无法实现对 管网的全面的智能化管理。
2)管网模型在排水管网监测中的应用
国外对于将管网模型应用在排水管网管理中有着较多经验,以SWMM模型为例, 早在1971年,美国环保总署支持多家公司联合开发了 SWMM暴雨洪水管理模型,该模 型可以模拟降雨时的暴雨径流,分析管网排水情况。20世纪90年代,将GIS技术与排 水管网模型集成的技术成为研究热点,SWMM模型也得到进一步优化升级。目前在北 美地区的排水系统建设中,SWMM已经得到广泛应用。
我国关于SWMM模型方面的研究,起步较晚,但是经过吸收总结国外相关经验也 有了一些成果。2006年,任伯帜采用SWMM对长沙市霞凝港区三场降雨径流过程进 行模拟,证明该模型在港区小流域雨洪分析中有较高精度% 2008年赵冬泉等基于GIS 对SWMM城市排水管网模型进行快速构建,并在澳门某小区进行了应用案例分析[叫 2009年,陈鑫等对郑州市区184.85hm2区域应用SWMM模型,对城市排涝和排水体系 重现期衔接关系进行研究
3)物联网技术在排水管网监测的应用
将物联网技术应用在排水管网监测是目前较为热门的研究方向,国外对于这方面的 研究成果主要体现在物联网底层的传感器上面,如英国豪迈公司非接触式的超声波液 位传感器,美国HACH的流量传感器等,国内对应用在管网监测的传感器的研究目前 尚不成熟,因此在这方面主要采用国外传感器技术。我国结合国外传感器将物联网技 术应用在排水管网监测中已有了一些试点,如无锡市的基于物联网技术的智慧排水系 统⑴〕。
随着近年来模型技术、GIS技术以及物联网技术等的发展,将管网模型和GIS以及 物联网技术整合在一起的应用是目前比较新的信息化管网建设方向。我国清华城市规 划设计院在这方面也有了较成功的成果,他们开发了(Digital Water DS)数字排水平台, 该平台结合物联网技术,将GIS技术与管网模型进行了较好的集成,可以实现对城市 排水管网资产管理网络拓扑结构分析查询、管网水力分析等功能[⑵。
2013年,住房和城乡建设部提出了全面物联的“智慧城市”概念,将北京、南京、 成都等多个城市作为试点,在“智慧城市”的概念中建设地下管网监测系统和构建城 市公共基础数据库都是很重要的一环。而随着我国“智慧城市”概念的推广和普及, 将物联网技术与GIS技术和SWMM模型等水动力模型相结合将会成为智慧管网建设 的新趋势。
1.4论文组织结构安排和章节内容介绍
本文主要内容安排如下:
第一章,主要介绍本文的研究背景及目的意义,以及排水管网监测技术的国内外研 究状况分析,最后总结了论文的结构安排和章节内容介绍。
第二章,主要介绍系统总体设计,分析了系统的需求和设计要求,得出了系统的总 体设计架构。
第三章,介绍本文系统的开发框架及相关技术,分析了系统开发环境的搭建,系统 的架构分析,Oracle数据库远程访问技术以及Java消息通讯技术等。
第四章,根据系统要求设计了系统数据库库表结构。
第五章,详细介绍系统的详细实现,包括信息集成平台、报警服务集成平台以及管 网信息管理系统的设计。
第六章,是对排水管网信息管理系统具体功能的验证,如站点地图、数据查询、数 据分析、系统管理等功能。
第2章系统总体设计
为了解决我国排水管网管理中出现的问题,需要建立一套数字化的排水管网信息管 理系统。本文设计的基于物联网技术的排水管网信息管理系统,不仅能够实现对管网 内数据的采集和分析,同时还提供了与管网已有GIS平台的接口,能够将管网内部报 警信息通过GIS平台展示,且系统与结合了 3D模拟技术和SWMM模型技术的下穿隧 道积水模拟系统实现了集成,能够对下穿隧道遇暴雨时的积水场景模拟和预警。下面 将详细给出系统方案设计的过程。
2.1系统需求分析
成都排水设施管理处对排水管网信息管理系统的建设要求主要有以下几点:
1) 系统需采集在成都中心城区51个不同点位的液位、流量、流速、雨量等管网信 息,并实现信息数据的动态更新显示。
2) 系统实现监测数据管理、报表统计、数据分析、应急决策支持等功能,并能通过 与集合了 3D技术和SWMM技术的下穿隧道积水模拟系统的集成,实现对羊市街下穿 隧道暴雨时积水情况的模拟预警。
3) 系统需支持用户自定义的报警规则,如液位、流速、流量等阈值,并能够将报警 数据推送至已有管网GIS平台,同时需具备用户接警管理的功能。
4) 系统功能需通过网页展示,同时要求系统访问便捷、维护方便,需支持多种移动 设备如手机、Ipad等的访问。
 
图2-1管网信息管理系统功能模块图
综合排水管理处对管网信息管理系统的设计需求,系统主要功能分为八大块,分别 为站点地图、实时监测、数据管理、接警管理、数据报表、报警管理、系统管理。系 统主要功能模块图如图2-1所示。
2.2系统总体方案设计
为了实现排水处对于系统各方面的要求,将系统按照功能进行分块设计,整个系统 分为7个部件,其中管网GIS平台和下穿隧道积水模拟系统是需要集成和交互的已有 系统,部件功能描述见下表:
表2-1系统部件表
序号 部件名称 部件功能
1 管网信息管理系统 实现监测数据的综合管理,包括数据存储、查 询、管理、统计分析等
2 信息集成平台 将釆集设备的数据转换成统一的数据格式,并 传送给系统数据库,同时实现与下穿隧道积水 模拟系统的交互
3 报警服务集成平台 从管网信息管理系统中抽取报警数据,并发送 给GIS展示
4 系统数据库 存储管网数据信息
5 管网GIS平台 是需要集成的系统,可展示管网基本信息,并 对报警数据进行展示
6 下穿隧道积水模拟系统 需要集成交互的系统,对羊市街下穿隧道的模 拟结果进行展示
7 通讯服务器 为其他系统提供稳定、可靠的通讯保障
系统各部件关系图如图2-2所示,系统采用基于物联网技术的数据采集方案,各个 传感器通过GPRS模块将管网数据采集传输到系统服务器中,设计信息集成平台可将 数据统一格式,并实现与下穿隧道积水模拟系统的交互,监测系统数据库用来存储由 信息集成平台送来的数据,最后管网信息管理系统将实现对管网数据的分析管理,该 部分是系统的核心部分,用户可以通过浏览器访问这部分系统。设计报警服务集成平 台实现与管网已有的GIS平台交互。
系统的具体的管网数据采集方案设计和接口设计将在下面章节进行具体阐述。
 
 
2.3管网数据采集方案设计
为了监控排水管网运行状态,需要采集管网运行时的各项数据指标,排水管网的主 要数据指标有:水管管径、下水井井深、管道内液位高度、污水管道内流速、污水管 道内流量。同时为了实现系统雨洪预警功能,还需采集雨量数据,建立雨量与管网内 部液位数据关系。
根据上述分析,管网数据指标中的管径和井深数据都可通过物理测量得到,而排水 管网内的液位、流量、流速等指标则是动态变化的,因此这些指标的测量需借助专业 的设备完成。由于排水管道遍布广阔,环境复杂,采取人工测量管网动态的液位、流 量等管网运行数据指标显然是不可行的,而要实现这些信息自动化和智能化的获取, 时下发展较快的物联网技术是不二选择。
物联网是通过信息传感设备,按约定的协议实现人与人、人与物、物与物全面互联 的网络,其主要特征是通过射频识别、传感器等方式获取物理世界的各种信息,结合 互联网、移动通信网等网络进行信息的传送与交互,采用智能计算技术对信息进行分 析处理,从而提高对物质世界的感知能力,实现智能化的决策和控制[旧。
业界中普遍认同将物联网划分为3个层次:应用层、网络层和感知层皿。其中物联 网的感知层主要是基于传感器技术,通过传感器采集信息数据。该层是物联网的最底 层,也是最重要的基础。物联网的网络层主要实现将感知层采集到的信息处理保存并 利用网络通讯设备将其发送至应用层,应用层的功能是将底层采集到的信息进行处理, 最终在应用到人们需要的地方去,应用层是物联网技术的最终目的%⑹。
本文的管网数据采集方案选用物联网实现,底层的感知层是各类水信息传感器,中 间的网络层考虑了地下管网的复杂地理环境,选取GPRS无线传输方案,而最终的应 用层就是本文的排水管网信息管理系统,将采集到的管网数据处理分析,为排水设施 管理处等管理部门提供管网建设的决策依据。
关于各类传感器的选型,需要考虑以下几点:.
管道内污水漂浮物较多,且水下工作环境较差;
城市排水管道变动较多,需易于安装拆卸;
排水管道内部供电较难,设备需采用电池供电;
排水管道对数据传输方式的限制,传输方式需支持无线传输。
由于排水管道的特殊地理环境,使得它必须选择采用电池供电和支持无线传输的传 感器设备,且由于管道污水水质较差容易腐蚀损坏浸没式设备,所以针对管网内液位 的测量,选用基于超声波原理的非浸没式液位传感器是相对理想的方案。本文设计的 基于物联网技术的排水管网信息系统使用的液位传感器为英国豪迈公司超声波液位传 感器SonicSens。该传感器安装便捷,电池寿命较长(约5年),支持无线传输,可以快 速精确的读取管道液位数据。液位传感器安装图如2-3a所示:
 
 
a) b) c)
图2-3传感器安装图
关于流量传感器的选型,综合考虑上述4方面原因,选择美国HACH公司的多普 勒式Sigma940流量计,它利用多普勒杂质反射原理,是专用于下水道的高精度流量传 感器,同时支持有线和无线两种传输方式,而且通过该设备还可同时测量管道的液位 数据和流速数据。流量计安装图如图2-3b所示。
系统采用雨量计采集降雨量数据,雨量计的选择遵循使用寿命较长,安装维护简单, 测量精度较高等原则,综合考虑选择翻斗式雨量计为系统测量雨量。雨量计如图2-3c 所示,将雨量计布设于已安装液位计的雨水管道附近路面。通过对雨量的实时监测, 并结合监测区域雨水管内水位变化进行综合分析,实现地面积水原因的初步判定,为 制定有效应急处置措施提供决策依据。
选定系统的各个传感器类型后,系统采集数据的流程也已经确定,系统采集各个传 感器数据的过程如下;
豪迈液位传感器的数据采集过程:首先使用传感器配套的数据采集程序Radcom配 置站点的信息,将站点对应的电话号码输入到对应的采集程序中。站点设置发送短信 的地址,并设置采样周期。每个站点的3G卡按照采样周期将传感器采集到的数据以 SMS短信的形式发送至服务器上安装的FTP(File Transfer Protocol)服务器,本系统中使 用的FTP服务器为Oceanftp,接着数据采集程序将其解析处理,再通过传感器配套的 数据生成器程序将数据生成统一的txt文本格式,按照站点序号存入如A_0001.txt的 文本文件中,该文件里存储站点序号为01的液位数据。
Sigma940流量传感器的数据釆集过程:首先通过设备配套的采集程序RTU-MSG中 的站点配置功能将站点的名称、电话号码等信息存入程序,设置程序采样周期,站点 设备就会按照周期以短信形式发送站点数据,RTU-MSG程序兼容短信接收和解析功 能,可直接将站点的流量等数据读取存入Microsoft SQL Server数据库。
雨量传感器数据采集过程:雨量传感器使用配套的自动气象站程序采集雨量数据, 并将数据存入Microsoft SQL Server数据库。
综上所述,系统选用物联网技术实现了管网数据的采集,为下一步的排水管网运行 状态分析提供了数据支持。
2.4与GIS和下穿隧道积水模拟系统的接口设计
本文设计的排水管网信息管理系统为管网已有GIS平台和下穿隧道积水模拟系统 提供数据接口,具体设计见图2-2,在系统的信息集成平台中实现对下穿隧道积水模拟 系统的接口,系统与管网GIS平台的通信采用报警服务集成平台和通讯服务器实现。 下文给出具体设计方案。
2.4.1与下穿隧道积水模拟系统的交互
下穿隧道积水模拟系统由下穿隧道3D仿真模型和SWMM暴雨洪水管理模型结合 实现,该系统是以成都市羊市街下穿隧道为原型设计,可以根据羊市街雨量站监测的 雨量数据,结合SWMM模型计算得出下穿隧道积水情况。由于该系统已经开发完成, 所以本文设计的排水管网信息管理系统需提供接口与之集成。本文的接口设计采用 ApacheCamel+ActiveMQ 实现。
该接口的通讯过程如图2-4:
管网信息管理系统将所需的雨量数据从系统数据库中取出,组织成消息队列 CDPS.SIMULATION通过通讯服务器发送到信息集成平台,信息集成平台发送命令启 动SWMM模型计算,并将雨量数据送至模型,模型得出计算结果后由信息集成平台将 结果读取出,并通过Socket将数据广播给处在监听状态的羊市街下穿隧道3D模型展
Zj\o
 
 
图2-4与下穿隧道积水模拟系统的通讯流程
为了高效地在下穿隧道积水模拟系统和排水管网信息系统间传输数据,采用自定义 数据接口,每次交互的数据格式如下:
#年月日时分秒,隧道积水液位,管道积水液位,降雨级别,是否报警%
数据以#为开始符,以%为结束符,中间的有效数据以逗号隔开。其中,降雨强度 分成3级,便于在下穿隧道积水模拟系统下模拟不同的下雨强度;是否报警标志:1 表示要报警,0表示不报警。
数据格式举例如下:
#2012-05-12 17:23:25,2.34,1.23,1,1%
表示羊市街下穿隧道在时间2012-05-12 17:23:25时,隧道积水液位2.34米,管道 积水液位为1.23米,此时降雨强度1,要报警。
2.4.2与管网GIS平台的交互
管网GIS平台是排水管网信息系统需要交互的另一个系统,该接口采用 ApacheCamel+ActiveMQ实现,设计接口通讯过程如下:
管网信息管理系统不间断的运行,当监测到有报警数据时,将报警数据按照指定的 格式传输到通讯服务器的消息队列CDPS.WARNING中,管网GIS平台监听该队列, 一旦有数据到达,GIS平台就可收到,并进行及时的响应和展示。
与GIS平台交互的数据结构设计如下:
<?xml version=" 1.0" encoding="UTF-8"?>
〈WARNINGS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.qingqi.com" xsi:schemaLocation="http://www.qingqi.com WSS.xsd">
<!一报警信息l-->
<WARNING SITE="0001" LON="123" MSG="综合报警信息"TIME="2012-05-25 09:01:34">
<ROW FACTOR_ID="DSS_WL" FACTOR_NAME="液位” LEVEL="1" COLOR="OXFFOOOO" VALUE="10" MSG="本因子报警信息"/>
<ROW FACTOR_ID="DSS_VL" FACTOR_NAME="流速"LEVEL="2" COLOR="OXFFOOOO" VALUE="10"/>
<AVARNING>
表示站点编号为0001,站点位置编号为123,报警时间为2012-05-25 09:01:34,报警 的因子为液位因子和流速因子,数值都为10,报警级别分别为1级和2级,报警数据的 颜色为OXFFOOOO红色。
2.5本章小结
本章给出了排水管网信息系统的总体设计,通过对排水管理部门需求分析给岀了管 网信息系统设计方案,包括管网数据采集方案设计,以及与下穿隧道积水模拟系统的 交互方案。最后为了与管网GIS平台集成,给出了系统与管网已有GIS平台的接口设 计。
第3章系统技术方案分析
管网信息管理系统功能如图2-1,该部分为整个系统核心部件,根据排水设施管理 处对系统访问便捷、维护方便的要求,系统需设计为B/S(Browser/Server)模式的Web 项目,B/S模式是一种三层架构的瘦客户机/胖服务器的模式,即第一层的客户层只需 有Web浏览器,其运行代码可以从Web服务器下载至本地浏览器中执行,第二层为应 用服务器层,由一台或多台服务器组成,负责处理所有的业务逻辑,包括对数据库的 访问等工作,第三层为数据库服务器层,主要由数据库系统组成。与传统的C/S (Client/ Server)模式相比,B/S模式取消了对客户端的维护工作,降低了系统运维成本,同时还 具有良好的开放性和可扩充性。
目前较为流行的企业级Web项目开发方式是基于Java EE平台的开发的。这是由于 Java EE平台对Web项目的设计提供了非常全面的支持,并有着良好的框架体系支撑大 型项目的开发,因此本文的管网信息管理系统选择在Java EE平台下进行开发。
Java EE 是 J2EE 的新名称,J2EE 即 Java2 平台企业版(Java 2 Platform Enterprise Edition),它的任务是提供一个平台独立的、便携式、多用户、安全及标准的企业级平 台,服务器端部署用Java技术来完成。JavaEE是一种规范,为软件开发生命周期制定 了许多规则,使得编码标准化,从设计到发布的不同领域,它都制定了不同的规范, 所有这些技术密切相关,可以集成在一起[切。Java EE主要用于创建可扩展的企业应用, 包括多种核心技术规范,这些技术规范为Java应用程序设计提供了良好的服务接口, 使得Java程序设计更加便捷和规范。
在分析了系统的总体设计之后,结合目前流行的Web项目开发方式,给出本文排水 管网信息管理系统的开发环境搭建以及系统选用的相关技术框架分析,具体技术方案 图如图3-1所示,系统采用物联网技术实现排水管网信息数据的采集;通过Apache Camel这一开源框架实现报警服务集成平台和信息集成平台的跨平台跨协议的消息通 信;选择基于JavaEE平台的SSH2(Struts2+Spring3+Hibemate3)架构搭建管网信息管理 系统,系统的Web服务器选择Tomcat这一轻量级服务器;采用稳定性强的Oradellg 数据库为系统存储数据,并通过JPA(Java Persistence API)标准实现数据持久化;同时利 用开源的JMS(Java Message Service)提供者Active MQ实现信息集成平台与数据库之间 的消息通信。下面对系统选用的技术框架进行进一步分析阐述。
 
图3-1系统技术方案
 
3.1系统的开发环境搭建
系统的开发环境搭建主要指对应用程序开发工具、数据库、Web服务器和通讯服务 器的选型,下面分别说明。
1)程序开发工具
目前Java EE平台的Web应用程序开发工具分为两大类:集成开发工具和基于命令 行的开发工具。集成开发工具的开发程序因操作简单、纠错能力强等优点而得到广泛 应用,MyEclipse9.0是一个免费集成开发工具,它提供了通用的Java开发环境,利用 它可以高效的实现数据库和Java EE下应用的开发[切。它功能强大,包括了一整套的程 序代码编码、调试、测试和发布功能,支持HTML、Struts> JSP(Java Server Pages)> CSS(Cascading style sheets)Ajax(Asynchronous Javascript + XML)、JavascriptSpring、 SQL、Hibernate、EJB3(Enterprise JavaBean)、JDBC(Java Data Base Connectivity)数据库 链接工具等多项功能。因此本文的系统开发工具为My Eclipse9.0o
2)数据库选择
关于数据库的选择,由于Oracle两数据库功能强大、性能稳定,具有分布性、逻辑 整体性、分布式计算、透明访问、均衡网络负载和可靠性较高的特性I®〕,因此在企业 级应用中被广泛使用。本文设计的基于物联网技术的排水管网信息管理系统数据量大, 对数据库系统稳定性有着较强要求,因此选用Oraclellg数据库。
3) Web服务器选择
Web服务器是运行及发布Web应用的容器,开发Java Web应用所采用的服务器主 要为与JSP/Servlet兼容的Web服务器,比较常用的有Tomcat、JBoss、WebLogic等。 JBoss服务器是个遵从Java EE规范的、开放源代码的、纯Java的EJB服务器,对于 Java EE有较好的支持。但JBoss不兼容Servlet和JSP^; WebLogic服务器是BEA公 司的产品,WebLogic支持企业级的、多层次的和完全分布式的Web应用,功能全面, 但是该服务器体积较大,而且不开源⑵】;Tomcat服务器目前最为流行的Web服务器, 是Apache-Jarkarta开源项目中的一个子项目,它小型、轻量级且支持JSP和Servlet技 术,因此本文设计的排水管网信息管理系统选择使用Tomcat服务器运行和发布。
本文选择的Tomcat版本为Tomcat7.0版本,是Tomcat6.0.x的改进版,实现了对 Servlet3.0、JSP2.2 和 Web Socketl.O 的支持凹。
4) 通讯服务器选择
市场上目前已有许多JMS消息中间件产品,例如开源的Active MQ[23](Apache), HometQ(JBoss社区研发)以及一些专有的如 Web-Sphere MQ(IBM公司),Java Sun MQ(SUN公司),OpenJMS (The OpenJMS Group)0综合各家产品的性能,考虑选择 Apache公司的Active MQ,它完整实现了 JMS1.1和JavaEE的JMS,兼具了事务、 存储转发、持久化等良好性能。ActiveMQ目前的版本已发展至5.9版本,它的优良 性能得到了众多企业的认可,是目前最流行的企业级消息中间件Bl。因此本文设计的 排水管网信息管理系统采用ActiveMQ来保障消息通讯。
3.2架构分析
Web应用程序开发内容复杂,但是又具有一定的共性,为了提高软件开发效率,就 产生了 “框架”这一概念。框架就是一组协同工作的类,它们构筑了一个可重用的设 计给特定类型的软件。软件的框架是提取了在项目软件开发中特定功能软件的共性而 形成的体系结构,不同领域的软件项目有着不同的框架类型。框架中实现了对软件的 共性部分的提取,所以在采用了框架的软件开发过程中,代码无需从头编写,只需在 框架的基础上,做适当的调整和开发工作即可满足要求。因此提高了软件开发的质量, 降低了开发成本,缩短了开发时间[均。
目前有许多公司组织提供了功能各异的JavaEE平台开源框架,这些框架能够简化 Web开发的工作,如Struts2^ Spring3、Hibemate3等。随着框架技术的不断革新,目 前主流的开发模式是将这些框架结合起来形成一套完整的Web开发架构的开发方式。 本文选用的SSH2架构是将Struts2、Spring3和Hibemate3三个框架整合的Web开发架 构。SSH2架构是目前众多软件企业主流的应用技术,也是Java EE未来发展的趋势西。 图3-2为SSH2架构图。
 
图3-2 SSH2架构图
该架构采用经典的JavaEE三层架构(表现层、业务逻辑层和数据访问层)。其中 Strust2做表现层,实现表现层与业务逻辑层的交互,调用业务逻辑层,并将业务数据 返回给表现层展现。Spnng是框架的核心,它贯穿整个业务逻辑层,实现对表现层、 业务逻辑层、数据访问层的无缝整合。Hibernate作为数据访问层,通过实体关系映射 工具(JPA)将关系型数据库的数据映射成对象,这样就可以采用面向对象方式操作数据 库,数据访问层实现与实体对象的交互。该层封装了数据库的增、删、查、改的操作。 整个SSH2框架与传统的SSH框架相比,实现方式更加简单和便于开发[2讥下面SSH2 架构的各部分框架做详细说明。
一、Struts2 框架
Struts 2是Struts继Struts 1后推出的新一代产品,是将Struts 1和WebWork技术进 行了合并形成的全新的Struts 2框架El。Struts 2与Struts 1的体系结构有着较大差别。 主要表现为Struts 2以WebWork技术为核心,主要利用拦截器的机制来处理用户的请 求,即客户端浏览器发送请求,经过过滤器之后进入Filter Dispatcher, Filter Dispatcher 确定其调用哪个Action,在调用执行Action的前后都需要进过一系列拦截器实现。通 过这样的机制分离了业务逻辑控制器和Servlet API,所以可以将Struts 2理解为 WebWork的更新产品。
Struts2工作流程:
1)客户端向Web容器发起HTTP请求;
2)当Web容器接收到请求后将其传递给一系列的过滤器:包括流程(Action Context Clean Up)过滤器,Other filters(Site Mesh, etc);
3)当请求通过FilterDispatcher核心控制器,它通过调用Action映射器(ActionMapper) 确定请求调用的是哪个Action, Action映射器返回一个收集了 Action详细信息的
ActionMaping 对象;
4)接着FilterDispatcher将控制权给Action代理器(ActionProxy), Action代理器调用 配置管理器(ConfigurationManager),从配置文件中读取配置信息(Struts.xml),通过该配 置文件找到对应的Action处理类,然后创建Actionlnvocation对象;
5)ActionInvocation对象在调用Action之前会依次的调用所用配置拦截器栈 (Interceptor N),将拦截器逐个执行,Action处理完毕后会返回结果字符串, Actioninvocation将负责查找结果字符串对应的(Result),然后执行这个Result , Result 会调用一些模版(JSP)来呈现页面;
6)在Result执行之后,拦截器(Interceptor N)又获得控制权,按照相反的顺序回到最 后的一个拦截器,再回到视图〔2930]。
 
二、Spring 框架
Spring是JavaEE框架的一种,它是一个轻量级的框架,可以不依赖于容器就能运 行。它基于 IoC(Inversion of Control)和 AOP(Aspect Oriented Programming)的思想,能够 整合Java EE的众多框架如Struts> Hibernate> Webwork等。因此许多的Java EE应用, 都会选择使用Spring容器来管理应用中的组件,以降低它们之间的耦合度Pl Spring 主要包括以下七个模块,如图3-4所示:
1)Spring Core Container 核心容器
核心容器提供Spring框架基本功能,BeanFactory是它的主要组件,使用控制反转 (IoC)模式,BeanFactory实现将程序代码与应用程序的配置和依赖性规范的隔离, BeanFactory支持两个对象模型:单态和原型,BeanFactory的概念是Spring作为IoC 容器的基础。IoC使得框架代替应用程序代码实现处理事务的功能,Spring框架中必须 设置的依赖关系是通过JavaBean属性和配置数据来体现的【词。
 
图34 Spring模块图
 
2)Spring context
Spring context是一个配置文件,用来提供上下文信息给Spring框架。Spring context 包括企业服务,如 JNDI(Java Naming and Directory Interface), EJB、电子邮件、校验和 调度功能。
3)SpringAOP
SpringAOP模块通过配置管理特性直接将AOP功能集成到了 Spring框架中,所以 通过Spring框架可以轻松的管理任何支持AOP的对象,Spring AOP模块提供事务管理 服务功能给基于Spring的应用程序中的对象,通过SpringAOP,就可以将声明性事务 管理集成到应用程序中而不依赖EJB组件。
4)Spring DAO
Spring DAO(Data Access Object)提供了 JDBC的抽象层,它可以消除冗长的JDBC 编码,还可以管理不同数据库厂商抛出的异常错误信息,减少了异常代码的编写量。
5)Spring ORM
Spring 框架植入了较多 ORM(Object/Relation Mapping)框架,提供了如 JDO(Java Data Object)>Hibernate和iBatis SQL Map的ORM对象关系工具。他们也同样需要支持DAO 异常层次结构和Spring的通用事务。
6)Spring Web
Spring Web提供了基本的面向Web的综合特性,如Multipart功能。使用Servlet监 听器对上下文Context以及面向Web的Application Context进行初始化。当Spring与 Webwork或Struts 一起使用时,SpringWeb包还可以用来结合双方功能。Spring Web模 块还简化了将请求参数绑定到域对象的工作,以及处理多部分请求的工作。
7)Sprmg MVC
Spring MVC(Model View Controller)可以全功能的构建三层MVC的Web应用程序的 实现。Spring MVC框架通过策略接口成为一种可高度配置的框架,MVC容纳了大量 的视图技术,其中包括JSP、Tiles、iText、Velocity等。
在任何的Java EE服务器中都可以应用Spring框架,Spring框架的大多数功能在不 受管理的环境也适用,Spring的核心理念是支持不绑定到特定Java EE服务的可重用业 务和数据访问对象。因此,对象便可在许多的Java EE环境(EJB或Web)、测试环境、 以及独立应用程序之间重用。
三、Hibernate框架
Hibernate是一个简化数据库操作的第三方开源工具,它实现了 ORM,即在Java对 象与关系数据库之间建立某种映射,这样当具体的操作数据库的对象时,就不需要使 用繁复的SQL数据库操作语句〔河。下图3-5为Hibernate的工作原理。
 
图3-5 Hibernate的原理
Hibernate是一个开源框架,它非常轻量级的封装了 JDBC,使得人们可以很容易地 使用对象的编程思维来操作数据库。在任何JDBC场合Hibernate都可以适用,如Java 的客户端程序,或Servlet、JSP的Web应用。其中最能体现它的特点的是:在应用EJB 的 Java EE 架构中,Hibernate 可以取代 CMP(Container-Managed Persistence),完成数据 持久化的工作oHibernate的核心接口一共有5个,分别是:Configuration、Query、Session、 Transaction和SessionFactory。利用这些接口,使得Hibernate能够存取持久化对象,同 时也可以进行事务控制〔叭Hibernate的流程如图3-6,在程序运行起来之前,Hibernate 会首先读取Hibemate.cfg.xml配置文件以及xxx.hbm.xml映射文件,并将其装载到 Configuration类,通过读取装载的内容Configuration类会产生SessionFactory对象,然 后SessionFactory对象会新建Session对象,在Session中可以对PO进行增删改查等操 作。如果操作出现异常,就会进行回滚,若无异常则会更新数据库[珂。
Hibernate可以全面实现面对对象的思想,使开发过程对象化,取代传统的使用SQL 语句操作数据的以数据库为中心的思想,它具有事务性和持久化对象等优良性能㈢], 另外Hibernate还有移植好、没有侵入性等特点,同时它还提供缓存机制,提供一级缓 存和二级缓存。综上,Hibernate具有良好的性能,所以选择Hibernate作为系统的数据 库访问层。
 
图3-6 Hibernate的流程
 
3.3Oracle数据库的远程访问
3.3.1Oracle 数据库
Oracle数据库是一个功能强大、应用广泛的大型分布式数据库管理系统,具有分布 性、逻辑整体性、分布式计算、透明访问、均衡网络负载和可靠性较高的特性,它对 分布式事务、数据仓库有很强的处理能力,提供了一套有效的机制来保证数据的一致 性、完整性和安全性【"I。
本文设计的排水管网信息管理系统主要采用Oraclellg数据库,由于数据库与系统 安装在不同的服务器中,需要实现数据库远程访问,在此Oracle数据库的访问采用基 于 JPA+Spring+ Hibernate 的方式实现。
在远程访问之前首先需要配置Oracle数据库的Oracle Net Configuration Assistant o Oracle Net Configuration Assistant 是 Oracle Client 中的一个小组件,是配置和管理 Oracle网络环境的_种工具。Oracle Net Configuration Assistant中可以实现对Oracle配 置服务和监听。具体配置Oracle网络服务名过程:首先添加一个Oracle网络服务名orcl, 协议TCP,主机名127.0.0.1,测试连接,输入用户名与密码,连接成功说明网络服务 名配置成功。这一步是对数据库远程访问的基础步骤,在接下来的程序访问数据库时 只需配置数据库所在的服务器IP和端口以及用户名密码等信息就可以实现对数据库的 远程访问。
3.3.2JPA
JPA即Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口, 它介于业务逻辑层的持久化对象与实现数据持久化的Java EE框架之间,如图3-7所示, 它定义一系列的注释。给实体类添加适当的注释可以在程序运行时告诉Hibernate如何 将一个实体类保存到数据库中以及如何将数据以对象的形式从数据库中读取出来[38]。
 
图3-7 JPA在系统架构中作用
JPA1.0 是 JSR-220(JavaSpecificationRequests-220)规范的一部分,在 JSR-220 中规定 实体对象(EntityBean)由 JPA 进行支持。后来,JPA2.0 迁移到 JSR-317(Java Persistence 2.0),已经不局限于EJB3.0,而是作为POJO(Plain Old Java Object)持久化的标准规范, 可以脱离容器独立运行,开发和测试更加方便[39】。
JPA的主要API都定义在javax.persistence包中。具体内容见图3-8, JPA与Hibernate 有许多相通之处,通过表3-1可以很明显的看出来。
 
 
图 3-8 javax.persistence 包的内容
JPA维护一个持久化上下文(Persistence Context),在Persistence Context中维护实体 的生命周期。主要包含三个方面的内容:
1)ORM元数据,JPA支持描述对象关系映射的形式有annotion或xml两种。
2)实体操作API,实现对实体对象的CRUD(Create、Read、Update> Delete)操作。
3)査询语言,制定了面向对象的查询语言JPQL(Java Persistence Query Language)»
表3-1 Hibernate与JPA对应关系表
org.hibemate javax.persistence 说明
cfg. Configuration Persistence 读取配置信息
SessionFactory EntityManagerFactory 用于创建会话/实体管理器的
工厂类
Session EntityManager 提供实体操作API,管理事
务,创建查询
Transaction Entity Transaction 管理事务
Query Query 执行查询
JPA只是规范了 Java持久化的官方标准,JPA并不是一项技术,本身不能完成任 何事情,使用JPA标准具有以下优点。
1)可持久化对象,JPA可以持久化复杂的Java对象,并能够通过JPA专用的查询语 言JPQL实现复杂的数据库查询。JPQL是一种类似于SQL的面向对象的查询语言。
2)规范标准化。JPA是由JCP(Java Community Process)组织发布的,同时它也是Java 组织官方规定的统一 API,目前已有多种框架都支持JPA标准,系统使用JPA时可以 自由选择支持JPA标准的框架,并且这些框架可以自由替换。
3)使用便捷,传统的ORM多使用xml配置文件,而JPA使用注释(Annotation)定义 Java对象与关系数据库之间的映射,因而JPA使用起来比ORM要方便,使用JPA时 可以不用关注底层使用是什么数据库厂商提供的数据库。
4)事务性、大数据量,JPA底层使用关系数据库进行存储,因此它也具备关系数据 库的特点,如事务性,并发访问,数据完整性,大数据量等wo】。
3.4Java消息通讯
本文设计的排水管网信息管理系统采用Java开发,系统的通讯主要为Java消息通 讯,下面分析Java消息通讯的相关技术。
3.4.1 JMS 规范
JMS(Java Messaging Service)是一种Java平台上有关面向消息中间件的技术规范, 它为Java程序提供了一种创建、发送、接收和读取企业级系统消息的一般方法,其目 的是提供给消息系统客户一个固定的接口,而且与底层的消息提供者无关。这样客户 端的应用程序不仅可以在不同的机器和操作系统中移植,而且能在不同的消息系统产 品之间转移⑷]。
JMS应用通常包括:供给者(Provider)、客户(Clients)、消息(Messages)o其中,供给 者(Provider)就是指能够实现JMS接口的消息系统,它还能实现控制管理功能。客户 (Clients)是由用户编写的代码程序,用来生成和消费消息,而消息(Messages)就是用来 通信的信息。
JMS支持两种消息模型:点对点PTP(Peer to peer)也叫队列模型和发布/订阅 (Publish/Subscribe)模型。
PTP模式,此种方式以JMS提供方提供的消息队列Queue为基础,客户端与消息 队列是一一对应的,客户端将消息从自己的消息队列中读取出来,然后发送至接收方 的消息队列中,然后接收方再从消息队列中读取消息,通过消息队列这种机制,使得 接收方和发送方不用直接相连就可以通信,即实现消息的异步传输。消息队列中的消 息只能对应一个消息接收方,而且消息队列会在消息接收方接收消息后才将消息删除。 同时消息接收方和消息发送方二者在时间上并没有严格的顺序要求,若接收方不在运 行状态,发送方还是可以向其消息队列发消息,当接收方开始运行时消息就会被传送 给它。接收方还确认消息的成功处理。该模式示意图如图3-9所示:消息发送方Sender, 发送消息给消息队列Queue,然后消息接收方即Consumer接收消息。
 
 
Pub/Sub模式,在这种模式下一条消息可以被多个订阅方订阅,消息的发布方发送 消息向相应的主题,而这个主题可以支持多个订阅方同时订阅,他们都会收到消息。 这种方式的特点是:一条消息被多个订阅方消费,订阅方和发布方存在时间相关性, 这种模式存在着消息的时间从属性,即一个消息订阅者只能接收到它订阅后该消息源 (主题)所接收到的消息,为了缓解这种时间从属性,JMS API引入了持久式的订阅模式, 使得消息的订阅者可以在关闭后重新建立,而订阅过程则一直存在阿。发布/订阅模式
如3-10图所示,一个主题可以接受多个订阅方订阅,同时它也可以接收多个发布方向 它发送消息。
 
 
3.4.2Active MQ
JMS只是提供了消息的规范和接口,但是并不能实现消息的传递,JMS Provider才 是实现JMS接口的MOM(Message Oriented Middleware),市场上目前已有许多JMS消 息中间件产品,例如开源的Active MQ(Apache), HometQ(JBoss社区研发)以及一些专 有的如 Web-Sphere MQ(IBM 公司),Java Sun MQ(SUN 公司),OpenJMS (The OpenJMS Group) o综合各家产品的性能,考虑选择Apache Active MQ,它完整实现T JMS1.1和 JavaEE的JMS,兼具了事务、存储转发、持久化等良好性能。经过多年的发展,ActiveMQ 目前已经推出了 5.9版本,越来越多的企业认可它的优良性能,甚至直接捆绑在自己产 品中,是目前最流行的企业级消息中间件砂。
木文采用基于JMS Provider的开源Active MQ消息中间件实现数据交换通讯。Active MQ能够保证交换信息的高度安全、可靠,支持消息重发和记录日志,减少编写应用 的复杂度[他。它的主要特性:
1)ActiveMQ提供了多种程序语言接口:诸如Java, C, C++, C#等,同时支持多 种应用协议编写客户端,如 Open Wire, WSNotification, AMQP(Advanced message queuing protocol)o 支持多种网络传送协议,诸如 TCP^ UDP、SSL(Secure Sockets Layer) 等。它还提供了针对目前流行的操作系统的不同版本,如:Linux版本,Unix版本和 Windows 版本。
2)支持JMS1.1和JavaEE规范。可以自动的部署到符合JavaEE规范的服务器上。
3)Active MQ支持Spring框架,可由Spring对其进行配置管理。
4)从设计上支持消息持久化。支持PTP和Pub/Sub两种模式。
5)支持其它应用程序调用自身内嵌的JMS provider[454647]。
由于ActiveMQ具有以上多种优点,所以本文设计的排水管网信息管理系统选用它 做为通讯服务器,本文使用Spring对其进行配置加载,采用PTP的消息传递机制。
3.4.3Apache Camel
为了实现系统的信息集成平台与报警服务平台的跨平台跨协议的消息传递需求,系 统选用了 Apache Camel这一开源框架。
Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和处理 的引擎,提供企业集成模式的Java对象的实现,通过应用程序接口或JavaDSL(domain specific language)来配置路由和处理的规则鯛。Apache Camel使用URI(Unifonn Resource Identifier)来描述系统组件,使得它可以非常方便的与各种传输或消息模块进 行交互,其中包含的模块有:HTTP、ActiveMQ、JMS、JBI(Java Business Integration) 等,这些模块是采用可插拔的方式进行工作的。Camel是一个代码现行的工具,它允 许开发者在无需学习厂商定制和复杂底层技术的情况下进行精密的大规模集成。它分 离了操作逻辑与传递逻辑,可以用做处理来自不同源的事件和信息。Apache Camel的 核心非常小,可以很容易的将其集成到各种Java应用中。
Camel的几个核心元素:
1)endpoint
Camel中的endpoint类似Web服务中的endpoint,指的是某个资源的具体位置□ Camel 使用URI来定位endpointo
2)Component
Component是指Camel的内置组件,Component用以提供对特定协议的资源访问支 持,Camel提供了对多种协议的访问支持,如Active MQ Component就实现了访问以 Active MQ提供的JMS的能力。
3)Routing Language
Camel提供了 3种方式来定义路由:Java语言兼容的DSL;兼容Spring语法的xml 配置文件;ScalaDSLo
本文的路由语言采用Spring的xml实现,endpoint主要指向不同传感器上传的数据 资源位置,以及ActiveMQ的产生消息队列,Component主要提供对FTP、ActiveMQ、 JPA等的支持。
3.5本章小结
本章主要对系统采用的相关技术方案进行说明,介绍了系统开发环境的搭建,包括 对开发工具的选择、数据库的选择、Web服务器的选择、通讯服务器的选择。接着对 系统的SSH2开发架构进行了详细阐述,并介绍了 Oracle数据库远程访问技术,以及 对Java消息通信的相关技术说明。
第4章数据库设计
4.1数据库表结构设计
为满足排水设施管理处对系统大量数据的存储要求,系统需配置专业的数据库服务 器,关于数据库软件的选择,由于Oracle llg数据库软件具有稳定性好和可靠性高等 特点,十分适合用作大型企业数据库。系统数据库基于Oracle llg设计,系统数据库 名为OTC1。
4.1.1数据库表设计过程
设计数据库表过程如图4-1,第一步需要确定字段,主要包括确定关键的列名,及 相应的数据类型和长度等,在这一步中根据了排水管网信息管理系统的数据采集方案 采集到的信息,初步确立系统所需的关键的列名,如数据值和站点值等;接着需要创 建和确定数据类型,本文系统主要设计的数据类型有:字符串型VARCHAR、时间戳 型TIMESTAMP、表示数据的NUMBER和FLOAT型;第三步确定主键,确定各表的 自增主键,如站点ID和数据ID等;第四步制定相关的约束条件,确定哪些列允许空 值,并制定约束条件与列缺省值以保证数据的一致性,最后在确定了各个表的关系后, 创建表包括表的外键等内容。
 
根据排水处对系统的需求,设计数据库主要分为6个模块,包括监测站点相关表、 监测数据相关表、监测因子相关表、权限管理相关表、日志留言相关表、接警管理相 关表。下面分别介绍各个模块相关表结构设计。
 
4.1.2监测站点相关表结构
设计站点表及其相关信息表结构(ER图)如图4-2,与站点相关的表包括站点因子表 WSS_SITE_FACTOR表,站点因子报警信息WSS_SITE_FACTOR_ALERT表,站点图 片 WSS_SITEIMG 表,站点位置 WSS L0CAT10N 表,站点设备 WSS SITE DEVICE
表,站点用户WSS_SITEUSER表以及站点状态WSS_SITE_STATUS表。各个表之间
结构关系如4-2所示,可通过SITEJD和LOCATIONJD查询到站点的各个相关信息。
 
4.1.3监测数据相关表结构
监测数据相关表结构(ER图)如图4-3所示,其中WSS_DATA表存放监测数据的主 要内容,包括它的对应的数据属性表WSS_DATAATT的ID,监测因子,监测数据值以 及有无修改等标识。每条监测数据对应一个主键1D,在查询某个站点某因子某时间的 数据时需要联立WSS_DATAATT表进行查询。之所以不将站点数据时间与站点ID统 一放在WSS_DATA表中的原因是为了实现主表的结构简化,因为同一时间同一个站点 可能会发来多条数据,这样的设计为了避免主表内重复的数据过多;WSS_DATAATT 表主要记录监测数据的监测时间,所属站点,以及审核状态;WSS FACTOR表主要存
放监测因子的信息,监测因子包括液位、流速、以及雨量等;WSS_SITE表是在上文
中已经叙述过,不再赘述。
 
 
 
图4-3监测数据表结构
4.1.4监测因子相关表结构
监测因子相关表包括:监测因子WSS_FACTOR表,监测因子单位WSS_UNIT表, 监测因子类型WSS FACTORTYPE表,监测站点因子表WSS_SITE_FACTOR表,监 测因子WSS_FACTOR表包括的信息有:因子ID、检测因子编号、因子名、因子类型、 精度、测量单位、因子状态。监测因子包括液位、流速、以及雨量等。通过查询 WSS_FACTOR可知当前采集到的数据对应的是哪种因子。监测因子表相关结构(ER图) 设计如图4-4所示。
 
 
 
图4-4监测因子表相关结构
4.1.5权限管理模块相关表设计
设计系统权限管理的相关表结构(ER图)如图4-5,包括WSS_USERROLE用户角色 表,用户表WSS_USER,角色表WSS_ROLE,菜单表WSS_MENU,角色菜单表 WSS_ROLEMENU,通过这样的设计,实现对用户权限的区分管理,用户权限分3档, 最高级的是超级管理员权限,可以管理所有菜单;管理员权限次之,可对系统进行一 般管理;最低的权限为游客权,限可以浏览系统数据。
 
图4-5权限表相关结构
 
4.1.6日志和留言库相关表设计
设计相关日志和留言表是为了监视系统运行状态。日志和留言库表结构(ER图)设计 如图4-6,主要包括:系统日志表WSS_LOG,留言表WSS_MESSAGE,以及 WSS_COMMUNICALLOG数据传输日志表,由于系统日志留言功能需要存储相应的用 户名和站点等信息,所以将USER_ID, SITEJD以及LOCATIONJD设计为各个留言 信息表的外键,系统日志表WSS_LOG包括用户信息,IP信息,时间日期信息,以及 动作描述,区域信息等,通过查询该表可以得知系统运行日志。留言表为 WSS一MESSAGE,用户可以通过系统留言功能编辑留言内容,留言内容将被保存在 WSS_MESSAGE表中。WSS_COMMUNICALLOG数据传输日志表,该表存储了站点 数据传输的日志信息。
 
 
-eS-ID=FATHER_[D
图4・6日志和留言表相关结构
4.1.7接警管理相关表结构
接警管理相关数据库设计(ER图)如图4-7所示,主要包括警报级别ALERT_LEVEL 表,报警类型表ALERT_TYPE,警情接收表ALETRT_RECEIVE,报警站点表 ALERT_SITE。由于系统报警管理功能涉及相关站点及区域信息,所以设置 LOCATION ID以及SITEJD为外键。系统警报级别为六级,从低到高依次为:三级 预警、二级预警、一级预警、三级警报、二级警报、一级警报。接警管理相关数据库 表对应排水管网信息管理系统中的接警管理功能,用以存放接警管理的相关数据信息。 用户可通过接警管理功能新增接警信息,可以输入报警时间、警情类型、级别、区域 和警情内容来发布报警消息。
 
 
图4-7接警处理表相关结构
4.2本章小结
本章主要设计了系统监测数据库的库表结构,包括监测站点相关库表结构设计、监 测数据相关库表结构设计、监测因子相关库表结构设计、权限管理模块、日志和留言 模块以及接警管理模块的相关库表结构说明。这些数据库都对应存放着管网信息管理 系统的各个数据,是系统的基础。
第5章系统实现
本文设计的基于物联网技术的排水管网信息管理系统主要设计实现三部分内容,即 信息集成平台、报警服务集成平台以及管网信息管理系统。信息集成平台负责实现将 采集设备的数据转换成统一的数据格式,并传送给监测系统数据库,同时实现与下穿 隧道积水模拟系统的交互;报警服务集成平台负责从管网信息管理系统中抽取报警数 据,并发送给GIS展示;管网信息管理系统实现监测数据的综合管理,包括数据存储、 查询、管理、统计分析等。下面分别阐述各个部分的设计实现。
5.1信息集成平台
信息集成平台实现将传感器设备采集到的数据转换成统一的数据格式,并传送给系 统数据库,同时信息集成平台还实现了与下穿隧道积水模拟系统的交互。该功能主要 通过Apache Camel实现,信息集成平台采用xml语言配置路由路径。在使用Apache Camel前需要给项目中添加Camel的jar支持包。
以处理Sigma940流量计数据采集过程说明信息集成平台的对传感器数据采集处理 的Camel路由设计,流量计站点数据存储在Microsoft SQL Server数据库的表R0001中。 对应的站点号为0029o设计代码如下: 定义routelD,启动R0001数据检查定时器。
<route id="Timer_R0001" errorHandlerRef="errorLog"> 定义route源。
<from uri="timer://Timer_R0001 ?period=30000" />
route处理过程,dbdataprocess中实现将数据从数据库中取出并转换为xml格式。
<camel:bean ref="dbdataprocess" method="ProcessDb2('R0001','0029')"></camel:bean> 定义route目的地为CDPS.PQUEUE消息队列。
<camel:touri="jms:CDPS.PQUEUE?deliveryPersistent=true"></camel:to>
信息集成平台与下穿隧道积水模拟系统的路由交互设计如图5-1,按照定时器模式 运行,轮询计算当前下穿隧道的积水液位和管道液位,信息集成平台从消息队列 CDPS.SIMULATION中得到雨量数据存储到本地SWMM模型文件下的series.txt中, 然后启动模型计算,最后又将模型计算结果通过调用sessionFilter处理,最终将结果以 TCP socket形式广播到下穿隧道3D模型,通过这样的机制,下穿隧道3D模型就可以 实现对当前隧道积水情况的模拟。
camel- route_s i m .x m l 屈
—…禺洱鬲童錢彖蘇存 —上篦一〉
<rov.r.e 11= H-S£T_SXMZL2r, ezzarH.andlexRef= ftsrrorLagtf>
CfrcTf. ; CDPS. / >
:za ^±=nfHe://C:/sv^files?fileT^>.e=£:s:2:ies. txt,f
< x曲二:二空玄&萨="得到7新'的蒸昱数据 n><; C5iJT£l : 10^> <—启动讣算一〉
vc总汎乞::bs:s.r: ref= rfisod^2Caltr i!ietricd= ^tsrrCsiculsti^n if><.- osf.«:.1 : ?:兰殳::;
<a2JT.SU;g message3 计算魏果z ? ) "3 c:carr.el: 1cg>
* Z v*
-.、. _、•—》3 z
<:-就模型计算结果中读出数据,并发送-->
- <csir;el:
: f ron. ^ri=Hfj.2e;//c:.7f1 ?delsy32-^(500;na 15-e5sispeNs^c-^cut:, txtMx. ; frou;>
: l.c<g金己眈&僅定二"扫捲樸型婪篤裁出文杵©比.tJit m carrel: Lcc>
<car<L21:bea^ reS = ^sss'sionFil ter B method- ngefcDa ta rf></c^r.sl:&ean>
<oa:msmm Biessage= f,S {bodyj n >
< -: rc^e>
图5-1信息集成平台与下穿隧道积水模拟系统的路由交互设计
5.2报警服务集成平台
报警服务集成平台主要实现从管网监测综合管理系统中抽取报警数据,并发送给 GIS展示。该功能主要通过Apache Camel实现,采用xml语言配置路由路径。 通讯服务器AcitveMQ配置如下:
协议:TCP;
IP地址:通过配置文件配置;
端口: 61616;
消息队列:CDPS.WARNING o
报警服务集成平台的部分路由设计代码如图5-2所示。
camel-route.xml
= 启戲芷旳鑒,走霸蒋工祜糕恙蘑惠申詡頁瞽信惠宏注到匸三訥暮扁険了沖芸;::秽…次一>
- <rc'^te Id— rrsendAlertSi telnfoTizser?f e x r □ r Han dl e r Re f =rt error Log' TT>
<frcr. Qzi= ntimer: //sendJ^lertSi t^In.foTi^erPperiod-SQQOQTt /' >
<csrr.e 1.: Loa i^essa$已="启动述点报'警信息发送 "XZc-a.rr.«: 1: 1ca>
<:— >理疵量计的数据库一勢
:bsar: ref- ,fdbd^reprocess ” Bethoc^= ftProaessDbTr></ :
<oar.el: log iaessage= ”笈送.的站点摄警信息:$ {body} ft></ c1:1 og>
: < c^otcs >■
ma
<s2.siple> ${body} == * none1 </
•mn浇2. j A:? x泌aqb "无逖点报警数据发送rVc.air.eL : lc=g>
I
j - <ot;.h.erwxse>
<car.aI: to u.zi= njms: CDPS.更越密Z那G?deliveryPer^istenr-fsIserr></ ce■:m壬 1: t o>
</o*herwise>
l 岌?芒烈U 2. 》
</rcucs>
图5-2报警服务集成平台与管网GIS平台路由设计
5.3管网信息管理系统
管网信息管理系统是系统核心部分,实现监测数据的综合管理,包括具体功能包括 站点地图、实时监测、数据管理、接警管理、数据报表、数据分析、报警管理和系统 管理八大块。管网信息管理系统的是JavaWeb项目。项目实现过程包括对于SSH2框 架整合,以及对各个功能的分层设计,实现操作数据库相关功能的网页设计需要包含 的各个分层设计如图5-3,包括:网页界面设计实现(jsp页面);网页在Struts2中的 Action定义,即用户网页动作的定义;还需要有业务逻辑类的接口定义service.api和业 务逻辑类的接口实现类定义service.impl;以及实体访问类接口定义dao.api层,和实体 访问类的接口实现类定义dao.impl,同时还要有网页对应的实体类的定义。
 
 
5.3.1框架整合
管网信息管理系统采用My eclipse 9.0开发,My eclipse 9.0提供了较全面的框架支 持,可以较好的完成系统框架搭建。本文设计的管网信息管理系统使用SSH2框架, 具体搭建步骤如下:
一、 创建Web项目
在 MyEclipse 中创建 Java Web 工程项目,J2EE Specification Level 选择 Java EE 5.0。 这样创建成功后的项目默认添加了 JRE System Library也就是JDK1.6支持,以及Java EE5.0支持。
二、 添加Struts框架
1)右键点击项目名称,选择MyEclipse->Add Struts Capabilities...给项目工程添加 Struts 支持。
2) 在弹出的对话框中选择Struts版本号为struts2.1, Struts 2 filter name默认为 struts2, Struts2filter的url映射,选择/*。系统会把Struts2框架在 Web.xml中自动添加。
3) 是在项目中添加对Struts2的库支持。选择使用默认值。点击Finish可以看到 MyEclipse为项目添加了 struts.xml的配置文件。
三、 添加项目的JPA(Hiberoate)支持
1) 将需要添加的库添加到项目中,右键点击项目名,Build Path>Config Build Path>Add Extenal JARs 将 Spring, Hibernate, Hibernate 的 JPA 支持包和 Oracle 的数据 库驱动包加入。
2) 在src目录下建立一个名为META-INF的文件夹,在META-INF新建文件为 persistence.xmlo 在 persistence.xml 文件中设置 JPA 的相关参数。persistence.xm 1 代码内 容:
<?xml version=n1.0n encoding="UTF-8n?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www. w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version=n2.0">
<persistence-unit name=:npersistenceUnit" transaction-type=nRESOURCE_LOCALn>
<provider>org.hibemate.ejb.HibematePersistence</provider>
<properties>
<!- JPA的参数信息->
<property name="hibemate.show_sql" value="true" />
<property name=',hibemate.fbrmat_sqr, value=nfalse"></property>
<property name=nhibemate.use_sql_comments" value="false"></property> <property name=:"hibemate.jdbc.fetchsize" value=" 1 OOn></property> <property name=Mhibemate.jdbc.batchsizen value="30"></property> <property name="hibemate.max_fetch_depthM value=n3"></property>
<!— 2级缓存一>
<property name ="hibemate.cache.use_second_level_cache" value =nfalse" /> </properties>
</persistence-unit> </persistence>
四、 添加Spring框架
1) 在Web-INF目录下建立一个名为applicationContext.xm】的文件。在文件 applicationContext.xml 中添加 Spring 的配置说明,并配置 ActiveMQ、Hibernate 和 JPA 的相关内容,配置文件内容见附录。
2) 在Web.xml中添加Spring监听器。
<context-param>
<param-name>contextConfigLocation</parani-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener> <listener-class>org.springframework.Web.context.ContextLoaderListener</listener-class>
</listener>
框架结构整合完毕后需要设计对应的系统功能模块,管网信息管理系统是系统核心 部分,实现监测数据的综合管理,包括具体功能包括站点地图、实时监测、数据管理、 接警管理、数据报表、数据分析、报警管理和系统管理八大块。管网信息管理系统是 JavaWeb项目,项目采取分层的方式开发,系统各个功能模块功能描述见表5-1,可以 看出系统顶级包的按照功能划分为5个部分,分别为核心core包、数据访问dao包、 实体entity包、服务管理service包、网页管理web包。
表5-1系统功能模块的划分描述
模块标识 模块名称 模块功能
core 核心包 实现基本的与系统相关的功能,提供工具类和公用接口
dao 数据访问包 数据访问包,实现数据访问
entity 实体包 将数据库中的对象实体化为开发平台上的类
service 服务管理包 实现业务逻辑的包
web 网页管理包 使用用户界面相关的包
 
5.3.2 core包设计
core包中定义了系统核心类,包括的子包有:dao子包,entity子包,service子包, web子包,exception子包,util子包。下面分别说明。
1)dao子包
dao子包包含系统数据库访问的基类,包括BaseDao.java和BaseDaoImpl.java,其 中 BaseDao.java 中定义 BaseDao 接口:public interface BaseDao<T, PK>。这里的 T, PK 是泛型,T是Dao访问的实体类,PK是Dao访问的entity的主键类,通过泛型,可将 子类的实体主键传入,使得子类也可调用基础Dao的方法,这样提高了程序的可重用 性。BaseDao实现对数据库的数据的存储和删除,以及执行JPQL语句的功能。
2)entity 子包
entity子包包含数据库实体映射的基类及其他实用类。该包主要包含如下内容:
①CustomSequenceGenerator.j ava
CustomSequenceGenerator类主要功能是为了产生数据库实体主键,包括: configure(Type type, Properties params, Dialect dialect) 〃初W台化序歹ll ; generate(Sessionlmplementor session, Object obj)〃获取序歹!J。
此方法生成的数据库主键长度为20位的VARCHAR型,格式为:DSS+yyyymmdd+9 位十进制数,前三位应排水处要求设为DSS,中间8位是年月日,形如20140304代表 生成该主键的日期,后9位十进制数从000000001开始增长,每需要增加一个ID就增 加1。该类类图如图5-4所示:
& Cust OMSequenceGenerat or
◎idL融gth : int = 20 { readonly }
◎: int = 3 { readonly }
檢 sub Syst em : St ring = ***
㉘ configure (type : Type』 params : Proper!ies, dialect : Dialect)
O generat e (session : Sessionlmp1ementorobj : Object, ) : Serializable
图 5-4 CustomSequenceGenerator 类图
②EntityBase.java
EntityBase类主要有两个功能:
getEntity()//得到一个允许冗余的实体;
setEntity(Object entity)//设置一个允许冗余的实体。
该类定义了实体类的基类,是其他实体类的基础,类图如图5・5所示:
卷 瑟xlaUgl皿2IB : long { readonly }
◎ entity : Object
觀 get Entity () : Object
总 setEntity (entity : Object)
图 5-5 EntityBase 类图
③PageEntity.java
该类生成分页的实体对象,主要功能是实现将List记录分页展示,每行展示15条 记录。类图如图5-6所示:
3)exception 子包
exception子包定义了系统的异常处理类,用来处理系统的异常信息;该包主要包含 如下内容:认证异常类 AuthorityFailedException.java;基本异常类 BaseException.java; 登陆失败类 LoginFailedException.java; 允许异'常类 PermissionException.java; JSON(JavaScript Object Notation)异常类 PermissionJsonException.java c 其中 BaseException 类继承于 java.lang.RuntimeException 类,其余的 Exception 类又继承于 BaseException。
超PageEntity
: long { readonly }
获 currentPage : int = 1
尬 totalPage : int = 0
騎 rowPerPage : int = 15
徐 totalRov/Count : long = 0
簸 restDat e : int
遼 listData : List<?>
◎ st art : int = 0
趣 getCurrentPage () : int
渤 setCurrentPage (currentPage : int)
TotalPage () : int
趣 setTotalPage (totalPage : int)
a getRowPerPage () : int
e setRowPerPage (rowPerPage : int)
遂 get Tot alRowCount () : long
e set Tot alRowCount (t ot alRow : long)
G get Re st Date () : int
發 setRestDate (restDate : int)
爲 getListData () : List
趣 setListData (listData : List)
觀 get St art () : int
盪 set St art (st art : irrt)
矗 toString () : String
图 5-6 PageEntity 类图
4)service 子包
service子包包含系统服务类的基类:BaseService.java公共服务层接口方法,即与
BaseDao的相关服务类。
BaseService.java中的主要功能:
getBaseDao()〃获取 baseDAO 方法;
get(PKpk)//根据ID和实体类型从数据库中获取实体对象;
findByPartJpql(Strmg jpqlString)//根据 JPQL 语句查询 List 对象;
find(String jpqlString)〃根据JPQL语句和实体类型查询数据,并返回一个List对象;
findByFullJpql(String jpqlString)//根据 JPQL 语句查询数据,并返回一个 List 对象。
5)util子包
util子包定义了系统中用到的常用方法,多为格式转换函数,该包主要内容如下:
CalendarUtil.java 获得当前日期,年、月、日、周等;
CommonUtil.java 读取子文件,对数据加密,字符转换等功能;
ConverToArray.java——将java中的字符串转换为数组;
ConverToJson.java 彳各 List 转换成 json;
CookieUtils .java cookie 的增加、删除、查询;
CreatRandom.j ava 产生随机数类;
DateTypeConverter.java 日期格式转换;
GenericsUtils .java 泛型工具类;
HandleEmptyUtil.java 该类用于处理空字符串和null;
LogPropertiesReader.java 日 志属性读取;
QLBuilder.java SQL语句的组合生成;
QueryResult.j ava 查询分页结果;
ResourceManager.java 系统运行参数设置;
SiteComparator .java 站点对比排序;
TimestampTypeConverter .java Timestamp 格式转换。
6)web子包
web 子包定义了系统 action 的基类。包含 BaseAction.java 和 WSSAction.javao
在Struts2开发中,除了将请求参数自动设置到Action的字段中,通常也需要在Action 里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http 的请求(HttpServletRequest),响应(HttpServletResponse)操作。所以设计 BaseAction.java 主要实现这些功能。WSSAction类继承于BaseAction,又在其中增加了一些Action基 础的操作,如调用List对象,以及对对象的新建、保存和删除动作。
5.3.3entity 包设计
entity包中定义了数据库实体映射模型,数据库中每个表对应一个实体。与数据库 表结构对应的实体类由MyEclipse的JPA的反向工程功能(JPAReverse Engineering...) 生成。系统生成的实体类列表见表5・2。
表5-2实体类列表
类名 意义 类名 意义 类名 意义
AlertLevel 报警级别 RoleMenu 角色菜单 Data 数据细则
AlertReceive 接收到的报警 信息 Site 站点 Factor 因子
AlertSite 报警的站点 SiteDevice 站点安装的设备 FactorType 因子类型
AlertType 报警类型 SiteFactor 站点因子 Location 地域
Communical 通讯日志 SiteFactorAlert 站点因子的报警 Log 日志
Log 规则
Device 设备 Sitelmg 站点图片 Menu 菜单
 
 
类名 意义 类名 意义 类名 意义
DeviceFactor 设备监测因子 SiteMonitorTy
pe 站点的监测类型 Message 留言
DataAtt 数据属性 SiteStatus 站点的工作状态 Unit 因子单位
SiteUser 站点用户 SiteStatusCode 站点工作状态编
User 用户
TargetType 监测目标类型 Role 角色 UserRole 用户角色
 
5.3.4dao包设计
dao包封装了数据库访问方法,每个dao对应一个实体类,dao包包含api和impl 两个子包,api定义实体访问类接口,impl定义实体访问类接口实现类。以系统数据库 中的数据明细Data表的dao包设计为例介绍Dao层的设计原理。
dao包中有api子包中DataDao.java接口设计部分代码如下:
public List<Data> findDataList(Site site, Factor factor);//定义 Data 实体对象的访问接 口,由站点名和站点因子查询出Data实体所对应的数据,并且将其封装成Data实体对 象,放入List中返回。
public List<Data> findDataByCondition(Site site, Factor factor, Date start,Date end,int status);//定义Data实体对象的访问接口,由站点名、因子、起止时间、站点状态等用户 输入的条件查询Data实体所对应的数据,并且将其封装成实体对象,放入List中返回。
心 DataDaoimpljava '二
 
写. public Lxst<Data> fxndDacaList (Site site. Factor factor) {
5uery query = this
.getEntiryManager()
.c=ea匸eQaezy(
••select d frani Data d xnnex join fetch d.datsAtt as da where 乩&匸口比"+
**. sice=: site and d. £actcr=:factor ozder by da.datetiise ASCM);
query. setParajseter (wsit.c", site);
q^ery.setParaxraeter ("■factor*4, factor);
return query. getResultLxst ();
:
>Override
poblic List<Data> findDataByCondicion (Sice site, Factor factor, Date start
Deve end, int status) {
Q^erv query ■ this.getEntxtyManeger().createQuerv(
"select d fxcng Data d " $ **inner jcin fetch d.detaAt.t as ds " + "where da.sice^xsice and d.factor®:factor n
* wand da .dacetiae x : start and da .dateclEte < : end B
十(scatus == 1 ? **and da .status®!":"”) f "crder by da.datetime ASCB);
quexy.setPara®eter(wsitew, site); query .set-PaxaEieter (factorw, factor);
query .set Parejseter (K sz&zz^, start); query .set Peraiseter (^end", end);
query.setMaxRes'jlcs (200);
List<Deta> list = query.getResultList(); return list;
 
图 5-7 DataDaoImpl.java 设计 对应的dao层中有impl子包中DataDaoImpl.java部分代码设计如图5-7。
本文设计的实体类接口的实现类主要利用JPA的Query实现。通过EntityManager对象 创建Quei了对象来查询所需数据。所使用的查询语言为JPA的JPQL语句。
5.3.5service 包设计
Service层设计实现系统调用的所有服务类,封装了所有业务逻辑组件。根据管网信 息管理系统的功能需求,其子包划分为alertmanagement, maintenance, dataAnalysis, dataAudit, dataQuery, dataService, dataReport, siteMap, utilService。由于篇幅所限, 具体函数实现部分代码见附录。
1)alertmanagement包中负责实现报警管理服务。包括api和impl两个子包,api子包中 存放接口,impl包中存放接口的实现类。分别对应AlertService.java和AlertServicelmpI.j ava。
AlertService.java中定义了接 口 : public interface AlertService{}
AlertServicelmpl.java中通过注入Dao层对象实现对报警级别和报警站点等信息的读 取。
2)maintenance包主要实现系统管理的功能,如菜单管理、角色管理其中主要功能, maintenance包的服务类及其功能说明见表5-3所示。包中的服务类都有对应的接口类 和实现类。
表5-3 maintenance包中主要功能设计
功能说明 maintenance包中的服务类
实现接警管理服务 AlertLevelService、AlertReceiveService、
AlertTypeService
实现设备及因子管理服务 DeviceFactorService、DeviceService、
FactorService > FactorTypeService >
SiteDeviceService
实现区域管理服务 LocationService、LocationTreeModel
实现菜单管理服务 MenuService
实现角色管理服务 RoleMenuService> RoleService>
SecurityService
实现站点报警参数管理服务 SiteFactorAlertService、
SiteFactorConfigService
实现用户管理服务 UserService
 
 
功能说明 maintenance包中的服务类
实现单位管理服务
实现站点信息管理服务 UnitService
SiteService SitelmgService、SiteUserService
SiteStatusCodeService SiteStatusService
实现监测类型管理服务 TargetTypeService
3)dataAnalysis包主要实现数据分析功能。该包包括的服务类及功能说明参见表5-4。 表5-4 dataAnalysis包中主要功能设计
 
功能说明 dataAnalysis中的服务类
基础数据分析功能 环比分析功能 因子K线功能 趋势分析功能 DataAnalysisService
ChainDataContainer DataContainer
KLineDataContainer
TrendDataContainer
4)dataAudit包主要实现数据审核功能:包括实现批量审核服务的BatchAuditService 类以及实现逐条审核功能的OneByOneAuditService类。
5)dataQuery实现数据查询功能服务,该包中的服务类设计及其对应的功能说明见表
5-5 o 表5-5 dataQuery包中主要功能设计
功能说明 dataQuery中的服务类
报警数据查询 AbnonnityQueryService、
AdvancedQueryService、CheckSiteService
数据库表接口访问实现 原始数据查询及导出功能 DataAttService^ DataService RawDataExportExcelService、 RawDataQueryService、 SiteFactorService
历史数据查询及导出功能 HistoricalDataExportExcelService、
HistoricalDataQueryService
日志查询功能 LogQueryService MessageQueryService
CommunicalLogQueryService
6)dataService实现数据服务功能,该包中的服务类设计及其对应的功能说明见表
5-6o其中的SimulatioaDataSender.java实现将模拟的雨量数据发送到SWMM暴雨洪水 管理模型进行计算的功能。
表5-6 dataService包中主要功能设计
功能说明 dataService中的服务类
羊市街下穿隧道积水情况模拟功能
实现实时数据查询功能 SimulationDataSender、
ReceivedDataValidatorlmpl、
PeriodicalDataReceiverService
RealTimeDataService > RealTimeData 和
RealTimeDataContainer
7)dataReport包实现数据报表功能,包括的服务类有:实现将站点监测数据导出为 Excel 表格格式功能的 ReportExportExcelService.java、生成数据报表的 ReportData.java□ 本文设计的数据报表功能主要实现统计一段时间内的站点数据的最大值最小值以及平 均值的功能,具体包括日报表、周报表、月报表、季报表以及年报表功能。
8)siteMap包设计了站点地图功能的相关服务类。站点地图功能利用谷歌地图的支持 包实现,初始地图范围显示为成都市地图。siteMap包中的SiteMapService主要实现在 站点地图中点击对应站点时显示当前站点最新数据及运行情况的功能,该功能通过 getNewDataBySite(Site site)方法实现查询最新该站点最新数据。
9)utilService包中存储设计实现Cookies服务的CookieService类。
Cookies是指在一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或 是从客户端的硬盘读取数据的技术。本文设计的管网信息管理系统使用Cookies技术来 存储用户浏览过的站点信息和站点对应的因子数据,
CookieServicelmpl.java中增加SiteCookie的代码如下,默认Cookies的存储时间为 2周。
public void addSiteCookie(HttpServletResponse response, Site site) {
Cookie cookie = new Cookie(SITE_COOKIE, site.getldQ); cookie.setMaxAge(60 * 60 * 24 * 14);// cookie 保存两周 response.addCookie(cookie);
}
5.3.6web包设计
web层封装了系统的web访问控制器以及自定义的struts2拦截器和resulto子包有: Action, interceptor, result□由于篇幅所限,具体函数实现部分代码见附录。
一、Action 包
Action 包根据功能划分为 9 个子包,分别为:dataManagement, dataAnalysis, authority, dataAudit, dataQuery, dataReport, main, maintenance, siteMapo Action 包的是网页 jsp 界面的核心控制部分,排水管网信息系统的Action包类主要负责接收网页客户请求, 从中获取数据交给业务逻辑Service层处理,并且返回给客户响应结果,Action包中不 包含任何与业务逻辑有关的代码。下面对Action包的子包功能进行说明。
1 )dataManagement 包包括的主要类是:PipeStatusAction 类和 SiteStatusAction 类, PipeStatusAction对应系统实时监测功能的管网状态监测,PipeStatusAction类采用 get/set List方法获取实体数据,其中还设计了一些jsp页面中实体对象下拉菜单和选择 框列表内容获取的功能。SiteStatusAction对应系统的实时监测功能的站点状态监测, SiteStatusAction主要实现获取页面的区域列表,监测类型,监测对象,以及监测时间 的功能。站点工作状态查询是通过getSiteStatusList功能实现的。
2)dataAnalysis实现数据分析功能模块。数据分析功能包括6个子功能如单站多参,
多站多参,环比分析, 因子K线,分时走势以及趋势分析。该包中的各个功能和对应
的Action类说明见表5-7 o
表 5-7 dataAnalysis 包中 Action 类设计
功能 Action 类
单站多参 MultipleFactorAnalysisAction
多站多参 MultipleSiteAnalysisAction
环比分析 ChainlndexAnalysisAction
因子K线 KLineAnalysisAction
分时走势 RealtimeAnalysisAction
趋势分析 TrendAnalysisAction
3)authority:此包设计用来实现权限管理功能,包含的类是AuthorityAction类,类 图如5-8所示,该类主要实现读取用户权限的功能,可以根据读取的权限确定用户所 能访问的所有站点、所有菜单和所有URL,由此来实现权限控制的功能,另外该类还 包括了登陆和退出系统(Login和Logout)的功能。
4)dataAudit包被设计用来实现系统的数据审核功能,包括实现系统批量审核的 BatchAuditAction类和逐条审核的OneByOneAuditAction类。批量审核功能批量修改对 应站点在指定时间范围内采集的且还未审核的原始数据,可以设定对应数据的最大值 和最小值,对应的超出范围的数据操作有:将监测数据替换、将数据删除以及对数据 加减乘除一个具体数字,确定了操作之后点击批量修改,监测数据就会被修改。逐条 审核功能设计为可单独修改对应监测站点的每一条数据。
 
0 Authority-Action
檢 sit eList : List<Site>
◎menuList : List<Menu> © nienuTree : TreeNode
a siteldList : List<String> 敢 urlList : List<String〉 获 roleList : List<Role>
◎user : User
securityService : Security-Service & menuService : MenuService 瑕 roleService : RoleService
siteService : SiteService 够 execute () : String e- login () : String 觀 logout () : String ㉕ validat eLogin () 逼 getUser () : User & setUser (user : User)
图 5-8 AuthorityAction 类图
5)dataQuery,此包设计用来实现数据查询功能。可以实现对报警数据、原始数据、 实时数据、历史数据、系统日志的相关内容进行查询的功能。该包中的功能和对应 Action类说明见表5-8。
表5-8 dataQuery包中Action类设计
功能 Action 类
报警数据查询 AbnormityAction、AdvancedQueryAction、
AlertDataAction、
留言、日志查询 CommunicalLogAction、MessageActioris
LogAction
历史数据查询 HistoricalDataAction
原始数据查询 RawDataAction
实时数据查询 RealtimeDataAction
6)dataReport:主要对应页面中的数据报表功能。报表功能主要按时间区分,分为日
周、月、季、年报表, 该包中的功能和对应Action类说明见表5-9o
表 5-9 dataReport 包中 Action 类设计
功能 Action 类
日报表 ReportByDayAction
周报表 ReportByWeekAction
月报表 ReportByMonthAction
季报表 ReportBySeasonAction
年报表 ReportByYearAction
7)main:实现主界面的Action,包括MainAction和NavigationAction。对应登陆界
面和系统主界面的控制。MainAction类主要实现系统左侧的站点Tree的获取,
 
NavigationAction类主要实现界面中部导航菜单的获取。
8)maintenance:实现站点、设备、因子、等系统管理功能。该包中的功能和对应
Action类说明见表5-10o
表 5-10 maintenance 包中 Action 类设计
功能 Action类
接警管理 AlertDealAction、AlertReceiveAction、
AlertResultAction SiteFactorAlertAction
站点、设备、因子管理 DeviceActions FactorAction>
FactorTypeAction SiteAction、
SiteDeviceAction、
SiteFactorConfigActionSitelmageAction、
SiteStatusCodeAction
区域管理 LocationAction
菜单管理 MenuAction
角色管理 RoleAction
监测类型管理 TargetTypeAction
因子单位 UnitAction
用户管理 User Action^ PasswordAction
羊市街模拟 Y sjTrdAnalogAction
羊市街仿真 YsjlrdSimulationAction
9)siteMap:实现站点地图的相关功能, 包括的 Action 类为 siteMapAction o
siteMapAction类设计用来获取相关站点的最新数据和最新工作状态。
二、Interceptor 包
Interceptor包中包含授权拦截器authority Interceptor及操作日志记录类 loginterceptor o类图分别如图5-9和5-10所示,以authority Interceptor为例说明拦截器 设计方法,authorityinterceptor 类首先需要 get(USER_SESSION)和 get(OWNED_URLS) 即获取用户名和用户对应的URL链接,如果用户名为null,则抛出 AuthorityFailedException("您没有登录或者会话丢失,请重新登录系统! ”),如果urlList 为null或者urlList.sizeO = 0,则抛出FermissionException("您没有可以查看的菜单!"), 用户名不为空且urlList有内容的话,会对比当前点击的URL是否在该用户允许的权限 范围内,如若不在,抛出PermissionException("您无权查看此菜单!")异常。简而言之, 权限拦截器就是实现了一系列的权限判断工作。
O Authorityinterceptor
◎ ADMIN SESSION : String = admin_sesson { readonly } c- USER SESSION : String = user_session { readonly } 尬 OWNED MENUS : String = owned_menus { readonly } 0 OWED URLS : String = owied_urls { readonly } 絵 OWED SITES : String = ovned_sites { readonly } Q OWNED SITE IDS : String = owned_site_ids { readonly } 获 intercept (invocation : Actionlnvocationj ) : String 霸 coniainsIgnoreCase (stringList : List, s : String, ) : boolean
图 5・9 authority Interceptor 类图
O Loginterceptor
o logQueryService : LogQueryService
Q logPrapertiesReader : LogPropertiesReader
o logPrgerties : Properties
够 init ()
够 do Intercept (invocation : Act ionlnvocat ion, ) : String
图 5-10 loginterceptor 类图
三、Result 包
Result包中包涵JsonResult2类,该类通过重写修改struts2中jsonplugin的方法,实 现异常信息的序列化。该类类图如图5・11所示:当执行Action调用出错时抛岀后台出 错的信息。
0 JsonResult 2
-■ serialVersionUID : long { readonly } 越 execute (invocation : Actionlnvocation)
图 5- 11 JsonResult2 类图
5.4本章小结
本章主要阐述系统的实现过程,包括对于信息集成平台的代码设计说明,报警服务 集成平台的代码实现。同时本章对管网信息管理系统的设计过程进行叙述,包括框架 整合的过程及系统各个核心包如core> entity> dao> service> web结构设计。
第6章 管网信息管理系统主要功能验证
本文设计的管网信息系统的具体功能包括站点地图、实时监测、数据管理、接警管 理、数据报表、数据分析、报警管理和系统管理八大块。下面选取系统部分主要功能 进行验证。
6.1站点地图
验证测试前需启动Tomcat和ActiveMQ服务,在浏览器中输入系统网址,登陆进入 系统,系统主功能界面图如图6-1所示。左侧为站点导航栏,右侧为主功能界面,显 示系统具有站点地图、实时监测、数据管理等八大功能菜单。
 
 
 
图6-1主功能界面
点击左上角的站点地图,站点地图功能要求展示成都市区各个站点在地图上的位 置,在点击站点时需显示站点当前状态。站点地图功能测试界面如图6-2。在地图中点 击天仙桥南街站点,可以看出对应天仙桥南街的站点信息情况。
 
6.2实时监测
系统的实时监测菜单需具备管网状态监测和站点状态监测功能,以管网状态监测功 能为例进行验证说明,管网状态监测功能需显示管网中各个站点在距离当前时刻4个 小时以内的最新的实时数据,如果站点在超过4个小时内都没有收到数据则不在此页 显示,该功能是用来体现管网整体的最新工作状态,同时还要求数据可以根据用户设 定的报警颜色级别区分显示。
点击实时监测,在弹出的下拉菜单中选择管网状态监测,进入管网状态监测界面, 本功能测试结果如图6-3所示,可以看出系统成功的实现了对管网状态的监测。
 
图6-3管网状态监测功能验证
 
6.3数据管理
数据查询主要分为以下六个子模块:实时数据、原始数据、历史数据、报警数据、 逐条审核、批量审核。由于篇幅所限,选取实时数据、原始数据和逐条审核功能进行 验证测试。
6.3.1实时数据
实时数据查询功能主要实现查询当前站点的实时数据的功能,点击数据管理菜单下 的实时数据选项,从左边站点导航栏中选中需要查询的站点,这里选为天仙桥南街站 点,则在右下方的功能区域里就可以看到相应的站点图片和站点当时对应的实时数据。 由于当前站点无实时数据上传,所以没有实时数据,对应的实时数据查询功能测试截 图如图6-4所示。
 
 
6.3.2原始数据
原始数据查询功能需查询当前站点在指定时间内所有数据,点击左侧的站点列表选 择站点,这里选取北郊干管马鞍东路站点,点击数据管理菜单中的原始数据项目,选 择开始时间为2012-11-01 19:51,结束时间为2012-11-01 23:51,点击查询按钮,系统中 需显示这段时间内站点的数据。该功能测试结果如图6-5所示。
 
 
3::小曲淤心:饨 im
於終钞饶 ;.;?
.“熔 iSv
終心谢¥綜儻 >#:•
29红山础2?.於赠 as
溯:2為呦卅斛滋 ;as
JMJ :: .««<
;护
i! »i :杯
細Z心兴舷g *
图6-5原始数据查询功能验证
6.3.3逐条审核
逐条审核功能需根据用户输入的时间范围和审核区域,逐条修改对应站点在该时间 范围内采集的且还未审核的原始数据,对该功能测试验证截图见图6-6,在左侧的站点 导航栏中选择需要审核的站点,这里选择为北郊干管马鞍东路站点,在右侧的功能界 面点击数据管理下的逐条审核菜单项,选择时间为2012-11-01 00:00液位值为1.71米
 
的一条数据进行修改,点击在弹出的对话框中点击修改更新值为1.00输入操作原因, 点击提交,在图6-6中可以看出该条数据已被修改,液位值更新为1.00米。
 
 
 
6.4接警管理
接警管理功能中包括警情列表、警情处理和警情结果三个子功能项目,该功能主要 实现对异常情况的报警和接警功能,是为了方便排水设施管理处人员处理管网险情而 做的设计。其中警情列表功能需实现查询当前时间内的警报情况,同时还可以新增警 报;警情处理功能可以使用户查看当前警情处理的状态;警情结果则应查询到最终警 情处理的结果。
选取警情列表功能进行验证测试,点击接警管理菜单下警情列表,选择新增接警, 如图6-7,在新增接警功能界面中设置警情类型污水井溢流、警情级别为二级、警情区 域为成都市和警情内容等项目,点击保存,如图6-8,在警情列表中就可以看到这条警
报信息。
 
 
 
6.5数据报表
数据报表模块主要分为以下几个子模块:日报表,周报表,月报表,季报表,年报 表。以日报表功能为例进行功能验证,日报表功能需分析当前站点一天内的数据。得 出一天内数据的最大值、最小值、均值,同时对数据和分析结果提供导出功能。图6-9 为日报表功能测试图,通过左侧的站点导航选择北郊干管马鞍东路,点击右侧的数据 报表中的日报表功能项,选择时间为2012-11-01到2012-11-02,可看出该站点的日报 表数据,11月1日的液位数据的最高值为1.6米、最低0.13米、平均值为1.11米。
 
图6-9日报表功能验证
6.6数据分析
数据分析模块主要分为以下几个子模块:单站多参,多站单参,趋势分析,环比分 析,因子K线图。以单站多参功能为例进行功能验证。
单站多参功能需显示一个站点的若干因子在一个时间段内的原始数据的曲线变动 情况,通过该功能可以详细分析、对比具体站点的各因子波动情况。
从左侧的站点列表中选择大天污水厂做测试,图6-10为该站点对应的单站多参功 能图,用鼠标在曲线图中游动,会显示对应时间各因子的相应数据。可以看出在2012 年10月2日6点30分时对应的流量为0.13立方米每秒,液位为6.42米,流速为0.16 米每秒,拖动图表下侧拖动条还可以查看不同时间段情况,拖动条可通过拉动其边缘 改变查看范围,拖动条拖到右侧边缘,可继续加载新数据,查看后续数据情况。
 
图6-10单站多参功能验证
 
6.7报警管理
报警管理功能包括报警参数、羊市街仿真、羊市街模拟三个子菜单功能项,这里选 取报警参数功能和羊市街模拟功能进行功能验证说明。
6.7.1报警参数
报警参数功能设置各站点的数据报警的规则。利用此功能用户可根据对应站点的管 径和排量情况设置站点对应的各个监测因子的报警值,还可设置报警级别,按照报警 级别的严重程度从高到低分为:橙色警报、黄色警报和蓝色警报。
以天仙桥南街站点为例进行功能验证,对站点流量、液位、流速报警配置范围如图 6-11所示。设置天仙桥南街的液位报警范围:0-0.9米不报警,0.9-1.2蓝色警报, 1. 2-2. 0为黄色警报,2. 0-6. 5为橙色警报。
 
 
图6-11报警设置功能验证
6.7.2羊市街下穿模拟
羊市街下穿模拟功能实现将模拟羊市街的降雨情况,同时可以将雨量数据发送至羊 市街下穿隧道积水模拟系统进行3D实景仿真。
该功能对应的测试图如图6-12,首先添加雨量数据,添加2014-04-15 18:53到 2014-04-15 1&58的6条雨量数据,然后点击启动3D模型,将羊市街隧道积水模拟系 统启动,点击3D仿真,数据就会被送至模型,羊市街下穿隧道积水模拟系统图如图 6-13所示,可以看出当前隧道积水为0米。
 
 
 
 
 
图6-12羊市街下穿模拟功能验证
 
6.8系统管理
系统管理功能主要包括以下几个子功能:菜单管理,角色管理,用户管理,因子管 理,站点管理,设备管理,站点因子配置。由于篇幅限制只对站点管理子功能进行验 证说明。
站点管理功能的实现对站点信息的管理功能,还可以新建站点,更新站点信息,包 括对站点因子,站点图片进行编辑,处理,以及删除站点功能。
站点管理功能测试界面如图6-14所示,对天仙桥南街上传站点图片功能进行验证 说明,点击站点管理功能中天仙桥南街站点的操作选项,在弹出的对话窗中点击站点 图片,点击浏览,给天仙桥站点上传一张新的站点图片,图6-15显示了上传站点图片 功能界面。
 
 
 
图6-15上传站点图片功能验证
 
6.9本章小结
本章里主要是对管网信息管理系统的功能验证,验证了系统的8大功能:站点地图、 实时监测、数据管理、接警管理、数据报表、数据分析、报警管理、系统管理。可以 看出本文设计的排水管网信息管理系统较好的实现了系统需求功能。
总结及工作展望
总结:
本文设计的基于物联网技术的排水管网信息管理系统,结合了物联网技术和Java EE平台的网页开发技术、以及数据库访问技术,成功实现了对成都市区51个排水井 站点信息的采集,传输和处理。同时系统采用ApacheCamel框架实现与官网已有GIS 平台和下穿隧道积水模拟系统的交互,通过本系统的建设使得排水设施管理人员能够 全面掌握成都市中心城区排水动态,为排水管网的管理提供决策依据。 .
工作展望:
本文设计的排水管网信息系统目前已处于试运行阶段,在系统试运行期间,发现系 统尚有一些不总有待继续改进和优化。
1) 应进一步提高系统的响应速度,在查询某站点间隔较长时间(如一年)的原始数据 时,返回数据速度较慢(约30s左右),分析原因是由于站点每天的数据量较大(最多时 一个站点一天有144条数据)因此系统数据库数据量较大,检索较慢。改进方法:优化 系统数据库结构和查询方法。
2) 应进一步推广扩建系统,目前系统只针对成都市中心城区51个站点的液位、流 量、流速、雨量数据的采集,可将系统延伸到成都市各个主要排水干管和连接管,并 扩展到次干管,实现对成都市排水系统的全面监测。
3) 应进一步提高系统安全可靠性,目前采用的Tomcat服务器是开源服务器,安全 性较差,下一步拟采用专业的WebLogic等服务器做替换。
4) 在全面获取排水系统结构特征、排水负荷信息基础上,建议进一步展开降雨对排 水系统影响情况等问题的研究分析,从而以发现中心城区排水系统瓶颈,以期对排水 管网的日常养护维修、升级改造、防汛应急抢险等提供科学合理的决策依据。
5) 利用系统采集的真实降雨数据优化基于3D仿真技术和SWMM模型的下穿隧道 积水模拟系统。并将优化后的系统推广至各个下穿隧道等易积水的区域,实现对暴雨 时各个易出现险情地区的积水情况预警。
致谢
时光犹如白驹过隙,一转眼,我的研究生生活即将画上句号,在这三年里,我成长 了许多也收获了许多,但这都离不开周围关心我的人的支持和帮助。
首先我要感谢我的导师苟先太老师,他以他认真严谨的治学态度时刻感染着我。他 为人谦和,当我们遇到困难的时刻,总是耐心的帮助和指导我们。在我做毕业设计的 过程中,他总是在我遇到迷茫和困惑的时候给我启发,让我顺利的完成了毕业论文。
其次我要感谢四川擎旗信息技术有限公司的领导给我提供实习的机会,还要感谢无 私的关心和帮助着我同事们,从他们身上我学到了许多学校学不到的东西。
同时还要感谢实验室的同学和我的朋友们的支持,感谢他们让我的研究生生活有了 多样的色彩。
我还要感谢我的家人,感谢他们给予我的无私的包容和理解。
最后,衷心地感谢各位专家及教授在百忙之中评阅论文和参与答辩。
参考文献
[1]李瑞成,王吉宁.老城区排污管网改造中应注意的几个问题[J].中国给水排水, 200& 24(12): 6-10.
[2]向军.建立城市排水监测/管理网络系统的设想[J].市政技术,2003(3):181-183.
⑶周玉文.城市给水排水管网系统信息化建设面临的挑战与机遇[几给水排水,2009, 34(8): 1-3.
[4]刘昭成,曾凡勇.浅谈国内外城市排水管网现状[DB/OL]. http://blog.sina.com.en/s/b Iog_981414080101a9m7.html
[5]王美秋.排水管网信息管理系统设计[D].同济大学.2007:2-3.
[6]Bart Schultz, Daniele De Wrachien. Irrigation and drainage systems research and development in the 21st century [J]. Irrigation and drainage, 2002, 51(4): 311-327.
[7]Dj okic D, Maidment D. Application of GIS network routines for water flow and transport]J]. Journal of Water Resources Planning and Management, 1993, 119(2): 229-245.
[8]赵新华,李琼.城市排水管网信息GIS管理系统设计[J].中国给水排水,2002, 18⑼: 55-57.
[9]任伯帜,邓仁健,李文健.SWMM模型原理及其在霞凝港区的应用[J].水运工程, 2006 (4): 41-44.
[10]赵冬泉,陈吉宁,佟庆远,等.基于GIS构建SWMM城市排水管网模型[J].中国 给水排水,2008,24(7): 88-91.
[11]陈鑫,邓慧萍,马细霞.基于SWMM的城市排涝与排水体系重现期衔接关系研究 卩].给水排水,2009,35(9): 114-117.
[12]张涛,张行南,张文婷,等.基于SWMM的管网变化对城市水文特征的影响分析 [J].三峡大学学报(自然科学版),2011,2: 6.
[13]薛敏,李大成,沈晓铃.基于物联网技术的智慧排水系统构建[J].中国给水排水, 2012,28(006): 62-64.
[14]吕东芳,宋雷震.物联网在城市泵站排水系统中的应用[J].湖南理工学院学报:自 然科学版,2013, 26(3): 49-52.
[15]董爱军,何施,易明.物联网产业化发展现状与框架体系初探[J].科^^进步与对策, 2011,28(14): 61-65.
[16]王文珍.基于物联网的污水处理智能监控系统[J].化工自动化及仪表,2013, 40(2): 247-249.
[17]Zhang Li, Zhang Wei-Xi. Design and implementation of fixed assets management system based on Java EE[J]. Computer Engineering and Design, 2009, 30(16): 3797-3800.
[18]Sam R.Alapati, Charles Kim. Oracle Database llg[J]. New Features for DBAs a nd Developers. Apress, Berkeley (CA), 2007.
[1刃姚文琳,王存刚,刘世栋,等.基于Oracle的分布式数据库设计与技术[J].计算机 工程,2006,32(20): 89-91.
[20]Javid Jamae, Peter Johnson. JBoss in action: configuring the JBoss application serverfMJ. Manning Publications Co., 2009.
[21]Halpern E, Peddada P5 Revanaru N. System and method for server load balancing and server affinity[P], 2004-2-24.
[22]The Apache Fundation. Apache Tomcat, http://tomcat, apache.org/whichversion.html
[23]The Apache Fundation. Apache ActiveMQ. http://activemq.apache.org/
[24]戴俊,朱晓民.基于ActiveMQ的异步消息总线的设计与实现[几 计算机系统应用, 2010 (8): 254-257.
[25]任冬陕,周元哲.Web开发技术[M]・西安电子科技大学出版社,2009:283-284・
[26]王玲,程耕国.SSH2在设备管理系统中的设计与实现[几信息技术,2011(6): 14-17.
[27]Chxinsheng Zhao, Mai Jiang, Zhiyong He. The design of E-commerce system architecture based on Struts2, Spring and Hibemate[C]//Infbrmation Science and Engineering (ICISE), 2010 2nd International Conference on. IEEE, 2010: 3251-3254.
[28]Su Su Khin. Business Processes Solution with Apache Struts Framework[C]//Co mputer Engineering and Technology, 2009. ICCET09. International Conference on.
IEEE, 2009, 2: 280-282・
[29]Roughley I. Practical Apache Struts2 Web 2.0 Projects[M], Apress, 2007.
[30]Nana Qi, Zhimin Yang. Research of Struts2 framework and web application based on Ajax[C]//IT in Medicine & Education, 2009. ITIME!09. IEEE International Symposium on. IEEE, 2009,1:903-90&
[31]Arthur J, Azadegan S. Spring Framework for rapid open source J2EE Web Application Development: A case study[C]//Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, 2005 and First ACIS International Workshop on Self-Assembling Wireless Networks. SNPD/SAWN 2005. Sixth International Conference on. IEEE, 2005: 90-95・
[32]张俐.基于Spring和Hibernate的JavaEE数据持久层的研究与实现[J]・计算机与
数字王程,2008, 36(9): 183-187.
[33]张剑飞等.Java程序设计教程[M].北京大学出版社,2011.248-261.
[34]O'Neil E J. Object/relational mapping 2008: hibernate and the entity data model (edm)[C]//Proceedings of the 2008 ACM SIGMOD international conference on
Management of data. ACM, 2008: 1351-1356.
[35]Kopteff M. The Usasge and Performance of Object Databases Compared with ORM Tools in a Java Environment[C]//ICOODB. 2008: 199-218.
[36]Ang Gao, Wen-xue Wei. Application of Java data persistence with Hibernate and Struts framework[J]. Computer Applications, 2005, 12.
[37]Gawlick D. Mishra S. Infbnration sharing with the Oracle database[C]//Proceedings of the 2nd international workshop on Distributed event-based systems. ACM, 2003: 1-6.
[38]Bock H. Java persistence api[M]//The Definitive Guide to NetBeans™ Platform 7. Apress, 2011: 315-320.
[39]谭莹宇.基于Hibernate JPA和J Query框架的数据查询研究与实现[J]•计算机与现 代化,2012 (1): 196-3 9 &
[40]冯曼菲等.EJB+JPA数据库持久层开发实践详解[M].电子工业岀版社,2008:8-9
[41]朱方娥,曹宝香.基于JMS的消息队列中间件的研究与实现[J].计算机技术与发 展,2008 (05:173-175.
[42]陈德结.异构数据库系统之间的数据交换[D].上海交通大学.2007:11-16.
[43]罗晓斌,徐浩.基于JMS的异步消息处理技术及应用[J].计算机工程,2002,28(12): 121-122.
[44]戴俊,朱晓民.基于ActiveMQ的异步消息总线的设计与实现[J].计算机系统应用, 2010 (8): 254-257.
[45]李艳春,李新,焦文彬.分布式信息系统中数据交换平台设计与实现[J]•计算机工 程与设计,2012, 33(7): 2640-2645.
[46]Snyder B, Bosnanac D, Davies R. ActiveMQ in actionfM], Maiming, 2011.
[47]Henjes R, Schlosser D, Menth M, et al. Throughput performance of the ActiveMQ JMS Server[C]//Kommunikation in Verteilten Systemen (KiVS). Springer Berlin Heidelberg, 2007:113-124.
[48]滕寿威,王尔琪,黄骞•交通状况信息交换系统研究与实现[J].测绘与空间地理信 息,2013, 1.123-124.
[49]Jewell T K, Adrian D D. SWMM stormwater pollutant washoff functions[J], Journal of the Environmental Engineering Division, 1978, 104(5): 1036-1040.
[50]Temprano J, Arango 6, Cagiao J, et al. Stormwater quality calibration by SWMM: A case study in Northern Spain[J]. water SA, 2007, 32(1): 55-63.
【本文地址:https://www.xueshulunwenwang.com//guanlilei/gongshangguanli/xixinguanli/5923.html

上一篇:基于MBD的集成式CAPP技术研究 与系统开发

下一篇:供应链管理与经营性营运资金管理绩效: 影响机理与实证检验

相关标签: