一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法
【專利摘要】本發(fā)明公開了一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,方法以面向切面編程AOP及冗余副本機制作為實現(xiàn)手段,通過在設(shè)計階段將負(fù)載均衡、容錯等非功能性邏輯抽取、刻畫成為若干獨立可管理的切面,并在運行時將其動態(tài)織入分布式通用電力數(shù)據(jù)平臺中以保證平臺服務(wù)質(zhì)量,同時消除或降低開發(fā)人員對非業(yè)務(wù)邏輯的關(guān)注度要求,有效提升平臺的可用性及可維護性。
【專利說明】一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電力數(shù)據(jù)系統(tǒng)領(lǐng)域,具體為一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法。
【背景技術(shù)】
[0002]在開發(fā)具有容錯能力的通用電力數(shù)據(jù)平臺時,需要開發(fā)人員關(guān)注大量用以實現(xiàn)容錯邏輯的代碼(即非功能性代碼,它們往往與業(yè)務(wù)無關(guān),且“橫切” 了多個功能性模塊),致使容錯系統(tǒng)具有了侵入性,增加了系統(tǒng)的開發(fā)難度和維護成本。另一方面,在指定不同容錯策略或性能指標(biāo)時,容錯平臺中各Bundle的行為可能是完全不同的,而傳統(tǒng)的面向?qū)ο蠓治?、設(shè)計方法缺乏對容錯軟件系統(tǒng)在設(shè)計階段的統(tǒng)一描述機制,降低了容錯邏輯的可管理性和復(fù)用性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,使負(fù)載均衡、容錯等非功能性邏輯盡可能低地侵入數(shù)據(jù)平臺的業(yè)務(wù)邏輯,同時消除或降低開發(fā)人員對非業(yè)務(wù)邏輯的關(guān)注度要求,有效提升平臺的可用性及可維護性。
[0004]為了達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案為:
[0005]一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,其特征在于:基于面向切面編程AOP和冗余副本機制的容錯模型,通過切面分離、描述和織入環(huán)節(jié),在數(shù)據(jù)平臺運行時將容錯切面所描述的容錯邏輯動態(tài)編織到系統(tǒng)所含的業(yè)務(wù)邏輯之上,最終使得數(shù)據(jù)平臺具備分布式環(huán)境下的容錯能力;
[0006]電力數(shù)據(jù)平臺中業(yè)務(wù)模塊的分布式副本交互方法,通過分析平臺所含關(guān)鍵業(yè)務(wù)模塊及其冗余副本與容錯邏輯相關(guān)的結(jié)構(gòu)和行為,并結(jié)合對象約束語言O(shè)CL對容錯切面進行形式化描述,以保證平臺的容錯能力。
[0007]所述的一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,其特征在于:所述基于面向切面編程AOP和冗余副本機制的容錯模型工作過程如下:
[0008](I),OSGi模塊及其冗余副本所形成的集群中的成員Member作為服務(wù)請求者發(fā)出服務(wù)請求;
[0009](2)、服務(wù)請求被攔截器Invocation Interceptor截獲,并對服務(wù)請求進行統(tǒng)一控制和管理,包括初始化、身份驗證、權(quán)限檢查等;
[0010](3)、動態(tài)切面編織器Dynamic Aspects Weaver裝載和解析為數(shù)據(jù)平臺配置的容錯策略FT Policy ;
[0011](4)、動態(tài)切面編織器在切面管理器Aspects Manager中匹配相關(guān)的切面,并將這些切面所含的邏輯織入相應(yīng)模塊,最終創(chuàng)建出代理模塊;
[0012](5)、攔截器將服務(wù)請求轉(zhuǎn)發(fā)至代理構(gòu)件Dynamic Proxy ;
[0013](6)、代理構(gòu)件根據(jù)服務(wù)請求調(diào)用原有模塊的業(yè)務(wù)邏輯,并負(fù)責(zé)完成容錯邏輯和其他非關(guān)鍵邏輯。
[0014]所述的一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,其特征在于:所述電力數(shù)據(jù)平臺中業(yè)務(wù)模塊的分布式副本交互方法過程如下:
[0015](I )、使用UML的AOP擴展機制并結(jié)合對象約束語言0CL,將數(shù)據(jù)平臺中各容錯切面形式化描述為角色Role及屬性Property的集合;
[0016](2)、將多個成員Member組成一個集群Group,并由狀態(tài)同步切面StatusSynch作為交互協(xié)議,以描述其二者間的主題subject/觀察者observer關(guān)系;
[0017](3)、以形式化的方式實現(xiàn)狀態(tài)同步切面StatusSynch,內(nèi)容包括成員加入/離開,狀態(tài)返回/同步、各行為的先決/后置條件;
[0018](4)、切面管理器初始化狀態(tài)同步切面StatusSynch,并依據(jù)策略文件中指定的信息織入指定的目標(biāo)模塊;
[0019](5)、由狀態(tài)同步切面StatusSynch負(fù)責(zé)查找集群Group的上下文并完成狀態(tài)同步等相關(guān)操作。
[0020]本發(fā)明與現(xiàn)有的技術(shù)相比,具有如下優(yōu)點:
[0021](I)、支持在設(shè)計階段精確描述切面結(jié)構(gòu)及軟件副本間的交互行為;
[0022](2)、支持定量評價不同模塊的被侵入性程度;
[0023](3)、提供了通用的基于現(xiàn)有平臺和技術(shù)的編程級容錯模型支持。
【專利附圖】
【附圖說明】
[0024]圖1為本發(fā)明的分布式非侵入容錯模型示意圖。
[0025]圖2為本發(fā)明的容錯切面UML示意圖。
【具體實施方式】
[0026]如圖1、圖2所示。一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,基于面向切面編程AOP和冗余副本機制的容錯模型,通過切面分離、描述和織入環(huán)節(jié),在數(shù)據(jù)平臺運行時將容錯切面所描述的容錯邏輯動態(tài)編織到系統(tǒng)所含的業(yè)務(wù)邏輯之上,最終使得數(shù)據(jù)平臺具備分布式環(huán)境下的容錯能力;
[0027]電力數(shù)據(jù)平臺中業(yè)務(wù)模塊的分布式副本交互方法,通過分析平臺所含關(guān)鍵業(yè)務(wù)模塊及其冗余副本與容錯邏輯相關(guān)的結(jié)構(gòu)和行為,并結(jié)合對象約束語言O(shè)CL對容錯切面進行形式化描述,以保證平臺的容錯能力。
[0028]基于面向切面編程AOP和冗余副本機制的容錯模型工作過程如下:
[0029](I),OSGi模塊及其冗余副本所形成的集群中的成員Member作為服務(wù)請求者發(fā)出服務(wù)請求;
[0030](2)、服務(wù)請求被攔截器Invocation Interceptor截獲,并對服務(wù)請求進行統(tǒng)一控制和管理,包括初始化、身份驗證、權(quán)限檢查等;
[0031](3)、動態(tài)切面編織器Dynamic Aspects Weaver裝載和解析為數(shù)據(jù)平臺配置的容錯策略FT Policy ;
[0032](4)、動態(tài)切面編織器在切面管理器Aspects Manager中匹配相關(guān)的切面,并將這些切面所含的邏輯織入相應(yīng)模塊,最終創(chuàng)建出代理模塊;[0033](5)、攔截器將服務(wù)請求轉(zhuǎn)發(fā)至代理構(gòu)件Dynamic Proxy ;
[0034](6)、代理構(gòu)件根據(jù)服務(wù)請求調(diào)用原有模塊的業(yè)務(wù)邏輯,并負(fù)責(zé)完成容錯邏輯和其他非關(guān)鍵邏輯。
[0035]電力數(shù)據(jù)平臺中業(yè)務(wù)模塊的分布式副本交互方法過程如下:
[0036](I )、使用UML的AOP擴展機制并結(jié)合對象約束語言0CL,將數(shù)據(jù)平臺中各容錯切面形式化描述為角色Role及屬性Property的集合;
[0037](2)、將多個成員Member組成一個集群Group,并由狀態(tài)同步切面StatusSynch作為交互協(xié)議,以描述其二者間的主題subject/觀察者observer關(guān)系;
[0038](3)、以形式化的方式實現(xiàn)狀態(tài)同步切面StatusSynch,內(nèi)容包括成員加入/離開,狀態(tài)返回/同步、各行為的先決/后置條件;
[0039](4)、切面管理器初始化狀態(tài)同步切面StatusSynch,并依據(jù)策略文件中指定的信息織入指定的目標(biāo)模塊;
[0040](5)、由狀態(tài)同步切面StatusSynch負(fù)責(zé)查找集群Group的上下文并完成狀態(tài)同步等相關(guān)操作。
[0041]如圖1所示,本發(fā)明為一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述和織入方法,方法以AOP (Aspect-Oriented Programming,面向切面編程)及冗余副本機制作為實現(xiàn)手段,通過在設(shè)計階段將負(fù)載均衡、容錯等非功能性邏輯抽取、刻畫成為若干獨立可管理的切面,并在運行時將其動態(tài)織入分布式通用電力數(shù)據(jù)平臺中以保證平臺服務(wù)質(zhì)量,同時消除或降低開發(fā)人員對非業(yè)務(wù)邏輯的關(guān)注度要求,有效提升平臺的可用性及可維護性。
[0042]實施例1,目標(biāo)OSGi Bundle的節(jié)點失效檢測與副本自動切換。
[0043]配置容錯策略,將一定數(shù)量的成員節(jié)點加入到同一集群,各節(jié)點中的GroupManager實例通過StatusSynch切面和多播機制自動同步彼此的狀態(tài);訪問目標(biāo)節(jié)點上的Bundle服務(wù),若超時,則主動輪詢其余成員節(jié)點直至發(fā)現(xiàn)可用的Group Manager實例,并將訪問請求分派至該實例所在節(jié)點的相應(yīng)副本Bundle ;訪問完成后更新其余節(jié)點的GroupManager的相關(guān)狀態(tài)。
【權(quán)利要求】
1.一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,其特征在于:基于面向切面編程AOP和冗余副本機制的容錯模型,通過切面分離、描述和織入環(huán)節(jié),在數(shù)據(jù)平臺運行時將容錯切面所描述的容錯邏輯動態(tài)編織到系統(tǒng)所含的業(yè)務(wù)邏輯之上,最終使得數(shù)據(jù)平臺具備分布式環(huán)境下的容錯能力; 電力數(shù)據(jù)平臺中業(yè)務(wù)模塊的分布式副本交互方法,通過分析平臺所含關(guān)鍵業(yè)務(wù)模塊及其冗余副本與容錯邏輯相關(guān)的結(jié)構(gòu)和行為,并結(jié)合對象約束語言O(shè)CL對容錯切面進行形式化描述,以保證平臺的容錯能力。
2.根據(jù)權(quán)利要求1所述的一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,其特征在于:所述基于面向切面編程AOP和冗余副本機制的容錯模型工作過程如下: (1)、0SGi模塊及其冗余副本所形成的集群中的成員Member作為服務(wù)請求者發(fā)出服務(wù)請求; (2)、服務(wù)請求被攔截器InvocationInterceptor截獲,并對服務(wù)請求進行統(tǒng)一控制和管理,包括初始化、身份驗證、權(quán)限檢查等; (3)、動態(tài)切面編織器DynamicAspects Weaver裝載和解析為數(shù)據(jù)平臺配置的容錯策略 FT Policy ; (4)、動態(tài)切面編織器在切面管理器AspectsManager中匹配相關(guān)的切面,并將這些切面所含的邏輯織入相應(yīng)模塊,最終創(chuàng)建出代理模塊; (5)、攔截器將服務(wù)請求轉(zhuǎn)發(fā)至代理構(gòu)件DynamicProxy ; (6)、代理構(gòu)件根據(jù)服務(wù)請求調(diào)用原有模塊的業(yè)務(wù)邏輯,并負(fù)責(zé)完成容錯邏輯和其他非關(guān)鍵邏輯。
3.根據(jù)權(quán)利要求1所述的一種通用電力數(shù)據(jù)平臺的分布式容錯切面描述織入方法,其特征在于:所述電力數(shù)據(jù)平臺中業(yè)務(wù)模塊的分布式副本交互方法過程如下: (1)、使用UML的AOP擴展機制并結(jié)合對象約束語言0CL,將數(shù)據(jù)平臺中各容錯切面形式化描述為角色Role及屬性Property的集合; (2)、將多個成員Member組成一個集群Group,并由狀態(tài)同步切面StatusSynch作為交互協(xié)議,以描述其二者間的主題subject/觀察者observer關(guān)系; (3)、以形式化的方式實現(xiàn)狀態(tài)同步切面StatusSynch,內(nèi)容包括成員加入/離開,狀態(tài)返回/同步、各行為的先決/后置條件; (4)、切面管理器初始化狀態(tài)同步切面StatusSynch,并依據(jù)策略文件中指定的信息織入指定的目標(biāo)1旲塊; (5)、由狀態(tài)同步切面StatusSynch負(fù)責(zé)查找集群Group的上下文并完成狀態(tài)同步等相關(guān)操作。
【文檔編號】G06F17/50GK103823919SQ201310582587
【公開日】2014年5月28日 申請日期:2013年11月18日 優(yōu)先權(quán)日:2013年11月18日
【發(fā)明者】陳穎, 黃少偉, 胡平, 汪國武 申請人:蕪湖大學(xué)科技園發(fā)展有限公司