馬力
摘要:借鑒民用領(lǐng)域和美軍實施SOA的成功經(jīng)驗,立足國產(chǎn)自主知識產(chǎn)權(quán)產(chǎn)品和開源產(chǎn)品實現(xiàn)。該文詳細描述SOA產(chǎn)品評估的規(guī)范性、安全性和易管理性及Web服務(wù)架構(gòu)產(chǎn)品的評估和測試方法。
關(guān)鍵詞:Web 服務(wù);SOA;評估;測試
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2015)27-0178-02
Abstract: Using the successful experience of SOA in the field of civil and American forces, based on the domestic independent intellectual property products and open source products. In this paper, we describe the standard, security and easy management of the SOA product evaluation, and the evaluation and test method of the Web service architecture product.
Key words: Web services; SOA; evaluation; testing
1 概述
開源項目大都專注于 SOA 的某一領(lǐng)域,在遵循業(yè)界規(guī)范的基礎(chǔ)上提供前沿的技術(shù)實現(xiàn)方案。但開源軟件往往只專注于某個技術(shù)局部,針對于解決 SOA系統(tǒng)中的某些特定問題。要想真正解決復(fù)雜的企業(yè)級應(yīng)用,需要對多方面的組件進行組合。而開源組件間的協(xié)調(diào)性不如商業(yè)軟件,往往需要第三方進行整合和加工。因此,最大的挑戰(zhàn)是如何將這些產(chǎn)品集成在一起。WSO2產(chǎn)品均基于Cabon框架實現(xiàn),采用基于同一架構(gòu)的系列產(chǎn)品,具有易于集成、能夠快速搭建的優(yōu)點。
2 ESB測試方法
2.1 技術(shù)評估
Apache Synapse誕生于2005年,是一個輕量級的ESB,具備多協(xié)議連接、轉(zhuǎn)換、高性能和管理功能等,特別對WS-*系列標(biāo)準(zhǔn)有良好的支持,包括WS-Addressing、WS-ReliableMessaging、WS-Security和WS-Policy。此外,它的設(shè)計充分考慮到性能和可用性,尤其適合當(dāng)作Web服務(wù)中介使用。Synapse使用非阻塞的HTTP(s),因此使用該協(xié)議的Web服務(wù)性能超強,高并發(fā)的能力也很不錯,Synapse被看做是最快的開源ESB。但是,Synapse沒有圖形界面,需要純手工寫代碼,通過XML配置。
WSO2 ESB基于Apache Synapse重新包裝,緊跟Apache Synapse的正式版本,提供漂亮的圖形化前端管理監(jiān)控界面,作為對Synapse的增強。WSO2 ESB基于Carbon框架,Carbon框架是一個模塊化的、基于OSGi的服務(wù)器基礎(chǔ)(server foundation),處理用戶管理、傳輸、安全、日志、集群、緩存和流量控制(throttling)等通用功能。所有WSO2產(chǎn)品都由運行于該核心框架之上的組件集構(gòu)成。可以根據(jù)需要創(chuàng)建混合功能的產(chǎn)品(例如:WSO2 Carbon + Mediation/Proxy related components = WSO2 ESB)。WSO2的文檔很好,其引入的管理特性非常有價值。不足是目前的用戶社區(qū)尚不十分活躍。
2.2 測試和驗證
1)在測試基礎(chǔ)環(huán)境中下載安裝WSO2 ESB
下載WSO2 ESB二進制打包文件(http://wso2.com/products/enterprise-service-bus/)將打包文件解壓到某個目錄
2)驗證WSO2 ESB對技術(shù)架構(gòu)中各項技術(shù)要求的支持情況
① 協(xié)議轉(zhuǎn)換
支持以下傳輸協(xié)議:HTTP, HTTPS, POP, IMAP, SMTP, JMS, AMQP, FIX, TCP, UDP, FTPS, SFTP, CIFS, MLLP, SMS。
還提供對本地文件系統(tǒng)中或S/FTP上的文件的訪問,并提供壓縮的支持,如ZIP、JAR、TAR和GZIP。使用管理控制臺的傳輸管理界面可以配置、管理每個傳輸?shù)慕邮辗胶桶l(fā)送方。
② 消息轉(zhuǎn)換
WSO2 ESB支持基于XSLT 1.0/2.0的轉(zhuǎn)換,可以應(yīng)用到傳入和傳出的消息上??梢酝ㄟ^XPath表達式有選擇地找出消息中你希望轉(zhuǎn)換的部分。更精細地轉(zhuǎn)換可以使用Xquery中介來執(zhí)行。其支持XML、JSON、HTML、Hessian、Text、JPEG、MP4,以及各種二進制格式。
③ 消息路由
提供多種途徑來實現(xiàn)路由。可以使用簡單的基于正則或XPath表達式的過濾器,或者用一種switch風(fēng)格的語句實現(xiàn)過濾。求值的基礎(chǔ)可以是消息體、消息屬性或URI。對WS-Addressing也有完整支持,可以將SOAP消息定向到正確的端點服務(wù)。
④ 集群
所有WSO2產(chǎn)品都基于Carbon框架構(gòu)建,支持多個WSO2 ESB實例的集群。集群負載通過WSO2 Elastic Load Balancer進行管理。集群采用工作者-管理者模式構(gòu)建。
⑤ 安全性
支持WS-Security、LDAP、Kerberos、OpenID、SAML、XACML,支持SSL隧道和SSL配置。在管理控制臺Main/Manage/Web Services/List中,可以為每個SOAP服務(wù)設(shè)置安全特性。另外,直接在
⑥ 監(jiān)控和日志
提供圖形化的Web控制臺和基于JMX的監(jiān)控支持。只需登錄管理控制臺,激活監(jiān)控統(tǒng)計,即可開始收集數(shù)據(jù)。
⑦ 服務(wù)管理
與WSO2 Governance Registry配合對服務(wù)的生命期和版本等進行集中化的配置管理。
⑧ 服務(wù)可擴展性
支持創(chuàng)建自己定制的中介,只需要簡單地擴展某個可用的接口類并實現(xiàn)為數(shù)不多的方法。
3 服務(wù)注冊產(chǎn)品
3.1 技術(shù)評估
WSO2的服務(wù)注冊產(chǎn)品作為一個專門的注冊中心產(chǎn)品,它被設(shè)計為服務(wù)和服務(wù)描述的目錄。制品可以是結(jié)構(gòu)化的數(shù)據(jù),如XML相關(guān)文件,或者二進制的文檔,如Word或Excel。同時支持元數(shù)據(jù)歸類、標(biāo)簽、版本管理、用戶角色定義和配置、依賴和生命周期管理等多個特性。(WSO2 Carbon + SOA Governance Related components = WSO2 Governance Registry)
3.2 測試和驗證
1)在測試基礎(chǔ)環(huán)境中下載安裝WSO2 Governance Registry。
下載解壓后運行
在瀏覽器中輸入https://localhost:9443即可進入登錄頁面。
2)驗證WSO2 Governance Registry對技術(shù)架構(gòu)中各項技術(shù)要求的支持情況。
① 制品管理
支持各類元數(shù)據(jù)和信息的存儲,如WSDL、XML Schema、WS-Policy等。
② 資源管理
利用Resource Browser可以以結(jié)構(gòu)化的方式管理各類資源,支持多種形式的搜索。
4 BAM工具
4.1 技術(shù)評估
BAM(Business Activity Monitorning)屬于反應(yīng)性監(jiān)控工具。目前開源的BAM工具非常少,而且缺乏靈活性,與特定的技術(shù)棧綁定,報表類型有限,僅覆蓋特定的框架。如:WSO2 Business Activity Monitor可以提供相當(dāng)漂亮的圖表,但采用固定形式的報告,無法定制圖表,且無法監(jiān)控非WSO2的服務(wù)器。適用于完全使用WSO2產(chǎn)品的情況。
Esper屬于復(fù)雜事件處理(CEP,complex event processor)工具,長于處理、分析和關(guān)聯(lián)各種事件。然而,Esper僅是一個CEP工具,未提供監(jiān)測或查看這些關(guān)聯(lián)事件的報表環(huán)境。
因此,目前的開源社區(qū)還沒有一個能夠完全滿足項目需要的BAM工具。本項目在采用WSO2 Business Activity Monitor的同時,利用開源組件開發(fā)了一個易于使用、靈活的BAM工具。
4.2 測試和驗證
1)在測試基礎(chǔ)環(huán)境中下載安裝WSO2 Business Activity Monitor。
http://wso2.com/products/business-activity-monitor
sh
https://
2)驗證WSO2 Business Activity Monitor對技術(shù)架構(gòu)中各項技術(shù)要求的支持情況。
4.3 JJBEP BAM工具的開發(fā)
事件發(fā)生器可以是任何應(yīng)用或程序,如一個Apache web server模塊、一個CXF解釋器或者ESB。只需創(chuàng)建一個基于JSON的事件,然后執(zhí)行一個HTTP post操作即可向事件服務(wù)發(fā)送事件。我們同時也提供了一個簡單的Java類用于發(fā)送事件,方法如下所示:
public void sendEvent(String server, String serviceName, String eventClass,
long timestamp, Map
POST請求如下:
POST /services/event HTTP/1.1
Content-Type: application/json
Content-Length: 139
{"event":
{"timestamp":"1310294128455",
"service":"service1",
"eventclass":"class"
"server":"server1"
"userdata1":1344,
}}
事件處理器用于分析事件、生成新的事件或修改現(xiàn)存事件。例如:
統(tǒng)計某個特定方法被調(diào)用的次數(shù);
計算執(zhí)行某個完整業(yè)務(wù)流程所需的事件;
過濾重復(fù)事件;
利用后備信息充實事件信息。
5 服務(wù)安全
Apache ODE(Orchestration DirectorEngine,編配指導(dǎo)引擎)是基于Java 的開源WS-BPEL(簡稱BPEL) 引擎, 它于2007 年7 月18 日從Apache 的孵化器中誕生成為一個頂級項目。它的主要功能就是執(zhí)行使用BPEL 描述的業(yè)務(wù)流程,實現(xiàn)業(yè)務(wù)流程自動化,它支持長期運行和短期運行的流程。Apache ODE是JBoss下一代ESB SwitchYard的組件之一。WSO2 Business Process Server基于Apache ODE,增加了基于Web的管理界面及一些模擬功能。
JBoss jBPM和Activiti有著緊密的淵源關(guān)系。
jBPM分為jBPM3、jBPM4和jBPM5。jBPM3是一個輕量級的嵌入式工作流系統(tǒng),包括了以下組件:基于Eclipse的流程設(shè)計器、用于監(jiān)控案例(流程實例)和處理任務(wù)的Web控制臺以及jPDL核心庫。它在Java社區(qū)的成功得益于兩個方面:一是嵌入式,這降低了使用工作流的門檻;二是對開發(fā)人員友好,這表現(xiàn)在易讀的jPDL、流程的可測試性(Eclipse插件)以及節(jié)點行為的可擴展性,可以非常容易的在流程運行中加入自己定制的行為(通過事件處理器和Action)。
jBPM之父Tom Baeyens離開JBoss加入Alfresc后,開發(fā)了新的基于jBPM4的Activiti5,同樣支持BPMN2標(biāo)準(zhǔn)。與jBPM4相比,Activiti5最重要的增強就是實現(xiàn)了流程的可視化以及創(chuàng)新的Activiti Cycle協(xié)作組件。Activiti Cycle完全是一種新類型的BPM組件,它是一個用來促進業(yè)務(wù)人員、開發(fā)人員和IT運營人員協(xié)作的Web應(yīng)用程序,通過BusinessLink將與流程相關(guān)的業(yè)務(wù)人員、開發(fā)團隊與IT維護人員關(guān)聯(lián)起來,實現(xiàn)他們之間的協(xié)作。此外,其對PVM的保留使其繼承了jBPM4強大的可擴展能力,對jBPM的老用戶來說,這是向其遷移的重要理由。Activiti5其實是jBPM3/jBPM4的后續(xù)。
6 結(jié)論
立足國產(chǎn)自主知識產(chǎn)權(quán)產(chǎn)品和開源產(chǎn)品實現(xiàn)。本文詳細描述SOA產(chǎn)品評估的規(guī)范性、安全性和易管理性及Web服務(wù)架構(gòu)產(chǎn)品的評估和測試方法,解決了開源產(chǎn)品的評估定位問題。
參考文獻:
[1] 寒丁,沈建京,萬芳,張慧.基于SOA的服務(wù)構(gòu)件封裝技術(shù)研究[J].計算機工程與設(shè)計,2009(7).