1. 程式人生 > >LDAP和Implementation

LDAP和Implementation

版本 運行 服務 多重繼承 ref pytho pro 寫入 平衡

Implemention :

java中能夠定義接口 接口是一種變相的抽象類 接口的定義可以實現java中的多繼承問題 java中類與類之間只能單繼承 關鍵字 是extends 而對於類來說可以實現接口 關鍵字就用implements 表示該類實現接口 接口與接口是也可以用extends來繼承
  extends是繼承父類,只要那個類不是聲明為final的就能繼承,JAVA中不支持多重繼承,但是可以用接口來實現,這樣就要用到implements,繼承只能繼承一個類,但implements可以實現多個接口,用逗號分開就行了
  比如
  class A extends B implements C,D,E

LDAP:是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol,LDAP目錄以樹狀的層次結構來存儲數據。

目錄是一組具有類似屬性、以一定邏輯和層次組合的信息。常見的例子是通訊簿,由以字母順序排列的名字、地址和電話號碼組成。
目錄服務是一種在分布式環境中發現目標的方法。目錄具有兩個主要組成部分:

  • 第一部分是數據庫,數據庫是分布式的,且擁有一個描述數據的規劃。
  • 第二部分則是訪問和處理數據的各種協議。

目錄服務其實也是一種數據庫系統,只是這種數據庫是一種樹形結構,而不是通常使用的關系數據庫。目錄服務與關系數據庫之間的主要區別在於:二者都允許對存儲數據進行訪問,只是目錄主要用於讀取,其查詢的效率很高,而關系數據庫則是為讀寫而設計的。

提示:目錄服務不適於進行頻繁的更新,屬於典型的分布式結構。
LDAP是一個目錄服務協議,目前存在眾多版本的LDAP,而最常見的則是V2和V3兩個版本,它們分別於1995年和1997年首次發布。

LDAP的基本模型


LDAP的基本模型是建立在“條目”(Entry)的基礎上。一個條目是一個或多個屬性的集合,並且具有一個全局唯一的“可區分名稱”(用dn表示)。與關系型數據(後面簡稱數據庫)進行類比,一個條目相當於數據庫中的一條記錄,而dn相當於數據庫中記錄的關鍵字,屬性相當於數據庫中的字段。
提示:dn必須是全局唯一的。

LDAP中,將數據組織成一個樹形結構,這與現實生活中的很多數據結構可以對應起來,而不像設計關系型數據庫的表,需要進行多種變化。例如,圖1-1所示就是一個樹形結構的數據。

在圖1-1所示的樹形結構中,樹的根結點是一個組織的域名(dlw.com),其下分為3個部分,分別是managers、people和group,可將這3個組看作組織中的3個部門,如managers用來管理所有管理人員,people用來管理登錄系統的用戶,group用來管理系統中的用戶組。當然,在該圖中還可繼續增加其他分支。
對於圖1-1所示的樹形結構,使用關系數據庫來保存數據的話,需要設置多個表,一層一層分別保存,當需要查找某個信息時,再逐層進行查詢,最終得到結果。
若使用目錄來保存該圖中的數據,則更直觀。圖中每個結點用一個條目來保存,不同類型的結點需要保存的數據可能不同,在LDAP中通過一個稱為objectClass的類型來控制不同結點需要的數據(稱為屬性)。
對於目錄中的數據怎樣進行引用呢?前面提到過,每一個條目都有一個dn,因為dn是唯一的,因此就可找到需要結點的數據。dn的構造方式如下:
首先得到條目自己的名稱(rdn,稱為相對dn),然後開始向上逐級查找父結點,一直到根項為止。例如,對於圖1-1中最右下方的結點,其dn為:

Python代碼
  1. dn: cn=ldap, ou=group, o=dlw.com

通過這樣的方式,即可唯一標識每一個結點。
在現實生活中,有很多這種樹形結構的數據,如計算機文件系統的目錄結構、Internet中的域名等。這些類型的數據,只要不需要頻繁的更新,都適合用目錄來保存。

LDAP的功能


在LDAP的功能模型中定義了一系列利用LDAP協議的操作,主要包含以下4部分:

  • 查詢操作 :允許查詢目錄和取得數據,其查詢性能比關系數據庫好。
  • 更新操作 :目錄的更新操作沒關系數據庫方便,更新性能較差,但也同樣允許進行添加、刪除、修改等操作。
  • 復制操作 :前面也提到過,LDAP是一種典型的分布式結構,提供復制操作,可將主服務器的數據的更新復制到設置的從服務器中。
  • 認證和管理操作 :允許客戶端在目錄中識別自己,並且能夠控制一個會話的性質。

LDAP協議的特點

      • LDAP是一種目錄服務,保存在特殊的數據庫中,數據的讀取速度遠高於寫入速度。
        • LDAP對查詢做了優化,讀取速度優於普通關系數據庫。
        • LDAP不支持事務、不能進行回滾,需要進行這些操作的應用只有選擇關系數據庫。
        • LDAP采用服務器/客戶端模式,支持分布式結構。
        • LDAP中的條目以樹形結構組織和存儲。
        • LDAP基於Internet協議,直接運行在簡單和通用的TCP/IP或其他可靠的傳輸協議層上,使連接的建立和包的處理簡單、快捷,對於互聯網和企業網應用都很方便。
        • LDAP協議簡單,通過使用查找操作實現列表操作和讀操作。
        • LDAP通過引用機制實現分布式訪問,通過客戶端API實現分布式操作(對於應用透明),平衡了負載。
        • LDAP實現具有低費用、易配置和易管理的特點,並提供了滿足應用程序對目錄服務所需求的特性。

LDAP和Implementation