<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零雨其蒙's Blog

    做優(yōu)秀的程序員
    隨筆 - 59, 文章 - 13, 評(píng)論 - 58, 引用 - 0
    數(shù)據(jù)加載中……

    大型企業(yè)信息化中的BPM和SOA實(shí)戰(zhàn)

    本文發(fā)表于《中國計(jì)算機(jī)用戶》雜志2009年第3、4期

    http://media.ccidnet.com/art/2655/20090106/1652443_1.html

    http://media.ccidnet.com/art/2655/20090223/1686267_1.html

    大型企業(yè)信息化中的BPMSOA實(shí)戰(zhàn)

    萬星[1]

    JPort Group

    北京交通大學(xué)

    1       概覽

    對(duì)于BPMSOA的理解一直是非常困難的,我認(rèn)為如果沒有企業(yè)信息系統(tǒng)的豐富開發(fā)背景,以及對(duì)于軟件工程歷史的充分了解,想要從紛繁的概念中理清一條思路,進(jìn)一步為己所用更是讓人難以下手。SOABPM概念的提出都具有悠久的歷史,在學(xué)術(shù)界的研究也在向語義SOA和語用SOA等方向發(fā)展(這也是我們另一個(gè)實(shí)驗(yàn)室正在探索的方向)。而廠商的驅(qū)動(dòng)使得SOABPM逐漸落地,從早期的大量文獻(xiàn)在解釋SOAWeb Service,到后來ESB的出現(xiàn),以及最近的SCA/SDO規(guī)范的完善(特別是具體產(chǎn)品的落地),直至今年興起的BPMSOA熱潮,我們可以看到SOA離我們的工業(yè)實(shí)踐越來越近了,它不再是一個(gè)時(shí)髦的大詞。工作流抑或業(yè)務(wù)流程的辨析同樣也使用戶為難,簡(jiǎn)單而言,業(yè)務(wù)流程∈工作流。業(yè)務(wù)流程管理,或BPM,強(qiáng)調(diào)的概念是企業(yè)應(yīng)用集成(EAI)。而Workflow領(lǐng)域的研究則顯得單純一些。許多開發(fā)者都是從技術(shù)的角度來考慮SOA,因此相信SOA只是一種新的分布式架構(gòu)或者是一種新的EAI方式。起初,我也興奮的認(rèn)為將BPMSOA結(jié)合起來是偉大的想法(兩種以EAI為目標(biāo)的技術(shù)整合在一起),以流程的方式整合服務(wù),這是比ESB的想法更加先進(jìn)的主意。然而,隨著研究和實(shí)踐的深入,我越發(fā)覺得SOABPM結(jié)合帶來的好處遠(yuǎn)不止于此。

    1.1   我們做了什么?

    我們JPort團(tuán)隊(duì)主要研究了IBMBPMSOA方法論,并結(jié)合了企業(yè)管理中的一些方法,又融合了軟件開發(fā)領(lǐng)域幾十年的模式和最佳實(shí)踐,對(duì)于我國南方某大型港口企業(yè)的業(yè)務(wù)流程進(jìn)行了優(yōu)化,并基于優(yōu)化的流程設(shè)計(jì)了SOA風(fēng)格的IT系統(tǒng)。

    我們的主要工作包括:

    1 找到了從企業(yè)戰(zhàn)略到業(yè)務(wù)操作具有完整映射的組件模型方法論——IBM創(chuàng)造的CBM(組件化商業(yè)模型),設(shè)計(jì)業(yè)務(wù)組件模型;

    2 引入了企業(yè)價(jià)值樹模型從企業(yè)戰(zhàn)略出發(fā)推導(dǎo)出業(yè)務(wù)流程的KPI(關(guān)鍵績(jī)效指標(biāo));

    3 結(jié)合既有的業(yè)務(wù)流程優(yōu)化模式,CBM方法論,企業(yè)價(jià)值樹模型,創(chuàng)建了一套業(yè)務(wù)流程重構(gòu)方法論,包括業(yè)務(wù)流程Bad Smell,重構(gòu)名錄,以及評(píng)估測(cè)試模型體系;

    4 利用用例對(duì)企業(yè)的既有業(yè)務(wù)流程和業(yè)務(wù)規(guī)則(包括國家法規(guī)和企業(yè)內(nèi)部的規(guī)章制度以及其他更為細(xì)節(jié)的業(yè)務(wù)規(guī)則)進(jìn)行了詳盡的調(diào)研;

    5 通過使用IBM Websphere Business ModelerWBM)對(duì)那些畫在紙上或Visio,甚至是Rational Rose中的現(xiàn)有業(yè)務(wù)流程模型(AS-IS Model)進(jìn)行了重繪,并利用其按照我們提出的業(yè)務(wù)流程重構(gòu)方法論進(jìn)行業(yè)務(wù)流程優(yōu)化,得到未來的業(yè)務(wù)流程模型(TO-BE Model)。在WBM中,我們可以為組件(在WBM中每個(gè)流程任務(wù)都是一個(gè)組件)的一些特別的事件屬性賦值,并將那些由企業(yè)價(jià)值樹模型推導(dǎo)出的KPI設(shè)置在相應(yīng)的組件上;

    6 利用IBMSOMA(面向服務(wù)建模和架構(gòu))方法論識(shí)別,規(guī)約和實(shí)現(xiàn)服務(wù);

    7 使用IBM Websphere Integration DeveloperWID)來設(shè)計(jì)和開發(fā)SOA系統(tǒng)。其中除了包含一般服務(wù),業(yè)務(wù)流程服務(wù),人員任務(wù)服務(wù),狀態(tài)機(jī)服務(wù)和業(yè)務(wù)規(guī)則服務(wù),還包括與第三方服務(wù)(無線通訊服務(wù),消息服務(wù)以及金蝶財(cái)務(wù)系統(tǒng),AIS等)的交互,與遠(yuǎn)程RCPRich Client Platform)客戶端的交互,以及遺留系統(tǒng)集成;

    8 將系統(tǒng)部署在IBM Websphere Process ServerIBM Websphere ESB之上,并通過企業(yè)Dashboard監(jiān)控之前在WBM中設(shè)置的KPI

    9 提供了一份完整的投資回報(bào)分析報(bào)告。

    1.2   本文提供什么?

    在針對(duì)該大型港口企業(yè)信息化項(xiàng)目中,我們遇到了一系列的問題,在理清了SOABPM、企業(yè)信息系統(tǒng)這幾個(gè)大的主題紛繁復(fù)雜的知識(shí)結(jié)構(gòu),以及IBM在這些領(lǐng)域的眾多概念之后,對(duì)關(guān)于這些主題的如下問題進(jìn)行了重新的審視:

    兩個(gè)首先被提出來的大問題是:

    n  從企業(yè)角度看SOABPMSOA有何不同?

    n  SOA如何幫助企業(yè)進(jìn)行業(yè)務(wù)流程管理?

    大量的文獻(xiàn)都在講解什么是SOA,然而關(guān)于它究竟有何不同的討論卻難以具有說服力。本文試圖結(jié)合理論和實(shí)踐,規(guī)范與實(shí)現(xiàn)來說明實(shí)戰(zhàn)中的SOABPM是如何相互作用幫助企業(yè)提升企業(yè)績(jī)效,滿足企業(yè)核心戰(zhàn)略,以及實(shí)現(xiàn)ROI(投資回報(bào)率)。

    2       從企業(yè)角度看SOABPM

    2.1   SOA有何不同?

    正如前文所說,理解SOA一定要站在企業(yè)的高度,與其他方法學(xué)和技術(shù)相比,SOA具有以下特點(diǎn):

    n  SOA是一種架構(gòu)模式(現(xiàn)在來看,其應(yīng)該是一整套方法論),而非一個(gè)產(chǎn)品。

    n  SOA比過去的任何IT技術(shù)都要更關(guān)注企業(yè),其中的服務(wù)應(yīng)該是指業(yè)務(wù)服務(wù),或者說企業(yè)服務(wù),而非具體技術(shù)提供的服務(wù),注意這是一個(gè)識(shí)別和設(shè)計(jì)服務(wù)時(shí)選取視角的問題。與領(lǐng)域建模中所提到的服務(wù)區(qū)分比較困難,因?yàn)閷?duì)于這兩個(gè)概念的理解因人而異。

    n  SOA比過去的任何IT技術(shù)更加強(qiáng)調(diào)抽象、關(guān)注點(diǎn)分離,也更加強(qiáng)調(diào)基于標(biāo)準(zhǔn)和規(guī)范,平臺(tái)中立,技術(shù)無關(guān),這與計(jì)算機(jī)科學(xué)的發(fā)展是密不可分的。

       

    SOA絕不僅僅意味著企業(yè)應(yīng)用集成(EAI),也絕不僅僅就是一種分布式架構(gòu),與JEE.Net,以及更早的CORBA(公用對(duì)象請(qǐng)求代理(調(diào)度)程序體系結(jié)構(gòu)Common Object Request Broker Architecture 等技術(shù)相提并論。

    SOA的革命性之處在于其把企業(yè)定義為提供服務(wù)的組織,服務(wù)提供的單元作為組件,就像OO(面向?qū)ο螅┦歉锩缘囊粯樱ㄒ膊粌H僅只是一個(gè)編程模型)。在從面向過程、結(jié)構(gòu)化方法論向OO邁進(jìn)過程中(其間還經(jīng)歷過很多的開發(fā)范型),我們需要改變過去以機(jī)器指令看待業(yè)務(wù)執(zhí)行的思維,而應(yīng)以對(duì)象來建模業(yè)務(wù)。而SOA中,則需要我們從更加宏觀的企業(yè)關(guān)注點(diǎn)出發(fā),其最高綱領(lǐng)當(dāng)然就是企業(yè)戰(zhàn)略了。

    1.1節(jié)中我所提到的那些方法論,相輔相成,渾然一體,完成了一個(gè)從企業(yè)戰(zhàn)略逐步推向IT實(shí)現(xiàn),又以IT實(shí)現(xiàn)幫助企業(yè)監(jiān)控企業(yè)績(jī)效,從而調(diào)整企業(yè)戰(zhàn)略的過程。在環(huán)環(huán)相扣的BPMSOA解決方案中,可以更好的體會(huì),SOA中的服務(wù),是如何從企業(yè)的高度得來的。  

    2.2   Component Business Model

    CBMIBM提出的以組件方式重新理解企業(yè)的方法論,在這個(gè)方法論中,包括三個(gè)主要步驟:洞察,架構(gòu)和投資。其中最為重要的就是設(shè)計(jì)業(yè)務(wù)組件模型。

    業(yè)務(wù)組件模型就是將企業(yè)中那些使用了相似的資源(人員,技術(shù)等)的類似活動(dòng)聚合起來,其實(shí)這一概念和好處是非常容易理解的。快速理解這一概念的好方法是(我們就是這樣做的),把企業(yè)的流程搜集起來,然后使用Excel將每個(gè)流程作為一列,然后行表示業(yè)務(wù)活動(dòng),你可以將那些相同的活動(dòng)(不同的流程總是會(huì)共享一些共同的流程活動(dòng),比如付款,計(jì)費(fèi),查詢訂單號(hào))放在同一行,給他們起一個(gè)名字,這個(gè)名字就是服務(wù)名,然后在將一些看上去屬于同一類的活動(dòng)用一個(gè)彩色的方塊圍起來,這就是一個(gè)業(yè)務(wù)組件了。企業(yè)的組織結(jié)構(gòu)將幫助你設(shè)計(jì)業(yè)務(wù)組件,然而對(duì)于大型企業(yè)進(jìn)行分析,你就會(huì)發(fā)現(xiàn)其中存在很多冗余、重復(fù)甚至是莫名奇妙的組織單元或職能部門,因此需要注意的是,不要讓糟糕的組織模型限制了設(shè)計(jì)業(yè)務(wù)組件的思維。

    CBM將組件放在一個(gè)二維矩陣中,橫軸是責(zé)任等級(jí),縱軸是業(yè)務(wù)能力,交點(diǎn)是業(yè)務(wù)組件。責(zé)任等級(jí)與我們?cè)谛畔⒐芾韺I(yè)課本上看到的那個(gè)信息系統(tǒng)分級(jí)是一致的,CBM中定為Direct(引導(dǎo)),Control(控制),Execute(執(zhí)行),對(duì)應(yīng)的信息系統(tǒng)分級(jí)實(shí)際上就是戰(zhàn)略層,戰(zhàn)術(shù)層和操作層。其中Control主要完成的是業(yè)務(wù)的監(jiān)管,包括一些分析,報(bào)告等內(nèi)容。

    按照IBM的官方說法7:業(yè)務(wù)組件包含五個(gè)方面,分別是業(yè)務(wù)用途,活動(dòng),資源,治理模式和業(yè)務(wù)服務(wù)。如果你使用過WBM,那么看到活動(dòng),資源和業(yè)務(wù)服務(wù)一定會(huì)感到興奮,如果這些直接轉(zhuǎn)成IT設(shè)計(jì),那么我們就完成了一次從業(yè)務(wù)直接映射到IT的過程!而其中的業(yè)務(wù)服務(wù),就是我們?cè)?/span>SOA中的服務(wù)的一部分(因?yàn)檫€包括其他兩類來源的服務(wù),見2.3節(jié))。

    2.3   Service-Oriented Modeling Architecture

    IBMSOMA方法論主要就是用來識(shí)別、規(guī)約和實(shí)現(xiàn)服務(wù)的。識(shí)別服務(wù)主要有三種方式,第一種就是分解業(yè)務(wù)領(lǐng)域,其實(shí)這種方法可以借助CBM來完成,還記得前面所說的業(yè)務(wù)組件包含的業(yè)務(wù)服務(wù)嗎?那個(gè)業(yè)務(wù)服務(wù)實(shí)際上就是這么推導(dǎo)出來的。第二種就是基于對(duì)既有系統(tǒng)的分析(這也是SOMA方法論中包含的一個(gè)活動(dòng)),在已有的系統(tǒng)中(這些系統(tǒng)不久就變成遺留系統(tǒng)了),提供了哪些功能,完成了業(yè)務(wù),這就是服務(wù)了,第一種方法叫自頂向下,第二種方法叫自底向上,而第三種方法當(dāng)然就是從中間向兩邊了(沒有創(chuàng)意的IT理論界)。這種方法就是從其他方面考慮一下,有沒有落下的服務(wù)。

    第二個(gè)步驟是制定服務(wù)規(guī)約,包括接口簽名,數(shù)據(jù)對(duì)象,組件設(shè)計(jì)等。列舉出的就是最重要的。其實(shí)這些設(shè)計(jì)的原則以及模式,大都可以來自于過去分布式系統(tǒng)的經(jīng)驗(yàn),而對(duì)于服務(wù)識(shí)別,我們亦可參考分析模式,我主要參考的是Martin Fowler的《分析模式》。在實(shí)際項(xiàng)目中,我主要需要研究計(jì)費(fèi)模式。服務(wù)是通過接口暴露的,而由組件來提供相應(yīng)的服務(wù)實(shí)現(xiàn)。這沒什么特別的。而數(shù)據(jù)對(duì)象設(shè)計(jì),這里的數(shù)據(jù)對(duì)象并非單指持久化對(duì)象,也非表現(xiàn)層數(shù)據(jù)對(duì)象或者數(shù)據(jù)傳輸對(duì)象(DTO1、值對(duì)象(VO2,而是指貫穿于各層之間的數(shù)據(jù)對(duì)象。這些數(shù)據(jù)對(duì)象就是Pure Data Object,只有屬性沒有方法。

    第三個(gè)步驟就是決策服務(wù)的實(shí)現(xiàn)。每種服務(wù)究竟該如何實(shí)現(xiàn),是自己實(shí)現(xiàn)還是封裝遺留系統(tǒng)提供的服務(wù)/第三方服務(wù)(映射已有/外部服務(wù)),自己實(shí)現(xiàn)是新建Java服務(wù),還是流程服務(wù)(包括狀態(tài)機(jī)),或是人員任務(wù),抑或是業(yè)務(wù)規(guī)則。

    從這套思想的步驟我們就可以看到,從來自于業(yè)務(wù)域(其來自于更高層的企業(yè)戰(zhàn)略分析)識(shí)別出來的服務(wù),到規(guī)約上的設(shè)計(jì),以及最終的實(shí)現(xiàn)決策,充分的體現(xiàn)了,SOA方法論中更加注重從企業(yè)出發(fā)和關(guān)注點(diǎn)分離這兩個(gè)特點(diǎn)。換個(gè)角度,由于當(dāng)前IT技術(shù)以及計(jì)算機(jī)科學(xué)的發(fā)展,才使得我們可以如此輕松的實(shí)現(xiàn)從業(yè)務(wù)到IT的映射。下面就來講一下技術(shù)標(biāo)準(zhǔn),以及它在現(xiàn)實(shí)世界中是什么樣子的。同時(shí),也可以體會(huì)一下思想,理論,技術(shù)與實(shí)現(xiàn)是如何很好的結(jié)合起來的。

    2.4   SCA/SDO規(guī)范與實(shí)現(xiàn)

    就在我擱置對(duì)于SOA的研究有半年之久的時(shí)候,忽然打開互聯(lián)網(wǎng),發(fā)現(xiàn)SOA已經(jīng)有標(biāo)準(zhǔn)了,那就是剛露頭角的SCAService Component Architecture)和SDOService Data Object)。因此,在SOA有何不同的論述中,我尤其強(qiáng)調(diào)了SOA注重標(biāo)準(zhǔn)和規(guī)范這一事實(shí)。

    SCA

    SCA是一個(gè)SOA的編程模型,就好比JSPWeb開發(fā)的一個(gè)編程模型一樣,Web是一種架構(gòu)模式,而SOA亦然。SCA有很多部分組成,核心理念是1)將業(yè)務(wù)功能作為一系列的服務(wù)而提供,2)將這一系列的服務(wù)組裝起來。SCA致力于創(chuàng)建服務(wù)組件,以及解決各服務(wù)組件間的多技術(shù)互訪問題。SCA的核心工件是組件(Component)。5

    如果想要問SCA與其他諸如JMSCORBA這樣的編程模型有何不同,我覺得IBMBarcia Brent給了我們最好的答案:SCA 向您提供一個(gè)以與技術(shù)無關(guān)的方式定義接口、實(shí)現(xiàn)和引用的模型,從而使您能夠?qū)⑦@些元素綁定到所選擇的某一技術(shù)的特定實(shí)現(xiàn)。3

    OK,當(dāng)我們談及組件或?qū)ο髸r(shí),無非要涉及這么幾個(gè)抽象關(guān)注點(diǎn)(如果你認(rèn)同每個(gè)實(shí)組件或?qū)ο蠖家獙⒔涌谂c實(shí)現(xiàn)分離的話):其接口是什么,實(shí)現(xiàn)是什么,以及其依賴了什么(依賴的組件或?qū)ο螽?dāng)然又包含接口和實(shí)現(xiàn))。SCA則把關(guān)注點(diǎn)分離發(fā)揮到了極致,接口,實(shí)現(xiàn),以及引用都是可選的。如圖2.4-1所示。

    2.4-1 SCA組件模型

    于是在SCA規(guī)范中5SCA當(dāng)前支持接口類型系統(tǒng)包括:Java interfacesWSDLWSDL 1.1 portTypes WSDL 2.0 interfaces

    而對(duì)于實(shí)現(xiàn),則可以包括JavaC++BPEL流程,Web Service以及SCA Composite。在IBM WID中可以選擇實(shí)現(xiàn)(generating implements)為JavaWeb ServiceProcessState MachineRuleHuman Task等。ProcessState Machine(特定的Process)由BPEL技術(shù)支持。

    當(dāng)SCA模塊(在SCA規(guī)范中即Composite,在IBM的產(chǎn)品中被稱為Module)被導(dǎo)出(作為服務(wù)),或者需要導(dǎo)入其他服務(wù)時(shí),SCA中還可以指定要訪問服務(wù)使用的機(jī)制是什么。這是通過Binding實(shí)現(xiàn)的。由于導(dǎo)入、導(dǎo)出都是抽象概念,因此需要綁定通訊機(jī)制。

    通過Binding,來指出想要調(diào)用服務(wù)和服務(wù)被調(diào)用時(shí)的訪問機(jī)制,包括SCAJCAWeb ServiceJMS,無狀態(tài)會(huì)話bean等。

    OK,接口,實(shí)現(xiàn),Binding,引用,全是獨(dú)立變化,自由組合的,全面的靈活,與技術(shù)無關(guān)。前所未有,這就是SCA

     

    IBM的實(shí)現(xiàn)版本中,可以借助WID,很方便的開發(fā)SCA程序,并且提供了很多便利的擴(kuò)展。比如談及實(shí)現(xiàn)問題時(shí),IBM提供的諸如ProcessState Machine之類的實(shí)現(xiàn)類型。

    SDO

    SDO是一個(gè)數(shù)據(jù)應(yīng)用系統(tǒng)開發(fā)框架,它包括架構(gòu)和API。它在SOA系統(tǒng)中充當(dāng)抽象數(shù)據(jù)。6

    SCA規(guī)定了怎樣編寫SOA程序,組件、服務(wù)、引用等都是如何定義的,以及它們之間如何通訊,而且還規(guī)定了如何傳遞數(shù)據(jù),數(shù)據(jù)的類型可以有很多種,但是首選SDO

    那么SDO又是如何超越以往任何技術(shù)或規(guī)范實(shí)現(xiàn)技術(shù)中立、平臺(tái)無關(guān)的呢?沒什么令人驚奇的,做到這些無非就是增加中介和中間層次,將不同的關(guān)注點(diǎn)隔離。SDO客戶端通過SDO框架工作在SDO數(shù)據(jù)圖(Data Graph)之上。數(shù)據(jù)圖中包含多個(gè)數(shù)據(jù)對(duì)象和改變摘要(Change Summary)。DMS(數(shù)據(jù)中介服務(wù))訪問數(shù)據(jù)源,即DMS負(fù)責(zé)從數(shù)據(jù)源創(chuàng)建數(shù)據(jù)圖,并且基于對(duì)數(shù)據(jù)圖的改變更新數(shù)據(jù)源。

    如果想要更新SDO數(shù)據(jù),將如何做呢?首先SDO客戶端(即SDO應(yīng)用)遍歷數(shù)據(jù)圖,修改其中的數(shù)據(jù)對(duì)象,然后將修改的數(shù)據(jù)圖傳回DMS,然后DMS根據(jù)修改的數(shù)據(jù)圖更新數(shù)據(jù)源。

    可以看出,正是由于有了數(shù)據(jù)圖和數(shù)據(jù)中介服務(wù)這兩個(gè)隔離,才將具體的數(shù)據(jù)源與SDO應(yīng)用分離開,而由SDO框架來做出相應(yīng)的轉(zhuǎn)換。

    IBM對(duì)SDO進(jìn)行了擴(kuò)展,就是所謂的BOBusiness Object)。

    閱讀和理解規(guī)范,并且與具體的實(shí)現(xiàn)產(chǎn)品聯(lián)系起來,可以更好的理解SOA思想。

    BPEL

    BPEL是用來編排流程服務(wù)的規(guī)范,這里的服務(wù)技術(shù)是WS*-堆棧的Web ServiceBPEL規(guī)范中詳細(xì)的定義了如何引入Web Service,其中包含的各種活動(dòng)(諸如InvokeIFScope等)以及如何建立引用。在規(guī)范中,對(duì)于引用的其他服務(wù)稱為Partner,可以看出,這樣的說法更貼近于業(yè)務(wù)層次。4

     

    正是由于SCASDO這樣的將抽象發(fā)揮到極致的規(guī)范,使得我們可以按照CBMSOMA方法來設(shè)計(jì)SOA系統(tǒng)。我想使用一下WID來進(jìn)行SOA系統(tǒng)的開發(fā),將使你更容易體會(huì)我想說的內(nèi)容。可見,SCASDO中規(guī)定的組件,服務(wù),接口,數(shù)據(jù)對(duì)象,以及BPEL中提到的活動(dòng),與之前CBMSOMA方法中提到的組件,業(yè)務(wù)服務(wù),接口,數(shù)據(jù)對(duì)象,和活動(dòng),是非常吻合的,而且這是一個(gè)前后照應(yīng),完整的方法體系。

     

    小結(jié)

    寫到這,似乎可以將理論和實(shí)踐、規(guī)范和實(shí)現(xiàn)聯(lián)系起來了,再強(qiáng)調(diào)一次,SOA的思維是從企業(yè)業(yè)務(wù)出發(fā),甚至是企業(yè)戰(zhàn)略出發(fā),來考慮服務(wù)和組件,而不是從遠(yuǎn)程方法調(diào)用(RPC),消息服務(wù),或者是分布式對(duì)象(EJB等)的角度去考慮服務(wù)。

    SOA不只是EAI,這句話的另一個(gè)意思是,SOA包含EAI的部分。前文我提到了,通過BPELSCA Composite這樣的技術(shù),我們可以實(shí)現(xiàn)系統(tǒng)的集成,企業(yè)是流程驅(qū)動(dòng)的,流程是由業(yè)務(wù)組件組成的,那么我們就可以通過BPEL將服務(wù)組合起來,或者通過SCA將服務(wù)組裝起來(SCA的基本理念之一)。那么,還要ESB干嘛?ESB在哪?

    2.5   ESB在哪?

    ESBEnterprise Service Bus,企業(yè)服務(wù)總線)繼承了EAI的思想。我不必重復(fù)講解Hub/SpokeBus這兩種拓?fù)浣Y(jié)構(gòu)。因此,ESB的出現(xiàn)是為了解決集成問題。

    ESBSOA的一種實(shí)現(xiàn)模式,任何接入ESB的應(yīng)用都將封裝為服務(wù)的形式,其核心是個(gè)中介流(在IBM Websphere ESBWESB)中是通過策略SCA/SDO實(shí)現(xiàn)的中介流組件),可以在其中設(shè)計(jì)消息路由,然后由其來完成消息的路由,格式、協(xié)議的轉(zhuǎn)換/翻譯,以及消息的分發(fā)。消息路由當(dāng)然是要按照業(yè)務(wù)邏輯來設(shè)計(jì)。兩個(gè)系統(tǒng)(包括但不限于異構(gòu)系統(tǒng))需要進(jìn)行通訊難道不是因?yàn)闃I(yè)務(wù)邏輯的需要?這其中的業(yè)務(wù)邏輯就包括了業(yè)務(wù)規(guī)則和業(yè)務(wù)流程,不過也有可能就是某個(gè)業(yè)務(wù)需求,需要對(duì)兩個(gè)系統(tǒng)進(jìn)行消息轉(zhuǎn)換。

    可以簡(jiǎn)單的說,SCA+BPEL就可以代替ESB的存在了,BPEL可以充當(dāng)中介流,只不過它更為強(qiáng)大(尤其是IBMSCA作為WESB的編程模型之后,這進(jìn)一步模糊了直接使用SCA和使用ESB的界限,如果說狀態(tài)機(jī)是Process的一個(gè)特定實(shí)現(xiàn),那么WESB就是SCA的一個(gè)特定實(shí)現(xiàn)了)。但是如果僅僅是想做EAI,或者嘗試用SOA的方式做EAI,而不是如我前文所講,采用一套完整的、從業(yè)務(wù)到IT的水到渠成式的SOA解決方案,則采用SCA+BPEL會(huì)面臨更加復(fù)雜的學(xué)習(xí)曲線,雖然我認(rèn)為它是更好的實(shí)現(xiàn)。

    3       BPMSOA互動(dòng)

        BPM是從BPR(業(yè)務(wù)流程重組)發(fā)展而來,在大型的企業(yè)中,想要實(shí)施ERP(企業(yè)資源計(jì)劃)往往都要經(jīng)歷一個(gè)BPR的過程,然而想要一蹴而就的BPR很難在大型企業(yè)中實(shí)現(xiàn)。預(yù)先看不到一點(diǎn)好處的改革將會(huì)受到巨大的阻撓,因此,一個(gè)更好的方式,先將企業(yè)的流程監(jiān)管起來,發(fā)現(xiàn)流程運(yùn)轉(zhuǎn)中的問題,或者那些大幅度創(chuàng)造價(jià)值的熱區(qū),然后在對(duì)業(yè)務(wù)活動(dòng)揚(yáng)長(zhǎng)避短,以提高企業(yè)的效率。那么,如果才能有效的監(jiān)管流程呢?答案當(dāng)然是數(shù)字化業(yè)務(wù)流程,還記得CBM方法論嗎?我們需要一套從執(zhí)行到控制再到戰(zhàn)略的、互相溝通的組件。然后在組件之上設(shè)定KPI和特別事件(執(zhí)行時(shí)間和成本,資源,等待時(shí)間和成本,角色/人員等)的屬性。當(dāng)企業(yè)正常運(yùn)轉(zhuǎn)時(shí),我們就可以從現(xiàn)場(chǎng)直接搜集到第一手資料,進(jìn)行企業(yè)的監(jiān)控了。然后根據(jù)監(jiān)控結(jié)果進(jìn)行流程優(yōu)化。優(yōu)化后再監(jiān)控,再根據(jù)新的結(jié)果優(yōu)化,如此反復(fù)。

        這里就存在兩個(gè)問題,一個(gè)問題是KPI如何得來;第二個(gè)問題,當(dāng)發(fā)現(xiàn)了問題,并且找到了優(yōu)化方案后,IT如何能夠快速的隨需而變。以下兩節(jié)將解決這兩個(gè)問題。

    3.1   企業(yè)價(jià)值樹模型

    企業(yè)價(jià)值樹可以幫助我們從企業(yè)戰(zhàn)略到業(yè)務(wù)流程KPI的推導(dǎo),當(dāng)然,這不是數(shù)學(xué),嚴(yán)謹(jǐn)?shù)耐茖?dǎo)是不可能的。我們可以先從企業(yè)戰(zhàn)略主題出發(fā),然后由主題發(fā)現(xiàn)企業(yè)關(guān)鍵績(jī)效指標(biāo),然后在尋找影響這些企業(yè)關(guān)鍵績(jī)效指標(biāo)的核心驅(qū)動(dòng)流程,最終推導(dǎo)出流程的關(guān)鍵績(jī)效指標(biāo)(KPI)。

    不得不說,詳細(xì)完整的CBM方法論應(yīng)該包括這個(gè)部分,但是這一方面大概是IBM內(nèi)部的機(jī)密,因此我們只能通過引入其他的模型來解決問題。

    3.2   SOA幫助企業(yè)數(shù)字化BPM

    CBM方法論我們可以看到(你可以回顧本文的相應(yīng)章節(jié)),其核心的業(yè)務(wù)組件模型包括了活動(dòng)、資源等,我們也提到過,業(yè)務(wù)組件是從業(yè)務(wù)流程中歸納出來的,它們是一個(gè)互動(dòng)的關(guān)系。

    從概覽部分你可以了解到JPort團(tuán)隊(duì)做了哪些工作,這些工作連起來就是為了利用SOA幫助企業(yè)數(shù)字化BPM

    SOA的方法論支持BPM中需要監(jiān)控業(yè)務(wù)組件的需求,因?yàn)?/span>SOA的服務(wù)是由業(yè)務(wù)組件來實(shí)現(xiàn)的。另外,SOA也可以滿足隨需應(yīng)變的業(yè)務(wù)要求,就像領(lǐng)域驅(qū)動(dòng)建模一樣,基于業(yè)務(wù)建立的模型,神奇的可以隨業(yè)務(wù)更好的變化。SOA的方法論可以完整的更好的以這種方式建模,就像本文始終所演示的那樣。

    4       結(jié)論

        采用SOA方法論一定要站在企業(yè)的角度去思考問題,具體的、可操作的方法就是CBM,更重要的是其中蘊(yùn)含的思想。首先要了解企業(yè)的戰(zhàn)略是什么,根據(jù)戰(zhàn)略再來了解企業(yè)的業(yè)務(wù),可以通過業(yè)務(wù)流程建模軟件模擬企業(yè)流程,分析企業(yè)問題。然后俯視整個(gè)企業(yè),設(shè)計(jì)出業(yè)務(wù)組件模型,并暴露服務(wù)。接下來在通過SOMA方法識(shí)別出所有的服務(wù),之后再考慮服務(wù)規(guī)約,數(shù)據(jù)對(duì)象模型的設(shè)計(jì)。最后,才是決策實(shí)現(xiàn)的方式,復(fù)用遺留系統(tǒng)的功能,引入第三方服務(wù),還是自行開發(fā)。當(dāng)然并非所有的企業(yè)應(yīng)用都有必要采用這樣的步驟,比如只是一個(gè)新的功能,可以不妨以SOA的思想來開發(fā)這個(gè)新功能,關(guān)鍵是要為企業(yè)提供合理的ROI

    新的SOA編程模型SCA,與過去的眾多用于SOA實(shí)現(xiàn)技術(shù)相結(jié)合,使得SOA的思想可以更好的實(shí)現(xiàn),比如復(fù)用遺留系統(tǒng),Web Service不再是不二法門,諸如無狀態(tài)會(huì)話BeanJMS之類的應(yīng)用,亦可無縫的連接到SOA系統(tǒng)之中。SDO也增加了更多的抽象層次,其目標(biāo)也更為宏大,這與JDO等目標(biāo)不同。

    SOABPM結(jié)合起來,使得SOA找到了新的務(wù)實(shí)方向,對(duì)于企業(yè)信息系統(tǒng)而言是大有裨益的。

    當(dāng)然,本文主要是從IBMBEAOracleSAPJBossSun等這些Java世界的領(lǐng)導(dǎo)者的視角來看待SOA,以它們的產(chǎn)品和理論為基礎(chǔ),然而不得不說Microsoft有其自己的一套產(chǎn)品和理念,但是,其根本的SOA理論是一致的:以企業(yè)為圓點(diǎn),高度抽象,關(guān)注點(diǎn)分離,技術(shù)中立,平臺(tái)無關(guān);另外,就是其亦看中與業(yè)務(wù)流程管理的整合。畢竟,微軟是BPEL的締造者之一。

        一種務(wù)實(shí)的精神是,開發(fā)那些真正為企業(yè)創(chuàng)造價(jià)值的系統(tǒng),如果某個(gè)業(yè)務(wù)單元本身就是低效和沒有價(jià)值的,我們是不是可以考慮一下改變它的運(yùn)作模式?

     

     

    參考文獻(xiàn)

    1.         Deepak Alur , John Crupi , Dan Malks Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition)Prentice Hall PTR

    2.         Martin FowlerPatterns of Enterprise Application ArchitectureAddison-Wesley Professional

    3.         Roland BarciaJeff Brent,使用服務(wù)組件體系結(jié)構(gòu)構(gòu)建 SOA 解決方案—— 1 部分http://www.ibm.com/developerworks/cn/websphere/techjournal/0510_brent/0510_brent.html

    4.         Tony Andrews, Francisco Curbera,.etc,2003Business Process Execution Language for Web ServicesVersion 1.1

    5.         Michael Beisiegel,Henning Blohm,.etc,2007,SCA Service Component ArchitectureAssembly Model Specification

    6.         Bertrand Portier, Frank Budinsky,2004, Introduction to Service Data Objects:Next-generation data programming in the Java environment,http://www.ibm.com/developerworks/java/library/j-sdo/

    7.         IBM商業(yè)研究院,2006,組件化業(yè)務(wù)模型:企業(yè)實(shí)現(xiàn)專業(yè)化的有效工具

    8.         IBM Business Consulting Services, New competitive weapons in the insurance business: Insurance component business modeling, http://www-935.ibm.com/services/us/imc/pdf/g510-4033-new-competitive-weapons.pdf

    9.         Anurag Goel, Enterprise Integration:EAI vs. SOA vs. ESB, http://hosteddocs.ittoolbox.com/Enterprise%20Integration%20-%20SOA%20vs%20EAI%20vs%20ESB.pdf

     

     



    [1] 作者系北京交通大學(xué)經(jīng)濟(jì)管理學(xué)院信息管理專業(yè)研究生,其領(lǐng)導(dǎo)的JPort團(tuán)隊(duì)榮獲了2008 IBM杯中國大學(xué)生SOA業(yè)務(wù)流程建模競(jìng)賽大中華區(qū)季軍。本文基于其參賽作品寫成。

    posted on 2009-05-21 11:41 零雨其蒙 閱讀(337) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 红杏亚洲影院一区二区三区| 国产亚洲av片在线观看播放| 久久精品国产亚洲AV麻豆~| 亚洲精品午夜国产va久久| 一区二区视频在线免费观看| 国产精品视频免费| 亚洲一区视频在线播放| 亚洲小视频在线播放| 特级做a爰片毛片免费看| 日韩精品免费一级视频| 国产亚洲精品无码拍拍拍色欲| 亚洲免费在线观看视频| 国产精品免费久久| 好爽又高潮了毛片免费下载| 亚洲精品V欧洲精品V日韩精品 | 成年午夜视频免费观看视频| 亚洲综合色自拍一区| 亚洲日韩精品无码专区加勒比| 最近免费中文字幕MV在线视频3 | 久久久久国色av免费看| 国产免费一区二区三区VR| 777亚洲精品乱码久久久久久| 日韩a毛片免费观看| 野花高清在线观看免费3中文| 亚洲AV综合色一区二区三区| 亚洲AV无码专区在线厂| 国产h肉在线视频免费观看| 国产成人精品亚洲精品| 亚洲国产无线乱码在线观看| 亚洲精品免费观看| 亚洲熟女少妇一区二区| 天天综合亚洲色在线精品| 国产高清免费视频| 久久亚洲AV无码精品色午夜麻| 日韩在线视频免费| 午夜神器成在线人成在线人免费| 亚洲精品无码久久久久久久| 少妇性饥渴无码A区免费| 亚洲欧洲中文日韩久久AV乱码| 亚洲人成无码网站在线观看| 蜜臀98精品国产免费观看|