本發明涉及數據庫技術領域,具體涉及一種基于LDAP協議的電力系統對象注冊方法和裝置。
背景技術:隨著電力系統信息化水平的高速發展,越來越多作用于生產、監控、資源管理及辦公自動化等方面的應用系統不斷涌現。這些專業的應用系統給予管理人員提供方便、高效的管理外,也存在著一定的問題。主要表現在各應用系統在對象的命名及編碼方式上存在差異,很難進行有效的數據交換和互操作。因此,亟需建立一種統一的命名及編碼方案來解決不同應用系統間的交互問題。現有技術的電力系統對象注冊中心一般使用商用庫的表來存儲全局名和編碼的對應關系,對外提供基于SQL實現的查詢、增加、刪除、修改等接口。商用庫可以采用直觀的單表或“多表+外鍵”的存儲方式。基于商用庫的單表存儲方案至少有三點不足:a)不能夠直觀體現電力對象數據的層次結構;b)全局名分散存儲,當父對象改名時,需要修改其所有子女對象的全局名,讀寫開銷巨大;c)海量數據存儲條件下,扁平結構的查詢效率低下。采用“多表+外鍵”的商用庫方案能雖然夠表達一定的層次結構,但仍具有下述缺陷:a)層次也不易擴展,擴展層次意味著增加表;b)對層次深的對象進行查詢時,需要訪問多張表,開銷大;c)對每一層仍然是扁平結構的存儲,查詢效率較低。此外,基于商用庫的實 現方案對外缺乏開放的、標準的訪問接口,供第三方開發與對象注冊中心相關的程序和應用。輕型目錄訪問協議(LightweightDirectoryAccessProtocol,LDAP)是一個訪問在線目錄服務的協議。LDAP目錄的條目(entry)由屬性(attribute)的一個聚集組成,并由一個唯一性的名字引用,即專有名稱(distinguishedname,DN)。LDAP的目錄與普通數據庫的主要不同之處在于數據的組織方式,它是一種有層次的、樹形結構。LDAP目錄條目可描述一個層次結構,這個結構可以反映一個政治、地理或者組織的范疇。OpenLDAP是輕型目錄訪問協議的自由和開源實現,可以應用于包含RHEL、Debian等眾多流行的Linux發行版以及AIX等Unix操作系統中。
技術實現要素:本發明的特征和優點在下文的描述中部分地陳述,或者可從該描述顯而易見,或者可通過實踐本發明而學習。為解決現有技術不同應用系統的對象命名和編碼的差異所帶來的交互困難的問題,本發明提供一種基于LDAP協議的電力系統對象注冊方法和裝置,通過本發明的方法和裝置建立以層次式鍵值對數據庫為核心的電力系統對象注冊中心,對電力系統對象進行統一的注冊管理,對象注冊中心通過統一的規范將電力系統對象命名及編碼,保證電力系統對象全局編碼(GID)和全局命名的唯一性,對象注冊中心可被多個應用系統、多級調度中心使用。本發明為解決上述技術問題所采用的技術方案為:根據本發明的一個方面,本發明提供一種基于LDAP協議的電力系統對象注冊方法,包括步驟:A1、對電力系統對象進行統一命名和編碼,保證該電力系統對象的對象名稱和對象編碼數據的唯一性,按照LDAP協議目錄結構對該電力系統對象進行層次性命名,并進行GID全局唯一性編碼,由LDAP協議目錄結構絕對路徑的唯一性保證該電力系統對象命名的唯一性;A2、將該對象名稱和該對象編碼數據存儲到層次式鍵值對數據庫中;A3、通過LDAP協議在該層次式鍵值對數據庫中注冊該電力系統對象并對該層次式鍵值對數據庫中的該對象名稱和該對象編碼數據進行訪問和操作。根據本發明的實施例,該步驟A2包括步驟:該對象名稱以條目方式存儲于該層次式鍵值對數據庫中,該對象編碼數據以條目屬性方式存儲于該層次式鍵值對數據庫中。根據本發明的實施例,有關該電力系統對象的其他信息也以條目屬性方式存儲于該層次式鍵值對數據庫中。根據本發明的實施例,通過該層次式鍵值對數據庫對該電力系統對象進行子樹改名操作。根據本發明的實施例,對該層次式鍵值對數據庫的條目設置狀態標志位屬性來標記該電力系統對象是否注銷停用。根據本發明的實施例,對注銷停用的該電力系統對象在該層次式鍵值對數據庫中保留可追溯的原始數據信息。根據本發明的實施例,當名稱相同的該電力系統對象再次注冊時,復用該層次式鍵值對數據庫中相應的數據信息。根據本發明的另一個方面,本發明提供一種基于LDAP協議的電力 系統對象注冊裝置,包括命名模塊、層次式鍵值對數據庫和注冊應用模塊,該層次式鍵值對數據庫分別與該命名模塊、該注冊應用模塊相連,該命名模塊用于對電力系統對象進行統一命名和編碼并保證該電力系統對象的對象名稱和對象編碼數據的唯一性,按照LDAP協議目錄結構對該電力系統對象進行層次性命名,并進行GID全局唯一性編碼,由LDAP協議目錄結構絕對路徑的唯一性保證該電力系統對象命名的唯一性,該層次式鍵值對數據庫用于存儲該對象名稱和該對象編碼數據,該注冊應用模塊用于向該層次式鍵值對數據庫注冊該電力系統對象并對該對象名稱和該對象編碼數據進行訪問和操作。根據本發明的實施例,該注冊應用模塊包括電力安穩系統、電力保信系統、電力水調系統和電力EMS系統。根據本發明的實施例,該對象名稱以條目方式存儲于該層次式鍵值對數據庫中,該對象編碼數據以條目屬性方式存儲于該層次式鍵值對數據庫中。發明的有益效果:本發明提供一種基于LDAP協議的電力系統對象注冊方法和裝置,通過本發明的方法和裝置建立以層次式鍵值對數據庫為核心的電力系統對象注冊中心,對電力系統對象進行統一的注冊管理,對象注冊中心通過統一的規范將電力系統對象命名及編碼,保證電力系統對象全局編碼(GID)和全局命名的唯一性,對象注冊中心可被多個應用系統、多級調度中心使用。本發明存儲數據所采用的層次式鍵值對數據庫,相較傳統的關系數據庫具有數據容量大、訪問速度快、層次結構清晰、支持子樹改名等優勢;開放式的輕型目錄訪問協議,增加了注冊中心的開放性和通用性,目前已有大量的工具和程序包支持輕型目錄訪問協議,使對象注冊中心的管理和應用開發更方便高效。附圖說明下面通過參考附圖并結合實例具體地描述本發明,本發明的優點和實現方式將會更加明顯,其中附圖所示內容僅用于對本發明的解釋說明,而不構成對本發明的任何意義上的限制,在附圖中:圖1為本發明實施例基于LDAP協議的電力系統對象注冊方法流程圖;圖2為本發明實施例基于LDAP協議的電力系統對象注冊裝置示意圖;圖3為本發明實施例注冊裝置應用架構示意圖;圖4為本發明實施例電力系統對象命名的層次結構圖;圖5為本發明實施例輕型目錄訪問協議的目錄層次設計示意圖;圖6為本發明實施例電力系統對象注冊訪問接口示意圖;圖7為本發明應用示例示意圖。具體實施方式如圖1所示,本發明基于LDAP協議的電力系統對象注冊方法,包括步驟:S101、對電力系統對象進行統一命名和編碼,保證電力系統對象的對象名稱和對象編碼數據的唯一性,按照LDAP協議目錄結構對所述電力系統對象進行層次性命名,并進行GID全局唯一性編碼,由LDAP協議目錄結構絕對路徑的唯一性保證所述電力系統對象命名的唯一性;S102、將對象名稱和對象編碼數據存儲到層次式鍵值對數據庫中;S103、通過LDAP協議在層次式鍵值對數據庫中注冊電力系統對象并對層次式鍵值對數據庫中的對象名稱和對象編碼數據進 行訪問和操作。根據本發明的實施例,步驟S102包括步驟:對象名稱以條目方式存儲于層次式鍵值對數據庫中,對象編碼數據以條目屬性方式存儲于層次式鍵值對數據庫中。有關電力系統對象的其他信息也以條目屬性方式存儲于層次式鍵值對數據庫中。通過層次式鍵值對數據庫對電力系統對象進行子樹改名操作。對層次式鍵值對數據庫的條目設置狀態標志位屬性來標記電力系統對象是否注銷停用。對注銷停用的電力系統對象在層次式鍵值對數據庫中保留可追溯的原始數據信息。當名稱相同的電力系統對象再次注冊時,復用層次式鍵值對數據庫中相應的數據信息。如圖2所示,本發明基于LDAP協議的電力系統對象注冊裝置包括命名模塊M101、層次式鍵值對數據庫M102和注冊應用模塊M103,層次式鍵值對數據庫M102分別與命名模塊M101、注冊應用模塊M103相連,命名模塊M101用于對電力系統對象進行統一命名和編碼并保證電力系統對象的對象名稱和對象編碼數據的唯一性,層次式鍵值對數據庫M102用于存儲對象名稱和對象編碼數據,注冊應用模塊M103用于向層次式鍵值對數據庫M102注冊電力系統對象并對對象名稱和對象編碼數據進行訪問和操作。對象名稱以條目方式存儲于層次式鍵值對數據庫中,對象編碼數據以條目屬性方式存儲于所述層次式鍵值對數據庫中。如圖3所示,注冊應用模塊M103包括電力安穩系統、電力保信系統、電力水調系統和電力EMS系統。依據對象命名和編碼規范確定電力系統對象命名的層次結構如圖4所示,本發明按照一定規范的對象命名和編碼示例如下:全局命名:廣東/東莞/莞城站/2558GID:0319B150000010DNN00BAC001上述對象為:廣東電網公司東莞供電局莞城站2558開關。如圖5所示,按照LDAP協議目錄結構對電力系統對象進行層次性命名,并進行GID全局唯一性編碼,由LDAP協議目錄結構絕對路徑的唯一性保證所述電力系統對象命名的唯一性。層次式鍵值對數據庫存儲的核心數據是電力系統對象的全局命名、對象名、GID、類型。同時為了滿足注冊應用模塊對注銷功能的需求(對象注銷后其它對象不得占有該編碼,重新啟用時恢復原編碼)引入了狀態標志位,用來標識對象是否注銷停用。層次式鍵值對數據庫將全局命名的層次結構映射為目錄服務的目錄結構,核心數據的存儲方式如下:1.全局命名作為條目的專有名稱(DN)。2.GID、類型、狀態標志位作為條目的屬性。與該存儲方式相應的OpenLDAP的schema文件示例如下:#AttributeTypeDefinitionsattributetype(1.1.2.1.1.1NAME′un′DESC′uniquename′EQUALITYcaseExactMatchSUBSTRcaseExactSubstringsMatchSYNTAX1.3.6.1.4.1.1466.115.121.1.15SINGLE-value)attributetype(1.1.2.1.1.2NAME′gid′DESC′gid′EQUALITYcaseExactMatchSUBSTRcaseExactSubstringsMatchSYNTAX1.3.6.1.4.1.1466.115.121.1.15SINGLE-value)attributetype(1.1.2.1.1.3NAME′type′DESC′objecttype′EQUALITYcaseExactMatchSUBSTRcaseExactSubstringsMatchSYNTAX1.3.6.1.4.1.1466.115.121.1.15SINGLE-value)attributetype(1.1.2.1.1.4NAME′isValid′DESC′whetherthisentryisvalid′EQUALITYbooleanMatchSYNTAX1.3.6.1.4.1.1466.115.121.1.7SINGLE-value)#ObjectClassDefinitionsobjectclass(1.1.2.2.1.1NAME′object′DESC′object′STRUCTURALMUST(un$gid$type$isValid))與該存儲方式對應的OpenLDAP的LDIF文件(數據文件)示例如下:dn:un=2558,un=莞城站,un=東莞,un=廣東,dc=ldapobjectclass:objectgid:0319B150000010DNN00BAC001type:開關isValid:TRUE上述電力系統對象為:廣東電網公司東莞供電局莞城站2558開關。如圖6所示,本發明基于LDAP協議的電力系統對象注冊裝置通過LDAP協議訪問層次式鍵值對數據庫,完成對層次式鍵值對數據庫條目的直接查詢、刪除及修改。除上述基本功能外,還實現一些特定功能,如根據編碼規范進行對象編碼并保證編碼全局唯一性;注冊對象時檢查編碼唯一性;注銷對象時不是刪除條目而是設置狀態標志位等。如圖7所示,不同的應用系統可以采用如下的方式交互數據,若EMS系統欲查詢保信系統某個對象的數據,一種途徑為:1.通過全局名向對象注冊中心查詢該對象的GID;2.對象注冊中心返回對應的GID;3.EMS系統通過GID向保信系統查詢相關數據。本領域技術人員不脫離本發明的實質和精神,可以有多種變形方案 實現本發明,以上所述僅為本發明較佳可行的實施例而已,并非因此局限本發明的權利范圍,凡運用本發明說明書及附圖內容所作的等效結構變化,均包含于本發明的權利范圍之內。