本文是面向服務(wù)的體系結構 (SOA) 系列之一,主要通過(guò)名為 JKHL Enterprises (JKHLE) 的虛構公司闡述一個(gè)案例研究。本文的案例研究重點(diǎn)是與 SOA 設計(更具體地說(shuō)是服務(wù)和流的設計)相關(guān)的挑戰和解決方案。本文描述如何應用“SOA 設計場(chǎng)景”的實(shí)現和解決方案模式來(lái)解決與該案例研究相關(guān)的業(yè)務(wù)和 IT 挑戰。 我們在本文中介紹的案例研究包括以下人員和角色: - Sandy Osbourne-Archer,首席技術(shù)架構師
- Edmund Smythe-Barrett,企業(yè)架構師
- Ursula DeBarry,軟件架構師兼服務(wù)設計團隊主管
- Henry Lee,業(yè)務(wù)分析人員
- Jason Smith,集成開(kāi)發(fā)人員
- Willy Sheng Duo Li(也叫 Willy Li),應用程序開(kāi)發(fā)人員
帳戶(hù)開(kāi)立項目的挑戰 我們在本文中定義的帳戶(hù)開(kāi)立項目挑戰與“SOA 設計場(chǎng)景”相關(guān)。該場(chǎng)景的重點(diǎn)包括用于 SOA 設計(更具體地說(shuō)是服務(wù)和流的設計)的方法、構件和工具。 軟件架構師兼服務(wù)設計團隊主管 Ursula DeBarry 從業(yè)之初擔任的是 J2EE? 開(kāi)發(fā)人員,后來(lái)成為了軟件架構師。 她擁有嫻熟的設計技能,在應用諸如 Rational? Unified Process? (RUP?) 和面向服務(wù)的建模與體系結構 (Service Oriented Modeling and Architecture,SOMA) 之類(lèi)的方法方面非常熟練。除了使用 IBM? Rational Software Architect 之類(lèi)的工具對她所負責的項目進(jìn)行應用程序建模和組裝以外,她還為同事組織了多個(gè)關(guān)于方法和工具使用的研討會(huì ),并在其中負責授課。 Ursula 對專(zhuān)門(mén)從事 SOA 設計方面的工作特別感興趣。在 Ursula 之前擔任的職位中,她完成了 Web 服務(wù)試驗項目的設計和實(shí)現。不過(guò),這個(gè)試驗項目由于政治原因而取消了。 她非??释麑ふ倚碌?SOA 機會(huì )。Ursula 從以前的同事——應用程序開(kāi)發(fā)人員 Willy Li——那里了解到,JKHL Enterprises 正在尋找有經(jīng)驗的軟件架構師和服務(wù)設計師來(lái)實(shí)施 SOA 計劃。Ursula 前去 JKHL Enterprises 應聘。 首席技術(shù)架構師 Sandy Osbourne-Archer 對 Ursula 進(jìn)行了面試,由于她本身具有豐富的經(jīng)驗、嫻熟的技能,并且有 Willy Li 推薦,因此當場(chǎng)就被錄用了。Ursula 非常高興能擔任軟件架構師兼服務(wù)設計團隊主管。 在與 Sandy 的首次會(huì )面中,Ursula 了解了帳戶(hù)開(kāi)立項目的目標和挑戰。Sandy 表示,自己對業(yè)務(wù)和 IT 之間存在的語(yǔ)義差異和細節差異不甚滿(mǎn)意,因為這些差異容易出現不同步或不完全一致的現象(請參見(jiàn)圖 1)。 Sandy 強調了保持業(yè)務(wù)設計和 IT 解決方案一致的需求,以便保持企業(yè)對新業(yè)務(wù)機會(huì )的敏捷性和響應能力。 圖 1 當前業(yè)務(wù)和 IT 不同步(不一致) Sandy 列出了帳戶(hù)開(kāi)立項目的高級業(yè)務(wù)目標: - 目標 1:降低成本:
- 1.1: 降低創(chuàng )建和管理帳戶(hù)的成本
- 1.2: 減少紙質(zhì)文檔的數量
- 目標 2:提高每個(gè)客戶(hù)擁有的產(chǎn)品數量
- 目標 3:提高可用性
- 目標 4:減少不遵從法律法規的風(fēng)險
- 目標 5:增加客戶(hù)自助服務(wù)
- 目標 6:加快上市時(shí)間
Sandy 總結了高級設計目標和挑戰: - 業(yè)務(wù)設計:
- 清楚地定義業(yè)務(wù)戰略和目標
- 以業(yè)務(wù)驅動(dòng)的方式對服務(wù)需求、設計和實(shí)現進(jìn)行優(yōu)先排序
- 提高服務(wù)重用,以加速上市時(shí)間并降低成本
- IT 解決方案設計:
- 為關(guān)鍵業(yè)務(wù)活動(dòng)的服務(wù)提供顯式的可跟蹤性
- 可重復且可擴展的設計方法
- 能實(shí)現更好重用的服務(wù)組合
- 用于多通道訪(fǎng)問(wèn)的服務(wù)綁定策略
- 方便組裝、部署和管理的解決方案
SOA 設計場(chǎng)景的帳戶(hù)開(kāi)立計劃 通過(guò)一系列的會(huì )議,Ursula 和企業(yè)架構師 Edmund Smythe-Barrett 共同制定了 SOA 設計場(chǎng)景的帳戶(hù)開(kāi)立計劃。 他們與業(yè)務(wù)分析人員 Henry Lee 進(jìn)行了討論,對為帳戶(hù)開(kāi)立項目定義的關(guān)鍵業(yè)務(wù)需求有了更好的理解。圖 2 描述了帳戶(hù)開(kāi)立高級流程,提供了該流程的關(guān)鍵元素的概念視圖。 圖 2 帳戶(hù)開(kāi)立高級流程 為了提高 SOA 設計的成熟度和改進(jìn)帳戶(hù)開(kāi)立流程,Ursula 計劃應用用于服務(wù)設計的 SOMA 并執行用于流程組合的業(yè)務(wù)服務(wù)設計。 應用 SOMA 進(jìn)行服務(wù)設計 Ursula 指出,IBM Global Services 的架構師和專(zhuān)家開(kāi)發(fā)的 SOMA 方法基于從客戶(hù)合作項目中獲得的知識。Ursula 希望能夠利用經(jīng)過(guò)驗證的 SOMA 方法進(jìn)行帳戶(hù)開(kāi)立服務(wù)設計。 IBM 提供了兩種應用 SOMA 進(jìn)行服務(wù)設計的方法: 在此方法中,客戶(hù)通過(guò)服務(wù)約定雇用 IBM,讓他們的架構師和專(zhuān)家來(lái)應用 SOA 方法和 IBM 工具來(lái)代表客戶(hù)進(jìn)行服務(wù)設計。 Ursula 和 Edmund 一致同意,對于該帳戶(hù)開(kāi)立項目,他們將參加與 IBM 的服務(wù)合作項目,以便在使用“用于服務(wù)設計的 SOMA 方法”來(lái)創(chuàng )建服務(wù)設計方面獲得幫助。服務(wù)設計團隊和 IBM 將應用 SOMA 方法來(lái)確定服務(wù),指定服務(wù)和流,并實(shí)現該服務(wù)設計。與 IBM 的合作將幫助服務(wù)設計團隊為將來(lái)的項目獲得 SOAM 的實(shí)際應用知識。 - 業(yè)務(wù)轉換分析 (BTA) 和服務(wù)設計
在此方法中,客戶(hù)通過(guò)應用 IBM Rational Method Composer 中包含的 RUP SOMA 方法直接創(chuàng )建服務(wù)設計。BTA 和服務(wù)設計的重點(diǎn)是通過(guò)應用自動(dòng)化的設計工具和流程,以改進(jìn)設計一致性和加速上市時(shí)間,從而提供正式的說(shuō)明性服務(wù)設計方法?;蛘?,客戶(hù)可以雇請 IBM Services 代表他們應用 BTA 和服務(wù)設計。 在旨在使將來(lái)的 SOA 變得更加自給自足的工作中,Ursula 領(lǐng)導的服務(wù)設計團隊將開(kāi)始培訓 BTA 和服務(wù)設計的使用。 用于流程組合的業(yè)務(wù)服務(wù)設計 Ursula 將領(lǐng)導帳戶(hù)開(kāi)立項目的用于流程組合的業(yè)務(wù)服務(wù)設計。
將 SOA 場(chǎng)景模式應用于該案例研究 SOA 設計場(chǎng)景的重點(diǎn)是通過(guò)使用經(jīng)過(guò)證明的 IBM 方法和工具,從而使業(yè)務(wù)設計與 IT 解決方案設計保持一致。諸如組件業(yè)務(wù)模型(Component Business Model,CBM)、SOMA 和 RUP for SOMA 等方法提供了概念框架,用于定義建模的方方面面以使業(yè)務(wù)與 IT 設計保持一致。使用 IBM 工具來(lái)支持設計方法,以對可跟蹤性建模并創(chuàng )建整個(gè)生命周期中的設計構件。SOA 設計場(chǎng)景可應用于每個(gè)基本 SOA 場(chǎng)景。 SOA 設計場(chǎng)景模型的基本構造包括流、服務(wù)和組件(請參見(jiàn)圖 3)。 - 流或流程表示完成某個(gè)業(yè)務(wù)流程所需要的活動(dòng)流。流是旨在實(shí)現業(yè)務(wù)目標的相關(guān)和集成服務(wù)的組合。
- 服務(wù)是代表性的可重復業(yè)務(wù)任務(wù)。通過(guò)提供定義良好并且與實(shí)現無(wú)關(guān)的接口,從而將服務(wù)用于封裝應用程序的功能單元。服務(wù)可由其他服務(wù)或客戶(hù)端應用程序調用(使用)。
- 組件表示服務(wù)向服務(wù)使用者公開(kāi)的功能,以及由實(shí)現服務(wù)的服務(wù)提供者提供的服務(wù)質(zhì)量 (QoS)。
圖 3 服務(wù)提供業(yè)務(wù)與 IT 之間的一致性 注意:SOA 設計場(chǎng)景的關(guān)鍵元素是服務(wù)設計。 服務(wù)設計以及最終的服務(wù)通過(guò)在業(yè)務(wù)流和目標與 IT 組件之間提供橋梁,從而提供一致性能力(如圖 3 所示)。 以下幾個(gè)部分將詳細描述該案例研究解決方案元素,這些元素映射到 SOA 設計場(chǎng)景實(shí)現: - 用于服務(wù)設計的 SOMA
- 業(yè)務(wù)轉換分析和服務(wù)設計
- 用于流程組合的業(yè)務(wù)服務(wù)設計
用于服務(wù)設計的 SOMA 注意: 用于服務(wù)設計的 SOMA 實(shí)現特別利用了 SOMA 標識、規范和實(shí)現階段來(lái)交付所需的 SOA 設計成果。 Ursula 和 IBM Services 合作項目團隊開(kāi)始通過(guò)應用用于服務(wù)設計的 SOMA 方法來(lái)處理帳戶(hù)開(kāi)立服務(wù)設計。該團隊集中于服務(wù)設計的以下方面: - 服務(wù)標識
- 服務(wù)規范
- 服務(wù)實(shí)現
SOMA 方法是用于 SOA 設計和構造以支持目標業(yè)務(wù)流程的分析和設計方法。SOMA 通過(guò)服務(wù)、組件和流的標識、規范和實(shí)現來(lái)完成此任務(wù)。SOMA v3.1 擴展了 SOMA,以提供同時(shí)還包括實(shí)現、測試、部署、監視和管理活動(dòng)的端到端方法,如圖 4 所示。 圖 4 SOMA 方法 SOMA 方法提供了用于 SOA 設計的描述性指導,并且是 SOA 解決方案設計模式的基礎(請參見(jiàn)圖 5)。 圖 5 用于 SOA 參考體系結構分層解決方案的 SOMA 指導 服務(wù)標識 服務(wù)標識的目標是創(chuàng )建候選服務(wù)及其對業(yè)務(wù)有意義的關(guān)聯(lián)操作的初始集合。服務(wù)標識主要由軟件架構師來(lái)完成,并且通常包括業(yè)務(wù)分析人員以支持角色形式的參與。 在服務(wù)標識期間,將創(chuàng )建服務(wù)模型工作產(chǎn)品,并移交給負責服務(wù)規范的軟件架構師。服務(wù)標識與產(chǎn)生服務(wù)模型的分析級別同義,而服務(wù)規范則是設計級別。 服務(wù)標識的關(guān)鍵輸入包括: 用于定義業(yè)務(wù)體系結構。CRM 通常用于業(yè)務(wù)分析,以幫助客戶(hù)了解其業(yè)務(wù)和能力,并確定能力差距。也可以使用其他方法來(lái)進(jìn)行業(yè)務(wù)分析。 現有的服務(wù)和有關(guān)它們的信息通常存儲在服務(wù)注冊中心和存儲庫中。該帳戶(hù)開(kāi)立項目是第一次采用 SOA;因此不存在現有的服務(wù)。 讓我們進(jìn)一步了解三種用于確定候選服務(wù)的補充技術(shù): - 目標-服務(wù)建模
- 領(lǐng)域分解
- 現有資產(chǎn)分析
目標-服務(wù)建模 目標-服務(wù)建模的關(guān)鍵目標是證明服務(wù)的可跟蹤性和與業(yè)務(wù)目標的一致性。目標-服務(wù)模型是一種由內向外 (middle-out) 的方法,在相應輸出可用時(shí)迭代地用于驗證通過(guò)領(lǐng)域分解和現有資產(chǎn)分析技術(shù)確定的候選服務(wù)列表的完整性。 在開(kāi)發(fā)目標-服務(wù)模型時(shí),您通常與業(yè)務(wù)主管、業(yè)務(wù)分析人員和主題專(zhuān)家緊密合作,以確定范圍內的業(yè)務(wù)目標和項目的階段。對于每個(gè)目標和子目標,您將確定可用于評估業(yè)務(wù)性能的關(guān)鍵性能指標 (KPI) 和度量。 JKHLE 銷(xiāo)售管理業(yè)務(wù)組件中的服務(wù)標識重點(diǎn)目標是確定支持該業(yè)務(wù)組件的服務(wù)。表 1 提供了一個(gè)業(yè)務(wù)目標的摘要和支持 KPI,以說(shuō)明目標-服務(wù)模型。 表 1 目標-服務(wù)模型的業(yè)務(wù)目標和 KPI | 目標 | 目標的 ROI | KPI/度量 | 服務(wù) | | 1.1 將創(chuàng )建和管理帳戶(hù)的成本降低 10% | $1,000,000 | 1.1.1 將帳戶(hù)激活成本降低 50% | AccountActivation 組合 - ARSetup
- AccountSetup
- CreateAccount
| 領(lǐng)域分解 對于領(lǐng)域分解,我們采用自頂向下的方式工作,將業(yè)務(wù)領(lǐng)域分解為主要的功能區域和子系統。在下一個(gè)級別,我們進(jìn)一步將功能區域分解為流程、子流程和高級業(yè)務(wù)用例。 注意:高級業(yè)務(wù)用例通常是作為服務(wù)公開(kāi)的理想候選者,并且可以提供初始的設計范圍。 領(lǐng)域分解使用并增強領(lǐng)域分析和領(lǐng)域工程方法的子集,包括: 將領(lǐng)域分解為功能區域可以為 IT 子系統及其實(shí)現服務(wù)的對應服務(wù)組件的設計提供業(yè)務(wù)邊界。如果沒(méi)有提供 CBM,則為 SOMA 合作項目執行領(lǐng)域分析。 執行業(yè)務(wù)流程建模以將流程分解為子流程和任務(wù)。對于初始的候選服務(wù)列表,三個(gè)級別的分解通常就足夠了(請參見(jiàn)圖 6)。 全面觀(guān)察流程、規則、策略和結構(數據),以確定候選共性。下一步,分離出流程、規則和結構的變化。 圖 6 流程分解 分解集中于“帳戶(hù)開(kāi)立”流程以及“帳戶(hù)激活”和“驗證”功能區域,如圖 7 所示。 圖 7 帳戶(hù)開(kāi)立流程和功能區域的領(lǐng)域分解輸出 現有資產(chǎn)分析 現有資產(chǎn)分析的主要目標是最大限度地重用現有的應用程序事務(wù)、現有系統中的模塊和打包的應用程序。在執行現有資產(chǎn)分析時(shí),我們采用自底向上的方法以確定候選服務(wù)??赡軙?huì )確定一些新服務(wù),并且在其他情況下,該技術(shù)將確認前一項技術(shù)的標識結果。 觀(guān)察圖 7,Ursula 與 Edmund 使用自底向上的方法,共同確定 JKHLE 環(huán)境中的現有應用程序和事務(wù),以最大限度地實(shí)現重用。Edmund 讓 Ursula 知道許多現有的中間件和后端應用程序,例如 CICS、IMS、SAP 和 Siebel。Ursula 評估每個(gè)現有的應用程序,以確定應該將哪些應用程序作為帳戶(hù)開(kāi)立流程應用程序的服務(wù)公開(kāi)。他們可以使用 IBM WebSphere Studio Asset Analyzer 來(lái)掃描 IBM System z?(大型機)和分布式軟件,以確定并在存儲庫中存儲相關(guān)的應用程序信息,其目的是促進(jìn)和了解哪些資產(chǎn)可以成為可重用組件并作為服務(wù)公開(kāi)。 現有資產(chǎn)分析并不只是將現有的應用程序接口作為 Web 服務(wù)公開(kāi)。需要周密考慮以確定現有應用程序的接口是否允許良好的服務(wù)設計(請參見(jiàn)圖 8)。 圖 8 將現有應用程序作為服務(wù)公開(kāi)的選項 如圖 8 所示,存在幾種公開(kāi)現有應用程序的選項: 將功能保留原樣,但是使用工具或中間件將現有功能作為服務(wù)公開(kāi)。例如,將 CICS 應用程序作為 SOAP Web 服務(wù)公開(kāi)(也稱(chēng)為直接公開(kāi))。 按上述方式包裝功能,但是在以后使用最終的服務(wù)規范來(lái)重新開(kāi)發(fā)服務(wù)。然后,替換原始服務(wù),并將客戶(hù)端重定向到新的實(shí)現。 在某些情況下,無(wú)法包裝某個(gè)功能并將其作為服務(wù)公開(kāi)。 但是,能夠以更容易集成的形式包裝該功能,例如消息隊列接口或 Java 連接器體系結構(Java Connector Architecture,JCA),從而允許新服務(wù)就地訪(fǎng)問(wèn)該功能(也稱(chēng)為間接公開(kāi))。 在某些情況下,只需將現有的功能用作服務(wù)實(shí)現中的一個(gè)邏輯組件,即可讓新服務(wù)就地訪(fǎng)問(wèn)該功能。 在執行每一項標識技術(shù)之后,將確定一個(gè)修訂后的候選服務(wù)組合,這樣就為制定規范做好了準備。 服務(wù)規范 服務(wù)規范定義依賴(lài)關(guān)系、組合、公開(kāi)決策、消息、服務(wù)質(zhì)量約束以及與服務(wù)狀態(tài)管理相關(guān)的決策。服務(wù)規范任務(wù)的目標是詳細描述服務(wù)模型。 服務(wù)規范包括以下子任務(wù): - 應用 Service Litmus Test 以做出公開(kāi)決策
- 確定服務(wù)依賴(lài)關(guān)系
- 確定服務(wù)組合和流
- 確定非功能性需求
- 指定服務(wù)消息
- 編寫(xiě)狀態(tài)管理決策文檔
應用 Service Litmus Test 以做出公開(kāi)決策 使用 Service Litmus Test 以做出服務(wù)公開(kāi)決策。圖 9 突出顯示了需要公開(kāi)的 JKHLE 候選服務(wù)。 圖 9 要公開(kāi)的服務(wù) 確定服務(wù)依賴(lài)關(guān)系 詳細的服務(wù)檢查可以揭示對用于實(shí)現服務(wù)功能的其他服務(wù)或應用程序的服務(wù)依賴(lài)關(guān)系。 存在兩種需要考慮的依賴(lài)關(guān)系類(lèi)型: - 功能依賴(lài)關(guān)系是這樣的服務(wù)之間的依賴(lài)關(guān)系,即這些服務(wù)彼此依賴(lài)以交付所需交付的服務(wù)。例如,AccountActivation 組合服務(wù)具有對 ARSetup、AccountSetup 和 CreateAccount 服務(wù)的依賴(lài)關(guān)系。
- 流程依賴(lài)關(guān)系是這樣的服務(wù)之間的依賴(lài)關(guān)系,即這些服務(wù)編排在一起以構成業(yè)務(wù)流程。例如,帳戶(hù)開(kāi)立流程依賴(lài)“確定資格”前提條件和“創(chuàng )建帳戶(hù)”流程依賴(lài)關(guān)系。
確定服務(wù)組合和流 檢查功能區域和業(yè)務(wù)流程可以幫助詳細描述服務(wù)及其流的組合。服務(wù)流規范描述服務(wù)之間的編排。例如,帳戶(hù)激活組合服務(wù)是一個(gè)長(cháng)時(shí)間運行的可中斷流程宏流?!皫?hù)查詢(xún)”是一個(gè)短時(shí)間運行的不可中斷流程(微流)。 確定非功能性需求 服務(wù)模型必須考慮用于指定服務(wù)質(zhì)量 (QoS) 的非功能性需求。例如,“帳戶(hù)查詢(xún)”服務(wù)可用性需求為 99.999%,帳戶(hù)激活服務(wù)的帳戶(hù)激活性能需求為在四天內激活。 指定服務(wù)消息 服務(wù)模型中的數據流通常以在服務(wù)之間流動(dòng)的消息的形式表示。在確定服務(wù)規范的過(guò)程中,存在數據模型未完成的情況。要考慮有關(guān)將實(shí)現的服務(wù)的詳細信息在此時(shí)間點(diǎn)不足夠的情況。雖然如此,仍然需要考慮用于服務(wù)輸入和輸出的數據和消息。例如,表 2 指定了 AccountInquiry 服務(wù)的服務(wù)消息。 表 2 指定服務(wù)消息 | 消息段 | 值 | | 服務(wù) | AccountInquiry | | 主題 | QueryAccount | | 輸入消息 | CustomerInformation | | 輸出消息 | AccountInformation | 編寫(xiě)狀態(tài)管理決策文檔 在某些情況下,服務(wù)組合需要編寫(xiě)狀態(tài)管理文檔,例如有狀態(tài)、無(wú)狀態(tài)、帶有緩存狀態(tài)的狀態(tài)等等。 例如,存在流程的某些部分的狀態(tài)管理可能由組合服務(wù)或其他元素控制的情況。 服務(wù)組件規范 服務(wù)規范任務(wù)的最后一部分是組件規范。孤立地執行此任務(wù)通常是非常困難的,因此實(shí)現任務(wù)通常并行地執行并且是迭代的。服務(wù)組件規范包括以下子任務(wù): - 確定組件屬性
- 確定事件和消息
- 確定組件內部流
- 創(chuàng )建組件類(lèi)關(guān)系圖
- 面向變化的設計
可以使用 IBM Rational Software Architect,以 UML 的形式為服務(wù)組件規范任務(wù)創(chuàng )建若干工作產(chǎn)品。 服務(wù)實(shí)現 在確定并指定服務(wù)以后,需要做出有關(guān)每個(gè)組件如何實(shí)現功能的關(guān)鍵體系結構決策。 服務(wù)分配 在整個(gè)生命周期中以迭代的方式將服務(wù)分配到組件,以執行用于將服務(wù)分配到企業(yè)組件的服務(wù)分配。例如,帳戶(hù)查詢(xún)服務(wù)被分配到客戶(hù) CICS 后端系統(請參見(jiàn)第 12 頁(yè)上的圖 7)。 技術(shù)可行性探索 需要確定并評估技術(shù)約束,以確保公開(kāi)候選服務(wù)在技術(shù)上是可行的,對于在現有系統分析期間確定的服務(wù)尤其是如此。通常使用技術(shù)原型來(lái)探索技術(shù)可行性。 將組件分配到各層 將組件分配到應用程序體系結構中的各個(gè) SOA 參考體系結構層是在指定組件并編寫(xiě)實(shí)現決策文檔之后執行的(請參見(jiàn)第 12 頁(yè)上的圖 7)。 表 3 提供了關(guān)鍵的服務(wù)實(shí)現決策的摘要 表 3 服務(wù)實(shí)現決策 | 組件 | 實(shí)現的服務(wù) | 功能/技術(shù)組件 | 實(shí)現決策 | | 客戶(hù)/帳戶(hù) | 帳戶(hù)查詢(xún) | - 客戶(hù)
- 重用客戶(hù) CICS 應用程序提供的現有服務(wù)
| - 權限和策略管理
- 為現有的客戶(hù) CICS 應用程序創(chuàng )建新的帳戶(hù)查詢(xún)功能
| | 帳戶(hù)激活 | | - 重用客戶(hù) CICS 應用程序組件提供的服務(wù)
- 重用現有的帳單 CICS 應用程序
- 重用現有的 SAP GL 應用程序
| SOMA 建模環(huán)境 SOMA 建模環(huán)境(Modeling Environment,ME)提供模型、方法、IBM 工具和內容的內聚聯(lián)系,以支持對用于 IBM 客戶(hù)服務(wù)合作項目的 SOA 解決方案進(jìn)行基于資產(chǎn)的開(kāi)發(fā)。 業(yè)務(wù)轉換分析和服務(wù)設計 注意:業(yè)務(wù)轉換分析(Business Transformation Analysis,BTA)和服務(wù)設計實(shí)現使用 RUP SOMA 業(yè)務(wù)轉換分析方法。 服務(wù)設計使用 IBM Rational Method Composer 包括的 RUP SOMA 方法中捕獲的過(guò)程。 IBM Rational Software Architect 用于創(chuàng )作和重用服務(wù)設計模式和最佳實(shí)踐,包括數據和部署建模以及服務(wù)組裝。 Ursula 和服務(wù)設計團隊成員開(kāi)始進(jìn)行有關(guān)如何使用 BTA 和服務(wù)設計的培訓。該團隊計劃使用此方法為將來(lái)的 SOA 項目創(chuàng )建服務(wù)設計。 在“用于服務(wù)設計的 SOMA”中,我們在“帳戶(hù)開(kāi)立項目”的上下文中描述了 SOMA 的核心元素。在本部分,我們將重點(diǎn)介紹業(yè)務(wù)轉換分析 (BTA) 和服務(wù)設計實(shí)現的關(guān)鍵元素,這些元素利用了 IBM Rational Method Composer 中包括的 RUP SOMA 方法。 BTA 和服務(wù)設計實(shí)現通過(guò)應用自動(dòng)化的設計工具和流程,以改進(jìn)設計一致性和縮短上市時(shí)間,從而提供正式的說(shuō)明性 SOA 設計方法。 圖 10 顯示了核心 RUP SOMA 用例和參與者。RUP SOMA 利用了“應用基于模式的工程方法”的概念。 請注意,參與者將帶模式的 BTA 和服務(wù)設計應用于執行業(yè)務(wù)轉換分析用例,以及包括標識、指定和實(shí)現服務(wù)的核心 SOMA 用例。 圖 10 核心 RUP SOMA 用例 圖 11 顯示了用于 BTA 和服務(wù)設計的擴展流程。RUP SOMA 流程步驟顯示得非常粗略。更詳細的信息在 IBM Rational Method Composer 包括的 RUP SOMA 方法中。 請注意數據建模、集成服務(wù)和部署建模的連鎖流程。在此例中,RUP SOMA 流程使用數據建模的結果。集成服務(wù)和部署建模主要是 RUP SOMA 的后續流程。管理可重用資產(chǎn)是擴充所有其他流程的基礎結構流程。 IBM 推出的重用管理解決方案基于 IBM Rational Asset Manager,后者用于管理和治理對任何角色和規則有利的幾乎任何資產(chǎn)的重用。Rational Asset Manager 可以與 IBM WebSphere 集成在一起。服務(wù)注冊中心和存儲庫支持在組織的標準資產(chǎn)重用流程上下文中重用和治理與服務(wù)相關(guān)的運行時(shí)資產(chǎn)。 圖 11 BTA 和服務(wù)設計擴展流程關(guān)系圖 圖 12 顯示了 RUP SOMA 中定義的主要活動(dòng): - 執行業(yè)務(wù)轉換分析:生成用作服務(wù)設計輸入的業(yè)務(wù)和業(yè)務(wù)流程模型。
- 標識服務(wù):發(fā)現候選服務(wù)并將其組織為層次結構以便于理解。
- 指定服務(wù):指定服務(wù)的外部視圖,并充實(shí)服務(wù)傳遞的消息。
- 實(shí)現服務(wù):做出有關(guān)服務(wù)實(shí)現的決策。
RUP SOMA 流程沒(méi)有充分強調可靠的需求管理在整個(gè) SOA 設計生命周期中的作用。因此,添加了管理需求流程元素。如圖 12 所示,整個(gè)生命周期中非常協(xié)調地使用了 IBM WebSphere Business Modeler、IBM Rational RequisitePro? 和 IBM Rational Software Architect。 圖 12 用于 BTA 和服務(wù)設計的核心 RUP SOMA 流程 在下面的幾個(gè)部分中,我們將重點(diǎn)介紹核心 BTA 和服務(wù)設計用例的重要參與者、方法與模式、工具和工作產(chǎn)品。 執行 BTA 圖 13 顯示了執行 BTA 流程中的主要活動(dòng)。BTA 的結果是創(chuàng )建了描述以下內容的工作產(chǎn)品: 創(chuàng )建業(yè)務(wù)分析模型并執行功能區域分析的活動(dòng)。 - 業(yè)務(wù)的動(dòng)態(tài)特性
創(chuàng )建業(yè)務(wù)用例模型,并通過(guò) WebSphere Business Modeler 業(yè)務(wù)流程實(shí)現業(yè)務(wù)用例。 BTA 活動(dòng)可以產(chǎn)生業(yè)務(wù)體系結構的完整描述。BTA 活動(dòng)還可以提供與業(yè)務(wù)相關(guān)并且是服務(wù)設計的必需輸入的模型。服務(wù)設計還使用業(yè)務(wù)規則和業(yè)務(wù)目標作為服務(wù)發(fā)現的輸入。BTA 還包括集中于那些構件的活動(dòng)。 圖 13 RUP SOMA——執行 BTA 標識服務(wù) 圖 14 顯示了用于標識服務(wù)的 RUP SOMA 流程。該流程依賴(lài)并行執行的子任務(wù),這些任務(wù)用于標識候選服務(wù)。同時(shí)使用不同的方法可以極大地提高發(fā)現完整候選服務(wù)集的機會(huì )。 圖 14 RUP SOMA——標識服務(wù) 指定服務(wù) 圖 15 顯示了用于指定服務(wù)的 RUP SOMA 流程。該流程用于定義服務(wù)的外部視圖,以及用于實(shí)現服務(wù)的子系統和組件的外部視圖的設計。在每個(gè)抽象級別,描述了接口、接口簽名、接口協(xié)議和消息。此外,將在總體流程的此部分期間處理更細粒度的元素(例如原子服務(wù))的編排,以實(shí)現更抽象的元素(例如組合服務(wù)的接口操作)。 在此級別的設計完成之后,可以使用產(chǎn)品化的 Rational Software Architect 轉換來(lái)創(chuàng )建可供 IBM WebSphere Integration Developer 使用的項目和內容,包括描述服務(wù)接口的 WSDL 文件和描述元素(這些元素用于實(shí)現服務(wù))執行的 BPEL。內容為集成開(kāi)發(fā)人員提供了起點(diǎn),此起點(diǎn)基于解決非功能性以及功能性需求的已架構 IT 解決方案,從而給集成開(kāi)發(fā)人員帶來(lái)好處。 圖 15 RUP SOMA——指定服務(wù) 實(shí)現服務(wù) 圖 16 顯示了用于實(shí)現服務(wù)的 RUP SOMA 流程。做出有關(guān)使用哪些現有資產(chǎn)來(lái)實(shí)現服務(wù)的決策。 在使用新組件以實(shí)現服務(wù)的情況下,將做出有關(guān)在總體系統體系結構中的何處使用那些組件的決策。 圖 16 RUP SOMA——實(shí)現服務(wù) 用于流程組合的業(yè)務(wù)服務(wù)設計 注意:用于流程組合的業(yè)務(wù)服務(wù)設計實(shí)現演示了使關(guān)鍵業(yè)務(wù)度量與業(yè)務(wù)目標保持一致的流程建模和模擬。 Ursula 從業(yè)務(wù)分析人員那里了解到需要對帳戶(hù)驗證流程進(jìn)行流程改進(jìn)。Ursula 使用 IBM WebSphere Business Modeler 來(lái)模擬現有的流程,然后在通過(guò)關(guān)鍵度量模擬來(lái)實(shí)現的流程優(yōu)化基礎上創(chuàng )建了建議的流程。 當前帳戶(hù)驗證流程 下面,我們將描述當前帳戶(hù)驗證流程(如第 26 頁(yè)上的圖 17 所示)。帳戶(hù)協(xié)調人員檢查客戶(hù)申請,并研究有關(guān)多個(gè)不同系統的信息,以確定是否需要信用報告。 如果不需要信用報告,則客戶(hù)申請將跳過(guò)該流程的大部分內容。如果需要信用報告,則帳戶(hù)協(xié)調人員將向信用調查機構打電話(huà)或發(fā)送傳真,以請求信用報告。由于通信方法(傳真或電話(huà))問(wèn)題,信用調查機構沒(méi)有為 JKHLE 提供針對其服務(wù)的優(yōu)惠定價(jià)。獲得多個(gè)信用報告非常昂貴并且耗時(shí)。 JKHLE 無(wú)法區分高風(fēng)險和中等風(fēng)險的客戶(hù),從而導致遠高于行業(yè)平均水平的大量拒絕受理請求。最后,帳戶(hù)協(xié)調人員發(fā)出了批準。批準的定價(jià)是通過(guò)參考一組復雜的紙質(zhì)手冊來(lái)確定的。 當前流程中存在多處流程改進(jìn)余地。 - 缺乏單一客戶(hù)視圖和信用流程業(yè)務(wù)規則導致我們定購了超過(guò)需要的信用報告。
- 手動(dòng)的信用報告檢索流程高度不一致、代價(jià)昂貴并且非常耗時(shí)。
- 太多的客戶(hù)請求被拒絕,導致潛在客戶(hù)不愉快并導致銷(xiāo)售代表不滿(mǎn)。
- 雖然定價(jià)和帳戶(hù)規則相當簡(jiǎn)單,但是其值更改得非常頻繁。由于該過(guò)程是手動(dòng)的,很難實(shí)現快速更改。
圖 17 帳戶(hù)驗證(現有) 預期的帳戶(hù)驗證流程 Ursula 在 WebSphere Business Modeler 中修改了模擬的帳戶(hù)驗證流程來(lái)處理上述流程改進(jìn),以創(chuàng )建如圖 18 所示的基準。接下來(lái),Ursula 可以通過(guò)更改流程中的關(guān)鍵度量或值,從而試著(zhù)優(yōu)化該業(yè)務(wù)流程。這稱(chēng)為流程優(yōu)化(請參見(jiàn)圖 19)。 優(yōu)化后的流程具有以下改進(jìn): - 自動(dòng)化的完整客戶(hù)視圖減少了需要信用報告的客戶(hù)數量。
- 自動(dòng)化的信用報告顯著(zhù)降低了成本并更加快速。
- 批準更大比例的客戶(hù)請求。
- 基于規則的動(dòng)態(tài)定價(jià),可在業(yè)務(wù)需求的基礎上根據需要進(jìn)行更改。
- 平均持續時(shí)間變化百分比:加速 97.6%
- 加權平均利潤:增加 84.7%
圖 18 帳戶(hù)驗證(預期)
圖 19 帳戶(hù)驗證——用于優(yōu)化的流程模擬 集成開(kāi)發(fā)人員 Jason Smith 根據前面的實(shí)現中描述的方法,使用指定的服務(wù)和實(shí)現的組件組裝并組合了該業(yè)務(wù)流程。
總結 了解到 Ursula 已完成了帳戶(hù)開(kāi)立項目的設計,Sandy 非常高興。通過(guò)與 IBM 的合作,Ursula 能夠將用于服務(wù)設計的 SOMA 方法應用于帳戶(hù)開(kāi)立服務(wù)設計。此外,服務(wù)團隊學(xué)會(huì )了如何使用 RUP SOMA 方法來(lái)為將來(lái)的 SOA 采用創(chuàng )建服務(wù)設計。 帳戶(hù)開(kāi)立服務(wù)的設計和開(kāi)發(fā)團隊發(fā)現,用于 SOA 設計場(chǎng)景的 IBM 工具集成良好并且很容易使用。諸如 IBM Rational RequisitePro、Rational Method Composer 和 Rational Software Architect 等工具提供了功能豐富的工具環(huán)境,可用于加速創(chuàng )建應用 IBM 方法的服務(wù)設計。使用 IBM WebSphere Business Modeler 對于業(yè)務(wù)服務(wù)設計和流程組合非常有幫助。 總而言之,帳戶(hù)開(kāi)立案例研究中對 SOA 設計場(chǎng)景使用了以下 IBM 產(chǎn)品: - Rational Method Composer
- IBM Rational RequisitePro
- IBM Rational Software Architect
IBM Rational Software Architect 中包括的產(chǎn)品功能: - IBM Rational Application Developer
- IBM Software Modeler
- IBM Rational Data Architect
- IBM WebSphere Business Modeler
- IBM WebSphere Integration Developer
- IBM WebSphere Studio Asset Analyzer
聲明 本信息是為在美國提供的產(chǎn)品和服務(wù)而編寫(xiě)的。 IBM 可能在其他國家/地區不提供本文檔中討論的產(chǎn)品、服務(wù)或功能。有關(guān)您所在區域當前提供的產(chǎn)品和服務(wù)的信息,請向您當地的 IBM 代表咨詢(xún)。 任何對 IBM 產(chǎn)品、程序或服務(wù)的引用都并非旨在明示或暗示只能使用 IBM 產(chǎn)品、程序或服務(wù)。只要不侵犯 IBM 的知識產(chǎn)權,可以用任何具有同等功能的產(chǎn)品、程序或服務(wù)代替 IBM 產(chǎn)品、程序或服務(wù)。但是,對任何非 IBM 產(chǎn)品、程序或服務(wù)的評估和驗證應由用戶(hù)自行負責。 IBM 公司可能已擁有或正在申請與本文檔描述的內容有關(guān)的各項專(zhuān)利。 提供本文檔并沒(méi)有授予您對這些專(zhuān)利的任何許可。您可以通過(guò)書(shū)面方式將許可查詢(xún)寄至: IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A. 要了解 IBM 的完整聲明,請參閱 IBM 聲明的細節。
參考資料 學(xué)習 - 您可以參閱本文在 IBM 紅皮書(shū)網(wǎng)站上的 英文原文 。
- 本系列文章的第 1 部分:本文概括介紹了虛構的 JKHL Enterprises (JKHLE) 公司的情況,這個(gè)虛構的公司已在一系列面向服務(wù)的體系結構 (SOA) 場(chǎng)景文章及相關(guān)的工作產(chǎn)品中被引用,作案例研究之用。本案例研究介紹了如何借助 SOA 原則通過(guò)應用 SOA 場(chǎng)景實(shí)現模式來(lái)應對常見(jiàn)的業(yè)務(wù)和 IT 挑戰。
- 本系列文章的第 2 部分:本文中的案例研究重點(diǎn)是與 SOA 服務(wù)創(chuàng )建和重用相關(guān)的挑戰和解決方案。在本文中,我們將介紹如何使用關(guān)鍵方法和選項來(lái)利用現有的 IT 資產(chǎn)并通過(guò) SOA 接口加以重用,還將介紹如何為新的和現有的資產(chǎn)構建服務(wù),以確保它們可以用于未來(lái)的 SOA 工作。本文描述了如何使用“面向服務(wù)的體系結構中的服務(wù)創(chuàng )建場(chǎng)景”的實(shí)現模式來(lái)解決與該案例研究相關(guān)的業(yè)務(wù)和 IT 挑戰。
- 本系列文章的第 3 部分:本文中的案例研究重點(diǎn)說(shuō)明與開(kāi)立新帳戶(hù)服務(wù)的連接性相關(guān)的挑戰和解決方案。其中描述如何使用“SOA 中的服務(wù)連接性場(chǎng)景”的實(shí)現模式來(lái)解決與該案例研究相關(guān)的業(yè)務(wù)和 IT 挑戰。
- 本系列文章的第 4 部分:本文中的案例研究重點(diǎn)說(shuō)明與開(kāi)立新帳戶(hù)的業(yè)務(wù)流程相關(guān)的挑戰和解決方案,主要向您講解了如何通過(guò)各種 IBM 工具來(lái)解決相關(guān)的業(yè)務(wù)流程問(wèn)題。
- 本系列文章的第 5 部分:本文描述了如何使用交互與協(xié)作服務(wù) SOA 場(chǎng)景的實(shí)現和解決方案模式來(lái)解決與該案例研究相關(guān)的業(yè)務(wù)和 IT 挑戰。
- 本系列文章的第 6 部分:本文中的案例研究重點(diǎn)說(shuō)明在具有 SOA 服務(wù)接口的 JKHLE 中與公開(kāi)信息相關(guān)的挑戰和解決方案。通過(guò)本文的學(xué)習您將了解到可以通過(guò)許多不同的模式實(shí)現企業(yè)中數據信息的統一訪(fǎng)問(wèn)、驗證和清理等功能。
- 本系列文章的第 7 部分:本文描述了如何使用 IBM 的相關(guān)業(yè)務(wù)流程管理軟件和方法,來(lái)解決與該案例研究相關(guān)的業(yè)務(wù)和 IT 挑戰。
- IBM developerWorks SOA and Web services 專(zhuān)區 提供了大量的文章,以及關(guān)于如何開(kāi)發(fā) Web 服務(wù)應用程序的初級、中級和高級教程。
- 使用 IBM SOA Sandbox 進(jìn)行試驗!通過(guò) IBM SOA 進(jìn)行實(shí)際的親手實(shí)踐來(lái)提高您的 SOA 技能。
- IBM SOA 網(wǎng)站 提供 SOA 的概述,并介紹 IBM 是如何幫助您實(shí)現 SOA 的。
- 了解關(guān)于 developerWorks 技術(shù)事件和網(wǎng)絡(luò )廣播 的最新消息。請特別關(guān)注以下 SOA 和 Web 服務(wù)技術(shù)講座:
- 訪(fǎng)問(wèn) Safari 書(shū)店 ,瀏覽有關(guān)這些技術(shù)主題以及其他方面的書(shū)籍。
|