Общая информационная модель
Common Information Model (CIM) — это расширяемая объектно-ориентированная модель данных, содержащая сведения о разных частях предприятия. CIM является кроссплатформенным стандартом, поддерживаемым распределенной задачей управления (DMTF). С помощью WMI разработчик может использовать CIM для создания классов, представляющих жесткие диски, приложения, сетевые маршрутизаторы или даже определяемые пользователем технологии, такие как сетевой кондиционер. Просматривая и изменяя класс CIM, менеджер может управлять различными аспектами предприятия. Например, менеджер может запросить экземпляр класса CIM, представляющий рабочую станцию рабочего стола. Затем менеджер может запустить скрипт для изменения экземпляра рабочей станции CIM. WMI преобразует любые изменения в экземпляр класса CIM рабочей станции в изменение фактической рабочей станции.
CIM — это модель программирования, независимая от языка, которая использует объектно-ориентированные методы для описания предприятия. С помощью трех уровней наследования родительских или дочерних объектов CIM может описывать как общие, так и конкретные аспекты предприятия. CIM также использует метод с именем "ассоциация" для связывания различных частей корпоративной модели и использует схемы для разных сред управления.
CIM предназначен для представления согласованного представления логических и физических объектов в среде управления. CIM представляет управляемые объекты с помощью объектно-ориентированной конструкции, называемой классом. Как и класс C++ или COM, класс CIM может включать свойства для описания данных и методов для описания поведения. Как и набор com-классов, CIM не привязан к какой-либо платформе. Однако WMI включает расширение для CIM, описывающего платформы операционной системы Microsoft Windows.
CIM определяет три уровня классов:
Ядро
Основные классы представляют управляемые объекты, которые применяются ко всем областям управления. Эти классы предоставляют базовый словарь для анализа и описания управляемых систем. Классы __Parameters и __SystemSecurity являются примерами основных классов.
Общий
Общие классы представляют управляемые объекты, которые применяются к определенным областям управления. Однако общие классы не зависят от конкретной реализации или технологии. Общие классы — это расширение основных классов. Класс CIM_UnitaryComputerSystem является примером общего класса.
Растянутый
Расширенные классы представляют управляемые объекты, которые являются дополнениями для конкретных технологий к общим классам. Расширенный класс обычно применяется к определенной платформе, например UNIX или среде Microsoft Win32. Класс Win32_ComputerSystem является примером расширенного класса.
Разработчик может наследить класс от другого класса. Производный класс представляет особый случай родительского класса и наследует все свойства и методы родительского класса. Например, Win32_ComputerSystem наследует от CIM_UnitaryComputerSystem. Связи наследования можно определить с помощью системных свойств __Derivation, __Dynastyи __SuperClass. Системное свойство __Derivation представляет собой массив строк, в котором перечислены все цепочки наследования до корневого класса, который также включается в __Dynasty. Системное свойство __SuperClass показывает непосредственное родительское значение текущего класса.
WMI также поддерживает связи. Связь — это связь между двумя или более разными классами WMI. Например, на работающей рабочей станции обычно есть процессор. Класс ассоциаций WMI Win32_ComputerSystemProcessor связывает класс рабочей станции Win32_ComputerSystem с классом процессора Win32_Processor. Однако класс ассоциации не должен связывать два зависимых класса. На самом деле основной целью класса ассоциации является отображение связей между классами, которые не обязательно зависят друг от друга. Дополнительные сведения см. в объявлении класса ассоциации.
Наконец, WMI поддерживает концепцию схем. В контексте WMI схема — это группа классов, описывающих определенную среду управления. Пакет средств разработки программного обеспечения Microsoft Windows (SDK) использует две схемы: схему CIM и схему Win32. Имена классов схемы CIM начинаются с CIM_, а имена классов схемы Win32 начинаются с Win32_. Схема CIM содержит определения для основных и общих классов, а схема Win32 содержит определения расширенных классов, которые являются общими для среды Win32. Однако сторонний поставщик может создать собственные схемы, чтобы описать требования для конкретных поставщиков. Так как схемы предназначены для бесконечного расширения, разработчик всегда может добавлять новые классы для описания новых управляемых объектов в существующей среде. Однако для простоты большинство поставщиков предпочитают создавать схемы, наследующие свойства от схем CIM или Win32.