一.應用場景數據庫
今天,架構師在設計應用時經常會引用一些外部的信息,好比用戶信息、組織架構、資源配置等。這些信息每每是結構化的。表現了現實世界中的組織規則,且內容相對穩定。架構
一個最多見的例子就是企業員工信息管理。企業在正常運營過程當中,部門機構和人員崗位都相對穩定,每一個員工的基本信息也是相對穩定的。這些信息組織起來後,能夠被其餘的各類IT系統共用。好比人事系統、財務系統、郵件辦公以及各類處理系統都引用同一份員工數據。若是用來驗證用戶,則能夠避免每套IT系統各自維護用戶密碼,輕鬆實現單點登陸。ide
輕量級目錄訪問協議(Lightweight Directory Access Protocol,LDAP)就是這樣一種國際標準。本質上,LDAP是基於TCP/IP的應用層協議,它不只提供了數據的組織標準,也提供了數據的訪問標準。基於LDAP的查詢服務很是相似於查字典或是電話黃頁,因爲信息室以目錄方式組織,因此稱爲 目錄服務。那麼信息存放在目錄中和存放在數據庫中什麼區別?簡單。post
員工信息應該如何組織,有應該如何對外提供服務呢?ui
最容易想到的是設計一種員工表,將員工信息存放在數據庫中。若是須要在體現人員部門機構,必然要把部門歸入數據庫。機構是有層次的。編碼
使用LDAP來管理員工信息則徹底不一樣。首先LDAP對組織、人員的完整性、全面性的定義。spa
好比,一我的(person)必須有通用名(commonName,cn)和姓(surName,sn),同時能夠有電話(telephoneNumber)、口令(userPassword)、描述(description)、參閱(seeAlso)等信息。設計
2、LDAP基本元素對象
1.目錄(Directory)繼承
2.目錄樹(DIT)
組織目錄樹,會參考x.500中對屬性的相關約定。好比
c表明國家country、o表明機構、公司、企業、單位等organization、ou表明部門organizationUnit
cn表明姓名commonName、sn表明姓氏surName
c=cn
o=ibm
ou=dev ou=sales ot=finance
| |
cn=tom cn=jerry
3.條目(Entry)
每一個條目都是目錄管理的對象。是LDAP的最基本的顆粒,就想字典裏面的詞條。或是數據庫裏面的記錄。每一個條目都由一個惟一的標誌名(Distinguished Name,DN),好比 cn=tom,ou=dev,o=ibm,c=cn.DN在語法上,由多個相對的標誌名(Relative Distinguished Name,RDN)組成。它們之間以逗號隔開。
4. 屬性(Attribute)
每一個條目均可以有不少屬性,好比常見的人員條目有姓名、地址、電話、職位等
5.屬性類型(Attribute Type)
6.對象類(ObjectClass)
對象類是屬性的集合。LDAP預想對不少人員組織機構中常見的對象,並將其封裝成對象類。好比人員(person)還有姓(sn)、名(cn)、電話(telephoneNumber)、密碼(userPassword)等屬性。單位員工(orgnizationPerson)是人員(person)的繼承類,除了上述的屬性以外,還含有職務(title)、郵政編碼(postalCode)、通訊地址(postalAddress)等屬性
對象類分爲三種類型:結構類型(Structual)、抽象類型(Abstract)、輔助類型(Auxiliary)
例如
top
Person ePerson
orgnizationPerson residentialPerson
inetOrgPerson