Технология WMI - это внедрение корпорацией Майкрософт управления предприятием на основе сети Интернет по стандартам DMTF, которое расширяет модель CIM для представления объектов управления в средах управления на основе Windows. Модель CIM также является стандартом DMTF и представляет собой расширенную модель данных для логической организации объектов управления в среде управления упорядоченным, согласованным способом.

Основываясь на модели CIM, WBEM является инициативой DMTF и представляет собой технологию, устанавливающую стандарты инфраструктуры управления и обеспечивающей стандартный способ доступа к данным с различных аппаратных и программных систем управления в среде предприятия. С помощью стандартов WBEM, разработчики могут создавать средства и технологии, которые будут служить для уменьшения сложности и стоимости управления на предприятии. Обеспечивая такие стандарты, WBEM способствует снижению общей стоимости владения. Общая стоимость владения - это административная стоимость, связанная с приобретением оборудования и программного обеспечения, развертыванием и настройкой, обновлением программного обеспечения и оборудования, обучением кадров, поддержкой и техническим обслуживанием.

WBEM предоставляет точку интеграции, с помощью которой можно получать доступ к данным из источников управления; с ее помощью можно дополнить и расширить существующие протоколы и инструменты управления, такие как протокол SNMP, интерфейс DMI и протокол CMIP.

Технология инструментария управления Windows

Технология инструментария WMI - это инфраструктура управления, поддерживающая синтаксис модели CIM, формат MOF и общий интерфейс программирования. С помощью синтаксиса MOF определяется структура и содержимое схемы CIM в форме, которая может быть прочитана как человеком, так и компьютером. В инструментарии управления Windows предлагается мощный набор служб, включая получение данных на основе запросов и уведомление о событиях. Можно получить доступ к этим службам и данным управления посредством программируемого интерфейса COM. Интерфейс сценариев WMI также поддерживает создание сценариев.

Технология WMI предоставляет следующие возможности:

  • Отслеживание и управления любого объекта управления с помощью общего, стандартного набора интерфейсов независимо от базового механизма инструментария. WMI - это механизм доступа.

  • Постоянная модель операций, настроек и состояний в операционных системах Windows.

  • Программируемые интерфейсы приложений COM, которые поддерживают единую точку доступа для всех данных управления.

  • Взаимодействие с другими службами управления Windows. Этот подход может упростить процесс создания интегрированных, хорошо спроектированных решений управления.

  • Гибкая, расширенная архитектура. Разработчики могут расширить модель данных для работы с новыми устройствами и приложениями путем создания модулей кода, которые называются поставщиками WMI.

  • Расширения модели WDM для получения данных инструментария и событий с драйверов устройств и компонентов ядра.

  • Мощная архитектура событий. С ее помощью можно определять, суммировать, сравнивать и сопоставлять изменения данных управления с другими данными управления. Эти изменения могут быть переадресованы локальным или удаленным приложениям управления.

  • Полнофункциональный язык запросов, с помощью которого можно создавать подробные запросы модели данных.

  • Интерфейс API для разработки сценариев, который может использоваться разработчиками для создания приложений управления. Интерфейс API для создания сценариев поддерживает несколько языков, в том числе Microsoft Visual Basic; Visual Basic for Applications (VBA); Visual Basic, Scripting Edition (VBScript); программная среда разработки Microsoft JScript. Кроме VBScript и JScript, разработчики могут использовать любой язык для написания сценариев, который поддерживает технологии сценариев Microsoft ActiveX с интерфейсом API (например модуль сценариев Perl). Кроме того, можно использовать сервер сценариев Windows или Microsoft Internet Explorer для написания сценариев с помощью этого интерфейса. Сервер сценариев Windows, как и Internet Explorer, служат в качестве модуля управления для модулей создания сценариев ActiveX. Сервер сценариев Windows поддерживает сценарии, написанные на языках VBScript и JScript.

Обзор архитектуры WMI

Архитектура технологии WMI состоит из указанных ниже аспектов:

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

  • Поставщики WMI - являются посредниками между диспетчером объектов CIM и управляемыми объектами. С помощью интерфейсов API WMI поставщики обеспечивают диспетчер объектов CIM данными, полученными от управляемых объектов, обрабатывают запросы от лица приложений управления и создают уведомления о событиях.

