Windows Management Instrumentation
Начиная с 1996 года, компания Microsoft разрабатывает Windows-ориентированную реализацию технологии WBEM, получившую название Windows Management Instrumentation (WMI).
WMI – это ключевой компонент для административных служб Windows, к числу которых относятся, например, службы поиска и политик Active Directory, службы визуализации, входящие в Microsoft Management Console (MMC), и средства автоматизации (automation) сервера сценариев Microsoft Scripting Host (WSH).
Можно перечислить следующие средства, входящие в WMI (отметим только представляющие интерес для Windows 2000):
- Функционально полная модель для конфигурирования операционной системы и отображения ее состояния.
- Интерфейс программирования COM API, обеспечивающий единый доступ ко всей информации, касающейся администрирования.
- Возможность взаимодействия с административными службами Windows 2000, что позволяет разработчикам создавать интегрированные приложения для управления системами.
- Гибкая информационная модель, которую можно расширять для поддержки новых устройств и приложений, создавать соответствующие программные модули (WMI-провайдеры).
- Развитая событийная архитектура, обеспечивающая распознавание и обработку изменений в состоянии объектов управления и передачу этой информации локальным или удаленным административным программам.
- Сложный язык запросов для получения данных из информационной модели.
- API сценариев, позволяющий разработчикам управляющих приложений использовать Visual Basic или Windows Scripting Host (WSH).
WMI имеет трехуровневую архитектуру для сбора и распространения управляющей информации: стандартный механизм для хранения описаний объектов (хранилище объектов, совместимое с CIM), стандартный протокол для передачи управляющей информации (COM/DCOM; возможны и другие протоколы) и множество DLL-библиотек, выполняющих функции WMI-пpoвайдеров (которые обеспечивают данными компоненты схемы CIM) (рис. 12.1).
Рис. 12.1. Архитектура WMI
Ниже кратко описаны некоторые элементы и возможности WMI (более подробную информацию можно найти в WMI SDK).