基于JAVA平台的远程监控系统的设计与实现
2013-09-17朱海林李跃武
朱海林,袁 敏,李跃武
0 引言
随着网络及信息技术的迅猛发展,人们的生产行为、生活方式都发生了很大的变化,同样,与信息技术密切相关的自动控制技术也发生了很大的变化。特别是在工业自动控制中的远程监控方面已经显现出极大的发展前景和应用场合。本文以螺杆式冷水机组为背景,提出了一种基于JAVA平台的远程监控系统设计方法,该方法就是使用网络页面浏览器的技术实现螺杆式冷水机组的远程监控,使得以往的许多操作可以在客户端的浏览器中实现,与传统的监控系统相比,具有结构简单,操作方便,对远程客户端计算机的软硬件要求不高(只要有浏览器就行)等特点,因而可以实现低成本的远程监控。
1 监控系统的整体方案介绍
本文以螺杆式冷水机组远程监控为应用背景,阐述基于JAVA平台的远程监控系统的设计与实现。
1.1 工艺简介
螺杆式冷水机组其关键部件-压缩机,采用螺杆式故名螺杆式冷水机。螺杆式冷水机组由四大部分组成:蒸发器,压缩机,冷凝器和膨胀阀。工作原理即:由膨胀阀节流降温降压,出来的汽液混合物直接送蒸发器,在蒸发器内吸收热量变成气态冷媒,再送到压缩机,压缩机将其压缩成高温高压制冷剂,被压缩的气态冷媒到冷凝器中释放热量,重新变成高压液态冷媒,再送回膨胀阀,重新变成汽液混合物,形成一个循环。在这整个循环中,蒸发器的进出水温度分别保持在12℃和7℃左右,而冷凝器的进出水温度分别保持在30℃和35℃左右,且在整个机组工作中,需要对主机的蒸发器和冷凝器的进出水温度、压力和设备的工作状况进行监控、调试,还需要进行参数标定,以及报警等。
根据上述要求,本监控系统实现以下几项主要功能:用户登录界面的设计,绘制螺杆式冷水机组现场水系统图,对螺杆式冷水机组主机进行监控,对各温度、压力等参数的设定,数据能够读取和写入,实时显示各参数曲线,打印参数报表[1]。
1.2 系统结构
本文采用3层B/S架构体系,客服了传统的C/S模型的缺点,客户端无需安装任何软件,WEB服务器先设定好IP地址,任一客户端通过电脑内建浏览器键入系统IP地址,即可进入监控系统进行远程控制,3层体系主要包括:
(1)显示层(Broser)主要是接受用户的请求以及数据的返回,为客户端提供应用程序的访问。
(2)中间层(Web server)主要提供核心程序,作为连接显示层和数据层的纽带,将显示层的查询要求发送到数据层,然后再把数据层查询的结果返回给显示层。
(3)数据层(Datebase server)主要根据中间层的请求,访问数据库,对数据库进行增删改查,并将操作结果返回给中间层。
现场通过多功能数据采集器采集所需数据,再将所采数据存储到数据库中以供查询,用户通过往浏览器中输入访问路径来发出http请求,服务器收到请求之后再对数据库进行相应操作,返回结果,再以网页的形式展现给用户,联系整个用户和现场的是数据库这个桥梁,整体方案的系统结构[3],如图1所示:
图1 系统结构图
基于系统实现功能的要求,本系统主要采用Java语言,在基于Java开发环境MyEclipse下开发,服务器端采用适合于Java开发的Tomcat服务器。Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。数据库选用适合于小型系统的MySQL数据库,该数据库是开放源代码的,完全多线程,支持多处理器,数据库驱动程序采用JDBC驱动程序将Java程序与数据库相连,执行查询、提取数据等操作。JDBC作为数据源,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。采用Modle1开发模式(JSP+JvaBean),把部分可重复利用的代码封装成JavaBean组件,当用户发送请求时,通过JSP接收、处理,并调用相应的JavaBean组件负责相关的数据存取、逻辑运算等,最后将结果传送到JSP页面供用户查看。
2 监控系统的实现方法及其关键技术
2.1 Java语言的介绍
Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。具有如下特性:简单性、面向对象、分布式、多线程、可靠、安全、平台无关、可移植、高性能、动态性等。所有面向对象编程语言都支持3个概念:封装、多态性和继承,Java同样具备。Java是平台无关的语言,是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行,具有很强的可移植性。Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。支持WWW客户机/服务器计算模式,支持数据分布和操作分布。提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,轻松实现Java的分布式特性。Java最初设计目的是应用于电子类消费产品,要求其具有较高的可靠性。Java虽源于C++,但它消除了C++的许多不可靠因素,可防止许多编程错误。由于其主要用于网络应用程序开发,因此对安全性也有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。
上述几种语言特点结合起来,使得Java成为安全的编程语言,也成为本系统的主要编程语言。
2.2 开发的环境配置[2]
2.2.1.JDK的环境配置
JDK(Java Development Kit)是 Sun Microsystems针对Java开发的产品。 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。故安装和配置好JDK是首要任务。本文采用的是JDK1.7.0,直接运行下载的程序即可安装,然后进行环境变量的配置。按计算机-->系统属性-->高级系统设置-->环境变量,进入环境变量表再修改和添加以下两个变量
修改完之后在dos窗口中输入java,验证安装成功即可。
2.2.2.MyEclipse下Tomcat服务器的安装配置
Tomcat服务器是一个免费的开放源代码的Web应用服务器,Apache开发,Tomcat服务器属于轻量级应用服务器,在中小型系统和开发访问用户不是很多的场合下被普遍使用,是开发Java Web项目的首选。本文使用的是apache-tomcat-6.0,无需安装,无需配置环境变量,直接运行即可启动。Tomcat服务器的默认端口是8080端口。启动Tomcat,往浏览器中输入http://localhost:8080,若窗口中出现Tomcat主页就表示Tomcat安装并启动成功。
由于要开发JavaWeb项目,所以我们还需到MyEclipse中去配置Tomcat。打开MyEclipse,在windows菜单下的preferences对话框中选好Tomcat的版本和安装地址,在Tomcat下添加自己安装好的JDK,这样整个Tomcat就配置好了,最后再把建立的Web工程添加到Tomcat服务器中[4]。
2.2.3 MYSQL数据库的安装配置
MySQL是一个开放源码的小型关联式数据库管理系统,体积小,速度快,拥有成本低,被广泛应用在Internet上的中小型网站中, 并且其提供JDBC,ODBC等多种数据库连接途径。本文采用的是MySQL server 5.5,安装成功后,在MySQL Command Line Client中输入数据库密码即可登录到数据库,再通过SQL语言去操作数据库。
2.3 JSP Modle1模式的实现
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP Modle1(JSP+JavaBean)模式[5],另一种是JSP Modle2(Servlet+JSP+JavaBean)模式。JSP Modle1的使用方式是指在Web开发中不使用或者很少使用Servlet,主要是通过JSP和JavaBean的配合来完成大部分功能。Modle1模式即把部分可以重复利用的组件抽出来写成JavaBean,当用户送来一个请求时,通过JSP调用JavaBean负责相关的数据存取、逻辑运算等处理。最后将结果传送到JSP显示结果,如图2所示:
图2 Modle1的JSP架构
这种模式适合开发业务逻辑不太复杂的web应用程序,开发周期短,编程相对较简单,该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。两者分工如下:
(1)JSP实现页面的显示,并且响应用户请求,调用JavaBean处理数据,并把数据处理的结果返回客户端显示。
(2)JavaBean实现数据存储,并且完成所有的数据处理工作。
下面以监控系统中主机参数查询的例子说明JSP和JavaBean是如何分工合作的。将与数据库的连接以及根据SQL语句返回取出结果的功能代码封装在JavaBean组件里,JSP再调用这几个Bean组件。本文与数据库连接的代码封装在Connect.java中,从数据库调出压力和温度参数的代码分别封装在Pressure.java和Temperature.java中,调用数据的Bean组件部分代码如下:
在这个JavaBean中的查询方法是用select(String sql)实现的,在此方法中,没有直接返回ResultSet结果集,而是把结果集中的内容取出,放在一个ArrayList(二维表)中,其中每个元素对应结果集中的一行数据。在这个方法中直接释放数据库资源,若直接返回结果集将不能断开与数据库的连接。
该jsp文件仅需要实现的是业务逻辑,数据的连接释放完全由封装起来的数据库操作JavaBean来处理。<%@page import="bean.Connect"%>这行代码是用来引入JSP页面中要用到的类和包路径,必须在使用前引入。result=db.select(sql);这行代码主要是根据传入的SQL语句,从数据库取出相应结果,并以ArrayList形式返回。ArrayList tempRow=(ArrayList)result.get(i);这行代码实现的是取出结果集中的一行数据。最后两行代码实现的是循环取出一行数据各个字段的值。
在浏览器中输入系统主页的IP地址,出现系统登陆界面,输入用户名和密码即可进入主页,点击主页的参数列表->主机,即可进入主机参数列表,或直接在浏览器的地址栏输入http://localhost:8080/message/Inpuiry.jsp,网页,如图3所示:
图3 实时参数查询
我们可以观测到主机的实时压力和温度参数。点击刷新数据按钮,将实时刷新现场返回的数据,点击返回系统主页按钮即可返回机组系统的主页。
2.4 数据库连接
随着数据库产品和技术的发展,数据库访问技术也在不断的更新,目前Java语言访问数据库的技术很多,本文主要采用JDBC驱动程序来实现数据库的访问。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。可应用于多种平台,移植性好,是目前使用Java语言连接数据库的首选[6]。Java的主要功能均是JDBC通过一系列的接口实现的,这些接口都在java.sql包中,具体如下表1所示:
表1 连接JDBC的各接口及其作用
JDBC具体功能包括以下3个方面:
(1)建立数据库的连接;(2)向数据库发送请求,通过SQL语言操作数据库中的数据,包括查找、添加、删除等操作;(3)获取并处理数据库返回的结果。连接不同的数据库有不同的JDBC驱动程序,对于MySQL5.5,与之对应的JDBC驱动程序名是com.mysql.jdbc.Driver。下载对应JDBC驱动的jar包,本文选用的是mysql-connector-java-5.1.25,将其jar文件复制到应用项目的WEB-INFlib目录中,就能通过JDBC驱动连接数据库。访问数据库的方式有2种,直接访问和通过数据源连接池访问。第二种方式适合于大型网站开发,可以同时应对大量的用户访问,但开发周期长,相对复杂,而第一种直接访问方式虽然用户数量较大时影响系统性能,但这种方式开发周期短,简单易实现,故本文采用直接访问的方式。由于需要多次连接数据库,为实现方便,将其代码封装在Connect.java中,部分代码如下:
3 总结
随着Internet的发展,监控系统由传统的DCS和windows风格向web方向转变成为一种趋势和必然。本文提出的基于JAVA平台的远程监控系统,初步应用结果表明,该方案能满足工业现场的需求,切实可行。采用B/S架构,避免了软件升级和维护的麻烦,较传统监控系统而言减少了很多不必要的麻烦,使得远程监控成为可能。用户无需亲自到现场查看,只需一台能联网的计算机即可随时随地的轻松实现对现场设备的监控,大大提高了工作效率,避免了人力物力上的浪费。随着远程监控技术的发展,也将会有更多功能更加强大,易于操作维护的方案为人们所用。
[1]郝晓弘,苏渊.基于Web的变电站远程监控系统[J]电网技术,2003,27(7):32-35.
[2]唐建清,邹国霞.Java Web开发的环境配置[J]桂林航天工业高等专科学校学报,2006,43(3):26-28.
[3]YOU Xiang-bai,LIU Yi-min,xu Wang-ming.The Design of A Remote Monitoring System Based on Java[J]IEEE,2010:149-152.
[4]孙卫琴.Tomcat与Java Web开发技术详解(第2版)[M]北京:电子工业出版社,2009.01.
[5]刘聪等.零基础写Java Web开发[M]北京:机械工业出版社,2008.01.
[6]王林玮 沙明峰.精通JSP开发应用(Eclipse平台)[M]北京:清华大学出版社,2012.11.