引言
在任何領(lǐng)域中,語義都非常重要,而在面向服務(wù)的體系結(jié)構(gòu)(Service-oriented architecture,SOA)中更是如此。由于 SOA 涉及多個(gè)團(tuán)隊(duì)和組織,因此就相關(guān)術(shù)語達(dá)成一致至關(guān)重要。本系列將帶著您開始 SOA 之旅,為您定義基礎(chǔ)術(shù)語和主要概念。您將了解 SOA 領(lǐng)域中所使用的各個(gè)詞匯。對(duì)于每個(gè)術(shù)語,將說明其為何對(duì) SOA 重要、其在這種情況下的含義、相關(guān)的標(biāo)準(zhǔn)有哪些以及與其他術(shù)語的區(qū)別如何。
關(guān)于組織方式的說明
以下列出的術(shù)語并不是按照字母順序排列的,也不是按照其重要性進(jìn)行排列。我們將按照構(gòu)建塊的方式對(duì)其進(jìn)行排列。首先討論的是“服務(wù)”,因?yàn)檫@個(gè)術(shù)語可能是理解 SOA 框架的最基本概念。我們將以服務(wù)為基礎(chǔ)形成“體系結(jié)構(gòu)”、“治理”和“業(yè)務(wù)”概念的定義。在很多情況下,我們都將較大的術(shù)語分解為較小的組成部分進(jìn)行討論。
服務(wù)
服務(wù)顯然是面向服務(wù)的體系結(jié)構(gòu)的核心,術(shù)語服務(wù) 的使用非常廣泛。不過,這個(gè)術(shù)語對(duì)于不同的人有不同的含義,“什么是服務(wù)?”這個(gè)問題經(jīng)常會(huì)引發(fā)激烈的爭(zhēng)論。我聽到過人們討論業(yè)務(wù)任務(wù)、業(yè)務(wù)服務(wù)、應(yīng)用程序功能、技術(shù)服務(wù)或基礎(chǔ)設(shè)施服務(wù)。我將基于 IBM Rational? Method Composer Plug-in for SOA Governance 和 IBM Rational? Unified Process for Service-Oriented Architecture 給出一個(gè)定義。(有關(guān)更多信息,請(qǐng)參見參考資料部分。)
“服務(wù)是執(zhí)行可重復(fù)任務(wù)的可發(fā)現(xiàn)資源,由外部化的服務(wù)規(guī)范進(jìn)行描述。”
由于存在多種不同的定義,通過定義“服務(wù)”來開始本文的討論比較困難。例如,您可能會(huì)認(rèn)為上述定義過于偏重于技術(shù)。請(qǐng)記住,一定不要過于依賴于服務(wù)的正式定義,而要將重點(diǎn)放在服務(wù)背后的主要概念上,包括:
業(yè)務(wù)一致性 :服務(wù)并不基于 IT 功能,而是基于業(yè)務(wù)的需求。服務(wù)業(yè)務(wù)一致性由服務(wù)分析和設(shè)計(jì)技術(shù)提供支持。
規(guī)范 :服務(wù)是自包含的,采用接口、操作、語義、動(dòng)態(tài)行為、策略和服務(wù)質(zhì)量進(jìn)行描述。
可重用性 :服務(wù)可重用性由服務(wù)粒度設(shè)計(jì)決策予以支持。
協(xié)議 :服務(wù)協(xié)議是實(shí)體(即服務(wù)提供者和使用者)之間就相關(guān)事項(xiàng)達(dá)成的一致意見。這些協(xié)議基于服務(wù)規(guī)范,而不是實(shí)現(xiàn)。
承載和可發(fā)現(xiàn)性 :隨著生命周期的進(jìn)展,將承載服務(wù),并可以對(duì)其進(jìn)行發(fā)現(xiàn);這由服務(wù)元數(shù)據(jù)、注冊(cè)中心和存儲(chǔ)庫提供支持。
聚合 :松散耦合的服務(wù)聚合為企業(yè)內(nèi)部或企業(yè)間的業(yè)務(wù)流程或組合應(yīng)用程序。
這些組合特征表明 SOA 并不僅與“技術(shù)”相關(guān),而且也與業(yè)務(wù)要求和需求相關(guān)。
還要?jiǎng)?wù)必注意,并非所有東西都是服務(wù)。例如,有些 IT 功能不應(yīng)該作為服務(wù)公開。可以使用 IBM 的面向服務(wù)的建模和體系結(jié)構(gòu)(Service-Oriented Modeling and Architecture,SOMA)等分析技術(shù)基于上面列出的概念標(biāo)識(shí)恰當(dāng)?shù)姆?wù)列表。我們將在本文中詳細(xì)討論這些方面的內(nèi)容(包括本部分中所有以粗體顯示的術(shù)語)。
體系結(jié)構(gòu)
和服務(wù)類似,很難得到一個(gè)大家一致認(rèn)可的體系結(jié)構(gòu)的定義。不過,與服務(wù)不同的是,人們?cè)谡務(wù)?SOA 時(shí)有時(shí)候會(huì)忘記體系結(jié)構(gòu),而顯然不應(yīng)將其忘記!事實(shí)上,企業(yè)體系結(jié)構(gòu)和面向服務(wù)的體系結(jié)構(gòu)具有相同的目標(biāo),即通過集成的 IT 策略支持業(yè)務(wù)。例如,企業(yè)架構(gòu)師是 SOA 成功的關(guān)鍵,因?yàn)樗麄儗⒏鶕?jù)不斷發(fā)展的業(yè)務(wù)需求和要求確定企業(yè)的 IT 系統(tǒng)的策略發(fā)展方向。
Open Group Architecture Forum (TOGAF) 根據(jù)上下文提供了兩個(gè)體系結(jié)構(gòu)定義:
“系統(tǒng)的正式描述,或用于指導(dǎo)其實(shí)現(xiàn)的組件級(jí)別的系統(tǒng)詳細(xì)計(jì)劃。
組件的結(jié)構(gòu)、它們相互間的關(guān)系以及控制其設(shè)計(jì)及將來發(fā)展的原則和指導(dǎo)方針。”
這兩個(gè)定義都與理解 SOA 中的“A”相關(guān)。對(duì)其進(jìn)行進(jìn)一步細(xì)分,我們會(huì)發(fā)現(xiàn)體系結(jié)構(gòu)對(duì)于進(jìn)行以下工作必不可少:
在不同的抽象級(jí)別進(jìn)行設(shè)計(jì)和建模
將規(guī)范與實(shí)現(xiàn)分離
構(gòu)建靈活的系統(tǒng)
確保滿足業(yè)務(wù)需求
分析需求更改的影響
確保遵循相關(guān)原則
企業(yè)體系結(jié)構(gòu)
以下是維基百科 (Wikipedia) 中的定義:
“企業(yè)體系結(jié)構(gòu)是這樣一種做法,即應(yīng)用描述組織的流程、信息系統(tǒng)、個(gè)人和組織子單元的全面而嚴(yán)格的方法,從而使其與組織的核心目標(biāo)和策略方向保持一致。
創(chuàng)建企業(yè)體系結(jié)構(gòu)的主要目的是為了確保業(yè)務(wù)策略與 IT 投資保持一致。通過這樣,企業(yè)體系結(jié)構(gòu)可支持從業(yè)務(wù)策略一直到基礎(chǔ)技術(shù)的可跟蹤性。”
可以將項(xiàng)目級(jí)別的“體系結(jié)構(gòu)”和組織級(jí)別的“企業(yè)體系結(jié)構(gòu)”與此進(jìn)行比對(duì)。請(qǐng)注意對(duì)流程、信息系統(tǒng)、人員、目標(biāo)、策略和業(yè)務(wù) IT 一致性的參考信息。
面向服務(wù)的體系結(jié)構(gòu)
面向服務(wù)
正如 IBM SOA Foundation 白皮書中所述“...面向服務(wù)是將業(yè)務(wù)作為一組有聯(lián)系的服務(wù)集成的方法。”有關(guān) IBM SOA Foundation 的更多信息,請(qǐng)參見參考資料。
此處的關(guān)鍵詞是“業(yè)務(wù)”。例如,面向服務(wù)可提供非常有用的靈活性,能使用來自一個(gè)業(yè)務(wù)部門(Line Of Business,LOB)、多個(gè)業(yè)務(wù)部門以及業(yè)務(wù)合作伙伴的服務(wù)靈活地實(shí)現(xiàn)業(yè)務(wù)流程。
SOA Foundation 參考模型
IBM SOA Foundation 中提供了一個(gè) SOA 參考模型,如圖 1 中所示,此模型說明了為了支持面向服務(wù)的體系結(jié)構(gòu)所需的主要功能。
由于這個(gè)模型基于面向服務(wù)的概念,因此它允許從小項(xiàng)目做起,逐漸擴(kuò)展在企業(yè)內(nèi)的集成,從而在出現(xiàn)新業(yè)務(wù)需求時(shí)以增量的方式采用 SOA。有關(guān) SOA Foundation 的更多信息,請(qǐng)參見參考資料。
圖 1. SOA Foundation 參考模型
面向服務(wù)的體系結(jié)構(gòu)
IBM SOA Foundation 對(duì) SOA 的定義如下:
“面向服務(wù)的體系結(jié)構(gòu) (SOA) 是一種用于創(chuàng)建企業(yè) IT 體系結(jié)構(gòu)的體系結(jié)構(gòu)樣式,利用了面向服務(wù)的原則來實(shí)現(xiàn)業(yè)務(wù)和支持業(yè)務(wù)的信息系統(tǒng)之間更為緊密的關(guān)系。”
SOA 具有以下特征:
它加強(qiáng)了企業(yè)體系結(jié)構(gòu)和業(yè)務(wù)之間的聯(lián)系。
它允許將組合應(yīng)用程序作為一組集成服務(wù)進(jìn)行構(gòu)建。
它提供了靈活的業(yè)務(wù)流程。
面向服務(wù)的體系結(jié)構(gòu)是全新(與“革新”相對(duì))的事物,意味著新的企業(yè)人員角色、新的協(xié)作方式、新的支持框架以及新的軟件構(gòu)件。
SOA 解決方案堆棧
如圖 2 中所示,SOA 解決方案堆棧是一個(gè) SOA 參考模型,描述 SOA 解決方案的運(yùn)行時(shí)概念視圖。
有時(shí)也將其稱為“SOA 分層體系結(jié)構(gòu)”,其中介紹了各個(gè)層次和概念(如業(yè)務(wù)流程、服務(wù)或服務(wù)組件)及其相互間的關(guān)系。
它不依賴于實(shí)現(xiàn)所使用的技術(shù)。這個(gè)分離非常重要,具體請(qǐng)參見本系列的第 2 部分中的模型驅(qū)動(dòng)的體系結(jié)構(gòu)(Model-Driven Architecture,MDA)的相關(guān)內(nèi)容。
圖 2. SOA 解決方案堆棧
5 個(gè)層次分別如下(按照從下到上的順序):
可操作系統(tǒng):表示現(xiàn)有 IT 資產(chǎn),說明 IT 投資非常寶貴,應(yīng)該在 SOA 加以利用。
服務(wù)組件:實(shí)現(xiàn)服務(wù),可能通過使用“可操作系統(tǒng)”層中的一個(gè)或多個(gè)應(yīng)用程序來進(jìn)行。如模型中所示,使用者和業(yè)務(wù)流程并不能直接訪問組件,而僅能訪問服務(wù)。現(xiàn)有組件可以在內(nèi)部重用,或在合適的情況下在 SOA 中使用。
服務(wù):表示已部署到環(huán)境中的服務(wù)。這些服務(wù)由可發(fā)現(xiàn)實(shí)體進(jìn)行治理。
業(yè)務(wù)流程:表示將業(yè)務(wù)流程作為服務(wù)編排實(shí)現(xiàn)的操作構(gòu)件。
使用者:表示用于訪問業(yè)務(wù)流程、服務(wù)和應(yīng)用程序的通道。
治理
因?yàn)?SOA 具有跨組織的特征,其中的服務(wù)投資者、設(shè)計(jì)人員、實(shí)現(xiàn)人員、維護(hù)人員或客戶并不位于相同的組織、業(yè)務(wù)部門、IT 部門、LOB、分支機(jī)構(gòu)或企業(yè)中,因此治理對(duì)于以增量的方式成功采用 SOA 非常必要。
此部分包含 IBM Rational Method Composer Plug-in for SOA Governance 中的相關(guān)定義。它定義了治理、IT 治理、SOA 治理及其與管理或遵從性之間的差別。它還描述了 SOA 治理所處理的各項(xiàng)挑戰(zhàn)。有關(guān) Rational Methode Composer 的更多信息,請(qǐng)參見參考資料部分。
治理
"治理是關(guān)于以下方面的概念:
建立責(zé)任、授權(quán)和通信鏈,以對(duì)人員進(jìn)行權(quán)利分配(決策權(quán))。
建立度量、策略和控制機(jī)制,以支持各個(gè)人員執(zhí)行各自的角色任務(wù)和履行相關(guān)職責(zé)。
治理處理的是分配決策權(quán)力,并決定使用何種措施以及遵循哪些策略來進(jìn)行這些決策。決策權(quán)分配給角色,而不是個(gè)人。另一方面,管理 則包括為角色分配人員以及監(jiān)視策略的執(zhí)行情況。
任何治理解決方案中都包含要符合組織的遵從性要求的目的。遵從性 是記錄并證明治理已就位并得到了執(zhí)行:會(huì)記錄決策,并遵循有關(guān)決策的策略。”
IT 治理
“IT 治理指屬于組織的信息技術(shù)流程以及這些流程支持業(yè)務(wù)目標(biāo)的方式的治理方面的內(nèi)容。”
IT 治理可以通過分配 IT 流程的決策權(quán)和措施進(jìn)行描述。
SOA 治理
“SOA 治理是 IT 治理的擴(kuò)展,具體關(guān)注服務(wù)和其他 SOA 構(gòu)件的生命周期。”
具體來說,SOA 治理關(guān)注的是有關(guān)服務(wù)標(biāo)識(shí)、資金投入、設(shè)計(jì)、實(shí)現(xiàn)、部署、重用、發(fā)現(xiàn)、訪問、監(jiān)視、管理和退役的方法和流程。
“SOA 治理處理以下這些類型的挑戰(zhàn):
哪些新組織角色和結(jié)構(gòu)可促進(jìn)服務(wù)標(biāo)識(shí)、設(shè)計(jì)和共享?
哪些標(biāo)準(zhǔn)支持服務(wù)的投資、維護(hù)、使用和共享?
業(yè)務(wù)部門如何決定在服務(wù)創(chuàng)建和維護(hù)方面進(jìn)行投資?
企業(yè)的面向服務(wù)的成熟度如何?
需要進(jìn)行哪些訓(xùn)練、培訓(xùn)或指導(dǎo)?"
生命周期
服務(wù)生命周期
服務(wù)生命周期由服務(wù)可能處于的狀態(tài)以及觸發(fā)狀態(tài)間轉(zhuǎn)換的事件組成。
在其生命過程中,服務(wù)將度過很多階段(和我們一樣
)。將服務(wù)的生命周期視為具有狀態(tài)(位置)和轉(zhuǎn)換的業(yè)務(wù)狀態(tài)機(jī);服務(wù)可能處于其中的某個(gè)狀態(tài),而轉(zhuǎn)換使其從一個(gè)狀態(tài)發(fā)展到另一個(gè)狀態(tài)。
SOA 治理考慮的是有關(guān)服務(wù)生命周期的計(jì)劃、定義、啟用和測(cè)定。SOA 治理定義服務(wù)狀態(tài)的含義、從一個(gè)狀態(tài)發(fā)展到另一個(gè)狀態(tài)需要發(fā)生的操作(轉(zhuǎn)換)、如何進(jìn)行(流程和方法)以及由誰進(jìn)行(角色)。
例如,SOA 治理可以將服務(wù)狀態(tài)定義為標(biāo)識(shí)、投入資金、指定、實(shí)現(xiàn)、審批、操作、發(fā)布、棄用和退役。
基礎(chǔ) SOA 框架則將需要通過生命周期支持服務(wù),并確保遵循了配備的流程。例如,服務(wù)注冊(cè)中心和存儲(chǔ)庫需要允許用戶進(jìn)行相應(yīng)的操作,以便服務(wù)在生命周期中逐漸發(fā)展。協(xié)作和投資組合管理工具需要能夠允許用戶(僅限于具有權(quán)限的用戶)作出將使得服務(wù)從一個(gè)狀態(tài)過渡到另一狀態(tài)的決策,并在需要進(jìn)行操作時(shí)通知用戶。
SOA 生命周期
IBM SOA Foundation 在其 SOA 生命周期的定義中使用了四個(gè)階段:
建模包括業(yè)務(wù)分析與設(shè)計(jì)(要求、流程、目標(biāo)和主要性能指標(biāo))及 IT 分析與設(shè)計(jì)(服務(wù)標(biāo)識(shí)和規(guī)范)。
組裝包括服務(wù)實(shí)現(xiàn)和組合應(yīng)用程序的構(gòu)建。
部署包括應(yīng)用程序和運(yùn)行時(shí)(如企業(yè)服務(wù)總線——Enterprise Service Buses,ESB)的部署。
管理包括操作環(huán)境維護(hù)、服務(wù)性能監(jiān)視和服務(wù)策略執(zhí)行。
正如上面定義的,SOA 治理和流程為這四個(gè)階段提供支持。此情況如圖 3 中所示。
圖 3. SOA 生命周期
業(yè)務(wù)
現(xiàn)在的企業(yè)需要能夠識(shí)別更改,并快速對(duì)其作出反應(yīng),而且還要同時(shí)維護(hù)其由雇員、合作伙伴、客戶組成的生態(tài)系統(tǒng)。正如 IBM On Demand Business 所述,需要全面利用先進(jìn)技術(shù),以實(shí)現(xiàn)此目標(biāo)。有關(guān) IBM On Demand Business 的信息,請(qǐng)參見參考資料部分。
由于客戶和法律法規(guī)遵從之類的外部要求和競(jìng)爭(zhēng)與市場(chǎng)之類的變化,業(yè)務(wù)必須具有靈活性和敏捷性。面向服務(wù)的體系結(jié)構(gòu)可幫助實(shí)現(xiàn)此目標(biāo),允許業(yè)務(wù)根據(jù)變化快速調(diào)整。
業(yè)務(wù)一致性
SOA 成功的關(guān)鍵在于,對(duì)遺留應(yīng)用程序等現(xiàn)有 IT 資產(chǎn)的重用。不過,SOA 允許企業(yè)將其技術(shù)工作的重點(diǎn)放在將支持其業(yè)務(wù)功能或流程的服務(wù)上——例如,能夠與業(yè)務(wù)任務(wù)對(duì)應(yīng)的服務(wù)操作——而不是基于豎井 (silo) 式信息體系的服務(wù)。業(yè)務(wù)一致性涵蓋范圍更全面,且能促進(jìn)業(yè)務(wù)和 IT 之間更好地進(jìn)行溝通。在本系列后面的部分中,我們將討論 SOA 分析和設(shè)計(jì)的自頂向下、自底向上及中間相遇方法,從而了解如何將業(yè)務(wù)模型細(xì)化為 IT 模型,以及可以如何利用主要的現(xiàn)有功能。
不過,與業(yè)務(wù)保持一致并不意味著讓業(yè)務(wù)功能和 IT 實(shí)現(xiàn)緊密耦合。關(guān)鍵的 SOA 概念之一就是松散耦合以及規(guī)范(業(yè)務(wù)模型、接口)和實(shí)現(xiàn)(技術(shù))之間的分離,通過這樣可將更改(如替換服務(wù)提供者)的影響降到最低。
業(yè)務(wù)組件化
IBM Component Business Model? 是一種策略方法,允許企業(yè)將重點(diǎn)放在核心競(jìng)爭(zhēng)力上(使得企業(yè)從競(jìng)爭(zhēng)者中脫穎而出的部分),了解如何使用資源,從而更好地保持業(yè)務(wù)和 IT 之間的一致性。有關(guān) Component Business Model 的更多信息,請(qǐng)參見參考資料部分。非常需要這些業(yè)務(wù)組件交互的集成以及靈活性(如外包組件),而這通過面向服務(wù)得到了實(shí)現(xiàn):業(yè)務(wù)組件具有獨(dú)特的業(yè)務(wù)用途,通過其提供或使用(來自其他組件)的服務(wù)進(jìn)行協(xié)作。這可以被視為“業(yè)務(wù)體系結(jié)構(gòu)”的一部分。
業(yè)務(wù)建模
IBM Rational Unified Process? 對(duì)業(yè)務(wù)建模的定義如下:
“Rational Unified Process Business Modeling 規(guī)程提供了具體的指導(dǎo)信息,說明如何使用各種不同的方法和技術(shù)在不同的正式級(jí)別描述“原始”或“將來”業(yè)務(wù)。”
業(yè)務(wù)建模引入了一系列概念、交付內(nèi)容和角色;它將描述和組織有關(guān)業(yè)務(wù)策略、業(yè)務(wù)遠(yuǎn)景、業(yè)務(wù)目標(biāo)、業(yè)務(wù)目的、業(yè)務(wù)詞匯、業(yè)務(wù)體系結(jié)構(gòu)、業(yè)務(wù)分析與設(shè)計(jì)、業(yè)務(wù)規(guī)則、業(yè)務(wù)價(jià)值、業(yè)務(wù)用例、業(yè)務(wù)實(shí)體以及業(yè)務(wù)流程的任務(wù)。下面的部分對(duì)此進(jìn)行了更為詳細(xì)的說明。
SOA 是有關(guān)重新組織業(yè)務(wù)和 IT 系統(tǒng)的長期策略,其目的是為了快速對(duì)變化作出響應(yīng)。參考資料部分提供了 IBM Systems Journal 第 44 卷第 4 期有關(guān) SOA 的鏈接,其中更為詳細(xì)地說明了面向服務(wù)的思維方式中業(yè)務(wù)所處的位置。
業(yè)務(wù)流程
業(yè)務(wù)流程由一系列能產(chǎn)生有價(jià)值的結(jié)果的活動(dòng)組成。
業(yè)務(wù)流程具有貫穿其中的相關(guān)業(yè)務(wù)項(xiàng)目(數(shù)據(jù)),包括作為流程的輸入和輸出使用的項(xiàng)目。
業(yè)務(wù)和任務(wù)
業(yè)務(wù)活動(dòng)和任務(wù)是通過連接能組成業(yè)務(wù)流程的元素。
您可以將持續(xù)時(shí)間、成本、收益、資源、輸入和輸出與業(yè)務(wù)活動(dòng)相關(guān)聯(lián)。這些是用于對(duì)業(yè)務(wù)流程進(jìn)行分解的元素。服務(wù)標(biāo)識(shí)技術(shù)包括將業(yè)務(wù)流程分解為活動(dòng)和任務(wù)的技術(shù),將通過這些活動(dòng)和技術(shù)對(duì)現(xiàn)有的或?qū)⒁_發(fā)的服務(wù)(及其操作)進(jìn)行標(biāo)識(shí)。這些服務(wù)有時(shí)稱為“業(yè)務(wù)服務(wù)”。
建模業(yè)務(wù)流程
組織的業(yè)務(wù)流程(當(dāng)前的、“原始”流程)可能很復(fù)雜,因?yàn)檫@些流程經(jīng)常是對(duì)最初開發(fā)的流程進(jìn)行了大量的更改之后得到的。理解、正式定義并記錄業(yè)務(wù)流程的工作非常重要。另外,通過建模和模擬“原始”和“將來”業(yè)務(wù)流程,將能夠確定成本、延遲或能實(shí)現(xiàn)自動(dòng)化的方面。
建模業(yè)務(wù)流程不僅提供了可視表示形式,而且,當(dāng)在框架中進(jìn)行此工作時(shí),還能提供基礎(chǔ)元數(shù)據(jù)(我們將在本系列的第 2 部分進(jìn)行討論),從而支持稍后將業(yè)務(wù)流程模型的元素細(xì)化為(或鏈接到)IT 設(shè)計(jì)元素。
人工任務(wù)
很多時(shí)候在流程中都會(huì)需要人工交互(如出差審批或貸款審批)。在業(yè)務(wù)流程建模期間,會(huì)將人工任務(wù)標(biāo)識(shí)為手工任務(wù),并為每個(gè)人工任務(wù)分配不同的角色。部署后,SOA 環(huán)境將需要把人工任務(wù)作為流程執(zhí)行的一部分進(jìn)行支持。例如,IBM WebSphere Process Server 之類的產(chǎn)品將為用戶提供等待其處理的人工任務(wù)的列表。通過與此類產(chǎn)品組合,IBM WebSphere Portal 和 Lotus Sametime 之類的產(chǎn)品還將允許用戶在需要的情況下與同事進(jìn)行協(xié)作,并就他們的決定向系統(tǒng)發(fā)出通知,以便繼續(xù)執(zhí)行流程。人工方面對(duì)于 SOA 的成功非常重要。
BPEL
IBM、Microsoft 和其他業(yè)界企業(yè)已經(jīng)將業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language,BPEL)作為 Web 服務(wù)規(guī)范提交,以用于正式地指定業(yè)務(wù)流程和交互協(xié)議。
1.1 版于 2003 年發(fā)布,目前已經(jīng)發(fā)布了 2.0 版本 OASIS 提交草案,稱為 Web 服務(wù)業(yè)務(wù)流程執(zhí)行語言(Web Services Business Process Execution Language,WSBPEL)。請(qǐng)參見參考資料部分中提供的相關(guān)鏈接。
行業(yè)
業(yè)務(wù)流程可以特定于某個(gè)領(lǐng)域或行業(yè),如保險(xiǎn)索賠流程。行業(yè)聯(lián)盟定義行業(yè)業(yè)務(wù)流程。例如,電信管理論壇 (TeleManagement Forum) 為電信行業(yè)定義增強(qiáng)的電信運(yùn)營圖(Telecom Operations Map,eTOM)。除此之外,企業(yè)可以通過在內(nèi)部采用經(jīng)過驗(yàn)證的業(yè)務(wù)流程(如來自 IBM Industry Models 的流程)來使自己獲得優(yōu)于競(jìng)爭(zhēng)者的優(yōu)勢(shì)。請(qǐng)參見參考資料部分提供的 IBM Insurance Application Architecture (IAA) 的鏈接,這就是 IBM Industry Models 中提供的流程之一。
業(yè)務(wù)流程管理
業(yè)務(wù)流程管理(Business Process Management,BPM)從業(yè)務(wù)流程整個(gè)生命周期的角度看待它,以便提高其效率、靈活性和控制。
BPM 討論的是進(jìn)行建模、模擬、優(yōu)化、部署、運(yùn)行、管理和監(jiān)視,然后將結(jié)果提交回去,以改進(jìn)模型,從而進(jìn)行一個(gè)持續(xù)的改進(jìn)循環(huán)。IBM WebSphere 提供了 BPM 所需的各種產(chǎn)品。
結(jié)束語
在 SOA 術(shù)語系列的第 1 部分中,我們定義了核心 SOA 術(shù)語,即服務(wù)、SOA 以及 SOA 如何與體系結(jié)構(gòu)相關(guān)。我們定義了 SOA 的兩個(gè)核心元素,服務(wù)生命周期和 SOA 治理。最后,我們討論了 SAO 和業(yè)務(wù)的關(guān)系,并對(duì)業(yè)務(wù)流程進(jìn)行了說明。這僅是開始。本系列的后續(xù)部分將定義與 IT 設(shè)計(jì)、開發(fā)、運(yùn)行時(shí)和管理相關(guān)的 SOA 術(shù)語。歡迎您繼續(xù)閱讀 developerWorks 上本系列的其他文章!
在任何領(lǐng)域中,語義都非常重要,而在面向服務(wù)的體系結(jié)構(gòu)(Service-oriented architecture,SOA)中更是如此。由于 SOA 涉及多個(gè)團(tuán)隊(duì)和組織,因此就相關(guān)術(shù)語達(dá)成一致至關(guān)重要。本系列將帶著您開始 SOA 之旅,為您定義基礎(chǔ)術(shù)語和主要概念。您將了解 SOA 領(lǐng)域中所使用的各個(gè)詞匯。對(duì)于每個(gè)術(shù)語,將說明其為何對(duì) SOA 重要、其在這種情況下的含義、相關(guān)的標(biāo)準(zhǔn)有哪些以及與其他術(shù)語的區(qū)別如何。
關(guān)于組織方式的說明
以下列出的術(shù)語并不是按照字母順序排列的,也不是按照其重要性進(jìn)行排列。我們將按照構(gòu)建塊的方式對(duì)其進(jìn)行排列。首先討論的是“服務(wù)”,因?yàn)檫@個(gè)術(shù)語可能是理解 SOA 框架的最基本概念。我們將以服務(wù)為基礎(chǔ)形成“體系結(jié)構(gòu)”、“治理”和“業(yè)務(wù)”概念的定義。在很多情況下,我們都將較大的術(shù)語分解為較小的組成部分進(jìn)行討論。
服務(wù)
服務(wù)顯然是面向服務(wù)的體系結(jié)構(gòu)的核心,術(shù)語服務(wù) 的使用非常廣泛。不過,這個(gè)術(shù)語對(duì)于不同的人有不同的含義,“什么是服務(wù)?”這個(gè)問題經(jīng)常會(huì)引發(fā)激烈的爭(zhēng)論。我聽到過人們討論業(yè)務(wù)任務(wù)、業(yè)務(wù)服務(wù)、應(yīng)用程序功能、技術(shù)服務(wù)或基礎(chǔ)設(shè)施服務(wù)。我將基于 IBM Rational? Method Composer Plug-in for SOA Governance 和 IBM Rational? Unified Process for Service-Oriented Architecture 給出一個(gè)定義。(有關(guān)更多信息,請(qǐng)參見參考資料部分。)
“服務(wù)是執(zhí)行可重復(fù)任務(wù)的可發(fā)現(xiàn)資源,由外部化的服務(wù)規(guī)范進(jìn)行描述。”
由于存在多種不同的定義,通過定義“服務(wù)”來開始本文的討論比較困難。例如,您可能會(huì)認(rèn)為上述定義過于偏重于技術(shù)。請(qǐng)記住,一定不要過于依賴于服務(wù)的正式定義,而要將重點(diǎn)放在服務(wù)背后的主要概念上,包括:
業(yè)務(wù)一致性 :服務(wù)并不基于 IT 功能,而是基于業(yè)務(wù)的需求。服務(wù)業(yè)務(wù)一致性由服務(wù)分析和設(shè)計(jì)技術(shù)提供支持。
規(guī)范 :服務(wù)是自包含的,采用接口、操作、語義、動(dòng)態(tài)行為、策略和服務(wù)質(zhì)量進(jìn)行描述。
可重用性 :服務(wù)可重用性由服務(wù)粒度設(shè)計(jì)決策予以支持。
協(xié)議 :服務(wù)協(xié)議是實(shí)體(即服務(wù)提供者和使用者)之間就相關(guān)事項(xiàng)達(dá)成的一致意見。這些協(xié)議基于服務(wù)規(guī)范,而不是實(shí)現(xiàn)。
承載和可發(fā)現(xiàn)性 :隨著生命周期的進(jìn)展,將承載服務(wù),并可以對(duì)其進(jìn)行發(fā)現(xiàn);這由服務(wù)元數(shù)據(jù)、注冊(cè)中心和存儲(chǔ)庫提供支持。
聚合 :松散耦合的服務(wù)聚合為企業(yè)內(nèi)部或企業(yè)間的業(yè)務(wù)流程或組合應(yīng)用程序。
這些組合特征表明 SOA 并不僅與“技術(shù)”相關(guān),而且也與業(yè)務(wù)要求和需求相關(guān)。
還要?jiǎng)?wù)必注意,并非所有東西都是服務(wù)。例如,有些 IT 功能不應(yīng)該作為服務(wù)公開。可以使用 IBM 的面向服務(wù)的建模和體系結(jié)構(gòu)(Service-Oriented Modeling and Architecture,SOMA)等分析技術(shù)基于上面列出的概念標(biāo)識(shí)恰當(dāng)?shù)姆?wù)列表。我們將在本文中詳細(xì)討論這些方面的內(nèi)容(包括本部分中所有以粗體顯示的術(shù)語)。
體系結(jié)構(gòu)
和服務(wù)類似,很難得到一個(gè)大家一致認(rèn)可的體系結(jié)構(gòu)的定義。不過,與服務(wù)不同的是,人們?cè)谡務(wù)?SOA 時(shí)有時(shí)候會(huì)忘記體系結(jié)構(gòu),而顯然不應(yīng)將其忘記!事實(shí)上,企業(yè)體系結(jié)構(gòu)和面向服務(wù)的體系結(jié)構(gòu)具有相同的目標(biāo),即通過集成的 IT 策略支持業(yè)務(wù)。例如,企業(yè)架構(gòu)師是 SOA 成功的關(guān)鍵,因?yàn)樗麄儗⒏鶕?jù)不斷發(fā)展的業(yè)務(wù)需求和要求確定企業(yè)的 IT 系統(tǒng)的策略發(fā)展方向。
Open Group Architecture Forum (TOGAF) 根據(jù)上下文提供了兩個(gè)體系結(jié)構(gòu)定義:
“系統(tǒng)的正式描述,或用于指導(dǎo)其實(shí)現(xiàn)的組件級(jí)別的系統(tǒng)詳細(xì)計(jì)劃。
組件的結(jié)構(gòu)、它們相互間的關(guān)系以及控制其設(shè)計(jì)及將來發(fā)展的原則和指導(dǎo)方針。”
這兩個(gè)定義都與理解 SOA 中的“A”相關(guān)。對(duì)其進(jìn)行進(jìn)一步細(xì)分,我們會(huì)發(fā)現(xiàn)體系結(jié)構(gòu)對(duì)于進(jìn)行以下工作必不可少:
在不同的抽象級(jí)別進(jìn)行設(shè)計(jì)和建模
將規(guī)范與實(shí)現(xiàn)分離
構(gòu)建靈活的系統(tǒng)
確保滿足業(yè)務(wù)需求
分析需求更改的影響
確保遵循相關(guān)原則
企業(yè)體系結(jié)構(gòu)
以下是維基百科 (Wikipedia) 中的定義:
“企業(yè)體系結(jié)構(gòu)是這樣一種做法,即應(yīng)用描述組織的流程、信息系統(tǒng)、個(gè)人和組織子單元的全面而嚴(yán)格的方法,從而使其與組織的核心目標(biāo)和策略方向保持一致。
創(chuàng)建企業(yè)體系結(jié)構(gòu)的主要目的是為了確保業(yè)務(wù)策略與 IT 投資保持一致。通過這樣,企業(yè)體系結(jié)構(gòu)可支持從業(yè)務(wù)策略一直到基礎(chǔ)技術(shù)的可跟蹤性。”
可以將項(xiàng)目級(jí)別的“體系結(jié)構(gòu)”和組織級(jí)別的“企業(yè)體系結(jié)構(gòu)”與此進(jìn)行比對(duì)。請(qǐng)注意對(duì)流程、信息系統(tǒng)、人員、目標(biāo)、策略和業(yè)務(wù) IT 一致性的參考信息。
面向服務(wù)的體系結(jié)構(gòu)
面向服務(wù)
正如 IBM SOA Foundation 白皮書中所述“...面向服務(wù)是將業(yè)務(wù)作為一組有聯(lián)系的服務(wù)集成的方法。”有關(guān) IBM SOA Foundation 的更多信息,請(qǐng)參見參考資料。
此處的關(guān)鍵詞是“業(yè)務(wù)”。例如,面向服務(wù)可提供非常有用的靈活性,能使用來自一個(gè)業(yè)務(wù)部門(Line Of Business,LOB)、多個(gè)業(yè)務(wù)部門以及業(yè)務(wù)合作伙伴的服務(wù)靈活地實(shí)現(xiàn)業(yè)務(wù)流程。
SOA Foundation 參考模型
IBM SOA Foundation 中提供了一個(gè) SOA 參考模型,如圖 1 中所示,此模型說明了為了支持面向服務(wù)的體系結(jié)構(gòu)所需的主要功能。
由于這個(gè)模型基于面向服務(wù)的概念,因此它允許從小項(xiàng)目做起,逐漸擴(kuò)展在企業(yè)內(nèi)的集成,從而在出現(xiàn)新業(yè)務(wù)需求時(shí)以增量的方式采用 SOA。有關(guān) SOA Foundation 的更多信息,請(qǐng)參見參考資料。
圖 1. SOA Foundation 參考模型

