本發(fā)明涉及計算機(jī)數(shù)據(jù)處理
技術(shù)領(lǐng)域:
,具體地說是一種可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法。
背景技術(shù):
:隨著社會信息化的不斷發(fā)展,大型企業(yè)越來越重視企業(yè)的信息化建設(shè)。企業(yè)信息化建設(shè)發(fā)展到現(xiàn)在,取得了成果,積累了經(jīng)驗(yàn)。但隨著各業(yè)務(wù)系統(tǒng)之間不同的信息化建設(shè)周期、差異的系統(tǒng)規(guī)劃,并伴隨著應(yīng)用的擴(kuò)展和不斷深入,問題也逐漸顯現(xiàn)出來,應(yīng)用系統(tǒng)之間相互獨(dú)立,信息資源條塊分割、信息難以共享、難以流轉(zhuǎn)的局面。為了提高工作效率,減少財務(wù)工作量,同時打破各個系統(tǒng)之間的信息孤島,實(shí)現(xiàn)數(shù)據(jù)信息共用共享,各個業(yè)務(wù)系統(tǒng)之間出現(xiàn)越來越多的接口,存在各種各樣的數(shù)據(jù)交換。但是用戶的業(yè)務(wù)需求在不斷的變化,各業(yè)務(wù)系統(tǒng)也在不定期的進(jìn)行升級,為了滿足客戶和商業(yè)伙伴不斷增加的對實(shí)時信息的需要,企業(yè)往往需要在不同系統(tǒng)之間進(jìn)行數(shù)據(jù)的交換來提高數(shù)據(jù)利用率和數(shù)據(jù)的可靠性,對接口能夠及時滿足用戶業(yè)務(wù)需求造成了相當(dāng)大的挑戰(zhàn)。數(shù)據(jù)交換是各種計算機(jī)網(wǎng)絡(luò)應(yīng)用的重要組成部分,是應(yīng)用系統(tǒng)之間交流互換信息的功能支撐層次。企業(yè)內(nèi)部、企業(yè)之間的聯(lián)系日趨緊密,經(jīng)常需要在網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)的交換與互訪。如何能使不同地域、不同企業(yè)、不同類型的數(shù)據(jù)可以進(jìn)行快速、有效、靈活、高效的互訪,是目前IT技術(shù)里的重要研究問題之一。傳統(tǒng)的在系統(tǒng)之間實(shí)現(xiàn)數(shù)據(jù)同步的方法有中間庫、web服務(wù),無論是中間庫還是web服務(wù),接口數(shù)據(jù)規(guī)則是固定的,無法及時適應(yīng)用戶業(yè)務(wù)需求改變而帶來的接口實(shí)時信息量的改變,因此用戶業(yè)務(wù)需求的不斷發(fā)展對接口的數(shù)據(jù)同步提出了更高,更嚴(yán)格的需求。由于用戶業(yè)務(wù)需求不斷變化,數(shù)據(jù)規(guī)則也隨之變化,造成接口需要傳遞的數(shù)據(jù)結(jié)構(gòu)也要適應(yīng)其變化,目標(biāo)系統(tǒng)數(shù)據(jù)表也要適應(yīng)變化而不斷更新結(jié)構(gòu)。高頻度的數(shù)據(jù)結(jié)構(gòu)變化造成在數(shù)據(jù)同步的過程中每次的變化都需要人為干預(yù),或重新編碼或修改目標(biāo)庫數(shù)據(jù)結(jié)構(gòu),造成大量重復(fù)、低效率的工作?;诖?,現(xiàn)提供一種可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法,來解決業(yè)務(wù)需求的發(fā)展變動導(dǎo)致接口數(shù)據(jù)規(guī)則改變無法及時對接的問題。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法。一種可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法,包括數(shù)據(jù)源系統(tǒng)和目標(biāo)系統(tǒng),其實(shí)現(xiàn)過程為:1)數(shù)據(jù)源系統(tǒng)將xml數(shù)據(jù)信息發(fā)送到目標(biāo)系統(tǒng)接口;2)該目標(biāo)系統(tǒng)的接口程序判斷接收到的最新數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)有無變化:若存在變化則更新數(shù)據(jù)結(jié)構(gòu)、映射關(guān)系,同時完成數(shù)據(jù)存儲;若無變化則根據(jù)歷史映射關(guān)系直接完成數(shù)據(jù)存儲。上述步驟1)的具體實(shí)現(xiàn)過程為:A)首先在數(shù)據(jù)目標(biāo)系統(tǒng)的數(shù)據(jù)庫中初始化集成數(shù)據(jù)表結(jié)構(gòu);B)初始化集成數(shù)據(jù)字段映射關(guān)系,配置數(shù)據(jù)源系統(tǒng)數(shù)據(jù)字段與目標(biāo)系統(tǒng)數(shù)據(jù)字段的映射關(guān)系;C)數(shù)據(jù)源系統(tǒng)調(diào)用目標(biāo)系統(tǒng)提供的接口,將接口xml數(shù)據(jù)發(fā)送給目標(biāo)系統(tǒng)。在上述步驟2)中,當(dāng)數(shù)據(jù)源系統(tǒng)推送數(shù)據(jù)時,創(chuàng)建訪問控制數(shù)據(jù)源系統(tǒng)數(shù)據(jù)庫;或者在數(shù)據(jù)目標(biāo)系統(tǒng)存儲數(shù)據(jù)時完成初始化,創(chuàng)建訪問控制數(shù)據(jù)目標(biāo)系統(tǒng)數(shù)據(jù)庫;數(shù)據(jù)源系統(tǒng)和數(shù)據(jù)目標(biāo)系統(tǒng)創(chuàng)建訪問控制數(shù)據(jù)庫時,輸入管理員編號、密碼,將該用戶作為數(shù)據(jù)庫的登錄用戶,并將該用戶作為訪問控制數(shù)據(jù)庫的數(shù)據(jù)庫屬主。上述步驟2)的具體實(shí)現(xiàn)過程為:目標(biāo)系統(tǒng)接收到數(shù)據(jù)源系統(tǒng)發(fā)送過來的xml數(shù)據(jù)后,根據(jù)已經(jīng)存儲的集成數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)進(jìn)行差異對比,若發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)差異,更新已經(jīng)存儲的集成數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù),同時更新目標(biāo)數(shù)據(jù)庫中的目標(biāo)數(shù)據(jù)表結(jié)構(gòu),同時根據(jù)已經(jīng)更新后的集成數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)更新已經(jīng)存儲的數(shù)據(jù)字段映射關(guān)系,若未發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)發(fā)生變化,進(jìn)行下一步;通過更新后的數(shù)據(jù)字段映射關(guān)系完成數(shù)據(jù)的存儲。數(shù)據(jù)目標(biāo)系統(tǒng)web服務(wù)進(jìn)行初始化時獨(dú)立訪問控制數(shù)據(jù)目標(biāo)系統(tǒng)數(shù)據(jù)庫,數(shù)據(jù)源系統(tǒng)與數(shù)據(jù)目標(biāo)系統(tǒng)兩者之間通過web服務(wù)進(jìn)行數(shù)據(jù)的同步。本發(fā)明的一種可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法和現(xiàn)有技術(shù)相比,具有以下有益效果:本發(fā)明的一種可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法,解決了業(yè)務(wù)需求的發(fā)展變動導(dǎo)致接口數(shù)據(jù)規(guī)則改變無法及時對接的問題,減少了同一業(yè)務(wù)系統(tǒng)的不同xml結(jié)構(gòu)的差異而進(jìn)行對應(yīng)的程序開發(fā)問題,實(shí)現(xiàn)了對不同可變xml數(shù)據(jù)結(jié)構(gòu)的自動存儲,大量減少了程序的重復(fù)開發(fā),降低了開發(fā)成本,提升了開發(fā)效率,雙方系統(tǒng)均無法訪問對方數(shù)據(jù)庫,系統(tǒng)更加安全;大大加快了開發(fā)效率,使開發(fā)人員的編碼工作量大大減少;能夠在連接有效時上傳數(shù)據(jù),這就可以提高用戶的生產(chǎn)率和工作效率,并且提高應(yīng)用程序的可用性;數(shù)據(jù)結(jié)構(gòu)可變,接口靈活易用;數(shù)據(jù)源系統(tǒng)請求目標(biāo)系統(tǒng)接口后,數(shù)據(jù)目標(biāo)系統(tǒng)能夠?qū)崟r完成數(shù)據(jù)結(jié)構(gòu)的更新以及對照關(guān)系的更新,靈活方便;使用人員可以方便的通過界面與權(quán)限的嚴(yán)密綁定,在給使用人員提供最大便利性的情況下,仍然可以保證信息的同步更新;數(shù)據(jù)目標(biāo)方系統(tǒng)加載數(shù)據(jù)后完成數(shù)據(jù)的自動同步更新,實(shí)用性強(qiáng),適用范圍廣泛,具有很好的推廣應(yīng)用價值。附圖說明附圖1是本發(fā)明方法的數(shù)據(jù)更新流程圖。附圖2是本發(fā)明實(shí)施例中各表的關(guān)系圖。具體實(shí)施方式下面結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步說明。本發(fā)明提供一種可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法,本發(fā)明的可變數(shù)據(jù)結(jié)構(gòu)自動同步匹配的實(shí)現(xiàn)方法通過保留接口數(shù)據(jù)xml的數(shù)據(jù)結(jié)構(gòu),接口數(shù)據(jù)中字段與目標(biāo)系統(tǒng)目標(biāo)表字段的映射關(guān)系,在每次數(shù)據(jù)源系統(tǒng)將接口數(shù)據(jù)xml傳送給數(shù)據(jù)目標(biāo)系統(tǒng)web服務(wù),數(shù)據(jù)目標(biāo)系統(tǒng)通過差異比對xml數(shù)據(jù)結(jié)構(gòu)規(guī)則,根據(jù)數(shù)據(jù)結(jié)構(gòu)的變化實(shí)時更新數(shù)據(jù)結(jié)構(gòu)表以及數(shù)據(jù)字段映射關(guān)系表,然后通過最新的數(shù)據(jù)字段映射表數(shù)據(jù)完成數(shù)據(jù)的存儲,最終實(shí)現(xiàn)數(shù)據(jù)的自動存儲。如附圖1所示,本發(fā)明方法中,數(shù)據(jù)源系統(tǒng)從將數(shù)據(jù)xml發(fā)送到目標(biāo)系統(tǒng)接口,接口程序判斷最新數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)有無變化,若存在變化則更新數(shù)據(jù)結(jié)構(gòu)、映射關(guān)系,同時完數(shù)據(jù)存儲,若無變化則根據(jù)歷史映射關(guān)系直接完成數(shù)據(jù)存儲。該方法的實(shí)現(xiàn)基于數(shù)據(jù)源系統(tǒng)和目標(biāo)系統(tǒng),其實(shí)現(xiàn)過程為:A)在數(shù)據(jù)目標(biāo)系統(tǒng)數(shù)據(jù)庫中初始化集成數(shù)據(jù)表結(jié)構(gòu);B)初始化集成數(shù)據(jù)字段映射關(guān)系,配置數(shù)據(jù)源系統(tǒng)數(shù)據(jù)字段與目標(biāo)系統(tǒng)數(shù)據(jù)字段的映射關(guān)系;C)數(shù)據(jù)源系統(tǒng)調(diào)用目標(biāo)系統(tǒng)提供的接口,將接口xml數(shù)據(jù)信息發(fā)送給目標(biāo)系統(tǒng);D)目標(biāo)系統(tǒng)接收到數(shù)據(jù)源系統(tǒng)發(fā)送過來的xml數(shù)據(jù)后,根據(jù)已經(jīng)存儲的集成數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)進(jìn)行差異對比,若發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)差異,更新已經(jīng)存儲的集成數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù),同時更新目標(biāo)數(shù)據(jù)庫中的目標(biāo)表結(jié)構(gòu),并同時根據(jù)已經(jīng)更新后的集成數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)更新已經(jīng)存儲的數(shù)據(jù)字段映射關(guān)系,若未發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)發(fā)生變化,進(jìn)行下一步;E)通過更新后的數(shù)據(jù)字段映射關(guān)系完成數(shù)據(jù)的存儲;F)數(shù)據(jù)目標(biāo)系統(tǒng)web服務(wù)進(jìn)行初始化時獨(dú)立的訪問控制數(shù)據(jù)目標(biāo)系統(tǒng)數(shù)據(jù)庫,數(shù)據(jù)源系統(tǒng)與數(shù)據(jù)目標(biāo)系統(tǒng)兩者之間通過web服務(wù)進(jìn)行數(shù)據(jù)的同步。上述步驟D中還包括以下步驟:D1)在數(shù)據(jù)源系統(tǒng)推送數(shù)據(jù)時,創(chuàng)建訪問控制數(shù)據(jù)源系統(tǒng)數(shù)據(jù)庫;或者在數(shù)據(jù)目標(biāo)系統(tǒng)存儲數(shù)據(jù)時需要完成初始化,創(chuàng)建訪問控制數(shù)據(jù)目標(biāo)系統(tǒng)數(shù)據(jù)庫;D2)數(shù)據(jù)源系統(tǒng)和數(shù)據(jù)目標(biāo)系統(tǒng)創(chuàng)建訪問控制數(shù)據(jù)庫時,要求輸入管理員編號、密碼,將該用戶作為數(shù)據(jù)庫的登錄用戶,并將該用戶作為訪問控制數(shù)據(jù)庫的數(shù)據(jù)庫屬主。在本發(fā)明中,數(shù)據(jù)源系統(tǒng)與數(shù)據(jù)目標(biāo)系統(tǒng)對雙方的數(shù)據(jù)庫互不訪問,通過數(shù)據(jù)目標(biāo)系統(tǒng)的web服務(wù)完成數(shù)據(jù)的通信;數(shù)據(jù)結(jié)構(gòu)可變,數(shù)據(jù)存儲實(shí)現(xiàn)自動化。所述數(shù)據(jù)庫可以是現(xiàn)有技術(shù)中任意主流數(shù)據(jù)庫。數(shù)據(jù)庫可以進(jìn)行管理員密碼加密,以保證其他用戶是無法直接進(jìn)入數(shù)據(jù)庫進(jìn)行訪問,保證本地數(shù)據(jù)的安全。為了進(jìn)一步方便數(shù)據(jù)更新,目標(biāo)系統(tǒng)初始完畢后,數(shù)據(jù)源系統(tǒng)即可訪問目標(biāo)系統(tǒng)接口進(jìn)行數(shù)據(jù)接口的同步。數(shù)據(jù)結(jié)構(gòu)表、數(shù)據(jù)字段對照表數(shù)據(jù)并不清空。下面就具體的實(shí)施方式做一個詳細(xì)說明。1、在數(shù)據(jù)目標(biāo)系統(tǒng)初始數(shù)據(jù)結(jié)構(gòu);2、在目標(biāo)數(shù)據(jù)庫中初始對照關(guān)系表以及目標(biāo)數(shù)據(jù)表其中在數(shù)據(jù)庫中至少存在下面幾個表結(jié)構(gòu)以及每個表中主要的字段:系統(tǒng)標(biāo)識表(YWSYSZD):用于標(biāo)識每個數(shù)據(jù)來源系統(tǒng)字段編號字段名稱字段類型YWIDIDVARCHAR(36)YWCODE系統(tǒng)編號VARCHAR(20)YWNAME系統(tǒng)名稱VARCHAR(100)接口數(shù)據(jù)結(jié)構(gòu)表(DATASTRUCTURE):用于存儲接口數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)字段編號字段名稱字段類型DATAIDIDVARCHAR(36)DATASYSCODE數(shù)據(jù)來源系統(tǒng)編號VARCHAR(20)DATATABLE數(shù)據(jù)來源表名VARCHAR(40)DATACOLUMN數(shù)據(jù)來源字段VARCHAR(100)DATACOLTYPE數(shù)據(jù)來源字段類型VARCHAR(40)接口數(shù)據(jù)對照組(DATAGROUP):用于存儲接口數(shù)據(jù)分組字段編號字段名稱字段類型GROUPIDIDVARCHAR(36)GROUPNAME數(shù)據(jù)來源系統(tǒng)編號VARCHAR(20)GROUPTABLE數(shù)據(jù)來源表名VARCHAR(40)GROUPTTABLE數(shù)據(jù)目標(biāo)表名VARCHAR(100)數(shù)據(jù)字段對照表(DATAMAPPING),DM_ID字段自動生成字段編號字段名稱字段類型DM_IDIDVARCHAR(36)DM_GROUPID數(shù)據(jù)分組標(biāo)識IDVARCHAR(36)DM_SCHUNAME數(shù)據(jù)XML塊名VARCHAR(36)FM_SNODENAME數(shù)據(jù)XML節(jié)點(diǎn)名VARCHAR(36)FM_TTBNAME目標(biāo)數(shù)據(jù)表名VARCHAR(36)FM_TFDNAME目標(biāo)數(shù)據(jù)源字段名VARCHAR(36)上述各表的表關(guān)系如圖2所示:系統(tǒng)標(biāo)識表(YWSYSZD):用于存儲數(shù)據(jù)源系統(tǒng)信息與數(shù)據(jù)目標(biāo)系統(tǒng)信息;接口數(shù)據(jù)結(jié)構(gòu)表(DATASTRUCTURE):用于存儲接口xml數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),定時根據(jù)接口xml的結(jié)構(gòu)變化而變化;接口數(shù)據(jù)對照組(DATAGROUP):用于存儲接口數(shù)據(jù)的對應(yīng)關(guān)系,xml數(shù)據(jù)塊對應(yīng)表;數(shù)據(jù)字段對照表(DATAMAPPING):用于xml數(shù)據(jù)塊中xml節(jié)點(diǎn)跟目標(biāo)表中字段對應(yīng)關(guān)系;3、初始xml數(shù)據(jù)結(jié)構(gòu)與字段映射關(guān)系;4、數(shù)據(jù)目標(biāo)系統(tǒng)部署相關(guān)的web服務(wù),接收數(shù)據(jù)源系統(tǒng)發(fā)送的xml數(shù)據(jù)進(jìn)行存儲;5、差異化比對xml數(shù)據(jù)結(jié)構(gòu),并實(shí)現(xiàn)實(shí)時更新數(shù)據(jù)結(jié)構(gòu),實(shí)時進(jìn)行數(shù)據(jù)存儲;數(shù)據(jù)示例如下:初始時xml結(jié)構(gòu):<?xmlversion="1.0"encoding="UTF-8"?><Resource><Res_ID>ID</Res_ID><Res_CODE>Code</Res_CODE><Res_NAME>Name</Res_NAME><Res_NOTE>Note</Res_NOTE></Resource>初始后的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)表名數(shù)據(jù)字段ResourceRes_IDResourceRes_CODEResourceRes_NAMEResourceRes_NOTEResource表存儲內(nèi)容:Res_IDRes_CODERes_NAMERes_NOTEIDCodeNameNote數(shù)據(jù)結(jié)構(gòu)改變后的xml數(shù)據(jù)<?xmlversion="1.0"encoding="UTF-8"?><Resource><Res_ID>ID</Res_ID><Res_CODE>Code</Res_CODE><Res_NAME>Name</Res_NAME><Res_NOTE>Note</Res_NOTE><Res_Date>2000-01-0213:22:11</Res_Date><Res_ext>true</Res_ext></Resource><Resource><Res_ID>ID2</Res_ID><Res_CODE>Code2</Res_CODE><Res_NAME>Name2</Res_NAME><Res_NOTE>Note2</Res_NOTE><Res_Date>2001-11-0203:09:51</Res_Date><Res_ext>false</Res_ext>Resource更新后的表結(jié)構(gòu):數(shù)據(jù)表名數(shù)據(jù)字段ResourceRes_IDResourceRes_CODEResourceRes_NAMEResourceRes_NOTEResourceRes_DateResourceRes_extResource表存儲內(nèi)容:Res_IDRes_CODERes_NAMERes_NOTERes_DateRes_extIDCodeNameNote2000-01-0213:22:11trueID2Code2Name2Note22001-11-0203:09:51false上述方法中,在數(shù)據(jù)目標(biāo)系統(tǒng)解析數(shù)據(jù)時,或者在數(shù)據(jù)目標(biāo)完成初始化時,創(chuàng)建訪問控制數(shù)據(jù)庫;創(chuàng)建訪問控制數(shù)據(jù)庫時,要求輸入管理員編號、密碼,將該用戶作為數(shù)據(jù)庫的登錄用戶,并將該用戶作為訪問控制數(shù)據(jù)庫的數(shù)據(jù)庫屬主。此方法能夠減少開發(fā)人員對同一接口為適應(yīng)不同的數(shù)據(jù)規(guī)則數(shù)據(jù)而重復(fù)編碼的問題,大大提升了開發(fā)人員的工作效率,對不同系統(tǒng)間已存在的web服務(wù)數(shù)據(jù)接口進(jìn)行了合理化最大價值的利用,接口程序可自適應(yīng)數(shù)據(jù)規(guī)則的變化而完成數(shù)據(jù)的存儲,降低了軟件研發(fā)的復(fù)雜度,對軟件在企業(yè)內(nèi)的應(yīng)用進(jìn)行更深層次的集成提供了平臺。通過上面具體實(shí)施方式,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開的實(shí)施方式的基礎(chǔ)上,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。當(dāng)前第1頁1 2 3