HENXUSOA的業(yè)務(wù)規(guī)劃與建模方法-09(實踐案例介紹“汽車貸款”)_第1頁
HENXUSOA的業(yè)務(wù)規(guī)劃與建模方法-09(實踐案例介紹“汽車貸款”)_第2頁
HENXUSOA的業(yè)務(wù)規(guī)劃與建模方法-09(實踐案例介紹“汽車貸款”)_第3頁
HENXUSOA的業(yè)務(wù)規(guī)劃與建模方法-09(實踐案例介紹“汽車貸款”)_第4頁
HENXUSOA的業(yè)務(wù)規(guī)劃與建模方法-09(實踐案例介紹“汽車貸款”)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、HENXU-SOA的業(yè)務(wù)規(guī)劃和建模方法_09(實踐案例介紹“汽車貸款”).txt54就讓昨日成流水,就讓往事隨風(fēng)飛,今日的杯中別再盛著昨日的殘痕;唯有珍惜現(xiàn)在,才能收獲明天。 本文由war007貢獻 pdf文檔可能在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機查看。 面向服務(wù)體系架構(gòu)的業(yè)務(wù)規(guī)劃和建模方法 實踐案例介紹汽車貸款 SOA架構(gòu)項目的模式 發(fā)現(xiàn) 構(gòu)建和測試 組合 流程整合 人員整合 信息整合和管理 收集需求 建模和仿真 設(shè)計 財務(wù)透明 商業(yè)/IT 調(diào)整 過程控制 應(yīng)用程序和服務(wù)管理 身份識別和權(quán)限管理 監(jiān)控商業(yè)標準 北京恒訊時代信息技術(shù)有限公司 2 SOA 實施步驟總

2、結(jié) 0. SOA采納步驟和價值分析 1. SOA監(jiān)管 2. 服務(wù)建模 3. 服務(wù)實現(xiàn)和架構(gòu)設(shè)計 4. 以服務(wù)為中心的開發(fā)和集成 5. 服務(wù)管理 北京恒訊時代信息技術(shù)有限公司 3 SOA采納步驟和價值分析-業(yè)務(wù)場景介紹 北京恒訊時代信息技術(shù)有限公司 4 SOA采納步驟和價值分析-業(yè)務(wù)場景介紹(續(xù)) 在業(yè)務(wù)流程中起到樞紐作用的信貸員,通過不同的方式訪問不同 的系統(tǒng),獲取申請人的相關(guān)信息,同時通過電子辦公系統(tǒng)向信貸 經(jīng)理提交貸款審批申請.多樣化的人機界面既增加了對信貸員的 IT技能要求,也極大的降低了信貸員的工作效率. 北京恒訊時代信息技術(shù)有限公司 5 SOA采納步驟和價值分析-SOA 評估框架和

3、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ù)部

4、 門的需要?基礎(chǔ)設(shè)施如何響應(yīng)業(yè)務(wù)流程性能的變化?是否存在統(tǒng)一的 安全架構(gòu)和規(guī)范? 北京恒訊時代信息技術(shù)有限公司 6 SOA采納步驟和價值分析-REVIEW:SOA成熟度模型將 SOA成熟度劃分為7個層次: L1. 孤立的:大多數(shù)為孤立應(yīng)用,存在集成也基本上以數(shù)據(jù)集成為主;當(dāng)需求 發(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. 簡

5、單服務(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)組裝; 北京恒訊時代信息技術(shù)有限公司 7 SOA采納步驟和價值分析-示例場景的 SOA 現(xiàn)有成熟 度和目標成熟度分析 1. 組織和流程:無論是在貸款業(yè)務(wù)部門,還是在其他業(yè)務(wù)部門,都沒有進行 過SO

6、A的實施;業(yè)務(wù)人員普遍認為SOA是技術(shù)層面的事情,是IT部門的事情,業(yè) 務(wù)部門在SOA實施中沒有任何責(zé)任; 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),需要進行點到點的集成;保險公司擔(dān) 保網(wǎng)關(guān)是外部系統(tǒng),已經(jīng)服務(wù)化. 3. 架構(gòu):企業(yè)消息

7、總線可以連通除房貸和車貸系統(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)控相 當(dāng)剛性;已經(jīng)具有統(tǒng)一的安全架構(gòu),如認證,授權(quán)和加密; 綜合分析可見,對于整體企業(yè)而言其SOA成熟度,位于L2和L3之間;房貸和車 貸系統(tǒng)SOA成熟度位于L3. 北京恒訊時代信息技術(shù)有限公司 8 SOA采納步驟和價值分析-示例場景的 SOA 采納步驟 和價值分析 第一步:以汽車貸款審批流程為中心進行SOA試點 ( L2/3 - L4 ) 第二步:重構(gòu)貸款系統(tǒng)以實現(xiàn)貸款部門的服務(wù)模型,并將業(yè)務(wù)流

8、程實現(xiàn)為 復(fù)合應(yīng)用 ( L2/3 - L4 ) 第三步:以消息總線的改造為中心,構(gòu)建SOA監(jiān)管組織和流程,并創(chuàng)建企業(yè) 服務(wù)模型和企業(yè)范圍內(nèi)SOA的基礎(chǔ)架構(gòu);( L4 - L5) 第四步:逐步遷移主要業(yè)務(wù)流程為復(fù)合應(yīng)用,并完善SOA監(jiān)管和服務(wù)模型; (L4-L5) 這一步主要是在前一步的建立的SOA基礎(chǔ)架構(gòu)之上逐步將應(yīng)用遷 移到復(fù)合應(yīng)用.實際上第三步和第四步應(yīng)該是融和在一起的; 第五步:圍繞價值鏈整合實現(xiàn)快速響應(yīng)IT系統(tǒng); (L5) 當(dāng)完成SOA基礎(chǔ)設(shè)施 建設(shè)和復(fù)合應(yīng)用遷移后,企業(yè)已經(jīng)具備條件進行流程優(yōu)化和價值鏈整合. 這種條件下,無論是IT層面的調(diào)整,還是業(yè)務(wù)層面的調(diào)整,都可以通過服 務(wù)模型和

9、企業(yè)服務(wù)總線隔離變化,從而使用盡量小的代價完成對變化的適 應(yīng),也即達到快速響應(yīng)的IT. 北京恒訊時代信息技術(shù)有限公司 9 SOA 實施步驟總結(jié) 0. SOA采納步驟和價值分析 1. SOA監(jiān)管 2. 服務(wù)建模 3. 服務(wù)實現(xiàn)和架構(gòu)設(shè)計 4. 以服務(wù)為中心的開發(fā)和集成 5. 服務(wù)管理 北京恒訊時代信息技術(shù)有限公司 10 Review:服務(wù)建模方法論介紹 需要特別指出的是,SOMA的出現(xiàn)并不是要替代OOAD或者CBD,正如CBD 需要借助OOAD一樣,SOMA也要借助OOAD和CBD進行實現(xiàn)層面的建模. 與OOAD和CBD相比較而言,SOMA貫穿整個IT建設(shè)的生命周期,在項目 規(guī)劃,設(shè)計,實施,運

