APP下载

基于用户定制的气象触摸显示屏系统的设计与实现

2019-09-12徐彩艳任广治张嫣然

湖北农业科学 2019年14期

徐彩艳 任广治 张嫣然

摘要:为满足人流密集区气象服务的需要,利用Java开发语言和Eclipse开发工具,设计并实现了一套基于Android平台的气象触摸显示屏系统,由API接口服务、智能终端系统、管理系统组成。该系统首次提出用户定制的服务理念,实现了终端定制显示和拓展功能,可进行精准个性化投放,可显示管理系统添加的任意HTML5网页,极大地增加了内容扩展性。应用实践表明,该系统定制化的显示服务满足了不同用户的个性化和差异化需要,扩大了气象信息及预警信息的传播范围,加快了传播速度,加强了气象科普的宣传力度,通过人机互动的方式,增加了气象信息的趣味性。

关键词:触摸显示屏;用户定制;API;Android

中图分类号:P49         文献标识码:A

文章编号:0439-8114(2019)14-0138-03

Abstract: In order to satisfy the requirement of the meteorological service in crowded areas, the Java development language and Eclipse development tools are used to design and implement a set of meteorological touch screen system based on Android platform. The system consists of API interface service, intelligent terminal system and management system. The system proposed the service concept of user customization for the first time. The system realized the function of custom display in terminal and expansion. The system can deliver accurately and personalized. The terminal can also display any HTML web page added by the management system, greatly expanding the display content. Application practice shows that the customized display service of the system meets the personalized and differentiation needs of users, expands the transmission range of meteorological information and warning information, accelerates the transmission speed, strengthens the publicity of meteorological popularization, and increases the interest of meteorological information through man-machine interaction.

Key words: touch screen; user customization; API; Android

随着气象服务的深入,气象信息进乡村、进社区的需求不断被提出[1]。气象信息进乡村、进社区可以充分发挥智慧气象服务的作用,提升气象为民服务能力,加强防灾、减灾、救灾能力建设。同时,机场、火车站、商场、政务大厅等人流密集区对于气象信息特别是气象预警的需求也不断增强。触摸显示屏这种日益普及的新媒体是一种较好的气象信息服务载体。

通过研究目前的气象服务发现,不同用户对气象信息内容、种类、发布界面等需求差异很大,且用户普遍有显示本部门信息的需求,一套系统推广至多用户的做法已经难以满足用户日益增长的个性化需求,而为每个用户单独开发一套系统的做法不仅费时费力,更会增加维护成本。具备定制显示功能的气象触摸显示屏系统是一种较好的应对手段。

近年来,关于气象手机客户端的研究不断增多[2,3],各种气象手机客户端也应运而生,其中,墨迹天气的下载量已经接近3亿[4],可见,气象信息在手机端的展示技术已趋于成熟。而关于气象触摸显示屏系统的研究则较少,已有显示屏的研究多针对LED电子显示屏。本研究基于Android平台的触摸显示屏,设计并实现了可以满足不同用户个性化和差异化需求的气象信息显示屏系统。该系统实现了终端定制显示功能和拓展功能,旨在满足乡村、社区及其他人流密集区和公共场所获取气象信息的需求。

1  总体架构

该系统主要以API接口服务、智能终端系统、管理系统三部分构成。API接口负责向智能终端提供气象数据;智能终端系统播放展示气象信息、视频、新闻、通知及用户提供的其他信息;管理系统进行用户、终端、显示信息和API接口管理。

系统采用JAVA开源架构SOA基础架构体系,SOA基础架构具有模块化、服务化设计理念,在原有模块化拆分设计的理念基础上进行深度拓展,实现面向服务的框架体系。该架构将系统功能划分为多个独立功能单位,在保证整体功能完整的情况下,实现了功能的分别研发和阶段部署。

受網络安全性的限制,气象系统对外服务系统的建设往往需要配备外网服务器和外网IP地址,存在建设费用高、建设周期长的问题,云服务器具有外网网络环境且具有安全性高、性能稳定、性价比高的特点,该系统将WEB服务器架设在云服务器上。

系统主要由一台内网服务器和两台云服务器组成,如图1所示,服务器使用Linux操作系统。内网服务器负责从内网采集各种数据资源,利用RSync同步技术,将气象数据推送到WEB云服务器,在一台云服务器上安装Apache Tomcat,使之成为WEB服务器,主要负责提供WEB服务、API接口服务、管理系统服务和气象数据处理存储,另外一台搭建MySQL产品数据库,组织、存储和管理用户数据与客户端气象产品数据,为系统提供数据支持。

2  系统的设计与实现

2.1  API接口

为便于第三方用户和系统对数据的使用,该系统将数据进行了API接口开发,最大限度实现资源共享[5]。API接口通过跨平台跨语言的WebSeivce服务实现,系统利用Java[6]和PHP[7]语言编写API接口程序,将同步到云服务器端的气象数据转化为方便用户调用的XML与JSON格式。

由于气象服务产品数量繁多,API接口开发前必须制定标准的气象服务信息发布规范。将API接口参数分为必选参数R、可选参数O和一定条件下参数C 3种,必选参数R必须要出现,接口编号、身份标识等参数为必选参数。可选参数便于用户直接获取所需的气象数据,减少网络流量和计算量,以卫星云图为例,卫星云图的可选参数为云图种类、时间、时间段,用户可通过设置请求报文中的可选参数,直接获取指定时间和指定卫星的数据,若可选参数为空,则返回全部卫星数据。

