《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 面向業(yè)務(wù)過程的企業(yè)應(yīng)用集成方案的研究

面向業(yè)務(wù)過程的企業(yè)應(yīng)用集成方案的研究

2008-03-20
作者:施化吉1,3,趙曦濱2,丁秋林3

  摘 要: 在分析傳統(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平臺下面向業(yè)務(wù)過程EAI架構(gòu)模型的結(jié)構(gòu),并討論了如何用虛擬組件、EJB組件和Web Services組件實(shí)現(xiàn)過程對象、業(yè)務(wù)對象和領(lǐng)域?qū)ο?;最后給出了集成案例,驗(yàn)證了該架構(gòu)模型的可行性。
  關(guān)鍵詞: 企業(yè)應(yīng)用集成 業(yè)務(wù)過程管理? 集成框架? J2EE? Web服務(wù)

?

  面對快速變化的市場,企業(yè)必須以高速、高效和靈活性作為應(yīng)對策略,必須對內(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)行了升級,系統(tǒng)之間的集成接口必須重新進(jìn)行編寫,并且每個系統(tǒng)都要知道與之相集成的系統(tǒng)的結(jié)構(gòu)和內(nèi)容。這種緊耦合的集成方式已經(jīng)不能滿足企業(yè)復(fù)雜多變的業(yè)務(wù)過程活動的要求。企業(yè)需要將其集成化應(yīng)用系統(tǒng)的應(yīng)用邏輯與業(yè)務(wù)過程邏輯分開,以使業(yè)務(wù)過程的改變不會引起應(yīng)用系統(tǒng)間集成方式的改變,從而實(shí)現(xiàn)松耦合的應(yīng)用集成。
  為了避免傳統(tǒng)的點(diǎn)對點(diǎn)集成的缺點(diǎn),人們提出了三層的集成架構(gòu),它將企業(yè)應(yīng)用系統(tǒng)分成表示層、中間層" title="中間層">中間層和企業(yè)信息系統(tǒng)(EISs)層(包括數(shù)據(jù)庫系統(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ù)庫系統(tǒng)和企業(yè)原有的應(yīng)用。在三層架構(gòu)中,EISs之間并不直接實(shí)現(xiàn)點(diǎn)對點(diǎn)的連接,而是通過一個面向消息的中間件實(shí)現(xiàn)數(shù)據(jù)的交換。
  企業(yè)應(yīng)用的三層架構(gòu)可以說是EAI的一個里程碑,它徹底改變了企業(yè)中傳統(tǒng)的點(diǎn)對點(diǎn)的系統(tǒng)集成方式,通過引入一個中間層實(shí)現(xiàn)不同系統(tǒng)間的協(xié)調(diào)和對企業(yè)各種事務(wù)處理活動的支持。但是三層的企業(yè)信息系統(tǒng)集成體系架構(gòu)還不能滿足企業(yè)多變的業(yè)務(wù)活動的要求,系統(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模型的中間層由過程對象、業(yè)務(wù)對象/業(yè)務(wù)對象管理器、領(lǐng)域?qū)ο蠛蛿?shù)據(jù)路由器組成。圖2給出了中間層結(jié)構(gòu)。


1.1 過程對象
  過程對象體現(xiàn)企業(yè)的業(yè)務(wù)處理過程、事件序列、業(yè)務(wù)規(guī)則和特定業(yè)務(wù)對象間的聯(lián)系。過程對象管理著運(yùn)行時業(yè)務(wù)對象間的協(xié)作,例如:訂單處理過程沒有綁定到某個特定的業(yè)務(wù)對象上,相反,它涉及到客戶、客戶地址以及訂購明細(xì)等業(yè)務(wù)對象。這些業(yè)務(wù)對象間的協(xié)作包括對訂單下達(dá)方式的描述以及訂單明細(xì)的描述。如果將上述信息放到業(yè)務(wù)對象中,則會破壞對象的封裝性。因此有關(guān)行為規(guī)則的描述應(yīng)該由過程對象負(fù)責(zé)。
  業(yè)務(wù)對象關(guān)注企業(yè)業(yè)務(wù)功能的實(shí)現(xiàn)細(xì)節(jié),過程對象關(guān)注業(yè)務(wù)對象間的聯(lián)系,而不關(guān)心業(yè)務(wù)功能如何實(shí)現(xiàn)。
