摘 要:本文基于LDAP目錄服務系統(tǒng),實現(xiàn)LDAP樹形目錄與關(guān)系數(shù)據(jù)庫之間數(shù)據(jù)同步的功能。文章首先根據(jù)LDAP目錄與關(guān)系數(shù)據(jù)庫的特點,說明了數(shù)據(jù)同步的必要性,重點介紹數(shù)據(jù)同步實現(xiàn)方法,提出一種利用webservice接口實現(xiàn)數(shù)據(jù)同步的方式,并對其可行性進行了驗證。
關(guān)鍵詞:WebService;LDAP;關(guān)系型數(shù)據(jù)庫;數(shù)據(jù)交互
中圖分類號:TP311.52
LDAP目錄服務主要實現(xiàn)對各業(yè)務系統(tǒng)用戶賬號的統(tǒng)一管理,而各業(yè)務系統(tǒng)大都建立在關(guān)系型數(shù)據(jù)庫的基礎上,因此要實現(xiàn)用戶賬號的統(tǒng)一管理,必須首要解決LDAP目錄服務與關(guān)系型數(shù)據(jù)庫之間用戶數(shù)據(jù)的同步問題。本文要研究的即是一種利用webservice接口實現(xiàn)數(shù)據(jù)同步的技術(shù)。
1 LDAP與關(guān)系數(shù)據(jù)庫
1.1 LDAP目錄結(jié)構(gòu)
LDAP目錄服務與UNIX文件系統(tǒng)類似,按照樹型結(jié)構(gòu)來組織,稱為目錄信息樹(Directory Information Tree,DIT)。LDAP協(xié)議本身和信息模型都是可擴展的,LDAP協(xié)議規(guī)定了信息的形式及特性、信息存放的索引和對象組織方式、分布式的操作模型。LDAP目錄中可以存放文本、圖片、URL、二進制數(shù)據(jù)等不同類型的數(shù)據(jù)。
LDAP樹狀信息中的基本數(shù)據(jù)單元稱為對象,對象可以理解為關(guān)系數(shù)據(jù)庫中表的記錄。對象是具有標識名(Distinguished Name,DN)的屬性集合,DN可以理解為關(guān)系數(shù)據(jù)庫表中的關(guān)鍵字。屬性可以由類型和多個值組成,LDAP中的屬性可以理解為關(guān)系數(shù)據(jù)庫中的域。域由域名和數(shù)據(jù)類型組成,在LDAP中為了便于檢索類型,一個類型可以同時擁有多個值。
1.2 關(guān)系數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)
關(guān)系數(shù)據(jù)庫最早是E.F.Codd于70年代初提出的,其理論建立在集合代數(shù)理論基礎上。關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)是二維表,由關(guān)系和元組組成。目前,主流的關(guān)系數(shù)據(jù)庫有ORACLE、SQL、access、SQL Server、sybase等。
1.3 LDAP與關(guān)系數(shù)據(jù)庫的比較
與眾多關(guān)系數(shù)據(jù)庫一樣,LDAP目錄服務也可以進行查詢與數(shù)據(jù)更新操作,但LDAP目錄不具備關(guān)系數(shù)據(jù)庫完備的關(guān)系運算處理能力,也不具備很強的數(shù)值計算能力。LDAP目錄服務對數(shù)據(jù)對象建立索引,優(yōu)化了對數(shù)據(jù)對象讀取和搜索等操作,與普通關(guān)系數(shù)據(jù)庫相比具有較高的檢索效率。LDAP目錄中的對象一般按照地理位置或組織關(guān)系進行組織,應用中非常直觀。
1.4 XML簡介
可擴展標記語言(Extensible Markup Language,XML)是一種允許用戶對自己的標記語言進行定義的源語言,是標準通用標記語言的子集,提供了統(tǒng)一的方法來描述和交換獨立于應用程序或供應商的結(jié)構(gòu)化數(shù)據(jù)。
與Access、Oracle和SQL Server等數(shù)據(jù)庫不同,XML數(shù)據(jù)庫提供了更強有力的數(shù)據(jù)存儲和分析能力,且表現(xiàn)形式極其簡單,這就使得它易于在任何應用程序中讀寫數(shù)據(jù),成為數(shù)據(jù)交換唯一的公共語言。本文研究的數(shù)據(jù)同步技術(shù)就是以XML作為介質(zhì)實現(xiàn)的。
2 數(shù)據(jù)同步技術(shù)
如何實現(xiàn)LDAP與關(guān)系數(shù)據(jù)庫之間的數(shù)據(jù)同步?以典型的關(guān)系數(shù)據(jù)庫ORACLE數(shù)據(jù)庫為例,關(guān)系數(shù)據(jù)庫之間的數(shù)據(jù)同步操作可通過數(shù)據(jù)庫本身的觸發(fā)器實現(xiàn),數(shù)據(jù)源一旦觸發(fā)數(shù)據(jù)更新操作,觸發(fā)器會將更新的記錄數(shù)據(jù)自動同步到目的數(shù)據(jù)庫中。但是,LDAP目錄服務是面向查詢的,為了追求較高的查詢效率,LDAP采用基于索引文件的平面存儲方式, 并且LDAP協(xié)議不支持觸發(fā)器機制,LDAP協(xié)議對數(shù)據(jù)更新不是原子操作。因此,要實現(xiàn)LDAP與關(guān)系數(shù)據(jù)庫的數(shù)據(jù)同步,需解決以下兩個問題:一是,實現(xiàn)LDAP目錄與關(guān)系數(shù)據(jù)庫之間的數(shù)據(jù)格式轉(zhuǎn)換;二是實現(xiàn)LDAP目錄服務向關(guān)系數(shù)據(jù)庫的更新觸發(fā)機制。
2.1 數(shù)據(jù)格式轉(zhuǎn)換的實現(xiàn)方法
LDAP目錄的數(shù)據(jù)文件為.ldif格式的文本文件。關(guān)系數(shù)據(jù)庫無法直接與此類文件進行交互。為解決以上問題,可采用XML作為中間文件。當LDAP目錄對象的數(shù)據(jù)發(fā)生變化后,將增量數(shù)據(jù)轉(zhuǎn)化為XML格式文件,之后再將XML文件導入關(guān)系數(shù)據(jù)庫實現(xiàn)LDAP目錄服務到關(guān)系數(shù)據(jù)庫的數(shù)據(jù)更新。
2.2 LDAP更新觸發(fā)的實現(xiàn)方法
3 結(jié)束語
通過Tomcat監(jiān)聽和webservice接口調(diào)用,可以實現(xiàn)將LDAP目錄中更新的對象傳輸?shù)疥P(guān)系數(shù)據(jù)庫ORACLE表記錄中,此方法是使用解決了異構(gòu)數(shù)據(jù)源的數(shù)據(jù)交互問題,實現(xiàn)了LDAP到各業(yè)務系統(tǒng)用戶賬號的統(tǒng)一管理。
參考文獻:
[1]宗士強,林劍檸,朱雙華.LDAP目錄服務同步[J].計算機與現(xiàn)代化,2010(10).
[2]逯文暉,鄭曉薇,顧慧.目錄于關(guān)系數(shù)據(jù)庫的分層映射數(shù)據(jù)集成模型[J].計算機工程與設計,2010(21).
[3]武靜.身份管理技術(shù)現(xiàn)狀與對策[J].電信網(wǎng)技術(shù),2009(03).
[4]封明玉,趙政,張鋼.分布式環(huán)境下數(shù)據(jù)沖突及其解決方案[J].計算機應用研究,2002(02).
作者簡介:國明,女,河北石家莊人,碩士研究生,曾參與目錄服務項目建設與運維,目前負責系統(tǒng)運行監(jiān)控。
作者單位:河北電力公司信息通信分公司,石家莊 050000