Проектирование классов формата управляемых объектов (MOF)
Поставщик WMI состоит из MOF-файла и DLL-файла. MOF-файл определяет классы, для которых реализация поставщика предоставляет данные.
Определения классов MOF компилируются служебной программой mofcomp и хранятся в репозитории WMI, также известном как репозиторий CIM. Менее распространенным способом создания классов являются методы COM API для WMI.
Примечание
Чтобы убедиться, что все определения классов WMI для управляемых объектов будут восстановлены в репозитории WMI в случае сбоя и перезапуска WMI, используйте инструкцию препроцессора #pragma автоматического восстановления в MOF-файле.
В этом разделе рассматриваются следующие разделы:
- Определение объектов для управления
- Определение свойств или методов
- Связанные объекты друг с другом
- Связанные темы
Определение объектов для управления
Определив часть предприятия для управления, определите объекты для управления. Определение должно включать необходимые данные и позволить точно реализовать соответствующие бизнес-правила. Объекты можно определить на уровне детализации, но лучше выбрать между уровнем детализации, содержащимся в определении, и необходимостью предоставления достаточной детализации, чтобы быть полезным. Сочетания клавиш на ранних этапах процесса могут сэкономить время, но могут привести к большей работе в будущем.
Руководство по CIM на веб-сайте распределенной целевой группы управления (DMTF) содержит отличную информацию о процессе проектирования. Дополнительные сведения см. в разделе www.dmtf.org.
При разработке и реализации схемы учитывайте следующие факторы:
Квалификаторы
Квалификаторы предоставляют сведения о том, как описывать классы, объекты, свойства, методы и параметры; и они применяются к определениям классов и свойств. В MOF-коде квалификаторы заключаются в квадратные скобки и могут включать [ключ] или [связь]. Дополнительные сведения см. в разделе Добавление квалификатора и Квалификаторов WMI.
Пространство имен
Пространство имен — это логическая единица для группирования классов и объектов, а также управления область и видимостью. Как правило, пространство имен содержит набор классов и объектов, представляющих управляемые объекты в определенной среде. Дополнительные сведения см. в статье Создание иерархий в WMI.
Объект
Смоделированные объекты могут быть физическим или логическим элементом схемы. Например, можно смоделировать физический диск, например жесткий диск, или логический диск, который может быть разделом на физическом диске. Структура, использующая класс для моделирования физического диска, а затем расширяющая этот класс для моделирования логического диска, более расширяема, чем модель, которая пытается создать отдельный класс для каждого типа диска.
Данные
Данные могут быть динамическими или статическими. Если данные являются динамическими, необходимо создать для него поставщик классов.
Чтобы пользователь мог изменять данные, необходимо определить, нужно ли использовать свойство для непосредственной записи или изменения только с помощью метода, вызываемого пользователем.
Определение свойств или методов
Как правило, свойство класса WMI аналогично свойству класса C++. Если единственным действием, которое ваш код реализует для части данных, является получение значения или установка значения, то данные должны быть определены как свойство класса WMI.
Метод WMI обычно выполняет действие, которое изменяет состояние управляемого объекта. Например, если действие заключается в включении или отключении работы аппаратного объекта, то метод, вероятно, предпочтительнее, чем создание свойства чтения и записи. Вы также можете создать свойство, отображающее состояние оборудования.
При создании класса или экземпляра можно включать комментарии. Используйте этот метод, чтобы задокументировать класс или объяснить свои методы программирования. Дополнительные сведения см. в разделе Создание комментария. Кроме того, можно добавить данные для определения назначения объекта данных. Дополнительные сведения см. в разделе Добавление квалификатора.
Связанные объекты друг с другом
Существует два способа связать объекты друг с другом: путем создания отдельных объектов и объекта связи, который их связывает, или путем внедрения одного объекта в другой. CIM не поддерживает внедренные объекты, поэтому для соответствия CIM необходимо использовать первый метод. Однако WMI поддерживает внедренные объекты, поэтому используйте любой из методов для представления связи между объектами. Примеры внедренных объектов можно найти в разделе Классы Win32. Например, Win32_SecurityDescriptor имеет Win32_ACE внедренного объекта, который имеет другой внедренный объект , Win32_Trustee.
При выборе способа представления связей между объектами учитывайте следующее:
- Если экземпляр полезен сам по себе, лучше всего подходит связь. Например, Win32_Process и Win32_UserAccount. Дополнительные сведения см. в разделе Объявление класса ассоциации.
- Если экземпляр не существует за пределами родительского объекта, лучше всего работает внедренный объект. Например, Win32_SecurityDescriptor и Win32_ACE. Дополнительные сведения см. в разделе Внедрение объектов в класс.
Связанные темы