Операционные системы - статьи

         

Архитектура WMI


Архитектура WMI состоит из четырех сегментов, показанных на Рисунке 1: управляющие программы (management applications), ядро WMI (WMI infrastructure), провайдеры (providers), или поставщики, и управляемые объекты (managed objects). Управляющие программы - это приложения Windows, которые обращаются к данным и отображают или обрабатывают данные, полученные от управляемых объектов. Простой пример управляющей программы - использование технологии WMI (вместо API) в Performance Monitor. Более сложный пример - инструмент управления предприятием, который позволяет администраторам автоматически отслеживать конфигурации программного обеспечения и оборудования каждого компьютера на предприятии.

РИСУНОК 1. Архитектура WMI

Обычно разработчики настраивают свои управляющие программы на специфические объекты, чтобы собрать данные о них и управлять ими. Объект может представлять собой один компонент, такой, как сетевой адаптер, или множество компонентов, таких, например, как компьютер (объект "компьютер" может содержать объект "сетевой адаптер"). Провайдеры задают и экспортируют представления объектов, которыми управляют приложения. Например, если продавец сетевого адаптера хочет, чтобы адаптер был WMI-совместимым, он должен разработать "поставщика услуг", который служит интерфейсом к адаптеру: запрашивает и устанавливает состояние и поведение его атрибутов, как того требуют управляющие приложения. В некоторых случаях (например, при использовании драйвера устройств) Microsoft поставляет такого поставщика услуг, который имеет собственный API, для упрощения разработки дополнений (plugins) и кодирования.

Инфраструктура WMI связывает приложения управления и провайдеров, а также играет роль хранилища классов-объектов и, во многих случаях, менеджера памяти для устойчивых объектных свойств. WMI осуществляет хранение (работает как репозитарий), подобно базе данных на жестком диске. WMI, как часть своей инфраструктуры, поддерживает несколько API, с помощью которых приложения управления обращаются к объектным данным, а провайдеры поставляют данные и определения класса.


Программы Win32 используют WMI COM API - главный API управления - для прямого взаимодействия с WMI. Другой уровень API - на вершине COM API - включает ODBC-адаптер для доступа к базе данных Microsoft Access. Разработчик базы данных использует WMI ODBC-адаптер, чтобы внедрить ссылки на объектные данные в своей базе данных. Затем разработчик может без труда составлять отчеты с помощью запросов к базе данных, которые содержат WMI-данные. Компоненты WMI ActiveX поддерживают API другого уровня. Разработчики Web используют средства управления ActiveX для создания сетевых интерфейсов к WMI-данным. Другой способ управления предполагает применение сценарного API WMI, для использования в сценариях и приложениях Visual Basic. Средства создания сценариев WMI существуют для VBScript, JScript, Active Server Pages (ASP) и HTML.

WMI-интерфейсы COM, которые используются управляющими приложениями, представляют собой основной интерфейс API для провайдеров. Однако, в отличие от приложений управления, которые являются COM-клиентами, провайдеры - это COM- или DCOM-серверы (т. е. провайдеры дополняют COM-объекты, взаимодействующие с WMI). Провайдер WMI может быть реализован в виде DLL, которые загружаются в процесс администратора WMI, в виде автономных приложений Win32 или сервисов Win32. Microsoft поставляет ряд встроенных провайдеров, которые предоставляют данные из известных источников, таких, как Performance API, системный реестр и журнал событий. Средства WMI SDK позволяют создавать независимым разработчикам собственные продукты с функциональностью WMI-провайдеров.


Содержание раздела