ADSI 확장 아키텍처
ADSI 확장은 몇 가지 향상된 기능을 갖춘 COM 집계 모델을 기반으로 합니다. 확장은 모든 COM 규칙을 준수해야 합니다. 자세한 내용은 COM 사양을 참조하세요.
COM 집계 모델에 대한 검토는 다음과 같습니다.
내부 개체라고도 하는 집계는 집계가 만드는 개체입니다. 확장 개체는 집계입니다.
외부 개체라고도 하는 집계는 집계를 만드는 개체입니다. ADSI는 집계자입니다.
내부 개체는 해당 IUnknown 을 집계자의 IUnknown에 위임합니다.
ADSI 확장은 요구 사항을 충족하기 위해 COM 집계에 다음과 같은 향상된 기능을 추가합니다.
- 각 확장 작성기가 ADSI 개체를 확장할 수 있도록 합니다. 확장 작성기는 ADSI에 확장을 등록할 수 있으며 다른 확장의 존재에 영향을 받지 않습니다. COM 집계 모델에서 집계자에는 집계의 CLSID가 있어야 합니다. ADSI는 모든 확장의 집계 역할을 하여 이 요구 사항을 완화합니다. 따라서 중첩된 구성 요소의 계층을 형성하는 대신 확장은 동일한 수준에 있습니다.
- 하나의 개체, 하나의 IDispatch를 허용합니다. 자동화 지원은 ADSI의 가장 중요한 기능 중 하나입니다. ADSI는 IDispatch 인터페이스를 지원하므로 자동화 지원이 이루어집니다. 확장 작성기는 IDispatch 인터페이스를 지원하는 것이 좋습니다. 그러나 지정된 개체에는 하나의 IDispatch 인터페이스만 있어야 합니다. ADSI는 다양한 확장에서 많은 IDispatch 인터페이스를 통합 및 수집하여 Automation 컨트롤러에 일관된 하나의 IDispatch 로 제공합니다. 집계된 각 확장은 해당 IDispatch 호출을 ADSI에서 제공하는 IDispatch 로 다시 라우팅해야 합니다.
이러한 모든 솔루션은 각 ADSI 공급자에 상주하는 ADSI 개체 관리자가 제공하는 서비스로 인해 가능합니다.
다음 그림은 ADSI 확장 모델 아키텍처를 보여줍니다.
ADSI는 두 가지 수준의 확장을 지원합니다.
- 조기 바인딩 지원. 첫 번째 확장 수준입니다. 확장은 등록을 지원하고 새 인터페이스를 구현해야 합니다. 확장 소비자는 초기 바인딩을 지원하는 도구 또는 스크립팅 호스트(예: Visual C++ , Visual Basic)를 사용해야 합니다.
- 지연 바인딩 지원. 확장이 모든 초기 바인딩 요구 사항을 충족하고 추가 인터페이스인 IADsExtension을 구현할 때 발생합니다. 확장 구현자는 Windows 스크립트 호스트, 활성 서버 페이지 또는 VBScript를 사용하는 HTML과 같이 Automation 컨트롤러로 작동하는 모든 도구를 사용할 수 있습니다.