Инфраструктура управления состоит из диспетчера объектов CIM и репозитория диспетчера объектов CIM. Приложения зависят от диспетчера объектов при обработке интерфейса между приложениями управления и поставщиками данных. Инструментарий WMI облегчает эту связь, предоставляя общий интерфейс программирования для служб управления Windows с помощью COM. Этот интерфейс API COM обеспечивает службы уведомления о событиях и обработки запросов и может быть использован в нескольких средах программирования, таких как C и C++. Репозиторий диспетчера объектов CIM содержит схемы CIM и расширения, а также сведения о данных и источнике данных. Диспетчер объектов CIM использует данные схемы в этом репозитории при обработке запросов из приложений управления для управляемых объектов.

Управляемые объекты - это физические или логические компоненты предприятия, которые моделируются с помощью CIM. Например, управляемым объектом может быть оборудование, такое как кабель, или программное обеспечение, такое как приложение для работы с базами данных. Приложения управления могут получать доступ к объектам управления посредством диспетчера объектов CIM.

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

Поставщики WMI - это стандартные серверы COM и DCOM, которые работают как посредники между управляемыми объектами и диспетчером объектов CIM. Если диспетчер объектов CIM получает запрос от приложения управления, относящийся к данным, которые недоступны в репозитории диспетчера объектов CIM, или к уведомлениям о событиях, которые не поддерживаются диспетчером объектов CIM, диспетчер переадресует этот запрос поставщику WMI. Поставщики предоставляют данные и уведомления о событиях управляемым объектам, которые находятся в их домене.

Чтобы внедрить поставщика, необходимо использовать один из следующих поддерживаемых типов сервера:

• Службы Microsoft Windows 2008, локальные или удаленные.

• Стандартные исполняемые файлы (EXE), локальные или удаленные.

• Внутрипроцессные библиотеки динамической компоновки (DLL).

Обратите внимание, что локальные или удаленные службы Windows 2008 и стандартные исполняемые файлы являются рекомендованными типами серверов.

Инструментарий WMI поставляется со встроенными поставщиками (или стандартными поставщиками), которые предоставляют данные из таких источников, как системный реестр. Ниже приведены эти встроенные поставщики:

  • Поставщик Active Directory - действует в качестве шлюза для доступа ко всем данным, которые хранятся в службе каталогов Active Directory. С помощью одного интерфейса API можно получить доступ к данным WMI и Active Directory.

  • Поставщик установщика Windows - обеспечивает полное управление установщиком Windows, а также установку программного обеспечения посредством WMI. Также предоставляет сведения о любом приложении, установленном с помощью установщика Windows.

  • Поставщики счетчиков производительности - предоставляет данные исходных счетчиков производительности, которые используются для расчета значений производительности, отображаемых в системном мониторе. В этом поставщике автоматически будут отображаться любые счетчики, установленные в системе.

  • Поставщик реестра - с его помощью можно создавать, считывать и записывать разделы реестра. События WMI могут быть созданы при изменении указанных разделов реестра.

  • Поставщик SNMP - служит шлюзом для систем и устройств, которые используют протокол SNMP для управления. Переменные объекта MIB протокола SNMP могут быть прочитаны и записаны. Ловушки SNMP могут быть автоматически сопоставлены событиям WMI.

  • Поставщик журнала событий - предоставляет доступ к уведомлениям о событиях в журнале событий Windows Server 2008.

  • Поставщик Win32 - предоставляет сведения об операционной системе, системе компьютера, периферийных устройствах, файловых системах и данных безопасности.

  • Поставщик WDM - предоставляет данные низкоуровнего драйвера WDM для пользовательских устройств ввода, устройств хранения, сетевых интерфейсов и портов связи.

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

Также технология WMI предоставляет поддержку поставщиков сторонних производителей. Эти поставщики могут использоваться для обработки запросов, относящихся к управляемым объектам в определенной среде. Как правило, поставщики используют язык MOF для определения и создания классов. Поставщики используют интерфейс API инструментария WMI для доступа к репозиторию WMI и для ответа на запросы диспетчера объектов CIM, которые были сделаны приложениями.

Обзор протокола SNMP

Протокол SNMP - это стандарт сетевого управления, в котором определяется стратегия управления сетями TCP/IP.

