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