通用電力數據平臺的分布化方法和應用的制作方法
【專利摘要】一種通用電力數據平臺的分布化方法,方法以OSGi(OpenServiceGatewayinitiative,開放服務網關)規(guī)范及WebService技術作為底層實現機制,通過引入典型的責任鏈設計模式,在服務消費者(Client)和服務提供者(Server)之間設置攔截器(Interceptor),并由后者自動攔截和轉發(fā)所有由Client發(fā)起的遠程服務調用,從而保證在實現平臺分布化的同時,盡量維持原有OSGi規(guī)范的編程模型,并使得電力數據集成平臺具備探測元數據變化并執(zhí)行相應業(yè)務操作的能力。
【專利說明】通用電力數據平臺的分布化方法和應用
【技術領域】
[0001]本發(fā)明屬于電力系統(tǒng)數據管理領域,具體涉及一種通用電力數據平臺的分布化方法和應用。
【背景技術】
[0002]目前的電力數據集成方案主要通過SOA/WebService技術實現異構電力數據的格式交換,這種方案的本質是將待轉換電力數據作為參數封裝為SOAP調用消息并發(fā)送至目標應用,其對一些提供簡單服務的MIS系統(tǒng)支持較好,但在數據處理邏輯的透明分布化、數據變化事件的訂閱通知等方面尚有不足,而這些對于提升電力應用系統(tǒng)對數據變更的快速響應能力都是至關重要的。
[0003]還有一些方案通過P2P技術或面向服務的中間件模型來擴展標準的OSGi規(guī)范,雖然較好解決了分布式環(huán)境中遠程服務的發(fā)布和獲取的問題,但因對OSGi的標準編程模型做了較大改動,導致很難將方案直接應用于實際,同時還存在分布邏輯的侵入性問題。
【發(fā)明內容】
[0004]為了克服上述現有技術的不足,本發(fā)明的目的在于提供一種通用電力數據平臺的分布化方法,使分布化邏輯盡可能低地侵入原有的業(yè)務邏輯,并保證業(yè)務模塊在系統(tǒng)不間斷運行前提下的熱插拔和版本更新特性。
[0005]為了實現上述目的,本發(fā)明采用的技術方案是:
一種通用電力數據平臺的分布化方法,包括:
基于OSGi的分布式擴展模型,在保持OSGi的原有編程模型的同時,使用平臺中立的WSDL/S0AP等服務描述和訪問機制,自動對來自于客戶端的調用請求進行攔截和轉發(fā)。
[0006]通用電力元數據變化事件的被動檢查與主動訂閱/通知,電力數據的持續(xù)變化將多次觸發(fā)某些業(yè)務邏輯,即電力系統(tǒng)中的事件源往往是系統(tǒng)內部的數據,而非位于系統(tǒng)外部的使用者或其他系統(tǒng)。因此,電力數據集成平臺必須具備探測元數據變化并執(zhí)行相應業(yè)務操作的能力。。
[0007]所述基于OSGi的分布式擴展模型:
步驟1:基于典型的責任鏈設計模式,在服務消費者(Client)和服務提供者(Server)之間引入攔截器(Interceptor);
步驟2:為OSGi模塊編寫對應的攔截器模塊,后者在獲取到OSGi容器上下文后,將攔截方法(dolntercept)封裝為OSGi服務并發(fā)布到注冊中心(ZooKeeper Server);
步驟3:通過OSGi R4.3規(guī)范新增的服務事件監(jiān)聽器鉤子(Service Event ListenerHook)實現對來自于Client的調用請求進行攔截,然后將目標方法與指定的織入配置(與Spring AOP的配置信息類似)進行匹配;
步驟4:通過編織鉤子(Weaving Hook)將匹配到的切面邏輯(以AspectJ的語法定義)織入dolntercept方法的合適位置; 步驟5:由攔截器轉發(fā)所有由服務消費者發(fā)起的遠程服務調用。
[0008]所述通用電力元數據變化事件的被動檢查方式:
步驟1:在通用電力數據平臺的管理層中引入任務調度器,后者為平臺中每個模塊實例啟動一個專門的監(jiān)聽線程;
步驟2:監(jiān)聽線程以固定時間間隔拉取(pull)與模塊實例關聯(lián)的元數據,并檢查其是否與之前的一致,若有變化,則由任務管調度器回調相應的接口方法。
[0009]所述通用電力元數據變化事件的主動訂閱/通知方式:
步驟1:引入GUI編程中的事件驅動模型,以配置的方式為元數據實例指定一個或多個模塊實例作為數據變化事件的訂閱者;
步驟2:當發(fā)生寫數據操作時,元數據實例首先將變化的數據封裝為事件對象,然后把該事件對象主動推送(push)到各訂閱者的事件隊列中;
步驟3:任務調度器啟動一個全局的監(jiān)聽線程掃描各訂閱者的事件隊列,并通知作為事件訂閱者的相應模塊實例觸發(fā)相應的業(yè)務邏輯。
[0010]本發(fā)明與現有的技術相比,具有如下優(yōu)點:
(1),保持了 OSGi規(guī)范的原有編程模型。
[0011](2),使用了平臺中立的WSDL/S0AP等服務描述和訪問機制。
[0012](3),允許服務訪問請求和響應攜帶復雜的自定義數據類型。
[0013](4),透明的模塊分布化和電力元數據變化通知機制。
【專利附圖】
【附圖說明】
[0014]圖1為本發(fā)明的底層架構與交互模型示意圖。
【具體實施方式】
[0015]下面結合附圖對本發(fā)明做進一步詳細說明。
[0016]如圖1所示,本發(fā)明為一種通用電力數據平臺的分布化方法,通過引入典型的責任鏈設計模式,在服務消費者(Client)和服務提供者(Server)之間設置攔截器(Interc印tor),并由后者自動攔截和轉發(fā)所有由Client發(fā)起的遠程服務調用,從而保證在實現平臺分布化的同時,使得分布化邏輯盡可能低地侵入原有的業(yè)務邏輯。
[0017]實施例1,將遠程輸入層的元數據通過本地輸出層導出到目標數據庫。
[0018]將遠程輸入層模塊實例發(fā)布到注冊中心;本地輸出層模塊(Meta2DB)實例查詢注冊中心獲取并訂閱相應元數據;元數據發(fā)生變化時,主動回調Meta2DB實例的接口,并由與Meta2DB實例相對應的攔截器模塊織入所需的事務邏輯。
[0019]實施例2,從遠程輸入層中導入元數據,經本地元數據層實例處理后,將元數據導出到遠程輸出層。
[0020]將遠程輸入層模塊(Db2Meta)實例及遠程輸出層模塊(Meta2DB)實例發(fā)布到注冊中心;本地元數據層模塊(Metadata)實例查詢注冊中心獲取遠程Db2Meta實例的服務,并對得到的元數據進行過濾、組合、排序等處理;本地元數據層模塊(Metadata)實例查詢注冊中心獲取遠程Meta2DB實例的服務,并將處理后的元數據導出到目標數據庫。
【權利要求】
1.一種通用電力數據平臺的分布化方法,其特征在于,包括:基于OSGi規(guī)范的分布式擴展模型,在保持OSGi的原有編程模型的同時,使用平臺中立的WSDL/S0AP等服務描述和訪問機制,自動對來自于客戶端的調用請求進行攔截和轉發(fā);通用電力元數據變化事件的被動檢查與主動訂閱/通知,電力數據的持續(xù)變化將多次觸發(fā)某些業(yè)務邏輯,即電力系統(tǒng)中的事件源往往是系統(tǒng)內部的數據,而非位于系統(tǒng)外部的使用者或其他系統(tǒng); 因此,電力數據集成平臺必須具備探測元數據變化并執(zhí)行相應業(yè)務操作的能力。
2.根據權利要求1所述的通用電力數據平臺的分布化方法,其特征在于,所述基于OSGi的分布式擴展模型: 步驟1:基于典型的責任鏈設計模式,在服務消費者(Client)和服務提供者(Server)之間引入攔截器(Interceptor); 步驟2:為OSGi模塊編寫對應的攔截器模塊,后者在獲取到OSGi容器上下文后,將攔截方法(dolntercept)封裝為OSGi服務并發(fā)布到注冊中心(ZooKeeper Server); 步驟3:通過OSGi R4.3規(guī)范新增的服務事件監(jiān)聽器鉤子(Service Event ListenerHook)實現對來自于Client的調用請求進行攔截,然后將目標方法與指定的織入配置(與Spring AOP的配置信息類似)進行匹配; 步驟4:通過編織鉤子(Weaving Hook)將匹配到的切面邏輯(以AspectJ的語法定義)織入攔截方法dolntercept的合適位置; 步驟5:由攔截器轉發(fā)所有由服務消費者發(fā)起的遠程服務調用。
3.根據權利要求1所述的通用電力數據平臺的分布化方法,其特征在于,所述通用電力元數據變化事件的被動檢查方式: 步驟1:在通用電力數據平臺的管理層中引入任務調度器,后者為平臺中每個模塊實例啟動一個專門的監(jiān)聽線程; 步驟2:監(jiān)聽線程以固定時間間隔拉取(pull)與模塊實例關聯(lián)的元數據,并檢查其是否與之前的一致,若有變化,則由任務管調度器回調相應的接口方法。
4.根據權利要求1所述的通用電力數據平臺的分布化方法,其特征在于,所述通用電力元數據變化事件的主動訂閱/通知方式: 步驟1:引入GUI編程中的事件驅動模型,以配置的方式為元數據實例指定一個或多個模塊實例作為數據變化事件的訂閱者; 步驟2:當發(fā)生寫數據操作時,元數據實例首先將變化的數據封裝為事件對象,然后把該事件對象主動推送(push)到各訂閱者的事件隊列中; 步驟3:任務調度器啟動一個全局的監(jiān)聽線程掃描各訂閱者的事件隊列,并通知作為事件訂閱者的相應模塊實例觸發(fā)相應的業(yè)務邏輯。
【文檔編號】G06Q50/06GK103761235SQ201310582343
【公開日】2014年4月30日 申請日期:2013年11月18日 優(yōu)先權日:2013年11月18日
【發(fā)明者】陳穎, 黃少偉, 胡平, 汪國武 申請人:蕪湖大學科技園發(fā)展有限公司