曾悠 楊明 朱旻翔
摘要:針對(duì)桌面客戶端版和傳統(tǒng)B/S架構(gòu)的海島預(yù)報(bào)服務(wù)系統(tǒng)存在移植性差、響應(yīng)速度慢等問(wèn)題,利用Silverlight框架的富網(wǎng)絡(luò)應(yīng)用特性,結(jié)合WebGIS技術(shù),設(shè)計(jì)了基于B/S結(jié)構(gòu)的海島預(yù)報(bào)服務(wù)系統(tǒng)實(shí)現(xiàn)方案。通過(guò)對(duì)Silverlight框架、氣象數(shù)據(jù)組織結(jié)構(gòu)、氣象數(shù)據(jù)服務(wù)和基于WebGIS的Silverlight實(shí)現(xiàn)等關(guān)鍵技術(shù)的研究,實(shí)現(xiàn)了海島預(yù)報(bào)服務(wù)的氣象要素可視化和具有高擴(kuò)展性的海島氣象數(shù)據(jù)服務(wù)。應(yīng)用結(jié)果表明,基于Silverlight技術(shù)的海島預(yù)報(bào)服務(wù)系統(tǒng)具有更快的響應(yīng)速度和更優(yōu)良的應(yīng)用效果,為海島預(yù)報(bào)服務(wù)提供了一種科學(xué)高效的實(shí)現(xiàn)方式。
關(guān)鍵詞:Silverlight技術(shù);海島預(yù)報(bào);預(yù)報(bào)服務(wù);WebGIS
中圖分類號(hào):TP391.4文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2019)14-55-4
0引言
海島天氣預(yù)報(bào)一直與海上航運(yùn)、漁業(yè)生產(chǎn)、近海養(yǎng)殖和海島旅游等息息相關(guān)[1]。因中國(guó)東南沿海與太平洋相鄰,海域?qū)拸V橫跨東亞季風(fēng)區(qū),實(shí)測(cè)的海洋氣象資料則相對(duì)較少[2],沿海建立的海島氣象站、海洋站和浮標(biāo)站可以為海上運(yùn)輸及作業(yè)提供及時(shí)準(zhǔn)確的氣象信息[3],在沿海防風(fēng)抗臺(tái)、防災(zāi)減災(zāi)等方面具有決定性作用。
目前,海島預(yù)報(bào)服務(wù)系統(tǒng)一般采用基于C/S結(jié)構(gòu)的客戶端或基于B/S架構(gòu)的傳統(tǒng)Web模式,然而前者往往缺乏地理信息數(shù)據(jù)支撐且兼容性較差,后者數(shù)據(jù)傳輸速率低、響應(yīng)速度慢。
本文旨在建立一個(gè)基于Silverlight框架、結(jié)合WebGIS技術(shù)、具有良好展示功能的浙江省海島預(yù)報(bào)服務(wù)系統(tǒng),為政府單位、氣象業(yè)務(wù)人員做好防災(zāi)減災(zāi)和決策服務(wù)提供科學(xué)有效的技術(shù)支撐。
1Silverlight框架
Silverlight是一種既跨平臺(tái)又跨瀏覽器的富互聯(lián)網(wǎng)應(yīng)用程序(RIA)實(shí)現(xiàn)技術(shù)[4-5],是基于.Net Framework的交互式Web呈現(xiàn)技術(shù)。其特性主要表現(xiàn)在:
①Silverlight可跨瀏覽器、跨平臺(tái)、支持RIA且基于瀏覽器插件。類似Flash動(dòng)畫(huà)的創(chuàng)建方法,RIA能在通用瀏覽器上創(chuàng)建并運(yùn)行。另外,開(kāi)發(fā)和設(shè)計(jì)不受限于用戶使用的瀏覽器或平臺(tái),由Silverlight創(chuàng)造的應(yīng)用程序可以運(yùn)行在所有流行的瀏覽器中,并且所提供的用戶體驗(yàn)都是一致的[6],包括Web平臺(tái)、Windows桌面版和移動(dòng)設(shè)備(如Windows Phone7)等。
②客戶端具備處理和緩存數(shù)據(jù)的功能。在客戶端,Silverlight能同時(shí)計(jì)算處理和緩存大量數(shù)據(jù),因此客戶端與服務(wù)端之間的交互壓力也能有效減少。
③頁(yè)面交互美觀豐富。Silverlight不僅能創(chuàng)建UI元素,且支持第三方控件,在瀏覽器中現(xiàn)實(shí)的內(nèi)容和效果比僅使用HTML更豐富、更優(yōu)良。能夠融合圖片、視頻、動(dòng)畫(huà)和其他交互內(nèi)容,在Web頁(yè)面上為用戶展現(xiàn)桌面應(yīng)用一樣豐富的可視效果。Silverlight使用可擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言(XAML)來(lái)創(chuàng)建元素和UI界面設(shè)計(jì)。
④Silverlight支持瀏覽器UI的修改且兼容常見(jiàn)標(biāo)準(zhǔn)和技術(shù),可靈活地集成諸如ASP.NET,AJAX代碼來(lái)增添功能、增強(qiáng)可視化效果。
⑤Silverlight占用空間小,在瀏覽器中安裝快速便捷,幾乎不會(huì)對(duì)用戶體驗(yàn)造成負(fù)面影響。
2系統(tǒng)整體設(shè)計(jì)
2.1系統(tǒng)總體架構(gòu)
層次化設(shè)計(jì)是系統(tǒng)總體框架的設(shè)計(jì)思想,以保證海島預(yù)報(bào)服務(wù)系統(tǒng)的低耦合和高擴(kuò)展性??傮w框架結(jié)構(gòu)由數(shù)據(jù)支撐層、應(yīng)用服務(wù)層、業(yè)務(wù)邏輯層和信息表現(xiàn)層4部分組成。
數(shù)據(jù)支撐層:用于存儲(chǔ)數(shù)據(jù)的基礎(chǔ)數(shù)據(jù)庫(kù)。其中,地理信息相關(guān)的數(shù)據(jù)存儲(chǔ)于空間數(shù)據(jù)庫(kù),天氣現(xiàn)象、最低和最高溫度、風(fēng)向和風(fēng)力等級(jí)等實(shí)時(shí)和預(yù)報(bào)數(shù)據(jù)存儲(chǔ)在氣象要素?cái)?shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)的調(diào)用是應(yīng)用服務(wù)層通過(guò)數(shù)據(jù)庫(kù)引擎完成的。
應(yīng)用服務(wù)層:系統(tǒng)的主要功能在該層實(shí)現(xiàn),包括空間信息服務(wù)、系統(tǒng)集成接口和接口組件管理系統(tǒng)3類主要功能??臻g信息服務(wù)功能主要包含地理信息數(shù)據(jù)獲取、查看瀏覽地圖、地圖圖層編輯及地理信息維護(hù),還有與空間數(shù)據(jù)相關(guān)的數(shù)據(jù)處理方法等;系統(tǒng)集成接口負(fù)責(zé)依據(jù)氣象業(yè)務(wù)需求構(gòu)造相應(yīng)的接口組件,完成業(yè)務(wù)邏輯層和其他數(shù)據(jù)的集成等功能,本平臺(tái)需求得到滿足的同時(shí),其他外部應(yīng)用系統(tǒng)也能調(diào)用公開(kāi)提供的功能服務(wù);接口應(yīng)用管理系統(tǒng)服務(wù)是對(duì)接口應(yīng)用范圍管理,應(yīng)用系統(tǒng)能在服務(wù)層對(duì)其自由調(diào)用。
業(yè)務(wù)邏輯層:是系統(tǒng)的核心層,在此對(duì)系統(tǒng)的所有功能進(jìn)行封裝和發(fā)布。根據(jù)業(yè)務(wù)邏輯設(shè)計(jì),響應(yīng)表現(xiàn)層請(qǐng)求,按用戶要求對(duì)應(yīng)用服務(wù)層功能進(jìn)行調(diào)用,完成系統(tǒng)流程,并且能實(shí)現(xiàn)服務(wù)與服務(wù)的相互調(diào)用,完成系統(tǒng)任務(wù)。此外,業(yè)務(wù)邏輯層還包括了與空間地理信息和接口管理相關(guān)的服務(wù)。
信息表現(xiàn)層:用戶與應(yīng)用程序在此交互,是整個(gè)系統(tǒng)的可視層,當(dāng)信息表現(xiàn)層接收到用戶的輸入后,發(fā)送指令給服務(wù)器端,隨后服務(wù)器端接收并處理請(qǐng)求,返回的數(shù)據(jù)以文字、表格等方式在表現(xiàn)層可視化地展示給用戶,完成系統(tǒng)流程。
2.2系統(tǒng)功能設(shè)計(jì)
系統(tǒng)的主要功能設(shè)計(jì)包括氣象信息展示、查詢與獲取、站點(diǎn)信息展示、圖表展示和地圖操作5類,以滿足海島預(yù)報(bào)服務(wù)系統(tǒng)的需求。系統(tǒng)功能示意圖如圖2所示。
①氣象要素信息數(shù)據(jù):通過(guò)讀取實(shí)時(shí)和預(yù)報(bào)氣象要素?cái)?shù)據(jù)庫(kù),在地理信息上顯示各站點(diǎn)的當(dāng)天實(shí)況或未來(lái)預(yù)報(bào)數(shù)據(jù)(共5天)。
②查詢與獲?。航y(tǒng)計(jì)不同類別的氣象要素,在空間地圖上顯示相應(yīng)站點(diǎn)的實(shí)時(shí)或預(yù)報(bào)數(shù)據(jù)。
③站點(diǎn)信息展示:結(jié)合氣象要素信息數(shù)據(jù)庫(kù)中氣象自動(dòng)站、海洋站、浮標(biāo)站表信息和海島地理位置,將代表各海島站點(diǎn)的站名和經(jīng)緯度等信息可視化地展示出來(lái)。
④圖表展示:通過(guò)讀取氣象信息數(shù)據(jù)庫(kù)中近24 h的實(shí)時(shí)數(shù)據(jù)和未來(lái)4天的預(yù)報(bào)數(shù)據(jù),以圖表的方式展示各海島5天內(nèi)的氣象信息變化。
⑤地圖操作:從空間信息數(shù)據(jù)庫(kù)中獲得地理信息并顯示地圖,可對(duì)地圖進(jìn)行包括放大、縮小等基礎(chǔ)操作,也能進(jìn)行漫游、地圖類別選擇、圖層選擇、測(cè)距、清除屏幕等高一級(jí)的操作,且能通過(guò)放大和縮小來(lái)分層展示各海島的氣象監(jiān)測(cè)和預(yù)報(bào)信息。
3系統(tǒng)關(guān)鍵技術(shù)
海島預(yù)報(bào)服務(wù)系統(tǒng)的核心主要由氣象數(shù)據(jù)組織、氣象數(shù)據(jù)服務(wù)和WebGIS與Silverlight相結(jié)合的方案3部分構(gòu)成。
3.1氣象數(shù)據(jù)組織及存儲(chǔ)
氣象數(shù)據(jù)體量大、種類繁多且格式不統(tǒng)一,主要分為氣象站實(shí)時(shí)和歷史數(shù)據(jù)的站點(diǎn)數(shù)據(jù)、網(wǎng)格化的預(yù)報(bào)數(shù)據(jù)、圖片形式的柵格數(shù)據(jù)3大類。站點(diǎn)數(shù)據(jù)屬于結(jié)構(gòu)化數(shù)據(jù),利用分布式關(guān)系型數(shù)據(jù)庫(kù),采用以字段為主的行存儲(chǔ)方式,存儲(chǔ)要素主要包括站號(hào)、站點(diǎn)名稱、經(jīng)緯度和氣象要素等。預(yù)報(bào)數(shù)據(jù)是網(wǎng)格化數(shù)據(jù),屬于非結(jié)構(gòu)化數(shù)據(jù),采用分布式存儲(chǔ)的方式。站點(diǎn)數(shù)據(jù)與網(wǎng)格化數(shù)據(jù)存儲(chǔ)方式示意如圖3所示。
分布式數(shù)據(jù)庫(kù)系統(tǒng)具有物理上分散而邏輯上集中的特點(diǎn)[7],這些存儲(chǔ)在不同物理節(jié)點(diǎn)的邏輯單元由計(jì)算機(jī)網(wǎng)絡(luò)連接,從而形成總體數(shù)據(jù)庫(kù)系統(tǒng),應(yīng)用程序則可通過(guò)網(wǎng)絡(luò)對(duì)各個(gè)分布的數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),具有較好的可靠性、靈活性和擴(kuò)展性。
3.2 Web Service技術(shù)的數(shù)據(jù)服務(wù)
為了提高氣象數(shù)據(jù)的高可用性和高擴(kuò)展性,實(shí)現(xiàn)異構(gòu)系統(tǒng)環(huán)境下的氣象數(shù)據(jù)高效訪問(wèn),主要采用Web Service技術(shù)實(shí)現(xiàn)數(shù)據(jù)服務(wù)。數(shù)據(jù)服務(wù)的實(shí)現(xiàn)共分為部署、注冊(cè)和發(fā)布3個(gè)部分。在海島預(yù)報(bào)服務(wù)系統(tǒng)的業(yè)務(wù)邏輯層和數(shù)據(jù)支撐層,Web Service響應(yīng)獲取數(shù)據(jù)或計(jì)算的請(qǐng)求,通過(guò)訪問(wèn)數(shù)據(jù)支撐層的氣象要素?cái)?shù)據(jù)信息,將數(shù)據(jù)轉(zhuǎn)換為應(yīng)用服務(wù)層的接口統(tǒng)一標(biāo)準(zhǔn)格式返回給業(yè)務(wù)邏輯層。
實(shí)現(xiàn)分為2步:①建立Web服務(wù)?;贖TTP協(xié)議的簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)模式,Web Service適用于常用的編程語(yǔ)言,如C/C++,Java,Python等,方便外部應(yīng)用程序訪問(wèn)和調(diào)用Web服務(wù)的接口;②部署和發(fā)布數(shù)據(jù)服務(wù)。將Web數(shù)據(jù)服務(wù)部署到Web應(yīng)用服務(wù)器上并提供對(duì)外服務(wù),已發(fā)布的數(shù)據(jù)服務(wù)接口則通過(guò)Service程序來(lái)訪問(wèn)。
系統(tǒng)的數(shù)據(jù)服務(wù)按照不同的氣象數(shù)據(jù)類型和組織方式,提供了海島預(yù)報(bào)服務(wù)所需的天氣現(xiàn)象、最低溫度、最高溫度、風(fēng)向和風(fēng)力等級(jí)5類實(shí)況站點(diǎn)及網(wǎng)格化預(yù)報(bào)等的數(shù)據(jù)服務(wù),同時(shí)發(fā)布的數(shù)據(jù)服務(wù)可以為其他業(yè)務(wù)系統(tǒng)提供服務(wù)。
3.3 WebGIS與Silverlight的結(jié)合方案
為了滿足氣象業(yè)務(wù)人員更直觀地分析和瀏覽海島預(yù)報(bào)信息,系統(tǒng)提供了地理信息的功能?;赪ebGIS的Silverlight結(jié)合方案,主要采用了美國(guó)Esri公司發(fā)布的ArcGIS API for Silverlight組件,它用于在Silverlight框架上開(kāi)發(fā)WebGIS應(yīng)用的編程接口。整體結(jié)合方案主要由地圖服務(wù)、氣象數(shù)據(jù)服務(wù)和地圖Silverlight客戶端等組成。Silverlight客戶端向地圖服務(wù)請(qǐng)求地圖或氣象數(shù)據(jù)服務(wù),地圖服務(wù)端或氣象數(shù)據(jù)服務(wù)端向客戶端返回地圖數(shù)據(jù)或氣象數(shù)據(jù),客戶端根據(jù)不同的展示方式,利用Silverlight技術(shù)繪制矢量圖層、柵格圖層或多媒體圖層等,如圖4所示。
地理數(shù)據(jù)主要由瓦片文件和地理基礎(chǔ)數(shù)據(jù)組成;氣象數(shù)據(jù)由海洋氣象站點(diǎn)及序列和氣象網(wǎng)格產(chǎn)品組成。氣象地理數(shù)據(jù)和氣象數(shù)據(jù)分別存儲(chǔ)在不同類型的數(shù)據(jù)庫(kù)系統(tǒng)里。服務(wù)數(shù)據(jù)格式采用地圖瓦片PNG格式或標(biāo)準(zhǔn)化的XML,實(shí)現(xiàn)了在Silverlight平臺(tái)上實(shí)時(shí)加載繪制基礎(chǔ)地理數(shù)據(jù)、海島地理信息和預(yù)報(bào)服務(wù)數(shù)據(jù),提供了在線交互式的地圖縮放、海區(qū)選擇定位與標(biāo)記、海區(qū)預(yù)報(bào)圖層生成等功能。
3.4 Silverlight技術(shù)的系統(tǒng)實(shí)現(xiàn)
海島預(yù)報(bào)服務(wù)系統(tǒng)的Silverlight技術(shù)主要在信息表示層和業(yè)務(wù)邏輯層2個(gè)層面實(shí)現(xiàn)。
在信息表示層,用XAML定義界面UI和交互方式。界面UI包括界面風(fēng)格、控件大小和位置等,如地圖的選擇、海島氣象要素信息的圖表布局和海島站點(diǎn)信息的顯示等,使用戶在Web瀏覽器上快速直觀地獲取信息。交互方式的定義用來(lái)獲取用戶對(duì)控件的操作指令,并將指令傳達(dá)給業(yè)務(wù)邏輯層,經(jīng)分析處理后再反饋結(jié)果給信息表示層。
在業(yè)務(wù)邏輯層,主要負(fù)責(zé)接收并處理信息表示層提交的指令,如獲取氣象要素信息、查詢站點(diǎn)信息和選擇地圖等。根據(jù)業(yè)務(wù)流程設(shè)計(jì),當(dāng)業(yè)務(wù)邏輯層接收到交互指令后,通過(guò)Web Service異步調(diào)用和業(yè)務(wù)邏輯封裝,從數(shù)據(jù)服務(wù)層請(qǐng)求并獲取氣象要素?cái)?shù)據(jù)。
在服務(wù)端則部署好Silverlight應(yīng)用程序,當(dāng)用戶通過(guò)瀏覽器訪問(wèn)系統(tǒng)Web頁(yè)面時(shí),會(huì)自動(dòng)下載xap壓縮文件,它包含了Silverlight應(yīng)用程序需要的所有文件。
海島預(yù)報(bào)服務(wù)系統(tǒng)中,Silverlight負(fù)責(zé)實(shí)現(xiàn)信息表示層的UI、控件布局以及業(yè)務(wù)邏輯層的事件、功能,而用戶只需在瀏覽器安裝Silverlight插件即可。
4應(yīng)用實(shí)例
目前,采用Silverlight框架WebGIS技術(shù),浙江省海島預(yù)報(bào)服務(wù)系統(tǒng)已經(jīng)實(shí)現(xiàn)并運(yùn)用在實(shí)際業(yè)務(wù)中。實(shí)踐結(jié)果顯示,系統(tǒng)可以準(zhǔn)確地根據(jù)用戶的需求提供所選海島的實(shí)況、預(yù)報(bào)氣象要素?cái)?shù)據(jù)及站點(diǎn)信息,并顯示對(duì)應(yīng)的地理位置。由于是基于Silverlight的,本系統(tǒng)具有跨平臺(tái)、跨瀏覽器的特點(diǎn)。此外,與傳統(tǒng)方法相比,提高了系統(tǒng)的響應(yīng)速度,增強(qiáng)了界面的美觀度和功能的豐富性。
5結(jié)束語(yǔ)
基于Silverlight的眾多優(yōu)點(diǎn),研究并建立了海島預(yù)報(bào)服務(wù)系統(tǒng),不僅解決了現(xiàn)有系統(tǒng)移植性差、響應(yīng)慢、維護(hù)困難的問(wèn)題,還提高和擴(kuò)展了海島氣象數(shù)據(jù)的可用性,也豐富了系統(tǒng)的界面、功能和交互體驗(yàn)。隨著氣象事業(yè)的發(fā)展和對(duì)數(shù)據(jù)要求的提高,海島氣象預(yù)報(bào)服務(wù)業(yè)務(wù)將面臨更多的挑戰(zhàn),本系統(tǒng)也需與時(shí)俱進(jìn),不斷創(chuàng)新與更新。
參考文獻(xiàn)
[1]谷鐵城.溫州浮標(biāo)站與海島站極大風(fēng)的相關(guān)性研究[J].中低緯山地氣象,2018,42(1):42-47.
[2]江福才,吳力川,文元橋.浙江沿海通航環(huán)境風(fēng)場(chǎng)要素氣候變化特征分析[J].武漢理工大學(xué)學(xué)報(bào),2010,32(7):173-177.
[3]俞力.海島自動(dòng)氣象站建設(shè)中存在的問(wèn)題及處理[J].北京農(nóng)業(yè),2014(27):171-172.
[4]孫超,鐘珞.基于Silverlight的富界面應(yīng)用研究[J].武漢理工大學(xué)學(xué)報(bào),2008,30(12):95-97.
[5]程國(guó)雄,胡世清.基于Silverlight的RIA系統(tǒng)架構(gòu)與設(shè)計(jì)模式研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(8):1706-1709.
[6]李愛(ài)民,劉晶,馬維綱.Silverlight相關(guān)技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(6):117-120.
[7]徐擁軍,何文春,劉振,等.海量氣象站點(diǎn)數(shù)據(jù)分布式存儲(chǔ)測(cè)試及其應(yīng)用[J].貴州氣象,2016,40(5):61-68.
計(jì)算機(jī)與網(wǎng)絡(luò)2019年14期