摘 要: 在分析傳統企業應用集成" title="應用集成">應用集成方案的基礎上,提出了面向業務" title="面向業務">面向業務過程的企業應用集成EAI(Enterprise Application Integration)架構模型。給出了J2EE平臺下面向業務過程EAI架構模型的結構,并討論了如何用虛擬組件、EJB組件和Web Services組件實現過程對象、業務對象和領域對象;最后給出了集成案例,驗證了該架構模型的可行性。
關鍵詞: 企業應用集成 業務過程管理? 集成框架? J2EE? Web服務
?
面對快速變化的市場,企業必須以高速、高效和靈活性作為應對策略,必須對內部的遺留應用進行有效集成。傳統的點到點應用接口集成方法,系統間通過專用的API實現信息的交流和方法調用,業務過程與企業信息系統緊密地集成在一起。這種集成方法只能支持固定的業務過程,一旦業務過程發生改變或應用系統" title="應用系統">應用系統進行了升級,系統之間的集成接口必須重新進行編寫,并且每個系統都要知道與之相集成的系統的結構和內容。這種緊耦合的集成方式已經不能滿足企業復雜多變的業務過程活動的要求。企業需要將其集成化應用系統的應用邏輯與業務過程邏輯分開,以使業務過程的改變不會引起應用系統間集成方式的改變,從而實現松耦合的應用集成。
為了避免傳統的點對點集成的缺點,人們提出了三層的集成架構,它將企業應用系統分成表示層、中間層" title="中間層">中間層和企業信息系統(EISs)層(包括數據庫系統)。中間層主要實現應用的業務邏輯和各種服務支持,作為應用業務邏輯功能實施的一部分,中間層可以訪問在EISs層運行的且與應用相關聯的數據和函數。EISs層包括那些現在正在使用的企業應用、數據庫系統和企業原有的應用。在三層架構中,EISs之間并不直接實現點對點的連接,而是通過一個面向消息的中間件實現數據的交換。
企業應用的三層架構可以說是EAI的一個里程碑,它徹底改變了企業中傳統的點對點的系統集成方式,通過引入一個中間層實現不同系統間的協調和對企業各種事務處理活動的支持。但是三層的企業信息系統集成體系架構還不能滿足企業多變的業務活動的要求,系統間的集成仍然是一種緊耦合的集成方式。因此,迫切需要一種新的集成方法。本文提出了一種面向業務過程的EAI架構模型。
1 面向業務過程的EAI架構模型
面向業務過程的EAI架構模型BPEAIAM(The Business Process-oriented EAI Architecture Model)的總體結構如圖1所示。從圖1中可以看出:在BPEAIAM模型中,EISs層、中間層、表示層和客戶端構成了明顯的層次關系,下層應用為上一層提供了獨立完整的功能。因此上層應用無需了解下層應用內部的實現細節,只需調用下層應用明確定義的接口和方法來實現自己的功能。
BPEAIAM模型的中間層由過程對象、業務對象/業務對象管理器、領域對象和數據路由器組成。圖2給出了中間層結構。
1.1 過程對象
過程對象體現企業的業務處理過程、事件序列、業務規則和特定業務對象間的聯系。過程對象管理著運行時業務對象間的協作,例如:訂單處理過程沒有綁定到某個特定的業務對象上,相反,它涉及到客戶、客戶地址以及訂購明細等業務對象。這些業務對象間的協作包括對訂單下達方式的描述以及訂單明細的描述。如果將上述信息放到業務對象中,則會破壞對象的封裝性。因此有關行為規則的描述應該由過程對象負責。
業務對象關注企業業務功能的實現細節,過程對象關注業務對象間的聯系,而不關心業務功能如何實現。
1.2 業務對象
業務對象體現了企業業務的概念,它包括組織、客戶、訂單等信息項。業務對象將具有特定行為、信息的基本對象和業務規則進行整合。業務對象間是獨立的,并不與其他業務對象綁定(與其他業務對象綁定是過程對象的職責)。任何涉及到多個業務對象的行為都應該由過程對象負責。
1.3 領域對象
領域對象反映了特定行業的業務概念,它獨立于具體的應用。領域對象可能包括該領域的基本信息(如客戶、訂單等),也可能包含該領域的產品和聯系方式等。領域對象以組件的形式提供了領域應用的功能。
1.4 數據路由器
數據路由器負責將源數據發送到目標系統,保證數據在傳輸過程中不會遺失。基本路由器提供路由表,有時會提供識別和映射源系統和目標系統的規則;高級路由器實現了發布-訂閱引擎,對請求進行智能過濾。目標系統(訂閱者)請求新的數據或特殊類型數據的更新,而源系統(發布者)發布和更新數據。路由器自動將數據送到對它感興趣的地方,并執行管理任務。
1.5 自適應的業務過程
過程對象執行企業業務模型的功能,可以看作是一種微型工作流,它負責NTGAEAM模型中業務對象間的協作和交互。由于過程對象是面向對象的,具有面向對象技術的所有特性,因此過程對象可以部署為運行時可執行組件。過程對象可以用面向對象技術的繼承和組合特性構建更加適應市場環境的新的過程對象。新的過程對象代表著業務過程的重新組合,體現了BPEAIAM模型的自適應能力。
由過程對象執行業務對象間的協作為集成提供了一種新的方式。本質上,集成是業務過程動態的組合過程,這種動態組合可以看成是過程對象穿越特定路徑的節點集(這里的節點指業務對象)。因此對一個給定的節點集,不同的業務過程會產生不同的結果。
BPEAIAM模型解決了企業業務過程活動多變的問題。與傳統EAI解決方案相比,BPEAIAM模型具有如下特點:
(1)有利于自適應的業務過程的重組;
(2)為新加入的應用提供了即插即用的功能;
(3)方便了領域應用的集成;
(4)實現了業務規則的分離。
2 J2EE平臺下的BPEAIAM模型
J2EE平臺下的BPEAIAM模型是BPEAIAM模型的一個特化。該模型在Web Services、EJB、CORBA等J2EE技術的支持下能更好地實現靈活性和自適應性。圖3給出了J2EE平臺下BPEAIAM模型的結構。
從圖3可以看出,J2EE平臺下的BPEAIAM模型主要由三部分組成:(1)通用對象請求代理架構(CORBA)、J2EE規范、Web Services技術標準及規范;(2)Web Services組件、EJB組件、虛擬組件、事務管理引擎;(3)領域應用和領域應用適配器。
2.1 虛擬組件
虛擬組件一般在領域對象層,用來表示領域應用的功能。一方面,提供與J2EE兼容的接口;另一方面,通過領域應用提供的API與領域應用進行連接。虛擬組件掩飾了不同領域應用的技術差異,客戶端可以通過虛擬組件存取領域應用。對不提供API或者提供的API不適合需求的領域應用,必須通過封裝進行擴展。封裝提供了必要的接口,通過這些接口,虛擬組件可以存取領域應用。虛擬組件的結構如圖4所示。
虛擬組件分為訪問現有數據庫的虛擬組件和訪問領域應用功能的虛擬組件兩種。虛擬組件可以用CORBA、RMI-IIOP或者JMS構建。虛擬組件功能如下:
(1)通過API存取控制領域應用;
(2)通過封裝存取控制領域應用;
(3)提供對數據的存取控制。
2.2 EJB組件
EJB組件實現企業的業務功能(業務對象的功能),它組合虛擬組件的功能以提供一個實現較高級功能的抽象層。EJB組件將會把高層的事務請求轉換成一系列對低層虛擬組件的調用。EJB組件也進行一些數據轉換,并且通過集成領域應用實現企業的業務功能。
2.3 Web Services組件
為了實現業務對象的可利用性,需要創建更高層次的過程對象。過程對象可以發布有用的業務過程,以及使用簡單的XML消息交換數據。顯然業務對象可以出現在不同的過程對象中以實現特定的業務過程,例如身份驗證可以被多個過程所使用。
當使用Web Services表示過程對象時,過程對象就成為一種服務,稱之為過程對象服務,其架構如圖5所示。
過程對象服務由基本服務和復合服務組成。其中,基本服務是最小的服務單位,由業務對象實現;復合服務從本質上說是一個過程對象服務,是由控制流或者數據流連接起來的基本服務。任何過程對象服務都是由基本服務遞歸而成。同時作為過程對象中的某個模塊也可能是過程對象,并且這種組合方式是任意的。過程對象服務組成結構如圖6所示。
控制流和數據流的含義為:
(1)控制流:復合服務所要激活的次序,包括時間約束、執行或者取消過程運行的信號。
(2)數據流:復合服務中的數據流。一個在業務過程中活動的Web服務本身可能就是一個業務過程。
3 集成案例
根據本文所探討的集成架構和集成原理,鎮江移動電話公司構建了一個集成系統。公司有一組互不相連或部分相連的應用程序" title="應用程序">應用程序,分別為:
(1)客戶信息應用程序;
(2)客戶賬戶管理應用程序;
(3)打印發票應用程序;
(4)市話話費計價應用程序;
(5)長話話費計價應用程序;
(6)話費信息應用程序。
這些應用程序沒有集成,因此用戶要在不同應用程序中手工輸入數據。有些應用程序提供基于共享數據文件的簡單數據交換,用專屬格式格式化。在這幾個應用程序中,客戶信息應用程序、客戶賬戶管理應用程序、話費信息應用程序提供了API,分別通過封裝增加接口。打印發票應用程序用JMS封裝,另外兩個用CORBA封裝。
為了實現較高層次的集成,在業務邏輯層定義低層虛擬組件,以便用一致的方式存取控制。根據案例分析和各種分析類圖識別出高層EJB組件。識別出的高層EJB組件為:信用卡EJB組件、移動電話用戶EJB組件、賬戶EJB組件、授權和選擇賬戶EJB組件、充值EJB組件、檢查余額EJB組件。這些高層EJB組件所完成的功能集中在業務處理上,通過對低層虛擬組件方法的調用實現業務功能,例如檢查余額的虛擬組件計算賬戶余額的方法要涉及到客戶賬戶管理、市話計費、長話計費、話費信息等低層虛擬組件的調用。
最后將這些業務方法級的高層EJB組件以Web Services的方式發布。如果要進行更高層次的集成,可以在這些Web Services的基礎上集成,既實現了低耦合性,又實現了較高的性能。從而使公司內外的管理者和顧客都可以調用。公司外的顧客可以進行查詢充值等操作,公司內的管理者可以進行更高權限的操作(如修改資費標準等)。要實現這種權限控制,可以用基于角色的權限控制訪問策略和企業信息門戶的統一界面提供服務。
BPEAIAM模型的基本思想是快速實現企業業務流程的重組。BPEAIAM模型提供一個集成框架,可以通過多種方法實現。其中一種方法是利用Web服務技術實現,將遺留應用的功能包裝成其他應用程序可以直接調用的Web服務,然后組合這些服務,產生滿足企業業務需要的流程。
鎮江移動電話集成系統是實現BPEAIAM模型的初步嘗試,它證明了BPEAIAM模型的可行性。目前該系統正在進一步完善中。下一步的工作是以BPEAIAM模型為核心,嘗試開發一個功能相對完善的集成開發環境(IDE)。該開發環境提供了所有相關的基礎性服務,可以有效提高軟件的抽象層次,使開發者能將主要精力集中在業務邏輯的開發上。
參考文獻
1 David S.Linthicum.Process Automation and EAI.EAI Journal,2000,3;12~18
2 顧 翊,張申生.一種企業應用集成(EAI)方案的研究.計算機工程與應用,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