PushToTest研究SOA TCO:TIBCO的ActiveMatrix BusinessWorks獨占鰲頭

openkk 13年前發布 | 28K 次閱讀 SOA

PushToTest,開源測試工具 TestMaker 的提供商,發布了一份題為《大規模 SOA 的組合方法》的研究報告(譯者注:該鏈接提供的是 2008 年的報告,讀者可以在 PushToTest 官網上得到最新報告),對 IBM、Oracle 和 TIBCO 在 SOA 開發和部署方案所花費的擁有總成本(TCO)進行了研究和評估。TIBCO 的解決方案在包括 TCO 在內的多個方面都領先于其他廠商。InfoQ 對話 Frank Cohen,PushToTest 的 CEO 和創始人,以期更深入了解其研究機制。

InfoQ:發起這項 SOA 產品 TCO 研究并向社區提供相關工具包的起因是什么?

作為一名 IT 行業中的社區領導者,我始終在尋找一種專業資源為軟件架構師和開發者提供一種方法使其理解 SOA 開發平臺的互用性、開發者效率和性能。PushToTest 一直致力于為大中型企業制定標準 SOA 應用藍圖,以此暴露互用性、性能和交付方面的問題。使用這些實踐將會幫助 PushToTest 更有效地交付相關知識、像 TestMaker 這樣的測試工具,并為企業提供服務。PushToTest 提供的 SOA 知識工具包已經成為 Best Buy、PepsiCo、Deloitte 等其他 30 家公司事實上的標準。

通過推進一些標準制定組織(OMG、OASIS、W3C 和 IETF)也使用這些實踐,我希望幫助 IT 行業交付更貼近現實世界的可靠產品。PushToTest 工具包上的成果已經出現在 OASIS SOA 藍圖項目中。http://tinyurl.com/85tsbal。我們維護該成果和其他一些東西。

我們最開始在 2008 年發布該 SOA 知識工具包。我選擇了 Oracle、IBM 和 TIBCO 產品,因為這三家廠商都提供了 SOA 開發和部署平臺。2009年我們在工具包中引入了 JBoss。我們希望在不久的將來再加入其他 SOA 平臺產品,包括 Mule。目前的工作將工具包更新到最新版本:IBM WebSphere Integration Developer V7.0、TIBCO ActiveMatrix SOA Product Suite 3.13 和 Oracle SOA Suite 11gR1(11.1.1.5.0)。

InfoQ:該項目的成員構成是什么樣的?您能否大概跟我們介紹一下使用每個廠商產品以及 web 服務開發和編排的工程師以往的大致工作經驗?

PushToTest 組織了 2 個項目小組來實現 SOA 知識工具包。每個小組都有一名擁有 5 到 8 年構建 SOA、富互聯網應用(RIA,使用 Ajax、Flex 和 Flash)和 Web 應用經驗的架構師,2名擁有 5 年 Java 編碼經驗的工程師,以及一名項目經理。這些工程師都有編寫 EJB、SOAP 和基于 REST 服務接口、中介(mediation)、編排和工作流的工作經驗。A組負責實現 Oracle 和 TIBCO 項目,B組負責實現 IBM 項目。前后大概花了 3 到 4 周來完成各廠商產品的應用案例。

InfoQ:在使用這些廠商產品時是否都使用相同的服務模式來設計和實現服務?能不能講講使用每個廠商產品在實現某個服務模式時遇到的一些挑戰?

PushToTest 定義了一個典型制造公司的一個用例。我們使用 TIBCO、Oracle 和 IBM 的產品組來實現該用例。我們還在實現上做了一些改變:增加 HTTPS/SSL 安全、更改消息模式、還更改了一個異步消息交互傳輸。我們運行了一個功能性測試,并在已完成的項目上運行了一個性能和可擴展性測試。我們記錄了用例和開發者體驗,并且遵循免費開源軟件 GPL v2 許可證公布這一切。

該制造業場景用例實現了一個 3 步驟業務流程。

1) 分配采購訂單(PO)流程開了一個新訂單。其實現提供了一個方法,可以通過 HTTP 協議之上的 SOAP 接口來訪問。