面向服務(wù)的體系結(jié)構(gòu)
IBM SOA Foundation 對(duì) SOA 的定義如下:
“面向服務(wù)的體系結(jié)構(gòu) (SOA) 是一種用于創(chuàng)建企業(yè) IT 體系結(jié)構(gòu)的體系結(jié)構(gòu)樣式,利用了面向服務(wù)的原則來實(shí)現(xiàn)業(yè)務(wù)和支持業(yè)務(wù)的信息系統(tǒng)之間更為緊密的關(guān)系。”
SOA 具有以下特征:
它加強(qiáng)了企業(yè)體系結(jié)構(gòu)和業(yè)務(wù)之間的聯(lián)系。
它允許將組合應(yīng)用程序作為一組集成服務(wù)進(jìn)行構(gòu)建。
它提供了靈活的業(yè)務(wù)流程。
面向服務(wù)的體系結(jié)構(gòu)是全新(與“革新”相對(duì))的事物,意味著新的企業(yè)人員角色、新的協(xié)作方式、新的支持框架以及新的軟件構(gòu)件。
SOA 解決方案堆棧
如圖 2 中所示,SOA 解決方案堆棧是一個(gè) SOA 參考模型,描述 SOA 解決方案的運(yùn)行時(shí)概念視圖。
有時(shí)也將其稱為“SOA 分層體系結(jié)構(gòu)”,其中介紹了各個(gè)層次和概念(如業(yè)務(wù)流程、服務(wù)或服務(wù)組件)及其相互間的關(guān)系。
它不依賴于實(shí)現(xiàn)所使用的技術(shù)。這個(gè)分離非常重要,具體請(qǐng)參見本系列的第 2 部分中的模型驅(qū)動(dòng)的體系結(jié)構(gòu)(Model-Driven Architecture,MDA)的相關(guān)內(nèi)容。
圖 2. SOA 解決方案堆棧