10、行中都起到重要的作用.本項目就不展開闡述 了,相關(guān)信息可見參考資料. SOMA另外一個顯著的特點就是將IT與業(yè)務(wù)對齊.在具體的實施過程 中,SOMA將業(yè)務(wù)特性,如:業(yè)務(wù)目標,關(guān)鍵業(yè)務(wù)指標等,延伸到IT的 分析和架構(gòu)決策過程,從而縮小業(yè)務(wù)與IT之間的差距.具體來看,業(yè) 務(wù)組件模型(或者類似業(yè)務(wù)分析方法論的結(jié)果),端到端的業(yè)務(wù)流程 以及關(guān)鍵業(yè)務(wù)指目標是SOMA的三項主要輸入,SOA的實現(xiàn)則是SOA的輸 出,從這也可以看出SOMA的定位是在業(yè)務(wù)和IT之間. 北京恒訊時代信息技術(shù)有限公司 11 服務(wù)建模-Review:SOMA分為服務(wù)發(fā)現(xiàn),服務(wù)規(guī)約以 及服務(wù)實現(xiàn)三個階段(服務(wù)發(fā)現(xiàn)) 服務(wù)發(fā)現(xiàn):采用自上

11、而下,自下而上和中間對齊的方式,得到服務(wù) 的候選者. 自上而下 (業(yè)務(wù)領(lǐng)域分解)方式從業(yè)務(wù)著手進行分析,將業(yè)務(wù)進行領(lǐng) 域分解,流程分解,以及進行變化分析. 自下而上(已有資產(chǎn)分析)方式的目的是利用已有資產(chǎn)來實現(xiàn)服務(wù),已 有資產(chǎn)包括:已有系統(tǒng),套裝或定制應(yīng)用,行業(yè)規(guī)范或業(yè)務(wù)模型等. 中間對齊(業(yè)務(wù)目標建模)方式的目的是幫助發(fā)現(xiàn)與業(yè)務(wù)對齊的服務(wù), 并確保關(guān)鍵的服務(wù)在流程分解和已有資產(chǎn)分析的過程中沒有被遺漏. 北京恒訊時代信息技術(shù)有限公司 12 服務(wù)建模-Review:SOMA分為服務(wù)發(fā)現(xiàn),服務(wù)規(guī)約以 及服務(wù)實現(xiàn)三個階段(服務(wù)規(guī)范,服務(wù)的實現(xiàn)) 服務(wù)規(guī)約:定義實現(xiàn)服務(wù)的服務(wù)組件的細節(jié),包括,數(shù)據(jù),規(guī)

12、則,服務(wù),可配置概要,可能的 變更,同時還會涉及到消息,事件的定義和管理. 經(jīng)過服務(wù)發(fā)現(xiàn)的階段,得到候選服務(wù)目錄,接下來就需要決定暴露哪些服務(wù).理論上所有的服 務(wù)候選者都可以暴露為服務(wù),但是一旦暴露為服務(wù),該服務(wù)候選者就必須滿足附加的安全性, 性能等方面的要求,企業(yè)還必須為服務(wù)的規(guī)劃,設(shè)計,開發(fā),維護,監(jiān)管支付額外的開支,因 此會根據(jù)一定的規(guī)則來決定將哪些服務(wù)候選者暴露為服務(wù).這些規(guī)則包含以下幾個方面: 業(yè)務(wù)對齊:該服務(wù)候選者可以支持相關(guān)的業(yè)務(wù)流程和業(yè)務(wù)目標. 可組裝:該服務(wù)候選者滿足技術(shù)中立,自包含以及無狀態(tài)等特點,同時還滿足復(fù)合應(yīng)用的相 關(guān)非功能性需求. 可重用:該服務(wù)候選者可以在不同的應(yīng)

13、用,流程中重用,從而減少重復(fù)的功能實現(xiàn),降低開 發(fā)和維護的成本. 基于企業(yè)應(yīng)用開發(fā)的經(jīng)驗,還可以有其他一些方面的考慮.在決定暴露特定的服務(wù)候選者為服 務(wù)以后,服務(wù)規(guī)約還需要定義服務(wù)的消息,非功能性需求以及服務(wù)之間的依賴關(guān)系,組合關(guān)系. 服務(wù)實現(xiàn):根據(jù)對業(yè)務(wù)領(lǐng)域的理解和現(xiàn)有IT系統(tǒng)的分析,將服務(wù)的實現(xiàn)分配到相應(yīng)的服務(wù)組 件,并決定服務(wù)的實現(xiàn)方式.具體的實現(xiàn)方式,可以由已有系統(tǒng)暴露相關(guān)功能為服務(wù),或者重 新開發(fā)相關(guān)功能提供服務(wù),也可以由合作伙伴來提供服務(wù).無論采用哪種方式,都需要對于關(guān) 鍵點進行技術(shù)可行性的分析. 北京恒訊時代信息技術(shù)有限公司 13 服務(wù)建模-流程建模 定義和建模業(yè)務(wù)流程是提升業(yè)績

14、的關(guān)鍵因素.業(yè)務(wù)流程是一種可變的交互模 式,當(dāng)某個組織在實現(xiàn)特定的業(yè)務(wù)目標時,在該組織的組件及其環(huán)境之間發(fā)生 了這些交互.業(yè)務(wù)流程通常很復(fù)雜,因為在應(yīng)對獨特而瞬息萬變的環(huán)境時,人 們會不斷進行大量的更改.沒有正式的流程文檔和流程管理系統(tǒng)的話,這些流 程復(fù)雜性就會使組織遇到不必要的障礙和瓶頸.一個良好構(gòu)建的業(yè)務(wù)流程模型 可以幫助您定位和排除那些隱藏的低效,高成本以及帶來延遲的業(yè)務(wù)活動. 下面比較以下流程建模與服務(wù)建模的關(guān)系 首先,進行著兩項活動的角色有明顯的不同,流程建模一般由業(yè)務(wù)人員或者業(yè)務(wù)咨詢 專家進行,而服務(wù)建模由SOA架構(gòu)師在業(yè)務(wù)專員的支持下進行. 其次,兩項活動看待研究對象的角度不同.

15、流程建模從組織結(jié)構(gòu),業(yè)務(wù)流程及相關(guān)資 源的角度來看待業(yè)務(wù),流程建模關(guān)注業(yè)務(wù)活動之間的流動;服務(wù)建模則利用服務(wù) 業(yè)務(wù)與IT的契約來分析業(yè)務(wù),服務(wù)建模關(guān)注業(yè)務(wù)活動之間的層次化和組合關(guān)系. 除了上面兩點不同以外,這兩項活動還是相互依賴,迭代進行的.粗粒度的流程模型 是服務(wù)建模的重要輸入之一,幫助SOA架構(gòu)師了解業(yè)務(wù)需求.服務(wù)建模的過程發(fā)現(xiàn)并 規(guī)約了服務(wù),產(chǎn)生的結(jié)果服務(wù)列表以及服務(wù)的主要業(yè)務(wù)屬性幫助業(yè)務(wù)人員準確的 定義流程模型中的業(yè)務(wù)活動和業(yè)務(wù)項.但是服務(wù)建模中IT的成分如安全性,可靠性, 流程建模并不關(guān)注; 流程建模中的模擬運行和優(yōu)化又和服務(wù)建模沒有直接的關(guān)系. 北京恒訊時代信息技術(shù)有限公司 14

