亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)集成服務系統(tǒng)及方法

文檔序號:7961635閱讀:253來源:國知局
專利名稱:數(shù)據(jù)集成服務系統(tǒng)及方法
技術領域
本發(fā)明涉及一種數(shù)據(jù)集成服務系統(tǒng)及方法,特別涉及一種能夠支持不同的數(shù)據(jù)源,通過統(tǒng)一的數(shù)據(jù)訪問方式屏蔽不同數(shù)據(jù)源的差異,支持靈活的查詢條件,充分利用數(shù)據(jù)庫的強大檢索功能,以及提供強大的數(shù)據(jù)過濾功能從而能夠滿足復雜的應用開發(fā)需要的數(shù)據(jù)集成服務系統(tǒng)及方法。
背景技術
由于歷史或其它原因,許多企業(yè)已擁有多種業(yè)務系統(tǒng),導致企業(yè)內(nèi)信息孤島現(xiàn)象越來越嚴重,據(jù)IDC 2001年的報告,在全球最大的1000家企業(yè)中,平均都有14個數(shù)據(jù)庫和48個應用系統(tǒng),而且隨著市場的變化、客戶需求的變化,企業(yè)還在不斷地增加它的應用。出于降低建設維護成本和提高企業(yè)競爭力的考慮,對于如此之多的應用系統(tǒng)的集成已變得迫在眉睫,各大電信企業(yè)紛紛開始這方面的建設。然而,目前的建設過于注重各類應用的集成,而與之緊密相關的另一問題即數(shù)據(jù)集成則往往被忽視,導致在企業(yè)應用集成項目的實施過程中才發(fā)現(xiàn)還需要解決數(shù)據(jù)集成問題,而由于前期的設計未充分考慮到數(shù)據(jù)集成的需求,因而分布在各個應用系統(tǒng)中的數(shù)據(jù)對數(shù)據(jù)的統(tǒng)一訪問和使用構(gòu)成了很大的挑戰(zhàn)。
數(shù)據(jù)集成是企業(yè)信息系統(tǒng)的核心部分之一,它向其他的功能模塊提供數(shù)據(jù)支撐。舊的流程架構(gòu)中每種業(yè)務都有自己的數(shù)據(jù)庫,這些數(shù)據(jù)一般是不完整的、不一致的。為整合數(shù)據(jù),一般需要有數(shù)據(jù)建模、統(tǒng)一數(shù)據(jù)系統(tǒng)設計開發(fā)、原有系統(tǒng)數(shù)據(jù)的抽取清潔轉(zhuǎn)換等工作。其中數(shù)據(jù)信息模型是基礎,應該依據(jù)業(yè)務流程確定數(shù)據(jù)的要求,建立完整的信息模型。
數(shù)據(jù)集成服務的目的是使得其使用者不需關心數(shù)據(jù)源之間的差異,對訪問者來說,可以不必了解數(shù)據(jù)庫是何種類型,而只訪問其所關心的數(shù)據(jù)即可。但因為數(shù)據(jù)源的不同,使得實現(xiàn)數(shù)據(jù)集成服務時存在很多的約束,并且數(shù)據(jù)集成服務的可用性也存在諸多不足。不同的關系數(shù)據(jù)庫之間(包括Oracle、DB2、Informix、Sybase、MSSQL),因為數(shù)據(jù)庫廠家提供了不同的內(nèi)置函數(shù),并對SQL-92標準的擴充也有很大差異,使得SQL語句寫法存在很大的不同,很多時候無法在各數(shù)據(jù)源使用同一條SQL語句,如獲取子字符串時Sybase和MSSQL的函數(shù)名為“substring”而Oracle中命名為“substr”。
現(xiàn)有技術中,通常采用以下技術實現(xiàn)數(shù)據(jù)集成服務現(xiàn)有技術一、數(shù)據(jù)集成服務完全使用與關系型數(shù)據(jù)庫相同的SQL語法來實現(xiàn)數(shù)據(jù)集成服務數(shù)據(jù)過濾,數(shù)據(jù)過濾時只是簡單的將查詢請求生成SQL語句提交給數(shù)據(jù)庫。
該技術的不足之處在于1、數(shù)據(jù)集成服務訪問者需要知道數(shù)據(jù)源的類型;2、數(shù)據(jù)集成服務的客戶端應用開發(fā)因為數(shù)據(jù)源的不同而發(fā)生改變;3、同一個數(shù)據(jù)訪問無法跨越不同類型的數(shù)據(jù)源;4、受數(shù)據(jù)庫所支持的功能限制,無法完成某些特殊的數(shù)據(jù)過濾。
現(xiàn)有技術二、數(shù)據(jù)集成服務提供統(tǒng)一的數(shù)據(jù)訪問,對數(shù)據(jù)源的訪問采用一種簡單通用的方式,例如按照鍵值進行訪問的方式,或者完全符合SQL-92標準的數(shù)據(jù)訪問方式。
該技術的不足之處在于1、數(shù)據(jù)過濾的能力有限,無法滿足復雜應用的需求;2、數(shù)據(jù)轉(zhuǎn)換和整合的規(guī)則都融合在定制代碼中,發(fā)生變化難以靈活地適應。
現(xiàn)有技術三、數(shù)據(jù)集成服務系統(tǒng)提供統(tǒng)一的數(shù)據(jù)訪問,將數(shù)據(jù)源中的數(shù)據(jù)全部讀取到數(shù)據(jù)集成服務系統(tǒng)中,完全由數(shù)據(jù)集成服務系統(tǒng)完成數(shù)據(jù)的過濾。
該技術的不足之處在于1、無法使用數(shù)據(jù)庫優(yōu)化器和強大的檢索功能,性能不高;
2、其它數(shù)據(jù)庫客戶端對數(shù)據(jù)的更新無法及時通知到數(shù)據(jù)集成服務;3、通過形成中間庫、或者集中庫的方式來解決數(shù)據(jù)集成,然而這樣的做法往往又形成了新的數(shù)據(jù)孤島。

