Diseñar clases de formato de objeto administrado (MOF)
Un proveedor WMI consta de un archivo de formato de objeto administrado (MOF) y un archivo DLL. El archivo MOF define las clases para las que la implementación del proveedor proporciona datos.
Las definiciones de clase MOF se compilan mediante la utilidad mofcomp y se almacenan en el repositorio WMI, también conocido como repositorio de Common Information Model (CIM). Una manera menos común de crear clases es a través de los métodos de la API COM para WMI.
Nota:
Para asegurarse de que todas las definiciones de clase WMI para objetos administrados se restauran en el repositorio WMI si WMI tiene un error y se reinicia, use la instrucción de preprocesador de conmutación automática #pragma en el archivo MOF.
En este tema se describen las secciones siguientes:
- Definir los objetos que se van a administrar
- Definir propiedades o métodos
- Relacionar objetos entre sí
- Temas relacionados
Definir los objetos que se van a administrar
Después de identificar la parte de la empresa que se va a administrar, defina los objetos que se van a administrar. La definición debe incluir los datos necesarios y permitirle implementar las reglas de negocios pertinentes con precisión. Puede definir objetos en un nivel granular, pero es mejor decidir entre el nivel de detalle contenido en la definición y la necesidad de proporcionar suficiente detalle para ser útil. Los accesos directos al principio del proceso pueden ahorrar tiempo, pero pueden provocar más trabajo en el futuro.
El Tutorial cim del sitio web del Grupo de tareas de administración distribuida (DMTF) contiene información excelente sobre el proceso de diseño. Para obtener más información, consulte www.dmtf.org.
Tenga en cuenta los siguientes factores al desarrollar e implementar un diseño de esquema:
Calificadores
Los calificadores proporcionan información sobre cómo describir clases, objetos, propiedades, métodos y parámetros; y se aplican a las definiciones de clase y propiedad. En el código MOF, los calificadores se incluyen entre corchetes y pueden incluir [clave] o [asociación]. Para obtener más información, vea Agregar un calificador y calificadores WMI.
Espacio de nombres
Un espacio de nombres es una unidad lógica para agrupar clases y objetos, y controlar el ámbito y la visibilidad. Normalmente, un espacio de nombres contiene un conjunto de clases y objetos que representan objetos administrados en un entorno específico. Para obtener más información, vea Crear jerarquías dentro de WMI.
Object
Un objeto modelado puede ser un elemento físico o lógico del esquema. Por ejemplo, puede modelar una unidad de disco físico, como una unidad de disco duro, o un disco lógico que pueda ser una partición en un disco físico. Un diseño que usa una clase para modelar una unidad de disco físico y, a continuación, extiende esa clase para modelar un disco lógico es más extensible que una que intenta crear una clase independiente para cada tipo de disco.
data
Los datos pueden ser dinámicos o estáticos. Si los datos son dinámicos, debe crear un proveedor de clases para ellos.
Para permitir que el usuario modifique los datos, debe determinar si desea que una propiedad sea directamente editable o modificable únicamente mediante un método al que llama el usuario.
Definir propiedades o métodos
Por lo general, una propiedad de clase WMI es similar a una propiedad de una clase de C++. Si las únicas acciones que implementa el código para el fragmento de datos es obtener el valor o establecer el valor, los datos deben definirse como una propiedad de la clase WMI.
Normalmente, un método WMI realiza una acción que cambia el estado de un objeto administrado. Por ejemplo, si la acción es habilitar o deshabilitar la operación de un objeto de hardware, es probable que un método sea preferible a crear una propiedad de lectura y escritura. También puede decidir crear una propiedad que muestre el estado del hardware.
Al crear una clase o una instancia de , puede incluir comentarios. Use esta técnica para documentar la clase o explicar las técnicas de programación. Para obtener más información, vea Crear un comentario. Además, puede agregar datos para calificar el propósito de un objeto de datos. Para obtener más información, vea Agregar un calificador.
Relacionar objetos entre sí
Hay dos maneras de relacionar objetos entre sí: mediante la creación de objetos independientes y un objeto de asociación que los relaciona, o insertando un objeto en el otro. CIM no admite objetos incrustados, por lo que para que sea compatible con CIM, debe usar el primer método. Sin embargo, WMI admite objetos incrustados, por lo que usa cualquiera de los métodos para representar una relación entre objetos. Puede encontrar ejemplos de objetos incrustados en las clases Win32. Por ejemplo, Win32_SecurityDescriptor tiene el objeto incrustado Win32_ACE, que tiene otro objeto incrustado, Win32_Trustee.
Tenga en cuenta lo siguiente al decidir cómo representar relaciones entre objetos:
- Si una instancia es útil por sí misma, una asociación funciona mejor. Por ejemplo, Win32_Process y Win32_UserAccount. Para obtener más información, vea Declarar una clase de asociación.
- Si una instancia no existe fuera del objeto primario, un objeto incrustado funciona mejor. Por ejemplo, Win32_SecurityDescriptor y Win32_ACE. Para obtener más información, vea Incrustar objetos en una clase.
Temas relacionados