top
Loading...
一些有關ADSI技術的介紹
難得在國內找到一點有關這方面較全面的介紹,呵呵。

微電腦世界1999年第2期
Microsoft提供IIS新接口
盡管Internet信息服務器(Internet Information Server,IIS)現在風靡一時,它仍然存在著一個很大的缺陷,即缺乏
自動管理的接口。換句話說,沒有提供允許站點建設者和管理者使用其他軟件或第三方工具管理Web站點的接
口。從1.0版到3.0版,IIS都缺乏對個人站點可維護性的必要支持。在新近推出的IIS 4.0中,Microsoft終于對此做出了
一些改進和彌補。

在通常情況下,所有的IIS管理都要通過圖形用戶界面來實現,而不能輕易地自動化。盡管這在沒有幾個用戶
的單個服務器的小站點上可以工作得很好,但對于更大、更復雜的站點來說,則需要更強大的可管理性的支
持。事實是您擁有的服務器越多,您就必須執行重復多次的管理任務。想像一下,當每次事情發生變化時都不
得不重新配置20個服務器,這將是多么重的一個負擔,然而也許它是大可不必的。對于那些天天和Web打交道的
人們來說,應該記住這個名言——變化是永恒的。因此,我們只有期待它會變得越來越好。

在以前版本的IIS中的確存在兩個問題。第一,缺乏一個清晰的、開放的第三方管理產品的接口和一個定制的
常規管理任務自動化的可編程接口。第二,需要一個控制目錄服務以使網絡上的服務器能夠互相發現的機制。
如果這些接口存在,站點創建者可以使用各種類型的工具來編寫各種類型的服務器管理應用。除了用戶管理和
安全性產品外,他們還能創建用于性能管理、安裝和配置的程序。

為了提供這些缺乏的接口,Microsoft在1998年早些時候發布了一個活動目錄服務接口(Active Directory Service
Interfaces,ADSI)的新版本。ADSI和IIS管理對象(IIS Administration Object,IISAO)一起提供了一個用于控制目錄服務
和IIS自己的聯合解決方案。這些產品在Microsoft公司的Windows NT專業開發者大會上首次亮相,并且它們已在IIS
4.0中被提供。

ADSI并沒有帶來任何革新性改進。簡言之,它通過一個易于使用的且能和傳統編程工具對話的名為組件對
象模型(Component Object Model,COM)的接口提取了IIS目錄服務和其他銷售商所提供的目錄服務。COM允許您用
腳本和程序來控制IIS。

IISAO能夠被使用許多不同語言編制的應用所訪問,其中包括C++、Java和VB。除了數量增長迅速外,第三方站
點管理工具均可以通過ADSI和IISAO更好地掛接到IIS和目錄服務中。另外,IISAO也可以經由一個服務器端的腳本
引擎和活動服務器頁面(Active Server Page,ASP)通過Web頁面被訪問。事實上,如果您正使用IIS 4.0管理工具
的HTML版本,那么您已經在使用IISAO。IISAO還能從使用Windows腳本主機(Windows Scripting Host,WSH)的命令行
訪問。

和IISAO一樣,ADSI只是一組COM對象,能夠在它們各自的目錄服務中封裝對象。這在本地目錄服務和應用中
創建了一個抽象層,因此,站點創建者可以通過一個單一的公共接口來控制許多不同的目錄服務。

IISAO是用ADSI登記的提供者。當您正查找IIS信息時,ADSI了解應如何用IISAO創建一個接口。通過ADSI
和IISAO能提供一個針對若干個IIS對象的接口,它們可以執行幾個不同的管理任務,如IIsFtpServer、IIsWebVirtualDir
和IIsComputer等等,這意味著能夠分別訪問FTP服務器、虛擬目錄和運行IIS的計算機。

通過COM和一組共享的API,這些新的接口對一些傳統開發工具開放了IIS和公共目錄服務的大部分特性。從
這些接口上,站點管理員可以將COM用作進入IIS內部的管道,并且通過一組預定義的COM對象來管理它的服務。