16、服務(wù)建模-流程建模 北京恒訊時代信息技術(shù)有限公司 15 服務(wù)建模-實例分析:汽車貸款業(yè)務(wù)的相關(guān)組件 北京恒訊時代信息技術(shù)有限公司 16 服務(wù)建模-實例分析:汽車貸款業(yè)務(wù)工作流程 北京恒訊時代信息技術(shù)有限公司 17 服務(wù)建模-實例分析:服務(wù)發(fā)現(xiàn)(確定) 自上而下方式 通過對業(yè)務(wù)流程的分解,可以得到服務(wù)的候選者.每一個業(yè)務(wù)活動的單元都是 服務(wù)的候選者. 中間對齊方式 通過與業(yè)務(wù)分析人員或業(yè)務(wù)咨詢顧問的協(xié)作,可以獲取服務(wù)建模的輸入業(yè) 務(wù)目標.在本示例中,業(yè)務(wù)指標為降低成本和降低欺詐風(fēng)險,并且通過銷 售成本,自服務(wù)比例和壞賬率這三個關(guān)鍵業(yè)務(wù)指標來度量業(yè)務(wù)目標的實施情況. 部分服務(wù)候選者可以與關(guān)鍵業(yè)務(wù)指

17、標聯(lián)系起來,例如:評估信用等級以及審批 等服務(wù)候選者可以降低壞賬率. 自下而上方式 通過對現(xiàn)有IT環(huán)境的分析,可以掌握現(xiàn)有系統(tǒng)的基本信息.了解到核心系統(tǒng)可 以提供獲取存,貸款記錄的功能. 根據(jù)與業(yè)務(wù)目標的聯(lián)系,與現(xiàn)有系統(tǒng)功能的映射,可以驗證自上而下分析方法 的結(jié)果,或者發(fā)現(xiàn)自上而下分析方法的遺漏.結(jié)合業(yè)務(wù)領(lǐng)域的分析,可以得到 服務(wù)候選者列表. 由于服務(wù)候選者比較多,可以采用領(lǐng)域分解的結(jié)果來將服務(wù)候選者進行分類. 領(lǐng)域分解的工作通常由資深的業(yè)務(wù)專家來進行,在本示例中,基于示范的目 的,確認目標業(yè)務(wù)流程所涉及的業(yè)務(wù)范圍包括客戶服務(wù)和風(fēng)險控制,并將它們 作為分類的依據(jù),得到服務(wù)候選者目錄 北京恒訊時

18、代信息技術(shù)有限公司 18 服務(wù)建模-實例分析:流程分解 服務(wù) 1 汽車貸款流程 1.1 確認購車價格 1.2 評估信用等級 1.2.1 查詢存款記錄 1.2.2 查詢貸款記錄 1.2.3 計算信用等級 1.4 審批 1.6 擔(dān)保 1.7 發(fā)放貸款 業(yè)務(wù)對齊 Y Y Y Y Y Y Y Y Y 北京恒訊時代信息技術(shù)有限公司 可組裝 Y Y Y Y Y Y Y Y Y 可重用 Y Y Y Y Y Y Y 19 服務(wù)建模-服務(wù) 服務(wù) 1 汽車貸款流程 1.1 確認購車價格 1.2 評估信用等級 輸入 1 汽車貸款流程 carModel Applicant 輸出 Application carPric

19、e creditResult 業(yè)務(wù)事件 applyResult 信用等級報警 業(yè)務(wù)規(guī)則 非功能性需 求 基于存款,貸款記錄 的信用評估業(yè)務(wù) 規(guī)則 性能(略) 性能(略) 性能(略) 1.2.1 查詢存款記錄 1.2.2 查詢貸款記錄 1.2.3 計算信用等級 Applicant Applicant applicant, depositHistory,l oanHistory Application Application loanRequest depositHistory loanHistory creditResult 1.4 審批 1.6 擔(dān)保 1.7 發(fā)放貸款 approveResul

20、t assureResult loanResult 審批結(jié)果通知 授權(quán)額度業(yè)務(wù)規(guī)則 可用性(略) 貸款發(fā)放通知 北京恒訊時代信息技術(shù)有限公司 20 服務(wù)建模-實例建模小結(jié) 實際項目中,服務(wù)規(guī)約會比較復(fù)雜,既包括具體的服務(wù)的操作,輸 入消息,輸出消息,也包括相關(guān)聯(lián)的業(yè)務(wù)目標,業(yè)務(wù)規(guī)則,業(yè)務(wù)事 件,此外,非功能性需求等方面也是需要在服務(wù)實現(xiàn)以前定義.上 表僅僅列舉幾個方面做簡單的示意. 除了對單個的服務(wù)本身進行規(guī)約,服務(wù)規(guī)約還包括服務(wù)之間關(guān)系的 描述,例如服務(wù)之間的依賴關(guān)系和包含關(guān)系. 在本示例中,汽車貸款流程由其他服務(wù)組裝而成,評估信用等級由 查詢存款記錄,查詢貸款記錄和計算信用等級組裝而成;執(zhí)

21、行審批 以前,必須先完成評估信用等級,因此從業(yè)務(wù)的角度來看,審批服 務(wù)依賴于評估信用等級. 北京恒訊時代信息技術(shù)有限公司 21 SOA 實施步驟總結(jié) 0. SOA采納步驟和價值分析 1. SOA監(jiān)管 2. 服務(wù)建模 3. 服務(wù)實現(xiàn)和架構(gòu)設(shè)計 4. 以服務(wù)為中心的開發(fā)和集成 5. 服務(wù)管理 北京恒訊時代信息技術(shù)有限公司 22 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-SOA參考架構(gòu) 北京恒訊時代信息技術(shù)有限公司 23 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-服務(wù)實現(xiàn) 無論怎樣進行服務(wù)建模,服務(wù)最終都將由不同的服務(wù)組件來實現(xiàn). 因此服務(wù)實現(xiàn)是銜接服務(wù)建模和組件詳細設(shè)計的關(guān)鍵步驟.服務(wù)實 現(xiàn)首先將服務(wù)分配到相應(yīng)的服務(wù)組件,然后逐個分析服務(wù)實

22、現(xiàn)方式 并進行技術(shù)可行性的驗證. 在服務(wù)發(fā)現(xiàn)的過程中,根據(jù)業(yè)務(wù)領(lǐng)域的分析結(jié)果將服務(wù)按照業(yè)務(wù)范 圍進行分類.在服務(wù)實現(xiàn)的過程中,將業(yè)務(wù)范圍直接映射到服務(wù)組 件,從而實現(xiàn)業(yè)務(wù)與IT的一致性. 客戶服務(wù)業(yè)務(wù)組件將實現(xiàn)貸款流程,查詢存貸款記錄,發(fā)放貸款 等服務(wù).風(fēng)險管理業(yè)務(wù)組件將實現(xiàn)評估信用等級,審批,擔(dān)保等 服務(wù). 北京恒訊時代信息技術(shù)有限公司 24 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-實例分析 映射已有功能服務(wù):如查詢存款記錄,查詢貸款記錄和擔(dān)保.其好處非常明顯,就是重用已 有功能,保護企業(yè)的投資;避免重復(fù)功能的存在,降低維護成本.但是在選擇的過程中,需 要考慮傳輸協(xié)議,消息格式的差異,是否可以通過引入中介來彌合