В протоколе SNMP используется распределенная архитектура, которая состоит из следующих факторов:

  • Несколько управляемых узлов, каждый из которых имеет объект SNMP, называемый агентом, который обеспечивает удаленный доступ к инструментарию управления.

  • Хотя бы один из объектов SNMP называется диспетчером - он выполняет приложения управления для отслеживания управляемых элементов и управления ими. Управляемые элементы - это устройства, такие как компьютеры и маршрутизаторы, они отслеживаются и управляются путем доступа к их данным управления.

  • Протокол управления SNMP используется для передачи данных управления между станциями управления и агентами. Данные управления означают коллекцию управляемых объектов, которые находятся в виртуальном хранилище данных, которое называется базой MIB.

Сообщения SNMP

Чтобы передавать данные об узле, системы и агенты управления используют сообщения SNMP. Эти сообщения отправляются с помощью протокола UDP и маршрутизируются между системой управления и узлом с помощью протокола IP.

База MIB содержит данные, запрошенные системой управления. База MIB для компьютера в сети может содержать данные о настройке и производительности сетевой карты, доступном свободном пространстве на диске, версии драйверов и приложений и прочие сведения. Можно создать и загрузить дополнительные базы MIB для предоставления данных, относящихся к коллекции, если только сама система поддерживает коллекцию требуемых сведений.

Обработка запросов данных

При запросе данных системой управления происходит следующая последовательность событий:

  1. Система управления отправляет запрос агенту, используя IP-адрес агента.

  2. Агент формирует датаграмму SNMP, которая содержит сообщение SNMP и имя сообщества, к которому принадлежит система управления.

  3. SNMP-агент получает датаграмму и подтверждает имя сообщества. Если имя сообщества является допустимым, SNMP-агент получает необходимые данные. Если же имя сообщества является недопустимым, запрос отклоняется. Если агент был настроен на отправку ловушки проверки подлинности, отправляется сообщение ловушки.

  4. SNMP-датаграмма возвращается в систему управления вместе с запрошенными данными.

Сообщения

Используются указанные ниже типы сообщений SNMP:

  • GetThis - это сообщение запроса. Системы управления SNMP используют сообщения Get для запроса данных о записи базы MIB на SNMP-агенте.

  • GetnextA - тип сообщения запроса, которое может быть использовано для просмотра всего дерева управляемых объектов.

  • GetbulkA - тип запроса, в котором указано, что агент передает самый большой объем данных в рамках размера одного сообщения.

  • SetThis - используется для отправки агенту и установки обновленного значения базы MIB.

  • Notify (или Trap) - это несогласованное сообщение, отправляемое агентом системе управления SNMP при обнаружении определенного типа события, которое произошло локально или на управляемом узле.

События SNMP (или ловушки) отправляются несогласованно на станцию управления, которая фильтрует события, поэтому задействуется сетевой трафик. В инструментарии WMI события локально фильтруются, и только те события, которые соответствовали критерию фильтра, отправляются по сети, что приводит к уменьшению требуемой пропускной способности для необходимых событий.

Поддержка SNMP в пакете SDK инструментария WMI

Поставщик SNMP состоит из следующих компонентов:

  • Поставщики классов, экземпляров и событий, которые интегрируют в WMI моделирование и обработку данных SNMP. Эти провайдеры SNMP сопоставляют коллекцию значений объектов значениям свойств экземпляров класса CIM.

  • Компилятор модуля данных SNMP, который компилирует исходные данные схемы SNMP в формат, используемый модулем CIM.

Поставщики SNMP

Поставщики SNMP возвращают динамические данные. Можно указать набор классов, с которыми будет работать поставщик экземпляров одним или двумя способами:

  • Статистически - путем создания классов в пространстве имен репозитория объектов CIM, связанного с прокси-устройством.

  • Динамически - с помощью поставщика классов SNMP, который возвращает набор классов, расположенных в пространстве имен SMIR.

Кроме того, можно указать, следует ли использовать корреляцию для набора классов, возвращенных из пространства имен SMIR. Корреляционные классы определяют набор классов, которые поддерживались SNMP-агентом во время перечисления. При некорелляционном перечислении возвращаются все классы, присутствующие в пространстве имен SMIR независимо от того, поддерживаются ли они устройством агента или нет.

