曾悠 杨明 朱旻翔
摘要:针对桌面客户端版和传统B/S架构的海岛预报服务系统存在移植性差、响应速度慢等问题,利用Silverlight框架的富网络应用特性,结合WebGIS技术,设计了基于B/S结构的海岛预报服务系统实现方案。通过对Silverlight框架、气象数据组织结构、气象数据服务和基于WebGIS的Silverlight实现等关键技术的研究,实现了海岛预报服务的气象要素可视化和具有高扩展性的海岛气象数据服务。应用结果表明,基于Silverlight技术的海岛预报服务系统具有更快的响应速度和更优良的应用效果,为海岛预报服务提供了一种科学高效的实现方式。
关键词:Silverlight技术;海岛预报;预报服务;WebGIS
中图分类号:TP391.4文献标志码:A文章编号:1008-1739(2019)14-55-4
0引言
海岛天气预报一直与海上航运、渔业生产、近海养殖和海岛旅游等息息相关[1]。因中国东南沿海与太平洋相邻,海域宽广横跨东亚季风区,实测的海洋气象资料则相对较少[2],沿海建立的海島气象站、海洋站和浮标站可以为海上运输及作业提供及时准确的气象信息[3],在沿海防风抗台、防灾减灾等方面具有决定性作用。
目前,海岛预报服务系统一般采用基于C/S结构的客户端或基于B/S架构的传统Web模式,然而前者往往缺乏地理信息数据支撑且兼容性较差,后者数据传输速率低、响应速度慢。
本文旨在建立一个基于Silverlight框架、结合WebGIS技术、具有良好展示功能的浙江省海岛预报服务系统,为政府单位、气象业务人员做好防灾减灾和决策服务提供科学有效的技术支撑。
1Silverlight框架
Silverlight是一种既跨平台又跨浏览器的富互联网应用程序(RIA)实现技术[4-5],是基于.Net Framework的交互式Web呈现技术。其特性主要表现在:
①Silverlight可跨浏览器、跨平台、支持RIA且基于浏览器插件。类似Flash动画的创建方法,RIA能在通用浏览器上创建并运行。另外,开发和设计不受限于用户使用的浏览器或平台,由Silverlight创造的应用程序可以运行在所有流行的浏览器中,并且所提供的用户体验都是一致的[6],包括Web平台、Windows桌面版和移动设备(如Windows Phone7)等。
②客户端具备处理和缓存数据的功能。在客户端,Silverlight能同时计算处理和缓存大量数据,因此客户端与服务端之间的交互压力也能有效减少。
③页面交互美观丰富。Silverlight不仅能创建UI元素,且支持第三方控件,在浏览器中现实的内容和效果比仅使用HTML更丰富、更优良。能够融合图片、视频、动画和其他交互内容,在Web页面上为用户展现桌面应用一样丰富的可视效果。Silverlight使用可扩展应用程序标记语言(XAML)来创建元素和UI界面设计。
④Silverlight支持浏览器UI的修改且兼容常见标准和技术,可灵活地集成诸如ASP.NET,AJAX代码来增添功能、增强可视化效果。
⑤Silverlight占用空间小,在浏览器中安装快速便捷,几乎不会对用户体验造成负面影响。
2系统整体设计
2.1系统总体架构
层次化设计是系统总体框架的设计思想,以保证海岛预报服务系统的低耦合和高扩展性。总体框架结构由数据支撑层、应用服务层、业务逻辑层和信息表现层4部分组成。
数据支撑层:用于存储数据的基础数据库。其中,地理信息相关的数据存储于空间数据库,天气现象、最低和最高温度、风向和风力等级等实时和预报数据存储在气象要素数据库中,对数据的调用是应用服务层通过数据库引擎完成的。
应用服务层:系统的主要功能在该层实现,包括空间信息服务、系统集成接口和接口组件管理系统3类主要功能。空间信息服务功能主要包含地理信息数据获取、查看浏览地图、地图图层编辑及地理信息维护,还有与空间数据相关的数据处理方法等;系统集成接口负责依据气象业务需求构造相应的接口组件,完成业务逻辑层和其他数据的集成等功能,本平台需求得到满足的同时,其他外部应用系统也能调用公开提供的功能服务;接口应用管理系统服务是对接口应用范围管理,应用系统能在服务层对其自由调用。
业务逻辑层:是系统的核心层,在此对系统的所有功能进行封装和发布。根据业务逻辑设计,响应表现层请求,按用户要求对应用服务层功能进行调用,完成系统流程,并且能实现服务与服务的相互调用,完成系统任务。此外,业务逻辑层还包括了与空间地理信息和接口管理相关的服务。
信息表现层:用户与应用程序在此交互,是整个系统的可视层,当信息表现层接收到用户的输入后,发送指令给服务器端,随后服务器端接收并处理请求,返回的数据以文字、表格等方式在表现层可视化地展示给用户,完成系统流程。
2.2系统功能设计
系统的主要功能设计包括气象信息展示、查询与获取、站点信息展示、图表展示和地图操作5类,以满足海岛预报服务系统的需求。系统功能示意图如图2所示。
①气象要素信息数据:通过读取实时和预报气象要素数据库,在地理信息上显示各站点的当天实况或未来预报数据(共5天)。
②查询与获取:统计不同类别的气象要素,在空间地图上显示相应站点的实时或预报数据。
③站点信息展示:结合气象要素信息数据库中气象自动站、海洋站、浮标站表信息和海岛地理位置,将代表各海岛站点的站名和经纬度等信息可视化地展示出来。
④图表展示:通过读取气象信息数据库中近24 h的实时数据和未来4天的预报数据,以图表的方式展示各海岛5天内的气象信息变化。
⑤地图操作:从空间信息数据库中获得地理信息并显示地图,可对地图进行包括放大、缩小等基础操作,也能进行漫游、地图类别选择、图层选择、测距、清除屏幕等高一级的操作,且能通过放大和缩小来分层展示各海岛的气象监测和预报信息。
3系统关键技术
海岛预报服务系统的核心主要由气象数据组织、气象数据服务和WebGIS与Silverlight相结合的方案3部分构成。
3.1气象数据组织及存储
气象数据体量大、种类繁多且格式不统一,主要分为气象站实时和历史数据的站点数据、网格化的预报数据、图片形式的栅格数据3大类。站点数据属于结构化数据,利用分布式关系型数据库,采用以字段为主的行存储方式,存储要素主要包括站号、站点名称、经纬度和气象要素等。预报数据是网格化数据,属于非结构化数据,采用分布式存储的方式。站点数据与网格化数据存储方式示意如图3所示。
分布式数据库系统具有物理上分散而逻辑上集中的特点[7],这些存储在不同物理节点的逻辑单元由计算机网络连接,从而形成总体数据库系统,应用程序则可通过网络对各个分布的数据库进行访问,具有较好的可靠性、灵活性和扩展性。
3.2 Web Service技术的数据服务
为了提高气象数据的高可用性和高扩展性,实现异构系统环境下的气象数据高效访问,主要采用Web Service技术实现数据服务。数据服务的实现共分为部署、注册和发布3个部分。在海岛预报服务系统的业务逻辑层和数据支撑层,Web Service响应获取数据或计算的请求,通过访问数据支撑层的气象要素数据信息,将数据转换为应用服务层的接口统一标准格式返回给业务逻辑层。
实现分为2步:①建立Web服务。基于HTTP协议的简单对象访问协议(SOAP)模式,Web Service适用于常用的编程语言,如C/C++,Java,Python等,方便外部应用程序访问和调用Web服务的接口;②部署和发布数据服务。将Web数据服务部署到Web应用服务器上并提供对外服务,已发布的数据服务接口则通过Service程序来访问。
系统的数据服务按照不同的气象数据类型和组织方式,提供了海岛预报服务所需的天气现象、最低温度、最高温度、风向和风力等级5类实况站点及网格化预报等的数据服务,同时发布的数据服务可以为其他业务系统提供服务。
3.3 WebGIS与Silverlight的结合方案
为了满足气象业务人员更直观地分析和浏览海岛预报信息,系统提供了地理信息的功能。基于WebGIS的Silverlight结合方案,主要采用了美国Esri公司发布的ArcGIS API for Silverlight组件,它用于在Silverlight框架上开发WebGIS应用的编程接口。整体结合方案主要由地图服务、气象数据服务和地图Silverlight客户端等组成。Silverlight客户端向地图服务请求地图或气象数据服务,地图服务端或气象数据服务端向客户端返回地图数据或气象数据,客户端根据不同的展示方式,利用Silverlight技术绘制矢量图层、栅格图层或多媒体图层等,如图4所示。
地理数据主要由瓦片文件和地理基础数据组成;气象数据由海洋气象站点及序列和气象网格产品组成。气象地理数据和气象数据分别存储在不同类型的数据库系统里。服务数据格式采用地图瓦片PNG格式或标准化的XML,实现了在Silverlight平台上实时加载绘制基础地理数据、海岛地理信息和预报服务数据,提供了在线交互式的地图缩放、海区选择定位与标记、海区预报图层生成等功能。
3.4 Silverlight技術的系统实现
海岛预报服务系统的Silverlight技术主要在信息表示层和业务逻辑层2个层面实现。
在信息表示层,用XAML定义界面UI和交互方式。界面UI包括界面风格、控件大小和位置等,如地图的选择、海岛气象要素信息的图表布局和海岛站点信息的显示等,使用户在Web浏览器上快速直观地获取信息。交互方式的定义用来获取用户对控件的操作指令,并将指令传达给业务逻辑层,经分析处理后再反馈结果给信息表示层。
在业务逻辑层,主要负责接收并处理信息表示层提交的指令,如获取气象要素信息、查询站点信息和选择地图等。根据业务流程设计,当业务逻辑层接收到交互指令后,通过Web Service异步调用和业务逻辑封装,从数据服务层请求并获取气象要素数据。
在服务端则部署好Silverlight应用程序,当用户通过浏览器访问系统Web页面时,会自动下载xap压缩文件,它包含了Silverlight应用程序需要的所有文件。
海岛预报服务系统中,Silverlight负责实现信息表示层的UI、控件布局以及业务逻辑层的事件、功能,而用户只需在浏览器安装Silverlight插件即可。
4应用实例
目前,采用Silverlight框架WebGIS技术,浙江省海岛预报服务系统已经实现并运用在实际业务中。实践结果显示,系统可以准确地根据用户的需求提供所选海岛的实况、预报气象要素数据及站点信息,并显示对应的地理位置。由于是基于Silverlight的,本系统具有跨平台、跨浏览器的特点。此外,与传统方法相比,提高了系统的响应速度,增强了界面的美观度和功能的丰富性。
5结束语
基于Silverlight的众多优点,研究并建立了海岛预报服务系统,不仅解决了现有系统移植性差、响应慢、维护困难的问题,还提高和扩展了海岛气象数据的可用性,也丰富了系统的界面、功能和交互体验。随着气象事业的发展和对数据要求的提高,海岛气象预报服务业务将面临更多的挑战,本系统也需与时俱进,不断创新与更新。
参考文献
[1]谷铁城.温州浮标站与海岛站极大风的相关性研究[J].中低纬山地气象,2018,42(1):42-47.
[2]江福才,吴力川,文元桥.浙江沿海通航环境风场要素气候变化特征分析[J].武汉理工大学学报,2010,32(7):173-177.
[3]俞力.海岛自动气象站建设中存在的问题及处理[J].北京农业,2014(27):171-172.
[4]孙超,钟珞.基于Silverlight的富界面应用研究[J].武汉理工大学学报,2008,30(12):95-97.
[5]程国雄,胡世清.基于Silverlight的RIA系统架构与设计模式研究[J].计算机工程与设计,2010,31(8):1706-1709.
[6]李爱民,刘晶,马维纲.Silverlight相关技术研究[J].计算机技术与发展,2009,19(6):117-120.
[7]徐拥军,何文春,刘振,等.海量气象站点数据分布式存储测试及其应用[J].贵州气象,2016,40(5):61-68.