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