5 個(gè)層次分別如下(按照從下到上的順序):
可操作系統(tǒng):表示現(xiàn)有 IT 資產(chǎn),說明 IT 投資非常寶貴,應(yīng)該在 SOA 加以利用。
服務(wù)組件:實(shí)現(xiàn)服務(wù),可能通過使用“可操作系統(tǒng)”層中的一個(gè)或多個(gè)應(yīng)用程序來進(jìn)行。如模型中所示,使用者和業(yè)務(wù)流程并不能直接訪問組件,而僅能訪問服務(wù)。現(xiàn)有組件可以在內(nèi)部重用,或在合適的情況下在 SOA 中使用。
服務(wù):表示已部署到環(huán)境中的服務(wù)。這些服務(wù)由可發(fā)現(xiàn)實(shí)體進(jìn)行治理。
業(yè)務(wù)流程:表示將業(yè)務(wù)流程作為服務(wù)編排實(shí)現(xiàn)的操作構(gòu)件。
使用者:表示用于訪問業(yè)務(wù)流程、服務(wù)和應(yīng)用程序的通道。
治理
因?yàn)?SOA 具有跨組織的特征,其中的服務(wù)投資者、設(shè)計(jì)人員、實(shí)現(xiàn)人員、維護(hù)人員或客戶并不位于相同的組織、業(yè)務(wù)部門、IT 部門、LOB、分支機(jī)構(gòu)或企業(yè)中,因此治理對(duì)于以增量的方式成功采用 SOA 非常必要。
此部分包含 IBM Rational Method Composer Plug-in for SOA Governance 中的相關(guān)定義。它定義了治理、IT 治理、SOA 治理及其與管理或遵從性之間的差別。它還描述了 SOA 治理所處理的各項(xiàng)挑戰(zhàn)。有關(guān) Rational Methode Composer 的更多信息,請(qǐng)參見參考資料部分。
治理
"治理是關(guān)于以下方面的概念:
建立責(zé)任、授權(quán)和通信鏈,以對(duì)人員進(jìn)行權(quán)利分配(決策權(quán))。
建立度量、策略和控制機(jī)制,以支持各個(gè)人員執(zhí)行各自的角色任務(wù)和履行相關(guān)職責(zé)。
治理處理的是分配決策權(quán)力,并決定使用何種措施以及遵循哪些策略來進(jìn)行這些決策。決策權(quán)分配給角色,而不是個(gè)人。另一方面,管理 則包括為角色分配人員以及監(jiān)視策略的執(zhí)行情況。
任何治理解決方案中都包含要符合組織的遵從性要求的目的。遵從性 是記錄并證明治理已就位并得到了執(zhí)行:會(huì)記錄決策,并遵循有關(guān)決策的策略。”
IT 治理
“IT 治理指屬于組織的信息技術(shù)流程以及這些流程支持業(yè)務(wù)目標(biāo)的方式的治理方面的內(nèi)容。”
IT 治理可以通過分配 IT 流程的決策權(quán)和措施進(jìn)行描述。
SOA 治理
“SOA 治理是 IT 治理的擴(kuò)展,具體關(guān)注服務(wù)和其他 SOA 構(gòu)件的生命周期。”
具體來說,SOA 治理關(guān)注的是有關(guān)服務(wù)標(biāo)識(shí)、資金投入、設(shè)計(jì)、實(shí)現(xiàn)、部署、重用、發(fā)現(xiàn)、訪問、監(jiān)視、管理和退役的方法和流程。
“SOA 治理處理以下這些類型的挑戰(zhàn):
哪些新組織角色和結(jié)構(gòu)可促進(jìn)服務(wù)標(biāo)識(shí)、設(shè)計(jì)和共享?
哪些標(biāo)準(zhǔn)支持服務(wù)的投資、維護(hù)、使用和共享?
業(yè)務(wù)部門如何決定在服務(wù)創(chuàng)建和維護(hù)方面進(jìn)行投資?
企業(yè)的面向服務(wù)的成熟度如何?
需要進(jìn)行哪些訓(xùn)練、培訓(xùn)或指導(dǎo)?"
生命周期
服務(wù)生命周期
服務(wù)生命周期由服務(wù)可能處于的狀態(tài)以及觸發(fā)狀態(tài)間轉(zhuǎn)換的事件組成。
在其生命過程中,服務(wù)將度過很多階段(和我們一樣

SOA 治理考慮的是有關(guān)服務(wù)生命周期的計(jì)劃、定義、啟用和測(cè)定。SOA 治理定義服務(wù)狀態(tài)的含義、從一個(gè)狀態(tài)發(fā)展到另一個(gè)狀態(tài)需要發(fā)生的操作(轉(zhuǎn)換)、如何進(jìn)行(流程和方法)以及由誰進(jìn)行(角色)。
例如,SOA 治理可以將服務(wù)狀態(tài)定義為標(biāo)識(shí)、投入資金、指定、實(shí)現(xiàn)、審批、操作、發(fā)布、棄用和退役。
基礎(chǔ) SOA 框架則將需要通過生命周期支持服務(wù),并確保遵循了配備的流程。例如,服務(wù)注冊(cè)中心和存儲(chǔ)庫需要允許用戶進(jìn)行相應(yīng)的操作,以便服務(wù)在生命周期中逐漸發(fā)展。協(xié)作和投資組合管理工具需要能夠允許用戶(僅限于具有權(quán)限的用戶)作出將使得服務(wù)從一個(gè)狀態(tài)過渡到另一狀態(tài)的決策,并在需要進(jìn)行操作時(shí)通知用戶。
SOA 生命周期
IBM SOA Foundation 在其 SOA 生命周期的定義中使用了四個(gè)階段:
建模包括業(yè)務(wù)分析與設(shè)計(jì)(要求、流程、目標(biāo)和主要性能指標(biāo))及 IT 分析與設(shè)計(jì)(服務(wù)標(biāo)識(shí)和規(guī)范)。
組裝包括服務(wù)實(shí)現(xiàn)和組合應(yīng)用程序的構(gòu)建。
部署包括應(yīng)用程序和運(yùn)行時(shí)(如企業(yè)服務(wù)總線——Enterprise Service Buses,ESB)的部署。
管理包括操作環(huán)境維護(hù)、服務(wù)性能監(jiān)視和服務(wù)策略執(zhí)行。
正如上面定義的,SOA 治理和流程為這四個(gè)階段提供支持。此情況如圖 3 中所示。
圖 3. SOA 生命周期

業(yè)務(wù)
現(xiàn)在的企業(yè)需要能夠識(shí)別更改,并快速對(duì)其作出反應(yīng),而且還要同時(shí)維護(hù)其由雇員、合作伙伴、客戶組成的生態(tài)系統(tǒng)。正如 IBM On Demand Business 所述,需要全面利用先進(jìn)技術(shù),以實(shí)現(xiàn)此目標(biāo)。有關(guān) IBM On Demand Business 的信息,請(qǐng)參見參考資料部分。
由于客戶和法律法規(guī)遵從之類的外部要求和競(jìng)爭(zhēng)與市場(chǎng)之類的變化,業(yè)務(wù)必須具有靈活性和敏捷性。面向服務(wù)的體系結(jié)構(gòu)可幫助實(shí)現(xiàn)此目標(biāo),允許業(yè)務(wù)根據(jù)變化快速調(diào)整。
業(yè)務(wù)一致性
SOA 成功的關(guān)鍵在于,對(duì)遺留應(yīng)用程序等現(xiàn)有 IT 資產(chǎn)的重用。不過,SOA 允許企業(yè)將其技術(shù)工作的重點(diǎn)放在將支持其業(yè)務(wù)功能或流程的服務(wù)上——例如,能夠與業(yè)務(wù)任務(wù)對(duì)應(yīng)的服務(wù)操作——而不是基于豎井 (silo) 式信息體系的服務(wù)。業(yè)務(wù)一致性涵蓋范圍更全面,且能促進(jìn)業(yè)務(wù)和 IT 之間更好地進(jìn)行溝通。在本系列后面的部分中,我們將討論 SOA 分析和設(shè)計(jì)的自頂向下、自底向上及中間相遇方法,從而了解如何將業(yè)務(wù)模型細(xì)化為 IT 模型,以及可以如何利用主要的現(xiàn)有功能。
不過,與業(yè)務(wù)保持一致并不意味著讓業(yè)務(wù)功能和 IT 實(shí)現(xiàn)緊密耦合。關(guān)鍵的 SOA 概念之一就是松散耦合以及規(guī)范(業(yè)務(wù)模型、接口)和實(shí)現(xiàn)(技術(shù))之間的分離,通過這樣可將更改(如替換服務(wù)提供者)的影響降到最低。
業(yè)務(wù)組件化
IBM Component Business Model? 是一種策略方法,允許企業(yè)將重點(diǎn)放在核心競(jìng)爭(zhēng)力上(使得企業(yè)從競(jìng)爭(zhēng)者中脫穎而出的部分),了解如何使用資源,從而更好地保持業(yè)務(wù)和 IT 之間的一致性。有關(guān) Component Business Model 的更多信息,請(qǐng)參見參考資料部分。非常需要這些業(yè)務(wù)組件交互的集成以及靈活性(如外包組件),而這通過面向服務(wù)得到了實(shí)現(xiàn):業(yè)務(wù)組件具有獨(dú)特的業(yè)務(wù)用途,通過其提供或使用(來自其他組件)的服務(wù)進(jìn)行協(xié)作。這可以被視為“業(yè)務(wù)體系結(jié)構(gòu)”的一部分。
業(yè)務(wù)建模
IBM Rational Unified Process? 對(duì)業(yè)務(wù)建模的定義如下:
“Rational Unified Process Business Modeling 規(guī)程提供了具體的指導(dǎo)信息,說明如何使用各種不同的方法和技術(shù)在不同的正式級(jí)別描述“原始”或“將來”業(yè)務(wù)。”
業(yè)務(wù)建模引入了一系列概念、交付內(nèi)容和角色;它將描述和組織有關(guān)業(yè)務(wù)策略、業(yè)務(wù)遠(yuǎn)景、業(yè)務(wù)目標(biāo)、業(yè)務(wù)目的、業(yè)務(wù)詞匯、業(yè)務(wù)體系結(jié)構(gòu)、業(yè)務(wù)分析與設(shè)計(jì)、業(yè)務(wù)規(guī)則、業(yè)務(wù)價(jià)值、業(yè)務(wù)用例、業(yè)務(wù)實(shí)體以及業(yè)務(wù)流程的任務(wù)。下面的部分對(duì)此進(jìn)行了更為詳細(xì)的說明。
SOA 是有關(guān)重新組織業(yè)務(wù)和 IT 系統(tǒng)的長期策略,其目的是為了快速對(duì)變化作出響應(yīng)。參考資料部分提供了 IBM Systems Journal 第 44 卷第 4 期有關(guān) SOA 的鏈接,其中更為詳細(xì)地說明了面向服務(wù)的思維方式中業(yè)務(wù)所處的位置。
業(yè)務(wù)流程
業(yè)務(wù)流程由一系列能產(chǎn)生有價(jià)值的結(jié)果的活動(dòng)組成。
業(yè)務(wù)流程具有貫穿其中的相關(guān)業(yè)務(wù)項(xiàng)目(數(shù)據(jù)),包括作為流程的輸入和輸出使用的項(xiàng)目。
業(yè)務(wù)和任務(wù)
業(yè)務(wù)活動(dòng)和任務(wù)是通過連接能組成業(yè)務(wù)流程的元素。
您可以將持續(xù)時(shí)間、成本、收益、資源、輸入和輸出與業(yè)務(wù)活動(dòng)相關(guān)聯(lián)。這些是用于對(duì)業(yè)務(wù)流程進(jìn)行分解的元素。服務(wù)標(biāo)識(shí)技術(shù)包括將業(yè)務(wù)流程分解為活動(dòng)和任務(wù)的技術(shù),將通過這些活動(dòng)和技術(shù)對(duì)現(xiàn)有的或?qū)⒁_發(fā)的服務(wù)(及其操作)進(jìn)行標(biāo)識(shí)。這些服務(wù)有時(shí)稱為“業(yè)務(wù)服務(wù)”。
建模業(yè)務(wù)流程
組織的業(yè)務(wù)流程(當(dāng)前的、“原始”流程)可能很復(fù)雜,因?yàn)檫@些流程經(jīng)常是對(duì)最初開發(fā)的流程進(jìn)行了大量的更改之后得到的。理解、正式定義并記錄業(yè)務(wù)流程的工作非常重要。另外,通過建模和模擬“原始”和“將來”業(yè)務(wù)流程,將能夠確定成本、延遲或能實(shí)現(xiàn)自動(dòng)化的方面。
建模業(yè)務(wù)流程不僅提供了可視表示形式,而且,當(dāng)在框架中進(jìn)行此工作時(shí),還能提供基礎(chǔ)元數(shù)據(jù)(我們將在本系列的第 2 部分進(jìn)行討論),從而支持稍后將業(yè)務(wù)流程模型的元素細(xì)化為(或鏈接到)IT 設(shè)計(jì)元素。
人工任務(wù)
很多時(shí)候在流程中都會(huì)需要人工交互(如出差審批或貸款審批)。在業(yè)務(wù)流程建模期間,會(huì)將人工任務(wù)標(biāo)識(shí)為手工任務(wù),并為每個(gè)人工任務(wù)分配不同的角色。部署后,SOA 環(huán)境將需要把人工任務(wù)作為流程執(zhí)行的一部分進(jìn)行支持。例如,IBM WebSphere Process Server 之類的產(chǎn)品將為用戶提供等待其處理的人工任務(wù)的列表。通過與此類產(chǎn)品組合,IBM WebSphere Portal 和 Lotus Sametime 之類的產(chǎn)品還將允許用戶在需要的情況下與同事進(jìn)行協(xié)作,并就他們的決定向系統(tǒng)發(fā)出通知,以便繼續(xù)執(zhí)行流程。人工方面對(duì)于 SOA 的成功非常重要。
BPEL
IBM、Microsoft 和其他業(yè)界企業(yè)已經(jīng)將業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language,BPEL)作為 Web 服務(wù)規(guī)范提交,以用于正式地指定業(yè)務(wù)流程和交互協(xié)議。
1.1 版于 2003 年發(fā)布,目前已經(jīng)發(fā)布了 2.0 版本 OASIS 提交草案,稱為 Web 服務(wù)業(yè)務(wù)流程執(zhí)行語言(Web Services Business Process Execution Language,WSBPEL)。請(qǐng)參見參考資料部分中提供的相關(guān)鏈接。
行業(yè)
業(yè)務(wù)流程可以特定于某個(gè)領(lǐng)域或行業(yè),如保險(xiǎn)索賠流程。行業(yè)聯(lián)盟定義行業(yè)業(yè)務(wù)流程。例如,電信管理論壇 (TeleManagement Forum) 為電信行業(yè)定義增強(qiáng)的電信運(yùn)營圖(Telecom Operations Map,eTOM)。除此之外,企業(yè)可以通過在內(nèi)部采用經(jīng)過驗(yàn)證的業(yè)務(wù)流程(如來自 IBM Industry Models 的流程)來使自己獲得優(yōu)于競(jìng)爭(zhēng)者的優(yōu)勢(shì)。請(qǐng)參見參考資料部分提供的 IBM Insurance Application Architecture (IAA) 的鏈接,這就是 IBM Industry Models 中提供的流程之一。
業(yè)務(wù)流程管理
業(yè)務(wù)流程管理(Business Process Management,BPM)從業(yè)務(wù)流程整個(gè)生命周期的角度看待它,以便提高其效率、靈活性和控制。
BPM 討論的是進(jìn)行建模、模擬、優(yōu)化、部署、運(yùn)行、管理和監(jiān)視,然后將結(jié)果提交回去,以改進(jìn)模型,從而進(jìn)行一個(gè)持續(xù)的改進(jìn)循環(huán)。IBM WebSphere 提供了 BPM 所需的各種產(chǎn)品。
結(jié)束語
在 SOA 術(shù)語系列的第 1 部分中,我們定義了核心 SOA 術(shù)語,即服務(wù)、SOA 以及 SOA 如何與體系結(jié)構(gòu)相關(guān)。我們定義了 SOA 的兩個(gè)核心元素,服務(wù)生命周期和 SOA 治理。最后,我們討論了 SAO 和業(yè)務(wù)的關(guān)系,并對(duì)業(yè)務(wù)流程進(jìn)行了說明。這僅是開始。本系列的后續(xù)部分將定義與 IT 設(shè)計(jì)、開發(fā)、運(yùn)行時(shí)和管理相關(guān)的 SOA 術(shù)語。歡迎您繼續(xù)閱讀 developerWorks 上本系列的其他文章!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
