基于B/S架构的船舶设备远程健康监控系统设计

2022-04-28 08:53:18席志成张文亮
黑龙江科学 2022年8期
关键词:数据表控件浏览器

席志成,李 海,张文亮

(武汉船用机械有限责任公司,武汉 430084)

针对安装于远洋船舶的无人值守舱室中的设备,设计了一种基于B/S(Browser/Server)架构的设备远程健康监测系统。此系统依托设置在舱内的摄像机为使用者提供实时视频图像监控功能,依托设置在设备内部的健康信息传感器提供健康数据采集监控功能,以满足驾驶台船员和设备服务商远程掌握舱室现场实时状态的需求。

1 架构原理

C/S(Client/Server)架构在软件解决方案中应用较广,其特点是客户机前端作为用户人机交互界面,在用户界面接收指令后直接向服务器后端发出请求,服务器作为后端负责数据的存储、管理、查询,负责根据前端的要求返回指令结果,系统整体呈上述两层结构。

在远洋船舶设备领域,船员和设备商通常来自不同国家,如果采用C/S系统架构,客户机直接与服务器通信对话,则必须为每一个相关方安装定制客户端,必然面临客户端对安装载体在硬件、操作系统两个方面的适应困难。本系统采用B/S架构,利用其无需安装定制客户端的优势,为用户带来了最大的自由度,只要用户拥有一台能够接入Internet的计算机,同时计算机上安装有Firefox、Opera和Safari等任何一种常规浏览器,就能够将其作为本系统的客户端,实现远程监控舱室设备状态的目的。

2 系统设计

2.1 总体设计思路

用户端的web浏览器部分设置为两层结构,共4个页面。第一层用于安全控制,设计为登录页面;第二层用于功能实现,设计为平行切换功能,包括实时健康数据监测、实时视频监控及历史数据查询共3个平行切换的功能页面。每台被设定为监控对象的设备都在其对面的舱室壁上安装一个专属摄像头,数据库中预先保存了每台设备及其专属于摄像头的的IP地址、端口信息等相关数据,根据实际需要,用户在相应的前端页面手动选择和切换摄像头。

2.2 总体功能框架

根据需求,本系统总体框架设计为3个相对独立的功能模块,如图1所示。

图1 系统总体框架图Fig.1 Overall framework diagram of the system

账户管理模块。根据登入系统的用户类别为其分配合适权限,并针对账号清单依据用户身份和权限进行分组管理。在用户入口设置注册、登录认证界面,将登入用户按照预设的类别分配不同的访问权限。

视频监控模块。实现摄像头输入的视频信号上传、显示功能。允许网页端选择需要显示的设备编号,网页嵌入ActiveX控件,根据用户指令确定对应访问摄像机的IP地址和端口,调用相应摄像机的视频信号并将其传输至Web服务器。

健康监控模块。设备运行健康状态数据的实时采集、显示和存储,该数据来源为设备自带的传感器,实现对设备健康状态包括电压、电流、温度、湿度等需监控的数据,并对汇总的数据进行简单的图像化处理。例如:将选取时间段的历史数据汇总后,在直角坐标系中以折线、柱状等不同的图像形式在客户端显示。

2.3 信息流结构

系统工作结构如图2所示,本系统软件构件模式采用MVC(Model-View -Controller)开发,将后端管理部分与用户交互界面实现各自代码独立,系统架构选择JavaBean+Hibernate +Struts2+Spring +Jsp。在数据库录入摄像头的IP和端口实现视频信号通道的切换,在用户Web端上实现监控视频的实时显示,采集的数据能够实时地动态显示在用户Web端。系统在正常登陆的用户账户下,能够通过用户Web端查看历史数据,并选择输出历史数据的图形形式,如柱状图、曲线图等,以便更好地分析健康状态变化趋势。

图2 信息流结构框图Fig.2 Block diagram of information flow structure

3 系统激活

作为Browser/Server架构,Web用户需要在非特定的客户机上采用浏览器访问Web服务器。本系统中,采用SSL数字证书机制引导用户加载浏览器前端的ActiveX控件。当用户采用Firefox、Opera和Safari等任何一种常规浏览器第一次访问服务器时,在SSL通信过程中,由于检测到包含ActiveX控件的嵌入代码,用户端浏览器将提示需下载安装CA(Certificate Authority)根证书,当用户确认后,浏览器将自动下载并安装系统前端部分的ActiveX控件。

成功安装ActiveX控件后,系统前端与服务器建立通信,系统功能被激活。当用户更换另一台计算机后,只需再次访问服务器并下载安装相应控件,则可在新的工作位置使用本系统。

