摘 要: 針對(duì)異構(gòu)海洋觀測(cè)數(shù)據(jù)交互困難的問(wèn)題,提出基于NetCDF的海洋觀測(cè)數(shù)據(jù)交換格式,定義海洋觀測(cè)數(shù)據(jù)交互規(guī)范,實(shí)現(xiàn)海洋觀測(cè)數(shù)據(jù)靈活裝載和隨機(jī)訪問(wèn)?;诖耍O(shè)計(jì)海洋觀測(cè)數(shù)據(jù)交換平臺(tái)框架,通過(guò)分層架構(gòu)模式實(shí)現(xiàn)海洋觀測(cè)數(shù)據(jù)用戶“一站式”訪問(wèn)。最后,開發(fā)原型系統(tǒng)加以驗(yàn)證。
關(guān)鍵詞: 觀測(cè)數(shù)據(jù); NetCDF; 數(shù)據(jù)交換
隨著科學(xué)技術(shù)進(jìn)步,人類探測(cè)海洋的能力日益提升,近年來(lái),國(guó)家越來(lái)越重視海洋領(lǐng)域的開發(fā)建設(shè),實(shí)施了大批海洋工程項(xiàng)目,提高了利用海洋的能力。但是,在利用海洋觀測(cè)數(shù)據(jù)的實(shí)踐中,數(shù)據(jù)交互困難越顯突出,主要體現(xiàn)在如下方面:
(1)數(shù)據(jù)格式復(fù)雜。當(dāng)前海洋觀測(cè)數(shù)據(jù)常用的數(shù)據(jù)格式包括電報(bào)碼、XML格式文件、文本、數(shù)據(jù)庫(kù)等。不同的數(shù)據(jù)格式要求信息系統(tǒng)提供不同的訪問(wèn)方式,增加了海洋數(shù)據(jù)融合的困難。
(2)海洋應(yīng)用與海洋科學(xué)數(shù)據(jù)存在差異。當(dāng)前數(shù)字海洋所規(guī)范的數(shù)據(jù)格式多為文本或者數(shù)據(jù)庫(kù)文件,但是在預(yù)報(bào)計(jì)算、分析等海洋科學(xué)領(lǐng)域所使用的大多為專業(yè)格式數(shù)據(jù),如NetCDF、Grid等,這種格式的不統(tǒng)一給數(shù)據(jù)交互帶來(lái)困難。
(3)數(shù)據(jù)分布廣泛,我國(guó)海域廣闊,沿海遍布著大大小小多個(gè)海洋機(jī)構(gòu),不同機(jī)構(gòu)掌握一定的海洋觀測(cè)數(shù)據(jù),缺乏統(tǒng)一的安排和協(xié)調(diào),也造成海洋觀測(cè)數(shù)據(jù)共享困難。
本文針對(duì)我國(guó)海洋觀測(cè)數(shù)據(jù)交互存在的實(shí)際困難,提出一套解決方案,在構(gòu)建基于NetCDF通用觀測(cè)數(shù)據(jù)交換格式的基礎(chǔ)上,設(shè)計(jì)海洋觀測(cè)數(shù)據(jù)交換平臺(tái),并在天津海洋觀測(cè)數(shù)據(jù)展示平臺(tái)項(xiàng)目中進(jìn)行驗(yàn)證。
1 相關(guān)研究
近年來(lái),針對(duì)海洋領(lǐng)域數(shù)據(jù)交換和集成,有許多研究機(jī)構(gòu)做了大量工作,取得了豐富的研究成果。美國(guó)海軍和國(guó)家海洋大氣局實(shí)施開發(fā)了IOOS[1-2](Integrated Ocean Observing System)項(xiàng)目,目的是統(tǒng)一分散在各部門的海洋觀測(cè)數(shù)據(jù),提供共享信息,IOOS框架采用分層設(shè)計(jì),并以用戶需求為驅(qū)動(dòng),通過(guò)各層間的數(shù)據(jù)流整合,達(dá)到觀測(cè)數(shù)據(jù)集成的目的。IOOS的分段子系統(tǒng)DMAC[3](Data Management and Communications)則主要負(fù)責(zé)海洋數(shù)據(jù)的傳輸和通訊,DMAC定義了一套共同遵守的、通用的標(biāo)準(zhǔn),實(shí)現(xiàn)海洋觀測(cè)數(shù)據(jù)互操作框架。海洋交互觀測(cè)網(wǎng)ORION[4](Ocean Research Interactive Observatory Networks)項(xiàng)目為科學(xué)家、教育者和普通公眾對(duì)海洋的交互、連續(xù)訪問(wèn)提供了一個(gè)平臺(tái)。美國(guó)NSF、SURA、ONR和NOAA-CSC等組織資助了海洋元數(shù)據(jù)互操作項(xiàng)目MMI [5](Marine Metadata Interoperation)提供了一個(gè)開放的資源共享平臺(tái),便于組織和個(gè)人將與海洋相關(guān)的信息資源注冊(cè)到MMI中,然后進(jìn)行共享。由歐盟資助的MarineXML項(xiàng)目[6]則用于驗(yàn)證XML技術(shù)在提高海洋信息部門之間,特別是海洋觀測(cè)部門之間數(shù)據(jù)互操作性中所起的作用。該項(xiàng)目開發(fā)并改進(jìn)海洋標(biāo)記語(yǔ)言MML。
上述項(xiàng)目從不同角度解決海洋觀測(cè)數(shù)據(jù)的交換與共享,但是上述項(xiàng)目沒(méi)有搭建起海洋應(yīng)用與海洋科研之間的信息共享橋梁,此外,上述項(xiàng)目沒(méi)有為用戶提供一個(gè)屏蔽數(shù)據(jù)共享細(xì)節(jié)的界面,本文設(shè)計(jì)的海洋觀測(cè)數(shù)據(jù)交換平臺(tái)則更多地從用戶易用的角度給出協(xié)同應(yīng)用與科研的海洋觀測(cè)數(shù)據(jù)信息共享解決方案。
2 基于NetCDF的交換數(shù)據(jù)格式定義
NetCDF(Network Common Data Form)[7-8]網(wǎng)絡(luò)通用數(shù)據(jù)格式由UCAR在其Unidata項(xiàng)目中提出。NetCDF利用矩陣方式存儲(chǔ)數(shù)據(jù),具有自描述性、結(jié)構(gòu)獨(dú)立性、隨機(jī)訪問(wèn)性、可追加性、可共享性等特點(diǎn),廣泛應(yīng)用于海洋觀測(cè)領(lǐng)域存儲(chǔ)和交換數(shù)據(jù)。根據(jù)我國(guó)海洋觀測(cè)數(shù)據(jù)交換的應(yīng)用需求,定義基于NetCDF的海洋觀測(cè)交換數(shù)據(jù)格式,如圖1所示。

