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