为保障气象数据的安全性,系统对API接口进行了加密,访问用户需要进行身份认证,API认证流程如图2所示。身份认证有两种方式,在管理系统中录入认证和通过终端申请认证。认证完成后,系统通过PBEWithMD5AndDES加密算法为用户分配加密的KEY值和身份标识码,用户调用API接口时,将KEY值与其他参数按照一定的顺序组合成一个URL链接发起HTML请求,服务器对提交的URL链接进行解析后,将解析到的KEY值进行解密,与数据库比较,数据一致,则允许下一步操作;不一致,则提示用户认证申请异常或非法用户。

2.2  智能终端系统

智能终端系统载体为搭载Android[8,9]平台的触摸电子显示屏,显示方式包含滚动显示和触摸显示两种(图3)。为满足不同用户个性化和差异化的需求,系统实现了终端定制显示功能,媒体内容对终端进行精准个性化投放,管理员可根据业务需要,将播放终端进行多维分组,每个组设定不同的媒体播放清单和任务,而不是统一投放。智能终端系统所有展示内容都具有可替换性,包含系统名称、视频、新闻、科普、通知、按钮等;系统具有拓展性,用户可根据需要自主配置显示内容,可拓展显示用户提供的信息,使系统具有通用性;系统具有智能性,实现了数据自动传输运行,减少人工操作。

智能终端系统采用Java开发语言,使用Eclipse与Android SDK的开发工具,采用屏幕自适应技术,应用矢量图的特性,兼容不同版本、规格的Android大屏幕,采用显示屏室内室外自适应技术,可以多分辨率、强弱光自动切换,以适应不同的环境。智能终端系统页面采用jQuery-core技术进行事件处理、Ajax请求、页面刷新等,通过3种页面方式实现了媒体内容对终端的精准个性化投放:①动态同步请求,通过Velocity模板生成页面,智能终端系统重新加载整个页面。Velocity是一个基于Java的模板引擎,允许在终端页面中引用Java代码中定义的数据对象和命令;②Ajax异步请求,可实现终端页面数据的局部刷新,与Velocity模板结合可返回HTML串、JSON数据和简单的字符串;③模板生成的静态页面,静态的网页、网站不需要通过数据库就能够打开,运行速度较快。

智能终端系统根据数据存储的安全性要求,支持云端的远端存储,当发生异常情况时,如断网,可自动切换到本地存储,支持不同版本设备、不同机器间存储不同内容;系统通过网络实现信息以及终端控制与管理,基于网络IP进行数字化传输,智能终端系统发起页面请求后,后台发送标签、视频、文字以及播出任务等内容;通过Velocity模板实现了信息拓展,搭建被动接受机制,强大的自适应拓展接口,可与多种信息实现数据共享,如防震减灾、防洪防水、地质灾害等;智能终端系统采用Ehcache缓存框架技术,Ehcache是一个利用Java实现的简单、高速实现线程安全的缓存管理类库。使用缓存机制处理技术可增强系统业务并发处理能力,降低与数据库的交互次数,极大提高系统性能。

智能终端系统采用气象信息自动更新技术,基于系统搭建文件自动检索机制,实现远端后台自动更新。智能终端凭借系统分配的KEY值和身份识别码,通过API接口获取后台的数据,终端系统显示内容可包括天气预报、天气实况、预警、视频、新闻、科普、通知及其他用户提供信息。当智能终端系统所在地有气象预警信息发布时,预警信息自动替换单位信息并在首页显示,从而增加预警信息发布的时效性,扩大预警信息的传播覆盖面。点击更多按钮进入系统下级页面,如图4所示,该页面包含新闻报道、科普信息、空气质量、台风监测等信息,该页面可为管理系统添加的HTML5[10]页面生成新的按钮。

2.3  管理系统

管理系统主要用于用户、终端、显示信息和API接口的管理,同时监控终端显示内容,确保显示信息的安全。

管理系统以部门为单位进行用户管理。管理系统提供权限分级管理,支持三级权限处理,如可设置省气象局、地市气象局、县气象局三级部门权限。管理员为每级部门分配管理账户和管理权限,各部门可管理维护本部门内终端,部门之间实现信息互通、数据共享,依据权限级别高低对部分信息权限进行屏蔽保护。部门维护人员可修改终端显示的产品信息,并可进行视频、新闻、科普、消息等产品的维护,信息上传时可选择终端。

管理系统实现了智能终端系统的定制显示功能,即不同终端显示内容不同。智能终端第一次运行时,自动跳转到注册页面,用户须填写系统名称、注册位置、部门名称等信息,管理员在管理系统中审核通过后,终端进入信息显示页面。收到注册信息后,管理系统基于智能终端IP地址为智能终端生成一个管理界面,为智能终端分配惟一KEY值和身份識别码,管理系统可为不同终端设置差异化的显示内容,管理员不仅能控制终端系统状态和显示权限,也能根据用户需求修改智能终端名称、勾选终端显示内容及显示标签等。管理员还可拓展终端功能,只需在终端功能管理中录入功能名称,填写HTML5网页地址,即可设置特定终端进行显示。