級別: 初級
姚 輝 (yaohui@cn.ibm.com), IBM 中國SOA 設計中心高級工程師, IBM 中國軟件開發(fā)實驗室 金 戈, IBM軟件部企業(yè)集成解決方案架構師, IBM 中國軟件開發(fā)實驗室 SOA設計中心 趙 勇 (zhaoyong@cn.ibm.com), IBM 中國SOA 設計中心工程師, IBM 中國軟件開發(fā)實驗室
2007 年 1 月 31 日
《服務實現(xiàn)及架構設計》是本系列文章的第三部分。在第二部分,我們完成了服務建模的前兩個步驟:服務發(fā)現(xiàn)和服務規(guī)約。本文的目的是進行服務建模的第三部分:服務實現(xiàn),并完成架構設計的工作。第二部分已經(jīng)整體的闡述了服務建模的概念和方法,本文就不再重復,因此首先介紹IBM的SOA的參考架構,作為架構設計的指導;然后結合場景的業(yè)務目標以及IT環(huán)境設計試點項目的架構,并重點突出關鍵點的架構決策。
引言
以服務為中心的業(yè)務活動管理與監(jiān)控是最近出現(xiàn)的一種熱門的IT技術,它的目的在于幫助企業(yè)管理人員實時獲悉企業(yè)運營狀況,了解企業(yè)的戰(zhàn)略實施進展。 《SOA 快速指南 1 2 3》系列文章是筆者近年來在 SOA 項目實施中的經(jīng)驗結晶。該系列文章結合一個汽車貸款流程, 介紹了在 SOA 的環(huán)境下如何基于 IBM 的現(xiàn)有產(chǎn)品構造業(yè)務活動管理解決方案,詳細闡述了每個實施步驟中使用的 IBM 的方法學、技術和產(chǎn)品。希望通過本文的介紹,能夠幫助讀者理清業(yè)務流程管理所包含的基本概念,并了解構建解決方案所需要的基本步驟。
1. SOA參考架構
 |