基于NetCDF的海洋觀測(cè)交換數(shù)據(jù)定義領(lǐng)域內(nèi)觀測(cè)數(shù)據(jù)交換的一般標(biāo)準(zhǔn),通過(guò)交換數(shù)據(jù),使得具有普遍異構(gòu)性的海洋觀測(cè)數(shù)據(jù)以一種通用標(biāo)準(zhǔn)樣式被各類web服務(wù)所調(diào)用,解決數(shù)據(jù)交互困難的問(wèn)題。海洋觀測(cè)交換數(shù)據(jù)所定義的格式包括六部分內(nèi)容。
(1)ObservationData(觀測(cè)數(shù)據(jù)):建立海洋觀測(cè)交換數(shù)據(jù)標(biāo)識(shí),用于標(biāo)識(shí)一個(gè)交換數(shù)據(jù)文件,其中,id為數(shù)據(jù)標(biāo)簽,name為數(shù)據(jù)解釋,ObservationData建立的交換數(shù)據(jù)文件包含一個(gè)維度,多個(gè)變量;
(2)Dimension(維度):解釋海洋觀測(cè)交換數(shù)據(jù)形式,一個(gè)海洋觀測(cè)交換數(shù)據(jù)文件包含唯一一組維度定義,Dimension給出交換數(shù)據(jù)各數(shù)據(jù)項(xiàng)之間的排列,本文給出維度的固定格式,包括:數(shù)據(jù)層次說(shuō)明(level)、緯度(latitude)、經(jīng)度(longitude)和時(shí)間(time);
(3)Variables(變量):對(duì)于維度中各參數(shù)的說(shuō)明,包括參數(shù)名、對(duì)應(yīng)參數(shù)類型以及參數(shù)的取值;
(4)DataType(數(shù)據(jù)類型):通用數(shù)據(jù)類型說(shuō)明;
(5)Attributes(屬性):變量所包含的屬性說(shuō)明,其組成為屬性名(name)、屬性類型(type)、屬性值(value),屬性是海洋交換數(shù)據(jù)的元數(shù)據(jù)說(shuō)明,解釋包含作者、生成時(shí)間、數(shù)據(jù)來(lái)源等信息;
(6)Data(數(shù)據(jù)):海洋觀測(cè)交換數(shù)據(jù)內(nèi)容,所定義的數(shù)據(jù)內(nèi)涵與變量中聲明的數(shù)據(jù)標(biāo)簽一致。
圖2利用實(shí)例說(shuō)明海洋觀測(cè)交換數(shù)據(jù)形式。