23、服務(wù)調(diào)用者和實現(xiàn)者之間 的差距.需要特別提出的是擔(dān)保服務(wù),該服務(wù)由合作伙伴提供,通過中介將外部的服務(wù)進行 映射(還需要重點考慮安全性相關(guān)的問題),在業(yè)務(wù)流程中就可以無縫的使用了. 新建流程服務(wù):如汽車貸款流程,評估信用等級.前者是一個長流程(Long Running),由 于有人工活動的參與,使得長流程的執(zhí)行不能在可預(yù)期的短時間(如:幾秒鐘)內(nèi)完成,需 要相關(guān)人員在完成自己的任務(wù)以后,流程才能進入下一步,常常是幾天甚至幾個月才能完成 整個流程;后者是一個短流程(Micro Flow).在傳統(tǒng)的方案中,業(yè)務(wù)流程通常采用硬編碼 的方式將多個功能組裝起來;與之相對,這里推薦采用工作流(如BPEL)的

24、方式將服務(wù)組裝起 來,從而達到靈活組裝,靈活應(yīng)對變化的目的. 新建人工服務(wù):如審批.人工服務(wù)是相對于自動化服務(wù)而言.自動化服務(wù)通常由IT系統(tǒng)來提 供,不用人為的干預(yù);人工服務(wù)則是由企業(yè)的員工,合作伙伴員工或者最終用戶來執(zhí)行,但 是它同樣具備完整的服務(wù)描述.采用統(tǒng)一的服務(wù)描述來定義人工服務(wù),可以將人工服務(wù)與自 動化服務(wù)統(tǒng)一對待,除了可以在多個應(yīng)用之間重用人工服務(wù)以外,還可以在服務(wù)實現(xiàn)從人工 活動遷移到IT系統(tǒng)的過程中保持系統(tǒng)的柔性. 新建業(yè)務(wù)規(guī)則服務(wù):如計算信用等級.由于這部分功能不穩(wěn)定,會隨著國民經(jīng)濟的發(fā)展,物 價水平以及社會環(huán)境的變化而變化.將易于變化的這部分邏輯從穩(wěn)定的架構(gòu)中剝離出來,可

25、以增強IT應(yīng)對業(yè)務(wù)變化的能力.采用業(yè)務(wù)規(guī)則來實現(xiàn)相應(yīng)的服務(wù),可以相對靈活的進行修改 來適應(yīng)業(yè)務(wù)的變化,業(yè)務(wù)規(guī)則引擎已經(jīng)在大量的行業(yè)得到廣泛的應(yīng)用. 新建功能服務(wù):如確認購車價格.針對以前沒有的功能,或者以前采用人工方式完成的功 能,現(xiàn)在可以引入自動化服務(wù)來提高業(yè)務(wù)流程的運行效率.在這里實現(xiàn)了新建功能服務(wù)以 后,也能在其他的應(yīng)用中逐步引入,從而達到在企業(yè)范圍內(nèi)重用的目的. 北京恒訊時代信息技術(shù)有限公司 25 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-實例分析 北京恒訊時代信息技術(shù)有限公司 26 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-架構(gòu)設(shè)計實例 北京恒訊時代信息技術(shù)有限公司 27 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-技術(shù)性的選擇 ESB實現(xiàn)機制: 選

26、擇一:WebSphere Enterprise Service Bus 優(yōu)點:內(nèi)置的轉(zhuǎn)換,路由中介,并且可以通 過客戶化中介擴展;采用標準的編程模型(SCA, SDO). 選擇二:WebSphere Message Broker 優(yōu)點:靈活的轉(zhuǎn)換,路由能力;對負載均衡,高可用性上有很好的支持;支持基于MQ的可 靠傳輸;支持多樣化的連接方式. 結(jié)論:此場景主要是業(yè)務(wù)部門級別應(yīng)用,涉及的應(yīng)用大多數(shù)都采用標準化技術(shù),如: XML,Web Service等,也沒有特別的分布式應(yīng)用的需求.因此采用選擇一,并利用 WebSphere Adapter for CICS將非標準化的CICS應(yīng)用連接到WebSp

27、here 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)用;跨平臺;支持開放性標準. 選擇二:EJB 優(yōu)點:支持分布式調(diào)用;支持不同的J2EE中間件平臺. 結(jié)論:企業(yè)服務(wù)總線是基于J2EE的實現(xiàn),采用EJB的方式暴露應(yīng)用服務(wù),具備更好的性能. 因此選擇方案二.即使將來希望采用Web Service方式,在Web

28、Sphere Application Server 上也能夠很方便的將EJB(Session Bean)暴露為Web Service. 北京恒訊時代信息技術(shù)有限公司 28 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-技術(shù)產(chǎn)品的選擇 選擇一:通過Web Service訪問貸款系統(tǒng). 優(yōu)點:支持開放性標準. 選擇二:直接通過JDBC訪問貸款系統(tǒng)數(shù)據(jù)庫. 優(yōu)點:支持分布式調(diào)用;性能較高. 結(jié)論:通過Web Service 訪問貸款系統(tǒng),應(yīng)用層訪問的方式,保證業(yè) 務(wù)的完整性,隔離具體的業(yè)務(wù)實現(xiàn).同時避免直接訪問數(shù)據(jù)庫帶來的 安全策略等問題.因此采用選擇一. 北京恒訊時代信息技術(shù)有限公司 29 SOA 實施步驟總結(jié) 0. SO

29、A采納步驟和價值分析 1. SOA監(jiān)管 2. 服務(wù)建模 3. 服務(wù)實現(xiàn)和架構(gòu)設(shè)計 4. 以服務(wù)為中心的開發(fā)和集成 5. 服務(wù)管理 北京恒訊時代信息技術(shù)有限公司 30 服務(wù)實現(xiàn)和架構(gòu)設(shè)計-技術(shù)產(chǎn)品的選擇 保險公司的多樣化支持 由于各家保險公司的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ī)約.可以讓保險公司的人員訪問該人工服務(wù),或者由銀行職員通過傳真,電話確認信 息,然后訪問人工服務(wù).

30、上面這兩種形式的擔(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)整.基于業(yè)務(wù)規(guī)則實現(xiàn)的計算信用等級服務(wù),可以靈活的進行規(guī)則的修改. 長期的變化可能是引入統(tǒng)一的信用評估平臺.由國家或者第三方機構(gòu)提供一個全國范圍內(nèi)統(tǒng)一

31、的 信用評估平臺.只需要將現(xiàn)有的評估信用等級業(yè)務(wù)子流程替換為外部的統(tǒng)一信用評估平臺提供的 合作伙伴服務(wù),通過ESB來彌合傳輸協(xié)議和消息格式的不同,整個業(yè)務(wù)流程依然保持不變. 通過對上述變化場景的簡單分析,驗證了架構(gòu)的可擴展性.當(dāng)然這種可擴展性只能是在一定的程 度上滿足業(yè)務(wù)的變化,也只有通過對業(yè)務(wù)變化的前瞻性分析,對系統(tǒng)架構(gòu)進行修正,才能更好的 保證架構(gòu)的可擴展性.這整個過程是一個迭代進行的過程. 北京恒訊時代信息技術(shù)有限公司 31 以服務(wù)為中心的開發(fā)和集成-項目實施的準備工作 已經(jīng)了解到,通過業(yè)務(wù)價值分析和服務(wù)建模,經(jīng)過服務(wù)架構(gòu)的分析 和設(shè)計,我確定需要實現(xiàn)的服務(wù)接口和消息規(guī)約,以及服務(wù)之間的

