專利名稱:應(yīng)用于電力自動化系統(tǒng)中的圖形、模型一體化的版本管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電力自動化系統(tǒng)中圖模庫一體化技術(shù),特別是并行編輯、版本管理與回 溯等技術(shù)領(lǐng)域。
背景技術(shù):
電力自動化系統(tǒng)由于電力網(wǎng)絡(luò)的不斷建設(shè),其數(shù)據(jù)是不斷變化的,而實時系統(tǒng)采集、 存儲的數(shù)據(jù)和當(dāng)時對應(yīng)的網(wǎng)絡(luò)結(jié)構(gòu)、系統(tǒng)配置是對應(yīng)的如常見的事故追憶功能,就完 全需要對應(yīng)當(dāng)時的網(wǎng)絡(luò)配置(圖形、模型配置),這種情況下,保存當(dāng)時的數(shù)據(jù)版本就 是必需的。
同時對電網(wǎng)運行方式的研究,為了優(yōu)化或者進行規(guī)劃, 一般需要臨時調(diào)整網(wǎng)絡(luò)結(jié)構(gòu) 或者設(shè)備參數(shù)等,進行適當(dāng)?shù)哪M運行,而且研究的網(wǎng)絡(luò)數(shù)據(jù)環(huán)境如何與實時運行系統(tǒng) 互不干擾,這也可以通過版本管理功能有效實現(xiàn)。
并且對于較大型系統(tǒng),如配電網(wǎng)和大型調(diào)度,數(shù)據(jù)維護和錄入時不可避免會遇到多 用戶并行編輯,如何有效避免沖突,而且每個編輯用戶在完整完成自己的作之前,如 何有效保存自己的工作,又不影響實時運行環(huán)境可以通過版本管理中版本環(huán)境的功能來 有效實現(xiàn)。
目前在電力系統(tǒng)中版本管理方法一般限制于單獨的圖形,而且圖形的版本管理是整 個文件級別,不能管理到單個圖元。而且圖形和參數(shù)一體的版本管理還沒有涉及到。所 以整個電網(wǎng)的整體斷面很難重現(xiàn),也不能徹底解決模擬和并行編輯的難題。
發(fā)明內(nèi)容
本發(fā)明的目的是為了實現(xiàn)電力自動化系統(tǒng)圖模庫并行編輯、版本回溯等功能,提出 了一種記錄級的版本管理方法。所述的方法是通過如下的技術(shù)方案實現(xiàn)的,所述的方法
包括
實際電網(wǎng)所對應(yīng)的圖形、模型數(shù)據(jù)按照記錄集的模式存放于關(guān)系數(shù)據(jù)庫中,而且始
終保存一份完整數(shù)據(jù)即運行版本(Run Version),系統(tǒng)運行的各部分均從其中取數(shù)據(jù)。 每一編輯者建立一個版本環(huán)境,從運行版本簽出(Checkout),并將記錄置鎖,可并行 編輯,此后其他用戶不能再修改該數(shù)據(jù),但可以讀取和引用(所使用的數(shù)據(jù)是原始記錄數(shù)據(jù),修改用戶在簽入(Check In)之前的任何操作均是私有的)。編輯過程中保存的 數(shù)據(jù)存放在關(guān)系庫中與原始數(shù)據(jù)表克隆出的臨時表中,并通過特定的編碼標(biāo)識在不同版 本中的修改記錄。簽入操作時,數(shù)據(jù)保存至預(yù)備版本(Ready Version)中,同時數(shù)據(jù) 的修改歷史保存至相應(yīng)表的歷史順序記錄中,以便回溯。此時可以進行模擬運行的處理, 直至用戶應(yīng)用該版本,從而數(shù)據(jù)合并到運行版本中,可以用于實時運行。
所述的記錄置鎖是將簽出的記錄置上簽出者的標(biāo)志。此后,其他用戶無法再簽出, 但簽出者可反復(fù)編輯,直至簽入后解鎖。
所述的其他用戶可以讀取和引用他人己簽出數(shù)據(jù),是該數(shù)據(jù)被簽出時的斷面數(shù)據(jù), 而簽出者在簽出之后所做的任何修改,在簽入之前是完全私有的,其他用戶在此期間是 訪問不到簽出數(shù)據(jù)的任何變化。
回溯,是指在一系列的版本發(fā)生后,如果需要其中的一個歷史版本,可以根據(jù)當(dāng)前 的運行版本數(shù)據(jù),結(jié)合本要求中提到的歷史順序記錄,該歷史版本所對應(yīng)的完整數(shù)據(jù), 而不是在不同的歷史斷面進行完全保存。其主要優(yōu)勢在于保存所占用的資源大量減少, 而且無需其他操作可回溯到任意版本等。而完整保存斷面,需要對每個版本進行全數(shù)據(jù) 保存,占用資源大,且只能回溯到保存斷面的版本。
本發(fā)明所采用的圖形、模型一體化的版本管理方法完全解決了多用戶并行編輯沖突 問題;保證了在電力系統(tǒng)運行中可以取得任意時間斷面的完整模型,保證事故追憶能有 效進行;并可以在不影響電網(wǎng)運行下進行電網(wǎng)研究,提供有效的電網(wǎng)規(guī)劃指導(dǎo)。
圖1是本發(fā)明方法使用的數(shù)據(jù)流程圖。
具體實施例方式
下面根據(jù)說明書附圖對本發(fā)明的技術(shù)方案作進一步詳細表述。
本發(fā)明公開了一種應(yīng)用于電力自動化系統(tǒng)中的圖形、模型一體化的記錄級版本管理
方法,其特征在于
始終存在一份完整數(shù)據(jù)即運行版本,電力自動化系統(tǒng)運行的圖形、模型均從中讀取, 每一編輯者建立一個版本環(huán)境,從運行版本簽出,并將記錄置鎖并行編輯,此后其他用 戶不能再修改該數(shù)據(jù),但可以讀取和引用,所讀取和引用的數(shù)據(jù)是原始記錄數(shù)據(jù),修改 用戶在簽入之前的任何操作均是私有的;簽入后的數(shù)據(jù)保存在預(yù)備版本中,可以進行模
擬運行的處理,直至用戶應(yīng)用該預(yù)備版本,從而將預(yù)備版本中的數(shù)據(jù)合并到運行版本中,
可以用于實時運行;所述的完整數(shù)據(jù)是實際電網(wǎng)所對應(yīng)的圖形、模型數(shù)據(jù);按照記錄集的模式存放于關(guān) 系數(shù)據(jù)庫中;
所述的記錄置鎖是將簽出的記錄置上簽出者的標(biāo)志,此后,其他用戶無法再簽出, 但簽出者可反復(fù)編輯,直至簽入后解鎖;
所述的其他用戶可以讀取和引用他人已簽出數(shù)據(jù),是該數(shù)據(jù)被簽出時的斷面數(shù)據(jù), 而簽出者在簽出之后所做的任何修改,在簽入之前是完全私有的,其他用戶在此期間是 訪問不到簽出數(shù)據(jù)的任何變化。
1. 圖模一體化版本管理實現(xiàn)的關(guān)鍵技術(shù)在于版本控制的幾個數(shù)據(jù)庫設(shè)計,本發(fā)明 方法中實現(xiàn)版本控制需要下面四個數(shù)據(jù)庫
1) 臨時工作表用戶Check Out之后,Check In之前,對表的任何更改(添加、刪 除、更改)在存盤時均記錄在該表中。臨時工作表對用戶是透明的。
2) 增量修改表數(shù)據(jù)Check in時的存放點,保存多個版本的Check in修改部分信 息, 一次導(dǎo)入至當(dāng)前有效版本。
3) 當(dāng)前有效表為系統(tǒng)提供有效數(shù)據(jù)的數(shù)據(jù)表,如供實時庫取值的表。
4) 版本日志表記錄不同版本修改前信息所使用的數(shù)據(jù)表。保存數(shù)據(jù)以供用戶回 溯至某一版本時使用,是多次增量修改表的逆向操作。
前三個表是每個對象具有的,第四個表全系統(tǒng)唯一一張。
2. 版本控制實現(xiàn)過程數(shù)據(jù)流主要環(huán)節(jié)和狀態(tài)有下面四個
1) 保存把內(nèi)存中保存的修改記錄裝入臨時工作表(臨時工作表隨需要動態(tài)創(chuàng)建)。
2) 簽入把簽出后多次保存的增量裝入增量修改表,同時刪除臨時工作表。
3) 更新將增量修改表中內(nèi)容更改到目前的有效表,形成新的版本。
4) 回退按照簽入逆向依次回退(任意版本的回退不支持,比較復(fù)雜不考慮)。 目前的版本控制只能作到只保留最新版本的全記錄,不能任意指定版本的記錄,除
非進行回退,到舊版本,切不可逆,無法再回到新版本;最多有一個回退記錄。
圖形和模型可能處于的三個狀態(tài)New Check Out (Editing)新簽出;Check Out and Saved Check In; Check In and Reversed Deleted 。
圖1所示為本發(fā)明方法使用的數(shù)據(jù)流程圖。
3. 圖模一體化版本管理實現(xiàn)中圖模管理的關(guān)系
圖形和CIM模型數(shù)據(jù)分別存儲于單獨的數(shù)據(jù)庫表中,以下分別標(biāo)識為GraDB和 CIMDB。 GraDB由圖形編輯工具GCD維護,CIMDB由CIM數(shù)據(jù)管理模塊CIMMgr維 護。
存在如下確定條件和約定1 )GCD無權(quán)處理CIMDB,因此對GCD, CIMDB視為黑箱。由于與GCD與CIMMgr 的層次設(shè)計較為分明,GCD不關(guān)心CIM數(shù)據(jù)的存儲方式,僅調(diào)用接口即可完成所有工 作,因此版本管理時,GCD僅處理自身部分的數(shù)據(jù),CIM模型數(shù)據(jù)只能單獨處理。因 此二者的數(shù)據(jù)一致性維護是個問題。
2) 圖形的形數(shù)據(jù)和SCADA數(shù)據(jù)考慮Incremental機制,均基于記錄級實現(xiàn),亦即 Check In時,Incremental機制會將本次操作的所有記錄以約定的形式提供給系統(tǒng)設(shè)定的 接收者。Reverse時與此類似。
3) 任何一個加入版本管理機制的表,均需具備三個固有字段IID、 iVsersion和 iLockFlag字段。
4.通過圖形和模型編輯的過程來說明版本控制的具體過程 4.1打開圖形
通過關(guān)系庫接口讀圖形的關(guān)系庫表(只能讀取的是有效表),解釋到圖形的私有內(nèi) 存格式。
4.2進行任意修改前進行Check out
1) 鎖定一定的對象,
用戶用鼠標(biāo)拖拽矩形,縮放、定位至欲編輯部分。選擇Check out功能。
2) 申請Check out,此時GCD以矩形為條件,結(jié)合條件LockFlag字段標(biāo)志為無人 Lock狀態(tài),對各圖層進行選取,在所有圖層的基本圖形存儲表中選擇記錄;
如果鎖定失敗(正常情況下,是因為有用戶已經(jīng)鎖定),checkout失敗,返回錯誤 信息,并可提示正在使用者。
3) 如果沒有人鎖定,用戶checkout成功,設(shè)置鎖定對象的lockflag標(biāo)志,此版本 不允許再次checkout;同時向CIMMgr提請鎖定。
CIMMgr處理完成,返回OK標(biāo)志后,GCD記錄當(dāng)前版本的有關(guān)信息,允許用戶開 始編輯。
4) 不同用戶可以同時選擇不同區(qū)域,鎖定一定的對象;修改后save保存到自己的 臨時工作表中,再打開是自己的臨時工作表+增量修改表+實際有效表
(B用戶不能指定打開A的臨時工作表,只能打開自己的B臨時工作表;修改用 戶在Check In之前的任何操作均是私有的) 4.3畫圖的時候
1) 圖形修改后,先將圖形存到私有內(nèi)存。
2) 圖形與object的關(guān)聯(lián),先將圖形關(guān)聯(lián)的object存儲在圖形私有內(nèi)存
3) 設(shè)備參數(shù)修改,通過CIMMgr形成CIMMgr進行版本維護的緩存區(qū)域。4.4 Save的步驟
1) 畫圖時,完全不生成模型modd,保存save的時候產(chǎn)生模型model;生成模型 model,生成連接關(guān)系保存到圖形私有內(nèi)存
2) 編輯完成,用戶點擊保存,此時GCD調(diào)用與CIMMgr的接口函數(shù),將以上建立 的緩存區(qū)域通知CIMMgr,后者根據(jù)緩存中的內(nèi)存結(jié)構(gòu),分解相應(yīng)的信息,將數(shù)據(jù)分別 存入對應(yīng)數(shù)據(jù)表的臨時工作表,形成有效的連接關(guān)系。
若失敗要求用戶手動修改。修改后繼續(xù)保存;如果用戶不想修改,也可以直接選擇 只保存圖形的修改參數(shù)。
若成功GCD將圖形數(shù)據(jù)更改和新增部分存入臨時工作表;若失敗,通過接口通知 CIMMgr存儲失敗,請求回退。否則完成本次編輯。
3) 存儲時根據(jù)版本信息,新增、修改直接存入臨時工作表,刪除時則拷貝該記錄 至臨時工作表,但置刪除標(biāo)記。
4) 保存后再讀取數(shù)據(jù),再讀取數(shù)據(jù)時候(調(diào)用API并傳遞版本號信息)。其讀取過 程為-
先分析臨時工作表中該版本的記錄,獲取鍵值列表,排除當(dāng)前有效表中鍵值在列表 中的記錄,全部取出來,然后加上臨時工作表中對應(yīng)版本的非刪除記錄。
若單條記錄取先分析臨時工作表中是否存在該記錄,未刪除則直接取出,若不存 在,回當(dāng)前有效表取。
5) 保存后再存儲數(shù)據(jù)相對簡單,直接在臨時工作表添加記錄即可。
6) 保存后再編輯
a) 用戶查看設(shè)備信息此時GCD調(diào)用與CIMMgr的接口函數(shù),獲取相應(yīng)信息。
b) 用戶對信息再進行修改或新增設(shè)備后,如果査詢設(shè)備的參數(shù),先查詢私有內(nèi)存; 如果沒有,再向CIM要,而且還要加上當(dāng)前的版本信息(CIM去判斷一CIM的臨時+ 增量+有效)
4.5模擬顯示
Saved后如果模擬顯示,比如可對編輯圖形進行Trace。 當(dāng)前的狀態(tài)實際上是(臨時工作表+增量修改表+實際有效表) 4.6 check in
Check In版本不允許再編輯,Checkout時檢查該版本是否為Check In,否則自動定 義為最新版本。 4.7update
將增量修改表全部一次更新到有效表,形成新的有效表;同時向其他的編輯模塊GCD和運行模塊GCI發(fā)送增量修改的通知,更新圖形。 4.8版本回退
建立Version Log用戶,每個表對應(yīng)存在,僅在Check In時處理,將Check In處理的記 錄——對應(yīng)地加入Log表中。
1) 存該表時的處理
新增一->刪除標(biāo)記更改_->拷貝現(xiàn)有記錄刪除一->拷貝現(xiàn)記錄,置為新增標(biāo)志
2) 編輯與Reverse的對應(yīng)動作 新增一->刪除更改一->還原刪除一->恢復(fù)
要求每個表均有固定鍵值,以標(biāo)識對應(yīng)記錄。且該字段不允許手工修改。 Reverse后刪除Version Log中的相應(yīng)記錄(指定版本之后的所有版本記錄),同時 有一個表記錄Check In和Reverse的記錄,類似堆棧的后入先出,Reverse到某一版本 之后的Check In and Merged版本信息全部置為Check In and Reverse。
所述的實現(xiàn)方法可實現(xiàn)于電力調(diào)度自動化系統(tǒng)、電力配電自動化系統(tǒng)、變電站自動 化系統(tǒng)、電廠電氣監(jiān)控自動化系統(tǒng)等電力自動化主站系統(tǒng)中。
綜上所述,本發(fā)明的方法是在圖模庫一體化技術(shù)基礎(chǔ)上,通過記錄級的數(shù)據(jù)庫存儲 模式,實現(xiàn)了版本管理,滿足并行編輯、不同版本環(huán)境管理、電網(wǎng)絡(luò)研究等場合。本發(fā) 明所要求保護的技術(shù)方案由本發(fā)明的權(quán)利要求所限定。
權(quán)利要求
1、一種應(yīng)用于電力自動化系統(tǒng)中的圖形、模型一體化的記錄級版本管理方法,其特征在于始終存在一份完整數(shù)據(jù)即運行版本,電力自動化系統(tǒng)運行的圖形、模型均從中讀取,每一編輯者建立一個版本環(huán)境,從運行版本簽出,并將記錄置鎖并行編輯,此后其他用戶不能再修改該數(shù)據(jù),但可以讀取和引用,所讀取和引用的數(shù)據(jù)是原始記錄數(shù)據(jù),簽出者在簽入之前的任何操作均是私有的,簽入后的數(shù)據(jù)保存在預(yù)備版本中,可以進行模擬運行的處理,直至用戶應(yīng)用該預(yù)備版本,從而將預(yù)備版本中的數(shù)據(jù)合并到運行版本中,用于實時運行;所述的完整數(shù)據(jù)是實際電網(wǎng)所對應(yīng)的圖形、模型數(shù)據(jù),其按照記錄集的模式存放于關(guān)系數(shù)據(jù)庫中;所述的記錄置鎖是將簽出的記錄置上簽出者的標(biāo)志,此后,其他用戶無法再簽出,但簽出者可反復(fù)編輯,直至簽入后解鎖;所述的其他用戶可以讀取和引用他人已簽出數(shù)據(jù),是該數(shù)據(jù)被簽出時的斷面數(shù)據(jù),而簽出者在簽出之后所做的任何修改,在簽入之前是完全私有的,其他用戶在此期間是訪問不到簽出數(shù)據(jù)的任何變化。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,簽出者在編輯過程中保存的數(shù)據(jù)存 放在關(guān)系庫和原始數(shù)據(jù)表克隆出的臨時表中,并通過特定的編碼標(biāo)識不同版本的修改記 錄。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,簽入操作時,數(shù)據(jù)保存至預(yù)備版本, 同時數(shù)據(jù)的修改歷史保存至相應(yīng)表的歷史順序記錄中,以便回溯;所述的回溯,是指在一系列的版本發(fā)生后,如果需要其中的一個歷史版本,可根據(jù) 當(dāng)前運行版本數(shù)據(jù),結(jié)合歷史順序記錄,還原所需歷史版本所對應(yīng)的完整數(shù)據(jù),而不是 在不同的歷史斷面進行完全保存。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于簽入后數(shù)據(jù)保存在預(yù)備版本中,其 他用戶對該用戶的修改是可見的,對于電力自動化系統(tǒng)的運行環(huán)境仍然是不可見的,此 時可以對數(shù)據(jù)進行完整性校驗、試運行,通過驗證后,執(zhí)行應(yīng)用操作,預(yù)備版本中的數(shù) 據(jù)完整合并至運行版本中,整個版本管理操作流程完成。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,每個用戶在簽入前,建立版本環(huán)境 信息,包括版本號的獲取,對應(yīng)的工作數(shù)據(jù)表克隆工作,而在應(yīng)用操作完成后,該版本 環(huán)境被鎖定,工作數(shù)據(jù)表回收,在版本歷史管理中,該版本信息永久保存,以用于版本 回溯。
全文摘要
本發(fā)明公開了一種應(yīng)用于電力自動化系統(tǒng)中的圖形、模型一體化的記錄級版本管理方法。該方法通過記錄級的鎖定、簽入、簽出,有效版本、運行版本等管理技術(shù),實現(xiàn)了并行編輯、版本管理回溯等功能。所述方法包括始終存在一份完整數(shù)據(jù),系統(tǒng)運行的圖形模型均從中讀取。每一編輯者均從該數(shù)據(jù)簽出,并將記錄置鎖進行編輯,此后其他用戶不能再修改該數(shù)據(jù),但可以讀取和引用。編輯過程中,用戶可選擇保存,也可以選擇進行簽入操作,將編輯的所有數(shù)據(jù),更新至系統(tǒng)的預(yù)備版本中,用戶應(yīng)用時,預(yù)備版本將兼并至運行版本中,支持用戶回退至一定的早期版本。本發(fā)明基于記錄級考慮,原則上只要記錄級的操作均可恢復(fù)。
文檔編號G06F17/30GK101526957SQ20091008173
公開日2009年9月9日 申請日期2009年4月9日 優(yōu)先權(quán)日2009年4月9日
發(fā)明者丁柏玲, 于曉陽, 張云娜, 建 朱, 華 李, 帥 王, 磊 王 申請人:北京四方繼保自動化股份有限公司;北京四方繼保工程技術(shù)有限公司