一些有关ADSI技术的介绍

80酷酷网    80kuku.com

  


难得在国内找到一点有关这方面较全面的介绍,呵呵。

微电脑世界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上找到自己的内容。


分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: