首页
目录
1 项目背景
目前某地区水库管理方式相对其它地区相比,管理手段还是比较传统,水务管理系统建设迟缓,还未采用目前主流的人工智能监控管理。为解决某地区水库日常管理的痛点,我司响应某水务局的号召,以***水库为试点水库,采用硬件监控 人工智能分析的方式,打造出全天候监控分析水库日常运行情况、利用视频监控分析水库内的人员及水位情况,及时分析出隐患点并发出预警通知,解决了以前监管的漏洞。
1.1 现状分析
1.1.1 存在问题
近年来,随着政策的改变,越来越多的中小型水库开始对外开放,然后带来隐患问题也突显出来,比如有些人员会乘虚而入,在水库进行垂钓和游泳,对自己安全及市民饮用水安全造成了及大的安全隐患。
水库下游就是市区,人口集中密度大,如果水库大坝发生隐患,水库内储存的大量饮用水会瞬间流入市区,给人民群众安全造成及大隐患,但是目前区针对大坝的位移变形的安全监测方式还是采用传统方式,对突发无法监测预判。
针对以上问题,暴露出了随着社会的高速发展给水库传统的监管方式带来的压力和挑战。
1.2 本期项目主要工作内容
根据对任务的理解,项目主要工作内容包括:
(1) 数据采集;
此次水库智慧管理平台试点范围是***水库,收集整理的数据有水库的视频监控的数据,中科的自动监测的水雨情及渗流渗压数据,以及本司自主安装的一些硬件采集的数据。
(2) 数据加工处理;
针对试点水库的各类数据进行处理分析并形成成果文件, 包括硬件设备的数据处理(主要是视频监控的人员入侵及漂浮物监测、大坝位移及安全风险分析),对处理后的结果进行分析风险值,如果达到了风险值后系统会发出预警通知对应负责人进行应急处理。
2 系统架构
2.1 技术架构
水库智慧管理平台主要为某地区水务局等相关管理单位提供水库监控和分析工具。系统由用户层、表现层、应用层、WEB服务器、业务组件层、数据访问层、数据层、存储层等构成。体系架构如图所示。
架构图
其中,左侧所展示的用户层、表现层、应用层、业务应用层、应用支撑层、
数据访问层、数据汇集层、数据存储层具体功能为:
1) 用户层:某地区水务局领导及业务技术人员、监管单位领导及业务技术人员。
2) 表现层:面向系统用户提供 B/S 系统向用户提供服务,通过高清大屏、PC 等展示给用户。
3) 业务应用层:在数据和应用支撑的基础上,为用户提供通知公告、智慧巡查、视频监控、绿化维保、智慧监控、大坝安全监测、调度调令等业务应用功能。
4) 应用支撑层:系统提供信息标识、事务处理、安全服务、图表服务、ArcGIS、二三维一体化、等应用支撑服务;
5) 数据访问层:系统基于 JDBC 实现 Mysql数据库访问。
6) 数据汇集层:实现气象、雨情、水情、大坝变形、大坝位移、渗流、渗压、地图数据及模型基础数据的收集。
7) 数据存储层:采用物理存储管理。
同时结合 MVC 分层框架,将其作为该项目的设计模式进行开发。其中视图层(View),控制器层(Controller),业务逻辑层(Service),数据访问层(Dao)功能为:
1) 视图层(View):使用 vue 技术,使各个功能模块能在页面中显示,通过表现层的高清大屏以及 PC 等展示给用户;
2) 控制器层(Controller):负责具体的业务模块流程的控制,将从视图层传来的请求处理并调用实现各个业务应用的 Service 层接口;
3) 业务逻辑层(Service):负责业务模块的逻辑应用设计,并将各个功能模块进行具体实现,并为上层 Controller 提供接口进行调用;
4) 数据访问层(Dao):使用 Sharding-JDBC、Mybatis、druid等技术为上层 Service 层提供接口,并完成数据访问逻辑以及对数据的访问。
2.2 系统功能组成
系统的功能模块结构图如下图所示:
系统功能结构图
系统总共分为六个功能模块,为通知公告、智慧巡查、视频监控、智慧监控、大坝安全监测、调度指令;PC端在六个页面展示,其主要功能都在主界面实现。
2.3 系统开发技术路线
水库智慧管理平台采用 MVC 应用程序的模式搭建系统,通过该技术架构实现业务逻辑、数据、界面显示分离,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,并于系统的维护和扩展。小型水库智慧管理平台的技术架构包括控制层、业务逻辑层、持久层、数据库等四部分组成。
2.3.1 J2EE 技术路线
作为系统平台的基础,平台必须具有很好的可移植性和可扩充性。为了可移植,平台开发的技术尽可能与操作系统无关。谈到与操作系统无关的开发技术,必然首推 Java。要使系统具有可扩充性就必须采用通用的组件标准。J2EE 是 Sun 公司所颁布的标准,但已广为工业界所接受,J2EE 的出现标志着用 Java 开发企业级应用系统已变得非常简单。
J2EE Java2 平台企业版(Java 2 Platform,Enterprise Edition)。J2EE 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循 J2EE 架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。
目前,Java 2 平台有 3 个版本,它们是适用于小型设备和智能卡的 Java 2 平台 Micro 版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的 Java 2 平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的 Java 2 平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE 是一种利用 Java 2 平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE 技术的基础就是核心 Java 平台或 Java 2 平台的标准版,J2EE 不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的 JDBC API、CORBA 技术以及能够在 Internet 应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP (Java Server Pages)以及 XML 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持 Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
J2EE 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制:
2.3.1.1 高效的开发
J2EE 可以把一些通用的、很繁琐的服务端任务交给中间供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务:
状态管理服务 — 让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。
持续性服务 — 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。分布式共享数据对象 CACHE 服务 — 让开发人员编制高性能的系统,极大提高整体部署的伸缩性。
2.3.1.2 稳定的可用性
一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为 INTERNET 是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE 部署到可靠的操作环境中,他们支持长期的可用性。一些 J2EE 部署在 WINDOWS 环境中,客户也可选择健壮性能更好的操作系统如 Sun Solaris、IBM OS/390。最健壮的操作系统可达到 99.999%的可用性或每年只需 5 分钟停机时间。这是实时性很强商业系统理想的选择。
J2EE 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun 设计 J2EE 的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议,通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在 J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提
供一个独立的层,以下是 J2EE 典型的四层结构:
(1) 运行在客户端机器上的客户层组件;
(2) 运行在 J2EE 服务器上的 Web 层组件;
(3) 运行在 J2EE 服务器上的业务逻辑层组件;
(4) 运行在 EIS 服务器上的企业信息系统(Enterprise information system)层软件 J2EE 应用程序组件。
J2EE 应用程序是由组件构成的,J2EE 组件是具有独立功能的软件单元,它们通过相关的类和文件组装成 J2EE 应用程序,并与其他组件交互。J2EE 说明书中定义了以下的 J2EE 组件:
(1) 应用客户端程序和 applets 是客户层组件。
(2) Java Servlet 和 JavaServer Pages(JSP)是 web 层组件。
(3) Enterprise JavaBeans(EJB)是业务层组件。
客户层组件:J2EE 应用程序可以是基于 web 方式的,也可以是基于传统方式的;
web 层组件:J2EE web 层组件可以是 JSP 页面或 Servlets.按照 J2EE 规范,静态的 HTML 页面和 Applets 不算是 web 层组件。正如下图所示的客户层那样, web 层可能包含某些 JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的 enterprise bean 来进行处理;
业务层组件:业务层代码的逻辑用来满足特殊商务领域的需要,由运行在业务层上的 enterprise bean 进行处理;
企业信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统。
2.3.1.3 可伸缩性
企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于 J2EE 平台的应用程序可被部署到各种操作系统上。例如可被部署到高端 UNIX 与大型机系统,这种系统单机可支持 64 至 256 个处理器(这是 NT 服务器所望尘莫及的)。J2EE 领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。
2.3.2 Spring 技术
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境(Web 或 EJB)、独立应用程序、测试环境之间重用。Spring 中最具特色的两个模块是面向方面编程(AOP)和控制反转(IOC)容器。控制反转(IOC)容器的功能是将应用程序的配置和依赖性规范与实际的应用程序代码分开。
2.3.3 Ajax 异步处理技术
AJAX 全称为“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),
是一种创建交互式网页应用的网页开发技术。它具有以下 6 个特点:
(1) 使用 XHTML CSS 来表示信息;
(2) 使用 JavaScript 操作 DOM(Document Object Model)进行动态显示及交互;
(3) 使用 XML 和 XSLT 进行数据交换及相关操作;
(4) 使用 XMLHttpRequest 对象与 Web 服务器进行异步数据交换;
(5) 使用 JavaScript 将所有的东西绑定在一起;
(6) 使用 SOAP 以 XML 的格式来传送方法名和方法参数。
AJAX 的应用使用支持以上技术的 Web 浏览器作为运行平台。这些浏览器目前包括:Internet Explorer、Mozilla、Firefox、Opera、Konqueror 及 Mac OS 的 Safari。与传统的 Web 应用比较, AJAX 应用可以仅向服务器发送并取回必需的数据,它使用 SOAP 或其它一些基于 XML 的页面服务接口(界面),并在客户端采用 JavaScript 处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少(大约只有原来的 5%),结果我们就能看到回应(服务器回应)更快的应用(结果)。同时很多的处理工作可以在发出请求的客户端机器上完成,所以 Web 服务器的处理时间也减少了。
2.3.4 采用面向对象的技术
面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称 OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
3 开发功能实现
3.1 大屏
通过一张图的形式,将水库日常监控内容进行。
大屏
3.1.1 主界面
主界面显示所有管理的水库位置信息及预警信息。
主界面
3.1.2 通知公告
通知公告内容由PC端工作人员录入,主要展示一些日常的水库信息发布
通知公告
3.1.3 智慧巡查
该模块通过硬件设备采集统计一些日常巡查情况,然后在这里以图表的形式进行展示。
智慧巡查
3.1.4 视频监控
该模块主要是展示视频监控的画面
视频监控
3.1.5 绿化维保
采用饼图的形式统计每月的一些绿化维保次数。
绿化维保
3.1.6 智慧监控
采用视频自动读取水尺的数字及漂浮物情况
智慧监控
3.1.7 大坝安全监测
通过硬件监测获取大坝位置及变形情况,后台经过大数据分析判断风险值
大坝安全监测
3.1.8 调度调令
日常水库管养过程中调度的发布和统计
调度调令
4 关键技术问题
4.1 与外部系统的对接开发
在本项目中,除了系统本身的计算模拟功能模块外,还需要与其他单位进行数据对接。由于两个系统平台不同,平台间的存储标准和存储逻辑不一样,而且两个平台系统的互联互通,要受到多方面因素的制约,这是一个复杂而且耗费精力的工作。
4.1.1 实施重点
这项数据交换目前面临着两个主要问题:
l 没有统一的交换制度和机制。
l 没有统一的数据交换标准(交换标准包括业务数据标准与技术标准两个方面),数据交换后,难以对数据进行比对和整理,难以取得数据交换的应有效果。
4.1.2 实施难点
数据交换实现的难点主要是在于多应用系统供应商之间的协调,制订数据交换的标准规范,并开放各自应用系统的接口。
4.1.3 解决方案
系统间数据交换方式主要有几下三种类型:
1. 业务实体层的数据交换,这是同构子系统系统间最直接和最高效的交换方案。在同构子系统间通过定义数据对象接口层,通过DTO进行传输,或者直接在数据库中进行数据表的连接或访问,达到同构子系统间的数据共享和交换。
2. Web Service数据交换,在异构子系统间,同时存在数据不集中的情况下,必须使用有效的技术手段来保证异构的数据共享和交换。Web Service是基于Web的标准服务,其不受传输协议或硬件的限制,也不受子系统具体实现技术的限制。而且现在较先进完备的应用系统或产品都提供了基于Web Service的集成接口。这就解决了异构子系统间的数据共享和交换。Web Service也可以解决跨网络和行业系统的数据交换,这需要对方接口单位同样具备Web Service服务。
3. 格式化文件数据交换,它是与外部系统文件传输,业务上的内部系统和外部信息交换需求,要求提供相应的数据共享和交换技术机制。这类问题通常使用基于文件系统的技术方案解决,例如文件报送、文件交换等。
5 项目重点难点
5.1 网络问题
平台与正呈对接时对网络要求比较高,由于我司网络人员对网络知识的了解不够深入,导致平台接口对接进度一时难以推进,导致工期有误工风险,后期加强公司网络管理人员的技术能力储备是急需解决的问题之一。
5.2 应对措施
通过电话咨询外公司的网络管理人员进行沟通协调解决。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。