摘 要: 在分析傳統(tǒng)企業(yè)應(yīng)用集成" title="應(yīng)用集成">應(yīng)用集成方案的基礎(chǔ)上,提出了面向業(yè)務(wù)" title="面向業(yè)務(wù)">面向業(yè)務(wù)過程的企業(yè)應(yīng)用集成EAI(Enterprise Application Integration)架構(gòu)模型。給出了J2EE平臺(tái)下面向業(yè)務(wù)過程EAI架構(gòu)模型的結(jié)構(gòu),并討論了如何用虛擬組件、EJB組件和Web Services組件實(shí)現(xiàn)過程對(duì)象、業(yè)務(wù)對(duì)象和領(lǐng)域?qū)ο?;最后給出了集成案例,驗(yàn)證了該架構(gòu)模型的可行性。
關(guān)鍵詞: 企業(yè)應(yīng)用集成 業(yè)務(wù)過程管理? 集成框架? J2EE? Web服務(wù)
?
面對(duì)快速變化的市場(chǎng),企業(yè)必須以高速、高效和靈活性作為應(yīng)對(duì)策略,必須對(duì)內(nèi)部的遺留應(yīng)用進(jìn)行有效集成。傳統(tǒng)的點(diǎn)到點(diǎn)應(yīng)用接口集成方法,系統(tǒng)間通過專用的API實(shí)現(xiàn)信息的交流和方法調(diào)用,業(yè)務(wù)過程與企業(yè)信息系統(tǒng)緊密地集成在一起。這種集成方法只能支持固定的業(yè)務(wù)過程,一旦業(yè)務(wù)過程發(fā)生改變或應(yīng)用系統(tǒng)" title="應(yīng)用系統(tǒng)">應(yīng)用系統(tǒng)進(jìn)行了升級(jí),系統(tǒng)之間的集成接口必須重新進(jìn)行編寫,并且每個(gè)系統(tǒng)都要知道與之相集成的系統(tǒng)的結(jié)構(gòu)和內(nèi)容。這種緊耦合的集成方式已經(jīng)不能滿足企業(yè)復(fù)雜多變的業(yè)務(wù)過程活動(dòng)的要求。企業(yè)需要將其集成化應(yīng)用系統(tǒng)的應(yīng)用邏輯與業(yè)務(wù)過程邏輯分開,以使業(yè)務(wù)過程的改變不會(huì)引起應(yīng)用系統(tǒng)間集成方式的改變,從而實(shí)現(xiàn)松耦合的應(yīng)用集成。
為了避免傳統(tǒng)的點(diǎn)對(duì)點(diǎn)集成的缺點(diǎn),人們提出了三層的集成架構(gòu),它將企業(yè)應(yīng)用系統(tǒng)分成表示層、中間層" title="中間層">中間層和企業(yè)信息系統(tǒng)(EISs)層(包括數(shù)據(jù)庫(kù)系統(tǒng))。中間層主要實(shí)現(xiàn)應(yīng)用的業(yè)務(wù)邏輯和各種服務(wù)支持,作為應(yīng)用業(yè)務(wù)邏輯功能實(shí)施的一部分,中間層可以訪問在EISs層運(yùn)行的且與應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)和函數(shù)。EISs層包括那些現(xiàn)在正在使用的企業(yè)應(yīng)用、數(shù)據(jù)庫(kù)系統(tǒng)和企業(yè)原有的應(yīng)用。在三層架構(gòu)中,EISs之間并不直接實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的連接,而是通過一個(gè)面向消息的中間件實(shí)現(xiàn)數(shù)據(jù)的交換。
企業(yè)應(yīng)用的三層架構(gòu)可以說是EAI的一個(gè)里程碑,它徹底改變了企業(yè)中傳統(tǒng)的點(diǎn)對(duì)點(diǎn)的系統(tǒng)集成方式,通過引入一個(gè)中間層實(shí)現(xiàn)不同系統(tǒng)間的協(xié)調(diào)和對(duì)企業(yè)各種事務(wù)處理活動(dòng)的支持。但是三層的企業(yè)信息系統(tǒng)集成體系架構(gòu)還不能滿足企業(yè)多變的業(yè)務(wù)活動(dòng)的要求,系統(tǒng)間的集成仍然是一種緊耦合的集成方式。因此,迫切需要一種新的集成方法。本文提出了一種面向業(yè)務(wù)過程的EAI架構(gòu)模型。
1 面向業(yè)務(wù)過程的EAI架構(gòu)模型
面向業(yè)務(wù)過程的EAI架構(gòu)模型BPEAIAM(The Business Process-oriented EAI Architecture Model)的總體結(jié)構(gòu)如圖1所示。從圖1中可以看出:在BPEAIAM模型中,EISs層、中間層、表示層和客戶端構(gòu)成了明顯的層次關(guān)系,下層應(yīng)用為上一層提供了獨(dú)立完整的功能。因此上層應(yīng)用無需了解下層應(yīng)用內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),只需調(diào)用下層應(yīng)用明確定義的接口和方法來實(shí)現(xiàn)自己的功能。
BPEAIAM模型的中間層由過程對(duì)象、業(yè)務(wù)對(duì)象/業(yè)務(wù)對(duì)象管理器、領(lǐng)域?qū)ο蠛蛿?shù)據(jù)路由器組成。圖2給出了中間層結(jié)構(gòu)。
1.1 過程對(duì)象
過程對(duì)象體現(xiàn)企業(yè)的業(yè)務(wù)處理過程、事件序列、業(yè)務(wù)規(guī)則和特定業(yè)務(wù)對(duì)象間的聯(lián)系。過程對(duì)象管理著運(yùn)行時(shí)業(yè)務(wù)對(duì)象間的協(xié)作,例如:訂單處理過程沒有綁定到某個(gè)特定的業(yè)務(wù)對(duì)象上,相反,它涉及到客戶、客戶地址以及訂購(gòu)明細(xì)等業(yè)務(wù)對(duì)象。這些業(yè)務(wù)對(duì)象間的協(xié)作包括對(duì)訂單下達(dá)方式的描述以及訂單明細(xì)的描述。如果將上述信息放到業(yè)務(wù)對(duì)象中,則會(huì)破壞對(duì)象的封裝性。因此有關(guān)行為規(guī)則的描述應(yīng)該由過程對(duì)象負(fù)責(zé)。
業(yè)務(wù)對(duì)象關(guān)注企業(yè)業(yè)務(wù)功能的實(shí)現(xiàn)細(xì)節(jié),過程對(duì)象關(guān)注業(yè)務(wù)對(duì)象間的聯(lián)系,而不關(guān)心業(yè)務(wù)功能如何實(shí)現(xiàn)。
1.2 業(yè)務(wù)對(duì)象
業(yè)務(wù)對(duì)象體現(xiàn)了企業(yè)業(yè)務(wù)的概念,它包括組織、客戶、訂單等信息項(xiàng)。業(yè)務(wù)對(duì)象將具有特定行為、信息的基本對(duì)象和業(yè)務(wù)規(guī)則進(jìn)行整合。業(yè)務(wù)對(duì)象間是獨(dú)立的,并不與其他業(yè)務(wù)對(duì)象綁定(與其他業(yè)務(wù)對(duì)象綁定是過程對(duì)象的職責(zé))。任何涉及到多個(gè)業(yè)務(wù)對(duì)象的行為都應(yīng)該由過程對(duì)象負(fù)責(zé)。
1.3 領(lǐng)域?qū)ο?/STRONG>
領(lǐng)域?qū)ο蠓从沉颂囟ㄐ袠I(yè)的業(yè)務(wù)概念,它獨(dú)立于具體的應(yīng)用。領(lǐng)域?qū)ο罂赡馨ㄔ擃I(lǐng)域的基本信息(如客戶、訂單等),也可能包含該領(lǐng)域的產(chǎn)品和聯(lián)系方式等。領(lǐng)域?qū)ο笠越M件的形式提供了領(lǐng)域應(yīng)用的功能。
1.4 數(shù)據(jù)路由器
數(shù)據(jù)路由器負(fù)責(zé)將源數(shù)據(jù)發(fā)送到目標(biāo)系統(tǒng),保證數(shù)據(jù)在傳輸過程中不會(huì)遺失?;韭酚善魈峁┞酚杀?有時(shí)會(huì)提供識(shí)別和映射源系統(tǒng)和目標(biāo)系統(tǒng)的規(guī)則;高級(jí)路由器實(shí)現(xiàn)了發(fā)布-訂閱引擎,對(duì)請(qǐng)求進(jìn)行智能過濾。目標(biāo)系統(tǒng)(訂閱者)請(qǐng)求新的數(shù)據(jù)或特殊類型數(shù)據(jù)的更新,而源系統(tǒng)(發(fā)布者)發(fā)布和更新數(shù)據(jù)。路由器自動(dòng)將數(shù)據(jù)送到對(duì)它感興趣的地方,并執(zhí)行管理任務(wù)。
1.5 自適應(yīng)的業(yè)務(wù)過程
過程對(duì)象執(zhí)行企業(yè)業(yè)務(wù)模型的功能,可以看作是一種微型工作流,它負(fù)責(zé)NTGAEAM模型中業(yè)務(wù)對(duì)象間的協(xié)作和交互。由于過程對(duì)象是面向?qū)ο蟮?具有面向?qū)ο蠹夹g(shù)的所有特性,因此過程對(duì)象可以部署為運(yùn)行時(shí)可執(zhí)行組件。過程對(duì)象可以用面向?qū)ο蠹夹g(shù)的繼承和組合特性構(gòu)建更加適應(yīng)市場(chǎng)環(huán)境的新的過程對(duì)象。新的過程對(duì)象代表著業(yè)務(wù)過程的重新組合,體現(xiàn)了BPEAIAM模型的自適應(yīng)能力。
由過程對(duì)象執(zhí)行業(yè)務(wù)對(duì)象間的協(xié)作為集成提供了一種新的方式。本質(zhì)上,集成是業(yè)務(wù)過程動(dòng)態(tài)的組合過程,這種動(dòng)態(tài)組合可以看成是過程對(duì)象穿越特定路徑的節(jié)點(diǎn)集(這里的節(jié)點(diǎn)指業(yè)務(wù)對(duì)象)。因此對(duì)一個(gè)給定的節(jié)點(diǎn)集,不同的業(yè)務(wù)過程會(huì)產(chǎn)生不同的結(jié)果。
BPEAIAM模型解決了企業(yè)業(yè)務(wù)過程活動(dòng)多變的問題。與傳統(tǒng)EAI解決方案相比,BPEAIAM模型具有如下特點(diǎn):
(1)有利于自適應(yīng)的業(yè)務(wù)過程的重組;
(2)為新加入的應(yīng)用提供了即插即用的功能;
(3)方便了領(lǐng)域應(yīng)用的集成;
(4)實(shí)現(xiàn)了業(yè)務(wù)規(guī)則的分離。
2 J2EE平臺(tái)下的BPEAIAM模型
J2EE平臺(tái)下的BPEAIAM模型是BPEAIAM模型的一個(gè)特化。該模型在Web Services、EJB、CORBA等J2EE技術(shù)的支持下能更好地實(shí)現(xiàn)靈活性和自適應(yīng)性。圖3給出了J2EE平臺(tái)下BPEAIAM模型的結(jié)構(gòu)。
從圖3可以看出,J2EE平臺(tái)下的BPEAIAM模型主要由三部分組成:(1)通用對(duì)象請(qǐng)求代理架構(gòu)(CORBA)、J2EE規(guī)范、Web Services技術(shù)標(biāo)準(zhǔn)及規(guī)范;(2)Web Services組件、EJB組件、虛擬組件、事務(wù)管理引擎;(3)領(lǐng)域應(yīng)用和領(lǐng)域應(yīng)用適配器。
2.1 虛擬組件
虛擬組件一般在領(lǐng)域?qū)ο髮?用來表示領(lǐng)域應(yīng)用的功能。一方面,提供與J2EE兼容的接口;另一方面,通過領(lǐng)域應(yīng)用提供的API與領(lǐng)域應(yīng)用進(jìn)行連接。虛擬組件掩飾了不同領(lǐng)域應(yīng)用的技術(shù)差異,客戶端可以通過虛擬組件存取領(lǐng)域應(yīng)用。對(duì)不提供API或者提供的API不適合需求的領(lǐng)域應(yīng)用,必須通過封裝進(jìn)行擴(kuò)展。封裝提供了必要的接口,通過這些接口,虛擬組件可以存取領(lǐng)域應(yīng)用。虛擬組件的結(jié)構(gòu)如圖4所示。
虛擬組件分為訪問現(xiàn)有數(shù)據(jù)庫(kù)的虛擬組件和訪問領(lǐng)域應(yīng)用功能的虛擬組件兩種。虛擬組件可以用CORBA、RMI-IIOP或者JMS構(gòu)建。虛擬組件功能如下:
(1)通過API存取控制領(lǐng)域應(yīng)用;
(2)通過封裝存取控制領(lǐng)域應(yīng)用;
(3)提供對(duì)數(shù)據(jù)的存取控制。
2.2 EJB組件
EJB組件實(shí)現(xiàn)企業(yè)的業(yè)務(wù)功能(業(yè)務(wù)對(duì)象的功能),它組合虛擬組件的功能以提供一個(gè)實(shí)現(xiàn)較高級(jí)功能的抽象層。EJB組件將會(huì)把高層的事務(wù)請(qǐng)求轉(zhuǎn)換成一系列對(duì)低層虛擬組件的調(diào)用。EJB組件也進(jìn)行一些數(shù)據(jù)轉(zhuǎn)換,并且通過集成領(lǐng)域應(yīng)用實(shí)現(xiàn)企業(yè)的業(yè)務(wù)功能。
2.3 Web Services組件
為了實(shí)現(xiàn)業(yè)務(wù)對(duì)象的可利用性,需要?jiǎng)?chuàng)建更高層次的過程對(duì)象。過程對(duì)象可以發(fā)布有用的業(yè)務(wù)過程,以及使用簡(jiǎn)單的XML消息交換數(shù)據(jù)。顯然業(yè)務(wù)對(duì)象可以出現(xiàn)在不同的過程對(duì)象中以實(shí)現(xiàn)特定的業(yè)務(wù)過程,例如身份驗(yàn)證可以被多個(gè)過程所使用。
當(dāng)使用Web Services表示過程對(duì)象時(shí),過程對(duì)象就成為一種服務(wù),稱之為過程對(duì)象服務(wù),其架構(gòu)如圖5所示。
過程對(duì)象服務(wù)由基本服務(wù)和復(fù)合服務(wù)組成。其中,基本服務(wù)是最小的服務(wù)單位,由業(yè)務(wù)對(duì)象實(shí)現(xiàn);復(fù)合服務(wù)從本質(zhì)上說是一個(gè)過程對(duì)象服務(wù),是由控制流或者數(shù)據(jù)流連接起來的基本服務(wù)。任何過程對(duì)象服務(wù)都是由基本服務(wù)遞歸而成。同時(shí)作為過程對(duì)象中的某個(gè)模塊也可能是過程對(duì)象,并且這種組合方式是任意的。過程對(duì)象服務(wù)組成結(jié)構(gòu)如圖6所示。
控制流和數(shù)據(jù)流的含義為:
(1)控制流:復(fù)合服務(wù)所要激活的次序,包括時(shí)間約束、執(zhí)行或者取消過程運(yùn)行的信號(hào)。
(2)數(shù)據(jù)流:復(fù)合服務(wù)中的數(shù)據(jù)流。一個(gè)在業(yè)務(wù)過程中活動(dòng)的Web服務(wù)本身可能就是一個(gè)業(yè)務(wù)過程。
3 集成案例
根據(jù)本文所探討的集成架構(gòu)和集成原理,鎮(zhèn)江移動(dòng)電話公司構(gòu)建了一個(gè)集成系統(tǒng)。公司有一組互不相連或部分相連的應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序,分別為:
(1)客戶信息應(yīng)用程序;
(2)客戶賬戶管理應(yīng)用程序;
(3)打印發(fā)票應(yīng)用程序;
(4)市話話費(fèi)計(jì)價(jià)應(yīng)用程序;
(5)長(zhǎng)話話費(fèi)計(jì)價(jià)應(yīng)用程序;
(6)話費(fèi)信息應(yīng)用程序。
這些應(yīng)用程序沒有集成,因此用戶要在不同應(yīng)用程序中手工輸入數(shù)據(jù)。有些應(yīng)用程序提供基于共享數(shù)據(jù)文件的簡(jiǎn)單數(shù)據(jù)交換,用專屬格式格式化。在這幾個(gè)應(yīng)用程序中,客戶信息應(yīng)用程序、客戶賬戶管理應(yīng)用程序、話費(fèi)信息應(yīng)用程序提供了API,分別通過封裝增加接口。打印發(fā)票應(yīng)用程序用JMS封裝,另外兩個(gè)用CORBA封裝。
為了實(shí)現(xiàn)較高層次的集成,在業(yè)務(wù)邏輯層定義低層虛擬組件,以便用一致的方式存取控制。根據(jù)案例分析和各種分析類圖識(shí)別出高層EJB組件。識(shí)別出的高層EJB組件為:信用卡EJB組件、移動(dòng)電話用戶EJB組件、賬戶EJB組件、授權(quán)和選擇賬戶EJB組件、充值EJB組件、檢查余額EJB組件。這些高層EJB組件所完成的功能集中在業(yè)務(wù)處理上,通過對(duì)低層虛擬組件方法的調(diào)用實(shí)現(xiàn)業(yè)務(wù)功能,例如檢查余額的虛擬組件計(jì)算賬戶余額的方法要涉及到客戶賬戶管理、市話計(jì)費(fèi)、長(zhǎng)話計(jì)費(fèi)、話費(fèi)信息等低層虛擬組件的調(diào)用。
最后將這些業(yè)務(wù)方法級(jí)的高層EJB組件以Web Services的方式發(fā)布。如果要進(jìn)行更高層次的集成,可以在這些Web Services的基礎(chǔ)上集成,既實(shí)現(xiàn)了低耦合性,又實(shí)現(xiàn)了較高的性能。從而使公司內(nèi)外的管理者和顧客都可以調(diào)用。公司外的顧客可以進(jìn)行查詢充值等操作,公司內(nèi)的管理者可以進(jìn)行更高權(quán)限的操作(如修改資費(fèi)標(biāo)準(zhǔn)等)。要實(shí)現(xiàn)這種權(quán)限控制,可以用基于角色的權(quán)限控制訪問策略和企業(yè)信息門戶的統(tǒng)一界面提供服務(wù)。
BPEAIAM模型的基本思想是快速實(shí)現(xiàn)企業(yè)業(yè)務(wù)流程的重組。BPEAIAM模型提供一個(gè)集成框架,可以通過多種方法實(shí)現(xiàn)。其中一種方法是利用Web服務(wù)技術(shù)實(shí)現(xiàn),將遺留應(yīng)用的功能包裝成其他應(yīng)用程序可以直接調(diào)用的Web服務(wù),然后組合這些服務(wù),產(chǎn)生滿足企業(yè)業(yè)務(wù)需要的流程。
鎮(zhèn)江移動(dòng)電話集成系統(tǒng)是實(shí)現(xiàn)BPEAIAM模型的初步嘗試,它證明了BPEAIAM模型的可行性。目前該系統(tǒng)正在進(jìn)一步完善中。下一步的工作是以BPEAIAM模型為核心,嘗試開發(fā)一個(gè)功能相對(duì)完善的集成開發(fā)環(huán)境(IDE)。該開發(fā)環(huán)境提供了所有相關(guān)的基礎(chǔ)性服務(wù),可以有效提高軟件的抽象層次,使開發(fā)者能將主要精力集中在業(yè)務(wù)邏輯的開發(fā)上。
參考文獻(xiàn)
1 David S.Linthicum.Process Automation and EAI.EAI Journal,2000,3;12~18
2 顧 翊,張申生.一種企業(yè)應(yīng)用集成(EAI)方案的研究.計(jì)算機(jī)工程與應(yīng)用,2003;6
3 Denver Robert,Edward Williams.Adaptive integration architec-ture for software reuse[D].University of Central Florida,2001
4 James Chang.Envisioning the Process-Centric Enterprise[J].EAI Journal,2002;(8)30~33
5 SUN.Microsystems.JavaTM 2 Platform Enterprise Edition Specification,v1.4.http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf:13~14
6 OMG.CORBA Specification.http://www.omg.org/docs/formal/04-03-01.pdf
7 Heather Kreger.Web Services Conceptual Architecture(WSCA 1.0).IBM Software Group,2001,5.http://www-306.ibm.com/software/solutions/webservices/pdf/WSCA.pdf
8 Mary Kirtland.A Platform for Web Services.Microsoft Devel-oper Network,2001,1.http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarxml/html/websvcs_plat-form.asp
9 W3C Workshop.Web Services Framework.http://www.w3.org/2001/03/WSWS-popa/paper51.2001,4
10 SUN Microsystems.The J2EE 1.4 Tutorial.http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Overview7.html
11 Binu John,Vu Trang,Michael Vemik.Performance Evaluation of Enterprise JavaBeansTM(EJBTM) CORBA Adapter to CORBA Server Interoperability.2001;1~6