APP下载

通用物联网监测系统软件设计

2015-12-20王磊磊孙万蓉魏雪松张霞霞李沛甲

电子科技 2015年5期
关键词:视图页面框架

王磊磊,孙万蓉,魏雪松,张霞霞,李沛甲

(西安电子科技大学电子工程学院,陕西西安 710071)

本文针对市场上的专用物联网监测系统进行了改进,在传统的物联网监测系统中,设备可监测的数据种类由于受设备所接传感器数量的限制,可扩展性差。例如在农业环境监测系统中,需要的设备传感器包括温度、湿度、光照等。在电力电缆沟道系统中需要的设备传感器有温度、湿度、有毒气体、可燃气体、液位等。此类系统众多,但市场只有针对某种特定应用开发的软硬件系统,没有一种传感器可以灵活插拔以应对不同应用的软硬件系统。

1 系统的架构设计

目前比较流行的软件系统模型主要有B/S和C/S[1]。C/S 又称 Client/Server或客户/服务器模式。服务器通常采用高性能PC、工作站或小型机,并采用大型数据库系统。客户端需要安装专用的客户端软件[2]。客户端通过运行应用程序来读取服务器中的数据。B/S结构,即Browser/Server结构,是随着Internet技术的兴起,对 C/S结构的一种变化或改进的结构[3]。在这种结构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但主要事务逻辑在服务器端实现。

两者相比,B/S架构具备较大的优越性,例如:(1)无需在客户机上安装应用软件,有Web浏览器即可,方便用户使用。(2)简化了系统的开发与维护,所有功能都实现在Web服务器上。

由于两种模式存在上述区别,目前Internet的发展趋势是应用程序的体系结构由这种传统的C/S结构向B/S直到现在的多层分布式结构发展[4],Web应用成为目前最广泛使用的应用模式,当前Web已广泛应用于Internet,本文使用Java Web技术开发该系统。

2 系统的开发模型

2.1 系统整体架构

系统综合使用了 Struts2+Spring+Hibernate框架,较好地实现了系统的高内聚、低耦合的目的。且具有较好的分层结构,各层之间代码的修改对上层代码并无侵入,同时充分利用了面向对象的思想。

图1 Struts+Spring+Hibernate框架体系结构图

2.2 Struts 2框架

Struts的MVC的3层结构如下:

视图层。Struts采用JSP作为MVC的视图。每一视图均采用了定制标签库的JSP页面,这些定制标签库则由Struts框架提供。全部表单元素均用定制标签编码,所以这些页面可以方便地同控制器交互。每个表单也均通过映射JSP到Servlet的请求这一方式指向控制器特定入口点。

控制层。控制器就是Java Servlet,由Struts框架提供,负责视图和模型之间的交互。控制器的每个入口点均由名为struts-config.xml的配置文件设置。该文件将来自视图的请求映射为特定的Java类以进行相应的处理,控制器还指定下一个视图的位置。

模型层。JavaBean就是模型的代表,对进入控制器的每个入口点而言,Bean的作用是存储从视图获取的信息,同时被称为“动作类”,一种Java类则被指定为对表单输入采取行动。动作类(Action Class)实现了业务逻辑。

图2 Struts MVC结构图

2.3 Spring框架

Spring框架的出现是为了解决企业级应用开发过于复杂的问题,以前的EJB组件过于庞大,程序员使用过于复杂,不能灵活应用。Spring框架只使用了基本的JavaBean便实现了对EJB的代替。是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

图3 Spring的体系架构图

2.4 Hibernate框架

Hibernate是一个开放源代码的对象关系映射框架,其对JDBC进行了轻量级的对象封装,使得Java程序员可随心所欲的使用对象编程思维来操纵数据库。Hibernate可应用在任何使用JDBC的场合,既可在Java的客户端程序实用,也可在Servlet/JSP的Web应用中使用,且Hibernate还可在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate框架的优势有以下几点:(1)Hibernate具有可扩展性。(2)Hibernate既适用于独立的Java程序,也适用于Java Web应用,且还可在J2EE架构中取代CMP,完成持久化任务,Hibernate能集成到会话EJB和基于BMP的实体EJB中。(3)Hibernate可与多种Web服务器,应用服务器良好集成,并支持所有的数据库服务器。

图4 Hibernate的体系架构图

3 系统软件设计

3.1 系统目标和主要功能

系统的目标是可方便地在Web进行系统应用、硬件设备、硬件设备上传感器的增删改查,同时可以列表和曲线的形式查看传感器采集数据。整个系统的主要功能如下:(1)应用模块。完成硬件设备的应用方面的信息。(2)设备模块。完成硬件设备和传感器的相关信息的修改。(3)历史数据模块。完成传感器历史数据的查询。(4)实时数据模块。完成传感器采集数据的实时显示。(5)用户模块。完成应用的所有用户的增删改查。(6)日志模块。完成应用设备的故障数据的显示。