Ниже приведены поставщики SNMP:

  • Поставщики классов и экземпляров SNMP, которые используются приложениями для доступа и изменения данных, относящихся к устройствам SNMP.

  • Поставщики событий SNMP, которые создают события на основе ловушек и уведомлений SNMP. Эти поставщики отображают одинаковые типы событий, но в разных форматах: инкапсулированном и ссылочном. Инкапсулированный формат означает, что класс событий содержит простые свойства, описывающие данные, сопоставленные напрямую из макросов TRAP-TYPE и NOTIFICATION-TYPE, описанных в следующем разделе. Ссылочные классы предоставляют данные, находящиеся в макросах, так что свойства, имеющие одинаковый класс и экземпляр, предоставляются как встроенные объекты. Это позволяет развертывать __RELPATH, так что уникальный экземпляр, с которым сопоставлена ловушка, может быть извлечен после получения события. Чтобы выбрать формат, клиенты регистрируются на определенный класс событий.

Сопоставление данных устройства классам CIM

Поставщики SNMP сопоставляют данные устройства классам CIM с помощью следующих методов:

  • Перечисление определений классов SNMP. Чтобы перечислить набор определений классов, приложения могут вызвать IWbemServices::CreateClassEnum или IWbemServices::CreateClassEnumAsync.

    Объекты базы MIB сопоставляются классам CIM SNMP с помощью макроса OBJECT-TYPE; события сопоставляются классам с помощью макросов TRAP-TYPE и NOTIFICATION-TYPE.

    Макрос OBJECT-TYPE используется для описания основных характеристик объекта MIB. Макросы SNMPv1 TRAP-TYPE и SNMPv2C NOTIFICATION-TYPE описывают характеристики события SNMP.

  • Создание определений классов SNMP. Чтобы создать определение класса, приложения могут вызвать IWbemServices::GetObject или IWbemServices::GetObjectAsync.

  • Перечисление экземпляров классов SNMP. Поставщик экземпляров SNMP обрабатывает запросы на перечисление экземпляров, связанных с классами, представляющими базы MIB устройств.

  • Создание экземпляров классов SNMP. Поставщик экземпляров SNMP обрабатывает запросы для создания экземпляров классов, представляющих объекты базы MIB.

  • Получение экземпляров классов SNMP. Чтобы получить определенный экземпляр класса CIM SNMP, приложения могут вызвать IWbemServices::GetObject или IWbemServices::GetObjectAsync.

SNMP и схема CIM

Схема, используемая протоколом SNMP для определения объектов, отличается от схемы, используемой в модели CIM инструментария WMI. Схема SNMPv1 и SNMPv2 называется структурой данных управления (SMI) и поставляется как файлы MIB. Чтобы определить объекты, файлы MIB используют нотацию ASN.1, стандартный язык и определения макросов, которые используются в качестве шаблонов для описания объектов. В этих макросах предоставляются сведения об объекте, включая его имя, идентификатор, синтаксис, описания, права доступа и прочее.

Поставщики SNMP инструментария WMI преобразуют эти макросы базы MIB:

  • OBJECT-TYPE - описание основных характеристик объекта, таких как имени объекта, синтаксиса, правил доступа и прочего. Относится к SNMPv1 и SNMPv2C.

  • TEXTUAL-CONVENTION - назначение имени и, в некоторых случаях, диапазона значений для существующего типа данных. Относится только к SNMPv2C.

  • TRAP-TYPE - сообщения событий (ловушки). Относится только к SNMPv1.

  • NOTIFICATION-TYPE - описание сообщений событий (уведомления). Относится только к SNMPv2C.

Поставщик классов SNMP перечисляет и создает набор определений классов оп пространству имен CIM. Это выполняется с помощью средства корреляции базы MIB и репозитория данных модуля SNMP - базы данных схемы SNMP. Поставщик классов SNMP поддерживает корреляционные и некорелляционные режимы. Следует назначить один из этих режимов, задав значение контекста (IWbemContext) логического типа и передав это значение в метод IWbemServices. Поставщик классов SNMP поддерживает как перечисление определений классов, так и получение определений классов.

Поставщик экземпляров SNMP сопоставляет объекты базы MIB SNMP экземплярам класса.

Пространство имен SNMP

Чтобы определить представление сетевого устройства, используется пространство имен SNMP. Можно создать пространство имен SNMP с помощью приложения пакета SDK инструментария WMI WMI Common Information (CIM) Studio путем компиляции MOF-файла или посредством программирования с помощью интерфейса API инструментария WMI.