發(fā)明內(nèi)容
本發(fā)明的目的是針對上述現(xiàn)有技術的不足,提供一種數(shù)據(jù)集成服務系統(tǒng)及方法,能夠支持不同的數(shù)據(jù)源,通過統(tǒng)一的數(shù)據(jù)訪問方式屏蔽不同數(shù)據(jù)源的差異,支持靈活的查詢條件,充分利用數(shù)據(jù)庫的強大檢索功能,以及提供強大的數(shù)據(jù)過濾功能從而能夠滿足復雜的應用開發(fā)需要。
為實現(xiàn)上述發(fā)明目的,本發(fā)明提供了一種數(shù)據(jù)集成服務系統(tǒng),包括數(shù)據(jù)注冊模塊,用于對數(shù)據(jù)源所提供的數(shù)據(jù)范圍進行注冊和保存;所述數(shù)據(jù)注冊模塊包括注冊條件解析模塊,用于對用戶輸入的數(shù)據(jù)源的注冊條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;注冊條件轉(zhuǎn)換模塊,與所述注冊條件解析模塊連接,用于將所述注冊條件解析模塊轉(zhuǎn)換生成的條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合,并保存該數(shù)值范圍集合;所述數(shù)據(jù)集成服務系統(tǒng)還包括數(shù)據(jù)查詢模塊,與所述注冊條件轉(zhuǎn)換模塊以及一個或多個數(shù)據(jù)源連接,用于根據(jù)用戶輸入的查詢條件和所述注冊條件轉(zhuǎn)換模塊中保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,向?qū)臄?shù)據(jù)源提交查詢請求并將查詢結(jié)果輸出給用戶。
進一步地,所述數(shù)據(jù)查詢模塊可具體包括查詢條件解析模塊,用于對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;查詢條件轉(zhuǎn)換模塊,與所述查詢條件解析模塊連接,用于將所述查詢條件解析模塊轉(zhuǎn)換生成的條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合;數(shù)據(jù)源查詢模塊,與所述查詢條件轉(zhuǎn)換模塊、所述數(shù)據(jù)注冊模塊、以及所述一個或多個數(shù)據(jù)源連接,用于根據(jù)所述查詢條件轉(zhuǎn)換模塊轉(zhuǎn)換生成的數(shù)值范圍集合以及所述數(shù)據(jù)注冊模塊保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交結(jié)構(gòu)化查詢語言(StructuredQuery Language,簡稱SQL)的查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
更進一步地,所述數(shù)據(jù)集成服務系統(tǒng)還可包括查詢結(jié)果過濾模塊,與所述查詢處理模塊連接,用于對所述查詢處理模塊查詢的結(jié)果,通過預先設定的內(nèi)置函數(shù)進行過濾。所述數(shù)據(jù)集成服務系統(tǒng)還可包括內(nèi)置函數(shù)庫,與所述查詢結(jié)果過濾模塊連接,用于保存預先設定的所述內(nèi)置函數(shù)。所述數(shù)據(jù)集成服務系統(tǒng)還可包括配置文件模塊,與所述查詢結(jié)果過濾模塊連接,用于保存配置文件,所述配置文件保存有對所述內(nèi)置函數(shù)庫中所有函數(shù)的相關參數(shù)和返回值的定義。
為實現(xiàn)發(fā)明目的,本發(fā)明還提供了一種數(shù)據(jù)集成服務方法,包括以下步驟在步驟1中,對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應字段的數(shù)值范圍集合;然后在步驟2中,根據(jù)所述數(shù)值范圍集合以及預先保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
進一步地,所述步驟1之前還可包括預先保存所述數(shù)據(jù)源提供的數(shù)值范圍的操作,具體包括以下步驟在步驟01中,對用戶輸入的數(shù)據(jù)源的注冊條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;然后在步驟02中,將所述條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合,并保存該數(shù)值范圍集合。其中,步驟01可具體包括以下步驟在步驟010中,對用戶輸入的數(shù)據(jù)源的文本格式的注冊條件進行結(jié)構(gòu)化查詢語言的語法分析,判斷所述注冊條件的語法是否正確,是則執(zhí)行步驟011,否則結(jié)束;然后在步驟011中,將經(jīng)過所述語法分析后的注冊條件轉(zhuǎn)換為對應的條件二叉樹。
更進一步地,所述步驟1可具體包括以下步驟在步驟10中,對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;然后在步驟11中,將所述條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合。所述步驟2可具體包括以下步驟在步驟20中,根據(jù)所述查詢條件轉(zhuǎn)換模塊轉(zhuǎn)換生成的數(shù)值范圍集合和所述數(shù)據(jù)注冊模塊保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找與所述數(shù)值范圍集合對應的數(shù)據(jù)源;在步驟21中,對所述數(shù)值范圍集合和查找到的數(shù)據(jù)源的數(shù)據(jù)范圍進行交集運算,根據(jù)運算結(jié)果生成對應的結(jié)構(gòu)化查詢語言的查詢請求;然后在步驟22中,將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
其中,步驟22可具體包括以下步驟在步驟220中,將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果;然后在步驟221中,通過預先設定的內(nèi)置函數(shù),對所述查詢結(jié)果中的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾;繼而在步驟222中,通過預先設定的內(nèi)置函數(shù),對過濾后的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾;最后在步驟223中,將經(jīng)過步驟222過濾后的數(shù)據(jù)輸出給用戶。步驟22也可具體包括以下步驟在步驟220′中,將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果;然后在步驟221′中,通過預先設定的內(nèi)置函數(shù),對所述查詢結(jié)果中的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾;繼而在步驟222′中,通過預先設定的內(nèi)置函數(shù)對過濾后的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾;最后在步驟223′中將經(jīng)過步驟222′過濾后的數(shù)據(jù)輸出給用戶。
在上述技術方案中,通過將多個數(shù)據(jù)源的提供數(shù)據(jù)范圍的能力用文本格式的注冊條件來描述,并將該注冊條件轉(zhuǎn)換為條件二叉樹,繼而轉(zhuǎn)換為數(shù)據(jù)范圍;并且對用戶輸入的文本格式的查詢條件也作同樣的處理,最終轉(zhuǎn)換為數(shù)據(jù)范圍集合;將該數(shù)據(jù)范圍與該數(shù)據(jù)范圍集合進行交集運算,將交集運算的結(jié)果轉(zhuǎn)換為完全符合SQL-92標準的SQL查詢語句并提交給相應的數(shù)據(jù)源,從而能夠利用數(shù)據(jù)源強大的檢索功能迅速獲得查詢結(jié)果;進一步地,通過強大的內(nèi)置函數(shù)庫對該查詢結(jié)果進行二次過濾,從而能夠提供豐富靈活的過濾功能,滿足復雜應用的需求。
由上述技術方案可知,本發(fā)明通過采用數(shù)據(jù)注冊機制,將不同的數(shù)據(jù)源的提供數(shù)據(jù)范圍的能力統(tǒng)一地用數(shù)據(jù)范圍來描述并保存,從而屏蔽了不同數(shù)據(jù)源的差異,為應用提供了統(tǒng)一的數(shù)據(jù)訪問方式,使得在做應用開發(fā)時不需關心數(shù)據(jù)源的類型;進一步地,通過將查詢條件同樣地統(tǒng)一轉(zhuǎn)換為數(shù)據(jù)范圍集合,并與數(shù)據(jù)源注冊的數(shù)據(jù)范圍做交集運算,將交集運算結(jié)果轉(zhuǎn)換為標準SQL語句提交給相應的數(shù)據(jù)源進行查詢,從而能夠支持靈活的查詢條件,并且能夠利用數(shù)據(jù)源強大的搜索能力,使得在做應用開發(fā)時不僅能夠不需關心數(shù)據(jù)源的類型,而且能夠使用靈活的查詢條件,并且提高了應用開發(fā)的效率,同時大幅提高了系統(tǒng)的可維護性。此外,通過提供靈活可擴展的內(nèi)置函數(shù)庫,能夠提供比數(shù)據(jù)源的過濾功能更為強大和靈活的數(shù)據(jù)過濾功能,從而能夠滿足各種復雜的應用需求。
綜上所述,本發(fā)明通過數(shù)據(jù)注冊機制以及數(shù)據(jù)查詢和過濾的整體解決方案,能夠達到支持不同的數(shù)據(jù)源,通過統(tǒng)一的數(shù)據(jù)訪問方式屏蔽不同數(shù)據(jù)源的差異,支持靈活的查詢條件,充分利用數(shù)據(jù)庫的強大檢索功能,以及提供強大的數(shù)據(jù)過濾功能從而能夠滿足復雜的應用開發(fā)需要的有益技術效果。