32、 調(diào)用關(guān)系.現(xiàn)在的任務(wù)就是如何實現(xiàn)和構(gòu)建這樣一個以服務(wù)為中心 的應(yīng)用系統(tǒng). 實現(xiàn)相應(yīng)的集成模塊,由架構(gòu)組在整體層面上把握路線,建立集成 模型.后面將進一步討論如何逐步實現(xiàn)服務(wù)和持續(xù)集成服務(wù). 首先簡單分析一下項目的目標,此時能得到的輸入是前面的輸出 (服務(wù)規(guī)約,服務(wù)實現(xiàn)決策以及系統(tǒng)架構(gòu)), 目標就是獲得相應(yīng)的輸出:一個以服務(wù)為中心的應(yīng)用系統(tǒng). 北京恒訊時代信息技術(shù)有限公司 32 以服務(wù)為中心的開發(fā)和集成-采取以下的基本步驟 來實現(xiàn)項目的目標 1 項目準備:準備相關(guān)的軟件:硬 件環(huán)境和組件開發(fā)團隊. 2 在開發(fā)環(huán)境中定義服務(wù):使用 WID工具定義服務(wù)的基本元素. 3 決定服務(wù)之間的物理關(guān)系和服務(wù)

33、 集成模型:主要是得到服務(wù)集成的 順序和路徑. 4 逐步實現(xiàn)服務(wù):使用模擬服務(wù)的 方法快速實現(xiàn)服務(wù)和快速測試. 5 持續(xù)集成服務(wù):根據(jù)服務(wù)模型的 順序持續(xù)的集成服務(wù),構(gòu)建完整的 應(yīng)用系統(tǒng). 服務(wù)編號 S0 S1 S2 S3 S4 S5 S6 S7 S8 服務(wù)名稱 汽車貸款流程服務(wù) 確認購車價格 查詢存款記錄 查詢貸款記錄 發(fā)放貸款 評估信用等級 計算信用等級 審批 擔(dān)保 確認系統(tǒng)將要提供以上服務(wù): 北京恒訊時代信息技術(shù)有限公司 33 以服務(wù)為中心的開發(fā)和集成-產(chǎn)品支持 北京恒訊時代信息技術(shù)有限公司 34 以服務(wù)為中心的開發(fā)和集成-產(chǎn)品支持(續(xù)) 北京恒訊時代信息技術(shù)有限公司 35 以服務(wù)為中心

34、的開發(fā)和集成-團隊組成 北京恒訊時代信息技術(shù)有限公司 36 以服務(wù)為中心的開發(fā)和集成-團隊組成 通常項目團隊的分組可能面臨兩種選擇: 一種是水平分組:按照應(yīng)用的水平層次進行分組,如UI相關(guān),流程相關(guān),中介相關(guān), 服務(wù)實現(xiàn)后臺系統(tǒng)等. 一種是垂直分組:按業(yè)務(wù)功能劃分,以業(yè)務(wù)流程為中心,功能相關(guān)的UI,流程,模 塊,后臺系統(tǒng)為一組. 在以服務(wù)為中心的SOA項目中,推薦將項目以服務(wù)為中心分為2個大的Work Stream: 1 服務(wù)實現(xiàn): 包括新的服務(wù)和對現(xiàn)有服務(wù)的包裝,這樣實現(xiàn)的服務(wù)將作為基本的服務(wù)組件分 布在服務(wù)模塊中,等待互相調(diào)用和被流程等方式進行編排. 2 服務(wù)集成 包括從UI到業(yè)務(wù)流程,或

35、者SCA之間的裝配. 這樣考慮主要是因為服務(wù)的實現(xiàn)是可以獨立的完成(強調(diào)SOA中的Service是粗粒度的 業(yè)務(wù)服務(wù)),而服務(wù)的集成主要體現(xiàn)在流程以及服務(wù)模塊之間的裝配,這樣的劃分對 于項目將來的持續(xù)集成有著非常重要的意義. 每個Work Stream之中,可能需要按業(yè)務(wù)或者技術(shù)側(cè)重分成若干小組,同時Work Stream之中,根據(jù)人員技能的不同,每個開發(fā)人員的角色會有側(cè)重.各Work Stream 之間需要保持相應(yīng)的交流,對于一些重要的技術(shù)人員或者領(lǐng)域?qū)<?可以在Work Stream之間實現(xiàn)共享, 北京恒訊時代信息技術(shù)有限公司 37 以服務(wù)為中心的開發(fā)和集成-人員技能要求 北京恒訊時代信息

36、技術(shù)有限公司 38 以服務(wù)為中心的開發(fā)和集成-服務(wù)消息規(guī)約示例 北京恒訊時代信息技術(shù)有限公司 39 以服務(wù)為中心的開發(fā)和集成-服務(wù)接口規(guī)約示例 北京恒訊時代信息技術(shù)有限公司 40 以服務(wù)為中心的開發(fā)和集成-業(yè)務(wù)對象設(shè)計 1 引用:在WID中,雖然在業(yè)務(wù)集成視圖提供了可視化的編輯BO的方式, 但仍然會不時的打開BO對應(yīng)的XSD定義文件,進行一些手工的操作. 2 繼承:請注意WID支持BO之間的繼承關(guān)系,其實現(xiàn)是通過XSD的 extension來實現(xiàn)的,WSDL中的消息也是通過XSD來定義的,因此也支持繼 承.在一個復(fù)雜的系統(tǒng)中,業(yè)務(wù)對象不可能都是一個獨立的存在,因此在 定義BO的時候,可能需要考

37、慮繼承.并且,更關(guān)注模塊之間共享的BO,這 些BO作為消息線索,將串聯(lián)起主要的業(yè)務(wù)流程,具有非常明顯的業(yè)務(wù)含義. 3 映射:在更為復(fù)雜的情況下,WID 支持BO之間的Mapping和 Transformer ,從而支持接口之間的Mapping,當(dāng)然,也可以使用 Mediation模塊里面的XSLTTransform來實現(xiàn)消息的轉(zhuǎn)換. 北京恒訊時代信息技術(shù)有限公司 41 以服務(wù)為中心的開發(fā)和集成-服務(wù)接口 服務(wù)接口的定義在目前的WID中實際上支持兩種定義方式,WSDL和Java接 口,但一般情況下,模塊之間的接口使用WSDL,因為WSDL擴展性和通用 性都比較好.而模塊內(nèi)部,可能使用WSDL,也

38、可能使用Java.如果相應(yīng) 的一個Java服務(wù)組件不得不引用一個無狀態(tài)的SessionBean,就不得不使 用該SessioBean的接口來定義這個組件的接口.在使用WSDL接口定義的 時候,盡量不要過早的在Process中綁定接口,因為一旦接口的參數(shù)的數(shù) 據(jù)組織格式發(fā)生變化,Process的調(diào)用接口和分配變量部分會發(fā)生很大的 變化. 如果希望暴露的接口和相應(yīng)的組件接口不盡相同,可以使用接口映射, 接口之間的映射就需要用到業(yè)務(wù)對象的映射,而且也可以使用Mediation 來做,實際上完成的功能基本上是一樣的. 北京恒訊時代信息技術(shù)有限公司 42 以服務(wù)為中心的開發(fā)和集成-業(yè)務(wù)對象的映射 在特定

