面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)具有顯著提高 IT 效率的潛力。但是要在組織中實(shí)現(xiàn)它,僅僅了解技術(shù)是不夠的,還必須精通管理。在本文中,Yvonne Balzer 會(huì)描述能幫助您成功實(shí)現(xiàn)任何 SOA 項(xiàng)目的治理原則。
如今,業(yè)務(wù)和 IT 價(jià)值鏈開始在行業(yè)中融合。我們現(xiàn)在所說的 企業(yè)體系結(jié)構(gòu)和 面向服務(wù)體系結(jié)構(gòu)(SOA) 都與 IT 的實(shí)現(xiàn)無關(guān)。因此,我們也需要建立業(yè)務(wù)和 IT 之間的橫向聯(lián)系,定義和開發(fā)諸如 SOA 這樣的體系結(jié)構(gòu),并運(yùn)行專門針對企業(yè)的客戶端項(xiàng)目。
出于這些原因, 治理在如今的 IT 行業(yè)中的角色變得比以前更為重要。在本文中,我將介紹在 IBM IT Management Consulting (ITMC) 開發(fā)組的最佳實(shí)踐治理方法,這些方法都已在幾個(gè)客戶端項(xiàng)目得以開發(fā)和實(shí)現(xiàn)。我們將從已經(jīng)過檢驗(yàn)的 IT 治理結(jié)構(gòu)和實(shí)踐開始,增強(qiáng)治理模式以滿足 SOA 的需求。
動(dòng)機(jī)和問題
由于行業(yè)中出現(xiàn)的問題和挑戰(zhàn), IT 在現(xiàn)代組織中的角色發(fā)生了根本上的變化。現(xiàn)在,IT 必須以接近實(shí)時(shí)的速度非常迅速的反應(yīng)并靈活的啟用業(yè)務(wù)。IT 必須設(shè)計(jì)和管理一部分高度集成的復(fù)雜企業(yè)體系結(jié)構(gòu),并且業(yè)務(wù)和 IT 組件之間的界線也越來越模糊。本文將介紹關(guān)鍵的治理功能,它能夠幫助您達(dá)到這些目標(biāo)并成功實(shí)現(xiàn) SOA 項(xiàng)目。
治理提供了一種拱形(overarching)的結(jié)構(gòu),其目的是為了從戰(zhàn)略性、功能性和操作性層次上支持用戶的業(yè)務(wù)目標(biāo)。它為有效的規(guī)劃、決策制定、操縱以及 SOA 項(xiàng)目控制而定義了規(guī)則、流程、度量和組織結(jié)構(gòu),以達(dá)到用戶的業(yè)務(wù)需求和目標(biāo)。最后,治理模型定義了以下內(nèi)容:
- 需要做 什么。
-
如何去做。
- 應(yīng)該由 誰來做。
- 應(yīng)該 如何進(jìn)行度量。
該模型同樣也為有效的規(guī)劃、決策制定、操縱以及 SOA 項(xiàng)目控制而定義了規(guī)則、流程、度量和組織結(jié)構(gòu),以達(dá)到用戶的業(yè)務(wù)需求和挑戰(zhàn)性的目標(biāo)。
以下是在 SOA 項(xiàng)目內(nèi)定義適合的治理結(jié)構(gòu)所涉及的一些關(guān)鍵性問題:
- 客戶端從該項(xiàng)目中能獲得哪些好處?客戶端的目標(biāo)和期望是什么?
- 在進(jìn)行 IT 規(guī)劃、操縱和決策制定時(shí),有哪些角色、職責(zé)、結(jié)構(gòu)和流程是已經(jīng)存在于客戶端站點(diǎn)的?
- 如何提高技能和領(lǐng)導(dǎo)能力?
- 需要哪些原則和指導(dǎo)方針來優(yōu)化業(yè)務(wù)和 IT 之間的關(guān)聯(lián)?
- 為了企業(yè)和 IT 能夠進(jìn)行交互,以維持一致性并保持足夠的靈活性來快速適應(yīng)新的變化,什么樣的構(gòu)造方式才是適合的?
- 什么樣的服務(wù)規(guī)范、服務(wù)定義和描述才是適合的?
- 如何控制和度量服務(wù)及服務(wù)提供者?由誰來對現(xiàn)有服務(wù)所進(jìn)行的修改進(jìn)行監(jiān)控、定義并授權(quán)?
- 如何決定服務(wù)的原始策略?
- 存在哪些問題?項(xiàng)目如何支持客戶端來解決這些問題?
基于我們的經(jīng)驗(yàn),我們相信公認(rèn)的、正式的治理模型是成功實(shí)現(xiàn)業(yè)務(wù)目標(biāo)的關(guān)鍵。因此,我們建議在 SOA 項(xiàng)目中建立治理功能。該治理模型應(yīng)該也處理 漸進(jìn)式改造的基本需求,即集中使用每個(gè)步驟中學(xué)習(xí)到的內(nèi)容來定義和執(zhí)行下一步。創(chuàng)建用于 SOA 的改造和實(shí)現(xiàn)的治理程序體,是治理模型的核心需求。為快速可靠的完成該項(xiàng)工作,我們提倡使用客戶端現(xiàn)有的結(jié)構(gòu)并共同工作,以改造該結(jié)構(gòu)并使其適應(yīng) SOA 項(xiàng)目。
治理模型:SOA 項(xiàng)目的正確形式
IT 治理有一些不同的定義。IT Governance Institute(請參閱 參考資料以獲得相關(guān)鏈接) 給出了一個(gè)對 IT 治理的較好的一般概述:
IT 治理是指導(dǎo)部門及執(zhí)行機(jī)構(gòu)的職責(zé)。它是企業(yè)治理的主要組成部分,由領(lǐng)導(dǎo)階層和組織結(jié)構(gòu)組成,它確保組織的 IT 能夠維持并可以擴(kuò)展組織 IT 的策略和目標(biāo)。
IT 治理的目的是指導(dǎo) IT 以確保它的性能可以滿足業(yè)務(wù)目標(biāo),因此:
*IT 和企業(yè)的聯(lián)合會(huì)使預(yù)期的利益變?yōu)楝F(xiàn)實(shí)。
*IT 使企業(yè)的機(jī)遇得到開拓,并使企業(yè)的利益最大化。
*IT 資源能夠可靠的使用。
*IT 相關(guān)的風(fēng)險(xiǎn)被合理的控制。
圖 1 的治理模型是組織結(jié)構(gòu)、連接流程和相關(guān)聯(lián)系的結(jié)合。它基于戰(zhàn)略方向和被稱為 治理原則的公認(rèn)的基本原則。在大量復(fù)雜的項(xiàng)目中,該方法通過我們的經(jīng)驗(yàn)得到了不斷的改進(jìn)。由此,我們認(rèn)識到這些要素是任何類型項(xiàng)目的基礎(chǔ)。
圖 1. 核心治理要素
戰(zhàn)略方向及指導(dǎo)原則
客戶端戰(zhàn)略方向的定義是成功發(fā)展適合的 SOA 及持續(xù)專注于業(yè)務(wù)需求的關(guān)鍵。對業(yè)務(wù)策略和目標(biāo)的普遍理解是業(yè)務(wù)單位和 IT 的基礎(chǔ)。
治理的原則和指導(dǎo)方針是任何決策的基礎(chǔ)。這些原則和指導(dǎo)方針將規(guī)定解決方案的范圍并定義協(xié)作的方式。因此,執(zhí)行部門應(yīng)該很好的理解接受它們。其中一條主要的指導(dǎo)方針就是 治理方式。兩種主要方式的區(qū)別是:
-
中央式治理:這對企業(yè)而言是最好的方式。治理委員會(huì)擁有來自每個(gè)服務(wù)域(以后對此將有更多介紹)和專家的表述,這些專家可以與實(shí)現(xiàn)解決方案關(guān)鍵技術(shù)組件的人進(jìn)行對話。中央治理委員會(huì)將在對實(shí)現(xiàn)修改授權(quán)之前,評審任何對服務(wù)的添加、刪除以及對現(xiàn)有服務(wù)的變更。
-
分布式治理:這對分布式團(tuán)隊(duì)而言是最好的方式。每個(gè)業(yè)務(wù)單元都能夠控制在自己的組織內(nèi)部如何提供服務(wù)。這需要功能性的服務(wù)域方法。中央委員會(huì)可以為不同的團(tuán)隊(duì)提供指導(dǎo)方針和規(guī)范。
每個(gè)原則都應(yīng)該依照基礎(chǔ)理論來定義,這些理論用于說明該原則的目的和含義。指導(dǎo)原則定義了 SOA 的開發(fā)、維護(hù)和使用的一些基礎(chǔ)規(guī)則。特定原則用于體系結(jié)構(gòu)設(shè)計(jì)或是服務(wù)定義,也就是說,這些指導(dǎo)原則專注于特定的主題。這些原則具有以下特性,它們能為設(shè)計(jì)樣式提供固有特征,并應(yīng)該包括項(xiàng)目的以下幾個(gè)方面:
- 指導(dǎo)原則:
- 重用(Reuse)、粒度(granularity)、模塊性(composability)、 可組合性(composability)和組件化(componentization)
- 與標(biāo)準(zhǔn)(一般的或是特定于行業(yè)的)一致
- 服務(wù)的識別和歸類、提供和傳遞、監(jiān)控和跟蹤
- 特定體系結(jié)構(gòu)原則:
- 封裝
- 業(yè)務(wù)邏輯和基礎(chǔ)技術(shù)的分離
- 單一實(shí)現(xiàn)和組件的企業(yè)觀點(diǎn)(enterprise-view)
- 機(jī)遇存在時(shí)利用現(xiàn)有資產(chǎn)
- 生命周期管理
- 系統(tǒng)資源的有效使用
- 服務(wù)的成熟度和性能
通過理解體系結(jié)構(gòu)和設(shè)計(jì)的 SOA 樣式的原則,以及這些原則對業(yè)務(wù)和 IT 的聯(lián)合所帶來的好處,您就能在設(shè)計(jì)解決方案時(shí)確定 SOA 的適用性。這些原則驅(qū)動(dòng)服務(wù)設(shè)計(jì)明確的基本特性。您可以將每一個(gè)特性對應(yīng)到一個(gè)或多個(gè)提供給原則和特性以完整性的 SOA 原則。
治理流程
治理流程是戰(zhàn)略性的 IT 規(guī)劃和操縱所需的流程,比如:
- 策略的發(fā)展
- IT 規(guī)劃
- 業(yè)務(wù)量管理
- 資源
- 創(chuàng)新管理
- 體系結(jié)構(gòu)管理。
在 SOA 項(xiàng)目中,需要在項(xiàng)目的一開始就建立 體系結(jié)構(gòu)管理流程(AMP)。 AMP 主要的目標(biāo)是確保已定義的 SOA 的一致性、有效開發(fā)以及持久性。
基于我們在許多項(xiàng)目方面積累的經(jīng)驗(yàn),我們開發(fā)了一個(gè)標(biāo)準(zhǔn) AMP,您可以在客戶端項(xiàng)目內(nèi)快速簡單的使用它。該流程由四個(gè)子流程組成,如 圖 2所示,這些子流程使用 IBM LOVEM 表示法,定義完善且可用。( LOVEM即 line of visibility engineering methodology,請參閱 參考資料以獲得更多信息)。
圖 2. 體系結(jié)構(gòu)管理流程
下面更詳細(xì)地介紹圖中的一些要素:
-
體系結(jié)構(gòu)的評審及批準(zhǔn)流程:
- 定義構(gòu)造好的方法來評審和批準(zhǔn)現(xiàn)有 SOA 的變化,做出與 SOA 的路線相一致的決策。
- 設(shè)計(jì)和服務(wù)的正式評估審核是關(guān)鍵的控制點(diǎn)。
-
體系結(jié)構(gòu)的例外以及漸進(jìn)發(fā)展流程:
- 提供請求體系結(jié)構(gòu)決策的方法。
- 允許 SOA 體系結(jié)構(gòu)的例外以滿足獨(dú)特的企業(yè)需求。
-
體系結(jié)構(gòu)維護(hù)流程:
- 當(dāng)新的服務(wù)添加到體系結(jié)構(gòu)中時(shí),確保 SOA 已被維護(hù)且修改已經(jīng)傳達(dá)到風(fēng)險(xiǎn)承擔(dān)者。
- 體系結(jié)構(gòu)的變化都有備有文檔說明且被傳達(dá)。
-
體系結(jié)構(gòu)通信流程:
- 確保 SOA 對每個(gè)需要訪問的人都是可用的。
- 加深對 SOA 重要性的理解
組織結(jié)構(gòu)
為提供體系結(jié)構(gòu)治理,必須在組織內(nèi)部確立一些結(jié)構(gòu),定義所有需要的角色和職責(zé),以及定義適當(dāng)?shù)闹贫Q策的組織結(jié)構(gòu)。經(jīng)驗(yàn)顯示,建立 體系結(jié)構(gòu)辦公室很有用,特別是在復(fù)雜且龐大的項(xiàng)目中。體系結(jié)構(gòu)辦公室職責(zé)是保持 SOA 在戰(zhàn)略、戰(zhàn)術(shù)、操作層次上符合業(yè)務(wù)需求。該辦公室應(yīng)該包括體系結(jié)構(gòu)設(shè)計(jì)權(quán)威人士,他是體系結(jié)構(gòu)管理流程的所有者。此外,每個(gè)層次都定義了角色和職責(zé)。
根據(jù)我們在客戶端所做的工作,有兩個(gè)有效辦法可以用于建立和運(yùn)行這樣的體系結(jié)構(gòu)辦公室:
- 如果客戶端組織已經(jīng)有了和體系結(jié)構(gòu)辦公室類似的制度,那么您應(yīng)該結(jié)合這個(gè)現(xiàn)有的組織結(jié)構(gòu)。應(yīng)該確保所有的功能和職責(zé)都能夠明確的用于制定體系結(jié)構(gòu)決策。對于 SOA 項(xiàng)目,這些功能和職責(zé)應(yīng)該涉及到 SOA 決策,并隨時(shí)保持聯(lián)絡(luò)。
- 如果客戶端站點(diǎn)沒有治理委員會(huì),我們推薦您在 SOA 項(xiàng)目的上下文中建立體系結(jié)構(gòu)辦公室,并通過它來決定關(guān)鍵的可交付項(xiàng)目。用 SOA 項(xiàng)目中的客戶端和項(xiàng)目人員暫時(shí)充當(dāng)該體系結(jié)構(gòu)辦公室的工作人員。這些人員應(yīng)該是決策制定者,并且應(yīng)該包含 CIO。在項(xiàng)目的最后,體系結(jié)構(gòu)辦公室可以被集成到客戶端組織。
圖 3
說明了體系結(jié)構(gòu)辦公室以及每個(gè)層次上的角色和職責(zé)。在戰(zhàn)略層有體系結(jié)構(gòu)部門,它是一個(gè)決策部門,負(fù)責(zé)提交標(biāo)準(zhǔn)和原則,并通過業(yè)務(wù)和 IT 策略來進(jìn)行服務(wù)的優(yōu)先級排序。在戰(zhàn)術(shù)層,體系結(jié)構(gòu)組作為體系結(jié)構(gòu)設(shè)計(jì)權(quán)威來運(yùn)作,負(fù)責(zé)定義體系結(jié)構(gòu)管理流程,以及定義修改、刪除或添加服務(wù)和管理域的決策準(zhǔn)則。在操作層,項(xiàng)目組開發(fā)和實(shí)現(xiàn)服務(wù)。
圖 3. 體系結(jié)構(gòu)辦公室
每個(gè)項(xiàng)目組都需要角色描述來定義其任務(wù)和職責(zé)以及操作的模式。
SOA 治理引入 域所有權(quán)的概念, 域管理一系列共享常用內(nèi)聚業(yè)務(wù)的可重用服務(wù)。在很多情況下,這些是業(yè)務(wù)服務(wù)的子集,比如用戶信息、案例信息、商業(yè)競爭統(tǒng)計(jì)信息等等,以及競爭參考,比如商業(yè)風(fēng)險(xiǎn)等級、產(chǎn)品分析和規(guī)劃服務(wù)。每個(gè)域負(fù)責(zé)維護(hù)自己的業(yè)務(wù)對象,也負(fù)責(zé)對其他的域發(fā)布服務(wù)接口。域?yàn)闃I(yè)務(wù)對象提供服務(wù)檢索和維護(hù)、封裝業(yè)務(wù)邏輯、定位以及與對象和服務(wù)相關(guān)聯(lián)的格式。當(dāng)主管某個(gè)產(chǎn)品或產(chǎn)品領(lǐng)域的人希望從域獲得服務(wù)時(shí),他們生成一個(gè)請求并且兩個(gè)組確定相互聯(lián)系,創(chuàng)建服務(wù)層次協(xié)定。這些聯(lián)系和協(xié)定也存在于域之間。
根據(jù)域所有權(quán)的概念,一些新的角色和職責(zé)應(yīng)被提供給在 SOA 項(xiàng)目中的開發(fā)生命周期,如下面的 表格 1所描述。
表格 1. SOA 項(xiàng)目中的角色和職責(zé)
角色
|
描述
|
域所有者 |
管理域的方向,域包含了一個(gè)或多個(gè)服務(wù)的聚集,也包含了業(yè)務(wù)聯(lián)系以幫助多個(gè)業(yè)務(wù)單元中的所有者理解業(yè)務(wù)透視。數(shù)據(jù)和流程的所有者使用業(yè)務(wù)分析員來闡明業(yè)務(wù)目標(biāo)和需求。跟蹤 ROI 計(jì)算服務(wù)的使用。 |
域的面向?qū)ο髽I(yè)務(wù)分析人員 |
開發(fā)人員使用沒有假定使用者接口的服務(wù)功能性案例。確保完全提取的規(guī)格化業(yè)務(wù)服務(wù)都被識別并指定。必須堅(jiān)持嚴(yán)格且靈活的服務(wù)定義和開發(fā)生存周期。 |
業(yè)務(wù)代表 |
為域識別和分析業(yè)務(wù)服務(wù)。 |
域開發(fā)人員和維護(hù)人員 |
與面向服務(wù)開發(fā)生命周期一致的創(chuàng)建和維護(hù)服務(wù)。創(chuàng)建并實(shí)現(xiàn)符合開發(fā)規(guī)則的服務(wù)(例如,服務(wù)設(shè)計(jì)注意事項(xiàng)或 Web 實(shí)現(xiàn)指南)、 SOA 以及參考體系結(jié)構(gòu)。 |
服務(wù)測試人員 |
確保服務(wù)經(jīng)過嚴(yán)格的測試,以獲得合適的業(yè)務(wù)價(jià)值。為功能性接口以及它的獨(dú)立實(shí)現(xiàn)創(chuàng)建測試案例。 |
在給定服務(wù)域中工作的人員負(fù)責(zé)開發(fā)業(yè)務(wù)和技術(shù)的集成,以提供可以跨業(yè)務(wù)界線共享的業(yè)務(wù)服務(wù),使成員和區(qū)域受益。當(dāng)他們將應(yīng)用程序中開發(fā)的功能轉(zhuǎn)換成服務(wù)域中開發(fā)的功能時(shí),便會(huì)在組織結(jié)構(gòu)(角色和職責(zé))中為應(yīng)用程序的開發(fā)引入變化。
將治理模型投入使用
開發(fā)治理模型的流程基于一個(gè)具有三個(gè)步驟的方法。該方法基于時(shí)間約束(time-constrained)客戶端項(xiàng)目而開發(fā)。成功的關(guān)鍵是治理功能的建立。
-
步驟 1:實(shí)施
- 在適當(dāng)?shù)奈恢迷O(shè)置核心治理功能,并支持客戶端業(yè)務(wù)操作。
- 邊做邊學(xué),才能迅速成功。
- 使用經(jīng)驗(yàn)豐富的專業(yè)人員擔(dān)當(dāng)高層管理角色。
-
步驟 2:專業(yè)化
- 建立必要的結(jié)構(gòu)、流程、方法和工具。
- 吸取步驟 1 中的經(jīng)驗(yàn)。
- 使用有經(jīng)驗(yàn)的架構(gòu)師和專業(yè)人員。
-
步驟 3:穩(wěn)固
- 傳授并培訓(xùn)客戶端人員運(yùn)行操作。
- 將操作模式變?yōu)橹笇?dǎo)模式。
- 使用有指導(dǎo)經(jīng)驗(yàn)的顧問和專家。
圖 4
對這些步驟進(jìn)行了更詳細(xì)的描述
圖 4. 將治理模式投入使用
提示和技巧
以下是我們從實(shí)際項(xiàng)目中獲得一些實(shí)踐經(jīng)驗(yàn):
- 有規(guī)律的通知每一個(gè)需要訪問的人(通過項(xiàng)目通訊稿,或者也許是開會(huì))。SOA 創(chuàng)立了組織文化也改變了技術(shù),這可能會(huì)產(chǎn)生溝通障礙,因此互相通信非常重要。
- 將每個(gè)決策、約束和設(shè)想記入文檔,以確保決策制定的說服力和透明度。
- 定義關(guān)鍵的交付以及必需的工具集和模板。
- 為生存周期的管理和方案設(shè)置實(shí)踐工具。
- 用基本原理定義決策,并文檔化和傳達(dá)這些決策。
- 必須保持所有風(fēng)險(xiǎn)承擔(dān)者的有力支持和決策制定者的說服力。
結(jié)束語
本文說明了治理為什么重要以及 SOA 項(xiàng)目中需要什么。并對我們 SOA 治理模型的一些關(guān)鍵要素進(jìn)行了概述。從以 SOA 原則為導(dǎo)向開始,接著描述了體系結(jié)構(gòu)管理流程作為一項(xiàng)關(guān)鍵流程確保了面向服務(wù)體系結(jié)構(gòu)的相容性和一致性。還描述了如何為適合的決策制定和開發(fā)建立組織結(jié)構(gòu),以提供所需的角色和職責(zé)。最后,本文還講述了如何將治理模型投入使用,并為您提供了我們在該領(lǐng)域所獲得的提示和技巧。