一種行業(yè)內(nèi)異構(gòu)數(shù)據(jù)交換的數(shù)據(jù)查詢方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)行業(yè)數(shù)據(jù)交互領(lǐng)域。具體的說,涉及一種使數(shù)據(jù)在不同的系統(tǒng) 之間被正確的組織、傳輸和解析查詢的方法。 技術(shù)背景
[0002] 為了提高生產(chǎn)力,各行各業(yè)都建立了形形色色的信息化業(yè)務(wù)系統(tǒng)。由于早年各行 業(yè)都處于探索階段,缺少對(duì)信息化建設(shè)的整體規(guī)劃,信息化業(yè)務(wù)系統(tǒng)建設(shè)通常是由各下級(jí) 單位自行建設(shè)的,導(dǎo)致同行業(yè)內(nèi)各下級(jí)單位相同功能的業(yè)務(wù)系統(tǒng)采用了不同廠家的產(chǎn)品, 在功能上有差異,采用的開發(fā)語言有差異,采用的數(shù)據(jù)庫(kù)有差異,數(shù)據(jù)存儲(chǔ)格式有差異,形 成了彳目息孤島。
[0003] 隨著技術(shù)的發(fā)展和行業(yè)信息化意識(shí)的提高,各行業(yè)對(duì)業(yè)務(wù)數(shù)據(jù)越來越重視,行業(yè) 主管部門希望把本行業(yè)的重要數(shù)據(jù)進(jìn)行集中管理,進(jìn)行數(shù)據(jù)大集中,形成整個(gè)行業(yè)的數(shù)據(jù) 倉(cāng)庫(kù),用來進(jìn)行更高層次的數(shù)據(jù)分析和更全面的數(shù)據(jù)共享,大集中的數(shù)據(jù)庫(kù)一般采用數(shù)據(jù) 上報(bào)的技術(shù)進(jìn)行處理。
[0004] 但是行業(yè)數(shù)據(jù)大集中通常只會(huì)集中存儲(chǔ)一些關(guān)鍵數(shù)據(jù),更多的詳細(xì)數(shù)據(jù)還是分散 在各下級(jí)單位的數(shù)據(jù)庫(kù)中。各下級(jí)單位之間會(huì)有數(shù)據(jù)互查的需求,上級(jí)單位也會(huì)需要到下 級(jí)單位查詢沒有上報(bào)的數(shù)據(jù)。
[0005] 在同級(jí)單位之間進(jìn)行數(shù)據(jù)互查時(shí),由于各單位業(yè)務(wù)系統(tǒng)的數(shù)據(jù)是異構(gòu)的,為了達(dá) 到互查的目標(biāo),必須制定統(tǒng)一的溝通標(biāo)準(zhǔn),這個(gè)溝通標(biāo)準(zhǔn)是行業(yè)標(biāo)準(zhǔn),行業(yè)內(nèi)的所有單位和 軟件供應(yīng)商都應(yīng)該遵循該標(biāo)準(zhǔn)?;谠撔袠I(yè)標(biāo)準(zhǔn),進(jìn)行查詢條件的編碼、傳輸和解碼。多個(gè) 系統(tǒng)間的數(shù)據(jù)查詢模型如圖1所示。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是為行業(yè)內(nèi)異構(gòu)數(shù)據(jù)交換定義規(guī)則,讓各個(gè)系統(tǒng)之間能互相理解對(duì) 方的語法,然后根據(jù)對(duì)方要求把數(shù)據(jù)查詢結(jié)果返回。
[0007] 為實(shí)現(xiàn)上述目的,本發(fā)明的解決方案是:
[0008] 一種行業(yè)內(nèi)異構(gòu)數(shù)據(jù)交換的數(shù)據(jù)查詢方法,其步驟為:
[0009] 1)建立一行業(yè)標(biāo)準(zhǔn)詞典,記錄不同異構(gòu)數(shù)據(jù)系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)與標(biāo)準(zhǔn)詞典中數(shù)據(jù)結(jié) 構(gòu)的對(duì)應(yīng)關(guān)系;
[0010] 2)在各異構(gòu)數(shù)據(jù)系統(tǒng)之間建立查詢條件下發(fā)和查詢結(jié)果返回的傳輸通道,并在所 述傳輸通道上發(fā)布其所支持的服務(wù)接口;
[0011] 3)各所述異構(gòu)數(shù)據(jù)系統(tǒng)分別根據(jù)所述服務(wù)接口生成訪問接口并注冊(cè)到所述傳輸 通道上;
[0012] 4)根據(jù)所述行業(yè)標(biāo)準(zhǔn)詞典輸入查詢請(qǐng)求,然后通過所選異構(gòu)數(shù)據(jù)系統(tǒng)的訪問接口 將該查詢請(qǐng)求發(fā)送給所選異構(gòu)數(shù)據(jù)系統(tǒng);
[0013] 5)所述異構(gòu)數(shù)據(jù)系統(tǒng)將收到的查詢請(qǐng)求根據(jù)所述行業(yè)標(biāo)準(zhǔn)詞典轉(zhuǎn)換為自己能識(shí) 別的查詢語句進(jìn)行查詢,并返回查詢結(jié)果。
[0014]進(jìn)一步的,所述行業(yè)標(biāo)準(zhǔn)詞典包括數(shù)據(jù)集、字段和編碼;其中,數(shù)據(jù)集對(duì)應(yīng)于異構(gòu) 數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫(kù)中的表,字段對(duì)應(yīng)于異構(gòu)數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫(kù)中的字段,編碼對(duì)應(yīng)于異構(gòu) 數(shù)據(jù)系統(tǒng)的數(shù)據(jù)庫(kù)中的字段值。
[0015]進(jìn)一步的,創(chuàng)建所述行業(yè)標(biāo)準(zhǔn)詞典的方法為:將各所述異構(gòu)數(shù)據(jù)系統(tǒng)要交互的數(shù) 據(jù)抽象出若干個(gè)數(shù)據(jù)集,每一數(shù)據(jù)集具有一編號(hào)、名稱和含義;每一數(shù)據(jù)集包括若干字段; 每一字段具有若干編碼。
[0016]進(jìn)一步的,所述數(shù)據(jù)集中的字段包括:字段編號(hào)、英文編碼、中文名稱、類型、長(zhǎng)度、 所用編碼、表達(dá)格式。
[0017]進(jìn)一步的,所述異構(gòu)數(shù)據(jù)系統(tǒng)分別在所述傳輸通道上注冊(cè),獲取一節(jié)點(diǎn)編號(hào);所述 查詢請(qǐng)求包括查詢發(fā)起者的異構(gòu)數(shù)據(jù)系統(tǒng)標(biāo)號(hào)、目標(biāo)異構(gòu)數(shù)據(jù)系統(tǒng)編號(hào)和查詢條件。
[0018] 進(jìn)一步的,采用統(tǒng)一格式輸入所述查詢請(qǐng)求。
[0019]進(jìn)一步的,所述查詢請(qǐng)求為XML格式。
[0020] 進(jìn)一步的,所述返回結(jié)果采用統(tǒng)一格式。
[0021] 進(jìn)一步的,所述返回結(jié)果的格式為XML格式或JSON格式。
[0022] 進(jìn)一步的,所述傳輸通道為企業(yè)服務(wù)總線ESB。
[0023] 本發(fā)明首先要搭建行業(yè)ESB(企業(yè)服務(wù)總線),為查詢條件下發(fā)和數(shù)據(jù)返回建立傳 輸通道。
[0024] 然后定義行業(yè)標(biāo)準(zhǔn)詞典,定義出行業(yè)內(nèi)都能識(shí)別的數(shù)據(jù)集、字段、編碼。比如行業(yè) 規(guī)定1表示男,0表示女。某企業(yè)1表示男,2表示女,那么該在向外提供數(shù)據(jù)時(shí)必須將2轉(zhuǎn) 換為〇,否則行業(yè)內(nèi)其他企業(yè)無法識(shí)別2。
[0025]最后根據(jù)標(biāo)準(zhǔn)詞典確定查詢條件下發(fā)的格式和查詢結(jié)果返回的格式。本發(fā)明中采 用統(tǒng)一定義的XML格式,便于不同的企業(yè)可以互相識(shí)別。
[0026]為了在行業(yè)間實(shí)現(xiàn)數(shù)據(jù)交換,需要在行業(yè)內(nèi)部搭建ESB(企業(yè)服務(wù)總線),由行業(yè) 主管部門定義ESB上支持的服務(wù)接口,發(fā)布為WebService。各下級(jí)單位要實(shí)現(xiàn)ESB的各個(gè) 接口,并且在ESB上注冊(cè)自己的訪問接口,供其他單位訪問本單位數(shù)據(jù)。本單位要使用其他 單位數(shù)據(jù)時(shí),只需要訪問相應(yīng)單位的ESB接口即可。
[0027]為了能讓各單位能理解彼此的語法,首先需要定義行業(yè)標(biāo)準(zhǔn)詞典,相當(dāng)于語言中 的單詞。各單位在描述查詢請(qǐng)求時(shí)必須使用行業(yè)標(biāo)準(zhǔn)詞典,這樣才能彼此理解。標(biāo)準(zhǔn)詞典 定義包含:數(shù)據(jù)集、字段、編碼3個(gè)層次。數(shù)據(jù)集相當(dāng)于數(shù)據(jù)庫(kù)中的表,字段就相當(dāng)于數(shù)據(jù)庫(kù) 中的字段,編碼相當(dāng)于數(shù)據(jù)庫(kù)中字段的枚舉值。有了這3層的定義,就可以讓各個(gè)下級(jí)單位 理解彼此的數(shù)據(jù)。
[0028] 只有詞典還不夠,還應(yīng)該描述出需要?jiǎng)e的單位什么樣的數(shù)據(jù),所以還需要定義查 詢條件的表達(dá)格式。我們采用類SQL的表達(dá)方式來描述我們的查詢條件,最后把查詢條件 形成一個(gè)XML下發(fā)給目標(biāo)單位。
[0029]除了定義查詢表達(dá)式格式,還需要定義返回結(jié)果格式。結(jié)果格式可以是XML或者JSON格式的,XML格式的更便于閱讀,JSON格式的體積更小,傳輸開銷更小。目標(biāo)單位收到 查詢XML后,需要根據(jù)標(biāo)準(zhǔn)詞典翻譯成自己系統(tǒng)能識(shí)別的查詢語句進(jìn)行查詢(因?yàn)椴樵僗ML 的格式是行業(yè)標(biāo)準(zhǔn),XML中每個(gè)節(jié)點(diǎn)是什么都有明確定義,比如該節(jié)點(diǎn)下描述的是要請(qǐng)求的 要查詢數(shù)據(jù)的目標(biāo)節(jié)點(diǎn)信息,另一個(gè)節(jié)點(diǎn)描述的是要查詢那個(gè)數(shù)據(jù)集。XML的結(jié)構(gòu)和標(biāo)準(zhǔn)詞 典都屬于行業(yè)標(biāo)準(zhǔn)),查詢出結(jié)果后,再根據(jù)標(biāo)準(zhǔn)詞典把數(shù)據(jù)轉(zhuǎn)換為符合行業(yè)標(biāo)準(zhǔn)的格式, 返回給查詢單位。
[0030] 本發(fā)明的優(yōu)點(diǎn)和積極效果:
[0031] a)E