金 戈, IBM軟件部企業(yè)集成解決方案架構(gòu)師, IBM 中國(guó)軟件開(kāi)發(fā)實(shí)驗(yàn)室 SOA設(shè)計(jì)中心 2006 年 12 月 26 日 《SOA 采納步驟和價(jià)值分析》是本系列文章的第一部分。本文前半部分首先概覽了實(shí)施 SOA 的簡(jiǎn)單步驟,然后介紹了貫穿本系列文章的示例場(chǎng)景。在文章的后半部分著重介紹了IBM SOA 成熟度模型和SOA評(píng)估框架,并分析了示例場(chǎng)景中采納 SOA 的步驟和價(jià)值。 以服務(wù)為中心的業(yè)務(wù)活動(dòng)管理與監(jiān)控是最近出現(xiàn)的一種熱門(mén)的IT技術(shù),它的目的在于幫助企業(yè)管理人員實(shí)時(shí)獲悉企業(yè)運(yùn)營(yíng)狀況,了解企業(yè)的戰(zhàn)略實(shí)施進(jìn)展。 《SOA 快速指南 1 2 3》系列文章是筆者近年來(lái)在 SOA 項(xiàng)目實(shí)施中的經(jīng)驗(yàn)結(jié)晶。該系列文章結(jié)合一個(gè)汽車貸款流程, 介紹了在 SOA 的環(huán)境下如何基于 IBM 的現(xiàn)有產(chǎn)品構(gòu)造業(yè)務(wù)活動(dòng)管理解決方案,詳細(xì)闡述了每個(gè)實(shí)施步驟中使用的 IBM 的方法學(xué)、技術(shù)和產(chǎn)品。希望通過(guò)本文的介紹,能夠幫助讀者理清業(yè)務(wù)流程管理所包含的基本概念,并了解構(gòu)建解決方案所需要的基本步驟。 SOA是一個(gè)既簡(jiǎn)單又復(fù)雜的技術(shù)。簡(jiǎn)單地說(shuō),SOA就是一組設(shè)計(jì)原則,這些設(shè)計(jì)原則既有SOA特有的,如服務(wù)是第一概念[CBDI],業(yè)務(wù)和IT對(duì)齊,為靈活而構(gòu)建;也有被早已被業(yè)界廣泛接受和使用的,如松散耦合、隔離關(guān)注、模塊化、可重用性等。復(fù)雜地說(shuō),SOA是由這些設(shè)計(jì)原則衍生出的各種技術(shù),如SOA成熟度模型、服務(wù)建模方法學(xué)、SOA編程模型、企業(yè)服務(wù)總線、服務(wù)注冊(cè)庫(kù)等。 同樣,對(duì)SOA的采納(Adoption)形式也具有從簡(jiǎn)單到復(fù)雜各種形式。一個(gè)分布式企業(yè)IT系統(tǒng)全面向SOA轉(zhuǎn)型固然是SOA,而像HousingMap.com這樣將Google Map提供的Web服務(wù)和Craiglist提供的Web服務(wù)集成起來(lái)提供全新的業(yè)務(wù)模式也不能不算SOA。筆者作為主要的技術(shù)人員主導(dǎo)或參加了若干SOA的實(shí)施案例,這里面有短暫的SOA試點(diǎn)項(xiàng)目,也有大跨度的SOA實(shí)施。從實(shí)踐的角度而言,筆者認(rèn)為一般的SOA的實(shí)施項(xiàng)目應(yīng)該包含如下步驟: 0. SOA采納步驟和價(jià)值分析:由于客戶現(xiàn)有IT環(huán)境和業(yè)務(wù)環(huán)境的不同,采納SOA的價(jià)值和采納的步驟也會(huì)相應(yīng)不同。對(duì)任何一個(gè)企業(yè)或者是應(yīng)用提供商,在采納SOA之前最好深刻理解SOA的內(nèi)涵和外延,并客觀分析采納SOA的好處以及帶來(lái)的風(fēng)險(xiǎn),并實(shí)際情況規(guī)劃SOA實(shí)施的步驟。 1. SOA監(jiān)管:和傳統(tǒng)技術(shù)不同的是,SOA是一個(gè)橫向的技術(shù),它不僅影響IT系統(tǒng)的設(shè)計(jì)者和開(kāi)發(fā)者,它更需要改變業(yè)務(wù)部門(mén)對(duì)IT系統(tǒng)的看法,也需要運(yùn)營(yíng)部門(mén)改變系統(tǒng)運(yùn)營(yíng)的方式。幾乎所有的相關(guān)人的活動(dòng)都會(huì)圍繞著服務(wù)模型和服務(wù)元數(shù)據(jù)。因此服務(wù)模型和服務(wù)元數(shù)據(jù)質(zhì)量直接決定著企業(yè)向SOA轉(zhuǎn)型的效果。簡(jiǎn)單的說(shuō),SOA監(jiān)管通過(guò)建立適當(dāng)組織和流程保證服務(wù)模型和服務(wù)元數(shù)據(jù)在創(chuàng)建時(shí)和運(yùn)行時(shí)的質(zhì)量??梢灶A(yù)見(jiàn)的是,一個(gè)企業(yè)采納了SOA后,SOA監(jiān)管會(huì)成為企業(yè)IT部門(mén)的重要任務(wù)之一。 2. 服務(wù)建模:如何根據(jù)服務(wù)建模方法學(xué)創(chuàng)建符合SOA設(shè)計(jì)原則的服務(wù)模型是實(shí)施SOA中及其重要的一步。發(fā)現(xiàn)服務(wù)候選、決定服務(wù)暴露和進(jìn)行服務(wù)規(guī)約是這一步的重要內(nèi)容。 3. 服務(wù)實(shí)現(xiàn)和架構(gòu)設(shè)計(jì):根據(jù)確定的服務(wù)模型,結(jié)合現(xiàn)有IT環(huán)境確定服務(wù)和服務(wù)組件的實(shí)現(xiàn)策略,并設(shè)計(jì)用于實(shí)現(xiàn)服務(wù)的基礎(chǔ)架構(gòu)(如ESB、流程服務(wù)引擎、人工服務(wù)容器等)是也是實(shí)施SOA過(guò)程中及其重要的一步。服務(wù)組件劃分、服務(wù)實(shí)現(xiàn)決策和服務(wù)基礎(chǔ)設(shè)施設(shè)計(jì)是這一步的重要內(nèi)容。 4. 以服務(wù)為中心的開(kāi)發(fā)和集成:在SOA的實(shí)施項(xiàng)目中,開(kāi)發(fā)和集成的模式都會(huì)發(fā)生相應(yīng)的變化,服務(wù)會(huì)成為開(kāi)發(fā)階段的中心概念。服務(wù)模型映射到編程模型,逐步實(shí)現(xiàn)服務(wù),并在服務(wù)層次上進(jìn)行持續(xù)的集成是這一階段的主要內(nèi)容。 5. 服務(wù)管理:以上的步驟主要側(cè)重在功能層次上如何一步步實(shí)現(xiàn)SOA,而服務(wù)管理則側(cè)重于在SOA實(shí)施中如何實(shí)現(xiàn)非功能性需求,這包括服務(wù)性能、服務(wù)安全等。 本系列文章將圍繞SOA的實(shí)施步驟組織,但是SOA監(jiān)管和服務(wù)管理不在本系列文章的范圍內(nèi)。
本系列文章所涉及的場(chǎng)景是一個(gè)汽車貸款審批業(yè)務(wù)流程,從申請(qǐng)人提交申請(qǐng)到汽車銷售商接受貸款并發(fā)貨(或者申請(qǐng)人接收拒絕通知)。 從銀行的業(yè)務(wù)角度,該業(yè)務(wù)流程的外部參與者包括最終用戶(申請(qǐng)人、汽車銷售商)和合作伙伴(保險(xiǎn)公司),內(nèi)部參與者包括業(yè)務(wù)執(zhí)行人員(信貸員)以及風(fēng)險(xiǎn)管理人員(信貸經(jīng)理)。從技術(shù)實(shí)現(xiàn)的角度,該業(yè)務(wù)流程既包含自動(dòng)化的內(nèi)部功能(查詢存貸款記錄)和外部功能(保險(xiǎn)公司提供擔(dān)保),也包括人工活動(dòng)(信貸經(jīng)理審批)。因此,該場(chǎng)景具備一般業(yè)務(wù)流程的典型性,基于該場(chǎng)景的SOA實(shí)施示例具備更大的借鑒意義。 圖1:汽車貸款審批流程 圖2:現(xiàn)有業(yè)務(wù)環(huán)境 從圖2可以看出,信貸員是整個(gè)業(yè)務(wù)流程的樞紐,負(fù)責(zé)與客戶、信貸經(jīng)理、相關(guān)應(yīng)用系統(tǒng)打交道。這種業(yè)務(wù)模式既增大了信貸員的工作強(qiáng)度,也增加了過(guò)程中的操作風(fēng)險(xiǎn)以及道德風(fēng)險(xiǎn)。 圖3:現(xiàn)有 IT 環(huán)境 從圖3可以看出,在業(yè)務(wù)流程中起到樞紐作用的信貸員,通過(guò)不同的方式訪問(wèn)不同的系統(tǒng),獲取申請(qǐng)人的相關(guān)信息,同時(shí)通過(guò)電子辦公系統(tǒng)向信貸經(jīng)理提交貸款審批申請(qǐng)。多樣化的人機(jī)界面既增加了對(duì)信貸員的IT技能要求,也極大的降低了信貸員的工作效率。
3. SOA 評(píng)估框架和 SOA 成熟度模型簡(jiǎn)介 如上所述,SOA是由一些設(shè)計(jì)原則衍生出的一系列技術(shù)。和傳統(tǒng)的方法不同的是,SOA的這些衍生技術(shù)遍布企業(yè)IT生命周期,以及企業(yè)IT系統(tǒng)的各個(gè)層次。為了評(píng)估一個(gè)企業(yè)的實(shí)施SOA的程度,我們需要一個(gè)覆蓋全面的評(píng)估標(biāo)準(zhǔn)和一種對(duì)成熟度的劃分。SOA評(píng)估框架就是這里說(shuō)的評(píng)估標(biāo)準(zhǔn),而SOA成熟度模型就是一種對(duì)SOA成熟度的劃分。SOA的評(píng)估框架和SOA成熟度模型是了解企業(yè)IT和業(yè)務(wù)環(huán)境現(xiàn)狀,分析企業(yè)采納SOA的步驟和價(jià)值的重要工具。這里我們以IBM的SOA評(píng)估框架和SOA成熟度模型為例進(jìn)行介紹。 IBM的SOA評(píng)估框架主要分析企業(yè)IT系統(tǒng)在如下四個(gè)方面的特性: 1. 組織和流程:企業(yè)是否有實(shí)施SOA的經(jīng)驗(yàn),實(shí)施SOA的范圍多大,企業(yè)是否規(guī)劃過(guò)需要實(shí)現(xiàn)的SOA的能力,業(yè)務(wù)部門(mén)是否理解SOA實(shí)施的價(jià)值和過(guò)程,特別是業(yè)務(wù)部門(mén)參與重要性,是否有系統(tǒng)的方法指導(dǎo)服務(wù)的發(fā)現(xiàn)和設(shè)計(jì),業(yè)務(wù)部門(mén)在服務(wù)的發(fā)現(xiàn)和設(shè)計(jì)中參與的程度如何; 2. 應(yīng)用:目前應(yīng)用如何暴露可重用的邏輯?應(yīng)用間連通的實(shí)時(shí)和異構(gòu)特性如何?企業(yè)開(kāi)始在多大構(gòu)建復(fù)合應(yīng)用? 3. 架構(gòu):目前企業(yè)應(yīng)用集成現(xiàn)狀?企業(yè)應(yīng)用的組件化程度如何?是否存在服務(wù)模型?范圍多大? 4. 基礎(chǔ)架構(gòu):基礎(chǔ)架構(gòu)如何保持可擴(kuò)展性和靈活性保證滿足業(yè)務(wù)部門(mén)的需要?基礎(chǔ)設(shè)施如何響應(yīng)業(yè)務(wù)流程性能的變化?是否存在統(tǒng)一的安全架構(gòu)和規(guī)范? 同時(shí),IBM的SOA成熟度模型將SOA成熟度劃分為7個(gè)層次: L1. 孤立的:大多數(shù)為孤立應(yīng)用,存在集成也基本上以數(shù)據(jù)集成為主;當(dāng)需求發(fā)生變化時(shí),需要大量的瑣碎的架構(gòu)調(diào)整; L2. 集成的:應(yīng)用間存在大量集成,但是以點(diǎn)到點(diǎn)的連接方式為主,應(yīng)用程序的重構(gòu)主要通過(guò)數(shù)據(jù)集成完成; L3. 組件化的:將主要的或關(guān)鍵的應(yīng)用從功能角度進(jìn)行了組件劃分,原有的J2EE/.Net等應(yīng)用通過(guò)重構(gòu)實(shí)現(xiàn)這些組件,組件間的集成通過(guò)組件接口和相互間的契約完成; L4. 簡(jiǎn)單服務(wù):存在業(yè)務(wù)部門(mén)內(nèi)的服務(wù)模型和構(gòu)建在服務(wù)上的業(yè)務(wù)流程集成; L5. 組合服務(wù):存在企業(yè)范圍內(nèi)和企業(yè)間的服務(wù)模型,已經(jīng)在服務(wù)模型基礎(chǔ)上完成價(jià)值鏈集成; L6. 虛擬化服務(wù):基礎(chǔ)設(shè)施如服務(wù)器和存儲(chǔ)已經(jīng)完成虛擬化,服務(wù)運(yùn)行在這些虛擬化的基礎(chǔ)設(shè)施之上;基礎(chǔ)設(shè)施、服務(wù)組件、服務(wù)、業(yè)務(wù)流程被極大解耦;通過(guò)對(duì)基礎(chǔ)設(shè)施的監(jiān)控和管理來(lái)保證服務(wù)質(zhì)量; L7. 動(dòng)態(tài)配置服務(wù):服務(wù)可以根據(jù)業(yè)務(wù)策略和IT策略進(jìn)行動(dòng)態(tài)組裝;
4. 示例場(chǎng)景的 SOA 現(xiàn)有成熟度和目標(biāo)成熟度 我們對(duì)示例場(chǎng)景中SOA現(xiàn)有成熟度分析總結(jié)如下: 1. 組織和流程:無(wú)論是在貸款業(yè)務(wù)部門(mén),還是在其他業(yè)務(wù)部門(mén),都沒(méi)有進(jìn)行過(guò)SOA的實(shí)施;業(yè)務(wù)人員普遍認(rèn)為SOA是技術(shù)層面的事情,是IT部門(mén)的事情,業(yè)務(wù)部門(mén)在SOA實(shí)施中沒(méi)有任何責(zé)任; 2. 應(yīng)用:構(gòu)建在主機(jī)上的核心銀行系統(tǒng)業(yè)務(wù)邏輯體現(xiàn)為CICS的事務(wù),業(yè)務(wù)邏輯劃分清晰,但是邏輯和表示緊耦合,而且其業(yè)務(wù)邏輯劃分和整體需求有一定差距,該銀行已經(jīng)構(gòu)建EAI的基礎(chǔ)設(shè)施,核心銀行系統(tǒng)的業(yè)務(wù)邏輯可以通過(guò)EAI中的消息總線訪問(wèn);房貸和車貸系統(tǒng)分布構(gòu)建在J2EE和.Net平臺(tái)之上,設(shè)計(jì)系統(tǒng)時(shí)對(duì)組件化考慮的很充分,主要的業(yè)務(wù)邏輯都構(gòu)建在公共的組件基礎(chǔ)之上,如果其他系統(tǒng)需要訪問(wèn)房貸和車貸系統(tǒng),需要進(jìn)行點(diǎn)到點(diǎn)的集成;保險(xiǎn)公司擔(dān)保網(wǎng)關(guān)是外部系統(tǒng),已經(jīng)服務(wù)化。 3. 架構(gòu):企業(yè)消息總線可以連通除房貸和車貸系統(tǒng)以外的大部分系統(tǒng),但是消息總線中介能力不強(qiáng),主要集中在消息轉(zhuǎn)換,對(duì)重復(fù)業(yè)務(wù)邏輯的訪問(wèn)需要應(yīng)用層處理; 4. 基礎(chǔ)架構(gòu):服務(wù)器、存儲(chǔ)和網(wǎng)絡(luò)設(shè)施異構(gòu)性很大,業(yè)務(wù)系統(tǒng)性能的調(diào)控相當(dāng)剛性;已經(jīng)具有統(tǒng)一的安全架構(gòu),如認(rèn)證、授權(quán)和加密; 綜合分析可見(jiàn),對(duì)于整體企業(yè)而言其SOA成熟度,位于L2和L3之間;房貸和車貸系統(tǒng)SOA成熟度位于L3。 對(duì)于SOA的轉(zhuǎn)型,該企業(yè)的近期目標(biāo)是希望能夠在現(xiàn)在的現(xiàn)有的房貸和車貸系統(tǒng)之上構(gòu)建復(fù)合應(yīng)用以支持汽車貸款審批流程;而該企業(yè)的長(zhǎng)遠(yuǎn)目標(biāo)是構(gòu)建企業(yè)范圍的服務(wù)模型,并逐步改造所有的應(yīng)用為復(fù)合應(yīng)用,并期望實(shí)現(xiàn)價(jià)值鏈集成。由此可見(jiàn),對(duì)于圍繞汽車貸款審批流程的房貸和車貸系統(tǒng)SOA改造的目標(biāo)成熟度是L5;從企業(yè)范圍而言,希望現(xiàn)在房貸和車貸構(gòu)建SOA應(yīng)用,而逐步擴(kuò)展到整個(gè)企業(yè),所以其目標(biāo)成熟度先是L4,然后遷移到L5。
5. 示例場(chǎng)景的 SOA 采納步驟和價(jià)值分析 結(jié)合示例場(chǎng)景的特點(diǎn)和SOA轉(zhuǎn)型的需要,我們建議如下SOA采納步驟:
本系列文章的后續(xù)部分將圍繞SOA采納的第一步 -- 以汽車貸款審批流程為中心進(jìn)行SOA試點(diǎn) 為背景介紹SOA實(shí)施的其他步驟。
|
聯(lián)系客服