Conception de classes MOF (Managed Object Format)

Un fournisseur WMI se compose d’un fichier MOF (Managed Object Format) et d’un fichier DLL. Le fichier MOF définit les classes pour lesquelles l’implémentation du fournisseur fournit des données.

Les définitions de classe MOF sont compilées par l’utilitaire mofcomp et stockées dans le référentiel WMI, également appelé référentiel CIM (Common Information Model). Un moyen moins courant de créer des classes consiste à utiliser les méthodes de l’API COM pour WMI.

Notes

Pour vous assurer que toutes vos définitions de classe WMI pour les objets managés sont restaurées dans le référentiel WMI si WMI a un échec et redémarre, utilisez la #pragma instruction de préprocesseur de récupération automatique dans votre fichier MOF.

 

Les sections suivantes sont abordées dans cette rubrique :

Définition des objets à gérer

Après avoir identifié la partie de votre entreprise à gérer, définissez les objets à gérer. La définition doit inclure les données requises et vous permettre d’implémenter les règles métier pertinentes avec précision. Vous pouvez définir des objets à un niveau précis, mais il est préférable de décider entre le niveau de détail contenu dans la définition et la nécessité de fournir suffisamment de détails pour être utile. Les raccourcis tôt dans le processus peuvent gagner du temps, mais peuvent être à l’origine de plus de travail à l’avenir.

Le didacticiel CIM sur le site web du Groupe de travail de gestion distribuée (DMTF) contient d’excellentes informations sur le processus de conception. Pour plus d’informations, consultez www.dmtf.org.

Prenez en compte les facteurs suivants lorsque vous développez et implémentez une conception de schéma :

  • Qualificateurs

    Les qualificateurs fournissent des informations sur la façon de décrire des classes, des objets, des propriétés, des méthodes et des paramètres; et ils sont appliqués aux définitions de classe et de propriété. Dans le code MOF, les qualificateurs sont placés entre crochets et peuvent inclure [key] ou [association]. Pour plus d’informations, consultez Ajout d’un qualificateur et dequalificateurs WMI.

  • Espace de noms

    Un espace de noms est une unité logique pour regrouper les classes et les objets, ainsi que l’étendue et la visibilité du contrôle. En règle générale, un espace de noms contient un ensemble de classes et d’objets qui représentent des objets managés dans un environnement spécifique. Pour plus d’informations, consultez Création de hiérarchies dans WMI.

  • Object

    Un objet modélisé peut être un élément physique ou logique du schéma. Par exemple, vous pouvez modéliser un lecteur de disque physique tel qu’un disque dur ou un disque logique qui peut être une partition sur un disque physique. Une conception qui utilise une classe pour modéliser un lecteur de disque physique, puis étend cette classe pour modéliser un disque logique est plus extensible qu’une classe qui tente de créer une classe distincte pour chaque type de disque.

  • Données

    Les données peuvent être dynamiques ou statiques. Si les données sont dynamiques, vous devez créer un fournisseur de classes pour celui-ci.

    Pour permettre à l’utilisateur de modifier des données, vous devez déterminer si vous souhaitez qu’une propriété soit directement accessible en écriture ou modifiable uniquement à l’aide d’une méthode que l’utilisateur appelle.

Définition des propriétés ou des méthodes

En règle générale, une propriété de classe WMI est similaire à une propriété dans une classe C++. Si les seules actions que votre code implémente pour l’élément de données consiste à obtenir la valeur ou à définir la valeur, les données doivent être définies en tant que propriété de la classe WMI.

Une méthode WMI effectue généralement une action qui modifie l’état d’un objet managé. Par exemple, si l’action consiste à activer ou désactiver l’opération d’un objet matériel, une méthode est probablement préférable à la création d’une propriété en lecture/écriture. Vous pouvez également décider de créer une propriété qui affiche l’état du matériel.

Lorsque vous créez une classe ou une instance, vous pouvez inclure des commentaires. Utilisez cette technique pour documenter votre classe ou expliquer vos techniques de programmation. Pour plus d’informations, consultez Création d’un commentaire. En outre, vous pouvez ajouter des données pour qualifier l’objectif d’un objet de données. Pour plus d’informations, consultez Ajout d’un qualificateur.

Relation d’objets entre eux

Il existe deux façons de lier des objets entre eux : en créant des objets distincts et un objet d’association qui les concerne, ou en incorporent un objet dans l’autre. CIM ne prend pas en charge les objets incorporés. Par conséquent, pour être conforme à CIM, vous devez utiliser la première méthode. Toutefois, WMI prend en charge les objets incorporés afin d’utiliser l’une ou l’autre méthode pour représenter une relation entre les objets. Vous trouverez des exemples d’objets incorporés dans les classes Win32. Par exemple, Win32_SecurityDescriptor a l’objet incorporé Win32_ACE, qui a un autre objet incorporé, Win32_Trustee.

Tenez compte des éléments suivants lors de la décision de représenter les relations entre les objets :

Développement d’un fournisseur WMI

Fourniture de données à WMI

Types de données MOF