引言
在國(guó)際金融危機(jī)肆虐、國(guó)際競(jìng)爭(zhēng)日益激烈、產(chǎn)品需求日益精細(xì)化的背景下,企業(yè)要擺脫困境、做大做強(qiáng),并購(gòu)重組成為一種重要的發(fā)展戰(zhàn)略。
在企業(yè)完成并購(gòu)后,作為企業(yè)運(yùn)營(yíng)管理載體的信息系統(tǒng)的整合成為了必然的需求,如何有效地把這些分布的、異構(gòu)的、運(yùn)行在不同軟硬件平臺(tái)上的信息集成,連通“信息孤島”,共享數(shù)據(jù),為集團(tuán)企業(yè)提供一個(gè)完整統(tǒng)一的數(shù)據(jù)視圖以充分利用現(xiàn)有數(shù)據(jù)資源,成為了企業(yè)界日益關(guān)注的新問(wèn)題。
1 異構(gòu)數(shù)據(jù)源集成概述
異構(gòu)數(shù)據(jù)集成目的就是提供統(tǒng)一查詢(xún)接口,屏蔽底層數(shù)據(jù)源的異構(gòu)性,使用戶(hù)不必考慮底層數(shù)據(jù)模式與分布位置的不同等問(wèn)題,能夠通過(guò)一個(gè)統(tǒng)一的查詢(xún)界面實(shí)現(xiàn)對(duì)異構(gòu)數(shù)據(jù)源的透明訪問(wèn)。其中的關(guān)鍵是如何以一種統(tǒng)一的數(shù)據(jù)模式描述各異構(gòu)數(shù)據(jù)源中的數(shù)據(jù),屏蔽它們的平臺(tái)、數(shù)據(jù)結(jié)構(gòu)等異構(gòu)性,實(shí)現(xiàn)數(shù)據(jù)的無(wú)縫集成。
近年來(lái),多種數(shù)據(jù)集成模式被提出,其中比較有代表性的有以下幾種模式:
1) 點(diǎn)對(duì)點(diǎn)模式。
在兩種不同數(shù)據(jù)源之間建立相互轉(zhuǎn)化模式,該方法在異構(gòu)數(shù)據(jù)源很少的情況下,實(shí)現(xiàn)技術(shù)比較簡(jiǎn)單,但對(duì)異構(gòu)數(shù)據(jù)源較多的情況下,實(shí)現(xiàn)起來(lái)極不方便,因?yàn)閷?duì)于一個(gè)包含N 個(gè)異構(gòu)數(shù)據(jù)源的系統(tǒng),需要建立的轉(zhuǎn)化模式總和為: T = N( N - 1) ,相應(yīng)的交互復(fù)雜度為:O( n2 ) 。采用該模式,系統(tǒng)每增加一個(gè)新的數(shù)據(jù)源,都必須為這個(gè)新數(shù)據(jù)源建立起與已有數(shù)據(jù)源的多種訪問(wèn)模式,這就大大降低了系統(tǒng)的可擴(kuò)展性,該方法正被新的數(shù)據(jù)集成方式逐步取代。
2) 集中復(fù)制數(shù)據(jù)模式。
數(shù)據(jù)倉(cāng)庫(kù)是這一方法的典型代表,通過(guò)對(duì)異構(gòu)數(shù)據(jù)源的分析與轉(zhuǎn)換,將每個(gè)異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)復(fù)制到一個(gè)統(tǒng)一的數(shù)據(jù)倉(cāng)庫(kù)中,該模式的優(yōu)點(diǎn)是: 不破壞原有系統(tǒng),可集成多種數(shù)據(jù)源和商業(yè)規(guī)則,實(shí)現(xiàn)了數(shù)據(jù)的集中式管理,數(shù)據(jù)集成質(zhì)量好。缺點(diǎn)是: 無(wú)法實(shí)時(shí)反映數(shù)據(jù)的變化,只能定期進(jìn)行數(shù)據(jù)更新,每當(dāng)有新的數(shù)據(jù)源加入時(shí),全局模式必須重新生成,系統(tǒng)可擴(kuò)展性較差。
3) 中間件模式。
隨著分布對(duì)象技術(shù)的興起,中間件技術(shù)也被廣泛地應(yīng)用到數(shù)據(jù)集成中,其中比較有代表性的有微軟的DCOM 和OMG 的CORBA 等,他們都采用包裝的思想,以統(tǒng)一的接口提供調(diào)用服務(wù),屏蔽了數(shù)據(jù)的異構(gòu)性,實(shí)現(xiàn)了數(shù)據(jù)的透明性訪問(wèn)。中間件技術(shù)在數(shù)據(jù)源的自治性、查詢(xún)的實(shí)時(shí)性、配置的靈活性等方面,優(yōu)點(diǎn)比較明顯,是目前采用比較廣泛的集成模式之一。
4) 基于XML 技術(shù)模式。
XML(eXtensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言) 是一種在Web 上表示信息的標(biāo)準(zhǔn)文本格式。XML憑借其良好的可伸縮性和靈活性,不僅能夠提供對(duì)資源內(nèi)容的表示,也可提供對(duì)資源所具有的結(jié)構(gòu)信息的表示,其正被廣泛地應(yīng)用到許多領(lǐng)域,也是近年來(lái)數(shù)據(jù)集成領(lǐng)域研究熱點(diǎn)之一。
文中在對(duì)這些集成方法分析的基礎(chǔ)上,提出了一種采用SOA 架構(gòu)及通過(guò)Web Service 技術(shù)封裝數(shù)據(jù)源的軟件架構(gòu)。并針對(duì)目前Web 服務(wù)選取主要集中于UUDI 層,基本是通過(guò)關(guān)鍵字匹配或者基于框架的方法實(shí)現(xiàn),引入語(yǔ)義Web技術(shù),來(lái)解決原方法查準(zhǔn)率極其低下的不足。在語(yǔ)義Web 中,描述服務(wù)的信息均被賦予特定的語(yǔ)義,能被計(jì)算機(jī)理解和處理,這使得基于語(yǔ)義的Web 服務(wù)的發(fā)現(xiàn)成為可能,極大地提高了查準(zhǔn)率。
2 基于SOA的系統(tǒng)集成架構(gòu)設(shè)計(jì)
面向服務(wù)架構(gòu)( Service Oriented Architecture,SOA)的概念是GartnerGroup,于1996 年提出。關(guān)于SOA,目前尚未有一個(gè)統(tǒng)一的、業(yè)界廣泛接受的定義。一般認(rèn)為: SOA,面向服務(wù)架構(gòu)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元( 稱(chēng)為服務(wù)) ,通過(guò)服務(wù)間定義良好的接口和契約聯(lián)系起來(lái)。接口采用中立的方式定義,獨(dú)立于具體實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言,使得構(gòu)建在這樣的系統(tǒng)中的服務(wù)可以使用統(tǒng)一和標(biāo)準(zhǔn)的方式進(jìn)行通信。
Web Service 是一種與平臺(tái)無(wú)關(guān)的“自包含的、自描述的、組件化的應(yīng)用程序”,是一種在Internet 上使用的全新的分布式計(jì)算技術(shù)。
系統(tǒng)首先按照Web Services 標(biāo)準(zhǔn)把數(shù)據(jù)封裝,以解決平臺(tái)異構(gòu)、結(jié)構(gòu)異構(gòu)與分布性等問(wèn)題,本體服務(wù)層及語(yǔ)義層進(jìn)一步把數(shù)據(jù)解析與重組,最后以虛擬視圖或視圖集合的形式,提供給應(yīng)用層。其特點(diǎn)是能夠解決各種異構(gòu)性問(wèn)題,且中間過(guò)程中不存儲(chǔ)任何異構(gòu)數(shù)據(jù)庫(kù)中的實(shí)際數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)異構(gòu)集成。整個(gè)系統(tǒng)架構(gòu)如圖1 所示,主要包括以下5 個(gè)層次:
圖1 基于SOA 的異構(gòu)數(shù)據(jù)集成框架圖
1) 應(yīng)用層。
提供統(tǒng)一的查詢(xún)接口,用戶(hù)可以透明地訪問(wèn)底層數(shù)據(jù),而不必知道數(shù)據(jù)的物理位置與數(shù)據(jù)的異構(gòu)性,對(duì)用戶(hù)而言,就像訪問(wèn)單數(shù)據(jù)源一樣簡(jiǎn)單。
2) 語(yǔ)義層。
將語(yǔ)義查詢(xún)結(jié)果與語(yǔ)義信息結(jié)合包裝為語(yǔ)義形式的結(jié)果集,并以服務(wù)的形式提供給應(yīng)用層調(diào)用。
3) 本體服務(wù)層。
本體服務(wù)包括領(lǐng)域本體服務(wù)與系統(tǒng)本體服務(wù)兩部分。領(lǐng)域本體是數(shù)據(jù)模式的統(tǒng)一表達(dá)模型和領(lǐng)域術(shù)語(yǔ)標(biāo)準(zhǔn)。領(lǐng)域本體由領(lǐng)域?qū)<叶x,數(shù)據(jù)提供者需要把自己的數(shù)據(jù)集與領(lǐng)域本體進(jìn)行映射形成系統(tǒng)本體。系統(tǒng)本體與系統(tǒng)的多個(gè)角色存在著相互聯(lián)系,是整個(gè)系統(tǒng)語(yǔ)義集成的核心。
4) 數(shù)據(jù)資源服務(wù)層。
維護(hù)所有與數(shù)據(jù)資源相關(guān)的信息。所有直接與數(shù)據(jù)資源有關(guān)的操作都由這個(gè)組件提供支持。這些操作包括數(shù)據(jù)資源的動(dòng)態(tài)發(fā)布、加入、退出、信息維護(hù)、信息查詢(xún)、數(shù)據(jù)的導(dǎo)入和查詢(xún)等。實(shí)際上,這個(gè)核心組件為各種不同類(lèi)型的數(shù)據(jù)資源提供了統(tǒng)一的接口,使得查詢(xún)能夠跨越不同的數(shù)據(jù)資源類(lèi)型。系統(tǒng)平臺(tái)在分析用戶(hù)的查詢(xún)請(qǐng)求時(shí),正是從這個(gè)數(shù)據(jù)資源服務(wù)中獲取數(shù)據(jù)資源的相應(yīng)信息,進(jìn)而生成查詢(xún)計(jì)劃,并把查詢(xún)分派到各個(gè)數(shù)據(jù)資源。
5) 資源層。
企業(yè)遺留及新建的各種數(shù)據(jù)資源。
3 關(guān)鍵模塊的設(shè)計(jì)
3.1 本體庫(kù)
起初本體是哲學(xué)范疇上的一個(gè)概念,Studer等通過(guò)研究認(rèn)為“本體( ontology) 是共享概念模型的明確的形式化規(guī)范說(shuō)明”,其包含4 層含義: 概念模型、明確、形式化和共享。本體是對(duì)一個(gè)客觀存在系統(tǒng)的解釋或說(shuō)明,描述的是一個(gè)客觀系統(tǒng)的抽象本質(zhì)。正是由于本體對(duì)客觀現(xiàn)實(shí)的強(qiáng)大描述能力,本體這一概念被廣泛地引入計(jì)算機(jī)領(lǐng)域,用來(lái)解決一些與現(xiàn)實(shí)世界相關(guān)的,需要對(duì)現(xiàn)實(shí)事物進(jìn)行抽象描述的領(lǐng)域。在數(shù)據(jù)集成過(guò)程中,人們需要對(duì)大量的數(shù)據(jù)進(jìn)行邏輯描述,以揭示其中的相互關(guān)系,消除語(yǔ)義的異構(gòu)性等問(wèn)題,本體的出現(xiàn)正好解決了這一問(wèn)題。在數(shù)據(jù)集成領(lǐng)域中,通過(guò)對(duì)數(shù)據(jù)的嚴(yán)格定義和建立數(shù)據(jù)之間的關(guān)系,揭示數(shù)據(jù)之間共同認(rèn)可的、可共享的知識(shí),達(dá)到解決語(yǔ)義異構(gòu)性問(wèn)題的目的。
這里,借用描述邏輯( DL,Description Logic) 中對(duì)TBox 和ABox 的定義形式,來(lái)構(gòu)建本體庫(kù)。
1) 集合C: 概念集,領(lǐng)域知識(shí)中最基本最一般的概念形成最初的概念集C;
2) 集合R: 關(guān)系集,概念之間一些最基本的關(guān)系形成關(guān)系集R;
3) 把1) 中形成的概念集C 和2) 中生成的關(guān)系集R,通過(guò)邏輯關(guān)系運(yùn)算,生成新的概念,并把新生成的概念添加到集合C;
4) 重復(fù)第三步,直到集合C 足夠覆蓋應(yīng)用中的領(lǐng)域知識(shí),集合C 就是所要的TBox;
5) 用實(shí)例集來(lái)填充概念集C 中的概念和關(guān)系集R中的關(guān)系,這時(shí)用于表示填充式子的全體就形成Abox。
這里TBox 與ABox 就是本系統(tǒng)中要用到的領(lǐng)域本體與系統(tǒng)本體。
下面說(shuō)明一下本體的創(chuàng)建過(guò)程,現(xiàn)有倉(cāng)庫(kù)A 與倉(cāng)庫(kù)B,其結(jié)構(gòu)如圖2 所示。
圖2 倉(cāng)庫(kù)A 與倉(cāng)庫(kù)B
其涉及到的基本概念及他們之間的關(guān)系,用MyoMyo Naing 提出采用六元組法可表示為{ C,AC,H} ,其中:
倉(cāng)庫(kù)A:
C = { 倉(cāng)庫(kù)、減速器、庫(kù)管員、蝸桿減速器}
AC = { 管理( 庫(kù)管員,減速器) ,存放地點(diǎn)( 減速器,倉(cāng)庫(kù)) ,工作地點(diǎn)( 庫(kù)管員,倉(cāng)庫(kù)) }
H = { ( 蝸桿減速器,減速器) ,減速器…}倉(cāng)庫(kù)B:
C = { 倉(cāng)庫(kù)、減速機(jī)、管理員、蝸桿減速器、齒輪減速器}
AC = { 管理( 管理員,減速機(jī)) ,存放地點(diǎn)( 減速機(jī),倉(cāng)庫(kù)) ,工作地點(diǎn)( 管理員,倉(cāng)庫(kù)) }
H = { ( 蝸桿減速器,減速機(jī)) ,( 齒輪減速器,減速機(jī)) ,減速機(jī)…}
通過(guò)調(diào)研及與企業(yè)相關(guān)專(zhuān)家勾通,可得到基于圖3 表示的領(lǐng)域本體。
圖3 領(lǐng)域本體
用Myo Myo Naing 提出采用六元組法可表示為{ C,AC,H} ,其中:
C = { 倉(cāng)庫(kù)、減速器、管理員、蝸桿減速器、齒輪減速器}
AC = { 管理( 管理員,減速器) ,存放地點(diǎn)( 減速器,倉(cāng)庫(kù)) ,工作地點(diǎn)( 管理員,倉(cāng)庫(kù)) }
H = { ( 蝸桿減速器,減速器) ,( 齒輪減速器,減速器) ,減速器…}
用倉(cāng)庫(kù)A 與倉(cāng)庫(kù)B 中的概念集CA、CB去填充領(lǐng)域本體概念集C 中的概念,用倉(cāng)庫(kù)A 與倉(cāng)庫(kù)B 中的關(guān)系集RA、RB去填充領(lǐng)域本體中的關(guān)系集R,并清除多余概念與關(guān)系,就得到系統(tǒng)本體,如圖4 所示。
圖4 全局本體
用OWL 語(yǔ)言可表示為:
< owl: Class rdf: ID = " 倉(cāng)庫(kù)" > < /owl: Class >
< owl: Class rdf: ID = " 減速器" > < /owl: Class >
< owl: Class rdf: ID = " 管理員" > < /owl: Class >
< owl: Class rdf: ID = " 蝸桿減速器" >
< rdfs: subClass >
< owl: Class rdf: about = " #減速器" / > < /owl: Class >
< /rdfs: subClass >
< /owl: Class >
< owl: Class rdf: ID = " 齒輪減速器" >
< rdfs: subClass >
< owl: Class rdf: about = " #減速器" / >
< /owl: Class >
< /rdfs: subClass >
< /owl: Class >
< owl: OProperty rdf: ID = " 管理" >
< rdfs: domain rdf: resource = " #管理員" / >
< rdfs: range rdf: resource = " #減速器" / >
< /owl: OProperty >
< owl: OProperty rdf: ID = " 存放地點(diǎn)" >
< rdfs: domain rdf: resource = " #減速器" / >
< rdfs: range rdf: resource = " #倉(cāng)庫(kù)" / >
< /owl: OProperty >
< owl: OProperty rdf: ID = " 工作地點(diǎn)" >
< rdfs: domain rdf: resource = " #庫(kù)管員" / >
< rdfs: range rdf: resource = " #倉(cāng)庫(kù)" / >
< /owl: OProperty >
3.2 查詢(xún)模塊
查詢(xún)模塊是直接面向數(shù)據(jù)使用者的接口,負(fù)責(zé)將用戶(hù)提交的查詢(xún)分解成針對(duì)各分布數(shù)據(jù)的子查詢(xún),并提交給相應(yīng)的數(shù)據(jù)源服務(wù)模塊。語(yǔ)義查詢(xún)服務(wù)是整個(gè)系統(tǒng)的關(guān)鍵部件之一,其結(jié)構(gòu)如圖5 所示,它又可再細(xì)分為:
圖5 查詢(xún)模塊系統(tǒng)結(jié)構(gòu)
1) 查詢(xún)生成模塊。
查詢(xún)生成模塊主要負(fù)責(zé)查詢(xún)預(yù)處理。接收用戶(hù)提交的各種查詢(xún)請(qǐng)求,并進(jìn)行必要的驗(yàn)證處理,包括驗(yàn)證本體的有效性、驗(yàn)證數(shù)據(jù)資源的可用性、驗(yàn)證查詢(xún)的合法性和完整性等一系列工作,最后根據(jù)全局本體的定義將用戶(hù)請(qǐng)求轉(zhuǎn)化為統(tǒng)一的、可識(shí)別的全局查詢(xún)語(yǔ)句。
2) 查詢(xún)解析模塊。
負(fù)責(zé)分析語(yǔ)義查詢(xún)并進(jìn)行分解工作。將從查詢(xún)生成模塊接收到的語(yǔ)義查詢(xún)語(yǔ)句,根據(jù)全局本體或局部本體中定義的本體信息生成相應(yīng)的查詢(xún)語(yǔ)句。這些查詢(xún)語(yǔ)句描述了所要查詢(xún)的數(shù)據(jù)來(lái)自哪些數(shù)據(jù)資源、具體的表名、數(shù)據(jù)列、查詢(xún)條件、各個(gè)數(shù)據(jù)表之間的連接關(guān)系以及各條查詢(xún)計(jì)劃之間的執(zhí)行依賴(lài)關(guān)系。
3) 查詢(xún)執(zhí)行模塊。
其具體包括隊(duì)列管理和調(diào)度管理兩個(gè)子模塊,首先接收來(lái)自查詢(xún)解析模塊中的查詢(xún)語(yǔ)句,行成一個(gè)隊(duì)列,然后調(diào)度管理模塊基于FIFO( 先進(jìn)先出) 調(diào)度策略,分析其屬性參數(shù),并送往相應(yīng)的數(shù)據(jù)源服務(wù)模塊執(zhí)行具體操作。
3.3 數(shù)據(jù)融合模塊
將原子查詢(xún)計(jì)劃的執(zhí)行結(jié)果進(jìn)行融合,得到符合用戶(hù)要求的最終查詢(xún)結(jié)果集。由數(shù)據(jù)源服務(wù)模塊返回的結(jié)果集,包含了各個(gè)不同數(shù)據(jù)源的查詢(xún)結(jié)果,這些查詢(xún)結(jié)果由一些數(shù)據(jù)行組成,對(duì)這些數(shù)據(jù)行必須進(jìn)行相應(yīng)的判斷融合,才能得到所需結(jié)果,數(shù)據(jù)融合主要有以下三種情況:
1) 重復(fù)數(shù)據(jù)行,合并過(guò)濾,返回唯一值;
2) 數(shù)據(jù)行行數(shù)據(jù)的融合。要查詢(xún)減速器的庫(kù)存情況,分廠1 與分廠2 返回的結(jié)果分圖如表1、2 所示,則最后數(shù)據(jù)融合后的結(jié)果如表3 所示;
表1 分廠1 返回結(jié)果
表2 分廠2 返回結(jié)果
表3 數(shù)據(jù)融合后的結(jié)果
3) 數(shù)據(jù)行列數(shù)據(jù)的融合。如果2 行數(shù)據(jù)除關(guān)鍵屬性組外的屬性取值不同,根據(jù)需要?jiǎng)t要把一行數(shù)據(jù)中的不相同屬性值連接到另一行數(shù)據(jù)的末尾成為同一行數(shù)據(jù)輸出。
4 結(jié)束語(yǔ)
隨著信息化發(fā)展及企業(yè)規(guī)模的不斷擴(kuò)大,“信息孤島”問(wèn)題已經(jīng)成為阻礙企業(yè)信息化進(jìn)程的主要因素,數(shù)據(jù)集成是解決“信息孤島”問(wèn)題的根本方法。文中通過(guò)對(duì)比已有數(shù)據(jù)集成方法,結(jié)合現(xiàn)代企業(yè)的具體應(yīng)用需求,提出了一種基于SOA 架構(gòu)和本體技術(shù)的數(shù)據(jù)集成框架。系統(tǒng)將異構(gòu)數(shù)據(jù)源以Web Service 的形式進(jìn)行封裝,同時(shí)引入本體技術(shù),利用本體描述領(lǐng)域概念的優(yōu)勢(shì),較好解決了數(shù)據(jù)集成中數(shù)據(jù)的異構(gòu)性問(wèn)題,實(shí)現(xiàn)了數(shù)據(jù)訪問(wèn)的透明性。
下一步的主要工作是: 改進(jìn)本體的生成規(guī)則,減少人工干預(yù),提高本體生成的自動(dòng)化程度。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴(lài)品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://m.vmgcyvh.cn/
本文標(biāo)題:基于SOA的異構(gòu)數(shù)據(jù)集成軟件架構(gòu)研究
本文網(wǎng)址:http://m.vmgcyvh.cn/html/solutions/1401932670.html