本發(fā)明涉及數(shù)據(jù)傳輸技術,具體涉及跨區(qū)域分布式站點交互與數(shù)據(jù)同步的方法。
背景技術:
在國際化跨區(qū)域公司中,為滿足業(yè)務生產(chǎn)規(guī)范化,跨國公司通常要求使用統(tǒng)一版本應用生產(chǎn)系統(tǒng),滿足國際化跨國公司規(guī)范生產(chǎn)過程,統(tǒng)一生產(chǎn)流程的管控要求。而在跨區(qū)域大公司中,業(yè)務生產(chǎn)往往涉及多個區(qū)域之間的協(xié)同合作,跨區(qū)域業(yè)務的開展,需要不同區(qū)域甚至不同國家分部之間的協(xié)同,實時交互業(yè)務生產(chǎn)數(shù)據(jù),才能提升業(yè)務生產(chǎn)效率。中國電信國際有限公司總部和分部遍布全球,業(yè)務生產(chǎn)支撐系統(tǒng)(bss系統(tǒng))應用站點在此背景下,需要滿足各分部當?shù)胤梢蠛蜕a(chǎn)要求,將業(yè)務生產(chǎn)數(shù)據(jù)本地化存儲,滿足當?shù)胤蓚洳?,同時跨區(qū)域間的協(xié)同配合,又要求業(yè)務生產(chǎn)數(shù)據(jù)能實時交互,滿足各分部之間實時交互協(xié)同開展。
中國電信國際公司現(xiàn)有的bss系統(tǒng)分布式站點部署架構,一般采用多地本地化部署方式,如圖1所示,在各區(qū)域配置本地應用服務器、應用站點,當業(yè)務訂單發(fā)生狀態(tài)變化時,通過源站點與多個目標站點的交叉訪問,實現(xiàn)數(shù)據(jù)的交互;數(shù)據(jù)同步流程如圖2所示,主要包括步驟:101、業(yè)務流程環(huán)節(jié)觸發(fā)信息更新,102、根據(jù)業(yè)務訂單環(huán)節(jié)判斷涉及區(qū)域,103、獲取訂單全表數(shù)據(jù)封裝產(chǎn)生接口,104、接口觸發(fā)同步多個目標區(qū)域站點,105、多個目標區(qū)域站點更新入庫全表更新。采用現(xiàn)有技術這樣的分布式站點部署方式,當業(yè)務訂單狀態(tài)發(fā)生變化時,各區(qū)域站點的交互是兩兩交叉式訪問,如涉及n個區(qū)域站點,那么需要進行至少是n*2的交互次數(shù),存在交互過于頻繁的問題;同時,各區(qū)域站點交互訪問是并行存在的,業(yè)務數(shù)據(jù)的交互同步,存在數(shù)據(jù)交叉覆蓋的問題。
技術實現(xiàn)要素:
為了解決現(xiàn)有技術中區(qū)域站點交互過于頻繁及數(shù)據(jù)容易被覆蓋的問題,本發(fā)明提供分布式站點交互與數(shù)據(jù)同步方法,該方法在應用站點之間建立共享總線,設置源區(qū)域站點和目標區(qū)域站點邏輯鎖,在共享總線并行分發(fā)數(shù)據(jù)時,鎖定關聯(lián)業(yè)務信息,以保證交互過程中數(shù)據(jù)的一致性和準確性,源區(qū)域站點只需與共享總線交互往返2次即可實現(xiàn)數(shù)據(jù)的實時同步,交互效率高。
本發(fā)明采用以下技術方案來實現(xiàn):跨區(qū)域分布式站點交互與數(shù)據(jù)同步方法,首先將站點劃分成多個區(qū)域站點,并在區(qū)域站點之間增設共享總線,為同一區(qū)域的站點提供相同的接口服務;站點交互與數(shù)據(jù)同步包括以下步驟:
s1、業(yè)務訂單流程觸發(fā)信息更新;
s2、根據(jù)業(yè)務訂單判斷涉及區(qū)域;
s3、源區(qū)域站點觸發(fā)同步之前,通過共享總線,獲取多個目標區(qū)域站點業(yè)務訂單狀態(tài),業(yè)務訂單是否在關聯(lián)的目標區(qū)域站點進行過狀態(tài)變化;
s4、共享總線返回各關聯(lián)目標區(qū)域站點業(yè)務訂單狀態(tài)變化情況,在共享總線進行邏輯判斷處理;
s5、如共享總線獲取的目標區(qū)域站點的業(yè)務訂單狀態(tài)未發(fā)生狀態(tài)變化,則對目標區(qū)域站點設置區(qū)域邏輯鎖,鎖定目標區(qū)域站點關聯(lián)信息,保證數(shù)據(jù)臨時靜止;
s6、源區(qū)域站點封裝目標區(qū)域站點關聯(lián)業(yè)務數(shù)據(jù);
s7、通過共享總線將封裝好的關聯(lián)業(yè)務數(shù)據(jù),對應分發(fā)到各目標區(qū)域站點;
s8、各目標區(qū)域站點接收共享總線通知,獲取封裝實體,更新本區(qū)域站點涉及關聯(lián)業(yè)務數(shù)據(jù)入庫;
s9、目標區(qū)域站點完成關聯(lián)業(yè)務數(shù)據(jù)的入庫更新,將區(qū)域邏輯鎖釋放,回歸正常狀態(tài);
s10、如共享總線獲取的目標區(qū)域站點的業(yè)務訂單狀態(tài)已發(fā)生狀態(tài)變化,反向對源區(qū)域站點設置與此目標區(qū)域站點關聯(lián)部分的信息進行區(qū)域邏輯鎖,鎖定本區(qū)域關聯(lián)信息;
s11、源區(qū)域站點完成本目標區(qū)域站點關聯(lián)部分的邏輯鎖后,通過共享總線通知目標區(qū)域站點;
s12、目標區(qū)域站點反向獲取本區(qū)域站點狀態(tài)變更涉及的信息,封裝業(yè)務對象,觸發(fā)共享總線,反向更新源區(qū)域站點,完成數(shù)據(jù)入庫更新后,進入步驟s13釋放源區(qū)域站點區(qū)域邏輯鎖;
s13、源區(qū)域站點釋放區(qū)域邏輯鎖,回歸正常狀態(tài)。
從以上技術方案可知,本發(fā)明主要提升分布式站點數(shù)據(jù)交互效率,避免分布站點交叉訪問,解決了業(yè)務數(shù)據(jù)相互交叉覆蓋,數(shù)據(jù)失真、不統(tǒng)一的技術問題,滿足了跨區(qū)域應用站點本地化數(shù)據(jù)存儲的法律要求和數(shù)據(jù)實時交互的需求。與現(xiàn)有技術相比,本發(fā)明所采用的技術方案取得了以下技術效果:
1、在站點交互方面,現(xiàn)有技術多個區(qū)域應用站點訪問方式是交叉式訪問,當源區(qū)域站點發(fā)生數(shù)據(jù)變化時,需要同時與多個目標區(qū)域站點進行交叉訪問,同時,各目標區(qū)域站點之間還需進行數(shù)據(jù)交互才能滿足業(yè)務數(shù)據(jù)一致性;而本發(fā)明采用共享總線方式,源區(qū)域站點業(yè)務信息發(fā)生變化時,通過共享總線進行邏輯判斷,分發(fā)到各目標區(qū)域站點,實現(xiàn)數(shù)據(jù)并行同步分發(fā),源區(qū)域站點只需與共享總線交互往返2次即可實現(xiàn)數(shù)據(jù)的實時同步,交互效率高。
2、在數(shù)據(jù)同步方面,采用區(qū)域邏輯鎖方式,當區(qū)域站點業(yè)務信息發(fā)生變化時,對應將此部分信息關聯(lián)的業(yè)務信息,根據(jù)共享總線獲取的結果,進行邏輯鎖定,從而保證在分發(fā)同步時數(shù)據(jù)是臨時靜止的狀態(tài),取得數(shù)據(jù)分發(fā)一致性的效果,避免出現(xiàn)并行同步數(shù)據(jù)交叉覆蓋的情況;在完成交互后,釋放邏輯鎖,完成交互過程。
3、在數(shù)據(jù)對象封裝方面,采用數(shù)據(jù)底層配置方式,將業(yè)務數(shù)據(jù)按對象域維度,劃分各主體對象,建立各主體對象關聯(lián)關系,通過配置方式,靈活支撐數(shù)據(jù)主體對象的擴展和調整。由于引入了共享總線,有利于后續(xù)擴展站點部署,當有新區(qū)域站點需要部署時,只需要與共享總線進行對接,即可滿足與其他所有站點實現(xiàn)交互。
附圖說明
圖1為現(xiàn)有技術的中國電信國際公司bss系統(tǒng)部署架構圖;
圖2為現(xiàn)有技術的分布式站點數(shù)據(jù)同步流程圖;
圖3為本發(fā)明實施例的中國電信國際公司bss系統(tǒng)部署架構圖;
圖4為本發(fā)明實施例的分布式站點交互與數(shù)據(jù)同步流程圖。
具體實施方式
下面將結合實施例及說明書附圖對本發(fā)明做進一步詳細的描述,但本發(fā)明的實施方式不限于此。
實施例
本實施例對中國電信國際公司bss系統(tǒng)部署架構進行了改進,如圖3所示,將站點按照地理位置進行區(qū)域劃分,如分為亞太區(qū)域bss、美洲區(qū)域bss、歐洲區(qū)域bss以及中東非bss,為同一區(qū)域的站點提供相同的接口服務,在區(qū)域站點之間增加共享總線作為業(yè)務樞紐,作為分布式站點交互的中間緩沖,各區(qū)域站點將業(yè)務數(shù)據(jù)同步傳送到共享總線,共享總線匯集數(shù)據(jù),進行讀寫分離,緩存目標區(qū)域站點數(shù)據(jù),將接收到的源區(qū)域站點的數(shù)據(jù)進行過濾比較,并在共享總線進行邏輯判斷處理。當某個站點發(fā)起跨區(qū)域業(yè)務時,在接口層面通過邏輯判斷其他關聯(lián)的區(qū)域,通過共享總線分發(fā)到各個區(qū)域站點,并設置站點邏輯鎖;針對各個區(qū)域并行處理的情況,當某個區(qū)域完成處理后,釋放對應的區(qū)域邏輯鎖,獲取區(qū)域邏輯鎖對應的信息,僅將此部分信息分發(fā)到各關聯(lián)的區(qū)域,通過接口服務完成數(shù)據(jù)入庫更新。通過此方式,提升分布式站點交叉訪問效率,保證業(yè)務數(shù)據(jù)同步、一致性和準確性;同時引入共享總線,減少各區(qū)域站點之間交叉數(shù)據(jù)同步,有利于后續(xù)擴展站點部署,當有新區(qū)域站點需要部署時,只需要與共享總線進行對接,即可滿足與其他所有站點實現(xiàn)交互。
本發(fā)明的數(shù)據(jù)同步流程滿足原分布式站點數(shù)據(jù)同步要求,在分布式站點中間增設共享總線后,具體實施流程如圖4所示,包括如下各步驟:
步驟201、業(yè)務訂單流程觸發(fā)信息更新,信息更新的處理過程如下:
1)在數(shù)據(jù)庫底層設置基礎數(shù)據(jù)關聯(lián)表,定義各表之間關聯(lián)關系,主外鍵字段;
2)根據(jù)業(yè)務訂單相關屬性劃分不同業(yè)務對象,包括業(yè)務訂單主體數(shù)據(jù)order、客戶數(shù)據(jù)customer、供應商數(shù)據(jù)supplier、業(yè)務流程數(shù)據(jù)workflow等;
3)針對不同業(yè)務對象配置對應涉及表對象,定義各表對象的順序號。
步驟202、當業(yè)務訂單流轉,業(yè)務人員在源區(qū)域站點操作時,將根據(jù)業(yè)務訂單判斷涉及區(qū)域,查找業(yè)務人員所屬區(qū)域主體組織organization,查詢業(yè)務訂單落地涉及區(qū)域area,判斷業(yè)務人員操作影響的區(qū)域relatedarea。
步驟203、源區(qū)域站點觸發(fā)同步之前,通過共享總線,獲取多個目標區(qū)域站點業(yè)務訂單狀態(tài),業(yè)務訂單是否在關聯(lián)的目標區(qū)域站點進行過狀態(tài)變化。本步驟通過共享總線,減少了多個站點之間的交叉訪問。
步驟204、共享總線返回各關聯(lián)目標區(qū)域站點業(yè)務訂單狀態(tài)變化情況,在共享總線進行邏輯判斷處理:根據(jù)共享總線的緩存中目標區(qū)域站點的業(yè)務訂單狀態(tài),結合配置的業(yè)務基礎對象數(shù)據(jù),進行對象數(shù)據(jù)源匹配,將目標區(qū)域站點同步過來的基礎對象數(shù)據(jù),通過基礎對象數(shù)據(jù)的主鍵key,進行數(shù)據(jù)記錄匹配,當檢索匹配產(chǎn)生數(shù)據(jù)字段差異時,則表示目標區(qū)域站點業(yè)務訂單狀態(tài)發(fā)生變化,反之,則目標區(qū)域站點業(yè)務訂單狀態(tài)未發(fā)生狀態(tài)變化。
步驟205、如共享總線獲取的目標區(qū)域站點的業(yè)務訂單狀態(tài)未發(fā)生狀態(tài)變化,則對目標區(qū)域站點設置區(qū)域邏輯鎖,從共享總線觸發(fā)邏輯鎖鎖定指令到目標區(qū)域站點,目標區(qū)域站點接收鎖定指令后,對關聯(lián)信息數(shù)據(jù)記錄進行邏輯標識,更新數(shù)據(jù)對象為鎖定狀態(tài)(具體為forupdatenowait狀態(tài)),鎖定目標區(qū)域站點關聯(lián)信息,保證數(shù)據(jù)臨時靜止,然后執(zhí)行步驟206。
步驟206、源區(qū)域站點根據(jù)步驟201配置參數(shù),封裝目標區(qū)域站點關聯(lián)業(yè)務數(shù)據(jù)。
步驟207、通過共享總線將封裝好的關聯(lián)業(yè)務數(shù)據(jù),對應分發(fā)到各目標區(qū)域站點。
步驟208、各目標區(qū)域站點接收共享總線通知,獲取封裝實體,更新本區(qū)域站點涉及關聯(lián)業(yè)務數(shù)據(jù)入庫。
步驟209、目標區(qū)域站點完成關聯(lián)業(yè)務數(shù)據(jù)的入庫更新,將區(qū)域邏輯鎖釋放,將關聯(lián)業(yè)務信息數(shù)據(jù)對象從鎖定狀態(tài)(即forupdatenowait狀態(tài))回歸到正常狀態(tài),同時觸發(fā)邏輯鎖釋放完成消息到共享總線,共享總線接收后,放入數(shù)據(jù)緩存池,作為下次同步過程基礎,完成一次正常的分布式站點數(shù)據(jù)同步過程。
步驟210,如共享總線獲取的目標區(qū)域站點的業(yè)務訂單狀態(tài)已發(fā)生狀態(tài)變化,反向對源區(qū)域站點設置與此目標區(qū)域站點關聯(lián)部分的信息進行區(qū)域邏輯鎖,由共享總線觸發(fā)邏輯鎖鎖定指令回源區(qū)域站點,源區(qū)域站點接收鎖定指令后,對關聯(lián)部分的信息記錄進行邏輯標識,更新數(shù)據(jù)記錄對象為鎖定狀態(tài)(具體為forupdatenowait狀態(tài)),鎖定本區(qū)域關聯(lián)信息。
步驟211、源區(qū)域站點完成本目標區(qū)域站點關聯(lián)部分的邏輯鎖后,通過共享總線通知目標區(qū)域站點。
步驟212、目標區(qū)域站點反向獲取本區(qū)域站點狀態(tài)變更涉及的信息,封裝業(yè)務對象,觸發(fā)共享總線,反向更新源區(qū)域站點,完成數(shù)據(jù)入庫更新后,進入步驟213釋放源區(qū)域站點區(qū)域邏輯鎖。
步驟213、源區(qū)域站點釋放區(qū)域邏輯鎖,將關聯(lián)部分的信息記錄對象從鎖定狀態(tài)(即forupdatenowait狀態(tài))回歸到正常狀態(tài),同時觸發(fā)邏輯鎖釋放完成消息到共享總線,共享總線接收后,放入數(shù)據(jù)緩存池,作為下次同步過程基礎,完成一次分布式站點反向數(shù)據(jù)同步過程。
上述步驟203至步驟213完成整體分布式站點數(shù)據(jù)同步的過程,支撐分布式站點數(shù)據(jù)同步至多個目標區(qū)域站點的整體過程。
如以上步驟描述,本發(fā)明在分布式站點數(shù)據(jù)同步過程中,源區(qū)域站點與目標區(qū)域站點的交互通過共享總線實現(xiàn),減少了源區(qū)域站點與多個目標區(qū)域站點之間的交叉訪問,源區(qū)域站點只需與共享總線交互往返2次,即可實現(xiàn)數(shù)據(jù)的實時同步;同時,區(qū)域站點使用邏輯鎖技術,根據(jù)區(qū)域站點狀態(tài)變化情況,將對應區(qū)域站點關聯(lián)信息進行邏輯鎖定,保證數(shù)據(jù)在交互時是臨時靜止狀態(tài),避免交叉訪問時數(shù)據(jù)交叉覆蓋,相較于現(xiàn)有技術,站點交互訪問效率得到了顯著的提高,各區(qū)域站點之間數(shù)據(jù)一致性和準確性也得到了保證。
下面具體舉例對本發(fā)明方法的應用進行說明。
1、在數(shù)據(jù)底層配置業(yè)務訂單數(shù)據(jù)對象order、customer、supplier、workflow、attribute…
2、設置數(shù)據(jù)對象涉及的主體表customer_order、order_item、cust、cust_attr、supplier、task、task_history、order_attr,配置各主體表之間的主外鍵關聯(lián)關系;
3、當業(yè)務人員在源區(qū)域站點,如亞太bss操作業(yè)務訂單環(huán)節(jié)時,相應業(yè)務處理過程如下:
1)查詢該業(yè)務人員對應區(qū)域組織organization,如亞太區(qū)域;
2)查詢業(yè)務訂單落地涉及區(qū)域area,如涉及美洲bss、歐洲bss、中東非bss;
3)判斷業(yè)務人員操作影響的區(qū)域relatedarea,如涉及美洲bss和歐洲bss;
4、通過共享總線獲取美洲bss業(yè)務訂單狀態(tài)和歐洲bss業(yè)務訂單狀態(tài);
1)如美洲bss業(yè)務訂單狀態(tài)未發(fā)生狀態(tài)變化,將美洲bss業(yè)務訂單設置區(qū)域邏輯鎖,鎖定美洲bss業(yè)務訂單的關聯(lián)業(yè)務信息,保證數(shù)據(jù)臨時靜止;
2)源區(qū)域站點亞太bss根據(jù)底層配置業(yè)務數(shù)據(jù)對象,獲取封裝涉及美洲bss訂單關聯(lián)業(yè)務信息;
3)通過共享總線,將數(shù)據(jù)對象分發(fā)到美洲bss,美洲bss接收共享總線推送信息,更新入庫;
4)美洲bss釋放本區(qū)域邏輯鎖,回歸正常狀態(tài),完成分布式站點數(shù)據(jù)同步;
5)如歐洲bss業(yè)務訂單狀態(tài)已發(fā)生變化,反向觸發(fā)共享總線,將亞太bss業(yè)務訂單進行區(qū)域邏輯鎖,鎖定與歐洲bss關聯(lián)信息;
6)歐洲bss根據(jù)底層配置業(yè)務數(shù)據(jù)對象,獲取狀態(tài)變化的關聯(lián)信息,封裝數(shù)據(jù)對象;
7)通過共享總線,歐洲bss將數(shù)據(jù)對象反向推送到亞太bss;
8)亞太bss接收共享總線推送的歐洲bss關聯(lián)信息,反向進行信息更新入庫,并釋放區(qū)域邏輯鎖,回歸正常狀態(tài),完成分布式站點反向同步。
采用本方法來完成分布式站點數(shù)據(jù)同步,源區(qū)域站點與目標區(qū)域站點之間僅需要進行2次數(shù)據(jù)交互;而圖2中現(xiàn)有技術的數(shù)據(jù)同步方法,因各站點之間交叉訪問,需要進行6次數(shù)據(jù)交互。此外,因為現(xiàn)有技術是交叉并行訪問,無法保證在并行交互的情況下,數(shù)據(jù)的一致性和準確性,而本發(fā)明采用區(qū)域邏輯鎖的方式,鎖定本區(qū)域關聯(lián)的信息,在交互同步時,僅對應進行關聯(lián)信息的同步,區(qū)域邏輯鎖保證業(yè)務信息在同步過程是臨時靜止的,保證數(shù)據(jù)一致、準確。
本發(fā)明可以用于涉及國際跨域公司應用生產(chǎn)系統(tǒng)跨區(qū)域站點部署,可用于支撐滿足各區(qū)域當?shù)胤梢髷?shù)據(jù)本地化存儲,業(yè)務實時交互的分布式站點部署及數(shù)據(jù)交互同步。
當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員可根據(jù)本發(fā)明作出各自相應的改變和調整,但這些相應的改變和調整都落入本發(fā)明權利要求的保護范圍之內。