圖1為本發(fā)明具體實施例一的示意圖;圖2為本發(fā)明具體實施例二的示意圖;圖3為本發(fā)明具體實施例三的示意圖;圖4為本發(fā)明具體實施例四的示意圖;圖5為本發(fā)明具體實施例五的示意圖;圖6為本發(fā)明具體實施例六的示意圖;圖7為本發(fā)明具體實施例七的示意圖;圖8為本發(fā)明具體實施例八的示意圖;圖9為本發(fā)明具體實施例九的流程圖;圖10為本發(fā)明具體實施例十的流程圖;圖11為本發(fā)明具體實施例十的示意圖;
圖12為本發(fā)明具體實施例十一的流程圖;圖13為本發(fā)明具體實施例十二的流程圖;圖14為本發(fā)明具體實施例十三的流程圖;圖15為本發(fā)明具體實施例十四的流程圖;圖16為本發(fā)明具體實施例十五的流程圖;圖17為本發(fā)明具體實施例十六的流程圖;圖18為本發(fā)明具體實施例十七的流程圖。
具體實施例方式
下面結(jié)合附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
圖1為本發(fā)明具體實施例一的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)A,包括數(shù)據(jù)注冊模塊a,用于對數(shù)據(jù)源所提供的數(shù)據(jù)范圍進行注冊和保存;數(shù)據(jù)注冊模塊a具體包括注冊條件解析模塊b2,用于對用戶輸入的數(shù)據(jù)源的注冊條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;注冊條件轉(zhuǎn)換模塊b1,與注冊條件解析模塊b2連接,用于將注冊條件解析模塊b2轉(zhuǎn)換生成的條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合,并保存該數(shù)值范圍集合;數(shù)據(jù)集成服務系統(tǒng)A還包括數(shù)據(jù)查詢模塊b,與注冊條件轉(zhuǎn)換模塊b1以及一個或多個數(shù)據(jù)源連接,用于根據(jù)用戶輸入的查詢條件和注冊條件轉(zhuǎn)換模塊b1中保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,向?qū)臄?shù)據(jù)源提交查詢請求并將查詢結(jié)果輸出給用戶。本具體實施例中,采用數(shù)據(jù)注冊機制,將不同的數(shù)據(jù)源的提供數(shù)據(jù)范圍的能力統(tǒng)一地用數(shù)據(jù)范圍來描述并保存,從而屏蔽了不同數(shù)據(jù)源的差異,為應用提供了統(tǒng)一的數(shù)據(jù)訪問方式,使得在做應用開發(fā)時不需關心數(shù)據(jù)源的類型。
圖2為本發(fā)明具體實施例二的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)B,與具體實施例一的區(qū)別在于注冊條件解析模塊b2具體包括注冊條件語法分析模塊b21,用于對用戶輸入的數(shù)據(jù)源的文本格式的注冊條件進行結(jié)構(gòu)化查詢語言的語法分析;注冊條件二叉樹生成模塊b22,與注冊條件語法分析模塊b21連接,用于將注冊條件語法分析模塊b21分析后的注冊條件轉(zhuǎn)換為對應的條件二叉樹。
圖3為本發(fā)明具體實施例三的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)C,與具體實施例二的區(qū)別在于數(shù)據(jù)查詢模塊a具體包括查詢條件解析模塊a1,用于對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;查詢條件轉(zhuǎn)換模塊a2,與查詢條件解析模塊a1連接,用于將查詢條件解析模塊a1轉(zhuǎn)換生成的條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合;數(shù)據(jù)源查詢模塊a3,與查詢條件轉(zhuǎn)換模塊a2、數(shù)據(jù)注冊模塊b、以及所述一個或多個數(shù)據(jù)源連接,用于根據(jù)查詢條件轉(zhuǎn)換模塊a2轉(zhuǎn)換生成的數(shù)值范圍集合以及數(shù)據(jù)注冊模塊b保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交結(jié)構(gòu)化查詢語言的查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。本具體實施例中,進一步地將查詢條件同樣地統(tǒng)一轉(zhuǎn)換為數(shù)據(jù)范圍集合,并與數(shù)據(jù)源注冊的數(shù)據(jù)范圍做交集運算,將交集運算結(jié)果轉(zhuǎn)換為標準SQL語句提交給相應的數(shù)據(jù)源進行查詢,從而能夠支持靈活的查詢條件,并且能夠利用數(shù)據(jù)源強大的搜索能力,使得在做應用開發(fā)時不僅能夠不需關心數(shù)據(jù)源的類型,而且能夠使用靈活的查詢條件,并且提高了應用開發(fā)的效率,同時大幅提高了系統(tǒng)的可維護性。
圖4為本發(fā)明具體實施例四的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)D,與具體實施例三的區(qū)別在于查詢條件解析模塊a1具體包括查詢條件語法分析模塊a11,用于對用戶輸入的文本格式的查詢條件進行結(jié)構(gòu)化查詢語言的語法分析;查詢條件二叉樹生成模塊a12,與查詢條件語法分析模塊a11連接,用于將查詢條件語法分析模塊a11分析后的查詢條件轉(zhuǎn)換為對應的條件二叉樹。
圖5為本發(fā)明具體實施例五的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)E,與具體實施例四的區(qū)別在于數(shù)據(jù)源查詢模塊a3具體包括數(shù)據(jù)源查找模塊a31,與查詢條件轉(zhuǎn)換模塊a2和數(shù)據(jù)注冊模塊b連接,用于根據(jù)查詢條件轉(zhuǎn)換模塊a2轉(zhuǎn)換生成的數(shù)值范圍集合和數(shù)據(jù)注冊模塊b保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找與所述數(shù)值范圍集合對應的數(shù)據(jù)源;查詢處理模塊a32,與數(shù)據(jù)源查找模塊a31以及所述一個或多個數(shù)據(jù)源連接,用于根據(jù)所述數(shù)值范圍集合和所述數(shù)據(jù)源的數(shù)據(jù)范圍生成數(shù)據(jù)源查詢條件后提交給所述數(shù)據(jù)源,并獲得所述數(shù)據(jù)源的查詢結(jié)果,將查詢結(jié)果輸出給用戶。
圖6為本發(fā)明具體實施例六的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)F,與具體實施例五的區(qū)別在于還包括查詢結(jié)果過濾模塊c,與查詢處理模塊a32連接,用于對查詢處理模塊a32查詢的結(jié)果,通過預先設定的內(nèi)置函數(shù)進行過濾。進一步地,數(shù)據(jù)集成服務系統(tǒng)F還可包括內(nèi)置函數(shù)庫,與查詢結(jié)果過濾模塊c連接,用于保存預先設定的所述內(nèi)置函數(shù)。數(shù)據(jù)集成服務系統(tǒng)F也還可包括配置文件模塊,與查詢結(jié)果過濾模塊c連接,用于保存配置文件,所述配置文件保存有對所述內(nèi)置函數(shù)庫中所有函數(shù)的相關參數(shù)和返回值的定義。本具體實施例中,進一步地通過提供靈活可擴展的內(nèi)置函數(shù)或內(nèi)置函數(shù)庫,能夠提供比數(shù)據(jù)源的過濾功能更為強大和靈活的數(shù)據(jù)過濾功能,從而能夠滿足各種復雜的應用需求。
圖7為本發(fā)明具體實施例七的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)G,與具體實施例六的區(qū)別在于查詢結(jié)果過濾模塊c1具體包括注冊條件過濾模塊c11,與查詢處理模塊a32連接,用于通過預先設定的內(nèi)置函數(shù),對查詢處理模塊a32查詢的結(jié)果中的數(shù)據(jù)逐條根據(jù)注冊條件對應的條件二叉樹進行過濾;查詢條件過濾模塊c12,與注冊條件過濾模塊c11連接,用于通過預先設定的內(nèi)置函數(shù),對注冊條件過濾模塊c11過濾后的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾。
圖8為本發(fā)明具體實施例八的示意圖,一種數(shù)據(jù)集成服務系統(tǒng)J,與具體實施例七的區(qū)別在于查詢結(jié)果過濾模塊c2具體包括查詢條件過濾模塊c21,與查詢處理模塊a32連接,用于通過預先設定的內(nèi)置函數(shù),對查詢處理模塊a32查詢的結(jié)果中的數(shù)據(jù)逐條根據(jù)查詢條件對應的條件二叉樹進行過濾;注冊條件過濾模塊c22,與查詢條件過濾模塊c21連接,用于通過預先設定的內(nèi)置函數(shù),對所述查詢條件過濾后的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾。
圖9為本發(fā)明具體實施例九的流程圖,一種數(shù)據(jù)集成服務方法,包括以下步驟在步驟1中,對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應字段的數(shù)值范圍集合;然后在步驟2中,根據(jù)所述數(shù)值范圍集合以及預先保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
圖10為本發(fā)明具體實施例十的流程圖,一種數(shù)據(jù)集成服務方法,包括以下步驟首先在步驟01中,對用戶輸入的數(shù)據(jù)源的注冊條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;然后在步驟02中,將所述條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合,并保存該數(shù)值范圍集合;繼而在步驟1中,對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應字段的數(shù)值范圍集合;最后在步驟2中,根據(jù)所述數(shù)值范圍集合以及預先保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
圖11為本發(fā)明具體實施例十的另一示意圖,數(shù)據(jù)源能夠提供什么數(shù)據(jù),通過在數(shù)據(jù)集成服務上注冊來設置,并且在注冊時可以靈活指定數(shù)據(jù)范圍,數(shù)據(jù)范圍的描述和SQL語句中的查詢條件類似,并且能夠使用數(shù)據(jù)集成服務的內(nèi)置函數(shù)庫。例如,某個話單查詢的服務器只提供號首為“8888”的電話號碼中客戶級別為1的話單,并且客戶級別為是通過電話號碼獲取的,則在注冊時,可以指定數(shù)據(jù)范圍為“PhoneNo like‘8888%’and getCustLevel(PhoneNo)=1”。數(shù)據(jù)注冊描述了數(shù)據(jù)源提供數(shù)據(jù)的能力,數(shù)據(jù)集成服務在處理查詢請求的時候,將分析數(shù)據(jù)注冊的關系,并決定是否將請求提交給哪些數(shù)據(jù)源。這些文本的過濾條件需要轉(zhuǎn)換為二叉樹的數(shù)據(jù)結(jié)構(gòu),才能方便的解決編程實現(xiàn)中的問題。步驟01中,將文本方式的數(shù)據(jù)條件轉(zhuǎn)換為條件二叉樹,例如將數(shù)據(jù)條件“((a>1 and a<200and(b=1 or b=2))or f1(a)=1)and f2(b)=1”轉(zhuǎn)換后的二叉樹如圖12所示。此外,在步驟02中,通過將所述條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合,也即將二叉樹的葉子節(jié)點轉(zhuǎn)換為對應字段具體的數(shù)據(jù)取值范圍,就可以簡單的通過交集(對應過濾條件文本中的and)和并集(對應過濾條件文本中的or)得到每一個字段的取值范圍。因為任何一種關系型數(shù)據(jù)庫都支持按取值范圍查詢,即都支持通過“>”,“>=”,“<”,“<=”,“=”來表示的查詢條件。將條件二叉樹轉(zhuǎn)換為數(shù)據(jù)范圍,轉(zhuǎn)換的規(guī)則是,只對“>”,“>=”,“<”,“<=”,“=”和“l(fā)ike”進行轉(zhuǎn)換,內(nèi)置函數(shù)不做任何轉(zhuǎn)換,因為數(shù)據(jù)庫優(yōu)化器在分析SQL時,對經(jīng)過內(nèi)置函數(shù)轉(zhuǎn)換的條件同樣不會轉(zhuǎn)換為范圍,因而這種實現(xiàn)方式不會造成數(shù)據(jù)庫檢索性能的損失。數(shù)據(jù)注冊的條件和查詢條件均轉(zhuǎn)換數(shù)據(jù)范圍后,在步驟2中,采用集合的交集運算,如上述的二叉樹轉(zhuǎn)換為數(shù)據(jù)范圍為a∈(1,200),b∈{1,2}。如果查詢條件是“where a>100 and b>1”,則對應的數(shù)據(jù)范圍為a∈(100,∞),b∈(1,∞)。經(jīng)過集合運算后,對應的數(shù)據(jù)范圍為a∈(100,200),b∈{2}。數(shù)據(jù)范圍可以很容易的轉(zhuǎn)換為完全符合SQL-92標準的查詢SQL語句,如下“where a>100 anda<200 and b=2”。從上面所描述的數(shù)據(jù)范圍集合可以看出,經(jīng)過集合運算后,對數(shù)據(jù)源的查詢語句的范圍是注冊范圍和查詢范圍的交集,這樣數(shù)據(jù)庫處理查詢時的選擇范圍比直接查詢數(shù)據(jù)源更小,有利于數(shù)據(jù)庫更好的選擇索引。
圖12為本發(fā)明具體實施例十一的流程圖,一種數(shù)據(jù)集成服務方法,與具體實施例十一的區(qū)別在于步驟01具體包括以下步驟在步驟010中,對用戶輸入的數(shù)據(jù)源的文本格式的注冊條件進行結(jié)構(gòu)化查詢語言的語法分析,判斷所述注冊條件的語法是否正確,是則執(zhí)行步驟011,否則結(jié)束;然后在步驟011中,將經(jīng)過所述語法分析后的注冊條件轉(zhuǎn)換為對應的條件二叉樹。
圖13為本發(fā)明具體實施例十二的流程圖,一種數(shù)據(jù)集成服務方法,包括以下步驟在步驟10中,對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;然后在步驟11中,將所述條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合;最后在步驟2中,根據(jù)所述數(shù)值范圍集合以及預先保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
圖14為本發(fā)明具體實施例十三的流程圖,一種數(shù)據(jù)集成服務方法,與具體實施例十三的區(qū)別在于步驟10具體包括以下步驟在步驟101中,對用戶輸入的文本格式的查詢條件進行結(jié)構(gòu)化查詢語言的語法分析,判斷所述查詢條件的語法是否正確,是則執(zhí)行步驟102,否則結(jié)束;然后在步驟102中,將經(jīng)過所述語法分析后的查詢條件轉(zhuǎn)換為對應的條件二叉樹。
圖15為本發(fā)明具體實施例十四的流程圖,一種數(shù)據(jù)集成服務方法,與具體實施例十四的區(qū)別在于步驟2具體包括以下步驟在步驟20中,根據(jù)所述查詢條件轉(zhuǎn)換模塊轉(zhuǎn)換生成的數(shù)值范圍集合和所述數(shù)據(jù)注冊模塊保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找與所述數(shù)值范圍集合對應的數(shù)據(jù)源;然后在步驟21中,對所述數(shù)值范圍集合和查找到的數(shù)據(jù)源的數(shù)據(jù)范圍進行交集運算,根據(jù)運算結(jié)果生成對應的結(jié)構(gòu)化查詢語言的查詢請求;最后在步驟22中,將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
圖16為本發(fā)明具體實施例十五的流程圖,一種數(shù)據(jù)集成服務方法,與具體實施例十五的區(qū)別在于具體實施例十五中步驟21在本具體實施例十六中為步驟21′,具體包括對所述數(shù)值范圍集合和查找到的數(shù)據(jù)源的數(shù)據(jù)范圍進行交集運算,并判斷運算得到的交集是否為空集,是則結(jié)束,否則執(zhí)行步驟22。
圖17為本發(fā)明具體實施例十六的流程圖,一種數(shù)據(jù)集成服務方法,與具體實施例十六的區(qū)別在于步驟22具體包括以下步驟在步驟220中,將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果;然后在步驟221中,通過預先設定的內(nèi)置函數(shù),對所述查詢結(jié)果中的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾;繼而在步驟222中,通過預先設定的內(nèi)置函數(shù),對過濾后的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾;最后在步驟223中,將經(jīng)過步驟222過濾后的數(shù)據(jù)輸出給用戶。
圖18為本發(fā)明具體實施例十七的流程圖,一種數(shù)據(jù)集成服務方法,與具體實施例十六的區(qū)別在于步驟22具體包括以下步驟在步驟220′中,將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果;然后在步驟221′中,通過預先設定的內(nèi)置函數(shù),對所述查詢結(jié)果中的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾;繼而在步驟222′中,通過預先設定的內(nèi)置函數(shù),對過濾后的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾;最后在步驟223′中,將經(jīng)過步驟222′過濾后的數(shù)據(jù)輸出給用戶。
最后應當說明的是以上實施例僅用以說明本發(fā)明的技術方案而非對其限制;盡管參照較佳實施例對本發(fā)明進行了詳細的說明,所屬領域的普通技術人員應當理解,依然可以對本發(fā)明的具體實施方式
進行修改或者對部分技術特征進行等同替換,而不脫離本發(fā)明技術方案的精神;其均應涵蓋在本發(fā)明請求保護的技術方案范圍當中。
權利要求
1.一種數(shù)據(jù)集成服務系統(tǒng),其特征在于,包括數(shù)據(jù)注冊模塊,用于對數(shù)據(jù)源所提供的數(shù)據(jù)范圍進行注冊和保存;所述數(shù)據(jù)注冊模塊包括注冊條件解析模塊,用于對用戶輸入的數(shù)據(jù)源的注冊條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;注冊條件轉(zhuǎn)換模塊,與所述注冊條件解析模塊連接,用于將所述注冊條件解析模塊轉(zhuǎn)換生成的條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合,并保存該數(shù)值范圍集合;數(shù)據(jù)查詢模塊,與所述注冊條件轉(zhuǎn)換模塊以及一個或多個數(shù)據(jù)源連接,用于根據(jù)用戶輸入的查詢條件和所述注冊條件轉(zhuǎn)換模塊中保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,向?qū)臄?shù)據(jù)源提交查詢請求并將查詢結(jié)果輸出給用戶。
2.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述注冊條件解析模塊具體包括注冊條件語法分析模塊,用于對用戶輸入的數(shù)據(jù)源的文本格式的注冊條件進行結(jié)構(gòu)化查詢語言的語法分析;注冊條件二叉樹生成模塊,與所述注冊條件語法分析模塊連接,用于將所述注冊條件語法分析模塊分析后的注冊條件轉(zhuǎn)換為對應的條件二叉樹。
3.根據(jù)權利要求1或2所述的系統(tǒng),其特征在于,所述數(shù)據(jù)查詢模塊具體包括查詢條件解析模塊,用于對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;查詢條件轉(zhuǎn)換模塊,與所述查詢條件解析模塊連接,用于將所述查詢條件解析模塊轉(zhuǎn)換生成的條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合;數(shù)據(jù)源查詢模塊,與所述查詢條件轉(zhuǎn)換模塊、所述數(shù)據(jù)注冊模塊、以及所述一個或多個數(shù)據(jù)源連接,用于根據(jù)所述查詢條件轉(zhuǎn)換模塊轉(zhuǎn)換生成的數(shù)值范圍集合以及所述數(shù)據(jù)注冊模塊保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交結(jié)構(gòu)化查詢語言的查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
4.根據(jù)權利要求3所述的系統(tǒng),其特征在于,所述查詢條件解析模塊具體包括查詢條件語法分析模塊,用于對用戶輸入的文本格式的查詢條件進行結(jié)構(gòu)化查詢語言的語法分析;查詢條件二叉樹生成模塊,與所述查詢條件語法分析模塊連接,用于將所述查詢條件語法分析模塊分析后的查詢條件轉(zhuǎn)換為對應的條件二叉樹。
5.根據(jù)權利要求3所述的系統(tǒng),其特征在于,所述數(shù)據(jù)源查詢模塊具體包括數(shù)據(jù)源查找模塊,與所述查詢條件轉(zhuǎn)換模塊和所述數(shù)據(jù)注冊模塊連接,用于根據(jù)所述查詢條件轉(zhuǎn)換模塊轉(zhuǎn)換生成的數(shù)值范圍集合和所述數(shù)據(jù)注冊模塊保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找與所述數(shù)值范圍集合對應的數(shù)據(jù)源;查詢處理模塊,與所述數(shù)據(jù)源查找模塊以及所述一個或多個數(shù)據(jù)源連接,用于根據(jù)所述數(shù)值范圍集合和所述數(shù)據(jù)源的數(shù)據(jù)范圍生成數(shù)據(jù)源查詢條件后提交給所述數(shù)據(jù)源,并獲得所述數(shù)據(jù)源的查詢結(jié)果,將查詢結(jié)果輸出給用戶。
6.根據(jù)權利要求5所述的系統(tǒng),其特征在于還包括查詢結(jié)果過濾模塊,與所述查詢處理模塊連接,用于對所述查詢處理模塊查詢的結(jié)果,通過預先設定的內(nèi)置函數(shù)進行過濾。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述查詢結(jié)果過濾模塊具體包括注冊條件過濾模塊,與所述查詢處理模塊連接,用于通過預先設定的內(nèi)置函數(shù),對所述查詢處理模塊查詢的結(jié)果中的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾;查詢條件過濾模塊,與所述注冊條件過濾模塊連接,用于通過預先設定的內(nèi)置函數(shù),對所述注冊條件過濾模塊過濾后的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾。
8.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述查詢結(jié)果過濾模塊具體包括查詢條件過濾模塊,與所述查詢處理模塊連接,用于通過預先設定的內(nèi)置函數(shù),對所述查詢處理模塊查詢的結(jié)果中的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾;注冊條件過濾模塊,與所述查詢條件過濾模塊連接,用于通過預先設定的內(nèi)置函數(shù),對所述查詢條件過濾后的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾。
9.根據(jù)權利要求6所述的系統(tǒng),其特征在于,還包括內(nèi)置函數(shù)庫,與所述查詢結(jié)果過濾模塊連接,用于保存預先設定的所述內(nèi)置函數(shù)。
10.根據(jù)權利要求9所述的系統(tǒng),其特征在于,還包括配置文件模塊,與所述查詢結(jié)果過濾模塊連接,用于保存配置文件,所述配置文件保存有對所述內(nèi)置函數(shù)庫中所有函數(shù)的相關參數(shù)和返回值的定義。
11.一種數(shù)據(jù)集成服務方法,其特征在于,包括以下步驟步驟1、對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應字段的數(shù)值范圍集合;步驟2、根據(jù)所述數(shù)值范圍集合以及預先保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
12.根據(jù)權利要求11所述的方法,其特征在于,所述步驟1之前還包括預先保存所述數(shù)據(jù)源提供的數(shù)值范圍的操作,具體包括步驟01、對用戶輸入的數(shù)據(jù)源的注冊條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;步驟02、將所述條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合,并保存該數(shù)值范圍集合。
13.根據(jù)權利要求12所述的方法,其特征在于,所述步驟01具體包括步驟010、對用戶輸入的數(shù)據(jù)源的文本格式的注冊條件進行結(jié)構(gòu)化查詢語言的語法分析,判斷所述注冊條件的語法是否正確,是則執(zhí)行步驟011,否則結(jié)束;步驟011、將經(jīng)過所述語法分析后的注冊條件轉(zhuǎn)換為對應的條件二叉樹。
14.根據(jù)權利要求11所述的方法,其特征在于,所述步驟1具體包括步驟10、對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應的條件二叉樹;步驟11、將所述條件二叉樹轉(zhuǎn)換為對應字段的數(shù)值范圍集合。
15.根據(jù)權利要求14所述的方法,其特征在于,所述步驟10具體包括步驟101、對用戶輸入的文本格式的查詢條件進行結(jié)構(gòu)化查詢語言的語法分析,判斷所述查詢條件的語法是否正確,是則執(zhí)行步驟102,否則結(jié)束;步驟102、將經(jīng)過所述語法分析后的查詢條件轉(zhuǎn)換為對應的條件二叉樹。
16.根據(jù)權利要求11所述的方法,其特征在于,所述步驟2具體包括步驟20、根據(jù)所述查詢條件轉(zhuǎn)換模塊轉(zhuǎn)換生成的數(shù)值范圍集合和所述數(shù)據(jù)注冊模塊保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找與所述數(shù)值范圍集合對應的數(shù)據(jù)源;步驟21、對所述數(shù)值范圍集合和查找到的數(shù)據(jù)源的數(shù)據(jù)范圍進行交集運算,根據(jù)運算結(jié)果生成對應的結(jié)構(gòu)化查詢語言的查詢請求;步驟22、將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。
17.根據(jù)權利要求16所述的方法,其特征在于,所述步驟21具體包括對所述數(shù)值范圍集合和查找到的數(shù)據(jù)源的數(shù)據(jù)范圍進行交集運算,并判斷運算得到的交集是否為空集,是則結(jié)束,否則根據(jù)該交集生成對應的結(jié)構(gòu)化查詢語言的查詢請求。
18.根據(jù)權利要求16所述的方法,其特征在于,所述步驟22具體包括以下步驟步驟220、將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果;步驟221、通過預先設定的內(nèi)置函數(shù),對所述查詢結(jié)果中的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾;步驟222、通過預先設定的內(nèi)置函數(shù),對過濾后的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾;步驟223、將經(jīng)過步驟222過濾后的數(shù)據(jù)輸出給用戶。
19.根據(jù)權利要求16所述的方法,其特征在于,所述步驟22具體包括以下步驟步驟220′、將所述結(jié)構(gòu)化查詢語言的查詢請求提交給所述查找到的數(shù)據(jù)源并獲得查詢結(jié)果;步驟221′、通過預先設定的內(nèi)置函數(shù),對所述查詢結(jié)果中的數(shù)據(jù)逐條根據(jù)所述注冊條件對應的條件二叉樹進行過濾;步驟222′、通過預先設定的內(nèi)置函數(shù),對過濾后的數(shù)據(jù)逐條根據(jù)所述查詢條件對應的條件二叉樹進行過濾;步驟223′、將經(jīng)過步驟222′過濾后的數(shù)據(jù)輸出給用戶。
全文摘要
一種數(shù)據(jù)集成服務系統(tǒng),包括數(shù)據(jù)注冊模塊,用于對該數(shù)據(jù)源所提供的數(shù)據(jù)范圍進行注冊和保存;數(shù)據(jù)查詢模塊,與所述數(shù)據(jù)注冊模塊以及一個或多個數(shù)據(jù)源連接,用于向?qū)臄?shù)據(jù)源提交查詢請求并將查詢結(jié)果輸出給用戶。一種數(shù)據(jù)集成服務方法,包括以下步驟步驟1為對用戶輸入的查詢條件進行解析并轉(zhuǎn)換為對應字段的數(shù)值范圍集合;步驟2為根據(jù)數(shù)值范圍集合以及預先保存的數(shù)據(jù)源提供的數(shù)據(jù)范圍,查找并向?qū)臄?shù)據(jù)源提交查詢請求并獲得查詢結(jié)果,將查詢結(jié)果輸出給用戶。本發(fā)明能夠支持不同的數(shù)據(jù)源,屏蔽不同數(shù)據(jù)源的差異,支持靈活的查詢條件,充分利用數(shù)據(jù)庫的強大檢索功能,以及提供強大的數(shù)據(jù)過濾功能從而能夠滿足復雜的應用開發(fā)需要。
文檔編號H04L12/24GK101046811SQ20061008317
公開日2007年10月3日 申請日期2006年6月7日 優(yōu)先權日2006年6月7日
發(fā)明者朱仲楚 申請人:華為技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1