2) 儲存部件,使用即時庫存控制服務,儲存能夠滿足交付采購訂單需求的那部分庫存。這是一個 Spring 和數據訪問對象(DAO)服務,其接收運行在 JMS 服務接口之上的 REST 編碼的請求。請求消息和庫存控制服務的 XML 消息模式一致。我們使用了 OAGIS 組織的業務對象文檔(BOD)模式。使用帶 Ajax 元素的 Web 頁面提供人工接口請求服務。

3) 為采購訂單定價——使用一個服務將基于當前價格目錄的某個價格分配給采購訂單。系統通過在 SAP 安裝上模擬業務功能對產品定價,并且可以通過模擬一個 SAP NetWeaver 的 SOAP Web 服務接口和安全認證系統來訪問。

工程師保留了每個廠商產品的開發體驗日志。每個日志有 60 到 80 頁長。日志包含了我們軟件工程師的說明、注釋和逐步完成用例實現的意見。開發者日志描述了使用每個廠商產品遇到的重要挑戰以及權變措施/解決方案。

從較高層次來看,我們在每個廠商產品上實現某些服務模式分別遇到了如下挑戰:

Oracle

Oracle 的產品為工程師提供了快速方案創建。Oracle 產品中的任何東西都需要對部署描述符、類路徑和通用配置進行代碼深入和手工調整。Oracle 的工具是面向開發者的——而非架構師和業務分析人員。Oracle 很少或幾乎沒有模型驅動的方法來進行設計、構建和部署 SOA 應用。

對于工程師而言要為任務確定選擇使用哪些工具的話,只使用 Oracle 網頁是非常便捷的。Oracle 的快速啟動指導直截了當并有很用。

不提供開箱即用功能,所有東西都需要社區支持(尤其是 BEA 模塊)。大部分來自權變措施的方案都是由第三方發現的。比如,我們在 Oracle 官網上發現很多關于 Web 服務創建的教程,但我們選擇的那個失敗了。http://st-curriculum.oracle.com/obe/jdev/obe11jdev /ps1/webservices/ws.html#t5。我們發現 soapUI web 服務模擬不能夠從 Oracle 調用。JDeveloper 拋出 WebServiceException:從 WSDL 創建模型錯誤。我們在開發者日志中對此做了記錄。

在有些時候,我們發現很多教程,一些可行而另一些不可行。比如,我們發現一個關于構建異步服務的教程,地址是:http://download.oracle.com/docs/cd/E17904_01/web.1111/e15184 /asynch.htm#CBHECBFG。我們使用了注釋機制,但在應用服務器上不可用:@AsyncWebService 和@PortableWebService 標簽。

IBM

IBM 產品是幾個大平臺集成在一起:WebSphere Application Server,WebSphere Integration Developer(WID),Rational Application Developer(RAD)和 WebSphere Process Server(WPS)。IBM RAD 單獨下載就有 6G。這些平臺存在版本問題:WID 7.0 需要 WAS 7.0,而 RAD 8.0.3 需要 WAS 8.0.3。你最終不得不安裝多個 WAS 版本來使其 SOA 產品工作。這些軟件都比較龐大,常常不能很好一起工作。比如,WebSphere Integration Developer(WID)提供給我們損壞的 WSDL 文檔輸出。

我們遇到很多情況,我們不能從“這里”到“那里”。比如,我們不能生成一個構建在 WPS 中的服務的客戶端。WID 的重構不能夠處理命名空間、名稱和模式值等簡單改變。WID 產生損壞的 WSDL。RAD 沒有開發業務流程的功能。而且,集成和流程開發需要分別使用不同工具:WID 和 WPS。

TIBCO

TIBCO SOA 產品構成包括建模工具、模塊開發工具和服務網格部署:ActiveMatrix Service Grid 3.13,BusinessWorks 5.9.2,Enterprise Message Service EMS 6.0.1,Rendezvous RV 8.1 和 BusinessWorks Studio(BS)。

這些工具都是面向模型的。它們對代碼有比較好的控制并抽象開底層技術。沒有必要去考慮代碼,只需用 SOA 的概念建模。對開發者來說這是很好的消息,因為他們現在有了一個可以和業務經理和軟件架構師一起工作的共同的工具來建模服務接口和工作流。

專注于代碼但缺乏 SOA 知識的開發者將會有一個陡峭的學習曲線。產品文檔非常豐富也很好。但查找正確的指導文檔很難。TIBCO 官網上表面提供的文檔通常描述功能而非如何做事。建模語言也是廠商特有的,缺乏直觀性。BW Stuido 是一款基于 Eclipse 的 IDE,很多開發者都熟悉。不過有一些概念還是比較新的,比如使用 JMS 的異步服務,一些專注于代碼的開發者可能會想到使用消息驅動 Beans(MDB)。另外,需要中介流來實現異步服務。

