一種標(biāo)準(zhǔn)數(shù)據(jù)的同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于標(biāo)準(zhǔn)數(shù)據(jù)同步技術(shù)領(lǐng)域,涉及一種標(biāo)準(zhǔn)數(shù)據(jù)的同步方法;采用該同步方法能夠提供各標(biāo)準(zhǔn)服務(wù)機(jī)構(gòu)系統(tǒng)間標(biāo)準(zhǔn)數(shù)據(jù)的一致性。
【背景技術(shù)】
[0002]隨著大數(shù)據(jù)和云計(jì)算的發(fā)展,越來越多的新生事物的產(chǎn)生,人們對(duì)事物的認(rèn)知程度和要求不斷提高,現(xiàn)有的標(biāo)準(zhǔn)已不能滿足當(dāng)前時(shí)代的規(guī)定或者不符合現(xiàn)在市場(chǎng)的要求,導(dǎo)致越來越多的標(biāo)準(zhǔn)被修改替代,新生標(biāo)準(zhǔn)也不斷增加,現(xiàn)有標(biāo)準(zhǔn)信息化系統(tǒng)對(duì)標(biāo)準(zhǔn)進(jìn)行有效的管理,并提供相關(guān)的標(biāo)準(zhǔn)數(shù)據(jù)或標(biāo)準(zhǔn)服務(wù)。但如何提供優(yōu)質(zhì)高效的標(biāo)準(zhǔn)跟蹤服務(wù),保證各標(biāo)準(zhǔn)服務(wù)機(jī)構(gòu)系統(tǒng)間標(biāo)準(zhǔn)數(shù)據(jù)的一致性變得頗為重要。
[0003]針對(duì)標(biāo)準(zhǔn)信息平臺(tái)的標(biāo)準(zhǔn)數(shù)據(jù)一致問題,采用在線同步和離線同步兩種標(biāo)準(zhǔn)同步接口方式,解決標(biāo)準(zhǔn)平臺(tái)之間的信息同步,實(shí)現(xiàn)企業(yè)自主平臺(tái)(企業(yè)自建、推廣建設(shè),類似線下托管模式)、行業(yè)平臺(tái)(面向標(biāo)準(zhǔn)多個(gè)標(biāo)準(zhǔn)組織,如電力或者水利、檢驗(yàn))、下級(jí)標(biāo)準(zhǔn)化平臺(tái)(如省、市標(biāo)準(zhǔn)化平臺(tái))等多平臺(tái)間的標(biāo)準(zhǔn)同步。
[0004]但是現(xiàn)有技術(shù)中的標(biāo)準(zhǔn)同步方法無法保證標(biāo)準(zhǔn)數(shù)據(jù)的一致性,也無法實(shí)現(xiàn)標(biāo)準(zhǔn)數(shù)據(jù)的可追溯性,降低標(biāo)準(zhǔn)跟蹤服務(wù)能力。此為現(xiàn)有技術(shù)的不足之處。
[0005]因此,提供設(shè)計(jì)一種標(biāo)準(zhǔn)數(shù)據(jù)的同步方法,以解決上述技術(shù)問題,是非常有必要的。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于,針對(duì)上述現(xiàn)有技術(shù)存在的缺陷,提供設(shè)計(jì)一種標(biāo)準(zhǔn)數(shù)據(jù)的同步方法,以解決上述技術(shù)問題。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明給出以下技術(shù)方案:
一種標(biāo)準(zhǔn)數(shù)據(jù)的同步方法,包括標(biāo)準(zhǔn)數(shù)據(jù)題錄同步的步驟和標(biāo)準(zhǔn)數(shù)據(jù)文本同步的步驟,其特征在于:
所述的標(biāo)準(zhǔn)數(shù)據(jù)題錄同步的步驟包括如下步驟:
S101:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端獲取標(biāo)準(zhǔn)數(shù)據(jù)題錄的同步標(biāo)識(shí);
S102:封裝標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的調(diào)用請(qǐng)求獲取題錄同步日志接口 ;
S103:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端根據(jù)標(biāo)準(zhǔn)數(shù)據(jù)題錄的同步標(biāo)識(shí),取出需要同步的標(biāo)準(zhǔn)數(shù)據(jù);
S104:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端根據(jù)S103中取出的標(biāo)準(zhǔn)數(shù)據(jù),判斷標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的同步權(quán)限,根據(jù)用戶權(quán)限,獲取標(biāo)準(zhǔn)同步數(shù)據(jù)LIST ;
S105:封裝需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id,v>、同步標(biāo)識(shí)、返回狀態(tài)碼以及錯(cuò)誤碼,并通過同步日志發(fā)送至標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的數(shù)據(jù)接收接口 ;
S106:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端判斷返回狀態(tài)碼以及錯(cuò)誤碼:
當(dāng)返回狀態(tài)碼為FAIL并且錯(cuò)誤碼為QUERY_BIBL0GS_N0FIND時(shí),表示此時(shí)客戶端的標(biāo)準(zhǔn)庫(kù)為最新狀態(tài)無需同步,轉(zhuǎn)到S101;
當(dāng)返回狀態(tài)碼為SUCCESS并且list結(jié)果集為空時(shí),表示根據(jù)當(dāng)前標(biāo)識(shí)取出的這批同步標(biāo)準(zhǔn)數(shù)據(jù),客戶端沒有權(quán)限同步,因此沒有返回標(biāo)準(zhǔn)ID,轉(zhuǎn)到S101 ;
當(dāng)返回狀態(tài)碼為SUCCESS并且list結(jié)果集不為空時(shí),轉(zhuǎn)到S107 ;
S107:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端將S105中的需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id,v>,與本地題庫(kù)錄中的版本進(jìn)行比較,如果一致則更新同步標(biāo)識(shí)后轉(zhuǎn)到S101 ;否則,將比對(duì)數(shù)據(jù)版本之后剩余的需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id>進(jìn)行封裝,請(qǐng)求同步數(shù)據(jù);
S108:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端接收參數(shù)LIST (id);
S109:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端取出存儲(chǔ)LIST (id);
S110:比對(duì)S108中的LIST〈id〉與S109中的LIST〈id〉,根據(jù)比對(duì)結(jié)果,查詢標(biāo)準(zhǔn),獲取標(biāo)準(zhǔn)數(shù)據(jù),返回同步標(biāo)準(zhǔn)數(shù)據(jù);服務(wù)端經(jīng)過處理返回3個(gè)標(biāo)準(zhǔn)集合,一是根據(jù)ID取出的標(biāo)準(zhǔn)題錄的最新信息列表,客戶端根據(jù)標(biāo)準(zhǔn)最新的信息進(jìn)行處理;二是根據(jù)ID沒有查到此條標(biāo)準(zhǔn),說明服務(wù)端已經(jīng)將此標(biāo)準(zhǔn)刪除;三是客戶端沒有根據(jù)上一個(gè)接口嚴(yán)格的按照模式組合標(biāo)準(zhǔn)ID列表參數(shù),私自添加ID或者組合錯(cuò)誤,返回的沒有權(quán)限同步的標(biāo)準(zhǔn)ID列表;S111:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端接收同步數(shù)據(jù);
S112:同步題錄,更改同步標(biāo)識(shí),轉(zhuǎn)到S101 ;
所述的標(biāo)準(zhǔn)數(shù)據(jù)文本同步的步驟包括如下步驟:
S201:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端獲取文本同步標(biāo)識(shí);
S202:封裝標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的請(qǐng)求數(shù)據(jù),請(qǐng)求獲取標(biāo)準(zhǔn)文本同步日志接口 ;
S203:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端根據(jù)文本同步標(biāo)識(shí)取出需要同步的標(biāo)準(zhǔn)數(shù)據(jù);
S204:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端根據(jù)S203中取出的標(biāo)準(zhǔn)數(shù)據(jù),判斷標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的同步權(quán)限,根據(jù)用戶權(quán)限,獲取標(biāo)準(zhǔn)同步數(shù)據(jù)LIST ;
S205:封裝需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id,v>、同步標(biāo)識(shí)、返回狀態(tài)碼以及錯(cuò)誤碼,并通過同步日志發(fā)送至標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的數(shù)據(jù)接收接口 ;
S206:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端判斷返回狀態(tài)碼以及錯(cuò)誤碼:
當(dāng)返回狀態(tài)碼為FAIL并且錯(cuò)誤碼為QUERY_BIBLOGS_NOFIND時(shí),表示此時(shí)客戶端的標(biāo)準(zhǔn)庫(kù)為最新狀態(tài)無需同步,轉(zhuǎn)到S201 ;
當(dāng)返回狀態(tài)碼為SUCCESS并且list結(jié)果集為空時(shí),表示根據(jù)當(dāng)前標(biāo)識(shí)取出的這批同步標(biāo)準(zhǔn)數(shù)據(jù),客戶端沒有權(quán)限同步,因此沒有返回標(biāo)準(zhǔn)ID,轉(zhuǎn)到S201 ;
當(dāng)返回狀態(tài)碼為SUCCESS并且list結(jié)果集不為空時(shí),轉(zhuǎn)到S207 ;
S207:根據(jù)返回的數(shù)據(jù)標(biāo)準(zhǔn)ID對(duì)應(yīng)的文本版本號(hào),與本地庫(kù)的數(shù)據(jù)進(jìn)行比較,當(dāng)本地庫(kù)的這條標(biāo)準(zhǔn)的文本版本號(hào)比返回的文本版本號(hào)大或者相等時(shí),此條標(biāo)準(zhǔn)文本表示是最新狀態(tài)無需同步,轉(zhuǎn)到S201,否則,將比對(duì)數(shù)據(jù)版本之后剩余的需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id>進(jìn)行封裝,請(qǐng)求同步數(shù)據(jù);
經(jīng)過S207操作后剩余的標(biāo)準(zhǔn)文本同步集合數(shù)據(jù),當(dāng)此集合中已經(jīng)沒有數(shù)據(jù)時(shí)可以直接根據(jù)返回的文本同步標(biāo)識(shí)進(jìn)行下一次的請(qǐng)求獲取文本同步日志接口的調(diào)用,當(dāng)還剩有數(shù)據(jù)時(shí)需要數(shù)據(jù)ID通過拼接字符串ID1; ID2; ID3; ID4的模式,用英文狀態(tài)下的分號(hào)拼接起來作為參數(shù),私自添加的標(biāo)準(zhǔn)主鍵ID會(huì)在無權(quán)限同步列表中返回;
S208:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端接收參數(shù)LIST (id); S209:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端對(duì)S208中接受到的LIST (id)進(jìn)行處理,
如果LIST (id)合法,則返回根據(jù)ID取出的標(biāo)準(zhǔn)文本的下載加密key信息,并轉(zhuǎn)到S211 ;
如果標(biāo)準(zhǔn)文本過大,則返回標(biāo)準(zhǔn)文本過大的標(biāo)準(zhǔn)主鍵的列表,并轉(zhuǎn)到S210 ;
根據(jù)ID沒有查到此條標(biāo)準(zhǔn),則返回標(biāo)準(zhǔn)已被刪除信息,并轉(zhuǎn)到S210 ;
如果數(shù)據(jù)標(biāo)準(zhǔn)同步客戶端沒有根據(jù)上一個(gè)接口嚴(yán)格的按照模式組合標(biāo)準(zhǔn)ID列表參數(shù),私自添加ID或者組合錯(cuò)誤返回沒有權(quán)限同步的標(biāo)準(zhǔn)ID列表,并轉(zhuǎn)到S210 ;
5210:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端接收文本同步數(shù)據(jù),并處理返回?cái)?shù)據(jù),更改文本同步標(biāo)識(shí)后,轉(zhuǎn)到S201 ;
5211:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端接收文本同步數(shù)據(jù),并處理返回?cái)?shù)據(jù),調(diào)用文本下載接口 ; S212:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端接收文本下載接口的參數(shù)(標(biāo)準(zhǔn)ID,加密碼downKey); S213:服務(wù)端處理請(qǐng)求返回標(biāo)準(zhǔn)文本數(shù)據(jù)流,或者返回錯(cuò)誤信息;
S214:文本下載數(shù)據(jù)流,返回文本數(shù)據(jù)流;
S215:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端接收數(shù)據(jù)流,存儲(chǔ)標(biāo)準(zhǔn)文本;同步結(jié)束。
[0008]優(yōu)選地,所述步驟S101中的同步標(biāo)識(shí)是指,上次同步數(shù)據(jù)時(shí)服務(wù)端傳回的同步標(biāo)識(shí)或者首次同步時(shí)由服務(wù)端給的同步標(biāo)識(shí)。
[0009]優(yōu)選地,所述步驟S201中的文本同步標(biāo)識(shí)是指,上次文本同步數(shù)據(jù)時(shí)服務(wù)端傳回的參數(shù),或者首次同步時(shí)有服務(wù)端給的文本同步標(biāo)識(shí)。
[0010]本發(fā)明的有益效果在于,通過標(biāo)準(zhǔn)同步接口機(jī)制,實(shí)現(xiàn)多平臺(tái)間標(biāo)準(zhǔn)題錄和標(biāo)準(zhǔn)文本的同步,解決不斷變更的標(biāo)準(zhǔn)數(shù)據(jù)實(shí)時(shí)更新需求,保證標(biāo)準(zhǔn)數(shù)據(jù)的一致性和標(biāo)準(zhǔn)數(shù)據(jù)的可追溯性,滿足用戶的需求,提高用戶滿意度,提供標(biāo)準(zhǔn)跟蹤服務(wù),增強(qiáng)標(biāo)準(zhǔn)機(jī)構(gòu)的標(biāo)準(zhǔn)服務(wù)能力。
[0011]此外,本發(fā)明設(shè)計(jì)原理可靠,具有非常廣泛的應(yīng)用前景。
[0012]由此可見,本發(fā)明與現(xiàn)有技術(shù)相比,具有突出的實(shí)質(zhì)性特點(diǎn)和顯著地進(jìn)步,其實(shí)施的有益效果也是顯而易見的。
【具體實(shí)施方式】
[0013]下面通過具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)闡述,以下實(shí)施例是對(duì)本發(fā)明的解釋,而本發(fā)明并不局限于以下實(shí)施方式。
[0014]本實(shí)施例提供一種標(biāo)準(zhǔn)數(shù)據(jù)的同步方法,包括標(biāo)準(zhǔn)數(shù)據(jù)題錄同步的步驟和標(biāo)準(zhǔn)數(shù)據(jù)文本同步的步驟,
所述的標(biāo)準(zhǔn)數(shù)據(jù)題錄同步的步驟包括如下步驟:
S101:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端獲取標(biāo)準(zhǔn)數(shù)據(jù)題錄的同步標(biāo)識(shí);
S102:封裝標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的調(diào)用請(qǐng)求獲取題錄同步日志接口 ;
S103:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端根據(jù)標(biāo)準(zhǔn)數(shù)據(jù)題錄的同步標(biāo)識(shí),取出需要同步的標(biāo)準(zhǔn)數(shù)據(jù);
S104:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端根據(jù)S103中取出的標(biāo)準(zhǔn)數(shù)據(jù),判斷標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的同步權(quán)限,根據(jù)用戶權(quán)限,獲取標(biāo)準(zhǔn)同步數(shù)據(jù)LIST ;
S105:封裝需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id,v>、同步標(biāo)識(shí)、返回狀態(tài)碼以及錯(cuò)誤碼,并通過同步日志發(fā)送至標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端的數(shù)據(jù)接收接口;
S106:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端判斷返回狀態(tài)碼以及錯(cuò)誤碼:
當(dāng)返回狀態(tài)碼為FAIL并且錯(cuò)誤碼為QUERY_BIBLOGS_NOFIND時(shí),表示此時(shí)客戶端的標(biāo)準(zhǔn)庫(kù)為最新狀態(tài)無需同步,轉(zhuǎn)到S101 ;
當(dāng)返回狀態(tài)碼為SUCCESS并且list結(jié)果集為空時(shí),表示根據(jù)當(dāng)前標(biāo)識(shí)取出的這批同步標(biāo)準(zhǔn)數(shù)據(jù),客戶端沒有權(quán)限同步,因此沒有返回標(biāo)準(zhǔn)ID,轉(zhuǎn)到S101 ;
當(dāng)返回狀態(tài)碼為SUCCESS并且list結(jié)果集不為空時(shí),轉(zhuǎn)到S107 ;
S107:標(biāo)準(zhǔn)數(shù)據(jù)同步客戶端將S105中的需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id,v>,與本地題庫(kù)錄中的版本進(jìn)行比較,如果一致則更新同步標(biāo)識(shí)后轉(zhuǎn)到S101 ;否則,將比對(duì)數(shù)據(jù)版本之后剩余的需要同步的標(biāo)準(zhǔn)數(shù)據(jù)LIST〈id>進(jìn)行封裝,請(qǐng)求同步數(shù)據(jù);
S108:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端接收參數(shù)LIST (id);
S109:標(biāo)準(zhǔn)數(shù)據(jù)同步服務(wù)端取出存儲(chǔ)LIST (id);
S110:比對(duì)S108中的LIST〈id〉與S109中的LIST〈id〉,根據(jù)比對(duì)結(jié)果,查詢標(biāo)準(zhǔn),獲取標(biāo)準(zhǔn)數(shù)據(jù),返回同步標(biāo)準(zhǔn)數(shù)