3 海洋觀測(cè)數(shù)據(jù)交換平臺(tái)架構(gòu)
在定義海洋觀測(cè)交換數(shù)據(jù)格式的基礎(chǔ)上,設(shè)計(jì)海洋觀測(cè)數(shù)據(jù)交換平臺(tái)架構(gòu),為海洋異構(gòu)觀測(cè)數(shù)據(jù)交互提供一個(gè)可行框架,實(shí)現(xiàn)不同觀測(cè)數(shù)據(jù)之間的轉(zhuǎn)換,為用戶屏蔽異構(gòu)觀測(cè)數(shù)據(jù)獲取的細(xì)節(jié)和過(guò)程。
海洋觀測(cè)數(shù)據(jù)交換平臺(tái)采用層次架構(gòu),按照業(yè)務(wù)邏輯將功能封裝為服務(wù)模塊,按照模塊在平臺(tái)中所處的角色的不同將模塊劃分到不同的業(yè)務(wù)層,同層模塊間功能彼此獨(dú)立,海洋觀測(cè)數(shù)據(jù)交換平臺(tái)架構(gòu)如圖3所示。按照通用程度的不同,海洋觀測(cè)數(shù)據(jù)交換平臺(tái)劃分為數(shù)據(jù)處理層、數(shù)據(jù)轉(zhuǎn)換層、核心服務(wù)層和應(yīng)用層。

