摘要:針對(duì)定制化集成接口方案難以適應(yīng)日趨動(dòng)態(tài)的企業(yè)應(yīng)用集成環(huán)境的現(xiàn)狀,提出了基于元模型的企業(yè)應(yīng)用數(shù)據(jù)集成方法,定義了數(shù)據(jù)集成接口定義元模型,并用XML描述了該模型的構(gòu)成。建立了基于元模型的企業(yè)應(yīng)用數(shù)據(jù)集成過程模型,開發(fā)了通用的數(shù)據(jù)轉(zhuǎn)換組件,并在某集團(tuán)企業(yè)多級(jí)質(zhì)量管理系統(tǒng)上下兩級(jí)異構(gòu)系統(tǒng)之間的數(shù)據(jù)集成中進(jìn)行了應(yīng)用驗(yàn)證。
關(guān)鍵詞:元模型;企業(yè)應(yīng)用集成;質(zhì)量信息系統(tǒng); 擴(kuò)展標(biāo)記語(yǔ)言;集成組件
中圖分類號(hào):TP392文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2007)05-0060-03
企業(yè)應(yīng)用環(huán)境動(dòng)態(tài)特性的日趨增強(qiáng)對(duì)系統(tǒng)集成方案的動(dòng)態(tài)適應(yīng)性與開放互連性提出了更高要求[1~3]。針對(duì)特定集成環(huán)境、特定集成需求而定制化開發(fā)的集成方案往往難以持久適應(yīng)動(dòng)態(tài)變化的企業(yè)應(yīng)用環(huán)境,一旦集成應(yīng)用中的任何一方發(fā)生變化,相關(guān)的應(yīng)用方必須對(duì)其集成接口乃至應(yīng)用本身進(jìn)行代碼級(jí)的更改,不僅工作量大、技術(shù)難度大,且往往會(huì)因?yàn)榧夹g(shù)平臺(tái)、人員以及軟件開發(fā)商等各方面的變故而無(wú)法實(shí)施。為此,本文對(duì)低耦合、高開放的集成方案進(jìn)行了研究,提出并實(shí)現(xiàn)了一種基于元模型的集成需求描述與表達(dá)機(jī)制,并據(jù)此開發(fā)了具有通用性的識(shí)別與轉(zhuǎn)換組件。
1數(shù)據(jù)集成過程分析
基于關(guān)系模型的數(shù)據(jù)集成對(duì)象包括四個(gè)層次,即數(shù)據(jù)庫(kù)、表、記錄和字段[4,5]。數(shù)據(jù)庫(kù)是若干張表的集合;表是若干條記錄的集合;記錄是若干數(shù)據(jù)字段的集合;在關(guān)系模型中, 字段是可操作的原子數(shù)據(jù)對(duì)象。借鑒文獻(xiàn)[5]中的描述方法,對(duì)關(guān)系型數(shù)據(jù)庫(kù)之間進(jìn)行集成的數(shù)據(jù)映射分析過程作了分析與描述,如圖1所示。
具體映射過程如下:
(1)實(shí)體映射。首先判斷兩個(gè)數(shù)據(jù)庫(kù)之間要集成的表間是否存在對(duì)應(yīng)的關(guān)系。如果不存在對(duì)應(yīng)關(guān)系,表示集成系統(tǒng)之間在業(yè)務(wù)上不存在對(duì)應(yīng)關(guān)系。其中一方需要擴(kuò)充業(yè)務(wù)功能并在數(shù)據(jù)庫(kù)層面增加相應(yīng)實(shí)體表。實(shí)體表之間如果存在對(duì)應(yīng)關(guān)系,包括多對(duì)一、一對(duì)一和一對(duì)多三種映射形態(tài)。其中,一對(duì)一映射是基礎(chǔ)形態(tài),一對(duì)多映射和多對(duì)一映射可以通過主—外鍵的關(guān)系簡(jiǎn)化為一對(duì)一映射完成。
(2)主鍵映射。表映射關(guān)系分析完成后,即需要展開主鍵映射分析。與表之間映射相似,主鍵的映射也存在多種關(guān)系形態(tài),即一對(duì)一、多對(duì)一和一對(duì)多。多對(duì)一和一對(duì)多表示源表的主鍵需要通過一定的轉(zhuǎn)換關(guān)系轉(zhuǎn)換成目的表的主鍵。
(3)字段映射。字段即列之間的映射首先要進(jìn)行對(duì)應(yīng)性分析。如果不存在對(duì)應(yīng)關(guān)系,則分析是否不對(duì)應(yīng)的列可以由其他列間接導(dǎo)出。例如在質(zhì)量系統(tǒng)工序檢驗(yàn)表中不存在不合格率這個(gè)字段,但存在合格數(shù)和送檢數(shù),那么不合格率字段就可以由合格數(shù)和送檢數(shù)這兩個(gè)字段通過一定的算法間接導(dǎo)出。如果字段之間存在對(duì)應(yīng)關(guān)系,則要分析字段的類型。類型不一致,進(jìn)行數(shù)據(jù)交換時(shí)需要按照雙方的對(duì)應(yīng)類型進(jìn)行強(qiáng)制轉(zhuǎn)換。常見類型的轉(zhuǎn)換有字符—數(shù)字轉(zhuǎn)換、時(shí)間—字符轉(zhuǎn)換、Blob大字段—文本文件轉(zhuǎn)換等。針對(duì)類型一致的情況還要對(duì)字段長(zhǎng)度和字段格式進(jìn)行判斷。如果存在一致則直接轉(zhuǎn)換;否則在接口設(shè)計(jì)和定義時(shí)進(jìn)行間接數(shù)據(jù)轉(zhuǎn)換。
2集成接口元模型定義
由上述分析可知,系統(tǒng)間數(shù)據(jù)集成的實(shí)質(zhì)可理解為源數(shù)據(jù)模型與目的數(shù)據(jù)模型之間映射關(guān)系的描述與表達(dá)。為此,考慮引入元模型技術(shù)構(gòu)建具有通用性的映射關(guān)系描述模型。其中,元模型是用于描述映射模型的標(biāo)準(zhǔn)體系,其構(gòu)成模式如圖2所示。
(1)表映射規(guī)范主要用于表述實(shí)體表之間的對(duì)應(yīng)關(guān)系。例如映射主實(shí)體表定義、主實(shí)體與從實(shí)體之間的關(guān)系等。(2)主鍵映射規(guī)范主要用于描述集成實(shí)體表主鍵之間的映射關(guān)系。對(duì)應(yīng)復(fù)合關(guān)系還應(yīng)表征表示基本的復(fù)合算法,復(fù)合算法糅合了基本類型的算法,如針對(duì)整數(shù)型字段的加減等運(yùn)算。
(3)字段映射規(guī)范主要用于描述集成實(shí)體表字段之間的映射關(guān)系與映射順序,包括源字段名、源字段表名、目的字段名、目的字段長(zhǎng)等。
(4)擴(kuò)展映射規(guī)范主要用于描述Image、Blob等特殊類型的字段映射。對(duì)于這類映射,在集成時(shí)還存在數(shù)據(jù)到文件的轉(zhuǎn)換或者文件到數(shù)據(jù)的轉(zhuǎn)換等特殊情況,需要基于擴(kuò)展映射規(guī)范定義字段與文件之間的轉(zhuǎn)換關(guān)系。
基于上述框架,本文采用具有通用語(yǔ)義表達(dá)能力的XML文件體系[2]建立了文本化的元模型定義文件,如圖3所示。
3基于接口元模型的應(yīng)用系統(tǒng)集成方案
基于元模型的企業(yè)應(yīng)用系統(tǒng)集成方案如圖4所示。
集成過程包括如下步驟:
(1)將相關(guān)各方的數(shù)據(jù)模型進(jìn)行抽象,并采用形式化方式加以描述。常用的描述方式有E-R、UML和Express語(yǔ)言等。
(2)基于建立的規(guī)范化數(shù)據(jù)模型,依據(jù)元模型DTD規(guī)范構(gòu)建集成接口的映射模型。
(3)源數(shù)據(jù)方轉(zhuǎn)換組件依據(jù)集成接口映射模型導(dǎo)出應(yīng)用數(shù)據(jù)并轉(zhuǎn)換為符合元模型標(biāo)準(zhǔn)的中間數(shù)據(jù)文件。
(4)接收方數(shù)據(jù)轉(zhuǎn)換組件依據(jù)集成接口映射模型將接收的中間數(shù)據(jù)文件加以解析利用。
(5)當(dāng)集成環(huán)境發(fā)生變化時(shí),如字段調(diào)整、字段類型變化等,集成各方僅需修改模型定義文件即可,而無(wú)需對(duì)數(shù)據(jù)轉(zhuǎn)換組件進(jìn)行改變。
4基于元模型的數(shù)據(jù)轉(zhuǎn)換組件設(shè)計(jì)
數(shù)據(jù)轉(zhuǎn)換組件用于依據(jù)數(shù)據(jù)集成接口的映射模型進(jìn)行集成雙方的數(shù)據(jù)轉(zhuǎn)換。如圖5所示,數(shù)據(jù)轉(zhuǎn)換組件包括元模型文件解析器、集成數(shù)據(jù)轉(zhuǎn)換器、文件打包/解包組件與文件加密/解密組件四個(gè)部分。
元模型文件解析器為核心組件,負(fù)責(zé)依據(jù)集成接口元模型解析集成接口映射文件。本文基于DOM(文檔對(duì)象模型)解析器構(gòu)建了面向XML的元模型文件解析器[6,7]。集成數(shù)據(jù)轉(zhuǎn)換器依據(jù)接口映射文件完成源數(shù)據(jù)集向中間接口文件的轉(zhuǎn)換。為了保證中間文件的完整性并便于文件傳遞,還需要應(yīng)用文件打包組件將集成文件封裝為完整的數(shù)據(jù)包文件。加/解密組件則用于對(duì)需要進(jìn)行遠(yuǎn)程傳遞的中間數(shù)據(jù)文件進(jìn)行加/解密操作,以保證集成過程中的數(shù)據(jù)安全。
5應(yīng)用案例
某從事復(fù)雜產(chǎn)品研制與生產(chǎn)的集團(tuán)企業(yè)在建立集團(tuán)、院兩級(jí)質(zhì)量管理系統(tǒng)的過程中,需要實(shí)現(xiàn)集團(tuán)級(jí)系統(tǒng)與院級(jí)系統(tǒng)之間的數(shù)據(jù)集成。其中,集團(tuán)級(jí)質(zhì)量管理系統(tǒng)主要面向宏觀質(zhì)量管理,而院級(jí)質(zhì)量管理系統(tǒng)則偏重于產(chǎn)品實(shí)現(xiàn)過程中的質(zhì)量控制。針對(duì)不同的質(zhì)量管理要求,該集團(tuán)采用了兩套質(zhì)量管理信息系統(tǒng)。集團(tuán)級(jí)采用了基于PowerBuilder開發(fā)的綜合質(zhì)量信息管理系統(tǒng)(下文簡(jiǎn)稱系統(tǒng)A),而院級(jí)則選用了基于J2EE架構(gòu)開發(fā)的企業(yè)級(jí)質(zhì)量管理系統(tǒng)(下文簡(jiǎn)稱系統(tǒng)B)。由于兩套應(yīng)用系統(tǒng)都處于不斷完善之中,為提高集成方案的動(dòng)態(tài)適應(yīng)性,采用了基于元模型的集成方案并收到了較好的應(yīng)用效果。在此,以質(zhì)量故障信息數(shù)據(jù)的集成為例加以介紹。圖6為兩個(gè)系統(tǒng)針對(duì)質(zhì)量故障表進(jìn)行集成的E-R表示。映射需求如下:
(1)系統(tǒng)A中實(shí)體與系統(tǒng)B的實(shí)體集成是一對(duì)多的關(guān)系。系統(tǒng)A中的“質(zhì)量問題表”對(duì)應(yīng)系統(tǒng)B中的“產(chǎn)品生產(chǎn)信息表”“質(zhì)量信息表”“人員表”“組織表”“產(chǎn)品表”。初步設(shè)定“產(chǎn)品生產(chǎn)信息表”為主對(duì)應(yīng)表。
(2)系統(tǒng)A中的“質(zhì)量問題表”主鍵“產(chǎn)品編號(hào)cpbh”經(jīng)協(xié)商系統(tǒng)B中的表“產(chǎn)品表”字段“產(chǎn)品編號(hào)code”,和“產(chǎn)品生產(chǎn)信息表”字段“生產(chǎn)編號(hào)code”,通過“+”運(yùn)算外加分隔符“-”合成而成。具體形式為:“產(chǎn)品編號(hào)code”+“-”+“生產(chǎn)編號(hào)code”,主鍵限長(zhǎng)32個(gè)字符。
(3)系統(tǒng)A中的字段只是系統(tǒng)B中對(duì)應(yīng)表字段的一部分,并且“故障現(xiàn)象描述”字段在系統(tǒng)B中的字段長(zhǎng)為400,而系統(tǒng)A中的字段長(zhǎng)為200。對(duì)應(yīng)時(shí)間要求系統(tǒng)A明確時(shí)間格式為YYYY-MM-DD。
(4)系統(tǒng)B中的文件都是以文件名和文件鏈接保存在服務(wù)器中;而系統(tǒng)A的文件通過二進(jìn)制大字段保存在數(shù)據(jù)庫(kù)中。
(5)系統(tǒng)A要求集成接口文件格式為文本文件,字段順序有強(qiáng)制的要求。
基于圖3所示的元模型定義集成接口映射模型的XML文件如下所示。由于應(yīng)用案例涉及的映射關(guān)系較為復(fù)雜,在此只給出了部分字段的映射范例。
?xml version=\"1.0\" encoding=\"UTF-8\"?
configuration
!--①質(zhì)量問題表映射關(guān)系--
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
!--②主鍵映射關(guān)系,系統(tǒng)A的主鍵cpbh由系統(tǒng)B來(lái)源于兩個(gè)表的字段合成而成--
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
!--主鍵合成關(guān)系及合成運(yùn)算--
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
!--④字段映射關(guān)系--
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
基于上述接口映射文件,運(yùn)用數(shù)據(jù)轉(zhuǎn)換組件建立了集團(tuán)、院兩級(jí)系統(tǒng)間的數(shù)據(jù)集成。
6結(jié)束語(yǔ)
基于元模型的數(shù)據(jù)集成方案實(shí)現(xiàn)了數(shù)據(jù)轉(zhuǎn)換算法與數(shù)據(jù)映射文件的分層化處理與表達(dá)。在一定程度上降低了系統(tǒng)間集成的數(shù)據(jù)耦合性,有助于提高系統(tǒng)集成接口的開放性與動(dòng)態(tài)適應(yīng)性,為系統(tǒng)間集成方案的開發(fā)與實(shí)施提供了一種有價(jià)值的思路。
參考文獻(xiàn):
[1]
范玉順,李慧芳.企業(yè)集成技術(shù)的研究現(xiàn)狀與發(fā)展趨勢(shì)[J].中國(guó)制造業(yè)信息化,2003,32(1):59-61.
[2]段桂江,孫飛,唐曉青.集成質(zhì)量系統(tǒng)與企業(yè)資源計(jì)劃系統(tǒng)的多視圖融合機(jī)制研究[J].計(jì)算機(jī)集成制造系統(tǒng),2005,12(11):1723-1727.
[3]段桂江,孫飛.基于功能網(wǎng)鏈模型的企業(yè)應(yīng)用系統(tǒng)融合分析方法[J].計(jì)算機(jī)集成制造系統(tǒng),2006,12 (1):65-70.
[4]謝芳華,任午令,唐任仲.基于XML的異構(gòu)數(shù)據(jù)交換集成技術(shù)及其實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,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編程實(shí)例教程[M].北京:科學(xué)出版社,2004.
[7]茍凌怡,熊光楞,謝金崇,等.基于XML 的產(chǎn)品信息集成關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2002,14(2):105-110.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”