實施 SOA 的簡單步驟

 
 


級別: 初級

金 戈, IBM軟件部企業集成解決方案架構師, IBM 中國軟件開發實驗室 SOA設計中心
姚 輝 ([email protected]), IBM 中國SOA 設計中心高級工程師, IBM 中國軟件開發實驗室
趙 勇 ([email protected]), IBM 中國SOA 設計中心工程師, IBM 中國軟件開發實驗室
譚 佳, IBM 中國SOA 設計中心工程師, IBM 中國軟件開發實驗室

2006 年 12 月 26 日

《SOA 採納步驟和價值分析》是本系列文章的第一部分。本文前半部分首先概覽了實施 SOA 的簡單步驟,然後介紹了貫穿本系列文章的示例場景。在文章的後半部分着重介紹了IBM SOA 成熟度模型和SOA評估框架,並分析了示例場景中採納 SOA 的步驟和價值。

引言

以服務爲中心的業務活動管理與監控是最近出現的一種熱門的IT技術,它的目的在於幫助企業管理人員實時獲悉企業運營狀況,瞭解企業的戰略實施進展。 《SOA 快速指南 1 2 3》系列文章是筆者近年來在 SOA 項目實施中的經驗結晶。該系列文章結合一個汽車貸款流程, 介紹了在 SOA 的環境下如何基於 IBM 的現有產品構造業務活動管理解決方案,詳細闡述了每個實施步驟中使用的 IBM 的方法學、技術和產品。希望通過本文的介紹,能夠幫助讀者理清業務流程管理所包含的基本概念,並瞭解構建解決方案所需要的基本步驟。

 




回頁首

 

1. SOA 實施步驟總結

SOA 快速指南 1 2 3

本系列是 IBM 中國軟件開發實驗室 SOA 設計中心近年來在 SOA 項目實施中的經驗結晶。

 

 

SOA是一個既簡單又複雜的技術。簡單地說,SOA就是一組設計原則,這些設計原則既有SOA特有的,如服務是第一概念[CBDI],業務和IT對齊,爲靈活而構建;也有被早已被業界廣泛接受和使用的,如鬆散耦合、隔離關注、模塊化、可重用性等。複雜地說,SOA是由這些設計原則衍生出的各種技術,如SOA成熟度模型、服務建模方法學、SOA編程模型、企業服務總線、服務註冊庫等。

同樣,對SOA的採納(Adoption)形式也具有從簡單到複雜各種形式。一個分佈式企業IT系統全面向SOA轉型固然是SOA,而像HousingMap.com這樣將Google Map提供的Web服務和Craiglist提供的Web服務集成起來提供全新的業務模式也不能不算SOA。筆者作爲主要的技術人員主導或參加了若干SOA的實施案例,這裏面有短暫的SOA試點項目,也有大跨度的SOA實施。從實踐的角度而言,筆者認爲一般的SOA的實施項目應該包含如下步驟:

0. SOA採納步驟和價值分析:由於客戶現有IT環境和業務環境的不同,採納SOA的價值和採納的步驟也會相應不同。對任何一個企業或者是應用提供商,在採納SOA之前最好深刻理解SOA的內涵和外延,並客觀分析採納SOA的好處以及帶來的風險,並實際情況規劃SOA實施的步驟。

1. SOA監管:和傳統技術不同的是,SOA是一個橫向的技術,它不僅影響IT系統的設計者和開發者,它更需要改變業務部門對IT系統的看法,也需要運營部門改變系統運營的方式。幾乎所有的相關人的活動都會圍繞着服務模型和服務元數據。因此服務模型和服務元數據質量直接決定着企業向SOA轉型的效果。簡單的說,SOA監管通過建立適當組織和流程保證服務模型和服務元數據在創建時和運行時的質量。可以預見的是,一個企業採納了SOA後,SOA監管會成爲企業IT部門的重要任務之一。

2. 服務建模:如何根據服務建模方法學創建符合SOA設計原則的服務模型是實施SOA中及其重要的一步。發現服務候選、決定服務暴露和進行服務規約是這一步的重要內容。

3. 服務實現和架構設計:根據確定的服務模型,結合現有IT環境確定服務和服務組件的實現策略,並設計用於實現服務的基礎架構(如ESB、流程服務引擎、人工服務容器等)是也是實施SOA過程中及其重要的一步。服務組件劃分、服務實現決策和服務基礎設施設計是這一步的重要內容。

4. 以服務爲中心的開發和集成:在SOA的實施項目中,開發和集成的模式都會發生相應的變化,服務會成爲開發階段的中心概念。服務模型映射到編程模型,逐步實現服務,並在服務層次上進行持續的集成是這一階段的主要內容。

5. 服務管理:以上的步驟主要側重在功能層次上如何一步步實現SOA,而服務管理則側重於在SOA實施中如何實現非功能性需求,這包括服務性能、服務安全等。

本系列文章將圍繞SOA的實施步驟組織,但是SOA監管和服務管理不在本系列文章的範圍內。

 




回頁首

 

2. 示例場景介紹