Системный класс пространства имен используется для представления пространства имен SNMP. Чтобы создать новое пространство имен, необходимо создать экземпляр этого устройства. Необходимо сопоставить хотя бы один дескриптор (или квалификатор) с экземпляром класса. Квалификаторы содержат данные контекста, присущие внедрению, и свойства транспорта, с помощью которых определяется, как поставщики SNMP могут получить доступ к агенту SNMP.

Представление устройства SNMP

Устройства SNMP представлены в инструментарии WMI с использованием прокси-пространства имен, которое содержит набор квалификаторов экземпляров. Эти квалификаторы описывают характеристики транспорта, принадлежащие устройству. В инструментарии WMI используется MOF-файл, snmpreg.mof, который служит для создания пространства имен \\.\root\snmp\localhost. Это стандартное пространство имен, которое представляет локальный агент SNMP.

SNMPv2C

SNMPv2C поддерживается в контексте WMI. Основным назначением SNMPv2C является обеспечение более строго контекста защиты для SNMP. В этой версии используется простая и небезопасная функция проверки подлинности, основанная на пароле, которая называется функцией сообщения (предоставлена в SNMPv1). В структуре SMI в SNMPv2 содержатся некоторые дополнения и улучшения безопасности сообщества, такие как включение двоичных строк, сетевых адресов и счетчиков для типов данных, присущих структуре SMI в SNMPv1. Кроме того, в структуре SMI для SNMPv2 определены модули данных, в которых указаны группы связанных определений. Также в SNMPv2 определены две новых операции протокола: GetBulk и Inform.

Безопасность

В безопасности инструментария WMI проверяется входные данные пользователя как на локальном компьютере, так и для удаленного доступа. Инструментарий WMI предоставляет проверенному пользователю управляемый доступ ко всему репозиторию CIM. В настоящее время инструментарий WMI не обеспечивает безопасность системным ресурсам, таким как отдельным классам и экземплярам. Однако администраторы могут использовать WMI для управления глобальными разрешениями для операций схемы, такими как ограничение доступа некоторых пользователей к операциям, доступным только для чтения. Также WMI поддерживает безопасность для пространств имен. Кроме того, поставщик SNMP обеспечивает поддержку для всей безопасности на основе SNMP, включая улучшения безопасности в SNMPv2C.

Компилятор модуля данных SNMP

Компилятор модуля данных SNMP используется для компиляции исходных данных управления SNMP, которые определены в базе MIB, в эквивалентное определение схемы CIM, которое может быть использовано другими поставщиками SNMP. Схема CIM может существовать в качестве выходных данных в MOF-файле или может быть загружена в базу данных схемы SNMP (репозиторий данных модуля SNMP или SMIR). Поставщик динамических классов SNMP использует репозиторий данных модуля SNMP для создания и получения экземпляров определений классов.

Компилятор модуля данных SNMP работает в режиме командной строки в качестве исполняемого файла, используя модуль данных SNMP в качестве входных данных, а также любые дополнительные файлы, которые могут оказаться необходимыми при разрешении внешних ссылок. Модули данных SNMP являются коллекциями данных управления, которые обычно состоят из комбинации модулей MIB, а также инструкций AGENT-CAPABILITIES и MODULE-COMPLIANCE. Инструкции AGENT-CAPABILITIES описывают совместимость агента с набором поддерживаемых модулей MIB. Инструкции MODULE-COMPLIANCE описывают возможности агента, относящиеся к определениям объектов.

Кроме того, компилятор модуля данных SNMP предоставляет следующие функциональные возможности:

  • Выполнение операций проверки в модуле данных. Например, компилятор проверяет локальный синтаксис и внешние ссылки по данным во вспомогательных модулях.

  • Удаление всех загруженных из SMIR данных или удаление данных, загруженных из модуля данных.

  • Возвращение имени модуля ASN.1 для указанного файла или имен модулей ASN.1 для всех импортированных модулей в указанном файле.

  • Возвращение имен модулей ASN.1 для всех модулей данных SNMP, которые в настоящий момент загружены в SMIR.

  • Выполнение автоматического разрешения импортированных модулей вместо указания требуемых модулей пользователями вручную.

  • Выполнение режима автоматической загрузки операции, который не приводит к созданию выходных данных, но может быть использован для загрузки данных в SMIR во время установки.

См. также


Содержание