1.2 業(yè)務(wù)對象
  業(yè)務(wù)對象體現(xiàn)了企業(yè)業(yè)務(wù)的概念,它包括組織、客戶、訂單等信息項(xiàng)。業(yè)務(wù)對象將具有特定行為、信息的基本對象和業(yè)務(wù)規(guī)則進(jìn)行整合。業(yè)務(wù)對象間是獨(dú)立的,并不與其他業(yè)務(wù)對象綁定(與其他業(yè)務(wù)對象綁定是過程對象的職責(zé))。任何涉及到多個業(yè)務(wù)對象的行為都應(yīng)該由過程對象負(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ù)在傳輸過程中不會遺失?;韭酚善魈峁┞酚杀?有時會提供識別和映射源系統(tǒng)和目標(biāo)系統(tǒng)的規(guī)則;高級路由器實(shí)現(xiàn)了發(fā)布-訂閱引擎,對請求進(jìn)行智能過濾。目標(biāo)系統(tǒng)(訂閱者)請求新的數(shù)據(jù)或特殊類型數(shù)據(jù)的更新,而源系統(tǒng)(發(fā)布者)發(fā)布和更新數(shù)據(jù)。路由器自動將數(shù)據(jù)送到對它感興趣的地方,并執(zhí)行管理任務(wù)。
