本發(fā)明專(zhuān)利技術(shù)提供了一種數(shù)據(jù)集成系統(tǒng)和數(shù)據(jù)集成方法,數(shù)據(jù)集成系統(tǒng)包括:第一事務(wù)適配器,用于在第一系統(tǒng)進(jìn)行業(yè)務(wù)操作時(shí),調(diào)用事務(wù)運(yùn)行引擎裝置和事務(wù)補(bǔ)償裝置;事務(wù)運(yùn)行引擎裝置,為業(yè)務(wù)操作建立業(yè)務(wù)流程,若業(yè)務(wù)流程被配置為支持全局事務(wù),則為業(yè)務(wù)流程創(chuàng)建全局事務(wù)上下文;事務(wù)補(bǔ)償裝置,用于記錄全局事務(wù)的狀態(tài),以及根據(jù)第二事務(wù)適配器捕獲的調(diào)用情況更新全局事務(wù)的狀態(tài);第二事務(wù)適配器,針對(duì)每一個(gè)業(yè)務(wù)操作,提供第二系統(tǒng)的服務(wù),捕獲調(diào)用情況并根據(jù)調(diào)用情況在本地事務(wù)中記錄調(diào)用結(jié)果。本發(fā)明專(zhuān)利技術(shù)通過(guò)事務(wù)適配器收集每一個(gè)事務(wù)型操作的事務(wù)狀態(tài)和執(zhí)行結(jié)果,及時(shí)發(fā)現(xiàn)不一致的數(shù)據(jù)記錄,給予自動(dòng)補(bǔ)償,以保證多個(gè)系統(tǒng)集成時(shí)數(shù)據(jù)的一致性。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專(zhuān)利技術(shù)涉及計(jì)算機(jī)
,具體而言,涉及一種數(shù)據(jù)集成系統(tǒng)和一種數(shù)據(jù)集成方法。
技術(shù)介紹
隨著企業(yè)業(yè)務(wù)的不斷發(fā)展,企業(yè)規(guī)模不斷擴(kuò)大,經(jīng)營(yíng)策略不斷深化改進(jìn),企業(yè)對(duì)信息化系統(tǒng)的要求越來(lái)越高,信息化所覆蓋的領(lǐng)域也越來(lái)越廣,企業(yè)的信息化建設(shè)從核心財(cái)務(wù)系統(tǒng)、供應(yīng)鏈及生產(chǎn)制造系統(tǒng),發(fā)展到資產(chǎn)管理、預(yù)算管理、資金管理、HR管理等,并逐漸延伸到側(cè)重企業(yè)間協(xié)同的電子商務(wù)系統(tǒng)建設(shè)。企業(yè)在建設(shè)這些系統(tǒng)的過(guò)程中,為了控制IT系統(tǒng)建設(shè)的風(fēng)險(xiǎn)(不能將雞蛋放在一個(gè)籃子里),也因?yàn)槭袌?chǎng)上任何一家軟件供應(yīng)商都很難提供覆蓋企業(yè)經(jīng)營(yíng)活動(dòng)全生命周期的產(chǎn)品,往往會(huì)在各自領(lǐng)域相應(yīng)選擇具備獨(dú)特優(yōu)勢(shì)的IT系統(tǒng)供應(yīng)商。這樣選擇的結(jié)果就是企業(yè)內(nèi)會(huì)出現(xiàn)多個(gè)獨(dú)立的信息系統(tǒng)。即便某個(gè)企業(yè)因各種原因短時(shí)間內(nèi)在所有領(lǐng)域均選擇使用同一廠商的系統(tǒng),往往也會(huì)因?yàn)椴煌瑯I(yè)務(wù)系統(tǒng)更新?lián)Q代的頻率不同,比如財(cái)務(wù)系統(tǒng)往往不用頻繁升級(jí),而電子商務(wù)系統(tǒng)為了快速響應(yīng)市場(chǎng)變化往往需要快速的改進(jìn)業(yè)務(wù)流程或發(fā)布新的功能,從而導(dǎo)致同一廠商開(kāi)發(fā)的系統(tǒng)也會(huì)出現(xiàn)版本差異,需要獨(dú)立的開(kāi)發(fā)和維護(hù)多個(gè)系統(tǒng)(各自配置獨(dú)立的數(shù)據(jù)源和運(yùn)行環(huán)境)。另外一種情況就是由于企業(yè)內(nèi)經(jīng)營(yíng)業(yè)務(wù)不同,地理位置限制,即使同一廠商的產(chǎn)品,往往也會(huì)采用異地分布式部署的方案。還有一些企業(yè)結(jié)構(gòu)龐大,管理關(guān)系復(fù)雜(重組、并購(gòu)、加盟等等),企業(yè)內(nèi)本身就存在各種已經(jīng)投產(chǎn)的IT系統(tǒng)。另外有一些企業(yè)的分支機(jī)構(gòu)往往還根據(jù)自身需要而采用貼近本組織業(yè)務(wù)需要的特定軟件解決方案。以上眾多原因都會(huì)導(dǎo)致企業(yè)內(nèi)出現(xiàn)多個(gè)獨(dú)立部署的信息系統(tǒng)。不同的應(yīng)用系統(tǒng)雖然滿足了企業(yè)在各個(gè)領(lǐng)域及局部范圍內(nèi)的需求,但往往隨著時(shí)間推移,會(huì)在企業(yè)內(nèi)形成信息孤島。信息孤島使得企業(yè)內(nèi)的數(shù)據(jù)無(wú)法被有效共享,無(wú)法從企業(yè)全局范圍內(nèi)挖掘有效信息,業(yè)務(wù)功能重復(fù)建設(shè),業(yè)務(wù)流程不通暢(如訂單系統(tǒng)和供應(yīng)鏈、財(cái)務(wù)系統(tǒng)間往往需要集成以滿足企業(yè)財(cái)務(wù)業(yè)務(wù)一體化的要求,能夠管理到從下單到訂單從發(fā)貨、到出庫(kù)、簽收、到財(cái)務(wù)對(duì)賬的全流程,再比如WMS系統(tǒng)的庫(kù)存和供應(yīng)鏈系統(tǒng)庫(kù)存的統(tǒng)一管理等等),無(wú)法根據(jù)經(jīng)營(yíng)需要快速變更業(yè)務(wù)流程。如何快速、靈活的實(shí)現(xiàn)各種異構(gòu)系統(tǒng)互聯(lián)互通,有效整合現(xiàn)有軟件資產(chǎn),構(gòu)建隨需應(yīng)變的跨系統(tǒng)業(yè)務(wù)流程是企業(yè)面臨的巨大挑戰(zhàn)。要實(shí)現(xiàn)系統(tǒng)間的集成,目前有很多較為成熟的技術(shù),例如消息中間件、EAI平臺(tái)及SOA集成平臺(tái)等。其中基于SOA (Service-OrientedArchitecture,面向服務(wù)的體系結(jié)構(gòu))的集成類(lèi)平臺(tái),通過(guò)SCA服務(wù)組件技術(shù),將服務(wù)、流程、規(guī)則、協(xié)議進(jìn)行分離,真正可以達(dá)到隨需應(yīng)變的整合目標(biāo),已經(jīng)成為目前集成的主流技術(shù)。無(wú)論使用哪種技術(shù),都會(huì)面臨一個(gè)無(wú)法回避的問(wèn)題,那就是多個(gè)系統(tǒng)間如何保證數(shù)據(jù)一致性?與一個(gè)系統(tǒng)一個(gè)數(shù)據(jù)源時(shí)的事務(wù)管理不同,多個(gè)具有自己獨(dú)立數(shù)據(jù)源的系統(tǒng)交互時(shí),我們無(wú)法通過(guò)傳統(tǒng)的如EJB容器管理事務(wù)或者通過(guò)JDBC事務(wù)接口自行管理事務(wù)的方式來(lái)保證事務(wù)的一致性。目前解決分布式系統(tǒng)事務(wù)一致性最典型的做法就是通過(guò)兩階段提交技術(shù)(Java體系基于此,相應(yīng)的提出了 JTA的分布式事務(wù)接口)。要實(shí)現(xiàn)兩階段提交,首先全局事務(wù)的數(shù)據(jù)源必須支持XA特性,也就是說(shuō)如果某個(gè)業(yè)務(wù)流程處于一個(gè)全局事務(wù)內(nèi),而且對(duì)多個(gè)系統(tǒng)有事務(wù)操作(資源變更),則需要實(shí)現(xiàn)和配置所涉及系統(tǒng)的數(shù)據(jù)源(事務(wù)適配器、JMS或JDBC連接池)以支持XA。而且與本地事務(wù)相比,XA協(xié)議的系統(tǒng)開(kāi)銷(xiāo)相當(dāng)大,因而在很多生產(chǎn)系統(tǒng)中應(yīng)當(dāng)慎重考慮是否確實(shí)需要分布式事務(wù)。還有些系統(tǒng)在集成時(shí),不做分布式事務(wù)配置和控制,完全依靠事后對(duì)各系統(tǒng)數(shù)據(jù)做人工校驗(yàn)和補(bǔ)償,這樣的校驗(yàn)往往工作量巨大,效率很低。有些專(zhuān)利技術(shù)或工程實(shí)踐則是針對(duì)特定系統(tǒng)特定業(yè)務(wù),專(zhuān)門(mén)開(kāi)發(fā)數(shù)據(jù)核對(duì)工具或者界面,把技術(shù)問(wèn)題轉(zhuǎn)化為業(yè)務(wù)解決,雖然在某些場(chǎng)景下是很好的解決方案,但面對(duì)紛繁復(fù)雜的業(yè)務(wù),這種做法畢竟不是一個(gè)通用的做法,一旦出現(xiàn)新的集成流程,往往就需要投入新的開(kāi)發(fā)資源,開(kāi)發(fā)成本很高;另外一些專(zhuān)利技術(shù)側(cè)重容錯(cuò)及狀態(tài)恢復(fù),嘗試通過(guò)簡(jiǎn)單方式保證分布式系統(tǒng)間數(shù)據(jù)的可靠性,但缺乏整個(gè)事務(wù)控制的概念,無(wú)法靈活定制事務(wù)控制策略,應(yīng)用場(chǎng)景有限。
技術(shù)實(shí)現(xiàn)思路
本專(zhuān)利技術(shù)正是基于上述問(wèn)題,提出了一種數(shù)據(jù)集成技術(shù),可有效解決多系統(tǒng)集成時(shí)事務(wù)一致性的問(wèn)題。有鑒于此,根據(jù)本專(zhuān)利技術(shù)的一個(gè)方面,提供了一種數(shù)據(jù)集成系統(tǒng),用于第一系統(tǒng)和第二系統(tǒng)之間的數(shù)據(jù)同步,包括事務(wù)運(yùn)行引擎裝置、事務(wù)補(bǔ)償裝置、第一事務(wù)適配器和第二事務(wù)適配器,其中,第一事務(wù)適配器,安裝于所述第一系統(tǒng)處,用于在所述第一系統(tǒng)進(jìn)行業(yè)務(wù)操作時(shí),調(diào)用所述事務(wù)運(yùn)行引擎裝置和所述事務(wù)補(bǔ)償裝置;所述事務(wù)運(yùn)行引擎裝置,為所述業(yè)務(wù)操作建立業(yè)務(wù)流程,若所述業(yè)務(wù)流程被配置為支持全局事務(wù),則為所述業(yè)務(wù)流程創(chuàng)建全局事務(wù)上下文;事務(wù)補(bǔ)償裝置,用于記錄所述全局事務(wù)的狀態(tài),以及在所述業(yè)務(wù)流程運(yùn)行結(jié)束時(shí),根據(jù)所述第二事務(wù)適配器捕獲的調(diào)用情況更新所述全局事務(wù)的狀態(tài);第二事務(wù)適配器,安裝于所述第二系統(tǒng)處,針對(duì)所述全局事務(wù)中的每一個(gè)業(yè)務(wù)操作,提供所述第二系統(tǒng)的服務(wù),捕獲所述調(diào)用情況并根據(jù)所述調(diào)用情況在創(chuàng)建的本地事務(wù)中記錄調(diào)用結(jié)果。因此,在保證數(shù)據(jù)一致性的前提下,本專(zhuān)利技術(shù)不做全局事務(wù)的鎖控制,不需要參與全局事務(wù)的資源必須支持XA協(xié)議,同時(shí)避免了全局事務(wù)在兩階段提交時(shí)加鎖所帶來(lái)的性能損耗。在上述技術(shù)方案中,優(yōu)選的,事務(wù)運(yùn)行引擎裝置還用于為所述全局事務(wù)創(chuàng)建全局事務(wù)標(biāo)識(shí);所述事務(wù)補(bǔ)償裝置還用于新增對(duì)應(yīng)于所述全局事務(wù)標(biāo)識(shí)的狀態(tài)記錄,所述狀態(tài)記錄包括所述全局事務(wù)的狀態(tài)和所述全局事務(wù)中每一業(yè)務(wù)操作的狀態(tài),所述全局事務(wù)中每一業(yè)務(wù)操作的狀態(tài)來(lái)自所述第二事務(wù)適配器。該事務(wù)適配器可嵌入每個(gè)第三方系統(tǒng)中,并可準(zhǔn)確收集每一個(gè)事務(wù)型操作的事務(wù)狀態(tài)和執(zhí)行結(jié)果,以供事務(wù)補(bǔ)償裝置處理。在上述技術(shù)方案中,優(yōu)選的,所述事務(wù)補(bǔ)償裝置還用于在所述全局事務(wù)中所有業(yè)務(wù)操作的狀態(tài)不一致時(shí),對(duì)處理失敗的業(yè)務(wù)操作進(jìn)行補(bǔ)償處理。事務(wù)補(bǔ)償裝置可根據(jù)一個(gè)全局事務(wù)中各事務(wù)型操作的結(jié)果,進(jìn)行對(duì)比,準(zhǔn)確及時(shí)地發(fā)現(xiàn)不一致的數(shù)據(jù)記錄,給予自動(dòng)補(bǔ)償,在自動(dòng)補(bǔ)償不能完整恢復(fù)數(shù)據(jù)一致性的情況下,還可預(yù)警給系統(tǒng)管理員,系統(tǒng)管理員可根據(jù)提示進(jìn)行批量補(bǔ)償操作,從而保證多個(gè)系統(tǒng)集成時(shí)數(shù)據(jù)的一致性。在上述任一技術(shù)方案中,優(yōu)選的,所述第二事務(wù)適配器還用于在接收到來(lái)自所述第一事務(wù)適配器的調(diào)用請(qǐng)求后,根據(jù)所述調(diào)用請(qǐng)求新建所述本地事務(wù),在所述本地事務(wù)被成功提交后,開(kāi)啟另一個(gè)本地事務(wù)。在上述任一技術(shù)方案中,優(yōu)選的,所述第二事務(wù)適配器還用于在所述另一個(gè)本地事務(wù)外圍監(jiān)測(cè)異常情況,在出現(xiàn)異常情況時(shí),回滾所述另一個(gè)本地事務(wù),并新建其他本地事務(wù),根據(jù)異常情況的類(lèi)型更新所述調(diào)用結(jié)果以及提交所述其他本地事務(wù)。根據(jù)本專(zhuān)利技術(shù)的另一方面,還提供了一種數(shù)據(jù)集成方法,用于第一系統(tǒng)和第二系統(tǒng)之間的數(shù)據(jù)同步,包括步驟1202,在所述第一系統(tǒng)進(jìn)行業(yè)務(wù)操作時(shí),通過(guò)安裝于所述第一系統(tǒng)處的第一事務(wù)適配器調(diào)用事務(wù)運(yùn)行引擎裝置和事務(wù)補(bǔ)償裝置,通過(guò)所述事務(wù)運(yùn)行引擎裝置為所述業(yè)務(wù)操作建立業(yè)務(wù)流程,若所述業(yè)務(wù)流程被配置為支持全局事務(wù),則為所述業(yè)務(wù)流程創(chuàng)建全局事務(wù)上下文,通過(guò)事務(wù)補(bǔ)償裝置記錄所述全局事務(wù)的狀態(tài);步驟1204,針對(duì)所述全局事務(wù)中的每一個(gè)業(yè)務(wù)操作,調(diào)用所述第二系統(tǒng)通過(guò)第二事務(wù)適配器提供的服務(wù),所述第二事務(wù)適配器安裝于所述第本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種數(shù)據(jù)集成系統(tǒng),其特征在于,用于第一系統(tǒng)和第二系統(tǒng)之間的數(shù)據(jù)同步,包括:事務(wù)運(yùn)行引擎裝置、事務(wù)補(bǔ)償裝置、第一事務(wù)適配器和第二事務(wù)適配器,其中,第一事務(wù)適配器,安裝于所述第一系統(tǒng)處,用于在所述第一系統(tǒng)進(jìn)行業(yè)務(wù)操作時(shí),調(diào)用所述事務(wù)運(yùn)行引擎裝置和所述事務(wù)補(bǔ)償裝置;所述事務(wù)運(yùn)行引擎裝置,為所述業(yè)務(wù)操作建立業(yè)務(wù)流程,若所述業(yè)務(wù)流程被配置為支持全局事務(wù),則為所述業(yè)務(wù)流程創(chuàng)建全局事務(wù)上下文;事務(wù)補(bǔ)償裝置,用于記錄所述全局事務(wù)的狀態(tài),以及在所述業(yè)務(wù)流程運(yùn)行結(jié)束時(shí),根據(jù)所述第二事務(wù)適配器捕獲的調(diào)用情況更新所述全局事務(wù)的狀態(tài);第二事務(wù)適配器,安裝于所述第二系統(tǒng)處,針對(duì)所述全局事務(wù)中的每一個(gè)業(yè)務(wù)操作,提供所述第二系統(tǒng)的服務(wù),捕獲所述調(diào)用情況并根據(jù)所述調(diào)用情況在創(chuàng)建的本地事務(wù)中記錄調(diào)用結(jié)果。
【技術(shù)特征摘要】
1.一種數(shù)據(jù)集成系統(tǒng),其特征在于,用于第一系統(tǒng)和第二系統(tǒng)之間的數(shù)據(jù)同步,包括事務(wù)運(yùn)行引擎裝置、事務(wù)補(bǔ)償裝置、第一事務(wù)適配器和第二事務(wù)適配器,其中, 第一事務(wù)適配器,安裝于所述第一系統(tǒng)處,用于在所述第一系統(tǒng)進(jìn)行業(yè)務(wù)操作時(shí),調(diào)用所述事務(wù)運(yùn)行引擎裝置和所述事務(wù)補(bǔ)償裝置; 所述事務(wù)運(yùn)行引擎裝置,為所述業(yè)務(wù)操作建立業(yè)務(wù)流程,若所述業(yè)務(wù)流程被配置為支持全局事務(wù),則為所述業(yè)務(wù)流程創(chuàng)建全局事務(wù)上下文; 事務(wù)補(bǔ)償裝置,用于記錄所述全局事務(wù)的狀態(tài),以及在所述業(yè)務(wù)流程運(yùn)行結(jié)束時(shí),根據(jù)所述第二事務(wù)適配器捕獲的調(diào)用情況更新所述全局事務(wù)的狀態(tài); 第二事務(wù)適配器,安裝于所述第二系統(tǒng)處,針對(duì)所述全局事務(wù)中的每一個(gè)業(yè)務(wù)操作,提供所述第二系統(tǒng)的服務(wù),捕獲所述調(diào)用情況并根據(jù)所述調(diào)用情況在創(chuàng)建的本地事務(wù)中記錄調(diào)用結(jié)果。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)集成系統(tǒng),其特征在于,事務(wù)運(yùn)行引擎裝置還用于為所述全局事務(wù)創(chuàng)建全局事務(wù)標(biāo)識(shí); 所述事務(wù)補(bǔ)償裝置還用于新增對(duì)應(yīng)于所述全局事務(wù)標(biāo)識(shí)的狀態(tài)記錄,所述狀態(tài)記錄包括所述全局事務(wù)的狀態(tài)和所述全局事務(wù)中每一業(yè)務(wù)操作的狀態(tài),所述全局事務(wù)中每一業(yè)務(wù)操作的狀態(tài)來(lái)自所述第二事務(wù)適配器。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)集成系統(tǒng),其特征在于,所述事務(wù)補(bǔ)償裝置還用于在所述全局事務(wù)中所有業(yè)務(wù)操作的狀態(tài)不一致時(shí),對(duì)處理失敗的業(yè)務(wù)操作進(jìn)行補(bǔ)償處理。4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的數(shù)據(jù)集成系統(tǒng),其特征在于,所述第二事務(wù)適配器還用于在接收到來(lái)自所述第一事務(wù)適配器的調(diào)用請(qǐng)求后,根據(jù)所述調(diào)用請(qǐng)求新建所述本地事務(wù),在所述本地事務(wù)被成功提交后,開(kāi)啟另一個(gè)本地事務(wù)。5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)集成系統(tǒng),其特征在于,所述第二事務(wù)適配器還用于在所述另一個(gè)本地事務(wù)外圍監(jiān)測(cè)異常情況,在出現(xiàn)異常情況時(shí),回滾所述另一個(gè)本地事務(wù),并新建其他本地事務(wù),根據(jù)異常情況的類(lèi)型更新所述調(diào)...
【專(zhuān)利技術(shù)屬性】
技術(shù)研發(fā)人員:程操紅,
申請(qǐng)(專(zhuān)利權(quán))人:用友軟件股份有限公司,
類(lèi)型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。