InfoQ:您能否談談對 SOA 應用關于功能性和性能測試方法論的看法?

我們在構建工具包時應用了敏捷軟件開發實踐。我們把開發者和測試者進行結對,并且構建我們產生服務的單元測試。一些單元測試是 Java Junit 測試,對產生到對象接口的類/方法進行調用。其他測試使用了 soapUI 測試套件,對服務進行 SOAP 和 REST 調用。我們使用了 PushToTest 的 TestMaker 來重新調整功能性測試和加載及性能測試。TestMaker 部署這些測試到一個 QA 實驗室的測試服務網格中,也部署到一個云計算環境中(Amazon EC2、GoGrid、Collabnet 和 Rackspace)。TestMaker 產生一組報表來顯示功能性問題和性能瓶頸的根本原因。

SOA 知識工具包附帶了我們實現的測試和 PushToTest 的 TestMaker 的一份拷貝。我們沒有發布在我們自己硬件上得出的性能測試結果,而是讓任何人都可以在他們自己的環境中運行這些測試,以此來證明每個廠商產品在其自己數據中心的性能差異。

InfoQ:您能否跟我們分享一些 TCO 模型的細節,它是計算開發投入嗎?

我們對服務生命周期的每個步驟的時間/操作進行了分析,以此來揭示構建、集成、部署和管理一系列需要組裝為復合應用的服務所需的時間和投入。該研究的目的在于比較節約成本,這些成本通過更好的開發者效率得以節省,從而大大縮減 TCO。該 TCO 模型是一個公開的 Office/MS Excel 表單,記錄了工具包開發中每步花銷的成本。該模型配備在工具包中了。

在同時進行的產品實現中,TIBCO 的 ActiveMatrix 和 BusinessWorks 表現了最優的生產效率節省。TIBCO 比 Oracle 少花費了 29%的時間和開發成本,比 IBM 少了 22%。

InfoQ:你們是否有使用各獨立廠商規定提供的 SOA 基礎設施能力,比如存儲庫、ESBs 等其他中間件?您能否透露一些高層次的詳細情況呢?

我們遵從每個產品廠商公布的最佳實踐,包括使用其提供的存儲庫、ESB 和其他中介服務。對 IBM 即意味著使用:WebSphere Application Server v8.0.3、IBM Rational Application Developer V8.0.3 多平臺多語言版、IBM Websphere Integration Developer V7.0、IBM Websphere Application Server V7.0 多平臺多語言版,還有 IBM Websphere 測試環境。對 Oracle 意味著使用:Oracle SOA 套件 11gR1(11.1.1.5.0)、Oracle Database XE 10g 10.2.0.1、Oracle WebLogic Server 10.3.5、Coherence、OEPE、Repository Creation Utility 11.1.1.5.0、SOA 套件 11.1.1.5.0(2部分)、JDeveloper 11.1.1.5,還有 Oracle Service Bus 11.1.1.5.0。而對 TBICO 意味著使用:ActiveMatrix Service Grid 3.13、BusinessWorks 5.9.2、Enterprise Message Service EMS 6.0.1、Rendezvous RV 8.1、TIBCO Runtime Agent 5.7.1、ActiveMatrix Sample Examples BWSE 5.9.2、Business Studio(BS) VS,還有 Designer Design Time DABS 1.3.1。

InfoQ:針對 IBM、TIBCO 和 Oracle 這三家廠商的 SOA 產品方案,未來版本的支持計劃是什么?

我們計劃在 2012 年更新 Oracle、TIBOC 和 IBM 產品工具包。這期間他們也有更多的時間來完成新產品版本的發布。我們期望得到開發者社區的反饋來確定還需要增加哪些廠商產品到工具包。比如,我們希望增加像 Microsoft 產品(可能會是 BizTalk 服務、ASP.net)以及更多的開源軟件項目。歡迎大家反饋。

你可以在 http://soakit.pushtotest.com 免費下載 SOA 知識工具包

查看英文原文:TIBCO's ActiveMatrix BusinessWorks Emerges Winner In SOA TCO Study by PushToTest


來自: InfoQ

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!