康林沖,張 峰,黃海燕,劉 金
(1.國家海洋局 數字海洋科學技術重點實驗室,天津 300171;2.國家海洋信息中心,天津 300171)
隨著國家在南北極考察投入的增加,我國積累了大量的極地信息,逐步形成了一定規(guī)模的極地信息資源,同時基于極地信息研發(fā)的各種專題應用系統(tǒng)也越來越多[1-3]。但是,由于極地數據格式多樣、結構不一、存儲分散等原因,造成部門間數據共享困難,數據利用率不高。且極地專題應用系統(tǒng)沒有統(tǒng)一的體系結構和技術標準等,造成了系統(tǒng)資源分散、重復開發(fā),系統(tǒng)間形成了“孤島”。如何實現極地信息和系統(tǒng)資源的有效整合和集成服務是急需解決的問題。
近幾年,面向服務的體系結構(service-oriented Architecture,SOA)以其松耦合、粗粒度、系統(tǒng)可擴展性、平臺無關性等特點在海洋領域得到廣泛應用并取得了較好的效果[4,5]。針對極地信息和系統(tǒng)資源集成的需求,本文提出基于SOA的極地環(huán)境與資源信息集成的系統(tǒng)架構,討論了架構中SOA支撐技術及選型,實現了基于SOA的服務注冊、授權、注銷、審核、發(fā)布等功能,為極地信息和系統(tǒng)資源的集成、共享奠定了基礎。
平臺架構設計完全遵循SOA思想,以服務為手段將各種業(yè)務需求及資源抽象成粒度不同的服務,綜合使用企業(yè)服務總線(ESB)、業(yè)務流程管理(BPM)等SOA支撐技術。系統(tǒng)架構自下而上包括服務及數據資源層、信息服務總線層和應用層,如圖1所示。
1)服務及數據資源層分為系統(tǒng)服務資源和系統(tǒng)數據資源。服務資源包括空間分析組件服務、數據共享組件服務、模型組件和數據可視化組件服務等,主要來源于極地應用系統(tǒng)發(fā)布的服務,其他應用系統(tǒng)可以調用。系統(tǒng)數據資源是將基礎環(huán)境數據庫、專題數據庫、空間數據庫等各種數據作為服務供各系統(tǒng)調用,避免了系統(tǒng)對數據庫的直接訪問,保證安全。
2)信息服務總線層是極地環(huán)境與資源信息集成框架的核心,它通過對各種通信協議的支持,完成服務資源和數據資源的服務注冊、發(fā)布、審核和注銷等,消除了頂層不同應用之間的差異,為各種應用系統(tǒng)開發(fā)提供統(tǒng)一標準的服務接口,實現了不同服務之間的通信與整合。
3)應用層是集成平臺針對極地用戶開放的門戶,主要為用戶提供極地服務資源查詢、瀏覽、服務資源提交、業(yè)務流程提交等功能,為極地信息與系統(tǒng)資源的共享奠定基礎。
圖1 極地環(huán)境與資源信息集成平臺架構
針對本系統(tǒng)中涉及的SOA支撐技術,從可行性、架構、監(jiān)控和管理、擴展性、開源等原則或標準對開源的ESB、BPM、ESP進行選型比較和分析。
SOA是由不同技術、模式和實現組成的結合體,應用程序的不同組件單元(稱為服務)通過優(yōu)良的接口或契約聯系起來。接口或契約是對服務提供者和服務消費者之間服務內容的完整定義,獨立于硬件平臺、操作系統(tǒng)和編程語言。SOA通過網絡對松耦合、粗粒度服務進行注冊與發(fā)布,所有服務的具體實現、位置和傳輸協議對服務調用者都是透明的,服務調用者根據需求將不同的服務重組或業(yè)務流程組合生成新的服務,基于SOA的系統(tǒng)從而更有彈性[6]。
ESB的核心是提供不同通信協議之間相互操作的“中間件”應用程序,具有協議適配器、消息傳遞、智能路由和分發(fā)、消息轉換、服務質量/WEB中介、監(jiān)控和管理、可擴展的API等特性。提供了一種在松耦合的服務和應用之間標準的集成方式,實現異構環(huán)境中的服務、消息以及基于事件的交互。在開源社區(qū)中,開源ESB有Mule[7]、ServiceMix[8]、Apache Synapse[9]及WSO2 ESB[10]等,其中,Mule在支持Workflow、IDE編輯和穩(wěn)定性方面存在缺點;ServiceMix的規(guī)范和架構比較復雜。本系統(tǒng)使用了基于Apache Synapse的WSO2 ESB,它是一個快速、輕巧、友好的開源ESB,具有支持集群、流量控制、負載均衡等優(yōu)勢[11]。
BPM通過對各種應用程序的服務進行編排,形成反映實際工作業(yè)務流程的可視化模型。在服務編排過程中,對服務接口定義、發(fā)布和流程建模均采用Web服務規(guī)范。在開源社區(qū)中,開源BPM產品有JBoss jBPM[12]、ObjectWeb Bonita[13]及Apache ODE[14]等。3款開源產品都是輕量級易部署的,同時具有審計、日志等特性。本系統(tǒng)考慮到與ESB總線WSO2 ESB的兼容性,選擇了Apache ODE。
ESP是構建或使用工具來設計、管理并監(jiān)控流過面向Event-Driven Architecture(EDA)環(huán)境的事件,它使用不同的事件模式來過濾事件數據。ESP解決方案必須能夠支持大流量的事件。本系統(tǒng)使用了Esper,它是目前可用的唯一的開源ESP,具有高可用性和管理功能特性,同時具有較好的文檔幫助功能[15]。
SOA的實現強調基于統(tǒng)一的標準,為使各系統(tǒng)發(fā)布的服務在各系統(tǒng)間統(tǒng)一調用,實現信息的互通互聯和互操作,本系統(tǒng)開展了系統(tǒng)集成標準接口設計及制訂工作,主要包括安全驗證類、SOA服務管理類、數據資源類等方面的接口。其中,安全驗證類接口包括用戶令牌安全驗證、系統(tǒng)令牌安全驗證、校驗用戶授權信息和獲取用戶角色信息;SOA服務管理類包括基于ESB總線的服務注冊、服務發(fā)布、服務更新、服務授權、服務注銷及服務查詢等;數據資源類服務主要是面向各系統(tǒng)的數據作為服務發(fā)布的接口,包括數據資源更新、獲取、刪除等。
通過采用SOA的設計思想,基于PORTAL的技術框架,實現了極地信息與服務資源的后臺管理與前端門戶。其中,后臺管理面向管理員,實現了極地信息與服務資源的查詢?yōu)g覽、基礎服務管理、ESB總線管理、BPM業(yè)務流程管理、分類管理、權限管理、統(tǒng)計分析、系統(tǒng)日志等功能,前端門戶主要為用戶提供極地服務資源查詢、瀏覽、服務資源提交、業(yè)務流程提交等功能。
基于SOA的極地環(huán)境與資源信息集成系統(tǒng),采用ESB、BPM和ESP技術,能夠有效滿足極地信息和系統(tǒng)資源集成的需求。該系統(tǒng)具有以下特色:
1)連通“信息孤島”,實現異構系統(tǒng)之間的互操作。SOA架構中,使用不同操作系統(tǒng)、數據庫、技術平臺的系統(tǒng)借助ESB可以互相訪問,實現了信息和系統(tǒng)資源的有效共享。
2)靈活、快速地響應極地業(yè)務需求變更。BPM將SOA中現有的服務組合成新的服務,為靈活、快速地響應極地業(yè)務需求變更提供了獨特的優(yōu)勢。
3)增加重用,減少成本。通過以松耦合的方式公開服務接口,各子系統(tǒng)間可以根據功能需求更輕松地使用和組合公開的服務。
4)實時響應,提高效率。通過ESP支持大流量事件響應,極地船基監(jiān)控、考察站氣象監(jiān)測、遙感監(jiān)測、站基視頻監(jiān)控等實時信息能夠得到有效處理。
5)支持服務的“即插即用”,易于實現系統(tǒng)擴展。由于服務的松耦合性,新開發(fā)的服務一旦注冊并發(fā)布到ESB中,就可以被應用系統(tǒng)調用。
[1]國家海洋局.2011年度中國極地考察報告[EB/OL].http://www.chinare.gov.cn/caa/userfiles/file/chinare2011report.pdf,2011-07-09
[2]程文芳,張俠,何劍鋒,等.極地生態(tài)環(huán)境監(jiān)測與研究信息平臺的設計與實現[J].極地研究,2009,21(4):299-307
[3]程文芳,張潔,夏明一,等.極地標本資源共享平臺系統(tǒng)設計與實現[J].極地研究,2013,25(2):185-196
[4]張建輝,張潔.基于SOA的海洋執(zhí)法信息共享平臺建設[J].地理空間信息,2013,11(1):7-10
[5]王偉,程文芳,李四海,等.SOA理念在“數字海洋”數據體系構建中的應用[J].海洋通報,2009,28(4):121-125
[6]全國信息技術標準化技術委員會SOA標準工作組,中國電子技術標準化研究所.中國SOA最佳應用及云計算融合實踐[M].北京:電子工業(yè)出版社,2012
[7]The Mule Team.Mule User Guide [EB/OL].http://www.mulesoft.org/documentation/display/current/Mule+User+Guide/,2013-09-06
[8]The Apache Software Foundation.Quickstartguide for ServiceMix[EB/OL].http://servicemix.apache.org/docs/4.5.x/user/index.html/, 2013-09-06
[9]Apache Software Foundation.Apache Synapse Installation Guide[EB/OL].http://synapse.apache.org/userguide/quick_start.html/, 2013-09-07
[10]WSO2 Inc.WSO2 ESB User Guide[EB/OL].http://docs.wso2.org/display/ESB470/User+Guide/, 2013-09-08
[11]Jeff Davis.開源SOA[M].北京:電子工業(yè)出版社,2010
[12]The jBPM Team.jBPM User Guide [EB/OL].http://docs.jboss.org/jbpm/v5.4/userguide/,2013-10-10
[13]Bonita Inc.Bonita BPM User Guide[EB/OL].http://documentation.bonitasoft.com/,2013-10-10
[14]The Apache Software Foundation.Ode User Guide[EB/OL].http://ode.apache.org/userguide/, 2013-10-10
[15]Esper Team and Esper Tech Inc.Esper User Guide[EB/OL].http://esper.codehaus.org/esper-4.10.0/doc/reference/en-US/pdf/esper_reference.pdf, 2013-10-05