39、情況下,因為效率,事務(wù)等的需要,不得不在SCA中直接集 成EJB,并且無法使用WSDL輕易的實現(xiàn)映射,尤其是當(dāng)數(shù)據(jù)種隱含 若類型對象或者隱含特定的業(yè)務(wù)邏輯.對于常見的J2EE系統(tǒng),會遇 見諸如Vector,List,HashMap這樣的參數(shù)類型,對于這些弱類型 的Java對象,雖然WSDL提供了Any 類型,但是一般不太容易交互, 所以對于這種情況,就不得不需要使用良定義的Java對象來包裝參 數(shù),或者將包裝后的方法暴露成Web Service,或者直接手工實現(xiàn) Java和SDO的轉(zhuǎn)化. 對于UI的重用性,有時候也要涉及BO和Java對象之間的轉(zhuǎn)化,對于 這些情況,推薦使用自己編寫的Trans

40、formerFactory來生成每個對 象和SDO的轉(zhuǎn)化類.本項目中,實現(xiàn)的TransformerFactory實際上 是一個Java代碼生成器. 北京恒訊時代信息技術(shù)有限公司 43 以服務(wù)為中心的開發(fā)和集成-服務(wù)與模塊映射關(guān)系 1 購車貸款審批流程模塊 2 信用評估流程模塊 3 中介模塊 4 貸款系統(tǒng)包裝 5 保險擔(dān)保系統(tǒng)包裝 6 汽車價格查詢模塊 北京恒訊時代信息技術(shù)有限公司 44 以服務(wù)為中心的開發(fā)和集成-實現(xiàn)服務(wù)集成模型 SCA作為SOA的編程模型,可以帶來顯著的價值,易于集成,實現(xiàn)高 靈活性和高開發(fā)效率.到目前為止,完成了服務(wù)和消息的定義,項 目中將獨立的實現(xiàn)服務(wù)模塊,UI,和后臺系

41、統(tǒng),所有的這一切都是 為了集成,集成為最終的應(yīng)用程序.本項目的目標就是要以服務(wù)為 中心,持續(xù)集成. 首先關(guān)注服務(wù)集成的模型,服務(wù)集成的模型主要只服務(wù)之間關(guān)系建 立的計劃安排和實現(xiàn)步驟.為什么需要一個服務(wù)集成模型?主要有 以下兩點的考慮: 1 降低風(fēng)險 2 最大限度利用資源 使用自動化的測試和基于模擬服務(wù)的持續(xù)集成將是實現(xiàn)目標的主要 手段. 北京恒訊時代信息技術(shù)有限公司 45 SCA模塊內(nèi)部的集成示意圖 集成(或組裝)是SCA中非常重要的概念,可以想象如果的應(yīng)用程 序是一輛汽車,我服務(wù)就是汽車零件,服務(wù)模塊這是汽車中的大型 部件,最終,需要通過組裝來實現(xiàn)SOA應(yīng)用,并且由于組件之間的 良定義的接

42、口,組件都是可以替換的.在 SCA的編程模型下,模塊 之間的集成主要依賴于SCA調(diào)用和BPEL 北京恒訊時代信息技術(shù)有限公司 46 以服務(wù)為中心的開發(fā)和集成-系統(tǒng)的集成 北京恒訊時代信息技術(shù)有限公司 47 以服務(wù)為中心的開發(fā)和集成-系統(tǒng)的集成(服務(wù)和 服務(wù)模塊的逐步實現(xiàn) ) 其中:UI1指大廳用戶界面,UI2指網(wǎng)絡(luò)用戶; L1,核心系統(tǒng); L2,貸款系統(tǒng);L3,保險系統(tǒng). 北京恒訊時代信息技術(shù)有限公司 48 以服務(wù)為中心的開發(fā)和集成-不建議模塊之間的過 早綁定 因此凡是與綁定相關(guān)的工作,除非必要,不然都不要先實現(xiàn),每個 模塊應(yīng)當(dāng)聚焦于該模塊自身的功能.延時綁定的可能會帶來以下兩 點好處: 1

43、在開發(fā)過程中綁定方式等各種條件會隨著認識的深入和項目的進展而 變化,過早的綁定往往可能需要重新設(shè)置,當(dāng)然使用WID工具,這樣的變 更往往不是很耗費時間,但是變更帶來的單元測試和集成測試以及重新 部署等工作,可能會消耗比較多的時間. 2 單元測試階段可以隔離組件間的影響,專注于組件內(nèi)部的測試,不需 要過早的建立組件之間的聯(lián)系,以免得到擴散的測試結(jié)果. 北京恒訊時代信息技術(shù)有限公司 49 以服務(wù)為中心的開發(fā)和集成-業(yè)務(wù)流程模塊 在SOA的環(huán)境下,流程作為集成服務(wù)的主要手段,起著非常 重要的作用,通常情況下,業(yè)務(wù)流程是最接近展現(xiàn)層,流 程向下集成不同的SCA模塊,向上提供了用戶交互和服務(wù)調(diào) 用的功能

44、,主要被UI集成.WPS中的BPEL流程引擎提供了豐 富和功能強大的API,很容易的可以被JSP,SWT等客戶端工 具集成. 關(guān)于具體的BPEL開發(fā),這里不打算詳細介紹.在WPS6和WID 中,流程的實現(xiàn)更為簡單,只需要簡單的拖拽和設(shè)置,就 能完成一個業(yè)務(wù)流程的建模.當(dāng)然IBM也提供了更為復(fù)雜和 專業(yè)的WBM(WebSphere Business Modeler),用于完整的 業(yè)務(wù)流程建模,使用WBM導(dǎo)出的模型文件,WID可以直接射 程業(yè)務(wù)流程組件. 對流程中的每個活動,可以增加業(yè)務(wù)事件的監(jiān)控,設(shè)定CEI 的消息,以實現(xiàn)業(yè)務(wù)監(jiān)控的相關(guān)功能. 在單獨實現(xiàn)流程的時候,需要定義一些模擬的后臺實現(xiàn),

45、使得開發(fā)人員專注于流程本身(分支,選擇,子流程 等),所有的Parnter的實現(xiàn)可以先使用Java 組件的方 式,使用偽代碼或者上文提到的測試數(shù)據(jù)生成器. 業(yè)務(wù)流程本身是要定義在一個SCA的模塊中,盡量使得這個 模塊只包括流程的邏輯,這樣從部署,測試,變更控制等 角度來看,都具有很重要的意義. 當(dāng)這部分工作完成后,看起來這個就是一個完整的流程, 包含了預(yù)定的業(yè)務(wù)功能,部署在自己的測試環(huán)境中,使用 BPC Explorer 可以進行測試,觀察流程在測試數(shù)據(jù)的運行 情況下是否符合項目的預(yù)期,人工活動的交互是否滿足等. 此時的測試還是比較簡單的單元測試,主要測試流程的完 整性,流程調(diào)用和一些簡單的業(yè)