3.1 视频监控

通常情况下,针对摄像头视频数据的采集需求可以采用与HTTP协议类似的RTSP(Real Time Streaming Protocol)协议获取视频码流,或使用Open CV中的VideoCapture读取视频,通过TCP传输协议上承载RTSP以提高稳定性即可。本系统中使用的摄像头为国内某品牌的货架标准产品设备,型号产品配置的SDK包内已配置有成熟的接口函数,在AetiveX控件中直接调用即可获取所需的视频数据流。SDK包调用的执行流程如图3所示。

图3 SDK调用流程图Fig.3 SDK transfer flow chart

当用户端第一次激活视频监控页面时,页面嵌入内置的ActiveX控件代码将触发前端浏览器的安全规则,随后用户端浏览器将发送消息提示下载控件,从而引导用户进入控件安装流程。

3.2 数据库服务器

数据库服务器系统采用最常用的MySQL作为数据库服务器,经比较选用Hibernate作为数据库访问工具。与另一常用的访问工具MyBatis相比,MyBatis采用SQL与Entity映射,而Hibernate采用数据库与Entity映射,能够自动生成SQL,开发工作更加高效。

通过对系统功能需求的细化分析,本系统配置的监控系统数据库为视频监控和健康数据监控分别制定了规范格式的数据表头,即Cam数据表(视频)和Hel数据表(健康数据)。

Cam数据表(视频)中设置有ad(地址)、port(端口)、clit(用户)、pasd(权限密码)、id(位置编号)5个字段作为该设备的标识,每一条数据对应一台摄像机,用户Web端通过查询Cam数据表中的IP地址和端口信息实现不同摄像头的查询和选择,Cam数据表表头设置如图4所示。

图4Cam数据表头
Fig.4Camdataheader

Hel数据表(健康数据)用于按固定时间间隔依序存储从设备传感器获取的数据。本系统中,每隔5 min采集一次健康信息数据并在MySQL数据库服务器中依时间顺序存储归档。Hel数据表设置一个独立的字段“time”来记录数据的采集时间,以满足用户查询历史数据的需求,Hel数据表表头设置如图5所示。

图5 Hel数据表头Fig.5 Hel data header

3.3 用户端Web功能实现

用户端浏览器是本系统为用户提供的唯一人机交互界面,用户端在浏览器上下达指令和接收响应,浏览器与Web服务器之间设置有Ajax引擎作为中间层,所有请求与响应均通过Ajax引擎完成。用户访问与相应的流程如图6所示。

应用Ajax作为中间层,能够在不刷新整个页面的前提下与服务器通信维护数据,这使得Web端能够更为迅捷地响应用户交互,减少了未变化数据的无效通信,减少用户等待时间。所有请求与响应均通过Ajax引擎完成,Ajax与服务器之间特有的异步通信机制,能够为提供多线程并行工作效果,在用户操作层上不会产生中断影响,提升了用户体验。而减少了未变化数据的无效数据传输,对于通信带宽的要求进一步降低,特别适用于航运中的船舶类应用场景。

图6 用户端Web访问流程图Fig.6 User side Web visit flow chart

4 结语

设计并实现了基于B/S架构的船舶远程监控系统。系统采用Spring、Hinernate、Struts2三大框架搭建整体系统,并使用MySQL承担数据库功能,使用通用型浏览器承担人机交互功能。基于B/S架构本身的特点,系统的交互性较强,维护方便,但是允许用户通过广域网访问设备在带来便利的同时,也对系统、设备的安全性提出了更高的要求。目前,该技术仅适用于民用船舶的辅机设备,如要将其应用于更加敏感的设备领域,还有待于从安全性角度对该技术开展更深一步的研究。

猜你喜欢
数据表控件浏览器
湖北省新冠肺炎疫情数据表
党员生活(2020年2期)2020-04-17 09:56:30
反浏览器指纹追踪
电子制作(2019年10期)2019-06-17 11:45:14
基于列控工程数据表建立线路拓扑关系的研究
关于.net控件数组的探讨
软件(2018年7期)2018-08-13 09:44:42
环球浏览器
环境与生活(2016年6期)2016-02-27 13:46:37
再见,那些年我们嘲笑过的IE浏览器
英语学习(2015年6期)2016-01-30 00:37:23
图表
基于VSL的动态数据表应用研究
河南科技(2014年24期)2014-02-27 14:19:25
就这样玩会VBA中常见的自定义控件
电脑迷(2012年24期)2012-04-29 00:44:03
浏览器
网络传播(2009年5期)2009-05-26 06:47:12