摘要:企業信息孤島的問題日益得到人們的重視,企業應用集成(EAI)技術的提出很好的解決了這類問題。該文對EAI進行了深入的闡述,分析了EAI的特點、優勢以及技術本身的缺陷,提出了一種基于XML的業務流程集成的框架,并通過一個實例系統給出了框架的具體實現方法。
關鍵詞:EAI;XML;業務流程;BWE
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)24-6863-03
1 EAI綜述
1.1 EAI的概念
經濟與社會全球化帶來了信息化建設的蓬勃發展,不論是企業還是高校,其內部所使用的應用系統已經達到了一定的規模,各個應用系統之間的交流也越來越頻繁,對系統之間數據關系的要求也越來越高。這種發展形勢迫使企事業單位突破傳統的局部限制,加強內部的交流和資源共享,目的在于能夠在削減成本的前提下最大限度地利用現有技術以提高其競爭力。
企業應用集成技術(EAI)通過將一系列的方法、技術和工具組織在一起實現對不同應用的合并與協調,從而實現企業信息系統的集成,通過建立底層結構,來聯系橫貫整個企業的異構系統、應用、數據源等。
1.2 EAI的優勢
EAI的最終目的是為已存在的應用系統提供標準、統一的交換中心,并為新的開發提供基礎。EAI系統的核心由一系列組件組成,這些組件為各種資源之間的信息交換提供了保障,使得應用系統能夠通過適配器或者連接器來訪問它們。它在企業信息資源整合的優勢具體體現在以下幾個方面:
1) 改善內部流程
2) 增強供應鏈間的關系
3) 增進與客戶的聯系
4) 減少市場化周期
1.3 EAI的類型
EAI解決方案可以呈現許多種形式并以多種級別出現。EAI合適的級別依賴于許多因素,包括企業的大小、行業類別、應用的集成度或是項目的復雜度以及預算等等。
這里簡單給出EAI中間件解決方案最常用的一種類型:業務流程集成
業務流程集成產生于跨越了多個應用的業務流程層。通常通過使用一些高層的中間件來表現業務流程集成的特征。這類中間件產品的代表是消息中介,消息中介使用一個總線模式或者是HUB模式來對消息處理標準化并控制信息流。圖1在一個較高的層次說明了一個開放的業務流程的組成。
2 基于XML的業務流程整合架構
我們在前面提到的基于業務流程整合通過實現對企業業務流程的全面分析管理,使企業有能力從現有的環境和狀態轉變為隨需應變的企業。基于業務流程整合的EAI作為一個工具,可以完成已有系統間的信息連接和協調,而且對沒有任何系統的新公司而言,可先用集成平臺構筑業務流程平臺,而后把企業想要的應用系統引入其上。
但是并不能說EAI技術就不存在其自身的問題。在任何集成項目中,最重要的成果之一就是降低其中軟件的耦合程度,通常是通過使用松弛性耦合組件使它們之間的相互依賴變得很少或不存在。傳統的EAI要求服務客戶端與系統提供的服務本身之間必須進行緊密耦合,即要求一個同類基本結構。這樣的系統往往十分脆弱:如果一端的執行機制發生變化,那么另一端就會崩潰。例如,如果服務器應用程序的接口發生更改,那么客戶端就會崩潰。
為此,我們提出了基于XML的業務流程集成框架,通過使用XML這種標準的數據交換技術來取代傳統EAI技術中對適配器的要求,以降低應用系統之間的耦合度。
XML是目前主流的數據交換技術,它可以實現具有相當靈活性的、通用的數據交換接口,可以有效的解決不同應用系統、不同數據源之間的數據共享與交流問題。總體來看,數據交換的基本框架采用XML接口來訪問各種數據源,進行XML標準格式到不同異構數據之間的雙向映射。翻譯成XML標準格式的數據由數據交換引擎進行處理,并通過消息傳輸部件進行數據的交流。
3 XML數據交換技術研究要點
3.1 XML的存儲
雖然XML可以采用各種不同的存儲方式,但對企業級大型應用系統而言,關系型數據庫是最普遍使用的存儲方式。在關系數據庫中物理地存儲XML數據有三種方法:碎片式、結構化和非結構化。碎片式和非結構化存儲雖然很有用,但還存在一定的局限性,而結構化方法可以充分利用關系數據和XML層次結構的能力。
結構化方法允許把XML數據存儲在數據庫中并保留數據的層次結構,因此,結構化存儲也被稱為“本地XML”存儲,這也是每一家數據庫廠商希望其產品達到的目標。保留XML數據層次關系帶來的最大好處是可以接收XML文檔,在關系數據庫中組合或修改它,并生成新的XML數據。
3.2 XML到其他數據源之間的轉換
XML與其他數據源之間的轉換,可以分成幾個方面來論述:
1) XML到關系型數據庫的轉換:
關系型數據庫是XML的最主要數據來源和目標。就目前的主流關系型數據庫來看,數據庫本身已經提供了良好的XML接口,用戶已經不必再自己開發相應的轉換功能。
2) XML到XML的轉換:
XSLT技術很好的解決不同XML之間的轉換問題,這一技術也已經在多種產品中得到了實現。
3) XML到其他異種數據源之間的轉換:
除關系型數據庫和XML以外,還有其它的數據源,例如自定義格式的文件,非主流數據庫系統等等。這一類數據源需要單獨開發相應得到XML的轉換功能。
4) 基于XML的業務流程整合的實現
基于上面提出的業務流程集成架構的解決方案,我們以某高校的共享數據庫建設為背景,對架構的具體技術進行了實現。
系統開發可以基于不同的語言和平臺,我們采用Vitria公司的EAI設計平臺BusinessWare的BWE建模工具,系統在Windows 2000 Server平臺上,采用JAVA作為開發語言,Oracle、MS SQL Server 2000等作為后臺數據庫,XML作為數據格式。以一個教務子系統為例,它的設計模型如圖2所示。
圖2的集成模型由一個流程模型和六個連接器組成,其中有數據庫和通道兩類連接器,其中整合總線和訂閱總線的數據封裝為XML的格式通過消息總線傳遞。
每一個子系統的原通道和目標通道都與總線連接,這樣就構成整個系統的“總線發布—訂閱”模式。
教務處理流程本身是一個流程模型,它的詳細流程設計如圖3所示。
圖3中流程模型涉及到各類信息的整合和訂閱,以整合流程為例,從教務子系統到共享庫的數據轉換存在三種操作:數據的添加、更新和刪除。從圖7可以看出從對照表到整合流程有三種轉換方式,其中對應的轉換觸發器分別為add、changeWithValue和deleteWithValue。再將這三個轉換細化之后就能得到更底層的流程模型(如圖4示)。
三個轉換分別對應著三個轉換狀態,其中包含了原數據庫和共享庫之間的映射關系,數據的映射通過調用事先定義好的方法來完成,之后統一由action state將數據推至出口端口(OutPort)。通過從整合模型到流程模型的一步步細化,我們將整過程定義為一個IDL類型,其中可以為教務輸出定義模塊JwPushOut和JW,并在此之下定義事件接口,T_XJGL_XSJBXX即為圖4中的三個轉化事件的接口,add、changeWithValue和deleteWithValue就是這個接口中的三個事件。模型設計完成后我們就可以由BWE自動生成如下代碼(其中的parameters表示省略的參數):
module JwPushOut {
module JW {
interface T_XJGL_XSJBXX;
interface T_XJGL_XSZXXXB;
interface T_XJGL_XSJBXX {
event void add(parameters);
event void changeWithValue(parameters);
event void deleteWithValue(parameters);
};
};
};
基于上述體系結構及數據集成方案所構建系統,能更好地滿足系統的應用需求,具有程序編寫代碼量小,良好的信息交換及容易擴展和部署等優點。下面給出一個XML的數據交戶樣例:
< Student diffgr: id=”Student1” msdata:rowOder=”0”>
< XB >男
5 總結
該文提出了基于XML的企業流程整合方案,數據表示基于XML,提供了標準的數據交換格式、良好數據交換、可擴展的EAI解決方案。誠然,系統所實現的功能還存在著一定的局限性,例如在滿足企業之間的數據交換的需求方面還有待于進一步完善。但是,基于XML的應用體系結構和數據集成方案為新形勢下企業應用集成提出了新的思路,適合未來業務流程和辦公流程整合應用的發展方向。
參考文獻:
[1] 劉迎春,蘭雨晴,于樂樂.ESB中的數據交換技術[J].計算機系統應用,2005,(10).
[2] 龍德應.基于Web服務/XML的電子商務體系及數據集成研究[D].廣東工業大學學報,2003.
[3] 潘世成.基于XML總線的企業應用集成(EAI)技術[J].IT論壇,2006.
[4] 黃向平.基于業務流程整合的企業應用集成[J].計算機系統應用,2006(7).
[5] Mohan, Vijai.SEAL-EAI software engineering architecture for legacy enterprise application integration.Masters Abstracts International,2004.