Modelo de información común

El Modelo de información común (CIM) es un modelo de datos orientado a los objetos extensible que contiene información acerca de diferentes partes de una empresa. CIM es un estándar multiplataforma a cargo del Grupo de trabajo de administración distribuida (DMTF). A través de WMI, un desarrollador puede utilizar CIM para crear clases que representan unidades de disco duro, aplicaciones, enrutadores de red o incluso tecnologías definidas por el usuario, como un acondicionador de aire en red. Al visualizar y modificar una clase CIM, un administrador puede controlar diferentes aspectos de la empresa. Por ejemplo, un administrador podría consultar una instancia de clase CIM que represente una estación de trabajo de sobremesa. A continuación, el administrador podría ejecutar un script para modificar la instancia de la estación de trabajo CIM. WMI traduciría cualquier cambio introducido en la instancia de clase CIM de la estación de trabajo a un cambio en la estación de trabajo real.

CIM es un modelo de programación independiente del lenguaje que usa técnicas orientadas a objetos para describir una empresa. Con tres niveles de herencia principal/secundaria, CIM puede describir tanto aspectos generales como específicos de una empresa. CIM también usa una técnica denominada "asociación" para vincular diferentes partes del modelo empresarial y usa esquemas para distinguir diferentes entornos de administración.

CIM está diseñado para presentar una vista coherente de objetos lógicos y físicos en un entorno de administración. CIM representa objetos administrados mediante una construcción orientada a objetos denominada "clase". Al igual que una clase C++ o COM, una clase CIM puede incluir propiedades para describir datos y métodos para describir comportamientos. Al igual que ocurre con un conjunto de clases COM, CIM no está vinculado a ninguna plataforma. Sin embargo, WMI incluye una extensión al CIM que describe las plataformas del sistema operativo Microsoft Windows.

CIM define tres niveles de clases:

  • Core

    Las clases principales representan objetos administrados que se aplican a todas las áreas de administración. Estas clases proporcionan un vocabulario básico para analizar y describir sistemas administrados. Las clases __Parameters y __SystemSecurity son ejemplos de clases principales.

  • Comunes

    Las clases comunes representan objetos administrados que se aplican a áreas de administración específicas. Sin embargo, las clases comunes son independientes de una implementación o tecnología determinada. Las clases comunes son una extensión de las clases principales. Ejemplo de una clase común es la clase CIM_UnitaryComputerSystem.

  • Extendido

    Las clases extendidas representan objetos administrados que son adiciones específicas de la tecnología a las clases comunes. Por lo general, una clase extendida se aplica a una plataforma específica, como el entorno Microsoft Win32 o UNIX. Ejemplo de una clase extendida es la clase Win32_ComputerSystem.

Un desarrollador puede derivar una clase de otra. Una clase derivada representa un caso especial de la clase primaria y hereda todas las propiedades y métodos de esta. Por ejemplo, Win32_ComputerSystem hereda de CIM_UnitaryComputerSystem. Las relaciones de herencia se pueden determinar mediante las propiedades del sistema __Derivation, __Dynasty y __SuperClass. La propiedad del sistema __Derivation es una matriz de cadenas que enumeran toda la cadena de herencia hasta incluir la clase raíz, que también se incluye en __Dynasty. La propiedad del sistema __SuperClass muestra la clase primaria inmediata de la clase actual.

WMI también admite asociaciones. Una asociación es una relación entre dos o más clases WMI distintas. Por ejemplo, una estación de trabajo en ejecución suele tener un procesador. La clase de asociación WMI Win32_ComputerSystemProcessor asocia la clase de estación de trabajo Win32_ComputerSystem con la clase de procesador Win32_Processor. Sin embargo, no es necesario que una clase de asociación vincule dos clases dependientes. De hecho, el propósito principal de una clase de asociación es mostrar relaciones entre clases que no dependen necesariamente entre sí. Para más información, consulte Declaración de una clase de asociación.

Por último, WMI admite el concepto de esquemas. En el contexto de WMI, un esquema es un grupo de clases que describen un entorno de administración determinado. El Kit de desarrollo de software (SDK) de Microsoft Windows usa dos esquemas: el esquema CIM y el esquema Win32. Los nombres de clase del esquema CIM comienzan por CIM_ y los nombres de clase del esquema Win32, por Win32_. El esquema CIM contiene las definiciones de las clases principales y comunes, mientras que el esquema Win32 contiene las definiciones de las clases extendidas que son comunes al entorno de Win32. Sin embargo, un proveedor de terceros puede crear sus propios esquemas para describir los requisitos específicos del proveedor. Dado que los esquemas están diseñados para ser infinitamente extensibles, un desarrollador siempre puede agregar clases nuevas para describir objetos administrados nuevos en un entorno existente. Sin embargo, para simplificar, la mayoría de los proveedores eligen crear esquemas que heredan las propiedades de los esquemas CIM o Win32.