3.1 數(shù)據(jù)處理層
數(shù)據(jù)處理層包括適配器和數(shù)據(jù)管道。適配器屏蔽分布在不同數(shù)據(jù)源之間的通信協(xié)議的差異,為平臺(tái)收發(fā)數(shù)據(jù)提供一致的消息轉(zhuǎn)發(fā)接口,不同適配器提供不同通信機(jī)制。數(shù)據(jù)管道則包含多種組件,用于執(zhí)行數(shù)據(jù)傳輸中涉及的不同任務(wù),如數(shù)據(jù)加密/解密等。
3.2 數(shù)據(jù)轉(zhuǎn)換層
數(shù)據(jù)轉(zhuǎn)換層是海洋觀測(cè)數(shù)據(jù)交換平臺(tái)的核心,其數(shù)據(jù)轉(zhuǎn)換引擎主要完成不同異構(gòu)觀測(cè)數(shù)據(jù)向統(tǒng)一交換數(shù)據(jù)的轉(zhuǎn)換。該模塊首先通過(guò)與異構(gòu)觀測(cè)數(shù)據(jù)源聯(lián)通的適配器讀入異構(gòu)數(shù)據(jù),然后按照統(tǒng)一交換數(shù)據(jù)的格式要求將異構(gòu)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,為用戶提供一致的數(shù)據(jù)內(nèi)容。
3.3 核心服務(wù)層
核心服務(wù)層為數(shù)據(jù)交換平臺(tái)提供核心服務(wù)功能,包括可接入服務(wù)、UDDI服務(wù)和消息路由服務(wù)??山尤敕?wù)通過(guò)各種消息通信模式(單向、請(qǐng)求/應(yīng)答和輪詢)將觀測(cè)業(yè)務(wù)邏輯和數(shù)據(jù)包裝成平臺(tái)可以訪問(wèn)的功能。UDDI服務(wù)提供分布在各處的海洋觀測(cè)數(shù)據(jù)和服務(wù)的列表。消息路由服務(wù)則事先在Web Service消息中設(shè)置相應(yīng)的字段,由字段內(nèi)容來(lái)決定觀測(cè)數(shù)據(jù)傳輸路徑的選擇。
3.4 應(yīng)用層
應(yīng)用層是平臺(tái)和用戶交互的接口,用戶通過(guò)應(yīng)用層接口向平臺(tái)提出數(shù)據(jù)請(qǐng)求,通過(guò)任務(wù)轉(zhuǎn)換,平臺(tái)為用戶提供一致的海洋觀測(cè)數(shù)據(jù)內(nèi)容。
4 應(yīng)用實(shí)例
為了驗(yàn)證海洋觀測(cè)數(shù)據(jù)交換平臺(tái)設(shè)計(jì)的可行性,開發(fā)了天津海洋觀測(cè)數(shù)據(jù)展示平臺(tái),是一套與國(guó)家海洋技術(shù)中心合作開發(fā)的軍民兩用海洋觀測(cè)數(shù)據(jù)展示平臺(tái)。平臺(tái)涉及多種復(fù)雜海洋觀測(cè)數(shù)據(jù)類型,通過(guò)海洋觀測(cè)數(shù)據(jù)交換平臺(tái)的數(shù)據(jù)轉(zhuǎn)換,為用戶提供觀測(cè)數(shù)據(jù)展示。
圖4所示為天津海洋觀測(cè)數(shù)據(jù)展示平臺(tái)實(shí)現(xiàn)界面。其中,左側(cè)為數(shù)據(jù)查詢界面,用戶通過(guò)查詢界面向平臺(tái)提出海洋溫度場(chǎng)數(shù)據(jù)查詢請(qǐng)求,平臺(tái)通過(guò)數(shù)據(jù)轉(zhuǎn)換將符合要求的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一格式,并以可視化方式展示,(如圖4右側(cè))。

本文從海洋觀測(cè)異構(gòu)數(shù)據(jù)交換與共享出發(fā),定義基于NetCDF的海洋觀測(cè)交換數(shù)據(jù)格式,設(shè)計(jì)基于此的海洋觀測(cè)數(shù)據(jù)交換平臺(tái)架構(gòu),并開發(fā)原型系統(tǒng)對(duì)上述研究進(jìn)行驗(yàn)證。
經(jīng)過(guò)原型系統(tǒng)實(shí)踐驗(yàn)證,本文給出的海洋觀測(cè)數(shù)據(jù)共享解決方案可以有效地解決分布在不同資源位置的異構(gòu)海洋觀測(cè)數(shù)據(jù)之間的交互和共享,并為用戶提供屏蔽信息共享細(xì)節(jié)過(guò)程的接口,返回統(tǒng)一的觀測(cè)數(shù)據(jù)。
參考文獻(xiàn)
[1] 王文俊,周智海,羅琳.海洋環(huán)境監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(1).
[2] 王文俊,羅英偉,汪小林,等.城市空間信息及服務(wù)集成框架[J].計(jì)算機(jī)學(xué)報(bào),2005,28(7):1213-1222.
[3] DMAC Steering Committee. The DMAC subsystem-a data communications infrastructure[A]. The National Office for Integrated and Sustained Ocean Observations Ocean.US Publication[C]. 2005,6:31-47.
[4] International Framework for ORION.ORION workshop reportof Ocean Research Interactive Observatory Networks[EB/OL]. http://www.orionprogram.org/PDFs/workshop_report.pdf,2006-8-10.
[5] NSF,SURA,ONR.Marinemetadata[EB/OL].http://marinemetadata.org/,2010-2-11.
[6] IOC. MarineXML Project [EB/OL]. https://www.seegrid. csiro.au/twiki /bin/view/Marineweb/MarineXML,2009-3-20.
[7] Unidata官方網(wǎng)站. http://www.unidata.ucar.edu/software/netcdf/. 2008.
[8] BOWMAN K P. Reading NetCDF files. An Introduction to Programming with IDL, 2005:115-125.
