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