專利名稱:通過計算機網(wǎng)絡從數(shù)據(jù)庫獲取和集成數(shù)據(jù)的方法及系統(tǒng)的制作方法
技術領域:
此發(fā)明總體上涉及數(shù)據(jù)的獲取。更確切地說,此發(fā)明涉及通過計算機網(wǎng)絡從一個或多個數(shù)據(jù)庫獲取和集成數(shù)據(jù)的方法和系統(tǒng)。
背景技術:
隨著企業(yè)對企業(yè)(B2B)技術的愈加普及,一些公司開發(fā)了B2B軟件平臺并且在此過程中定義了標準協(xié)議,以便在一些合作伙伴企業(yè)之間進行自動的標準化數(shù)據(jù)交換。通常,這些標準協(xié)議被設計成用來描述基于紙張的過程,例如訂單,帳單等等,以便于更有效地處理這些過程,從而降低相關的成本。企業(yè)的目標是降低營運成本。
因特網(wǎng)作為企業(yè)與企業(yè)之間的通信工具的進步,使得許多公司之間可以利用B2B軟件平臺來連接簡單的企業(yè)過程和交易,如訂單、帳單等。但是,這仍然不能夠讓一個價值鏈中的所有企業(yè)之間實現(xiàn)真正的合作及信息共享從而作出關于何時何地以及如何進行這些交易的智能決策。
防火墻外的B2B交易自動化,和20世紀80年代建立的內(nèi)部交易自動化公司以及20世紀90年代后期建立的電子商務自動交易系統(tǒng)具有相似之處。企業(yè)內(nèi)部交易系統(tǒng)和電子商務交易系統(tǒng)采用了不同的技術,前者使用的是CICS(顧客信息控制系統(tǒng))和COBOL語言,后者使用的是電子商務服務器和JAVA語言。其結果是一樣的,即實現(xiàn)了標準化的交易和過程從而節(jié)省了操作費用。
簡單的交易操作提供了低層次的自動化,但這并不能減少所涉及的企業(yè)過程中的所有費用。歷史顯示,一旦定義了簡單的交易,企業(yè)問題將會變得需要更復雜的決策和智能。
今日之計算機網(wǎng)絡環(huán)境和技術,諸如電子數(shù)據(jù)交換(EDI)、電子郵件、文件傳送協(xié)議等,通常被用于供應鏈企業(yè)之間的信息共享以便于進行預測、計劃和執(zhí)行。然而,當信息必須在很短時間內(nèi)諸如以小時為單位甚至于實時地來進行獲取和產(chǎn)生時,這些技術所能夠完成的往往比預期的低。
有許多系統(tǒng)被引入來試圖解決以上提到的情形。例如,有一個系統(tǒng)被引入來解決計劃問題,諸如通過聯(lián)網(wǎng)直接連接零售業(yè)者和供貨者之間的計算機來作資源的連接,從而進行零售業(yè)預測以及存貨管理。預測是通過對一個訂單進行一系列的審閱來計算的。而這種預測基本上是基于單個企業(yè)與單個企業(yè)之間來進行的。
另一個例子是一個允許從單個企業(yè)外部進行數(shù)據(jù)訪問的系統(tǒng)。系統(tǒng)的交互層允許系統(tǒng)看見所有供應鏈接企業(yè)的數(shù)據(jù)而不是單個企業(yè)。這對于供應鏈企業(yè)的計劃非常有好處。從供應鏈所獲得的數(shù)據(jù)被存儲于數(shù)據(jù)庫。接著數(shù)據(jù)被通過一定的參數(shù)進行處理從而提供供應信息用于供應鏈計劃?;旧希靡欢ǖ膮?shù),諸如生產(chǎn)能力、企業(yè)資源規(guī)劃(ERP)和財政支持等,可以建立起一個預測模型來評估供應鏈計劃所需的信息。數(shù)據(jù)在被用于計劃之前先進行了收集和計算。系統(tǒng)之設計使之能夠縮短進行大量不同數(shù)據(jù)的收集和計算的時間。這對于預測和計劃很有用。但是,系統(tǒng)僅僅能夠獲取具有一定時間延遲的計算數(shù)據(jù),它不能提供進行實時供應鏈決策的及時而準確的數(shù)據(jù)。當用戶所需的特定的數(shù)據(jù)在預測模型中不能提供時,計算所得的數(shù)據(jù)將確乏完成要求所需的靈活性。
發(fā)明內(nèi)容
因此,迫切需要提供一種以更有效的方式通過計算機網(wǎng)絡從數(shù)據(jù)庫實時地查詢、獲取和集成數(shù)據(jù)的方法和系統(tǒng)。
本發(fā)明提出了一種通過計算機網(wǎng)絡從多個數(shù)據(jù)庫獲取和集成數(shù)據(jù)的方法和系統(tǒng)。本發(fā)明的一個示例性實施方式包括一個具有一個整合服務器和幾個數(shù)據(jù)代理器的系統(tǒng)。整合服務器能夠通過計算機網(wǎng)絡如因特網(wǎng)與數(shù)據(jù)代理器進行通信。每一個數(shù)據(jù)代理器能夠和多個數(shù)據(jù)源進行近程通信。一個用戶可以通過整合服務器獲取來自不同數(shù)據(jù)源的數(shù)據(jù),這些數(shù)據(jù)是整合服務器使相應的數(shù)據(jù)代理器從相關聯(lián)的數(shù)據(jù)源中獲取的。
按照該示例性實施方式,當一個用戶向整合服務器發(fā)出一個獲取一定數(shù)據(jù)的請求后,整合服務器會將該請求轉換成一個內(nèi)部查詢。然后對照一個規(guī)則集合對該內(nèi)部查詢進行匹配。每一條規(guī)則指定了如何利用一個或多個數(shù)據(jù)源來部份地滿足一個內(nèi)部查詢。對于與該內(nèi)部查詢匹配的規(guī)則集合,產(chǎn)生一個子查詢。所有產(chǎn)生的子查詢?nèi)缓笥上鄳臄?shù)據(jù)代理器使用以獲取數(shù)據(jù)??蛇x擇地,所有產(chǎn)生的子查詢可以被進行優(yōu)化從而更有效地從相應的數(shù)據(jù)源獲取數(shù)據(jù)。當所請求的數(shù)據(jù)從所有相關的數(shù)據(jù)代理器獲得后,這些數(shù)據(jù)于是被連接、融合和集合,產(chǎn)生最終結果,該結果即是內(nèi)部查詢結果。
該說明書的其余部份的相關內(nèi)容,包括附圖以及權利要求書,將描述本發(fā)明的其它特征和優(yōu)點。本發(fā)明的進一部的特征和優(yōu)點以及各種實施方式的結構和操作,將參照附圖進行詳細說明,其中類似的參考號碼指示相同的或相似的功能。
圖1是用來說明本發(fā)明的一個示例性實施方式的簡化方塊圖;圖2是用來說明本發(fā)明的一個示例性實施方式執(zhí)行的數(shù)據(jù)集成過程的流程圖;圖3是根據(jù)本發(fā)明的一個示例性實施方式的輸入查詢請求的說明性例子;圖4是根據(jù)本發(fā)明的一個示例性實施方式的查詢定義文件的說明性例子;圖5是根據(jù)本發(fā)明的一個示例性實施方式的規(guī)則定義文件的說明性例子;
圖6是根據(jù)本發(fā)明的一個示例性實施方式的數(shù)據(jù)源定義文件;圖7a和7b是根據(jù)本發(fā)明的一個示例性實施方式的數(shù)據(jù)源對應文件。
具體實施例方式
現(xiàn)在使用幾個示例性實施方式來描述本發(fā)明。圖1是用來說明本發(fā)明的一個示例性實施方式的簡化方塊圖。參考圖1,系統(tǒng)10是本發(fā)明的一個示例性實施方式。系統(tǒng)10包括一個整合服務器12,多個數(shù)據(jù)代理器14和多個數(shù)據(jù)源16。數(shù)據(jù)源16包括例如數(shù)據(jù)庫和可以提供數(shù)據(jù)的應用程序。一般情況下,可以按照一個或多個預定標準將數(shù)據(jù)源16分成不同的組。例如數(shù)據(jù)源16a-c位于同一臺計算機并屬于同一個公司可以被分成一組。然而,應該理解到,數(shù)據(jù)源16不必駐留在單個計算機系統(tǒng)中。本領域內(nèi)普通技術人員應當知道其它的方法來組織一組數(shù)據(jù)源。此外,同一組中的數(shù)據(jù)源16可以彼此不同。例如,在一組數(shù)據(jù)源中的某一個數(shù)據(jù)源可能是一個廠商如IBM生產(chǎn)的數(shù)據(jù)庫產(chǎn)品,而另一個數(shù)據(jù)源可能是另外一個廠商如Oracle生產(chǎn)的數(shù)據(jù)庫產(chǎn)品??梢詫⒚恳粋€數(shù)據(jù)代理器設計為與特定組的數(shù)據(jù)源16通信,獲取和整合所需的數(shù)據(jù)源中的數(shù)據(jù)。
系統(tǒng)10一般以下述示例性的方式工作。當用戶18想要獲取某些數(shù)據(jù),用戶18向整合服務器12發(fā)出一個請求。在一個示例性實施方式中,用戶18使用計算機上的圖形用戶界面通過計算機網(wǎng)絡20a(如因特網(wǎng))向整合服務器12傳送該請求。以XML格式對該請求進行編碼,以便從用戶18傳遞到整合服務器12。在一個替代的實施方式中,用戶18可以不通過任何計算機網(wǎng)絡,而直接與整合服務器12交互。
收到請求后,整合服務器12對該請求進行處理,并確定通過哪一個或哪幾個數(shù)據(jù)代理器14可以取得所需的數(shù)據(jù)。確定了數(shù)據(jù)代理器14以后,整合服務器12通過計算機網(wǎng)絡20b和這些數(shù)據(jù)代理器14通信,以獲取用戶請求的數(shù)據(jù)。這里的計算機網(wǎng)絡20b,例如也可以是因特網(wǎng)。因此,計算機網(wǎng)絡20a、20b可以是相同的或不同的網(wǎng)絡系統(tǒng)。
所確定的每一個數(shù)據(jù)代理器14進一步處理從整合服務器12收到的請求并且從相應的數(shù)據(jù)源16取回所請求的數(shù)據(jù)。然后,數(shù)據(jù)代理器14將獲取的數(shù)據(jù)進行集成并轉發(fā)給整合服務器12??梢园凑誜ML格式或SOAP格式對集成的數(shù)據(jù)進行格式化,然后使用多種傳輸協(xié)議(例如包括HTTP),通過計算機網(wǎng)絡10b轉發(fā)給整合服務器12?;谶@里公開的內(nèi)容,本領域普通技術人員將知道可以使用其他格式和傳輸協(xié)議實現(xiàn)數(shù)據(jù)代理器14和整合服務器12之間的數(shù)據(jù)傳輸。
從所有相關的數(shù)據(jù)代理器14收到獲取的數(shù)據(jù)后,整合服務器12對所有獲得的數(shù)據(jù)進行集成,并提交給用戶18。關于每個數(shù)據(jù)代理器14和整合服務器12怎樣獲取和如何對用戶請求的數(shù)據(jù)進行集成的細節(jié),將在以下進一步描述。
以下對系統(tǒng)10在更為實際的環(huán)境中的工作做進一步的說明。在某一示例性實施方式中,位于一個公司內(nèi)部計算機網(wǎng)絡中的數(shù)據(jù)代理器14,能夠與公司的內(nèi)部數(shù)據(jù)源進行本地通信,內(nèi)部數(shù)據(jù)源是例如數(shù)據(jù)庫或應用程序。當該公司的一個客戶希望獲得有關的特定信息例如他/她的訂單時,該客戶向整合服務器12發(fā)出請求。整合服務器12處理這個請求并將該請求通過一定的方式(例如內(nèi)部網(wǎng))傳送給數(shù)據(jù)代理器14。數(shù)據(jù)代理器14從公司數(shù)據(jù)源中取得用戶請求的信息,然后對信息進行集成,以便傳送給整合服務器12。隨后,整合服務器12將信息轉發(fā)給客戶。
圖2的流程圖進一步解釋了用戶18發(fā)出的請求是怎樣被處理的,以及一個或多個數(shù)據(jù)代理器14是怎樣獲取和集成數(shù)據(jù)的。參照圖2,用戶18使用請求表格或圖形用戶界面輸入數(shù)據(jù)請求。請求表格含有多個不同的域。為請求不同類型的數(shù)據(jù),用戶18可以使用不同的請求表格。在一個示例性實施方式中,請求表格(以及表格中的信息)被轉換成為以XML格式編碼的輸入查詢請求,以便傳送給整合服務器12。圖3是輸入查詢請求的一個例子。
從用戶18收到輸入查詢請求以后,整合服務器12將該輸入查詢請求分析或轉換成為內(nèi)部查詢。特別地,對每一個輸入查詢請求有一個相應的請求模板,該模板可由整合服務器12實例化為內(nèi)部查詢。內(nèi)部查詢用查詢定義文件表示。查詢定義文件由兩部份組成,首部和尾部。首部表示查詢輸出格式,它描述了當響應于內(nèi)部查詢獲取了數(shù)據(jù)時將要顯示的數(shù)據(jù)結構以及將要采取的數(shù)據(jù)融合方式。尾部表示了查詢輸入格式,它指定將要獲取什么種類的數(shù)據(jù)以及獲取這些數(shù)據(jù)所需的必要輸入變量或參數(shù)。尾部由查詢輸入格式的合取集合組成。圖4是一個查詢定義文件的例子。關于查詢定義文件的目的和用法將在下面進一步描述。
一旦創(chuàng)建了內(nèi)部查詢(和相應的查詢定義文件),就對照一個規(guī)則集合對內(nèi)部查詢進行評估。這個規(guī)則集合指定在哪里和如何滿足不同的內(nèi)部查詢。例如,一條規(guī)則可以指定某個特定內(nèi)部查詢可以由第一和第二個數(shù)據(jù)源滿足;另一條規(guī)則可以指定同一特定內(nèi)部查詢可以由第三和第四個數(shù)據(jù)源滿足。更一般地講,一條規(guī)則可以說明在一個內(nèi)部查詢的尾部中的數(shù)據(jù)集合的子集如何得到滿足??梢允褂靡粋€規(guī)則集合的并集來指定如何滿足一個完整的內(nèi)部查詢。這個規(guī)則集合可以是按照數(shù)據(jù)源的結構、依賴關系和內(nèi)容來設計的。在一個示例性實施方式中,這個規(guī)則集合保存在位于整合服務器12上的規(guī)則定義文件中。規(guī)則定義文件中的每一條規(guī)則也有一個首部。和查詢定義文件的尾部類似的是,規(guī)則定義文件中的規(guī)則集合的各首部也表示查詢輸入格式,即它指定將要獲取什么種類的數(shù)據(jù)和獲取這些數(shù)據(jù)所需的必要輸入變量或參數(shù)。這種類似功能的使用將在以后討論。圖5是一個規(guī)則定義文件的例子。
參照圖2,對照規(guī)則定義文件中的規(guī)則集合內(nèi)的每條規(guī)則,對內(nèi)部查詢進行評估。更具體地說,對內(nèi)部查詢的相應的查詢定義文件進行檢查,以確定它的尾部是否能與規(guī)則定義文件中的規(guī)則的首部匹配。也就是說,如果查詢定義文件中的某個輸入查詢的尾部能夠與規(guī)則集合中的某條規(guī)則的首部匹配,則認為這條規(guī)則是與該內(nèi)部查詢匹配的規(guī)則。需要說明的是,一條規(guī)則和一個查詢定義文件中定義的輸入查詢相匹配并不要求查詢定義文件中的輸入查詢的尾部的子集和規(guī)則定義文件中該規(guī)則的首部完全一致。只要查詢定義文件中的輸入查詢尾部的一個子集與某一規(guī)則的首部的一部份或全部相同就可以認為查詢和規(guī)則匹配。也就是說,規(guī)則的首部可以是查詢定義文件尾部的超集,查詢定義文件中的尾部也可以是規(guī)則首部的超集。
對每一組匹配的規(guī)則,整合服務器12產(chǎn)生一個子查詢。對每一個內(nèi)部查詢,可能會產(chǎn)生一個或多個子查詢。每一個子查詢確定了內(nèi)部查詢所需數(shù)據(jù)的數(shù)據(jù)源以及訪問這些數(shù)據(jù)源的數(shù)據(jù)代理器14??蛇x擇地,整合服務器12也可以分析這些子查詢并形成查詢執(zhí)行計劃來優(yōu)化子查詢在相應的數(shù)據(jù)代理器14上的執(zhí)行過程。這部份的內(nèi)容將在下面進一步描述。
對于每一個子查詢,整合服務器12確定是否存在一組數(shù)據(jù)代理器能執(zhí)行該子查詢。這可能會涉及一個或多個數(shù)據(jù)代理器。需要找出所有有關的數(shù)據(jù)代理器14。每一個數(shù)據(jù)代理器都有一個對應的數(shù)據(jù)源定義文件。圖6展示了一個數(shù)據(jù)源定義文件的例子。整合服務器12檢查每一個數(shù)據(jù)源定義文件以確認相應的數(shù)據(jù)代理器14能夠返回與之有關的子查詢所需要的數(shù)據(jù)。有些原因可能會造成某個數(shù)據(jù)代理器不能參與子查詢的執(zhí)行。
如果確定了有關的數(shù)據(jù)代理器可以參與執(zhí)行子查詢,整合服務器12就把子查詢改寫成為數(shù)據(jù)代理器請求并發(fā)送給數(shù)據(jù)代理器執(zhí)行。在一個示例性實施方式中,整合服務器12將子查詢編碼成為XML格式的數(shù)據(jù)代理器請求,并通過因特網(wǎng)轉發(fā)給相應的數(shù)據(jù)代理器。
收到數(shù)據(jù)代理器請求以后,每個數(shù)據(jù)代理器尋找與子查詢對應的數(shù)據(jù)源對應文件。數(shù)據(jù)源對應文件用于將符合查詢要求的本地數(shù)據(jù)映射成為希望得到的格式。而且,數(shù)據(jù)源對應文件中也包含與數(shù)據(jù)源建立連接所需的信息,數(shù)據(jù)代理器將使用這些信息訪問數(shù)據(jù)源。例如,一個數(shù)據(jù)源可能是數(shù)據(jù)庫,另一個數(shù)據(jù)源可能是一個需要通過應用程序界面訪問的應用程序。圖7a和7b是數(shù)據(jù)源對應文件的例子。
每個子查詢由一組數(shù)據(jù)代理器請求來實現(xiàn),即由一組對應的數(shù)據(jù)代理器從相應的數(shù)據(jù)源取回要求的數(shù)據(jù)。每個數(shù)據(jù)代理器對取回的數(shù)據(jù)進行連接并按照所需的格式編碼后傳送給整合服務器12。在一個示例性實施方式中,連接后的數(shù)據(jù)被編碼成為XML格式。
收到與每個子查詢相應的數(shù)據(jù)代理器的執(zhí)行結果后,整合服務器12對收到的數(shù)據(jù)執(zhí)行連接、融合和集合操作。融合操作是按照查詢定義文件首部中定義的一組屬性值對數(shù)據(jù)進行組合。集合操作是將從相應的數(shù)據(jù)代理器返回的組合好的數(shù)據(jù)放在一起。
應該說明的是,由于系統(tǒng)的限制以及其他的要求,一個內(nèi)部查詢可能會得到大量的返回數(shù)據(jù)。相應的數(shù)據(jù)代理器和整合服務器12不一定一次處理完所有的這些數(shù)據(jù)。因此,從數(shù)據(jù)代理器一次返回的數(shù)據(jù)量和整合服務器一次處理的數(shù)據(jù)量是可以配置的。
如上所述,整合服務器12可以分析子查詢并制定查詢執(zhí)行計劃來優(yōu)化子查詢在相應的數(shù)據(jù)代理器14上的執(zhí)行過程。例如,一個內(nèi)部查詢有三個匹配規(guī)則的集合,因此產(chǎn)生三個子查詢。三個子查詢彼此相同只是各自訪問不同的數(shù)據(jù)源組合。例如,第一個子查詢需要訪問數(shù)據(jù)源A和數(shù)據(jù)源B;第二個子查詢需要訪問數(shù)據(jù)源A和數(shù)據(jù)源C;第三個子查詢需要訪問數(shù)據(jù)源A和數(shù)據(jù)源D。如果不進行優(yōu)化,與三個子查詢相應的數(shù)據(jù)代理器請求將分別獨立執(zhí)行。這樣就會對數(shù)據(jù)源A執(zhí)行三次重復的訪問。
可選擇的是,整合服務器12可以如下方式優(yōu)化子查詢的執(zhí)行。第一,識別出所有子查詢共用的一個數(shù)據(jù)源,再識別出所有數(shù)據(jù)源共有的關鍵字。第二,執(zhí)行第一個子查詢,從公共數(shù)據(jù)源中提取關鍵字的所有可取值的集合,同時也提取其它數(shù)據(jù)。第三,把關鍵字值集并行地發(fā)送到與各子查詢相關的數(shù)據(jù)代理器以提取子查詢的結果,然后,通過把這些子查詢的結果集合,產(chǎn)生出合適的最終結果。這種方式的數(shù)據(jù)提取與集合的運算稱為星形集合。
前述的優(yōu)化過程將以上一個例子作進一步的闡述,我們進一步作如下假定。第一,數(shù)據(jù)源A是用作存放零部件及其描述的信息,而所有的零部件信息已以零部件號碼作為索引。第二,數(shù)據(jù)源B、C、D是用作存放供貨商B、C、D的零部件數(shù)量的信息,這些信息同樣以零部件號碼作了索引。引用上述的優(yōu)化算法,數(shù)據(jù)源A是三個子查詢的公共數(shù)據(jù)源,而零部件號碼是數(shù)據(jù)源A、B、C、D的公共關鍵字。利用這些已知條件,先對數(shù)據(jù)源A執(zhí)行第一個子查詢,得到了一列以零部件號碼為索引的數(shù)據(jù),而這列數(shù)據(jù)代表了第一個子查詢所要求的零部件號碼的信息。利用這列數(shù)據(jù),對其余的數(shù)據(jù)源B、C、D執(zhí)行相應的子查詢,就得到了相關的信息。事實上,對數(shù)據(jù)源B、C、D的子查詢可以并行地執(zhí)行。就第一個子查詢而言(它需要訪問數(shù)據(jù)源A和B),從數(shù)據(jù)源A得到的結果要與從數(shù)據(jù)源B得到的結果進行連接,連接的結果代表了選定零部件的有關信息,包括了如零部件的描述及可從供貨商B得到的供貨量等等。同樣地,就第二個子查詢而言(它需要訪問數(shù)據(jù)源A和C),從數(shù)據(jù)源A得到的結果要與從數(shù)據(jù)源C得到的結果進行連接,連接的結果代表了選定零部件的有關信息(具體與上同)。如此類推,就第三個子查詢而言(它需要訪問數(shù)據(jù)源A和D),從數(shù)據(jù)源A得到的結果要與從數(shù)據(jù)源D得到的結果進行連接,連接的結果代表了選定零部件的有關信息(具體與上同)。最后,所有的連接結果融合在一起,融合的目標是使得對于一個零部件號碼而言,從數(shù)據(jù)源B、C、D提取的數(shù)據(jù)被整合在一起,與內(nèi)部查詢的要求符合。
在一個示例性實施方式中,本項發(fā)明是以控制邏輯的形式,通過模塊化或集成化軟件來實現(xiàn)。然而,根據(jù)本文的公開內(nèi)容,本領域內(nèi)的普通技術人員將可以知道,本發(fā)明也可用其它方法和/或技術,如純硬件或軟硬件結合來實現(xiàn)。
僅出于闡述的目的,本文列舉了一些例子和實施方式,這些信息將會引發(fā)本領域內(nèi)熟練的技術人員做出各種修改或變化,而這些修改或變化屬于本申請的實質(zhì),應納入后附權利要求的范圍。本文引用的所有出版物、專利和專利申請,都依其原目的完整地通過參考納入本文。
權利要求
1.一種從多個數(shù)據(jù)源獲取及集成數(shù)據(jù)的系統(tǒng),其特征在于包括一個整合服務器,被配置為把一個數(shù)據(jù)請求轉換成一個內(nèi)部查詢,并且通過把內(nèi)部查詢與一個規(guī)則集合匹配而產(chǎn)生一個或多個子查詢;一個或多個數(shù)據(jù)代理器,每個數(shù)據(jù)代理器被配置為根據(jù)整合服務器提供的子查詢,從相關的數(shù)據(jù)源獲取數(shù)據(jù);其中整合服務器被進一步配置為對一個或多個數(shù)據(jù)代理器獲取的數(shù)據(jù)進行連接、融合及集合;并且其中一個或多個數(shù)據(jù)代理器被放置在相應的遙遠地方,整合服務器通過計算機網(wǎng)絡與一個或多個數(shù)據(jù)代理器進行通信。
2.根據(jù)權利要求1的系統(tǒng),其特征在于內(nèi)部查詢由一個查詢定義文件來表示,這個文件具有一個首部和一個尾部;規(guī)則集合由一個規(guī)則定義文件來表示,規(guī)則定義文件中的每一條規(guī)則具有一個首部,它指定了某一類的內(nèi)部查詢?nèi)绾伪灰粋€或多個數(shù)據(jù)源所滿足;如果查詢定義文件的尾部與規(guī)則集合中的一個規(guī)則子集的首部的并集匹配,則認為該規(guī)則子集與該內(nèi)部查詢匹配;并且對于每一個匹配的規(guī)則子集,整合服務器產(chǎn)生一個相應的子查詢。
3.根據(jù)權利要求1的系統(tǒng),其中每個數(shù)據(jù)代理器具有一個相應的數(shù)據(jù)源定義文件;并且其中整合服務器被進一步配置為在調(diào)用一個數(shù)據(jù)代理器去執(zhí)行一個子查詢使之從相關的一個或多個數(shù)據(jù)源獲取數(shù)據(jù)之前先檢查該數(shù)據(jù)代理器的數(shù)據(jù)源定義文件。
4.根據(jù)權利要求1的系統(tǒng),其中當一個數(shù)據(jù)代理器收到由整合服務器發(fā)來的子查詢時,它使用與該子查詢相應的數(shù)據(jù)源對應文件去訪問一個或多個數(shù)據(jù)源。
5.根據(jù)權利要求1的系統(tǒng),其中整合服務器利用從內(nèi)部查詢產(chǎn)生的子查詢,形成一個查詢執(zhí)行計劃;并且其中根據(jù)該查詢執(zhí)行計劃,由相應的數(shù)據(jù)代理器執(zhí)行一個或多個子查詢,以便優(yōu)化對一個或多個數(shù)據(jù)源的訪問。
6.一種通過計算機網(wǎng)絡從多個數(shù)據(jù)源獲取和集成數(shù)據(jù)的系統(tǒng),包括一個整合服務器,被配置為把一個來自用戶的數(shù)據(jù)請求轉換成一個內(nèi)部查詢,該整合服務器還被配置為將該內(nèi)部查詢與一個規(guī)則集合匹配,對于一個匹配的規(guī)則,產(chǎn)生一個子查詢;以及一個或多個數(shù)據(jù)代理器,被配置為根據(jù)整合服務器提供的子查詢,從相關的一個或多個數(shù)據(jù)源獲取數(shù)據(jù);其中整合服務器被進一步配置為對一個或多個數(shù)據(jù)代理器獲取的數(shù)據(jù)進行集合;以及其中一個或多個數(shù)據(jù)代理器被放置在相應的遙遠地方,整合服務器與它們通過計算機網(wǎng)絡進行通信。
7.根據(jù)權利要求6的系統(tǒng),其中內(nèi)部查詢由一個查詢定義文件來表示,這個文件具有一個首部和一個尾部;規(guī)則集合由一個規(guī)則定義文件來表示,規(guī)則定義文件中的每一條規(guī)則具有一個首部,它指定了某一類的內(nèi)部查詢?nèi)绾伪灰粋€或多個數(shù)據(jù)源所滿足;如果查詢定義文件的尾部與規(guī)則集合中的一個規(guī)則子集的首部的并集匹配,則認為該規(guī)則子集與該內(nèi)部查詢匹配。
8.根據(jù)權利要求6的系統(tǒng),其中每個數(shù)據(jù)代理器有一個相應的數(shù)據(jù)源定義文件;并且其中整合服務器被進一步配置為先檢查一個數(shù)據(jù)代理器的數(shù)據(jù)源定義文件,再調(diào)用數(shù)據(jù)代理器去執(zhí)行一個子查詢使之從相關的一個或多個數(shù)據(jù)源獲取數(shù)據(jù)。
9.根據(jù)權利要求6的系統(tǒng),其中當一個數(shù)據(jù)代理器收到由整合服務器發(fā)來的子查詢時,它使用與該子查詢相應的數(shù)據(jù)源對應文件去訪問一個或多個數(shù)據(jù)源。
10.根據(jù)權利要求6的系統(tǒng),其中整合服務器利用從內(nèi)部查詢產(chǎn)生的子查詢,計算并產(chǎn)生一個查詢執(zhí)行計劃;并且其中根據(jù)查詢執(zhí)行計劃,一個或多個子查詢由其相應的數(shù)據(jù)代理器去執(zhí)行,以便優(yōu)化對一個或多個數(shù)據(jù)源的訪問。
11.根據(jù)權利要求10的系統(tǒng),整合服務器通過識別各子查詢公用的數(shù)據(jù)源以及各數(shù)據(jù)源共享的關鍵字,計算并產(chǎn)生其查詢執(zhí)行計劃。
12.一種通過計算機網(wǎng)絡獲取和集成數(shù)據(jù)的系統(tǒng),包括一個整合服務器,被配置為包含一個查詢定義文件,該文件根據(jù)數(shù)據(jù)需求得以產(chǎn)生,該查詢定義文件具有一個首部和一個尾部,整合服務器還包括一個規(guī)則定義文件,規(guī)則定義文件具有許多規(guī)則,每條規(guī)則具有一個首部,整合服務器還包含多個數(shù)據(jù)源定義文件;多個數(shù)據(jù)源;多個數(shù)據(jù)代理器,每個數(shù)據(jù)代理器被配置為能夠從多個數(shù)據(jù)源中的一個或多個獲取數(shù)據(jù),同時數(shù)據(jù)代理器本身帶有一個相應的數(shù)據(jù)源對應文件;其中對于每一個數(shù)據(jù)代理器,整合服務器存有一份相應的數(shù)據(jù)源定義文件;整合服務器將一個查詢定義文件來與多個規(guī)則進行匹配;如果一個查詢定義文件的尾部與一條規(guī)則的首部匹配,那么這條規(guī)則被認為是匹配的規(guī)則;對于每一條匹配的規(guī)則,整合服務器產(chǎn)生一個相應的子查詢,子查詢包括與將被調(diào)用的數(shù)據(jù)代理器集合有關的信息;對于將被調(diào)用的數(shù)據(jù)代理器,整合服務器將檢查其對應的數(shù)據(jù)源定義文件,以確定其是否能夠處理相應的子查詢;對于那些被確定為能夠處理相應子查詢的數(shù)據(jù)代理器,每個數(shù)據(jù)代理器將根據(jù)相應的數(shù)據(jù)源對應文件從多個數(shù)據(jù)源中的一個或多個數(shù)據(jù)源中獲取數(shù)據(jù);以及在從各個數(shù)據(jù)代理器收到數(shù)據(jù)之后,整合服務器將對那些數(shù)據(jù)進行連接、融合以及集合等操作。
13.根據(jù)權利要求12的系統(tǒng),其中整合服務器使用相應的子查詢產(chǎn)生一個查詢執(zhí)行計劃;并且其中根據(jù)該查詢執(zhí)行計劃由各個數(shù)據(jù)代理器執(zhí)行相應的子查詢,從一個或多個數(shù)據(jù)源優(yōu)化地獲取數(shù)據(jù)。
14.根據(jù)權利要求13的系統(tǒng),其中整合服務器通過識別一個共同的數(shù)據(jù)源以及由多個數(shù)據(jù)源共享的關鍵字,而形成查詢執(zhí)行計劃。
15.一種利用一個整合服務器和多個數(shù)據(jù)代理器通過計算機網(wǎng)絡從多個數(shù)據(jù)源獲取和集成數(shù)據(jù)的方法,包括以下步驟將整合服務器配置為執(zhí)行以下步驟從用戶接收一個數(shù)據(jù)請求;將數(shù)據(jù)請求轉換成為一個內(nèi)部查詢;用內(nèi)部查詢來找出匹配的規(guī)則;對于每一個匹配的規(guī)則集合,產(chǎn)生一個數(shù)據(jù)代理器的相應子查詢;將與所有產(chǎn)生的子查詢相關的信息轉發(fā)給相應的數(shù)據(jù)代理器;對從數(shù)據(jù)代理器返回的數(shù)據(jù)進行連接、融合和集合操作;將每一個數(shù)據(jù)代理器配置為執(zhí)行以下步驟接收來自整合服務器的子查詢;根據(jù)子查詢從一個或多個數(shù)據(jù)源獲取數(shù)據(jù);以及將獲取的數(shù)據(jù)返回給整合服務器。
16.根據(jù)權利要求15的方法,其中配置整合服務器的步驟還包括用所有產(chǎn)生的子查詢來形成一個查詢執(zhí)行計劃;以及將與所有產(chǎn)生的子查詢相關的信息傳送到相應的數(shù)據(jù)代理器。
17.根據(jù)權利要求16的方法,其中形成一個查詢執(zhí)行計劃的步驟還包括根據(jù)所產(chǎn)生的子查詢識別一個共同的數(shù)據(jù)源以及由多個數(shù)據(jù)源共享的關鍵字。
18.根據(jù)權利要求15的方法,其中配置整合服務器的步驟還包括在發(fā)送子查詢到數(shù)據(jù)代理器之前,檢查每一個數(shù)據(jù)代理器以確定其是否能處理相應的子查詢。
19.一種利用一個整合服務器和多個數(shù)據(jù)代理器通過計算機網(wǎng)絡從多個數(shù)據(jù)源獲取和集成數(shù)據(jù)的方法,包括以下步驟指示整合服務器根據(jù)一個數(shù)據(jù)請求產(chǎn)生一個查詢定義文件,查詢定義文件具有一個首部和一個尾部;指示整合服務器用查詢定義文件來與規(guī)則定義文件中的規(guī)則進行匹配,其中規(guī)則定義文件包含多條規(guī)則,每條規(guī)則具有一個首部,如果查詢定義文件的尾部與規(guī)則定義文件中的某些規(guī)則的首部相匹配,那么這些規(guī)則被認為是相匹配的規(guī)則;對于每一個匹配的規(guī)則,指示整合服務器去產(chǎn)生相對應的子查詢,子查詢中包含一組將被調(diào)用的數(shù)據(jù)代理器的有關信息;對于那些將被調(diào)用的數(shù)據(jù)代理器,指示整合服務器去檢查其對應的數(shù)據(jù)源定義文件,以確定其是否能夠處理相應的子查詢;對于那些被確定為能夠處理相應子查詢的數(shù)據(jù)代理器,指示它們利用數(shù)據(jù)源對應文件從一個或多個數(shù)據(jù)源中獲取數(shù)據(jù),并且將它們返回給整合服務器;以及一旦收到從數(shù)據(jù)代理器送回的數(shù)據(jù),就指示整合服務器對收到的數(shù)據(jù)進行連接、融合和集合操作。
20.根據(jù)權利要求19的方法,還包括指示整合服務器用相應的子查詢形成一個查詢執(zhí)行計劃;以及指示整合服務器去調(diào)用各個數(shù)據(jù)代理器,使之根據(jù)該查詢執(zhí)行計劃從一個或多個數(shù)據(jù)源優(yōu)化地獲取數(shù)據(jù)。
21.根據(jù)權利要求20的方法,其中指示整合服務器形成查詢執(zhí)行計劃的步驟還包括識別在那些子查詢中共同訪問的一個數(shù)據(jù)源以及共享的關鍵字。
全文摘要
本發(fā)明目的在于提供一種通過計算機網(wǎng)絡從多個數(shù)據(jù)庫獲取和集成數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括一個整合服務器和幾個數(shù)據(jù)代理器。整合服務器和數(shù)據(jù)代理器之間能夠通過計算機網(wǎng)絡如因特網(wǎng)進行通信。每一個數(shù)據(jù)代理器能夠和多個數(shù)據(jù)源進行近程通信。一個用戶可以通過整合服務器從不同數(shù)據(jù)源獲取數(shù)據(jù),而這是通過相應的數(shù)據(jù)代理器從相關聯(lián)的數(shù)據(jù)源獲取的。該系統(tǒng)的效果是能夠從多個數(shù)據(jù)庫實時地獲取和集成數(shù)據(jù)。
文檔編號G06F17/30GK1374606SQ0210686
公開日2002年10月16日 申請日期2002年3月6日 優(yōu)先權日2001年3月6日
發(fā)明者周一之 申請人:時睿軟件公司