IIS管理對象提供低級和高級兩種類型的接口。低級對象,也稱作管理基本對象(Admin Base Object),能夠為管理
性API提供服務。高級對象則隱藏了管理基本對象的復雜性,比低級對象更容易使用,但它不能提供像低級對象
那樣多的控制。

那么,IISAO好在哪里呢?它的應用包括創建一個新的Web服務器、FTP服務器和虛擬目錄,以及定制IIS安裝過
程。而且,IISAO還使您能編程改變IIS設置,并因此改變存儲這些設置(如值或屬性)的元庫(Metabase,類似于注
冊表,但專為IIS而定制)。

IISAO按一個分層結構來組織,并鏡像到元庫和IIS的結構(見圖1)。對象都圍繞著其他對象來創建對象結
構。這一對象分層結構使您能訪問決定特定IIS元素配置設置的元庫屬性。

圖1 IISAO
IISAO由鏡像到元庫和IIS結構的分層結構所組織。


在支持遠程管理目錄服務命名空間(Namespace)的ADSI標準中,IISAO是命名空間的提供者。IIS命名空間
由IISAO和元庫組成。ADSI簡單地提供了一個標準語法來為IIS配置數據尋址。

站點創建者能夠使用ADSI作為接口來使它們的應用和諸如活動目錄(Active Directory)、LDAP和NDS等目錄連接在
一起。每一個供應商都提供一組資源,它們被重映射到一個公共接口或一組都使用COM的接口上。例如,使
用ADSI,站點創建者能添加用戶、管理打印機或創建虛擬Web服務器。然而,我們絕大多數時候都是通過第三方
工具而不是直接從一個傳統編程語言來使用ADSI。

ADSI在簡化目錄的使用和管理等方面大有幫助,并且能從開放目錄服務接口(Open Directory Services
Interface,ODSI)上獲取很多東西。正如一些人已經了解的,ODSI提供一組API來管理多種類型的目錄服務。

IISAO采用了一個分層結構的對象命名空間,其中每個對象都有一個AdsPath。AdsPath和URL有些類似,例如,
某個AdsPath可以是IIS://DavesComputer/W3SVC。這個AdsPath指的是名為DavesComputer機器上的IIsWebService對象。此對
象和正運行IIS的機器一并是IIsComputer對象并且包含所有其他的IISAO。

如果想要得到一個命名對象的引用,您需要在一個程序(如用Visual Basic編寫而成的程序)中使用GetObject。
例如,您能用如下所示的VB腳本來得到名為DavesComputer的計算機的MaxBandwidth的當前值:
< %
Dim ComputerObj
Dim MaxBW
Set ComputerObj=GetObject(“IIS:// DavesComputer”)
MaxBW = ComputerObj.Get(“MaxBandWidth”)
% >

ADSI對象在目錄服務中可以代表任一項目,如用戶、服務器、計算機、文件、打印機及打印序列等。網絡管
理員們每天都要和這些實體打交道。ADSI定義不同類型的對象來代表不同類型的實體。每個對象支持一個或多
個COM接口,使您能夠訪問對象自己的信息(即元數據,Metadata)和對象所代表的信息(如圖2)。

圖2 ADSI對象模型
每一個ADSI對象支持一個或多個COM接口,
使您能夠訪問對象自身的信息和對象所代表的信息。


ADSI和IISAO聽起來似乎有些復雜,然而,隨著Windows NT 5.0的上市,它帶來了活動目錄的一線曙光,并揭示
了NT最終支持企業級系統的潛力。但是當我們看到NT和IIS擴展到企業網絡水平和當服務器和用戶數日益增多
時,可管理性則成了一個大問題。

這些接口的過人之處不僅在于它們易于使用的事實,而且在于它們最終能使用任意數目的語言和工具使管
理任務自動化。另外,第三方管理工具最終將有一個和它協同工作的公共接口。

最后,我們必須意識到,關鍵問題不是如何使IIS成為企業的首選服務器,而是何時。看起來Microsoft公司將服
務器和操作系統捆綁在一起的策略正發揮著作用,很可能到本世紀末我們都能在IIS上找到自己的內容。


北斗有巢氏 有巢氏北斗