3.2 系统软件数据库设计

数据库设计是Web应用程序开发过程中重要组成部分。一个结构合理的数据库对于提高应用程序的开发效率及程序运行的性能非常关键。数据库设计由以下几部分构成:(1)进行用户需求分析。以确定数据库中要保存的数据信息:进行用户的需求分析是设计数据库的第一个环节,设计阶段还需不断地跟进与挖掘用户需求,了解业务逻辑、运作流程等系统要求,是设计概念模型的基础。(2)设计数据的字段模型。字段模型是根据用户的观点来对数据进行建模,是用以进行信息化建模的工具,字段模型的设计对于整个数据库的设计具有重要的意义。(3)逻辑结构设计。该过程是由逻辑架构师将概念结构转化为数据模型,转化后的数据模型必须受所采用的数据库管理系统支持。(4)根据上述分析、设计,最终实施数据库的建立及后期维护。

系统包含的数据库表均放入了数据iot中共有7张,此处只列举出了设备t_devices如表1所示。

表1 设备信息t_devices表

4 管理系统软件具体实现

设计的系统采用J2EE作为开发平台,开发工具采用MyEclipse10.0,Web服务器采用Apache Tomcat 6.0,后台数据库采用MySQL6.5。系统的实现主要体现在表示层、数据访问层、业务逻辑层和控制处理器层。

4.1 视图实现

视图是系统与用户之间的接口,是显示数据信息输入、输出的主要途径。视图的设计应坚持友好、简单、实用,且易于操作的原则。系统基于Web的信息管理系统,采用B/S结构,视图主要是JSP和HTML页面。

系统登录页面:为提高系统的安全性而设计,只有授权登录系统的用户,输入正确用户名和密码才能进入系统,页面效果如图5所示。

图5 系统登录页面

应用显示页面:该模块包含应用的增删改查,其效果图如图6所示。

图6 应用显示页面

设备显示页面:模块由设备的增删改查,对应传感器的增删改查,效果图如图7所示。

图7 设备和传感器查询页面

历史数据显示页面:完成历史数据的显示,其效果如图8和图9所示。

图8 传感器数据列表页面

图9 传感器数据曲线显示页面

实时数据显示页面:该模块完成实时数据的显示,效果如图10所示。

图10 传感器数据实时显示页面

4.2 数据访问层

数据访问层提供对数据库的访问,这里使用面向接口的编程技巧,可灵活的选用数据库访问实现,如JDBC,Ibatis,Hibernate,而在本系统中了使用 Hibernate框架的数据库访问。

4.3 业务逻辑层

业务逻辑层实现特定的业务功能,系统使用面向接口的编程思想。使用Service接口来完成对持久层的访问,在中间使用了Spring来完成上层对下层对象的使用。其优势在于高内聚、低耦合,且并未将底层的对象创建暴露给上层。

4.4 控制处理层

系统控制层由Struts 2框架完成。在Struts 2中,核心控制器(Filter Dispatcher)接受所有来自客户端的请求,该控制器调用Action映射器,Action映射器将用户请求转发到对应的业务逻辑控制器,其中业务逻辑控制器是自定义的Action.在Action中调用业务逻辑层的方法。这里同样使用了面向接口编程的思想,同时使用Spring完成底层对象的注入。

5 结束语

本文所设计的系统软件应用Java Web开发技术实现了通用物联网监测系统的开发,使其可扩展性大幅提高。此外,针对不同的应用可方便地进行修改,从而使应用方面也得到了提升。

[1]王靖宇.B/S架构物联网环境检测系统的设计与实现[D].天津:天津大学,2011.

[2]李怀俊.基于Java技术的网络视频图像传输[D].广州:广东工业大学,2002.

[3]陈勇.基于物联网的矿井温,湿度检测系统设计[D].南京:河海大学,2012.

[4]刘贤锋.基于J2EE的煤炭地质企业信息系统设计与实现[D].南京:南京理工大学,2008.

[5]蔡明,陈永运.J2EE架构的研究与应用[J].计算机应用与软件,2004,21(1):42 -43,128.

[6]王华.物联网在石油石化行业的应用初探[J].石油规划设计,2011(6):1-4.

[7]吴振宇.基于Web的物联网应用体系架构和关键技术研究[D].北京:北京邮电大学,2013.

猜你喜欢

视图页面框架
刷新生活的页面
框架
广义框架的不相交性
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
关于原点对称的不规则Gabor框架的构造
一种基于OpenStack的云应用开发框架
Web安全问答(3)