SOA 快速指南 1 2 3
本系列是 IBM 中國軟件開發(fā)實驗室 SOA 設計中心近年來在 SOA 項目實施中的經(jīng)驗結晶。
|
|
SOA參考架構是一種組織SOA的構建元素--服務的方式,IBM希望通過這種參考架構為企業(yè)架構提供一種指導和參考,使得新的需求能夠更快的得到響應。參考架構如圖1所示。
圖1:SOA參考架構
其中左側的綠色部分表示建模和組裝,中間的藍色部分表示部署,右邊的深藍色部門表示管理。中樞部分是企業(yè)服務總線(Enterprise Service Bus),在服務之間提供連通性支持。
參考架構描述了企業(yè)范圍內(nèi)SOA方案所需要的關鍵能力。
工具是集成架構的基本組件,SOA參考架構則提供了開發(fā)服務和業(yè)務創(chuàng)新優(yōu)化服務。開發(fā)服務用于實現(xiàn)新開發(fā)的組件以及重用基礎架構的能力;業(yè)務創(chuàng)新優(yōu)化服務用于從IT和業(yè)務兩個層面來監(jiān)控和管理運行情況。
企業(yè)服務總線是SOA參考架構的核心。它為整個架構范圍內(nèi)所有服務提供相互通訊的能力。其中傳輸服務、事件服務以及中介服務都是通過ESB來提供的。
交互服務將IT的功能和數(shù)據(jù)傳遞給最終用戶,并滿足用戶特定的使用習慣。
流程服務提供服務控制能力,將多個服務串起來實現(xiàn)一個業(yè)務流程。
信息服務通過聯(lián)合、復制和轉換來解決基于不同實現(xiàn)方式的不同數(shù)據(jù)源之間的數(shù)據(jù)共享難題。
SOA解決方案中的很多服務都是有已有應用提供的,訪問服務提供已有應用、打包應用程序與ESB之間的橋接能力,使得已有應用的功能以服務的形式對外暴露出來。
在業(yè)務流程需要與外部的合作伙伴、供應商交互的情況下,伙伴服務提供一組文檔、協(xié)議以及伙伴管理的能力。
應用服務為新的應用組件提供運行時服務。
作為所有能力的基礎,基礎服務用于優(yōu)化通過率、性能和可靠性。
IT服務管理服務包括對服務、應用和資源的管理和保護能力,如通過負載均衡來有效的分配系統(tǒng)計算資源。
SOA參考架構是一個完整的企業(yè)架構,可以覆蓋整個企業(yè)范圍內(nèi)集成的需求。參考架構中的服務通過模塊化的方式進行集成,因此SOA的實現(xiàn)可以從一個小的項目來啟動,在新的項目實施的時候,新的功能能夠輕松的加到架構中,通過漸進的方式在企業(yè)范圍內(nèi)擴大集成的范圍。
2. 服務實現(xiàn)
無論怎樣進行服務建模,服務最終都將由不同的服務組件來實現(xiàn)。因此服務實現(xiàn)是銜接服務建模和組件詳細設計的關鍵步驟。正如我們在第二部分提到過,服務實現(xiàn)首先將服務分配到相應的服務組件,然后逐個分析服務實現(xiàn)方式并進行技術可行性的驗證。
在服務發(fā)現(xiàn)的過程中,我們根據(jù)業(yè)務領域的分析結果將服務按照業(yè)務范圍進行分類。在服務實現(xiàn)的過程中,將業(yè)務范圍直接映射到服務組件,從而實現(xiàn)業(yè)務與IT的一致性。
服務實現(xiàn)的方式如圖2所示。"客戶服務"業(yè)務組件將實現(xiàn)貸款流程、查詢存貸款記錄、發(fā)放貸款等服務。"風險管理"業(yè)務組件將實現(xiàn)評估信用等級、審批、擔保等服務。
在我們的示例中,對于服務實現(xiàn)方式的選擇,可以分為以下幾類:
- 映射已有功能服務:如查詢存款記錄、查詢貸款記錄和擔保。其好處非常明顯,就是重用已有功能,保護企業(yè)的投資;避免重復功能的存在,降低維護成本。但是在選擇的過程中,需要考慮傳輸協(xié)議、消息格式的差異,是否可以通過引入中介來彌合服務調用者和實現(xiàn)者之間的差距。需要特別提出的是擔保服務,該服務由合作伙伴提供,通過中介將外部的服務進行映射(還需要重點考慮安全性相關的問題),在業(yè)務流程中就可以無縫的使用了。
- 新建流程服務:如汽車貸款流程、評估信用等級。前者是一個長流程(Long Running),由于有人工活動的參與,使得長流程的執(zhí)行不能在可預期的短時間(如:幾秒鐘)內(nèi)完成,需要相關人員在完成自己的任務以后,流程才能進入下一步,常常是幾天甚至幾個月才能完成整個流程;后者是一個短流程(Micro Flow)。在傳統(tǒng)的方案中,業(yè)務流程通常采用硬編碼的方式將多個功能組裝起來;與之相對,我們推薦采用工作流(如BPEL)的方式將服務組裝起來,從而達到靈活組裝、靈活應對變化的目的。
- 新建人工服務:如審批。人工服務是相對于自動化服務而言。自動化服務通常由IT系統(tǒng)來提供,不用人為的干預;人工服務則是由企業(yè)的員工、合作伙伴員工或者最終用戶來執(zhí)行,但是它同樣具備完整的服務描述。采用統(tǒng)一的服務描述來定義人工服務,可以將人工服務與自動化服務統(tǒng)一對待,除了可以在多個應用之間重用人工服務以外,還可以在服務實現(xiàn)從人工活動遷移到IT系統(tǒng)的過程中保持系統(tǒng)的柔性。
- 新建業(yè)務規(guī)則服務:如計算信用等級。由于這部分功能不穩(wěn)定,會隨著國民經(jīng)濟的發(fā)展、物價水平以及社會環(huán)境的變化而變化。將易于變化的這部分邏輯從穩(wěn)定的架構中剝離出來,可以增強IT應對業(yè)務變化的能力。采用業(yè)務規(guī)則來實現(xiàn)相應的服務,可以相對靈活的進行修改來適應業(yè)務的變化,業(yè)務規(guī)則引擎已經(jīng)在大量的行業(yè)得到廣泛的應用。
- 新建功能服務:如確認購車價格。針對以前沒有的功能,或者以前采用人工方式完成的功能,現(xiàn)在可以引入自動化服務來提高業(yè)務流程的運行效率。在這里實現(xiàn)了新建功能服務以后,也能在其他的應用中逐步引入,從而達到在企業(yè)范圍內(nèi)重用的目的。
圖2:服務實現(xiàn)
3. 架構設計
完成了服務實現(xiàn)的決策,也就對系統(tǒng)的架構提出了明確的需求。不同方式實現(xiàn)的服務,需要系統(tǒng)架構提供不同的能力,例如流程引擎、人工服務引擎以及業(yè)務規(guī)則引擎等。參考IBM的SOA參考架構,我們設計一下系統(tǒng)架構,將各種不同的服務實現(xiàn)的元素部署到系統(tǒng)架構中,如圖4所示。
圖4:系統(tǒng)架構
架構關鍵點分析:
ESB實現(xiàn)機制:
選擇一:WebSphere Enterprise Service Bus 優(yōu)點:內(nèi)置的轉換、路由中介,并且可以通過客戶化中介擴展;采用標準的編程模型(SCA, SDO)。
選擇二:WebSphere Message Broker
優(yōu)點:靈活的轉換、路由能力;對負載均衡、高可用性上有很好的支持;支持基于MQ的可靠傳輸;支持多樣化的連接方式。
結論:此場景主要是業(yè)務部門級別應用,涉及的應用大多數(shù)都采用標準化技術,如:XML、Web Service等,也沒有特別的分布式應用的需求。因此采用選擇一,并利用WebSphere Adapter for CICS將非標準化的CICS應用連接到WebSphere Enterprise Service Bus。在隨著企業(yè)向SOA全面轉型的以后,建議引入Message Broker作為企業(yè)服務總線的骨干,當前方案中的WebSphere Enterprise Bus作為一個業(yè)務部門級別的節(jié)點接入骨干,形成整個企業(yè)的服務總線。
應用服務的集成:
選擇一:Web Service
優(yōu)點:支持分布式調用;跨平臺;支持開放性標準。
選擇二:EJB
優(yōu)點:支持分布式調用;支持不同的J2EE中間件平臺。
結論:企業(yè)服務總線是基于J2EE的實現(xiàn),采用EJB的方式暴露應用服務,具備更好的性能。因此選擇方案二。即使將來希望采用Web Service方式,在WebSphere Application Server上也能夠很方便的將EJB(Session Bean)暴露為Web Service。
貸款系統(tǒng)的集成:
選擇一:通過Web Service訪問貸款系統(tǒng)。
優(yōu)點:支持開放性標準。
選擇二:直接通過JDBC訪問貸款系統(tǒng)數(shù)據(jù)庫。
優(yōu)點:支持分布式調用;性能較高。
結論:通過Web Service 訪問貸款系統(tǒng),應用層訪問的方式,保證業(yè)務的完整性,隔離具體的業(yè)務實現(xiàn)。同時避免直接訪問數(shù)據(jù)庫帶來的安全策略等問題。因此采用選擇一。
最終,方案的架構涉及以下IBM的產(chǎn)品。
IBM WebSphere Process Server提供的流程引擎、人工任務引擎和業(yè)務規(guī)則引擎為流程服務、人工服務以及基于業(yè)務規(guī)則的服務提供運行環(huán)境。
IBM WebSphere Enterprise Service Bus提供的連通性能力以及轉換、路由中介能力為企業(yè)服務總線提供運行環(huán)境。
IBM WebSphere Business Adapter 的連通性能力幫助我們將基于CICS的核心系統(tǒng)功能暴露為功能服務。
IBM WebSphere Application Server提供的J2EE容器為新開發(fā)的功能服務提供運行環(huán)境。
為了驗證架構的可擴展性,可以引入一些變化的場景來分析。
保險公司的多樣化支持
由于各家保險公司的IT建設水平參差不齊,因此架構需要能夠支持不同形式的接入。
對于能夠獨立提供服務網(wǎng)關的保險公司,采用Web Service或者socket的方式通過ESB接入。
對于不能提供服務網(wǎng)關的保險公司,可以實現(xiàn)一個人工服務,該人工服務遵循與合作伙伴服務同樣的服務規(guī)約??梢宰尡kU公司的人員訪問該人工服務,或者由銀行職員通過傳真、電話確認信息,然后訪問人工服務。
上面這兩種形式的擔保服務,對于業(yè)務流程是透明的,ESB會根據(jù)用戶選擇的保險公司,將請求路由到保險公司的服務網(wǎng)關或者人工服務。在保險公司建立或者升級自己的服務網(wǎng)關的時候,系統(tǒng)只需要配置或者修改ESB就可以滿足業(yè)務的需求。
評估信用等級的變化
現(xiàn)階段,國內(nèi)還沒有統(tǒng)一的信用評估方案,隨著相應的業(yè)務環(huán)境變化導致對信用評估帶來的變化,是可以預計到的。
短期的變化可能是信用評估的規(guī)則發(fā)生變化。由于每年各地的平均收入水平變化,信用評估的規(guī)則可能相應的調整?;跇I(yè)務規(guī)則實現(xiàn)的計算信用等級服務,可以靈活的進行規(guī)則的修改。
長期的變化可能是引入統(tǒng)一的信用評估平臺。由國家或者第三方機構提供一個全國范圍內(nèi)統(tǒng)一的信用評估平臺。只需要將現(xiàn)有的評估信用等級業(yè)務子流程替換為外部的統(tǒng)一信用評估平臺提供的合作伙伴服務,通過ESB來彌合傳輸協(xié)議和消息格式的不同,整個業(yè)務流程依然保持不變。
通過對上述變化場景的簡單分析,我們驗證了架構的可擴展性。當然這種可擴展性只能是在一定的程度上滿足業(yè)務的變化,也只有通過對業(yè)務變化的前瞻性分析,對系統(tǒng)架構進行修正,才能更好的保證架構的可擴展性。這整個過程是一個迭代進行的過程。
參考資料
作者簡介
 |
