日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SOA 案例研究:SOA 设计

發(fā)布時(shí)間:2025/7/14 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SOA 案例研究:SOA 设计 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文是面向服務(wù)的體系結(jié)構(gòu) (SOA) 系列之一,主要通過名為 JKHL Enterprises (JKHLE) 的虛構(gòu)公司闡述一個(gè)案例研究。本文的案例研究重點(diǎn)是與 SOA 設(shè)計(jì)(更具體地說是服務(wù)和流的設(shè)計(jì))相關(guān)的挑戰(zhàn)和解決方案。本文描述如何應(yīng)用“SOA 設(shè)計(jì)場景”的實(shí)現(xiàn)和解決方案模式來解決與該案例研究相關(guān)的業(yè)務(wù)和 IT 挑戰(zhàn)。

系列文章以一個(gè)虛擬的公司(JKHL)為示例,向您講述了在 SOA 整個(gè)生命周期中各個(gè)方面需要進(jìn)行的工作以及可能用到的概念、技術(shù)以及工具,讓您對如何實(shí)現(xiàn) SOA 有一個(gè)更形象、更具體的了解。

我們在本文中介紹的案例研究包括以下人員和角色:

  • 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ù)量
  • 目標(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

目標(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)。在下一個(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)決策

組件 實(shí)現(xiàn)的服務(wù) 功能/技術(shù)組件 實(shí)現(xiàn)決策
客戶/帳戶 帳戶查詢
  • 客戶
  • 重用客戶 CICS 應(yīng)用程序提供的現(xiàn)有服務(wù)
  • 權(quán)限和策略管理
  • 為現(xiàn)有的客戶 CICS 應(yīng)用程序創(chuàng)建新的帳戶查詢功能
帳戶激活
  • 客戶
  • 帳單
  • GL
  • 權(quán)限和策略管理
  • 重用客戶 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ù)合作項(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。