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