1.5 自適應(yīng)的業(yè)務(wù)過程
  過程對象執(zhí)行企業(yè)業(yè)務(wù)模型的功能,可以看作是一種微型工作流,它負(fù)責(zé)NTGAEAM模型中業(yè)務(wù)對象間的協(xié)作和交互。由于過程對象是面向?qū)ο蟮?具有面向?qū)ο蠹夹g(shù)的所有特性,因此過程對象可以部署為運(yùn)行時可執(zhí)行組件。過程對象可以用面向?qū)ο蠹夹g(shù)的繼承和組合特性構(gòu)建更加適應(yīng)市場環(huán)境的新的過程對象。新的過程對象代表著業(yè)務(wù)過程的重新組合,體現(xiàn)了BPEAIAM模型的自適應(yīng)能力。
  由過程對象執(zhí)行業(yè)務(wù)對象間的協(xié)作為集成提供了一種新的方式。本質(zhì)上,集成是業(yè)務(wù)過程動態(tài)的組合過程,這種動態(tài)組合可以看成是過程對象穿越特定路徑的節(jié)點(diǎn)集(這里的節(jié)點(diǎn)指業(yè)務(wù)對象)。因此對一個給定的節(jié)點(diǎn)集,不同的業(yè)務(wù)過程會產(chǎn)生不同的結(jié)果。
  BPEAIAM模型解決了企業(yè)業(yè)務(wù)過程活動多變的問題。與傳統(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平臺下的BPEAIAM模型
  J2EE平臺下的BPEAIAM模型是BPEAIAM模型的一個特化。該模型在Web Services、EJB、CORBA等J2EE技術(shù)的支持下能更好地實(shí)現(xiàn)靈活性和自適應(yīng)性。圖3給出了J2EE平臺下BPEAIAM模型的結(jié)構(gòu)。


  從圖3可以看出,J2EE平臺下的BPEAIAM模型主要由三部分組成:(1)通用對象請求代理架構(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)用。對不提供API或者提供的API不適合需求的領(lǐng)域應(yīng)用,必須通過封裝進(jìn)行擴(kuò)展。封裝提供了必要的接口,通過這些接口,虛擬組件可以存取領(lǐng)域應(yīng)用。虛擬組件的結(jié)構(gòu)如圖4所示。


  虛擬組件分為訪問現(xiàn)有數(shù)據(jù)庫的虛擬組件和訪問領(lǐng)域應(yīng)用功能的虛擬組件兩種。虛擬組件可以用CORBA、RMI-IIOP或者JMS構(gòu)建。虛擬組件功能如下:
  (1)通過API存取控制領(lǐng)域應(yīng)用;
  (2)通過封裝存取控制領(lǐng)域應(yīng)用;
  (3)提供對數(shù)據(jù)的存取控制。
2.2 EJB組件
  EJB組件實(shí)現(xiàn)企業(yè)的業(yè)務(wù)功能(業(yè)務(wù)對象的功能),它組合虛擬組件的功能以提供一個實(shí)現(xiàn)較高級功能的抽象層。EJB組件將會把高層的事務(wù)請求轉(zhuǎn)換成一系列對低層虛擬組件的調(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ù)對象的可利用性,需要創(chuàng)建更高層次的過程對象。過程對象可以發(fā)布有用的業(yè)務(wù)過程,以及使用簡單的XML消息交換數(shù)據(jù)。顯然業(yè)務(wù)對象可以出現(xiàn)在不同的過程對象中以實(shí)現(xiàn)特定的業(yè)務(wù)過程,例如身份驗(yàn)證可以被多個過程所使用。
  當(dāng)使用Web Services表示過程對象時,過程對象就成為一種服務(wù),稱之為過程對象服務(wù),其架構(gòu)如圖5所示。


  過程對象服務(wù)由基本服務(wù)和復(fù)合服務(wù)組成。其中,基本服務(wù)是最小的服務(wù)單位,由業(yè)務(wù)對象實(shí)現(xiàn);復(fù)合服務(wù)從本質(zhì)上說是一個過程對象服務(wù),是由控制流或者數(shù)據(jù)流連接起來的基本服務(wù)。任何過程對象服務(wù)都是由基本服務(wù)遞歸而成。同時作為過程對象中的某個模塊也可能是過程對象,并且這種組合方式是任意的。過程對象服務(wù)組成結(jié)構(gòu)如圖6所示。
  控制流和數(shù)據(jù)流的含義為:
  (1)控制流:復(fù)合服務(wù)所要激活的次序,包括時間約束、執(zhí)行或者取消過程運(yùn)行的信號。
  (2)數(shù)據(jù)流:復(fù)合服務(wù)中的數(shù)據(jù)流。一個在業(yè)務(wù)過程中活動的Web服務(wù)本身可能就是一個業(yè)務(wù)過程。


3 集成案例
  根據(jù)本文所探討的集成架構(gòu)和集成原理,鎮(zhèn)江移動電話公司構(gòu)建了一個集成系統(tǒng)。公司有一組互不相連或部分相連的應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序,分別為:
  (1)客戶信息應(yīng)用程序;
  (2)客戶賬戶管理應(yīng)用程序;
  (3)打印發(fā)票應(yīng)用程序;
  (4)市話話費(fèi)計價應(yīng)用程序;
  (5)長話話費(fèi)計價應(yīng)用程序;
  (6)話費(fèi)信息應(yīng)用程序。
  這些應(yīng)用程序沒有集成,因此用戶要在不同應(yīng)用程序中手工輸入數(shù)據(jù)。有些應(yīng)用程序提供基于共享數(shù)據(jù)文件的簡單數(shù)據(jù)交換,用專屬格式格式化。在這幾個應(yīng)用程序中,客戶信息應(yīng)用程序、客戶賬戶管理應(yīng)用程序、話費(fèi)信息應(yīng)用程序提供了API,分別通過封裝增加接口。打印發(fā)票應(yīng)用程序用JMS封裝,另外兩個用CORBA封裝。
  為了實(shí)現(xiàn)較高層次的集成,在業(yè)務(wù)邏輯層定義低層虛擬組件,以便用一致的方式存取控制。根據(jù)案例分析和各種分析類圖識別出高層EJB組件。識別出的高層EJB組件為:信用卡EJB組件、移動電話用戶EJB組件、賬戶EJB組件、授權(quán)和選擇賬戶EJB組件、充值EJB組件、檢查余額EJB組件。這些高層EJB組件所完成的功能集中在業(yè)務(wù)處理上,通過對低層虛擬組件方法的調(diào)用實(shí)現(xiàn)業(yè)務(wù)功能,例如檢查余額的虛擬組件計算賬戶余額的方法要涉及到客戶賬戶管理、市話計費(fèi)、長話計費(fèi)、話費(fèi)信息等低層虛擬組件的調(diào)用。
  最后將這些業(yè)務(wù)方法級的高層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模型提供一個集成框架,可以通過多種方法實(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)江移動電話集成系統(tǒng)是實(shí)現(xiàn)BPEAIAM模型的初步嘗試,它證明了BPEAIAM模型的可行性。目前該系統(tǒng)正在進(jìn)一步完善中。下一步的工作是以BPEAIAM模型為核心,嘗試開發(fā)一個功能相對完善的集成開發(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ī)工程與應(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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。