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