|
 |
姚輝,IBM 中國軟件開發(fā)實驗室 IBM 中國SOA 設計中心高級工程師。具有多年的面向對象設計與開發(fā)經(jīng)驗,目前專注于 SOA 的相關理論與項目實踐。對 EA、SOA、BPM、EAI 等領域有濃厚的興趣。聯(lián)系方式:yaohui@cn.ibm.com。
|
 |
|
 |
金戈, IBM 中國軟件開發(fā)實驗室 IBM 中國 SOA 設計中心客戶服務經(jīng)理, IBM 中國 SOA 設計中心架構師。多年軟件設計和解決方案設計經(jīng)驗,精通軟件工程、分布式中間件、Linux 以及系統(tǒng)管理,并擁有豐富的 Linux 和 SOA 架構、設計、開發(fā)技術經(jīng)驗。聯(lián)系方式:jinge@cn.ibm.com。
|
 |
|
 |
趙勇,IBM 中國軟件開發(fā)實驗室 IBM 中國 SOA 設計中心工程師。具有多年的 J2EE 和 Web Service 開發(fā)經(jīng)驗,目前專注于 SOA 項目實踐和相關的理論,工具的研究和開發(fā)。對 ESB、SCA、BPEL、自動化測試和極限編程等技術有濃厚的興趣。聯(lián)系方式:zhaoyong@cn.ibm.com。
|
|