本系列文章所涉及的場景是一個汽車貸款審批業務流程,從申請人提交申請到汽車銷售商接受貸款併發貨(或者申請人接收拒絕通知)。

從銀行的業務角度,該業務流程的外部參與者包括最終用戶(申請人、汽車銷售商)和合作伙伴(保險公司),內部參與者包括業務執行人員(信貸員)以及風險管理人員(信貸經理)。從技術實現的角度,該業務流程既包含自動化的內部功能(查詢存貸款記錄)和外部功能(保險公司提供擔保),也包括人工活動(信貸經理審批)。因此,該場景具備一般業務流程的典型性,基於該場景的SOA實施示例具備更大的借鑑意義。


圖1:汽車貸款審批流程


圖2:現有業務環境
圖2:現有業務環境

從圖2可以看出,信貸員是整個業務流程的樞紐,負責與客戶、信貸經理、相關應用系統打交道。這種業務模式既增大了信貸員的工作強度,也增加了過程中的操作風險以及道德風險。


圖3:現有 IT 環境
圖3:現有 IT 環境

從圖3可以看出,在業務流程中起到樞紐作用的信貸員,通過不同的方式訪問不同的系統,獲取申請人的相關信息,同時通過電子辦公系統向信貸經理提交貸款審批申請。多樣化的人機界面既增加了對信貸員的IT技能要求,也極大的降低了信貸員的工作效率。

 




回頁首

 

3. SOA 評估框架和 SOA 成熟度模型簡介

如上所述,SOA是由一些設計原則衍生出的一系列技術。和傳統的方法不同的是,SOA的這些衍生技術遍佈企業IT生命週期,以及企業IT系統的各個層次。爲了評估一個企業的實施SOA的程度,我們需要一個覆蓋全面的評估標準和一種對成熟度的劃分。SOA評估框架就是這裏說的評估標準,而SOA成熟度模型就是一種對SOA成熟度的劃分。SOA的評估框架和SOA成熟度模型是瞭解企業IT和業務環境現狀,分析企業採納SOA的步驟和價值的重要工具。這裏我們以IBM的SOA評估框架和SOA成熟度模型爲例進行介紹。

IBM的SOA評估框架主要分析企業IT系統在如下四個方面的特性:

1. 組織和流程:企業是否有實施SOA的經驗,實施SOA的範圍多大,企業是否規劃過需要實現的SOA的能力,業務部門是否理解SOA實施的價值和過程,特別是業務部門參與重要性,是否有系統的方法指導服務的發現和設計,業務部門在服務的發現和設計中參與的程度如何;

2. 應用:目前應用如何暴露可重用的邏輯?應用間連通的實時和異構特性如何?企業開始在多大構建複合應用?

3. 架構:目前企業應用集成現狀?企業應用的組件化程度如何?是否存在服務模型?範圍多大?

4. 基礎架構:基礎架構如何保持可擴展性和靈活性保證滿足業務部門的需要?基礎設施如何響應業務流程性能的變化?是否存在統一的安全架構和規範?

同時,IBM的SOA成熟度模型將SOA成熟度劃分爲7個層次:

L1. 孤立的:大多數爲孤立應用,存在集成也基本上以數據集成爲主;當需求發生變化時,需要大量的瑣碎的架構調整;

L2. 集成的:應用間存在大量集成,但是以點到點的連接方式爲主,應用程序的重構主要通過數據集成完成;

L3. 組件化的:將主要的或關鍵的應用從功能角度進行了組件劃分,原有的J2EE/.Net等應用通過重構實現這些組件,組件間的集成通過組件接口和相互間的契約完成;

L4. 簡單服務:存在業務部門內的服務模型和構建在服務上的業務流程集成;

L5. 組合服務:存在企業範圍內和企業間的服務模型,已經在服務模型基礎上完成價值鏈集成;

L6. 虛擬化服務:基礎設施如服務器和存儲已經完成虛擬化,服務運行在這些虛擬化的基礎設施之上;基礎設施、服務組件、服務、業務流程被極大解耦;通過對基礎設施的監控和管理來保證服務質量;

L7. 動態配置服務:服務可以根據業務策略和IT策略進行動態組裝;

 




回頁首

 

4. 示例場景的 SOA 現有成熟度和目標成熟度

我們對示例場景中SOA現有成熟度分析總結如下:

1. 組織和流程:無論是在貸款業務部門,還是在其他業務部門,都沒有進行過SOA的實施;業務人員普遍認爲SOA是技術層面的事情,是IT部門的事情,業務部門在SOA實施中沒有任何責任;

2. 應用:構建在主機上的核心銀行系統業務邏輯體現爲CICS的事務,業務邏輯劃分清晰,但是邏輯和表示緊耦合,而且其業務邏輯劃分和整體需求有一定差距,該銀行已經構建EAI的基礎設施,核心銀行系統的業務邏輯可以通過EAI中的消息總線訪問;房貸和車貸系統分佈構建在J2EE和.Net平臺之上,設計系統時對組件化考慮的很充分,主要的業務邏輯都構建在公共的組件基礎之上,如果其他系統需要訪問房貸和車貸系統,需要進行點到點的集成;保險公司擔保網關是外部系統,已經服務化。

