摘要:針對定制化集成接口方案難以適應日趨動態的企業應用集成環境的現狀,提出了基于元模型的企業應用數據集成方法,定義了數據集成接口定義元模型,并用XML描述了該模型的構成。建立了基于元模型的企業應用數據集成過程模型,開發了通用的數據轉換組件,并在某集團企業多級質量管理系統上下兩級異構系統之間的數據集成中進行了應用驗證。
關鍵詞:元模型;企業應用集成;質量信息系統; 擴展標記語言;集成組件
中圖分類號:TP392文獻標志碼:A
文章編號:1001-3695(2007)05-0060-03
企業應用環境動態特性的日趨增強對系統集成方案的動態適應性與開放互連性提出了更高要求[1~3]。針對特定集成環境、特定集成需求而定制化開發的集成方案往往難以持久適應動態變化的企業應用環境,一旦集成應用中的任何一方發生變化,相關的應用方必須對其集成接口乃至應用本身進行代碼級的更改,不僅工作量大、技術難度大,且往往會因為技術平臺、人員以及軟件開發商等各方面的變故而無法實施。為此,本文對低耦合、高開放的集成方案進行了研究,提出并實現了一種基于元模型的集成需求描述與表達機制,并據此開發了具有通用性的識別與轉換組件。
1數據集成過程分析
基于關系模型的數據集成對象包括四個層次,即數據庫、表、記錄和字段[4,5]。數據庫是若干張表的集合;表是若干條記錄的集合;記錄是若干數據字段的集合;在關系模型中, 字段是可操作的原子數據對象。借鑒文獻[5]中的描述方法,對關系型數據庫之間進行集成的數據映射分析過程作了分析與描述,如圖1所示。
具體映射過程如下:
(1)實體映射。首先判斷兩個數據庫之間要集成的表間是否存在對應的關系。如果不存在對應關系,表示集成系統之間在業務上不存在對應關系。其中一方需要擴充業務功能并在數據庫層面增加相應實體表。實體表之間如果存在對應關系,包括多對一、一對一和一對多三種映射形態。其中,一對一映射是基礎形態,一對多映射和多對一映射可以通過主—外鍵的關系簡化為一對一映射完成。
(2)主鍵映射。表映射關系分析完成后,即需要展開主鍵映射分析。與表之間映射相似,主鍵的映射也存在多種關系形態,即一對一、多對一和一對多。多對一和一對多表示源表的主鍵需要通過一定的轉換關系轉換成目的表的主鍵。
(3)字段映射。字段即列之間的映射首先要進行對應性分析。如果不存在對應關系,則分析是否不對應的列可以由其他列間接導出。例如在質量系統工序檢驗表中不存在不合格率這個字段,但存在合格數和送檢數,那么不合格率字段就可以由合格數和送檢數這兩個字段通過一定的算法間接導出。如果字段之間存在對應關系,則要分析字段的類型。類型不一致,進行數據交換時需要按照雙方的對應類型進行強制轉換。常見類型的轉換有字符—數字轉換、時間—字符轉換、Blob大字段—文本文件轉換等。針對類型一致的情況還要對字段長度和字段格式進行判斷。如果存在一致則直接轉換;否則在接口設計和定義時進行間接數據轉換。
2集成接口元模型定義
由上述分析可知,系統間數據集成的實質可理解為源數據模型與目的數據模型之間映射關系的描述與表達。為此,考慮引入元模型技術構建具有通用性的映射關系描述模型。其中,元模型是用于描述映射模型的標準體系,其構成模式如圖2所示。
(1)表映射規范主要用于表述實體表之間的對應關系。例如映射主實體表定義、主實體與從實體之間的關系等。(2)主鍵映射規范主要用于描述集成實體表主鍵之間的映射關系。對應復合關系還應表征表示基本的復合算法,復合算法糅合了基本類型的算法,如針對整數型字段的加減等運算。
(3)字段映射規范主要用于描述集成實體表字段之間的映射關系與映射順序,包括源字段名、源字段表名、目的字段名、目的字段長等。
(4)擴展映射規范主要用于描述Image、Blob等特殊類型的字段映射。對于這類映射,在集成時還存在數據到文件的轉換或者文件到數據的轉換等特殊情況,需要基于擴展映射規范定義字段與文件之間的轉換關系。
基于上述框架,本文采用具有通用語義表達能力的XML文件體系[2]建立了文本化的元模型定義文件,如圖3所示。
3基于接口元模型的應用系統集成方案
基于元模型的企業應用系統集成方案如圖4所示。
集成過程包括如下步驟:
(1)將相關各方的數據模型進行抽象,并采用形式化方式加以描述。常用的描述方式有E-R、UML和Express語言等。
(2)基于建立的規范化數據模型,依據元模型DTD規范構建集成接口的映射模型。
(3)源數據方轉換組件依據集成接口映射模型導出應用數據并轉換為符合元模型標準的中間數據文件。
(4)接收方數據轉換組件依據集成接口映射模型將接收的中間數據文件加以解析利用。
(5)當集成環境發生變化時,如字段調整、字段類型變化等,集成各方僅需修改模型定義文件即可,而無需對數據轉換組件進行改變。
4基于元模型的數據轉換組件設計
數據轉換組件用于依據數據集成接口的映射模型進行集成雙方的數據轉換。如圖5所示,數據轉換組件包括元模型文件解析器、集成數據轉換器、文件打包/解包組件與文件加密/解密組件四個部分。
元模型文件解析器為核心組件,負責依據集成接口元模型解析集成接口映射文件。本文基于DOM(文檔對象模型)解析器構建了面向XML的元模型文件解析器[6,7]。集成數據轉換器依據接口映射文件完成源數據集向中間接口文件的轉換。為了保證中間文件的完整性并便于文件傳遞,還需要應用文件打包組件將集成文件封裝為完整的數據包文件。加/解密組件則用于對需要進行遠程傳遞的中間數據文件進行加/解密操作,以保證集成過程中的數據安全。
5應用案例
某從事復雜產品研制與生產的集團企業在建立集團、院兩級質量管理系統的過程中,需要實現集團級系統與院級系統之間的數據集成。其中,集團級質量管理系統主要面向宏觀質量管理,而院級質量管理系統則偏重于產品實現過程中的質量控制。針對不同的質量管理要求,該集團采用了兩套質量管理信息系統。集團級采用了基于PowerBuilder開發的綜合質量信息管理系統(下文簡稱系統A),而院級則選用了基于J2EE架構開發的企業級質量管理系統(下文簡稱系統B)。由于兩套應用系統都處于不斷完善之中,為提高集成方案的動態適應性,采用了基于元模型的集成方案并收到了較好的應用效果。在此,以質量故障信息數據的集成為例加以介紹。圖6為兩個系統針對質量故障表進行集成的E-R表示。映射需求如下:
(1)系統A中實體與系統B的實體集成是一對多的關系。系統A中的“質量問題表”對應系統B中的“產品生產信息表”“質量信息表”“人員表”“組織表”“產品表”。初步設定“產品生產信息表”為主對應表。
(2)系統A中的“質量問題表”主鍵“產品編號cpbh”經協商系統B中的表“產品表”字段“產品編號code”,和“產品生產信息表”字段“生產編號code”,通過“+”運算外加分隔符“-”合成而成。具體形式為:“產品編號code”+“-”+“生產編號code”,主鍵限長32個字符。
(3)系統A中的字段只是系統B中對應表字段的一部分,并且“故障現象描述”字段在系統B中的字段長為400,而系統A中的字段長為200。對應時間要求系統A明確時間格式為YYYY-MM-DD。
(4)系統B中的文件都是以文件名和文件鏈接保存在服務器中;而系統A的文件通過二進制大字段保存在數據庫中。
(5)系統A要求集成接口文件格式為文本文件,字段順序有強制的要求。
基于圖3所示的元模型定義集成接口映射模型的XML文件如下所示。由于應用案例涉及的映射關系較為復雜,在此只給出了部分字段的映射范例。
?xml version=\"1.0\" encoding=\"UTF-8\"?
configuration
!--①質量問題表映射關系--
table_define
table name=\"produceinfo\" main=\"yes\"
foreign name=\"qualityinfo\" type=\"set\"/foreign
foreign name=\"product\" type=\"single\" column=\"product_id\"/foreign
foreign name=\"organization\"type=\"single\"column=\"design_dept\"/foreign
foreign name=\"organization\"type=\"single\"column=\"produce_dept\"/foreign
/table
table name=\"qualityinfo\" parent=\"produceinfo\"
foreign name=\"employee\" type=\"single\" column=\"checker\"/foreign
foreign name=\"organization\" type=\"single\" column=\"fault_dept\"/foreign
/table
!--②主鍵映射關系,系統A的主鍵cpbh由系統B來源于兩個表的字段合成而成--
key_define
keys
key name=\"cpbh\" type=\"String\" length=\"32\"
key_column name=\"code\" table=\"produceinfo\"/
/key
/key name=\"cpbh\" type=\"String\" length=\"32\"
/key_column name=\"code\" table=\"product\"/
/keys
!--主鍵合成關系及合成運算--
keySyn
keyArith name=\"cpdh\" columns=\"1,2\"interval=\"-\"arithmetic=\"+\"
/keyArith
/keySyn
/key_define
!--③特殊字段映射,要求帶有后綴--
file
file_column name=\"qualityreport1\"table=\"qualityinfo\" postfix=\"true\" toname=\"zlwtglglbg\"/
file_column name=\"qualityreport2\" table=\"qualityinfo\" postfix=\"true\" toname=\"zlwtjsglbg\"/
/file
!--④字段映射關系--
columns
column name=\"produceDate\" type=\"Date\" format=\"yyyy-mm-dd\" table=\"prodceinfo\" toname=\"ccrq\" not-1=\"true\"default=\"systemdate\"/
column name=\"code\" type=\"String\" length=\"16\" table=\"pro-duct\" column=\"product_id\" toname=\"cpdh\" not-1=\"true\" default=\"a\"/
columns name=\"name\" type=\"String\" length=\"16\" table=\"pro-duct\" column=\"product_id\" toname=\"cpdh\"/
columns name=\"code\" type=\"String\" length=\"16\" table=\"product\" column=\"product_id\" toname=\"cpdh\"/
…
/columns
/configuration
基于上述接口映射文件,運用數據轉換組件建立了集團、院兩級系統間的數據集成。
6結束語
基于元模型的數據集成方案實現了數據轉換算法與數據映射文件的分層化處理與表達。在一定程度上降低了系統間集成的數據耦合性,有助于提高系統集成接口的開放性與動態適應性,為系統間集成方案的開發與實施提供了一種有價值的思路。
參考文獻:
[1]
范玉順,李慧芳.企業集成技術的研究現狀與發展趨勢[J].中國制造業信息化,2003,32(1):59-61.
[2]段桂江,孫飛,唐曉青.集成質量系統與企業資源計劃系統的多視圖融合機制研究[J].計算機集成制造系統,2005,12(11):1723-1727.
[3]段桂江,孫飛.基于功能網鏈模型的企業應用系統融合分析方法[J].計算機集成制造系統,2006,12 (1):65-70.
[4]謝芳華,任午令,唐任仲.基于XML的異構數據交換集成技術及其實現[J].制造業自動化,2004,26(4):1-4.
[5]WANG Chin bin,CHEN Tsung yi, CHEN Yuh min,et al. Design of a meta model for integrating enterprise systems[J].Computers In Industry,2005,56(3):305-322.
[6]丘廣華,張文敏.XML編程實例教程[M].北京:科學出版社,2004.
[7]茍凌怡,熊光楞,謝金崇,等.基于XML 的產品信息集成關鍵技術研究[J].計算機輔助設計與圖形學學報,2002,14(2):105-110.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”