贺永兴,梁宝龙,赵 冰,刘骥超,王立俊
(1.海南省气象信息中心,海南 海口 570203;2.海南省南海气象防灾减灾重点实验室,海南 海口 570203;3.海南省气象信息化科技团队,海南 海口 570203)
在各省气象部门中,省信息中心担负着全省信息网络的建设、维护以及气象资料的收发传输,气象设备的管理维护等工作。随着业务的不断扩展,观测设备、网络设备、服务器、机房环境等设备的需求日益增多,气象设备的持续、稳定和高效运转,直接影响着气象业务的正常开展。因此,如何管理好、维护好气象设备,是气象部门设备管理工作明确而迫切的要求。
目前,气象设备的管理手段主要停留在纸质记录和电子台账阶段,管理人员通常只记录设备的基础信息,而缺少对设备生命周期内各个环节状态的跟踪和记录[1]。其中,若采用纸张进行手工记录,不仅增加管理员的负担,而且纸张不能够长期保存,重要的信息容易丢失;此外,当前的设备管理方式对设备管理人员的行为也缺少监管,对重要设备的维护操作没有权限的划分,容易产生管理上的混乱。因此,按照气象信息化的发展目标和要求,提出利用物联网技术、云计算和二维码识别技术,开发了“基于物联网与云平台的气象设备运维管理系统”,实现了设备管理的全程跟踪,做到了设备管理的信息化和动态化,提高了日常设备管理工作的效率[2-3]。
物联网[4-5],英文全称“Internet Of Things”,英文缩写为“IOT”。所谓物联网就是“物—物”相连的网络,就是把包含各种信息的物体,通过传感设备、射频技术等与互联网结合起来,从而形成规模巨大的网络,其宗旨就是实现全球物品信息的实时互通和共享[6]。借助于物联网,可以方便地建立起人与物之间的“对话”通道,能够将设备信息、人员角色信息、人员行为信息等多个流程信息进行实时地获取,传递和存储,且不受地域的限制,设备的管理不仅可以在局域网内实现,也可以通过互联网实现。物联网中涉及的关键技术主要有感知与识别技术、通信与组网技术、信息处理与服务技术[7-8],其中二维码识别技术是物联网感知与识别技术中一项重要的识别手段。
提出将物联网技术引入气象设备的运维管理,在设备购置后就印制并粘贴相关二维码,这个二维码记录设备的基本信息,伴随设备的整个生命周期。在设备的入库、领用、归还、巡检等过程中,管理人员只需通过手机微信端识别设备二维码,即可实现设备信息的识别、记录和追溯。
云计算是一种基于互联网的、大规模分布式的并行运算,它使得传统的计算、存储行为摆脱了物理实体结构的限制,是新一代IT技术的发展方向[9-10]。云计算的资源都分布于互联网上,是可动态扩展且虚拟化的,终端用户只需要关注自己需要什么样的资源和服务,而不必关注云资源中基础设施的细节[11]。云计算的服务类型可按照云资源的部署形式和服务形式来区分,按部署形式可分为私有云、公有云和混合云三种,按服务形式可分为基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)、软件即服务(Software as a Service,SaaS)三种。
云计算采用了虚拟化技术、并行运算、分布式计算、网格化计算、分布式存储等综合性的技术手段,使其具有高可靠性、高扩展性、通用性、廉价性、灵活性等特点,而物联网技术的发展必须依靠高计算能力和高效率存储等技术,云计算的优势正是物联网技术所需要的。
提出将物联网与云计算进行有效结合,进而提高应用系统的运算效率和服务质量[12]。
(1)经济性。省信息中心管理的气象设备种类较多,有观测设备、网络设备、存储设备、服务器设备,应急车辆等,其分散应用于省气象局和各市县气象局网络机房或观测场。系统设计应尽可能节省投资,在技术选择上,应该考虑统一部署,统一维护,一是能避免系统建设过程中所需软硬件设施的重复采购,二是能节约系统维护的成本。
(2)可扩展性。随着气象观测、预报、服务、科研等业务的不断扩展,所需要的气象设备数量和种类也会成倍增加,这将对系统软硬件提出更多、更高的要求。系统的设计,要尽可能在不影响现有业务的情况下,灵活地提升硬件的处理能力,同时对系统的功能,可以根据实际需要进行灵活的增减。
(3)安全性。气象设备运维系统稳定可靠的运转,直接影响着设备管理工作的正常开展;此外,部分气象设备的基本信息或者使用情况属于保密信息不得公开,因此,系统应该建立在安全可靠的网络环境中,确保系统的软硬件及数据不受偶然或者恶意的因素而遭到破坏、更改和泄露;同时,对于重要的数据要有实时备份的功能。
(4)易用性。系统应提供图像化的操作界面,在终端用户查询、管理、维护设备时能够简单明了,易于操作。
结合气象部门设备管理工作的特点,并且比较了云计算中各种服务类型的优缺点,提出以“公有云+IaaS”的模式来构建气象设备运维管理系统。综合对比了阿里云、腾讯云、谷歌云、移动云等云服务平台,最终选取了性价比较高的移动云。
根据“可扩展性”的设计原则,租用了4台云主机和1套云存储,云主机分别是Web服务器、应用服务器、数据库服务器和文件服务器。云主机和云存储均具有弹性计算的功能,可根据用户业务需求的变化,随时增加或者减少计算资源(包括CPU、内存、存储、带宽等),既满足了业务的需要,又能节省费用。其中,数据库服务器带有实时备份功能,确保了重要数据的可靠性。
根据“安全性”的设计原则[13],使用了云平台免费提供的云网络安全模块,包括入侵防御、云防火墙和Web应用防护。其中,入侵防御采用了多种应用层协议分析技术,能够及时地检测到非法入侵攻击并采取阻断和报警,同时可提供详细的攻击信息,便于取证分析;与传统防火墙相比,云防火墙关注客户的业务,通过流量的可视,最大程度地保障防火墙策略的正确性;Web应用防护基于对HTTP流量的解码和分析,可抵御各类HTTP应用中的攻击,比如SQL注入、跨站请求伪造攻击、Cookie篡改等,能够有效地解决网页挂马、敏感信息数据泄露等问题,确保了系统Web应用的安全。云平台结构如图1所示。
在充分梳理气象设备管理的整体业务流程之后,确定了系统功能,主要包括手机端功能和服务器端功能两大部分,如图2所示。
图2 系统功能框架
手机端功能包括:微信扫码、设备信息查询、领用登记、归还登记、设备巡检等。用户可通过手机微信端的“扫一扫”功能扫描设备二维码后直接查询设备的详细信息;对于需要领用或归还的设备,可以通过增加领用或归还记录,来登记设备的使用情况,其中领用人和单位或者归还人和单位的信息可以事先定义为常用基础信息,每次添加记录时可直接选取而不用手工录入;对于需要定期巡检的设备,可以通过增加巡检记录来登记设备的使用情况,其中不同的设备具有不同的巡检项目和内容,可根据设备的性质和分类自定义不同的巡检内容。
服务器端功能包括:设备管理、制作二维码、人员管理、记录管理等。用户可以在服务器端单独或批量增加设备信息并且制作对应的二维码标签;人员管理功能可设置不同的操作权限并授予不同的管理人员;记录管理功能将管理人员对设备的任何操作记录存储到系统数据库里并可随时查阅,达到“留痕可追溯”的目的,另外,增加重要记录的短信提醒功能。
系统的运行包括手机端与服务器端两部分。手机端需借助于微信开发平台,微信开发平台相当于一个转发服务器(通信协议为HTTP,数据传输格式为XML),移动终端(手机、Pad等)通过微信发起消息请求至微信服务器,微信服务器再将请求发送至部署在云端的“气象设备运维管理系统”中的Web服务器,Web服务器将消息转送至应用服务器,待应用服务器处理完毕后,再依次将相应数据回送至微信服务器,微信服务器再将具体响应信息回复到微信终端[14-15]。
服务器端包括4台服务器,分别为Web服务器、应用服务器、数据库服务器和文件服务器。Web服务器接收用户发送的请求并转送至应用服务器,应用服务器处理完数据请求后返回处理消息给Web服务器并转送至微信端。应服务器处理的数据有结构化数据和非结构化数据,其中结构化数据主要包括设备的基本描述信息,设备领用、归还信息等可直接存入数据库的信息;非结构化数据主要包括设备及人员的照片、视频、语音等信息,此类数据可以存放于文件服务器。
开发平台使用eclipse和微信公众平台,开发语言采用J2EE,Jdk1.8.0_45。采用apache-tomcat-7.0.56作为服务器容器,系统基于B/S架构和SSJ(Struts2、Spring、JPA)框架。其中,Struts2是基于MVC(Model-View-Controller)的开发模式,MVC利用了封装分层的设计思想,以此来降低耦合度,从而使系统开发更加灵活[16-17];在Model层使用JavaBean进行设计,在View层使用html5+css进行设计,Contrller层使用Servlet进行设计;数据库为Oracle 11g,数据库中间件为JPA(Java Persistence API);Web服务器操作系统为CentOS 6.5,应用服务器、数据库服务器和文件服务器操作系统均为Windows Server 2008 R2。
通过手机微信端“扫一扫”功能扫描设备二维码,即可进入手机端主界面,如图3所示。
图3 手机端主界面
初始访问权限默认设置为允许所有用户访问,此时,手机端显示的内容包含5大模块,即:资产照片、资产详情、资产管理、负责人和技术支持,具体说明如下:
(1)资产照片:设备照片或环境照片可直接通过手机自带的相机进行拍摄上传,也可通过手机相册进行上传;
(2)资产详情:记录了设备名称、分类、购入日期、价格、管理部门、使用人、存放地点等与设备相关的所有基础信息,基础信息是设备管理的前提,离开了基础信息,设备管理就无从谈起;
(3)资产管理:通过界面底部的“添加记录”来实现,如图4所示,主要包括设备的领用登记、归还登记以及设备的巡检,其中领用和归还登记可记录设备的领用(归还)单位、领用(归还)人、用途、领用(归还)时间、交接人、领用收据等详细信息;设备巡检可采用文字、语音、图片、短视频的形式来记录设备检查维护的详细过程,其中,巡检条目可根据设备的不同类型,添加不同的巡检内容;
(4)负责人和技术支持:显示了设备的直接管理人员和相应的联系方式。
图4 手机端设备管理界面
服务器端功能由设备管理、制作二维码、人员管理、记录管理等组成,如图5所示。
说明如下:
(1)设备管理中的领用、归还、巡检功能与手机端功能对应,用户可通过手机端或服务器端完成相同的操作;新增的设备可单独入库,也可以EXCEL列表的形式批量入库;二维码的制作可单独制作,也可批量制作。
(2)人员管理功能首先定义了不同的管理权限,包括查看权限、巡检权限、信息修改权限等;其次,将具有不同管理权限的人员划分到不同的人员分组里,相同分组的人员具有相同的权限。
(3)记录管理功能记录了人员对设备的所有操作,包括增加、删除、修改等,管理员可通过查找记录的功能来查看。此外,对重要的记录可设置短信提醒功能,直接通知设备管理的相关负责人。
图5 系统首页
针对设备管理而言,有些设备信息属于保密类型,不允许普通用户查看;有些设备的巡检和维护权限只归属于对应部门,其他部门无权操作;对于设备管理的历史记录,也并非所有用户可查看,需要限定用户的操作权限;同样,针对设备的操作而产生的短信消息提示,也需要指定接收人员的权限。传统的权限管理方法通常是:用户在系统内注册用户名密码,系统后台管理人员审批后分配相应的权限。
为了提高系统的易用性和使用效率,提出采用微信扫一扫功能及微信认证体系,用户无需输入账号密码即可直接进入该系统。实现原理是:系统根据微信用户的openid号来分配相应的操作权限,微信的openid号是一个加密的字符串,每一个微信号与一个公众号之间对应一个固定不变的openid,当任何用户通过手机微信端扫码后,系统首先获取微信用户的openid号,其次通过openid号来判断该用户所具备的权限,若权限不够可申请提高权限,最后用户可根据申请获得的权限来进行更高级的操作。权限管理流程如图6所示。
图6 用户权限管理流程
气象设备的有效管理,直接关乎到气象业务的正常开展。为了改善气象设备繁杂难以管理维护的现状,摆脱长期落后低效的管理方式,利用物联网技术、云计算和二维码技术,设计并实现了“基于物联网与云平台的气象设备运维管理系统”。通过该系统,设备管理人员可以方便快捷地查询设备信息,记录设备流转、运行、维护等情况,极大地提升了气象设备的管理效率。此外,通过用户权限管理和记录管理功能,规范了管理人员的职责并实现了设备管理的“全程留痕”,对全面分析设备生命周期中各阶段的使用情况具有极大的参考价值。