李 琳 郭 易 蓋優普 武 煒 朱吉生
(中國水利水電科學研究院,北京 100038)
水利信息元數據的相關標準是水利信息交換、共享,以及數據中心數據管理的關鍵性技術標準[1]。水利部于2010年頒布了《水利信息核心元數據》(SL473-2010)[2]技術標準。元數據標準不同于傳統的技術標準,不可能通過印刷版本的頒布,以及傳統的會議、培訓實施標準的宣貫。在國外,這類信息技術標準大都需要研發相應的軟件工具,借助軟件工具開展標準化的信息管理。而在我國,在水利行業尚未實現采用軟件工具來進行元數據管理和推進元數據標準的宣慣。
鑒于元數據的制作管理的復雜性,為進一步推進 SL473-2010的實施,同時方便元數據的管理,通過信息技術,開發一套符合SL473-2010的水利信息核心元數據編制工具。這在水利行業標準中是初次嘗試,為貫徹實施元數據標準提供技術支撐尤為必要。本文以 SL473-2010為依據,使用目前流行的 Flex技術開發水利核心元數據管理系統,實現對核心元數據的制作、查詢、修改、導入/導出等功能,以提高元數據管理的準確性和效率。同時,實現了B/S(Browser/Server)和C/S(Client/Server)終端的統一,大大提高了開發人員的開發和部署效率,極大的方便了專業人員在不同環境下進行核心元數據的管理,對水利信息核心元數據標準的推廣具有重要意義。
本系統采用富客戶應用(Rich Internet Application,簡稱RIA)[3]中的Flex 技術框架實現。Macromedia Flex 是目前開發RIA的最流行的一種解決方案,通過 Flex技術和相關服務器端技術,開發者能夠賦予Flash 與后端服務器交互的能力。
Flex 以ActionScript、MXML和擴展類庫作為基礎,編譯生成SWF 格式文件(Flash文件格式),用戶訪問Flex RIA 應用時需預先安裝Flash Player 作為ActionScript 的解析引擎。同時,Flex 框架生成的SWF 格式文件,能運行于各種安裝了Flash Player的操作系統上,具有良好的通用性和跨平臺性。而且,Flash Player 的強大解析能力為 Flex 應用程序提供了更強大的交互和動畫能力。
按照“分層設計、模塊構建”的思想[4設計總體框架,系統整體框架分為三層,分別為數據層、服務層和表示層,如圖1所示。
數據層用來存取元數據,本系統采用XML文件庫的形式進行存取。服務層是整個體系結構應用的核心,用來實現系統應用的功能,通過ActionScript語言來實現。表示層是系統展示層,通過Flex來實現,可以實現應用程序客戶端和網頁客戶端的同步部署和更新。

圖1 系統架構
系統按照SL473-2010[2]技術標準,其數據結構由1個數據實體和8個元數據子集構成。其中,標識信息為必選子集,內容信息、數據質量信息、覆蓋范圍信息、限制信息、參照系信息、維護信息和分發信息為可選子集。數據結構如圖2所示。

圖2 元數據結構
數據集采用XML語言進行數據描述,共設計五個屬性:分別為 name、value、id、style、edit和 del,采用ActionScript 語言對XML節點進行增刪改操作。按照 SL473-2010[2]技術要求數據集XML屬性如表1所示。
依照水利核心元數據的內容,將系統主要分為八個模塊,分別為:標識信息、內容信息、數據質量信息、覆蓋范圍信息、限制信息、參照系信息、維護信息和分發信息模塊。幾個模塊彼此獨立,互不干擾。
2.3.1 模塊工作流程
在主要的八個模塊中,標識信息模塊為必選模塊,其他模塊可選。其中,標識信息、數據質量信息、參照系信息、內容信息、覆蓋范圍信息和限制信息模塊可以重復調用,維護信息和分發信息模塊只能調用一次。主要模塊工作流程如圖3所示。

表1 元數據集屬性說明

圖3 模塊工作流程
2.3.2 模塊功能描述
(1)標識信息模塊。標識信息模塊為系統必選模塊,它完成唯一標識數據信息的功能,標識有關資源的基本信息,包括名稱、日期、版本、摘要、目的、關鍵詞、狀況和聯系方式等,其中聯系人和/或單位、數據獲取途徑、瀏覽圖、空間分辨率為四個子模塊。以全國主要水文站實時水情數據集元數據為例,標識信息模塊主要內容如圖4所示。

圖4 標識信息模塊
(2)數據質量信息模塊。數據質量信息模塊為系統可選模塊,完成對數據資源質量的總體評價的功能,包括范圍、數據質量報告和數據志三個子模塊。數據質量信息模塊主要內容如圖5所示。
(3)維護信息模塊。維護信息模塊為系統可選模塊,完成有關資源的更新頻率及更新范圍的信息功能,包括聯系人信息子模塊。維護信息模塊主要內容如圖6所示。
(4)參照系信息模塊。參照系信息模塊為系統可選模塊,完成對數據集使用的空間參照系和時間參照系的說明功能。參照系信息模塊主要內容如圖7所示。
(5)內容信息模塊。內容信息模塊為可選模塊,完成提供數據內容特征的描述信息功能。內容信息模塊主要內容如圖8所示。

圖5 數據質量信息模塊

圖6 維護信息模塊

圖7 參照系信息模塊

圖8 內容信息模塊
(6)覆蓋范圍信息模塊。覆蓋范圍信息模塊為可選模塊,完成數據資源所涉及空間覆蓋范圍、時間覆蓋范圍的信息功能。分為時間覆蓋范圍、地理覆蓋范圍和垂向覆蓋范圍三個覆蓋范圍。覆蓋范圍信息模塊主要內容如圖9所示。

圖9 覆蓋范圍信息模塊
(7)分發信息模塊。分發信息模塊在系統中只能出現一次,為可選模塊。完成有關資源如何分發和獲取的信息功能。包含分發者和在線信息。分發信息模塊主要內容如圖10所示。

圖10 分發信息模塊
(8)限制信息模塊。限制信息模塊為可選模塊,完成訪問資源和使用資源的限制信息功能。限制信息主要內容如圖11所示。

圖11 限制信息模塊
系統使用Flex Builder 作為開發工具,語言使用ActionScript,數據結構采用XML實現。
系統開發主要使用了Flex Builder 軟件的AdvancedDatagrid組件[5],AdvancedDatagrid可以采用XML作為數據源,并且能在組件中靈活實現XML數據的增加、修改和刪除等操作。
主要代碼實現如下:

其中:designViewDataType 表示數據的顯示形式,在這里designViewDataType ="tree",表示樹形顯示。dataProvider為AdvancedDatagrid的數據源,editable="true"表示AdvancedDatagrid列數據可進行修改操作。
顯示效果如圖12所示。

圖12 系統AdvancedDatagrid組件應用
(1)增加數據。主要通過AdvancedDatagrid的selectedItem屬性獲取要增加數據的位置,通過ActionScript中的prependChild()、insertChild-Before()、insertChildAfter()、appendChild()方法來進行XML數據的插入。
(2)刪除數據。主要通過AdvancedDatagrid的selectedItem屬性獲取要增加數據的位置,通過ActionScript中的delete()方法刪除XML數據。
(3)修改數據。使用AdvancedDataGrid 的項目編輯器功能實現數據編輯修改功能。利用DataGridColumn的itemEditor屬性,直接為屬性賦值,直接指定可視化控件類為項目編輯器。此項目使用的編輯器為TextInput和ComboBox。
對于一般軟件開發技術來說,如果想要將一個BS 應用改造成為一個CS 應用,必須對整個應用進行重新設計和開發,其復雜程度和成本都是無法估計的。但是,對于Flex 技術來說,它通過虛擬機的形式實現跨平臺的Web應用,AIR技術則可以通過對Flex 應用代碼進行極少量的修改,將Flex開發的Web應用移植到桌面,而且為移植的應用提供了比Web應用更為多樣的接口和本地訪問能力,從而為大批量操作效率的提高提供了可能。
Flex開發Web應用的主程序體如下代碼:

如果將主程序移植到桌面應用,僅僅需要在此基礎上做簡單的修改,修改后的代碼如下:

本文介紹了水利元數據管理系統的設計和實現過程,系統采用XML和Flex技術將水利元數據和管理流程有效的結合起來,實現數據管理、導入和導出等豐富功能,提高元數據編制的質量和效率。
本文設計實現的水利元數據管理系統是水利技術標準在信息化領域的初次嘗試,目前只限于對xml文件和文本文件的操作。隨著信息化技術的飛速發展,水利元數據標準必將在信息化領域深入發展,水利元數據標準將在元數據信息集成、應用平臺化方面長期持續發展。今后,隨著元數據管理工作的不斷推進,將在現有基礎上重點開發水利元數據標準庫、元數據標準平臺等應用,充分利用信息化的高技術手段,不斷提升水利元數據管理系統的功能,提高水利技術標準貫徹實施水平。
[1]朱星明,張行南,白婧怡,等.水利科學數據共享元數據理論的應用探討[J].水利學報,2005,36(8):1-5
[2]SL473-2010 水利信息核心元數據[S]
[3]楊占坡,楊銘,等.Flex 3 RIA 開發詳解與精深實踐[M].北京:清華大學出版社,2009
[4]董龍飛,肖娜.Adobe Flex 大師之路[M].北京:電子工業出版社,2010
[5]Tariq Ahmed,Jon Hirschi,等.Flex 3 實戰[M].北京:清華大學出版社,2010
[6]胡少英,李曉斌,等.基于Web Servic和Flex的水調自動化系統[J].水電自動化與大壩監測,2011,35(3)