3. 架構:企業消息總線可以連通除房貸和車貸系統以外的大部分系統,但是消息總線中介能力不強,主要集中在消息轉換,對重複業務邏輯的訪問需要應用層處理;

4. 基礎架構:服務器、存儲和網絡設施異構性很大,業務系統性能的調控相當剛性;已經具有統一的安全架構,如認證、授權和加密;

綜合分析可見,對於整體企業而言其SOA成熟度,位於L2和L3之間;房貸和車貸系統SOA成熟度位於L3。

對於SOA的轉型,該企業的近期目標是希望能夠在現在的現有的房貸和車貸系統之上構建複合應用以支持汽車貸款審批流程;而該企業的長遠目標是構建企業範圍的服務模型,並逐步改造所有的應用爲複合應用,並期望實現價值鏈集成。由此可見,對於圍繞汽車貸款審批流程的房貸和車貸系統SOA改造的目標成熟度是L5;從企業範圍而言,希望現在房貸和車貸構建SOA應用,而逐步擴展到整個企業,所以其目標成熟度先是L4,然後遷移到L5。

 




回頁首

 

5. 示例場景的 SOA 採納步驟和價值分析

結合示例場景的特點和SOA轉型的需要,我們建議如下SOA採納步驟:

  • 第一步:以汽車貸款審批流程爲中心進行SOA試點 ( L2/3 -> L4 )在這一步中,圍繞汽車貸款審批流程進行服務建模分析,並在現有系統上構建企業服務總線。這一步的主要目標有四:第一)測量SOA可能帶來的業務層面的價值,通過服務組裝完成汽車貸款流程,來驗證如何通過服務中介、服務替換和服務重新組裝適應可能的業務變化,從而實現業務流程從建模'自動化'監控'優化的全生命週期;第二)測量SOA可能帶來的IT層面價值,通過將已有系統暴露爲服務,並構建ESB實現虛擬化的服務,來驗證將現有系統暴露爲服務的技術可行性,驗證ESB如何通過實現廣泛連接性、驗證如何通過服務中介完成重複邏輯合併和異構系統集成、驗證如何SOA架構如何適應IT層面的變化如系統集中、系統合併和系統升級;第三)深化IT部門對實施SOA的技術理解,包括服務建模方法學、SOA架構設計、相關技術和產品的成熟度(安全,性能,…); 第四)深化IT部門和業務部門對實施SOA的方法和價值理解,包括SOA背後的價值驅動,如何建立SOA組織和流程進行SOA監管等;
  • 第二步:重構貸款系統以實現貸款部門的服務模型,並將業務流程實現爲複合應用 ( L2/3 -> L4 ) 在這一步中,圍繞貸款部門的業務流程進行服務建模(這不僅包括貸款業務部門內部的服務,還包括可能訪問到的核心銀行系統的服務),並將主要業務流程遷移爲複合應用。這一步的主要目標有三:第一)繼續深化IT部門對實施SOA的技術理解,並培養SOA實施的各層次的技能;爲企業範圍內的SOA實施做技術準備,如各種SOA實施技術規範-SOA參考架構,服務模型規範,企業服務總線規範等; 第二)繼續深化IT部門和業務部門對實施SOA方法和價值理解,初步建立業務部門內的SOA監管組織、流程和基礎設施(如服務註冊庫)等;第三)驗證現有SOA技術和產品在大規模應用時的成熟度;
  • 第三步:以消息總線的改造爲中心,構建SOA監管組織和流程,並創建企業服務模型和企業範圍內SOA的基礎架構;( L4 -> L5) 這一步選擇以消息總線爲中心的原因在於,1)消息總線涉及主要的業務邏輯和業務流程,而且該企業在構建消息總線時已經對核心的業務進行了必要的調查和分析,這是服務建模的良好基礎;2)消息總線是主要的應用集成設施,這是企業服務總線構建的良好基礎。通過這一步驟,企業範圍的SOA基礎架構基本形成,這包括SOA監管組織和流程、企業範圍內服務模型、企業服務總線和SOA參考架構;
  • 第四步:逐步遷移主要業務流程爲複合應用,並完善SOA監管和服務模型;(L4->L5) 這一步主要是在前一步的建立的SOA基礎架構之上逐步將應用遷移到複合應用。實際上第三步和第四步應該是融和在一起的;
  • 第五步:圍繞價值鏈整合實現快速響應IT系統; (L5) 當完成SOA基礎設施建設和複合應用遷移後,企業已經具備條件進行流程優化和價值鏈整合。這種條件下,無論是IT層面的調整,還是業務層面的調整,都可以通過服務模型和企業服務總線隔離變化,從而使用盡量小的代價完成對變化的適應,也即達到快速響應的IT。

本系列文章的後續部分將圍繞SOA採納的第一步 -- 以汽車貸款審批流程爲中心進行SOA試點 爲背景介紹SOA實施的其他步驟。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章