摘要:針對(duì)制造業(yè)信息化中存在的多種異構(gòu)數(shù)據(jù)源問(wèn)題,提出了一種基于XML的異構(gòu)數(shù)據(jù)源集成系統(tǒng)框架,深入研究了關(guān)系數(shù)據(jù)庫(kù)與XML的數(shù)據(jù)轉(zhuǎn)換方式及數(shù)據(jù)查詢處理等關(guān)鍵技術(shù)的實(shí)現(xiàn)。
關(guān)鍵詞:信息化;異構(gòu);數(shù)據(jù)集成;XML
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)28-6659-03
隨著信息化技術(shù)在制造業(yè)中的廣泛應(yīng)用,制造業(yè)信息化技術(shù)的發(fā)展趨勢(shì)變?yōu)楣芾頂?shù)字化、設(shè)計(jì)數(shù)字化、生產(chǎn)過(guò)程數(shù)字化、制造裝備數(shù)字化,其信息化的建設(shè)已由單元系統(tǒng)應(yīng)用逐步轉(zhuǎn)向集成化應(yīng)用。產(chǎn)品數(shù)據(jù)管理(product data management,PDM)技術(shù)基本上解決了企業(yè)內(nèi)部CAD/CAPP/CAM等系統(tǒng)的集成問(wèn)題,但在動(dòng)態(tài)聯(lián)盟環(huán)境下,要實(shí)現(xiàn)企業(yè)之間不同應(yīng)用系統(tǒng)的動(dòng)態(tài)集成和產(chǎn)品協(xié)同設(shè)計(jì),需要建立一個(gè)支持公共數(shù)據(jù)模型的異構(gòu)數(shù)據(jù)源集成系統(tǒng)。
異構(gòu)數(shù)據(jù)源集成系統(tǒng)可以為用戶屏蔽已有的各種異構(gòu)數(shù)據(jù)系統(tǒng)不同的訪問(wèn)方法,給用戶提供一個(gè)訪問(wèn)多種異構(gòu)數(shù)據(jù)源的公共接口和一個(gè)集成處理多種數(shù)據(jù)源的信息交互處理平臺(tái)[1]。隨著計(jì)算機(jī)技術(shù)不斷地發(fā)展,新的數(shù)據(jù)類型也不斷出現(xiàn),異構(gòu)數(shù)據(jù)集成的研究工作也在不斷地推進(jìn)。目前,國(guó)內(nèi)外很多專家在異構(gòu)數(shù)據(jù)集成方面已開(kāi)展了相關(guān)研究。BEA公司推出BEA WebLogic Enterprise Platform集成平臺(tái),支持將各種應(yīng)用擴(kuò)展和集成為端到端的業(yè)務(wù)流程[2],微軟推出了BizTak Server應(yīng)用集成平臺(tái)[3],東南大學(xué)研究的Versatile[4]在虛擬數(shù)據(jù)集成方面取得了很大的成果,趙毅提出了一種基于XML的數(shù)據(jù)集成系統(tǒng)框架XDIFrame[5],劉輝提出基于PDM系統(tǒng)的CAD集成系統(tǒng)的集成框架[6],解
762ff71135fb7779b31b2d900f3d2086634295763fa974ff6e1f688e692ef46f決了PDM與CAD數(shù)據(jù)同時(shí)更新。從國(guó)內(nèi)外的研究成果可以看出,不同數(shù)據(jù)集成模型追求的集成目標(biāo)不盡相同,立足具體的應(yīng)用領(lǐng)域,開(kāi)發(fā)適合其業(yè)務(wù)需求的數(shù)據(jù)集成模型,為異構(gòu)數(shù)據(jù)集成的標(biāo)準(zhǔn)的形成具有重要的意義。在實(shí)現(xiàn)制造業(yè)信息化異構(gòu)數(shù)據(jù)集成方面,成熟的中間集成平臺(tái)軟件還較少。本文提出了一種應(yīng)用于制造業(yè)信息化中的異構(gòu)數(shù)據(jù)集成模型,采用XML Schema模型作為集成系統(tǒng)框架,可以集成制造業(yè)流水線上包括關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)、Web信息系統(tǒng)、文件系統(tǒng)等多種異構(gòu)數(shù)據(jù)。
1 基于XML的異構(gòu)數(shù)據(jù)集成模型
為消除數(shù)據(jù)源在數(shù)據(jù)模式上的差異,采用中間件模式來(lái)表示不同信息源的數(shù)據(jù),不需改變?cè)紨?shù)據(jù)的存儲(chǔ)和管理。利用XML作為數(shù)據(jù)交換的中間模式,可以屏蔽后臺(tái)的多種數(shù)據(jù)源及用簡(jiǎn)潔的方式描述復(fù)雜數(shù)據(jù),改善軟件的互通性。
基于XML中間件的異構(gòu)數(shù)據(jù)集成模型采用XML Schema描述每個(gè)局部數(shù)據(jù)源的模式信息及全局模式信息,使用自頂向下逐步分解細(xì)化的查詢方式對(duì)各關(guān)系型數(shù)據(jù)源進(jìn)行數(shù)據(jù)查詢,利用XQuery、SOAP等XML技術(shù)對(duì)異構(gòu)數(shù)據(jù)的不同格式進(jìn)行集成,實(shí)現(xiàn)多個(gè)客戶端通過(guò)統(tǒng)一接口進(jìn)行通信。整個(gè)體系結(jié)構(gòu)分三層:應(yīng)用層、集成中間件層、數(shù)據(jù)服務(wù)層。
1)應(yīng)用層:提供用戶接口,根據(jù)具體的應(yīng)用和用戶計(jì)算環(huán)境,使用專用的客戶端或Web瀏覽器對(duì)應(yīng)用服務(wù)層進(jìn)行數(shù)據(jù)訪問(wèn),并且可以把集成中間層返回的XML格式數(shù)據(jù)轉(zhuǎn)化為相應(yīng)的顯示格式展示給用戶。不管應(yīng)用是B/S還是C/S模式,只要遵循接口層的接口規(guī)范,就可以透明而有效地操作底層各類數(shù)據(jù)源。
2)集成中間件層:該層位于應(yīng)用層和數(shù)據(jù)服務(wù)層之間,是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)集成的關(guān)鍵,向上為系統(tǒng)提供統(tǒng)一的數(shù)據(jù)模式和數(shù)據(jù)訪問(wèn)通用接口, 向下協(xié)調(diào)各獨(dú)立數(shù)據(jù)庫(kù)的信息查詢,同時(shí)還可進(jìn)行數(shù)據(jù)與XML格式的轉(zhuǎn)換,將數(shù)據(jù)存儲(chǔ)到XML數(shù)據(jù)空間,并且維持XML數(shù)據(jù)空間與各異構(gòu)數(shù)據(jù)源間的映射關(guān)系。
3)數(shù)據(jù)服務(wù)層:是系統(tǒng)數(shù)據(jù)的提供者,數(shù)據(jù)源包括各種結(jié)構(gòu)化數(shù)據(jù)源如關(guān)系數(shù)據(jù)庫(kù)和面向?qū)ο髷?shù)據(jù)庫(kù),半結(jié)構(gòu)化數(shù)據(jù)源XML文檔等信息。
2 制造業(yè)信息化中異構(gòu)數(shù)據(jù)集成框架
制造業(yè)信息化中的數(shù)據(jù)集成主要包括兩種:一種是CAD/CAM/CAPP系統(tǒng)之間的幾何數(shù)據(jù)集成,此類數(shù)據(jù)可以通過(guò)國(guó)際標(biāo)準(zhǔn)或行業(yè)標(biāo)準(zhǔn)等來(lái)實(shí)現(xiàn),且早已解決,另一種是非圖形數(shù)據(jù)集成,如零部件屬性及之相關(guān)聯(lián)的其它文檔數(shù)據(jù)[7]。
根據(jù)基于XML的異構(gòu)數(shù)據(jù)集成模型,結(jié)合制造行業(yè)異構(gòu)數(shù)據(jù)環(huán)境,制造業(yè)信息化中異構(gòu)數(shù)據(jù)集成框架如圖1所示。其結(jié)構(gòu)采用中間件架構(gòu),由數(shù)據(jù)資源層、集成數(shù)據(jù)層和應(yīng)用層組成。
圖1 制造業(yè)信息化異構(gòu)數(shù)據(jù)集成框架
1)集成數(shù)據(jù)層:位于應(yīng)用程序(應(yīng)用層)與數(shù)據(jù)資源層之間,是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)集成的關(guān)鍵,主要負(fù)責(zé)數(shù)據(jù)集成與查詢處理。其中包裝器負(fù)責(zé)和各數(shù)據(jù)源交互,中介器將全局查詢映射到每一個(gè)局部模塊,查詢處理器主要負(fù)責(zé)接受用戶的查詢請(qǐng)求,先把基于全局視圖的查詢轉(zhuǎn)化為對(duì)各個(gè)局部視圖的子查詢,再將子查詢交給每個(gè)包裝器執(zhí)行,最后把查詢結(jié)果返回并整合反饋給用戶。集成管理器一方面負(fù)責(zé)對(duì)分布局部數(shù)據(jù)的增、刪管理操作,通過(guò)全局映射管理每一個(gè)數(shù)據(jù)源,實(shí)現(xiàn)數(shù)據(jù)集成管理,另一方面負(fù)責(zé)局部數(shù)據(jù)到全局?jǐn)?shù)據(jù)的集成,并將局部視圖映射到全局視圖中。根據(jù)制造行業(yè)數(shù)據(jù)異構(gòu)性較強(qiáng)的特點(diǎn),本系統(tǒng)采用LAV(Local-As-View)的數(shù)據(jù)集成映射方法[8]。此映射方法在局部模式和全局模式間建立映射關(guān)系,當(dāng)數(shù)據(jù)源發(fā)生變化時(shí),只需改變相應(yīng)的映射關(guān)系;當(dāng)增加數(shù)據(jù)源時(shí),只需添加局部模式的視圖,且和全局視圖匹配。
2)應(yīng)用層:是平臺(tái)入口,根據(jù)具體應(yīng)用及用戶計(jì)算環(huán)境,采用合適的應(yīng)用軟件或信息訪問(wèn)技術(shù),主要實(shí)現(xiàn)企業(yè)各種應(yīng)用的再利用和整合及企業(yè)間業(yè)務(wù)流程的邏輯表示。
3)數(shù)據(jù)資源層:處于最低層,主要包含與設(shè)計(jì)相關(guān)的各類類型數(shù)據(jù)資源,如文檔庫(kù)、結(jié)構(gòu)件庫(kù)、零件庫(kù)、流式數(shù)據(jù)文件、半結(jié)構(gòu)化數(shù)據(jù)等。
3 數(shù)據(jù)集成實(shí)現(xiàn)中關(guān)鍵技術(shù)
3.1 關(guān)系數(shù)據(jù)庫(kù)與XML的數(shù)據(jù)轉(zhuǎn)換
關(guān)系數(shù)據(jù)庫(kù)是結(jié)構(gòu)化數(shù)據(jù),通過(guò)表的形式來(lái)表示的,而XML文檔屬于半結(jié)構(gòu)化數(shù)據(jù),依據(jù)是XML Schmema或DTD,兩者數(shù)據(jù)結(jié)構(gòu)不同,是不能直接進(jìn)行相互訪問(wèn)和存儲(chǔ)的。在數(shù)據(jù)庫(kù)結(jié)構(gòu)和文檔結(jié)構(gòu)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),關(guān)鍵問(wèn)題是如何把關(guān)系數(shù)據(jù)庫(kù)表達(dá)的結(jié)構(gòu)及約束映射為XML。本系統(tǒng)中采用基于對(duì)象映射機(jī)制由數(shù)據(jù)庫(kù)模式生成XML模式,其映射規(guī)則為:對(duì)應(yīng)每一個(gè)數(shù)據(jù)庫(kù)建立一個(gè)XML Schema文件,且在文件中建立與數(shù)據(jù)庫(kù)同名的根元素,在根元素下創(chuàng)建Complextype類型元素,并把數(shù)據(jù)庫(kù)中各個(gè)表作為子元素加入到該元素中,同時(shí)為表元素創(chuàng)建Complextype類型元素,把表中各字段作為其子元素。
在以上映射規(guī)則基礎(chǔ)上,關(guān)系數(shù)據(jù)庫(kù)與XML之間的數(shù)據(jù)轉(zhuǎn)換實(shí)現(xiàn)如圖2所示,數(shù)據(jù)轉(zhuǎn)換分為由XML數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)導(dǎo)出生成XML文檔兩個(gè)過(guò)程[9]。
圖2 關(guān)系數(shù)據(jù)庫(kù)與XML的數(shù)據(jù)轉(zhuǎn)換
XML數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)時(shí),根據(jù)上述提供的映射規(guī)則和XML DTD文檔建立映射文件,將XML DTD文檔映射為數(shù)據(jù)庫(kù)中表結(jié)構(gòu),然后采用XML轉(zhuǎn)換器對(duì)XML文檔解析,提取其中相應(yīng)節(jié)點(diǎn)的數(shù)據(jù),再通過(guò)數(shù)據(jù)庫(kù)訪問(wèn)接口導(dǎo)入到關(guān)系數(shù)據(jù)庫(kù)中。
反之,從關(guān)系數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)時(shí),先根據(jù)關(guān)系數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)生成映射文件,再根據(jù)映射文件,XML轉(zhuǎn)換器從關(guān)系數(shù)據(jù)庫(kù)中提取數(shù)據(jù),生成XML文檔對(duì)象模型DOM,最后序列化為XML文檔。
3.2 數(shù)據(jù)查詢處理
查詢處理是異構(gòu)數(shù)據(jù)集成系統(tǒng)的關(guān)鍵技術(shù)之一,主要包含查詢預(yù)處理、查詢分解和查詢結(jié)果整合3個(gè)步驟。
1)查詢預(yù)處理:用戶發(fā)出查詢請(qǐng)求時(shí),查詢處理器收到后首先檢查語(yǔ)義是否合法,若有錯(cuò)則返回錯(cuò)誤信息并停止查詢,否則系統(tǒng)會(huì)在全局視圖中為其生成XQuery查詢語(yǔ)句,包含了全局模式的具體信息,并且進(jìn)行查詢邏輯的檢查。
2)查詢分解:XQuery語(yǔ)句通過(guò)驗(yàn)證并獲得安全控制器的認(rèn)可后,由查詢解析器將其發(fā)送到查詢分解器。首先對(duì)全局查詢語(yǔ)句進(jìn)行分析,再根據(jù)數(shù)據(jù)源的描述信息、模式間的映射規(guī)則和全局模式建立查詢分解樹(shù),將用戶查詢分解為針對(duì)每個(gè)數(shù)據(jù)源輸出模式的局部多個(gè)子查詢形式,通過(guò)統(tǒng)一接口發(fā)送到包裝器。
3)查詢數(shù)據(jù)整合:將來(lái)自各個(gè)包裝器分散的XML文檔進(jìn)行整合,采用XML Schema進(jìn)行有效性驗(yàn)證,消除重復(fù)和無(wú)用的信息,提取用戶需求的數(shù)據(jù),合并為一個(gè)符合全局模式的XML文檔,最后提供給用戶。
4 結(jié)束語(yǔ)
文章通過(guò)研究XML的異構(gòu)數(shù)據(jù)集成方案,采用XML Schema模型作為集成系統(tǒng)框架,結(jié)合制造行業(yè)異構(gòu)數(shù)據(jù)環(huán)境,提出了一種應(yīng)用于制造業(yè)信息化中的異構(gòu)數(shù)據(jù)集成模型。該方案較好地解決制造業(yè)信息化應(yīng)用中的異構(gòu)數(shù)據(jù)源集成問(wèn)題,實(shí)現(xiàn)數(shù)據(jù)的共享。同時(shí)由于制造業(yè)涉及數(shù)據(jù)的復(fù)雜性,有很多問(wèn)題還需進(jìn)一步的研究。
參考文獻(xiàn):
[1] 李昭原,羅曉沛.數(shù)據(jù)庫(kù)技術(shù)新進(jìn)展[M].北京:清華大學(xué)出版社,2007:85-93.
[2] BEA.BEAWebLogic Enterprise Platform技術(shù)解決方案[EB/OL].[2005-01-23].,http://www,bea. com.cn/solutions/techsolu/beawebenterplat/index. Jsp.
[3] Microsoft企業(yè)應(yīng)用集成服務(wù)平臺(tái)白皮書[EB/OL].[2005-10-21]. www.microfoft.com/china/technet/prodtechnol/ biztak/ roadshow/Product/at.sap.
[4] 劉科研,萬(wàn)麗榮,曾慶良.基于XML的信息集成系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2005(4):149-154.
[5] 趙毅.一種基于XML的數(shù)據(jù)集成系統(tǒng)框架及其應(yīng)用[J].計(jì)算機(jī)工程,2005(26):181-183.
[6] 劉輝.基于PDM系統(tǒng)的CAD集成技術(shù)研究[J].機(jī)械工程與自動(dòng)化,2009(1):28-32.
[7] 郭鋼,沈磊.面向制造業(yè)信息化數(shù)據(jù)集成應(yīng)用的中間集成平臺(tái)技術(shù)[J].四川兵工學(xué)報(bào),2008(1).
[8] LENZERINI M.Data Integration:A theoretical perspective[C].Proc.of the 21st ACM SIGMOD symposium on principles of database systems.New York:ACM Press,2004.
[9] 葛江華,李志強(qiáng),等.面向復(fù)雜產(chǎn)品的數(shù)據(jù)集成模型研究[J].計(jì)算機(jī)應(yīng)用研究,2009(4):1425-142