46、務(wù)邏輯. 北京恒訊時代信息技術(shù)有限公司 50 以服務(wù)為中心的開發(fā)和集成-業(yè)務(wù)流程示例 業(yè)務(wù)流程示例 業(yè)務(wù)流程模塊中會包 含人工服務(wù),需要注 意對于包含人工活動 的流程,需要設(shè)定流 程類型為 longrunning,同時 需要設(shè)置相關(guān)的事務(wù) 屬性和會話屬性, 北京恒訊時代信息技術(shù)有限公司 51 以服務(wù)為中心的開發(fā)和集成-SCA的注意點 在SCA的世界里,所有的服務(wù)都是SCA的服務(wù),但是只不過是綁定 的形式不一樣,這符合一般的思維模式,比如服務(wù)本身的邏輯可 以類比于是MVC模式中的model,而多種不同形式的綁定就相當(dāng)于 View.通常在WID中一般實現(xiàn)一個SCA模塊的過程如下所示: 1 確定模塊

47、內(nèi)的服務(wù)組件:定義服務(wù)組件; 2 確定模塊的接口:定義組件的導(dǎo)出; 3 確定模塊要引用的SCA服務(wù):定義組件的導(dǎo)入; 4 確定內(nèi)部服務(wù)組件的實現(xiàn)方式:采用流程,中介,業(yè)務(wù)規(guī)則或是 Java實現(xiàn)組件的業(yè)務(wù)邏輯; 5 確定組件之間的關(guān)系:采用流程,連線或者Java代碼編排服務(wù). 北京恒訊時代信息技術(shù)有限公司 52 以服務(wù)為中心的開發(fā)和集成-ESB的實現(xiàn) ESB的實現(xiàn)實際上就表現(xiàn)為采用中介模塊虛擬化原有服務(wù),利用路由實現(xiàn) 連通性,利用Mediation實現(xiàn)服務(wù)的適配.它能夠顯著的增加業(yè)務(wù)邏輯的 靈活性,隔離底層服務(wù)的區(qū)別,提供虛擬化的統(tǒng)一的業(yè)務(wù)服務(wù)視圖. WID很明顯的將中介模塊和普通的SCA模塊區(qū)

48、分開來,只有在中介模塊中 才能使用中介組件,中介組件主要實現(xiàn)服務(wù)的路由,消息的轉(zhuǎn)換等工作. 在考慮一個服務(wù)中介組件的時候,首先需要確定中介的類型,盡量將相 關(guān)的中介邏輯都要放在一個mediation組件中. 一個中介模塊中可能有多個中介消息流,在這些消息流之間流動的除了 消息外,還有一些上下文,可以在每個中介節(jié)點中讀寫上下文,實現(xiàn)局 部的消息傳遞. 北京恒訊時代信息技術(shù)有限公司 53 以服務(wù)為中心的開發(fā)和集成-新建服務(wù)模塊 在SOA的項目實踐中,對于新建服務(wù),實現(xiàn)方式上有兩種選擇: 1 獨立完成,如采用傳統(tǒng)J2EE等方式,實現(xiàn)后采用SCA包裝.這樣的考慮 主要是現(xiàn)有業(yè)務(wù)模式已經(jīng)比較成熟,有很多

49、可重用的設(shè)計模式和框架, 類包的支持,使得新建的服務(wù)可以和容易的實現(xiàn).因此,在實現(xiàn)新建的 服務(wù)后,以Web Service或者JMS或者EJB的方式暴露出來,在SCA中集成 他們,在流程中調(diào)用SCA,這是一種比較理想的實現(xiàn)方式. 2 直接在SCA模塊中實現(xiàn)業(yè)務(wù)邏輯.適當(dāng)情況下,業(yè)務(wù)邏輯可以存在于 SCA的組件中,比較常見的是Java組件或者業(yè)務(wù)規(guī)則組件,狀態(tài)機等.這 樣做可以減少在不同的層次之間的調(diào)用和映射,提高效率. 具體考慮服務(wù)的實現(xiàn)方式可能基于不同的應(yīng)用會有不同的結(jié)果,推 薦新建服務(wù)使用最適合的方式實現(xiàn),然后使用SCA模塊進行調(diào)用和 集成,這樣才能體現(xiàn)SCA的優(yōu)點,一旦后臺系統(tǒng)發(fā)生變化,

50、SCA作為 中間層會向上屏蔽這些區(qū)別.這樣所有SCA服務(wù)所在的中間層也就 是一個ESB. 北京恒訊時代信息技術(shù)有限公司 54 以服務(wù)為中心的開發(fā)和集成-后臺系統(tǒng)包裝 SOA將現(xiàn)有系統(tǒng)作為可重用的IT資產(chǎn)管理,重用的方式就需要將這 些系統(tǒng)包裝成為服務(wù),被業(yè)務(wù)系統(tǒng)集成和使用.IBM的產(chǎn)品家族為 集成現(xiàn)有系統(tǒng)提供了很多的途徑,包括Adapter,EJB,Web Service,JMS等方式. 例如,在例子中,房貸系統(tǒng)使用的是基于Command模式的EJBFacad 來實現(xiàn),不得不使用Java組件包裝在后臺系統(tǒng),首先實現(xiàn)Java對象 到Java對象的Mapping,然后在實現(xiàn)包裝系統(tǒng)的Java對象到S

51、DO的映 射. 使用以上技術(shù),將現(xiàn)有系統(tǒng)映射成為SCA模塊,現(xiàn)有系統(tǒng)的功能通 過該SCA的導(dǎo)出,被暴露成可重用的標準化的服務(wù)接口,作為進一 步集成的基礎(chǔ),通過重用實現(xiàn)了價值的最大化. 北京恒訊時代信息技術(shù)有限公司 55 以服務(wù)為中心的開發(fā)和集成-服務(wù)模擬和集成測試 由于項目進度的不均勻性,以及服務(wù)實現(xiàn)和服務(wù)裝配2個不同開發(fā)路線 上的進度的不均衡,在實際的SAO項目中,經(jīng)常會發(fā)生開發(fā)被阻塞或者 成員處于等待集成的狀態(tài)中,因此非常有必要實現(xiàn)一些模擬的服務(wù)來供 進行單元測試和集成測試. 組件測試:對于Java組件,狀態(tài)機,業(yè)務(wù)規(guī)則或者中介等組件,他們內(nèi) 建的業(yè)務(wù)邏輯應(yīng)該首先經(jīng)過組件級別的單元測試,才

52、會被允許集成.對 于組件的集成,可以使用ITC(Integration Test Client)來完成.ITC 提供了Emulator 的方式測試流程的運行和連貫性,全部采用人工活動 來模擬輸入. 同樣如果相應(yīng)的邏輯被封裝在Java代碼中,以服務(wù)組件作為門面的話, 可以采用傳統(tǒng)的方法如JUnit對相應(yīng)的代碼進行測試.注意,此時的測 試因為 1 缺乏Runtime 的上下文環(huán)境; 2 缺乏真實的業(yè)務(wù)環(huán)境. 所以此時的測試不見得能夠說明問題,但是作為單元測試,能夠保證組 件在測試條件下正常工作,就算為集成和集成測試打了一個好基礎(chǔ). 北京恒訊時代信息技術(shù)有限公司 56 以服務(wù)為中心的開發(fā)和集成-模擬

53、客戶端 在UI的工作沒有完全完工之前,需要一個模擬的客戶端,來和流程交 互,測試流程的功能.當(dāng)流程和后面的模塊集成后,就可以一直測試到 后臺系統(tǒng),同樣對于SCA的模塊在單元測試的時候,也需要的一個模擬 的客戶端. 使用ITC 首先可以使用WID的Integration Test Client,從右鍵菜單 Test Component進入該測試界面,ITC會自動生成界面供選擇希望測 試的接口的方法,并可以輸入?yún)?shù),開始測試.ITC會將測試結(jié)果和測 試過程中捕獲的異常以可視化的方式展現(xiàn)出來.ITC適用于所有的SCA模 塊,包括流程模塊.在ITC中如果不希望每次都要輸入測試參數(shù),可以 選擇將測試參數(shù)

