專利名稱:一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法,采用XML作為信息交換的中間媒介,internet/intranet作為數(shù)據(jù)交換的信息通道,實(shí)現(xiàn)信息系統(tǒng)的集成。
背景技術(shù):
現(xiàn)有的數(shù)據(jù)交換技術(shù)主要是針對(duì)通信方面的信號(hào)數(shù)據(jù)的交換,而針對(duì)信息系統(tǒng)的數(shù)據(jù)庫之間的數(shù)據(jù)交換很少,而且其大多需要借助接口電路、接口總線等硬件裝置,實(shí)現(xiàn)信息系統(tǒng)之間交換數(shù)據(jù)。不同的信息系統(tǒng)面向不同的業(yè)務(wù)需求,因此信息系統(tǒng)所擁有的關(guān)系數(shù)據(jù)庫的模式也不同,這樣導(dǎo)致信息系統(tǒng)之間數(shù)據(jù)交換的通用性很難保證。曾有人發(fā)明數(shù)據(jù)交換裝置,內(nèi)置與站內(nèi)數(shù)據(jù)庫雙向連接的接口、與該接口雙向連接的接口總線,有的還內(nèi)置與遠(yuǎn)程鏈路雙向連接的線路控制電路、隊(duì)列控制電路、隊(duì)列總線。此種方法,使用了硬件裝置,因此成本高昂,且需要人員的進(jìn)行維護(hù),浪費(fèi)勞力。還有人采用網(wǎng)頁的方式,從頁面上采集信息,轉(zhuǎn)換成可擴(kuò)展標(biāo)記語言(XML)文檔,與隱含數(shù)據(jù)之間建立一一對(duì)應(yīng)的鏈接關(guān)系,此種方式為業(yè)務(wù)數(shù)據(jù)的瀏覽共享提供方便,但是采集的數(shù)據(jù)沒有轉(zhuǎn)換為信息系統(tǒng)的關(guān)系數(shù)據(jù)模式的數(shù)據(jù),不能被信息系統(tǒng)直接利用與處理,無法滿足管理業(yè)務(wù)的需要,并且需要人工操作,無法自動(dòng)控制。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法,不借助接口電路與接口總線,而采用成本低廉、使用方便的軟件方式,實(shí)現(xiàn)信息系統(tǒng)的集成。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案是1)根據(jù)關(guān)系數(shù)據(jù)模型與XML模型,創(chuàng)建關(guān)系數(shù)據(jù)模型與XML模型之間的映射機(jī)制,建立關(guān)系數(shù)據(jù)模型與XML模型之間的映射模型,該映射模型包括實(shí)現(xiàn)數(shù)據(jù)之間映射關(guān)系的映射函數(shù)庫;2)根據(jù)關(guān)系數(shù)據(jù)模式與XML模型,建立XML模式,即XML Schema;3)根據(jù)關(guān)系數(shù)據(jù)庫模式與XML模式,從映射模型的映射函數(shù)庫中選取基本的映射函數(shù),組合成適應(yīng)具體信息系統(tǒng)數(shù)據(jù)交換的映射函數(shù)向量F(X),建立關(guān)系數(shù)據(jù)模式與XML模式之間的映射模式;4)建立與關(guān)系數(shù)據(jù)庫的連接;5)觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎進(jìn)行數(shù)據(jù)交換,若采用自動(dòng)控制方式,則需預(yù)先設(shè)置觸發(fā)器的觸發(fā)機(jī)制及其任務(wù)與屬性;自動(dòng)控制數(shù)據(jù)交換的工作流程為①當(dāng)某一事件或某一時(shí)刻到達(dá)時(shí),觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎,②數(shù)據(jù)交換引擎讀取觸發(fā)任務(wù)與屬性,并依此讀取相應(yīng)的映射模式,③數(shù)據(jù)交換引擎執(zhí)行數(shù)據(jù)交換工作,該步工作根據(jù)任務(wù)類型的不同執(zhí)行不同的工作流程;數(shù)據(jù)交換任務(wù)分為兩種類型接收和發(fā)布;當(dāng)任務(wù)為接收數(shù)據(jù)時(shí),其執(zhí)行流程為①連接目標(biāo)數(shù)據(jù)庫,讀入共享區(qū)域的XML文件),②將XML文件的數(shù)據(jù)依據(jù)映射模式轉(zhuǎn)換成目標(biāo)數(shù)據(jù)模式,③將數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫;當(dāng)工作為發(fā)布數(shù)據(jù)時(shí),其工作流程為①根據(jù)任務(wù)與屬性,連接源數(shù)據(jù)庫,讀入數(shù)據(jù)過濾條件,對(duì)數(shù)據(jù)進(jìn)行查詢過濾,讀取將要發(fā)布的數(shù)據(jù),②根據(jù)映射模式,將數(shù)據(jù)轉(zhuǎn)換成XML模式定義的數(shù)據(jù)形式,③將數(shù)據(jù)以XML文件的形式發(fā)布到共享區(qū)域,④修改數(shù)據(jù)過濾條件。
XML模式的數(shù)據(jù)作為數(shù)據(jù)交換的中間媒介,internet/intranet作為數(shù)據(jù)交換的通道。
所述的映射函數(shù)庫包括數(shù)學(xué)函數(shù)、字符串函數(shù)、轉(zhuǎn)換函數(shù)、數(shù)據(jù)庫函數(shù),其作用是將源數(shù)據(jù)轉(zhuǎn)化為目標(biāo)數(shù)據(jù);數(shù)學(xué)函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)元素進(jìn)行數(shù)學(xué)運(yùn)算操作,字符串函數(shù)實(shí)現(xiàn)對(duì)字符串進(jìn)行操作,轉(zhuǎn)換函數(shù)實(shí)現(xiàn)不同類型數(shù)據(jù)之間的轉(zhuǎn)換,數(shù)據(jù)庫函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行操作;其中(1)數(shù)學(xué)函數(shù)算術(shù)操作符有加+,減-,乘×,除÷;MOD(A,B),計(jì)算將A操作數(shù)除以B操作數(shù)后所得的余數(shù);ABS(A),ABS函數(shù)返回指定的數(shù)值的絕對(duì)值;SIGN(A),當(dāng)A小于0時(shí)返回-1,A為0時(shí)返回0,A大于0時(shí)返回1;(2)字符串函數(shù)CHR(A)函數(shù)說明CHR函數(shù)返回字符的數(shù)值等于A的字符,A為設(shè)定的數(shù)值;CONCAT(A,B)函數(shù)說明CONCAT函數(shù)將A和B兩個(gè)字符串連接起來,A、B代表2個(gè)字符串;LPAD(A,B,C)函數(shù)說明字符串左邊填充字符,A是被操作的字符串,B是要填充的字符的總個(gè)數(shù),C是可選的,它是要填充的字符;RPAD(A,B,C)函數(shù)說明字符串右邊填充字符,A是被操作的字符串,B是要填充的字符的總個(gè)數(shù),C是可選的,它是要填充的字符;LTRIM(A,B)函數(shù)說明字符串左邊截去相關(guān)的字符,A是被操作的字符串,B是既可以是字符,也可以是字符串或缺省;RTRIM(A,B)函數(shù)說明字符串右邊截去相關(guān)的字符,A是被操作的字符串,B是既可以是字符,也可以是字符串或缺??;SUBSTR(A,B,C)函數(shù)說明從目標(biāo)字符串中取出一個(gè)子串.A是目標(biāo)字符串,B是被輸出的子串的第一個(gè)字符在目標(biāo)串中的位置,C是被輸出的子串的字符數(shù)目;REPLACE(A,B,C)函數(shù)說明替換函數(shù)中A是被查找的字符串,B是字符串中的查找鍵,C是可選的,是替換字符串;(3)轉(zhuǎn)換函數(shù)TO_CHAR(A)函數(shù)說明TO_CHAR函數(shù)將不同類型的數(shù)據(jù)轉(zhuǎn)換成字符串類型,A為被轉(zhuǎn)換任意類型數(shù)據(jù);TO_NUMBER(A)函數(shù)說明TO_NUMBER函數(shù)將字符串轉(zhuǎn)換成一個(gè)數(shù)值,A為被轉(zhuǎn)換的字符串;TO_DATE(A)函數(shù)說明TO_DATE函數(shù)將字符串轉(zhuǎn)化成日期型,A為被轉(zhuǎn)換的字符串;ADD_FIELD(A,B)函數(shù)說明根據(jù)字段缺省的規(guī)律,添補(bǔ)數(shù)據(jù)元素,A為需要添補(bǔ)的數(shù)據(jù)元素,B為可選擇的規(guī)律;(4)數(shù)據(jù)庫函數(shù)CREATE_VIEW函數(shù)說明對(duì)于數(shù)據(jù)元素存儲(chǔ)在不同數(shù)據(jù)表中的情況,根據(jù)關(guān)聯(lián)關(guān)系,拼成視圖,選取所需的數(shù)據(jù)元素;SUM(A)函數(shù)說明SUM函數(shù)返回一列中所有數(shù)值之和,A為列的名稱;AVG(A)函數(shù)說明AVG函數(shù)計(jì)算一列的平均值,A為列的名稱;SYSDATE函數(shù)說明返回系統(tǒng)的日期時(shí)間;所述的觸發(fā)器,采用事件觸發(fā)與時(shí)間觸發(fā)兩種觸發(fā)機(jī)制,事件觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎按照觸發(fā)任務(wù)與屬性順序執(zhí)行工作流程,時(shí)間觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎,每經(jīng)過設(shè)定的時(shí)間周期T后,重新啟動(dòng)數(shù)據(jù)交換引擎,工作流程進(jìn)入下一個(gè)循環(huán),周期性的交換新增加的數(shù)據(jù)。
本發(fā)明具有的有益的效果是保證不同信息系統(tǒng)之間的數(shù)據(jù)一致性,使信息及時(shí)共享與反饋,避免信息重復(fù)輸入,與產(chǎn)生大量冗余數(shù)據(jù),自動(dòng)控制數(shù)據(jù)交換,減少了勞力,實(shí)現(xiàn)信息系統(tǒng)的集成,有利于企業(yè)業(yè)務(wù)管理的一體化。
圖1為數(shù)據(jù)交換的原理圖;
圖2為數(shù)據(jù)交換的結(jié)構(gòu)框架圖;圖3為完整的數(shù)據(jù)交換自動(dòng)控制流程圖;圖4為發(fā)布數(shù)據(jù)的導(dǎo)出映射圖;圖5為接收數(shù)據(jù)的導(dǎo)入映射圖;圖6為映射模型中的合并與分拆示意圖;圖7為完整的系統(tǒng)工作流程圖。
具體實(shí)施例方式
以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
如圖1所示,一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法包括以下步驟1)根據(jù)關(guān)系數(shù)據(jù)模型100與XML模型105,創(chuàng)建關(guān)系數(shù)據(jù)模型100與XML模型105之間的映射機(jī)制,建立關(guān)系數(shù)據(jù)模型100與XML模型105之間的映射模型115,該映射模型115包括實(shí)現(xiàn)數(shù)據(jù)之間映射關(guān)系的映射函數(shù)庫數(shù)學(xué)函數(shù)、字符串函數(shù)、轉(zhuǎn)換函數(shù)、數(shù)據(jù)庫函數(shù);數(shù)學(xué)函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)元素進(jìn)行數(shù)學(xué)運(yùn)算操作,字符串函數(shù)實(shí)現(xiàn)對(duì)字符串進(jìn)行操作,轉(zhuǎn)換函數(shù)實(shí)現(xiàn)不同類型數(shù)據(jù)之間的轉(zhuǎn)換,數(shù)據(jù)庫函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行操作;(1)數(shù)學(xué)函數(shù)算術(shù)操作符有加+,減-,乘×,除÷;MOD(A,B),計(jì)算將A操作數(shù)除以B操作數(shù)后所得的余數(shù);ABS(A),ABS函數(shù)返回指定的數(shù)值的絕對(duì)值;SIGN(A),當(dāng)A小于0時(shí)返回-1,A為0時(shí)返回0,A大于0時(shí)返回1;(2)字符串函數(shù)CHR(A)函數(shù)說明CHR函數(shù)返回字符的數(shù)值等于A的字符,A為設(shè)定的數(shù)值;CONCAT(A,B)函數(shù)說明CONCAT函數(shù)將A和B兩個(gè)字符串連接起來,A、B代表2個(gè)字符串;LPAD(A,B,C)函數(shù)說明字符串左邊填充字符,A是被操作的字符串,B是要填充的字符的總個(gè)數(shù),C是可選的,它是要填充的字符;RPAD(A,B,C)函數(shù)說明字符串右邊填充字符,A是被操作的字符串,B是要填充的字符的總個(gè)數(shù),C是可選的,它是要填充的字符;LTRIM(A,B)函數(shù)說明字符串左邊截去相關(guān)的字符,A是被操作的字符串,B是既可以是字符,也可以是字符串或缺??;
RTRIM(A,B)函數(shù)說明字符串右邊截去相關(guān)的字符,A是被操作的字符串,B是既可以是字符,也可以是字符串或缺??;SUBSTR(A,B,C)函數(shù)說明從目標(biāo)字符串中取出一個(gè)子串.A是目標(biāo)字符串,B是被輸出的子串的第一個(gè)字符在目標(biāo)串中的位置,C是被輸出的子串的字符數(shù)目;REPLACE(A,B,C)函數(shù)說明替換函數(shù)中A是被查找的字符串,B是字符串中的查找鍵,C是可選的,是替換字符串;(3)轉(zhuǎn)換函數(shù)TO_CHAR(A)函數(shù)說明TO_CHAR函數(shù)將不同類型的數(shù)據(jù)轉(zhuǎn)換成字符串類型,A為被轉(zhuǎn)換任意類型數(shù)據(jù);TO_NUMBER(A)函數(shù)說明TO_NUMBER函數(shù)將字符串轉(zhuǎn)換成一個(gè)數(shù)值,A為被轉(zhuǎn)換的字符串;TO_DATE(A)函數(shù)說明TO_DATE函數(shù)將字符串轉(zhuǎn)化成日期型,A為被轉(zhuǎn)換的字符串;ADD_FIELD(A,B)函數(shù)說明根據(jù)字段缺省的規(guī)律,添補(bǔ)數(shù)據(jù)元素,A為需要添補(bǔ)的數(shù)據(jù)元素,B為可選擇的規(guī)律;(4)數(shù)據(jù)庫函數(shù)CREATE_VIEW()函數(shù)說明對(duì)于數(shù)據(jù)元素存儲(chǔ)在不同數(shù)據(jù)表中的情況,根據(jù)關(guān)聯(lián)關(guān)系,拼成視圖,選取所需的數(shù)據(jù)元素;SUM(A)函數(shù)說明SUM函數(shù)返回一列中所有數(shù)值之和,A為列的名稱;AVG(A)函數(shù)說明AVG函數(shù)計(jì)算一列的平均值,A為列的名稱;SYSDATE()函數(shù)說明返回系統(tǒng)的日期時(shí)間;2)根據(jù)關(guān)系數(shù)據(jù)模式110與XML模型105,建立XML模式120,即XMLSchema;3)根據(jù)關(guān)系數(shù)據(jù)庫模式110與XML模式120,從映射模型115的映射函數(shù)庫中選取基本的映射函數(shù),組合成適應(yīng)具體信息系統(tǒng)數(shù)據(jù)交換的映射函數(shù)向量F(X),建立關(guān)系數(shù)據(jù)模式110與XML模式120之間的映射模式140;4)建立與關(guān)系數(shù)據(jù)庫125的連接;5)觸發(fā)器145觸發(fā)數(shù)據(jù)交換引擎130進(jìn)行數(shù)據(jù)交換,若采用自動(dòng)控制方式,則需預(yù)先設(shè)置觸發(fā)器145的觸發(fā)機(jī)制及其任務(wù)與屬性;自動(dòng)控制數(shù)據(jù)交換的工作流程為①當(dāng)某一事件或某一時(shí)刻到達(dá)時(shí),觸發(fā)器145觸發(fā)數(shù)據(jù)交換引擎130,②數(shù)據(jù)交換引擎130讀取觸發(fā)任務(wù)與屬性,并依此讀取相應(yīng)的映射模式140,③數(shù)據(jù)交換引擎130執(zhí)行數(shù)據(jù)交換工作,該步工作根據(jù)任務(wù)類型的不同執(zhí)行不同的工作流程;數(shù)據(jù)交換任務(wù)分為兩種類型接收和發(fā)布;當(dāng)任務(wù)為接收數(shù)據(jù)時(shí),其執(zhí)行流程為①連接目標(biāo)數(shù)據(jù)庫,讀入共享區(qū)域的XML文件,②將XML文件135的數(shù)據(jù)依據(jù)映射模式140轉(zhuǎn)換成目標(biāo)數(shù)據(jù)模式,③將數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫;當(dāng)工作為發(fā)布數(shù)據(jù)時(shí),其工作流程為①根據(jù)任務(wù)屬性,連接源數(shù)據(jù)庫,讀入數(shù)據(jù)過濾條件,對(duì)數(shù)據(jù)進(jìn)行查詢過濾,讀取將要發(fā)布的數(shù)據(jù),②根據(jù)映射模式140,將數(shù)據(jù)轉(zhuǎn)換成XML模式120定義的數(shù)據(jù)形式,③將數(shù)據(jù)以XML文件135的形式發(fā)布到共享區(qū)域,④修改數(shù)據(jù)過濾條件。
圖1中所示的各模塊的具體含義如下100關(guān)系數(shù)據(jù)模型,即R={r1,r2,……,r3},信息系統(tǒng)普遍采用的數(shù)據(jù)模型;105XML模型,即XML的國際標(biāo)準(zhǔn)規(guī)范;115映射模型,表示110與105之間的映射關(guān)系,如一對(duì)一,一對(duì)多,多對(duì)一等,并包括基本的映射函數(shù);110關(guān)系數(shù)據(jù)模式,即110的實(shí)例,包括需要進(jìn)行數(shù)據(jù)交換的源數(shù)據(jù)庫的模式與目標(biāo)數(shù)據(jù)庫的模式;120XML模式,即105的實(shí)例,包括XML的名稱、結(jié)構(gòu)、元素、數(shù)據(jù)類型、屬性;140映射模式,即115的實(shí)例,包括需要進(jìn)行數(shù)據(jù)交換的關(guān)系數(shù)據(jù)庫的表、視圖與XML Schema的詳細(xì)對(duì)應(yīng)關(guān)系,;125關(guān)系數(shù)據(jù)庫,包括需要進(jìn)行關(guān)系數(shù)據(jù)庫的表、視圖;135XML文件,存儲(chǔ)XML Schema定義的模式的數(shù)據(jù)文件;130數(shù)據(jù)交換引擎,負(fù)責(zé)數(shù)據(jù)交換工作的執(zhí)行;145觸發(fā)器,分為事件觸發(fā)器和時(shí)間觸發(fā)器,當(dāng)某一事件發(fā)生或某一時(shí)刻到達(dá)時(shí),觸發(fā)130的啟動(dòng);圖1中的關(guān)系數(shù)據(jù)庫模型100為信息系統(tǒng)的通用的數(shù)據(jù)模型,XML模型105為W3C組織制定的網(wǎng)上交換數(shù)據(jù)的國際標(biāo)準(zhǔn),關(guān)系數(shù)據(jù)庫模式110為需要進(jìn)行數(shù)據(jù)交換的具體的關(guān)系數(shù)據(jù)庫模型,以上3模塊是已經(jīng)存在的,只有對(duì)其進(jìn)行分析清楚后,才能創(chuàng)建通用的映射模型115,并根據(jù)關(guān)系數(shù)據(jù)模式110與XML模式120,從映射模型中選取基本的映射函數(shù),構(gòu)建映射模式140。XML模式120為將關(guān)系數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)化為XML數(shù)據(jù)的具體的XML模型105,用來描述和約束存儲(chǔ)數(shù)據(jù)的XML文件,采用XML Schema定義XML模式120,根據(jù)關(guān)系數(shù)據(jù)庫125的模式與需要交換的數(shù)據(jù),創(chuàng)建XML Schema。關(guān)系數(shù)據(jù)庫為需要交換數(shù)據(jù)的表或者視圖。數(shù)據(jù)交換引擎執(zhí)行數(shù)據(jù)交換任務(wù),包括將關(guān)系數(shù)據(jù)庫125的數(shù)據(jù)轉(zhuǎn)換為XML數(shù)據(jù)與將XML數(shù)據(jù)轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫125的數(shù)據(jù)。數(shù)據(jù)觸發(fā)器采用事件觸發(fā)與時(shí)間觸發(fā)兩種觸發(fā)機(jī)制,控制數(shù)據(jù)交換引擎自動(dòng)執(zhí)行數(shù)據(jù)交換工作流程。
數(shù)據(jù)交換的結(jié)構(gòu)框架圖如圖2,其對(duì)原理1進(jìn)行了補(bǔ)充說明圖2中的數(shù)據(jù)庫i(i從1到n)即為圖1中的125,數(shù)據(jù)庫分別為各自的信息系統(tǒng)所有,每個(gè)關(guān)系數(shù)據(jù)庫既可作為源數(shù)據(jù)庫發(fā)布數(shù)據(jù),也可以作為目標(biāo)數(shù)據(jù)庫接收數(shù)據(jù);圖2中的XML文件即為圖1中的135,其保存在設(shè)置的共享區(qū)域;圖2中的數(shù)據(jù)交換引擎、XML Schema、觸發(fā)器分別為圖1中的130、120、145;internet/intranet作為數(shù)據(jù)交換的通道,將數(shù)據(jù)交換引擎與數(shù)據(jù)庫、共享區(qū)域中的XML文件連接起來,發(fā)布和接受數(shù)據(jù);圖2中的數(shù)據(jù)交換引擎通過讀取數(shù)據(jù)過濾條件,對(duì)源數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢過濾,將需要交換的數(shù)據(jù)導(dǎo)出發(fā)布,并且對(duì)數(shù)據(jù)過濾條件進(jìn)行動(dòng)態(tài)修改。因?yàn)樾畔⑾到y(tǒng)的數(shù)據(jù)在不斷的增加,所以需要周期性的進(jìn)行數(shù)據(jù)交換,將新增加的數(shù)據(jù)發(fā)布與接收。因此,每次導(dǎo)出發(fā)布數(shù)據(jù)后,需要將數(shù)據(jù)過濾條件進(jìn)行修改,保證下次導(dǎo)出數(shù)據(jù)前進(jìn)行查詢過濾時(shí)能夠?qū)⒁呀?jīng)交換的數(shù)據(jù)過濾掉。觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎執(zhí)行修改數(shù)據(jù)過濾條件。數(shù)據(jù)交換引擎通過internet/intranet連接源數(shù)據(jù)庫,導(dǎo)出數(shù)據(jù),發(fā)布到共享區(qū)域。XMLSchema定義XML的模式,對(duì)XML文檔的結(jié)構(gòu)、元素(標(biāo)記)、數(shù)據(jù)類型、屬性等進(jìn)行描述與約束。通過數(shù)據(jù)交換引擎導(dǎo)出的數(shù)據(jù)生成XML模式的XML數(shù)據(jù),并發(fā)布到共享區(qū)域。再由數(shù)據(jù)交換引擎,通過internet/intranet數(shù)據(jù)交換的信息通道,讀入共享區(qū)域的XML數(shù)據(jù),導(dǎo)入到目標(biāo)數(shù)據(jù)庫。觸發(fā)器中定義了時(shí)間觸發(fā)與事件觸發(fā)兩種觸發(fā)機(jī)制的基本的觸發(fā)函數(shù),數(shù)據(jù)交換引擎調(diào)用觸發(fā)函數(shù),其按照設(shè)定好的觸發(fā)任務(wù)與屬性執(zhí)行命令。自動(dòng)控制數(shù)據(jù)交換的工作流程為①當(dāng)某一事件或某一時(shí)刻到達(dá)時(shí),觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎,②數(shù)據(jù)交換引起讀取觸發(fā)任務(wù)與屬性,并依此讀取相應(yīng)的映射模式,③數(shù)據(jù)交換引擎執(zhí)行觸發(fā)其任務(wù),該步工作根據(jù)任務(wù)類型的不同執(zhí)行不同的工作流程;數(shù)據(jù)轉(zhuǎn)換任務(wù)分為兩種類型接收和發(fā)布。當(dāng)任務(wù)為接收數(shù)據(jù)時(shí),其執(zhí)行流程為①連接目標(biāo)數(shù)據(jù)庫,讀入共享區(qū)域的XML數(shù)據(jù),②將XML數(shù)據(jù)依據(jù)映射模式140轉(zhuǎn)換成目標(biāo)數(shù)據(jù)模式,③將數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫;當(dāng)工作為發(fā)布數(shù)據(jù)時(shí),其工作流程為①根據(jù)任務(wù)屬性,連接源數(shù)據(jù)庫,讀入數(shù)據(jù)過濾條件,對(duì)數(shù)據(jù)進(jìn)行查詢過濾,讀取將要發(fā)布的數(shù)據(jù),②根據(jù)映射模式,將數(shù)據(jù)轉(zhuǎn)換成XML模式的數(shù)據(jù),③將數(shù)據(jù)以XML文件的形式發(fā)布到共享區(qū)域,④修改數(shù)據(jù)過濾條件。事件觸發(fā)器觸發(fā)數(shù)據(jù)交換過程中各動(dòng)作自動(dòng)順序執(zhí)行,前一動(dòng)作任務(wù)完成后,啟動(dòng)后一動(dòng)作任務(wù)。為了避免交換重復(fù)的數(shù)據(jù),時(shí)間觸發(fā)器周期性的觸發(fā)數(shù)據(jù)交換引擎工作,并改變數(shù)據(jù)過濾條件,作為下一循環(huán)的數(shù)據(jù)交換的查詢過濾條件。數(shù)據(jù)過濾條件動(dòng)態(tài)變化,其變化規(guī)律由觸發(fā)器控制。
如圖3為完整的數(shù)據(jù)交換自動(dòng)控制流程圖,將數(shù)據(jù)發(fā)布與數(shù)據(jù)接收兩種任務(wù)類型結(jié)合成一個(gè)完整的數(shù)據(jù)交換過程,自動(dòng)進(jìn)行周期性的數(shù)據(jù)交換,由觸發(fā)器控制執(zhí)行過程。首先通過internet/intranet信息通道,連接源數(shù)據(jù)庫,讀取數(shù)據(jù)過濾條件,對(duì)數(shù)據(jù)進(jìn)行查詢過濾,將過濾后的數(shù)據(jù)集合,按照XML Schema定義的模式,生成XML文件,保存并發(fā)布到共享區(qū)域,再對(duì)數(shù)據(jù)過濾條件進(jìn)行修改,保證下一周期進(jìn)行數(shù)據(jù)查詢過濾時(shí)將已經(jīng)的交換的數(shù)據(jù)過濾掉,然后斷開此連接,通過internet/intranet連接目標(biāo)數(shù)據(jù)庫,最后從共享區(qū)域中讀入XML文件,接收XML模式的數(shù)據(jù),經(jīng)過映射模式的映射函數(shù),將其轉(zhuǎn)化為關(guān)系數(shù)據(jù)模式的數(shù)據(jù),導(dǎo)入到目標(biāo)數(shù)據(jù)庫。上述工作流程采用事件觸發(fā)方式,前一事件完成后,觸發(fā)下一個(gè)動(dòng)作。觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎改變數(shù)據(jù)過濾條件,新條件作為下一循環(huán)的數(shù)據(jù)交換的查詢過濾條件,數(shù)據(jù)過濾條件動(dòng)態(tài)變化。時(shí)間觸發(fā)器按照設(shè)定的周期,每經(jīng)過周期T,時(shí)間觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎,重新開始循環(huán)執(zhí)行工作流程,將新增加的數(shù)據(jù)導(dǎo)入目標(biāo)數(shù)據(jù)庫。
由于源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫在結(jié)構(gòu)上可能不同,因此映射模型中針對(duì)各種可能存在的問題,定義了通用的基本的映射函數(shù),解決結(jié)構(gòu)相同與結(jié)構(gòu)不同的關(guān)系數(shù)據(jù)模式的數(shù)據(jù)之間的交換問題。在實(shí)際應(yīng)用時(shí),需要先分析關(guān)系數(shù)據(jù)庫的模式,根據(jù)關(guān)系數(shù)據(jù)庫模式與XML模型創(chuàng)建XML模式(XML Schema),根據(jù)關(guān)系數(shù)據(jù)模式與XML Schema,從映射模型中選取基本的映射函數(shù),組合成滿足交換需要交換的數(shù)據(jù)的要求的映射模式。映射模式分為導(dǎo)出映射模式與導(dǎo)入映射模式。
圖4為導(dǎo)出映射圖,對(duì)導(dǎo)出映射模式進(jìn)行了說明。根據(jù)目標(biāo)數(shù)據(jù)庫對(duì)數(shù)據(jù)元素的需求,從源數(shù)據(jù)庫中選取數(shù)據(jù)表及其字段,建立與XML Schema的映射關(guān)系。對(duì)于分布在不同表中的數(shù)據(jù)元素,可以通過調(diào)用映射函數(shù)庫中的映射函數(shù),建立數(shù)據(jù)庫表與XML Schema的映射函數(shù)向量F(x)。例如,對(duì)于數(shù)據(jù)記錄(行)需要合并、分拆的情況,選擇數(shù)據(jù)庫函數(shù)AVG(A)、SUM(A)組合成新函數(shù),將多行數(shù)據(jù)記錄合并成一行數(shù)據(jù)記錄,對(duì)應(yīng)該求平均值的數(shù)據(jù)元素,用平均函數(shù)AVG(A),對(duì)應(yīng)該求和的數(shù)據(jù)元素,用SUM(A)函數(shù)將數(shù)值加起來。
圖5為導(dǎo)入映射圖,對(duì)導(dǎo)入映射模式進(jìn)行了說明。由于信息系統(tǒng)之間結(jié)構(gòu)不同,數(shù)據(jù)元素不僅存在一對(duì)一的直接映射,可能存在一對(duì)多,多對(duì)一的現(xiàn)象,還有可能需要替換、轉(zhuǎn)化、添補(bǔ)數(shù)據(jù)等情況。因此,需要從映射模型的映射函數(shù)庫中選取基本的映射函數(shù),組合成滿足目標(biāo)數(shù)據(jù)庫需求的映射函數(shù)向量F’(x)。例如,數(shù)學(xué)函數(shù)中的算術(shù)操作符加+、字符串函數(shù)REPLACE(A,B,C)、TO_DATE(A)組合起來,分別將設(shè)定的數(shù)據(jù)元素(字段)相加,將需要替換的數(shù)據(jù)元素替換掉,把需要轉(zhuǎn)化為字符串類型的數(shù)據(jù)元素轉(zhuǎn)化為日期型數(shù)據(jù)。
圖6為分拆與合并示意圖,包括數(shù)據(jù)記錄(行)的分拆、合并與數(shù)據(jù)元素(列)的分拆與合并,對(duì)圖4導(dǎo)出映射圖,圖5導(dǎo)入映射圖,進(jìn)行補(bǔ)充說明。對(duì)于數(shù)據(jù)元素(字段)一對(duì)多,多對(duì)一的情況,調(diào)用映射函數(shù)庫中映射函數(shù),實(shí)現(xiàn)對(duì)數(shù)據(jù)元素進(jìn)行列分拆、列合并。對(duì)于數(shù)據(jù)記錄(行)需要合并或分拆的情況,調(diào)用映射函數(shù)庫中映射函數(shù),組合成映射函數(shù)向量,實(shí)現(xiàn)對(duì)數(shù)據(jù)記錄的行分拆、行合并。
圖7為完整的系統(tǒng)工作流程圖,對(duì)操作過程進(jìn)行了補(bǔ)充說明。登錄數(shù)據(jù)交換平臺(tái)后,根據(jù)分析的信息系統(tǒng)的關(guān)系數(shù)據(jù)庫模式與XML模型,創(chuàng)建XML的模式(XML Schema),描述與約束XML,定義與關(guān)系數(shù)據(jù)庫相應(yīng)的XML文檔的結(jié)構(gòu)、元素(標(biāo)記)、數(shù)據(jù)類型、屬性等信息。接著分別建立XML Schema元素與源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫中的表或者視圖之間的映射關(guān)系。然后進(jìn)行多項(xiàng)設(shè)置設(shè)置源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫的連接參數(shù);設(shè)置XML文件的名稱與保存路徑(共享區(qū)域);設(shè)置初始的數(shù)據(jù)查詢過濾條件;從數(shù)據(jù)映射模型中選取基本的映射函數(shù),組合成滿足需求的數(shù)據(jù)映射函數(shù)向量;設(shè)置觸發(fā)器的觸發(fā)任務(wù)與屬性。設(shè)置完成后,點(diǎn)擊自動(dòng)控制開始按鈕,數(shù)據(jù)交換引擎按照?qǐng)D3所示的工作流程執(zhí)行數(shù)據(jù)交換,每過循環(huán)周期T,重新啟動(dòng)數(shù)據(jù)交換引擎,執(zhí)行數(shù)據(jù)交換工作流程循環(huán),交換新增加的數(shù)據(jù)。
權(quán)利要求
1.一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法,其特征在于該方法步驟如下1)根據(jù)關(guān)系數(shù)據(jù)模型(100)與XML模型(105),創(chuàng)建關(guān)系數(shù)據(jù)模型(100)與XML模型(105)之間的映射機(jī)制,建立關(guān)系數(shù)據(jù)模型(100)與XML模型(105)之間的映射模型(115),該映射模型(115)包括實(shí)現(xiàn)數(shù)據(jù)之間映射關(guān)系的映射函數(shù)庫;2)根據(jù)關(guān)系數(shù)據(jù)模式(110)與XML模型(105),建立XML模式(120),即XML Schema;3)根據(jù)關(guān)系數(shù)據(jù)庫模式(110)與XML模式(120),從映射模型(115)的映射函數(shù)庫中選取基本的映射函數(shù),組合成適應(yīng)具體信息系統(tǒng)數(shù)據(jù)交換的映射函數(shù)向量F(X),建立關(guān)系數(shù)據(jù)模式(110)與XML模式(120)之間的映射模式(140);4)建立與關(guān)系數(shù)據(jù)庫(125)的連接;5)觸發(fā)器(145)觸發(fā)數(shù)據(jù)交換引擎(130)進(jìn)行數(shù)據(jù)交換,若采用自動(dòng)控制方式,則需預(yù)先設(shè)置觸發(fā)器(145)的觸發(fā)機(jī)制及其任務(wù)與屬性;自動(dòng)控制數(shù)據(jù)交換的工作流程為①當(dāng)某一事件或某一時(shí)刻到達(dá)時(shí),觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎,②數(shù)據(jù)交換引擎讀取觸發(fā)任務(wù)與屬性,并依此讀取相應(yīng)的映射模式(140),③數(shù)據(jù)交換引擎執(zhí)行數(shù)據(jù)交換工作,該步工作根據(jù)任務(wù)類型的不同執(zhí)行不同的工作流程;數(shù)據(jù)交換任務(wù)分為兩種類型接收和發(fā)布;當(dāng)任務(wù)為接收數(shù)據(jù)時(shí),其執(zhí)行流程為①連接目標(biāo)數(shù)據(jù)庫,讀入共享區(qū)域的XML文件(135),②將XML文件(135)的數(shù)據(jù)依據(jù)映射模式(140)轉(zhuǎn)換成目標(biāo)數(shù)據(jù)模式,③將數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)庫;當(dāng)工作為發(fā)布數(shù)據(jù)時(shí),其工作流程為①根據(jù)任務(wù)與屬性,連接源數(shù)據(jù)庫,讀入數(shù)據(jù)過濾條件,對(duì)數(shù)據(jù)進(jìn)行查詢過濾,讀取將要發(fā)布的數(shù)據(jù),②根據(jù)映射模式(140),將數(shù)據(jù)轉(zhuǎn)換成XML模式(120)定義的數(shù)據(jù)形式,③將數(shù)據(jù)以XML文件(135)的形式發(fā)布到共享區(qū)域,④修改數(shù)據(jù)過濾條件。
2.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法,其特征在于XML模式的數(shù)據(jù)作為數(shù)據(jù)交換的中間媒介,internet/intranet作為數(shù)據(jù)交換的通道。
3.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法,其特征在于所述的映射函數(shù)庫包括數(shù)學(xué)函數(shù)、字符串函數(shù)、轉(zhuǎn)換函數(shù)、數(shù)據(jù)庫函數(shù),其作用是將源數(shù)據(jù)轉(zhuǎn)化為目標(biāo)數(shù)據(jù);數(shù)學(xué)函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)元素進(jìn)行數(shù)學(xué)運(yùn)算操作,字符串函數(shù)實(shí)現(xiàn)對(duì)字符串進(jìn)行操作,轉(zhuǎn)換函數(shù)實(shí)現(xiàn)不同類型數(shù)據(jù)之間的轉(zhuǎn)換,數(shù)據(jù)庫函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行操作;其中(1)數(shù)學(xué)函數(shù)算術(shù)操作符有加+,減-,乘×,除÷;MOD(A,B),計(jì)算將A操作數(shù)除以B操作數(shù)后所得的余數(shù);ABS(A),ABS函數(shù)返回指定的數(shù)值的絕對(duì)值;SIGN(A),當(dāng)A小于0時(shí)返回-1,A為0時(shí)返回0,A大于0時(shí)返回1;(2)字符串函數(shù)CHR(A)函數(shù)說明CHR函數(shù)返回字符的數(shù)值等于A的字符,A為設(shè)定的數(shù)值;CONCAT(A,B)函數(shù)說明CONCAT函數(shù)將A和B兩個(gè)字符串連接起來,A、B代表2個(gè)字符串;LPAD(A,B,C)函數(shù)說明字符串左邊填充字符,A是被操作的字符串,B是要填充的字符的總個(gè)數(shù),C是可選的,它是要填充的字符;RPAD(A,B,C)函數(shù)說明字符串右邊填充字符,A是被操作的字符串,B是要填充的字符的總個(gè)數(shù),C是可選的,它是要填充的字符;LTRIM(A,B)函數(shù)說明字符串左邊截去相關(guān)的字符,A是被操作的字符串,B是既可以是字符,也可以是字符串或缺省;RTRIM(A,B)函數(shù)說明字符串右邊截去相關(guān)的字符,A是被操作的字符串,B是既可以是字符,也可以是字符串或缺?。籗UBSTR(A,B,C)函數(shù)說明從目標(biāo)字符串中取出一個(gè)子串.A是目標(biāo)字符串,B是被輸出的子串的第一個(gè)字符在目標(biāo)串中的位置,C是被輸出的子串的字符數(shù)目;REPLACE(A,B,C)函數(shù)說明替換函數(shù)中A是被查找的字符串,B是字符串中的查找鍵,C是可選的,是替換字符串;(3)轉(zhuǎn)換函數(shù)TO_CHAR(A)函數(shù)說明TO_CHAR函數(shù)將不同類型的數(shù)據(jù)轉(zhuǎn)換成字符串類型,A為被轉(zhuǎn)換任意類型數(shù)據(jù);TO_NUMBER(A)函數(shù)說明TO_NUMBER函數(shù)將字符串轉(zhuǎn)換成一個(gè)數(shù)值,A為被轉(zhuǎn)換的字符串;TO_DATE(A)函數(shù)說明TO_DATE函數(shù)將字符串轉(zhuǎn)化成日期型,A為被轉(zhuǎn)換的字符串;ADD_FIELD(A,B)函數(shù)說明根據(jù)字段缺省的規(guī)律,添補(bǔ)數(shù)據(jù)元素,A為需要添補(bǔ)的數(shù)據(jù)元素,B為可選擇的規(guī)律;(4)數(shù)據(jù)庫函數(shù)CREATE_VIEW函數(shù)說明對(duì)于數(shù)據(jù)元素存儲(chǔ)在不同數(shù)據(jù)表中的情況,根據(jù)關(guān)聯(lián)關(guān)系,拼成視圖,選取所需的數(shù)據(jù)元素;SUM(A)函數(shù)說明SUM函數(shù)返回一列中所有數(shù)值之和,A為列的名稱;AVG(A)函數(shù)說明AVG函數(shù)計(jì)算一列的平均值,A為列的名稱;SYSDATE函數(shù)說明返回系統(tǒng)的日期時(shí)間。
4.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法,其特征在于所述的觸發(fā)器(145),采用事件觸發(fā)與時(shí)間觸發(fā)兩種觸發(fā)機(jī)制,事件觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎按照觸發(fā)任務(wù)與屬性順序執(zhí)行工作流程,時(shí)間觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎,每經(jīng)過設(shè)定的時(shí)間周期T后,重新啟動(dòng)數(shù)據(jù)交換引擎,工作流程進(jìn)入下一個(gè)循環(huán),周期性的交換新增加的數(shù)據(jù)。
全文摘要
本發(fā)明提供了一種實(shí)現(xiàn)信息系統(tǒng)數(shù)據(jù)自動(dòng)交換的方法。在分析關(guān)系數(shù)據(jù)模型與XML模型的基礎(chǔ)上,建立兩者之間的映射模型,定義基本的映射函數(shù),建立映射函數(shù)庫。在分析關(guān)系數(shù)據(jù)庫模式與數(shù)據(jù)交換需求的基礎(chǔ)上,根據(jù)XML(可擴(kuò)展標(biāo)記語言)模型,定義XML模式(XML Schema),并根據(jù)映射模型,確立關(guān)系數(shù)據(jù)模式與XML模式之間的映射關(guān)系,從映射函數(shù)庫中選取基本的映射函數(shù),以此建立映射模式。當(dāng)某一事件發(fā)生或某一特定時(shí)刻到達(dá)時(shí),觸發(fā)器觸發(fā)數(shù)據(jù)交換引擎。數(shù)據(jù)交換引擎首先讀取觸發(fā)器任務(wù)與屬性,然后根據(jù)任務(wù)與屬性讀取相應(yīng)的映射模式,最后引擎執(zhí)行特定的數(shù)據(jù)交換工作,將源數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)交換的目的。
文檔編號(hào)G06F17/30GK1687927SQ200510049748
公開日2005年10月26日 申請(qǐng)日期2005年5月8日 優(yōu)先權(quán)日2005年5月8日
發(fā)明者唐任仲, 葉范波, 賈東澆 申請(qǐng)人:浙江大學(xué)