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