陳俊寧
海洋數(shù)據(jù)管理與可視化平臺(tái)設(shè)計(jì)
陳俊寧
陳俊寧1胡乃軍2劉 青3
1.中國海洋大學(xué)信息科學(xué)與工程學(xué)院;2.青島市工商局信息中心;3.中國海洋大學(xué)圖書館
陳俊寧(1989-)男,碩士研究生,研究領(lǐng)域?yàn)檐浖こ?;胡乃軍?964-)男,本科, 高級(jí)工程師,研究領(lǐng)域?yàn)樾畔⒐芾?;劉青?974-)女, 碩士研究生。
海洋數(shù)據(jù)復(fù)雜多樣,海洋數(shù)據(jù)的管理與可視化困難。針對這些問題,提出數(shù)據(jù)管理及可視化軟件設(shè)計(jì)方案,平臺(tái)各模塊采用基于組件的軟件開發(fā)技術(shù)進(jìn)行了詳細(xì)設(shè)計(jì),提高了系統(tǒng)的可擴(kuò)展性和模塊重用性。實(shí)際應(yīng)用表明,該設(shè)計(jì)方案有效、可行,同時(shí)為其他海洋數(shù)據(jù)管理與可視化平臺(tái)設(shè)計(jì)提供了借鑒。
目前在對海洋資源開發(fā)利用之前,需要對試驗(yàn)場區(qū)海域的環(huán)境進(jìn)行長時(shí)間的調(diào)查,海上試驗(yàn)場提供場區(qū)的環(huán)境調(diào)查數(shù)據(jù)主要包括溫度、鹽度、風(fēng)向、風(fēng)速、濕度、波高、波向、潮汐等海洋數(shù)據(jù)。通過海上試驗(yàn)場能夠充分掌握整個(gè)試驗(yàn)場的環(huán)境狀況。對于大量來之不易的海洋數(shù)據(jù),如何快速而有效地進(jìn)行海洋數(shù)據(jù)的存儲(chǔ)、管理、分析、處理和共享,是海洋觀測資料管理的一個(gè)極其重要的任務(wù)。為此建立一套以海洋數(shù)據(jù)為對象,集海洋數(shù)據(jù)管理、數(shù)據(jù)分析處理和數(shù)據(jù)發(fā)布共享為一體的數(shù)據(jù)管理與可視化系統(tǒng),是海洋防災(zāi)減災(zāi)、海洋工程開發(fā)、海洋環(huán)境保護(hù)、海洋國防安全等一系列涉海事業(yè)發(fā)展的重要基礎(chǔ)之一。國家海洋908專項(xiàng)開展了數(shù)字海洋可視化系統(tǒng)的相關(guān)研究工作,研究內(nèi)容包括海洋數(shù)據(jù)采集、處理、分析計(jì)算、數(shù)據(jù)庫管理以及集成應(yīng)用,其重點(diǎn)和核心是海洋數(shù)據(jù)的可視化集成應(yīng)用。
海洋數(shù)據(jù)管理與可視化平臺(tái)采用分層結(jié)構(gòu)設(shè)計(jì),分為數(shù)據(jù)接收層、數(shù)據(jù)管理層、數(shù)據(jù)應(yīng)用層。每一層采用組件開發(fā)模式,采用組件開發(fā)模式有助于開發(fā)效率,提高代碼的重用性。首先平臺(tái)將海洋數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫服務(wù)器中,同時(shí)對外提供數(shù)據(jù)服務(wù)接口。平臺(tái)調(diào)用數(shù)據(jù)服務(wù)接口,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行訪問,通過可視化手段對海洋數(shù)據(jù)進(jìn)行顯示。
體系結(jié)構(gòu)
海洋數(shù)據(jù)管理與可視化平臺(tái)總體結(jié)構(gòu)采用分層結(jié)構(gòu),由數(shù)據(jù)接收層模塊、數(shù)據(jù)管理層模塊、數(shù)據(jù)應(yīng)用層模塊組成,各層之間具有較強(qiáng)的獨(dú)立性。總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
其中數(shù)據(jù)接收層負(fù)責(zé)對海洋原始數(shù)據(jù)進(jìn)行接收、預(yù)處理,并將海洋數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)服務(wù)器中。數(shù)據(jù)管理層負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行設(shè)計(jì),對外提供WebService接口服務(wù),為數(shù)據(jù)應(yīng)用層提供海洋原始數(shù)據(jù)。數(shù)據(jù)應(yīng)用層負(fù)責(zé)對用戶請求進(jìn)行處理,對海洋數(shù)據(jù)進(jìn)行曲線顯示、玫瑰圖顯示、剖面圖顯示、數(shù)據(jù)比較顯示等,使用戶能夠直觀的觀察到數(shù)據(jù)變化。
功能結(jié)構(gòu)
平臺(tái)的功能包括地圖導(dǎo)航模塊、數(shù)據(jù)管理模塊、數(shù)據(jù)預(yù)處理模塊、可視化模塊、用戶管理模塊五部分。系統(tǒng)的功能結(jié)構(gòu)如圖2所示。
1)地圖導(dǎo)航模塊對平臺(tái)以及平臺(tái)上的儀器進(jìn)行顯示,用戶能夠直觀的觀察到平臺(tái)以及平臺(tái)儀器的基本信息。單擊相應(yīng)的圖標(biāo)可以進(jìn)入該平臺(tái)下海洋數(shù)據(jù)可視化界面。
2)數(shù)據(jù)管理模塊主要提供數(shù)據(jù)列表和數(shù)據(jù)下載功能,系統(tǒng)將海洋數(shù)據(jù)以列表的形式提供給用戶。用戶可以根據(jù)自己的需要對海洋數(shù)據(jù)進(jìn)行下載,以CSV格式保存到本地。
3)數(shù)據(jù)預(yù)處理模塊將原始海洋數(shù)據(jù)文件,解析并存儲(chǔ)到數(shù)據(jù)庫中,對外提供WebService接口服務(wù)。
圖2 系統(tǒng)功能結(jié)構(gòu)
4)可視化模塊將最近一段時(shí)間內(nèi)海洋數(shù)據(jù)繪制成曲線形式進(jìn)行顯示。可視化顯示主要有數(shù)據(jù)曲線顯示、數(shù)據(jù)玫瑰圖顯示、數(shù)據(jù)剖面圖顯示、數(shù)據(jù)比較顯示、參數(shù)關(guān)聯(lián)曲線顯示。數(shù)據(jù)曲線顯示將各種海洋數(shù)據(jù)隨時(shí)間變化趨勢以曲線形式進(jìn)行顯示,同時(shí)提供曲線放大、拖放、標(biāo)注功能,以方便用戶分析數(shù)據(jù)。玫瑰圖組件顯示玫瑰圖所處的極坐標(biāo)系,在每個(gè)方向上顯示當(dāng)前頻率和數(shù)值。數(shù)據(jù)剖面顯示對某個(gè)儀器不同深度的傳感器監(jiān)測的數(shù)據(jù)以曲線形式顯示,可以直觀的顯示不同的深度的觀測要素?cái)?shù)值變化。數(shù)據(jù)比較顯示將同一類型儀器監(jiān)測到的數(shù)據(jù)進(jìn)行比較。參數(shù)關(guān)聯(lián)顯示將兩種具有關(guān)聯(lián)關(guān)系的觀測要素進(jìn)行可視化顯示,使用戶直觀的觀察到二者之間的聯(lián)系。
5)用戶管理模塊主要是控制對系統(tǒng)的操作權(quán)限,分為管理員用戶和普通用戶。管理員用戶擁有系統(tǒng)的最高權(quán)限,可以為可視化平臺(tái)添加、修改海洋平臺(tái)和海洋儀器信息和對海洋數(shù)據(jù)進(jìn)行錄入,同時(shí)可以創(chuàng)建管理員和普通用戶。普通用戶可以查看海洋平臺(tái)跟海洋儀器下數(shù)據(jù)的可視化,同時(shí)可以對海洋數(shù)據(jù)進(jìn)行下載等。
接口設(shè)計(jì)
數(shù)據(jù)訪問接口為應(yīng)用層組件提供數(shù)據(jù)訪問通道, 客戶端通過調(diào)用WebService接口對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)訪問。數(shù)據(jù)服務(wù)接口以JASON對象形式返回,JASON比傳統(tǒng)XML更具有輕量級(jí),傳輸數(shù)據(jù)量少,傳輸比XML經(jīng)濟(jì),因此將數(shù)據(jù)編碼成JASON形式進(jìn)行數(shù)據(jù)傳輸。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式規(guī)范,適用于多種異構(gòu)環(huán)境之間進(jìn)行數(shù)據(jù)傳輸。一個(gè)WebService就是一個(gè)應(yīng)用程序,它可以通過與廠商無關(guān)的通信協(xié)議(如HTTP)從其他系統(tǒng)跨網(wǎng)絡(luò)接受XML格式的請求,同時(shí),WebService也是一種松耦合、面向服務(wù)的架構(gòu),服務(wù)之間通過定義良好的接口聯(lián)系起來,其獨(dú)立于操作系統(tǒng)、硬件平臺(tái)、編程語言的實(shí)現(xiàn)方式,以及基于XML的數(shù)據(jù)封裝,使WebService廣泛地應(yīng)用與Web開發(fā)中。系統(tǒng)中常用的服務(wù)接口如下。
AddPlatFormInfo():該接口功能用于用戶添加平臺(tái)信息。
GetPlatFormInfo():該接口功能用于獲取所有的平臺(tái)信息。
DeletePlatFormInfoById():該接口功能用于刪除特定的平臺(tái)信息。
AddInstrumentInfo():該接口功能用于添加平臺(tái)儀器信息。
GetInstrumentInfoById():該接口功能是根據(jù)平臺(tái)ID返回所有的儀器信息。
DeleteInstrumentInfoById():該接口功能用于刪除指定的儀器信息。
AddSensorInfo():該接口用于添加儀器的傳感器信息。
sGetSensorById():該接口功能是根據(jù)儀器的ID返回該儀器下所有的觀測要素信息。
GetData():該接口功能返回指定時(shí)間段之間的所有海洋數(shù)據(jù)。
GetUserInfo():該接口功能獲取平臺(tái)所有的用戶信息。
AddUserInfo():該接口功能用于添加平臺(tái)用戶信息。
DeleteUserInfo():該接口功能用于刪除平臺(tái)用戶信息。
AddSensorData():該接口用于添加傳感器數(shù)據(jù)信息。
JSON技術(shù)
JSON是一種輕量級(jí)的數(shù)據(jù)傳輸格式,易于閱讀和編寫,同時(shí)易于與機(jī)器解析和生成。相比XML,JSON可以減少解析帶來的性能和兼容性問題。JSON主要有兩種主要形式。一種是“名稱/值”對的集合,一個(gè)對象以“{”開始,以“}”結(jié)束,每個(gè)“名稱”后跟一個(gè)“:”,“名稱/值”對之間使用“,”分隔。一種是值的有序集合,通常稱為數(shù)組,一個(gè)數(shù)組以“ [”開始,以“]”結(jié)束,值之間用“,”分隔。
組件技術(shù)
組件技術(shù)是面向?qū)ο蠹夹g(shù)的核心,系統(tǒng)的各個(gè)模塊進(jìn)行組件設(shè)計(jì),可以實(shí)現(xiàn)模塊的復(fù)用。目前的主要組件標(biāo)準(zhǔn)有CORBA、EJB 、COM和CLR等。組件提供一些標(biāo)準(zhǔn)的接口,用戶可以將多個(gè)組件組合起來,快速構(gòu)建一個(gè)應(yīng)用程序。組件區(qū)別于一般軟件的主要特點(diǎn),是其重用性、可定制性、自包容性和互操作性,可以簡單方便的利用可視化工具來實(shí)現(xiàn)組件的集成,也是組件技術(shù)的一個(gè)重要優(yōu)點(diǎn)。當(dāng)這些組件開發(fā)完成后,將他們組合到一起便得到一個(gè)系統(tǒng),系統(tǒng)中所有組件通過接口通過實(shí)現(xiàn)數(shù)據(jù)交互。
數(shù)據(jù)庫訪問采用客戶端、服務(wù)器、數(shù)據(jù)庫三層結(jié)構(gòu),服務(wù)器內(nèi)部通過數(shù)據(jù)庫連接池技術(shù)連接數(shù)據(jù)庫,數(shù)據(jù)庫連接池可以有效解決高負(fù)載數(shù)據(jù)庫訪問造成的數(shù)據(jù)庫性能問題,能夠提高數(shù)據(jù)庫的使用效率,節(jié)約系統(tǒng)資源??蛻舳送ㄟ^調(diào)用服務(wù)器提供的Webservice接口對數(shù)據(jù)庫進(jìn)行操作。海洋數(shù)據(jù)管理與可視化平臺(tái)采用ORACLE數(shù)據(jù)庫存儲(chǔ)海洋數(shù)據(jù),其中數(shù)據(jù)庫主要的數(shù)據(jù)表有傳感器信息表(Sensor)、監(jiān)測數(shù)據(jù)表(TestData)、坐標(biāo)系表(Coordinate)、平臺(tái)表(Site)、窗口表(Window)、子窗口表(SubWindow)。數(shù)據(jù)表關(guān)系圖如3所示。
圖3 數(shù)據(jù)表關(guān)系圖
其中傳感器信息表主要存儲(chǔ)平臺(tái)的傳感器信息,主要包括傳感器編號(hào)、傳感器單位、傳感器名稱、傳感器坐標(biāo)系編號(hào)等。平臺(tái)表主要存儲(chǔ)所有的平臺(tái)信息,主要包括平臺(tái)編號(hào)、平臺(tái)名稱、平臺(tái)經(jīng)度、平臺(tái)緯度等。窗口表跟子窗口表主要存儲(chǔ)傳感器界面顯示的窗口信息。坐標(biāo)系表存儲(chǔ)傳感器在曲線繪制時(shí)的坐標(biāo)系信息,主要包括坐標(biāo)系編號(hào)、平臺(tái)編號(hào)、坐標(biāo)系名稱、坐標(biāo)系單位。監(jiān)控?cái)?shù)據(jù)表存儲(chǔ)所有平臺(tái)的監(jiān)測數(shù)據(jù)值,主要包括平臺(tái)編號(hào)、監(jiān)測時(shí)間、監(jiān)測數(shù)據(jù)等。
圖4 系統(tǒng)主界面
海洋數(shù)據(jù)管理與可視化平臺(tái)的實(shí)現(xiàn)界面如圖4所示,該平臺(tái)實(shí)現(xiàn)海洋數(shù)據(jù)的管理,提供數(shù)據(jù)列表和數(shù)據(jù)下載功能,同時(shí)能夠?qū)Q髷?shù)據(jù)進(jìn)行可視化,讓用戶直觀的觀察到海洋數(shù)據(jù)變化,方便用戶對海洋數(shù)據(jù)進(jìn)行分析。
1)平臺(tái)導(dǎo)航功能界面右側(cè)顯示了所有的平臺(tái)以及平臺(tái)儀器信息,通過選定指定的儀器,進(jìn)入該儀器下觀測要素的可視化界面。
2)數(shù)據(jù)可視化功能選定界面右側(cè)觀測儀器后,界面左側(cè)顯示該儀器下的所有觀測要素,界面中間以曲線的形式顯示海洋數(shù)據(jù)的變化情況。數(shù)據(jù)曲線允許用戶對曲線進(jìn)行放大、拖動(dòng)、是否顯示瞬時(shí)值等功能??梢暬@示方式包含數(shù)據(jù)曲線顯示、數(shù)據(jù)比較顯示、玫瑰圖顯示、參數(shù)關(guān)聯(lián)顯示、剖面圖顯示五種曲線顯示功能。用戶可以通過選定不同的按鈕,可以將數(shù)據(jù)以不同的可視化手段進(jìn)行顯示。通過點(diǎn)擊標(biāo)注工具可以對曲線進(jìn)行標(biāo)注,添加用戶所需要的信息。用戶通過點(diǎn)擊打印預(yù)覽和打印曲線按鈕打印曲線。
3)數(shù)據(jù)錄入功能用戶以管理員身份登錄后,選定界面上的數(shù)據(jù)錄入,對平臺(tái)和平臺(tái)儀器信息進(jìn)行錄入,以及對海洋數(shù)據(jù)進(jìn)行批量導(dǎo)入。
4)數(shù)據(jù)管理功能數(shù)據(jù)文件管理主要包括數(shù)據(jù)列表功能和數(shù)據(jù)下載功能,用戶可以對海洋數(shù)據(jù)進(jìn)行瀏覽和下載海洋數(shù)據(jù)。數(shù)據(jù)列表功能將選定平臺(tái)儀器下所有的數(shù)據(jù)以列表的形式展示給用戶,數(shù)據(jù)下載功能能夠讓用戶根據(jù)實(shí)際情況有選擇的下載特定的數(shù)據(jù)。
5)用戶管理功能普通用戶登錄后,選定用戶管理可以進(jìn)行密碼修改功能,可以查看海洋數(shù)據(jù)的各種可視化顯示,同時(shí)還可以對海洋數(shù)據(jù)進(jìn)行瀏覽和下載。管理員用戶除了普通用戶的權(quán)限外,可以創(chuàng)建新用戶、對平臺(tái)以及儀器信息進(jìn)行錄入、刪除以及海洋數(shù)據(jù)的錄入等功能。
本文對海洋數(shù)據(jù)管理與可視化平臺(tái)進(jìn)行功能分析的基礎(chǔ)上,采用組件技術(shù)對系統(tǒng)的各個(gè)模塊進(jìn)行了設(shè)計(jì),提高了系統(tǒng)的可重用性,具有較高的可靠性。平臺(tái)對海洋數(shù)據(jù)進(jìn)行可視化顯示,提供數(shù)據(jù)曲線顯示、數(shù)據(jù)比較、剖面顯示、玫瑰圖、參數(shù)關(guān)聯(lián)顯示諸多手段,同時(shí)提供數(shù)據(jù)列表和數(shù)據(jù)下載功能。該平臺(tái)提高了用戶分析海洋數(shù)據(jù)的效率,為海洋資源開發(fā)提供了數(shù)據(jù)支持。
專項(xiàng)資金:海上試驗(yàn)場綜合測試與評(píng)價(jià)集成系統(tǒng)一期建設(shè)(No.GHME2012ZC02); 國家公益項(xiàng)目:數(shù)據(jù)接收與展示系統(tǒng)(No.2011418030);儀器設(shè)備接口測試技術(shù)規(guī)程研究與制定(No.201305033-6)
10.3969/j.issn.1001-8972.2015.02.047