基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng)及其整合方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)信息技術(shù)領(lǐng)域,涉及一種基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),本發(fā)明還涉及上述及異構(gòu)數(shù)據(jù)源整合系統(tǒng)的整合方法。
【背景技術(shù)】
[0002]隨著技術(shù)的發(fā)展和業(yè)務(wù)開(kāi)展的需要,政府、企事業(yè)單位各部門(mén)中形成了大量物理分散、類(lèi)型和存儲(chǔ)形式各異的數(shù)據(jù)源,因?yàn)轶w制與機(jī)制的要求,不是所有數(shù)據(jù)都可以進(jìn)行數(shù)據(jù)集中,而由于業(yè)務(wù)的需要又要同時(shí)從多個(gè)分散的數(shù)據(jù)源中訪問(wèn)多個(gè)數(shù)據(jù)進(jìn)行組合形成更有價(jià)值的數(shù)據(jù)。因此,整合已有的數(shù)據(jù)資源,能同時(shí)訪問(wèn)和處理來(lái)自多個(gè)數(shù)據(jù)源的數(shù)據(jù),就是必然趨勢(shì)。
[0003]目前,公知的異構(gòu)數(shù)據(jù)源集成的處理方式是:數(shù)據(jù)聯(lián)邦技術(shù)。數(shù)據(jù)聯(lián)邦技術(shù)提供了一種為數(shù)據(jù)提供抽象的數(shù)據(jù)接口的能力,這些多個(gè)數(shù)據(jù)源組成的虛擬視圖,可以使消費(fèi)者不需要知道數(shù)據(jù)的物理位置、數(shù)據(jù)結(jié)構(gòu)和保存方式。數(shù)據(jù)聯(lián)邦允許應(yīng)用直接訪問(wèn)數(shù)據(jù),而不需耗時(shí)較長(zhǎng)的數(shù)據(jù)架構(gòu)的調(diào)整;能滿足數(shù)據(jù)安全性較高的應(yīng)用,不允許對(duì)數(shù)據(jù)進(jìn)行復(fù)制和備份;能滿足數(shù)據(jù)經(jīng)常變換的環(huán)境,數(shù)據(jù)聯(lián)邦提供靈活性、擴(kuò)展性高的解決方案。對(duì)于數(shù)據(jù)集成過(guò)程中包含復(fù)雜數(shù)據(jù)轉(zhuǎn)換的,會(huì)由于數(shù)據(jù)轉(zhuǎn)換減低響應(yīng)時(shí)間而帶來(lái)負(fù)面影響。當(dāng)真實(shí)數(shù)據(jù)源服務(wù)器負(fù)載增加,聯(lián)邦服務(wù)器會(huì)把聯(lián)邦視圖分解為多個(gè)子操作,那么這些子操作越復(fù)雜,服務(wù)器的負(fù)載越大。對(duì)于數(shù)據(jù)服務(wù)的統(tǒng)一封裝與管理,現(xiàn)有單一的交換方式,已不能滿足時(shí)效性、一致性等更高的要求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),本發(fā)明的另一目的是提供上述整合系統(tǒng)的整合方法,解決了現(xiàn)有虛擬數(shù)據(jù)交換方式存在的交換方式單一的問(wèn)題。
[0005]本發(fā)明的技術(shù)方案是,基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),包括連接器框架、查詢(xún)引擎、JDBC (Java數(shù)據(jù)庫(kù)連接驅(qū)動(dòng))和VDB (虛擬數(shù)據(jù)庫(kù));其中,連接器框架包括連接器、資源適配器和翻譯器;
[0006]連接器用于提供查詢(xún)引擎和物理數(shù)據(jù)源之間的抽象層,將整合系統(tǒng)中發(fā)出的查詢(xún)命令轉(zhuǎn)換成數(shù)據(jù)源特定的命令,并通過(guò)資源適配器執(zhí)行上述命令;翻譯器用于將不同的格式數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一格式;查詢(xún)引擎用于處理數(shù)據(jù)源發(fā)送的查詢(xún)請(qǐng)求JDBC用于將查詢(xún)結(jié)果與JAVA應(yīng)用系統(tǒng)進(jìn)行對(duì)接,將查詢(xún)結(jié)果通過(guò)VDB發(fā)出。
[0007]本發(fā)明的特點(diǎn)還在于,
[0008]數(shù)據(jù)源包括關(guān)系型數(shù)據(jù)庫(kù)、數(shù)據(jù)文件、Web服務(wù)數(shù)據(jù)源。
[0009]本發(fā)明的另一技術(shù)方案是,基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng)的整合方法,具體按照以下步驟實(shí)施:
[0010]步驟1,外部的應(yīng)用系統(tǒng)向異構(gòu)數(shù)據(jù)源整合系統(tǒng)發(fā)送JDBC請(qǐng)求;
[0011]步驟2,JDBC API(JDBC接口)接收到步驟I發(fā)出的請(qǐng)求后,向VDB轉(zhuǎn)發(fā)請(qǐng)求,查詢(xún)引擎解析SQL語(yǔ)句所要查詢(xún)的虛擬表;
[0012]步驟3,VDB將查詢(xún)申請(qǐng)發(fā)送到連接器,連接器根據(jù)請(qǐng)求內(nèi)容,判斷請(qǐng)求內(nèi)容所在的數(shù)據(jù)庫(kù),通過(guò)資源適配器向數(shù)據(jù)庫(kù)獲取數(shù)據(jù);
[0013]步驟4,數(shù)據(jù)庫(kù)獲取數(shù)據(jù)后,將數(shù)據(jù)返回給翻譯器,由翻譯器將結(jié)果信息翻譯并轉(zhuǎn)換為標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)數(shù)據(jù)集,返回給VDB ;
[0014]步驟5,VDB將查詢(xún)結(jié)果進(jìn)行封裝,以JDBC方式通過(guò)JDBC API發(fā)出,供外部應(yīng)用系統(tǒng)調(diào)用,便完成了異構(gòu)數(shù)據(jù)源的整合。
[0015]本發(fā)明的有益效果是,
[0016]I) 一種基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),通過(guò)設(shè)置VDB,可以不存儲(chǔ)數(shù)據(jù),但可以像訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)一樣進(jìn)行使用,大大節(jié)約了系統(tǒng)資源,降低服務(wù)器負(fù)載;通過(guò)查詢(xún)引擎、JDBC和VDB的整合,能夠?qū)崿F(xiàn)異構(gòu)數(shù)據(jù)源的整合;
[0017]2)基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng)的整合方法,解決在數(shù)據(jù)物理環(huán)境分散的情況下,進(jìn)行統(tǒng)一訪問(wèn)和關(guān)聯(lián)查詢(xún)分析的問(wèn)題,通過(guò)該方法,能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)查詢(xún)時(shí)效性、一致性的目的。
【附圖說(shuō)明】
[0018]圖1是本發(fā)明一種基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng)的結(jié)構(gòu)示意圖。
[0019]圖中,1.JDBC,2.VDB,3.連接器,4.資源適配器,5.數(shù)據(jù)庫(kù),6.翻譯器,7.查詢(xún)引擎,8.連接器框架。
【具體實(shí)施方式】
[0020]下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0021]本發(fā)明的技術(shù)方案是,基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),如圖1所示,包括連接器框架8、查詢(xún)引擎7、JDBC I和VDB 2 ;其中,連接器框架8包括連接器3、資源適配器4和翻譯器6 ;
[0022]連接器3用于提供查詢(xún)引擎7和物理數(shù)據(jù)源之間的抽象層,將整合系統(tǒng)中發(fā)出的查詢(xún)命令轉(zhuǎn)換成數(shù)據(jù)源特定的命令,并通過(guò)資源適配器4執(zhí)行上述命令;翻譯器6用于將不同的格式數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一格式;查詢(xún)引擎7用于處理數(shù)據(jù)源發(fā)送的查詢(xún)請(qǐng)求,其中,數(shù)據(jù)源包括關(guān)系型數(shù)據(jù)庫(kù)、數(shù)據(jù)文件、Web服務(wù)數(shù)據(jù)源JDBC I用于將查詢(xún)結(jié)果與JAVA應(yīng)用系統(tǒng)進(jìn)行對(duì)接,將查詢(xún)結(jié)果通過(guò)VDB 2發(fā)出。
[0023]本發(fā)明的另一技術(shù)方案是,基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng)的整合方法,具體按照以下步驟實(shí)施:
[0024]步驟1,外部的應(yīng)用系統(tǒng)向異構(gòu)數(shù)據(jù)源整合系統(tǒng)發(fā)送JDBC請(qǐng)求;
[0025]步驟2,JDBC API接收到步驟I發(fā)出的請(qǐng)求后,向VDB 2轉(zhuǎn)發(fā)請(qǐng)求,查詢(xún)引擎7解析SQL語(yǔ)句所要查詢(xún)的虛擬表;
[0026]步驟3,VDB 2將查詢(xún)申請(qǐng)發(fā)送到連接器3,連接器3根據(jù)請(qǐng)求內(nèi)容,判斷請(qǐng)求內(nèi)容所在的數(shù)據(jù)庫(kù)5,通過(guò)資源適配器4向數(shù)據(jù)庫(kù)5獲取數(shù)據(jù);其中,連接器3根據(jù)數(shù)據(jù)庫(kù)5的IP、端口、數(shù)據(jù)庫(kù)名稱(chēng)、數(shù)據(jù)庫(kù)登錄的用戶名和密碼,進(jìn)行判斷;而資源適配器4是用于做數(shù)據(jù)橋接,給其定義好相關(guān)屬性,然后通過(guò)標(biāo)準(zhǔn)的API調(diào)用即可。
[0027]步驟4,數(shù)據(jù)庫(kù)5獲取數(shù)據(jù)后,將數(shù)據(jù)返回給翻譯器6,由翻譯器6將結(jié)果信息翻譯并轉(zhuǎn)換為標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)數(shù)據(jù)集,返回給VDB 2;
[0028]步驟5,VDB 2將查詢(xún)結(jié)果進(jìn)行封裝,以JDBC I方式通過(guò)JDBC API發(fā)出,供外部應(yīng)用系統(tǒng)調(diào)用,便完成了異構(gòu)數(shù)據(jù)源的整合。
[0029]本發(fā)明中,VDB是由若干虛擬視圖組成,其不存儲(chǔ)數(shù)據(jù),但可以像訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)一樣進(jìn)行使用。VDB由源模型、視圖模型、連接器配置信息和Manifest信息組成,存儲(chǔ)結(jié)構(gòu)為Xml方式,以.vdb后綴存儲(chǔ)在磁盤(pán)中。VDB包含的數(shù)據(jù)視圖可以來(lái)自關(guān)系型數(shù)據(jù)庫(kù)、也可以是格式化文件、LDAP數(shù)據(jù)等。來(lái)自不同數(shù)據(jù)源的數(shù)據(jù)視圖就相當(dāng)于VDB中的一張張數(shù)據(jù)表,可以進(jìn)行關(guān)聯(lián)查詢(xún)統(tǒng)計(jì)。VDB在服務(wù)器中部署成功后,會(huì)生成相應(yīng)的服務(wù),提高服務(wù)的通用性和靈活性,對(duì)外提供服務(wù)所采用的方式為JDBC方式。
【主權(quán)項(xiàng)】
1.基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),其特征在于,包括連接器框架(8)、查詢(xún)引擎(7)、JDBC(I) VDB(2);其中,連接器框架(8)包括連接器(3)、資源適配器(4)和翻譯器⑶; 所述連接器(3)用于提供查詢(xún)引擎(7)和物理數(shù)據(jù)源之間的抽象層,將整合系統(tǒng)中發(fā)出的查詢(xún)命令轉(zhuǎn)換成數(shù)據(jù)源特定的命令,并通過(guò)資源適配器(4)執(zhí)行上述命令; 所述翻譯器(6)用于將不同的格式數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一格式; 所述查詢(xún)引擎(7)用于處理數(shù)據(jù)源發(fā)送的查詢(xún)請(qǐng)求; 所述JDBC(I)用于將查詢(xún)結(jié)果與JAVA應(yīng)用系統(tǒng)進(jìn)行對(duì)接,將查詢(xún)結(jié)果通過(guò)VDB(2)發(fā)出。2.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),其特征在于,所述查詢(xún)引擎(7)還支持事務(wù)和用戶自定義函數(shù)。3.根據(jù)權(quán)利要求1或2所述的基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),其特征在于,所述數(shù)據(jù)源包括關(guān)系型數(shù)據(jù)庫(kù)、數(shù)據(jù)文件、Web服務(wù)數(shù)據(jù)源。4.基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng)的整合方法,其特征在于,具體按照以下步驟實(shí)施: 步驟1,外部的應(yīng)用系統(tǒng)向異構(gòu)數(shù)據(jù)源整合系統(tǒng)發(fā)送JDBC請(qǐng)求; 步驟2,JDBC(I)接口接收到步驟I發(fā)出的請(qǐng)求后,向VDB(2)轉(zhuǎn)發(fā)請(qǐng)求,查詢(xún)引擎(7)解析SQL語(yǔ)句所要查詢(xún)的虛擬表; 步驟3,VDB(2)將查詢(xún)申請(qǐng)發(fā)送到連接器(3),連接器(3)根據(jù)請(qǐng)求內(nèi)容,判斷請(qǐng)求內(nèi)容所在的數(shù)據(jù)庫(kù)(5),通過(guò)資源適配器(4)向數(shù)據(jù)庫(kù)(5)獲取數(shù)據(jù); 步驟4,數(shù)據(jù)庫(kù)(5)獲取數(shù)據(jù)后,將數(shù)據(jù)返回給翻譯器¢),由翻譯器(6)將結(jié)果信息翻譯并轉(zhuǎn)換為標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)數(shù)據(jù)集,返回給VDB (2); 步驟5,VDB(2)將查詢(xún)結(jié)果進(jìn)行封裝,以JDBC方式通過(guò)JDBC(I)接口發(fā)出,供外部應(yīng)用系統(tǒng)調(diào)用,便完成了異構(gòu)數(shù)據(jù)源的整合。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于數(shù)據(jù)聯(lián)邦技術(shù)的異構(gòu)數(shù)據(jù)源整合系統(tǒng),包括連接器框架、查詢(xún)引擎、JDBC和VDB;連接器框架包括連接器、資源適配器和翻譯器。本發(fā)明還公開(kāi)了其整合方法:外部應(yīng)用向本系統(tǒng)發(fā)送JDBC請(qǐng)求;JDBC?API接收到請(qǐng)求向VDB轉(zhuǎn)發(fā)請(qǐng)求,查詢(xún)引擎解析虛擬表;VDB將查詢(xún)申請(qǐng)發(fā)送到連接器,連接器判斷請(qǐng)求內(nèi)容所在數(shù)據(jù)庫(kù),通過(guò)資源適配器向數(shù)據(jù)庫(kù)獲取數(shù)據(jù);將數(shù)據(jù)返回給翻譯器,由翻譯器翻譯并轉(zhuǎn)換為標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)數(shù)據(jù)集;VDB將結(jié)果封裝通過(guò)JDBC?API發(fā)出,完成整合。本發(fā)明解決在數(shù)據(jù)物理環(huán)境分散的情況下,進(jìn)行統(tǒng)一訪問(wèn)和關(guān)聯(lián)查詢(xún)分析的問(wèn)題,通過(guò)該方法,能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)查詢(xún)時(shí)效性、一致性的目的。
【IPC分類(lèi)】G06F17/30
【公開(kāi)號(hào)】CN105224613
【申請(qǐng)?zhí)枴緾N201510593303
【發(fā)明人】張丹星, 姚路, 劉守倉(cāng)
【申請(qǐng)人】西安未來(lái)國(guó)際信息股份有限公司
【公開(kāi)日】2016年1月6日
【申請(qǐng)日】2015年9月17日