54、保存進一個數(shù)據(jù)池,并將該次測試保存為配置文件,就 可以自動加載了. 使用BPC Explore 對于流程模塊,如果已經(jīng)和后臺系統(tǒng)或者虛擬服務(wù)連 接,可以使用BPC瀏覽器來測試流程模塊.該方法簡單快捷,但是可能 不太容易進行持續(xù)的,自動化的測試.值得注意的是,很顯然在BPC瀏 覽器的后臺,服務(wù)器端的代碼是在調(diào)用BPE的API進行流程的交互,因此 可以自己手工編寫測試代碼去調(diào)用BPE API與流程容器交互,寫出專門 的針對流程的自動測試代碼. 北京恒訊時代信息技術(shù)有限公司 57 以服務(wù)為中心的開發(fā)和集成-評審和重構(gòu) 可能的評審和討論內(nèi)容如下: 1 業(yè)務(wù)對象(BO)和服務(wù)接口(WSDL)的定義,包括

55、對象映射和接口映射. 此時的評審主要是要邀請客戶的業(yè)務(wù)專家,客戶的技術(shù)決策人員,對BO的定義,接口 的約定,與后臺系統(tǒng)的差距,實現(xiàn)的連通性,整體結(jié)構(gòu)的合理性,進行探討. 對于發(fā)現(xiàn)的不合理的地方,需要重構(gòu)的BO和接口,當(dāng)經(jīng)過一定的返工,再討論后,可 以以某種契約形式固定這些接口和BO,作為進一步開發(fā)的基礎(chǔ). 在修改BO的時候,如果添加和刪除BO中的屬性,可能需要手工刪除import的那個xsd. 添加和刪除WSDL接口中的參數(shù),可能會造成流程調(diào)用該服務(wù)時的參數(shù)格式的問題,可 能需要手工修改WSDL文件. 2服務(wù)的組裝和服務(wù)的實現(xiàn),服務(wù)的組裝和實現(xiàn)包括流程,中介,組件的調(diào)用 等,在開發(fā)過程中,可能

56、會產(chǎn)生如下的變化: 1 人工服務(wù)的實現(xiàn)可能會被機器服務(wù)取代; 2 服務(wù)的綁定方式會發(fā)生變化; 3 由于接口的變化和BO的變化帶來的影響; 4 服務(wù)實現(xiàn)的變化,例如:可能由Java實現(xiàn)轉(zhuǎn)化為Business Rule實現(xiàn). 北京恒訊時代信息技術(shù)有限公司 58 以服務(wù)為中心的開發(fā)和集成-持續(xù)集成 通常情況下流程集成,SOA應(yīng)用和一般的應(yīng)用從UI的角度看起來并沒有 太大的區(qū)別.因此在UI的實現(xiàn)上,常見的方式都能夠適用,最終的裝配 可能有2種形式: 1 UI+BPEL; 2 UI+SCA 調(diào)用. 無論是那種情況,UI的model可能都是對應(yīng)SDO,因此可能需要適當(dāng)?shù)姆?式做一些SDO的轉(zhuǎn)化,可以在JS

57、F中直接使用SDO作為數(shù)據(jù)源進行展現(xiàn), 而且這也是一種比較合理的做法. 對于UI和BPEL流程的集成,可能會使用一些BPE的API,在JSP或者 Action中啟動一個流程,并持續(xù)的和流程交互,UI的輸入會被映射到流 程的人工服務(wù). 對于UI和SCA的集成 也會用到WPS中的SCA API,具體可以參考相關(guān)的 Sample推薦 UI,Process和SCA 各司其職,主要的業(yè)務(wù)功能仍然使用其 最適合的方式,SCA和流程主要作為集成的手段,這樣,對于開發(fā)部 署,變更等,系統(tǒng)具有更大的靈活性.在流程模塊中,盡量不包含流程 以外的業(yè)務(wù)邏輯,業(yè)務(wù)功能應(yīng)當(dāng)在業(yè)務(wù)流程之后的SCA模塊中實現(xiàn). 北京恒訊時代

58、信息技術(shù)有限公司 59 以服務(wù)為中心的開發(fā)和集成-持續(xù)測試 根據(jù)定義的集成模型,和持續(xù)的集成,迭代的開發(fā),最終所有的集成會在預(yù)定的時間完成,此 時需要進行完整的全面測試,測試路徑將涵蓋UI,流程,SCA模塊和后臺系統(tǒng). 可以先測試一個流程中的一個功能,保證從UI到后臺系統(tǒng)的連通性,驗證體系結(jié)構(gòu)的可行性. 注意如果對整個結(jié)構(gòu)沒有把握的話,這個過程可能提前.通常情況下,具備基礎(chǔ)的SOA開發(fā)經(jīng)驗 的工程師和架構(gòu)師在設(shè)定的架構(gòu),都能夠滿足運行時候的需要,而不會產(chǎn)生全面集成時的大的 架構(gòu)變更. 業(yè)務(wù)功能測試是一項很巨大的工作,最好確保有一些自動測試代碼和log分析工具來協(xié)助進行測 試,目前IBM公司也在

59、開展一些SOA testing 方面的工作,希望將來會有整套的方法論和測試工 具支持SOA測試. 部署也應(yīng)該進行測試,以保證相應(yīng)的開發(fā)平臺和最終的運行環(huán)境匹配,因此當(dāng)開發(fā)進行到一定 的程度,應(yīng)當(dāng)進行部署方面的測試,部署的測試主要是進行部署和連通性測試,保證環(huán)境的問 題盡早暴露.因此部署測試應(yīng)該在至少全部的應(yīng)用框架都能夠運行,但是功能尚未全面完成的 時候開始的. 一個具體的SOA項目可能會有數(shù)十個部署單元,構(gòu)建自動部署的腳本是十分必要和明智的,可以 幫節(jié)約很多的人力和時間,尤其在項目的后期,進行持續(xù)的測試和改進的時候,會頻繁的部署 和測試.一般使用基于ANT的自動化部署腳本,可以方便的解決問題.

60、 使用Ant工具和jacl部署腳本以在項目過程中積累的測試用例和測試代碼,最終將完成從開發(fā)到 部署到測試的自動化集成. 最終的測試腳本會首先從CVS上下代碼,然后基于預(yù)先配置的類路徑自動構(gòu)建項目,然后實打包 項目的EAR文件,然后是部署,最后是使用前面完成的測試代碼,自動運行測試腳本,打印測試 結(jié)果.這樣項目的開發(fā)團隊可以實現(xiàn)很高的開發(fā)效率.這里重復(fù)強調(diào)一點,因為采用很多動態(tài) 的技術(shù)和弱類型的對象,SCA編程模型對運行時的要求變得更高,很多問題只能在運行時才會發(fā) 現(xiàn),因此,持續(xù)的測試和自動化的測試將會使得相應(yīng)的SOA開發(fā)達到事半功倍的效果. 北京恒訊時代信息技術(shù)有限公司 60 以服務(wù)為中心的開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論