劉迪
摘要:近年來,隨著長江水文業務融合、服務網絡化的推進,數據共享服務相關的需求日益增長,面向服務架構(SOA)為長江水文的數據共享服務平臺建設提供了一種新的實現途徑。介紹了長江水文信息系統建設現狀及存在的問題,分析了水文數據共享服務的技術要求及關鍵技術,提出了平臺建設的構想及實現方式,最后闡述了該平臺的實現對于長江水文信息化發展的意義。
關鍵詞:數據共享;SOA;平臺建設;水文信息化數據;長江水文
中圖法分類號:P337文獻標志碼:A
文章編號:1006-0081(2019)01-0057-04
隨著長江水文信息化建設的不斷深入,長江水利委員會水文局在2015年工作報告中提出了構建長江水文“數據資源一個中心,共享服務一個平臺,信息展示一張圖”體系,該體系正在構建中。數據資源中心是基礎,共享服務平臺是保障,信息展示一張圖是窗口。在長江水文信息化建設過程中,業務系統及綜合信息服務系統的不斷增加催生了數據交換共享、應用協同等需求,因此急需一套實現應用系統之間數據共享和交換的技術方案。
鑒于此,本文提出了基于SOA(Service-Oriented Architecture)的長江水文數據共享服務平臺(以下簡稱“服務平臺”)的建設構想,該服務平臺是長江水文 “一個平臺”的子系統,也是“一個平臺”建設工作的深化與發展。SOA是一種面向服務的分布式軟件體系架構,可根據需求情況自動增加服務的內容和性能,從而使業務能力得到提升;同時,松耦合的業務集成方式簡化了業務流程重組在系統架構層面的復雜度。
SOA架構的實施可加快長江水文在業務拓展轉型時信息系統支撐的響應速度,幫助長江水文在創新方面突破信息技術的桎梏,為長江水文信息化的快速發展提供更好的技術支撐。
1 信息系統建設現狀及問題
近些年,長江水文信息化建設先后完成了水情預報會商、水質實驗室管理系統、水文數據服務等業務應用類系統以及綜合辦公、財務報銷、合同管理等管理類信息系統的開發部署,各類信息系統上線運行累計20余個。業務應用系統、基礎水文信息服務、綜合辦公管理等系統的建設取得了顯著進展,基本建成了支撐主要水文業務的信息系統體系[1]。然而,信息系統建設仍存在以下幾個問題。
(1)數據共享交換不足。不同時期開發的信息系統、采用的開發平臺和框架不盡相同,各自相對獨立,一個系統的數據難以被另一個信息系統調用,難以滿足應用之間的協同及用戶多樣性的數據需求,也不便于新系統的開發。
(2)數據資源設計不夠規范。隨著信息化建設的深入,各信息系統之間的協同及數據交換需求不斷提高,建成了部分數據交換中間庫,但由于數據資源設計不夠規范,各數據交換中間庫的設計不統一,不便于數據同源性的維護。
(3)信息資源整體服務能力不足。目前,水文局擁有各類應用服務器近150臺,建成各類數據庫超過20個,開發部署各種應用服務系統或平臺20多個。這些信息資源由不同部門管理和使用,由于缺乏統一且標準的數據接口支持,各應用系統間的共享程度較低,嚴重影響了水文信息的匯集及支撐信息綜合性的開發利用,制約了數據資源的深度挖掘以及數據資源整體效益的發揮[2]。
2 平臺建設的技術要求及關鍵技術
水文共享數據服務平臺需規范各信息系統的數據接口,形成長江水文信息系統接口集成規范。該平臺是各類信息系統協同及數據交換共享的樞紐,應具有高可靠、可擴展、松耦合的特性。通過采用SOA技術,結合新時期長江水文信息系統建設的實際需求,構建一個統一的服務平臺。
2.1 技術要求
(1)統一標準規范。現有信息系統是在.NET平臺和J2EE平臺基礎上開發完成的,不同平臺開發的系統間要實現數據交互就需要有統一且標準的接口規范。WebService是通過定義不同開發語言的應用程序,在瀏覽器端實現交互操作的一個新平臺。通過安裝一套標準的數據類型訪問接口,不同編程語言和組件模型間可實現互相通信。以XML語言規范為標準,WebService平臺提供了一種標準的描述語言——WSDL,用于描述這種數據接口信息。
(2)高可靠性。信息系統程序在運行過程中,內部模塊既可通過內部數據接口實現數據的調用,也可通過外部數據接口實現與其他系統間的數據調用。在與外部數據相互調用的過程中,數據存儲格式的差異可能導致數據格式轉換出現錯誤。因此,信息系統數據接口必須具有較高的穩定性,以便提供更為強大的錯誤處理機制,幫助用戶在使用接口的過程中準確找出根本原因,避免接口自身的錯誤對信息系統運行造成的影響。
(3)可擴展性。在信息系統程序運行過程中,用戶的需求會不斷發生變化,并對系統功能提出新的要求;同時,第三方應用系統在開發的過程中也可能申請調用已有系統數據,因此共享數據接口的設計必須堅持可擴展性的原則。
(4)松耦合性。松耦合數據接口的實現通常是基于消息驅動的系統,能有效降低客戶端對于服務器端的依賴性。其本質是消息驅動的架構,即在客戶端用戶無需理解服務端的業務實現邏輯,只需按照服務端要求的數據格式發起數據請求,服務器端便會返回相應的結果。如此,即可實現在不改變服務器端數據結構的情況下,服務器端按照實際需求更改并返回結果。
2.2 SOA實現的關鍵技術
SOA采用面向服務的架構,統一標準的接口是各個不同服務之間進行數據通信的橋梁。基于接口中立方式定義的特性,在不同的操作系統、程序語言以及硬件平臺間均可實現接口的通用和調用,并且在不同操作系統中定義的服務可以通過該方式進行統一交互。
SOA架構實現的基礎部件是WSDL、UDDI以及SOAP。WSDL用于服務描述,UDDI用于服務注冊與查詢,SOAP用于在服務提供者和服務消費者之間傳送信息。用戶可以首先通過UDDI注冊要查找的服務,之后取得該服務的WSDL描述,最終通過SOAP使用該服務。
涉及SOA架構的關鍵技術有ESB、MQ以及JMS。
(1)ESB(Enterprise Service Bus),即企業服務總線,是傳統中間件技術與XML、Web服務等技術結合的產物。ESB提供了網絡中最基本的連接中樞,是構筑企業神經系統的必要元素。ESB的出現改變了傳統的軟件架構,可提供比傳統中間件產品更為廉價的解決方案,同時還可消除不同應用之間的技術差異,使不同應用服務器協調運作,實現不同服務之間的通信與整合。
(2)MQ(Message Queen),即消息隊列,是一種應用程序對應用程序的通信方法。應用程序通過寫和檢索出入列隊的針對應用程序的數據(消息)實現通信,數據鏈接無需專用連接。消息傳遞通過程序之間發送數據得以實現,并非直接調用;直接調用通常用于諸如遠程過程調用技術。排隊是應用程序通過隊列通信,隊列的使用除去了接收和發送應用程序同時執行的要求。
(3)JMS(Java Message Service),即Java消息服務應用程序接口,是Java平臺中關于面向消息中間件(MOM)的API。該技術可用于兩個應用程序之間或在分布式系統中發送消息,使其實現異步通信。
3 平臺建設構想
3.1 架構設計
長江水文信息系統的數據資源種類繁多,數據格式要求也不盡一致。這些數據資源主要分為綜合管理類數據、業務應用類數據以及事務型數據等。有些數據實時性較強,有些偏弱;有些是單個記錄,有些是批量記錄;有些是縱向關聯,有些則是雙向交互[3]。數據交換共享服務是通過采用面向服務的架構設計,抽取共享數據形成基本的服務,用以解決不同應用之間的數據協同需求。在建設 “一個平臺”基礎之上,采用靈活的的方式進行接口設計,建設統一標準的服務平臺。
服務平臺的集成架構設計采用數據中心及通用集成平臺相結合的方式,各業務應用通過通用的、基于SOA的服務實現數據交換和共享,按照接口規范將數據交換功能模塊封裝成WebService,注冊到該平臺的服務總線,同時也能夠調用該平臺的其他服務[4]。以服務平臺為例來說明應用系統之間的數據調用關系。某個應用系統的數據在完成對應的更新動作后,通過共享平臺的服務總線通知其他系統,其他系統接收到該JMS消息之后,就會從數據中心獲取到相應的數據。同時,其他系統也可以設定定時訪問數據中心,讀取相應的數據。
3.2 平臺實踐
以長江水文綜合辦公系統與長江水文“一張圖”展示系統的數據交換共享為例,介紹了服務平臺實現數據接口服務的流程。
①綜合辦公系統按照數據資源中心提供的存儲方式,將共享數據存儲到數據資源中心指定數據表;②綜合辦公系統確認接口數據保存成功后,向數據共享服務平臺注冊的服務發送相應的JMS消息;③ 數據共享服務平臺獲取消息后,將調用訂閱了該服務的業務應用(如“一張圖”展示系統)提供相關的服務;④該服務通知“一張圖”展示系統并在數據中心進行數據檢索;⑤“一張圖”展示系統從數據中心獲取相關的接口數據。
利用上述服務平臺的接口模塊,設計整合預報調度、LIMS實驗室管理、水文數據服務及測站管理等業務類信息系統以及綜合辦公、合同管理、財務管理、圖像管理、人事管理及基礎設施管理等管理類信息系統的數據接口,注冊成為服務平臺的服務,為后續系統開發者提供可編程的接口資源。在“平臺級”的服務支持下,后期系統開發者就獲得了大量的可編程接口。這些由業務邏輯形成的可編程接口,在降低開發成本的同時,還提高了開發效率,為開發者帶來了較大便利,并能快速響應用戶不斷變化的多樣性需求。
基于SOA服務平臺的建設有助于實現數據交換共享、促進應用協同、發揮水文信息化應用服務的整體效益、改變各個應用系統間相互隔離、應用服務資源無法共享的現狀,構建應用模塊與服務資源之間相互轉換機制,為長江水文信息化服務提供有力的支撐,并最終實現以下四大服務。
(1)業務應用服務。在數據共享服務平臺的支撐下,構建長江水文應用系統協同機制和應用模塊與服務資源之間相互轉換機制,支持分布式應用服務。各專業集中技術力量重點建設各自的應用功能模塊,由一個平臺提供數據訪問服務、數據資源目錄服務、數據交換服務、中間件服務等應用支撐服務,避免重復建設,提高生產和服務效率。
(2)綜合管理服務。在數據共享服務平臺的支撐下構建水文局綜合管理服務體系,集成綜合辦公、財務報銷、項目管理等綜合管理業務,實現各個綜合管理業務之間的信息共享,如待辦事宜提醒等。
(3)大數據分析服務。利用數據共享平臺提供的數據接口,整合各類管理、生產、服務等業務的原始數據、用戶行為數據、過程數據等,逐步構建知識系統和專家系統,構建并演化數據分析模型,實現長江水文大數據分析服務功能,為水文事業發展和經濟發展提供決策支撐。
(4)報表中心服務。利用數據共享平臺的接口服務,為各類報表工具提供數據獲取及變更服務。并在此基礎上,建成統一的數據報表中心,滿足管理和生產報表的各項需求。
4 結 語
基于SOA服務平臺的建設加強了長江水文各信息系統間的數據交互,滿足用戶多樣性的數據使用需求。同時,該服務平臺的建成將有力支撐水文信息的匯集及信息系統綜合性的開發利用,更好地服務于水文數據資源的深度挖掘以及數據資源整體效益的發揮,成為長江水文“一個平臺”建設的助推器。該平臺不僅會為長江水文信息化建設帶來一種新的信息系統開發方式,還為長江水文信息化業務整合、面向服務轉型等方面帶來了新思路,成為其改革創新、實現“社會水文、綠色水文、智慧水文、和諧水文”的催化劑。
參考文獻:
[1] 史芳斌,王立海.長江水文信息化及其發展探討[J].人民長江,2009,40(4):22-24.
[2] 陳春華,程海云,肖志遠.長江水文信息化建設實踐與發展思考[J].人民長江,2015,46(3):70-73.
[3] 李瑞.計算機軟件數據接口的應用分析研究[J]. 自動化與儀器儀表,2017(6):201-203.
[4] 郭禾,郭春燕.基于SOA的企業應用的研究與實現[D].遼寧:大連理工大學,2006.