Common Information Model (CIM)

Le modèle CIM (Common Information Model) est un modèle de données extensible et orienté objet qui contient des informations sur différentes parties d’une entreprise. La norme CIM est développée et gérée par Distributed Management Task Force (DMTF). Via WMI, un développeur peut utiliser le modèle CIM pour créer des classes qui représentent les lecteurs de disque dur, les applications, les routeurs réseau et même des technologies définies par l’utilisateur, par exemple des climatiseurs réseau. En affichant et en modifiant une classe CIM, un responsable peut contrôler différents aspects de l’entreprise. Par exemple, il peut interroger une instance de classe CIM représentant une station de travail de bureau. Il peut ensuite exécuter un script pour modifier l’instance de station de travail CIM. WMI traduit les modifications apportées à l’instance de classe CIM de la station de travail en modifications de la station de travail.

Le CIM est un modèle de programmation indépendant du langage qui utilise des techniques orientées objet pour décrire une entreprise. À l’aide de trois niveaux d’héritage parent/enfant, l’ICM peut décrire des aspects généraux et spécifiques d’une entreprise. L’ICM utilise également une technique appelée « association » pour lier différentes parties du modèle d’entreprise, et utilise des schémas pour distinguer différents environnements de gestion.

Le CIM est conçu pour présenter une vue cohérente des objets logiques et physiques dans un environnement de gestion. Le CIM représente des objets managés à l’aide d’une construction orientée objet appelée « classe ». Comme une classe C++ ou COM, une classe CIM peut inclure des propriétés pour décrire des données et des méthodes pour décrire le comportement. Comme un ensemble de classes COM, le CIM n’est lié à aucune plateforme. Toutefois, WMI inclut une extension au CIM qui décrit les plateformes de système d’exploitation Microsoft Windows.

L’ICM définit trois niveaux de classes :

  • Core

    Les classes principales représentent des objets managés qui s’appliquent à tous les domaines de gestion. Ces classes fournissent un vocabulaire de base pour l’analyse et la description des systèmes managés. Les classes __Parameters et __SystemSecurity sont des exemples de classes principales.

  • Courant

    Les classes courantes représentent des objets managés qui s’appliquent à des zones de gestion spécifiques. Toutefois, les classes courantes sont indépendantes d’une implémentation ou d’une technologie particulière. Les classes courantes sont une extension des classes principales. La classe CIM_UnitaryComputerSystem est un exemple de classe commune.

  • Étendu

    Les classes étendues représentent des objets managés qui sont des ajouts spécifiques à la technologie aux classes courantes. Une classe étendue s’applique généralement à une plateforme spécifique, comme UNIX ou l’environnement Microsoft Win32. La classe Win32_ComputerSystem est un exemple de classe étendue.

Un développeur peut dériver une classe d’une autre classe. Une classe dérivée représente un cas spécial de la classe parente et hérite de toutes les propriétés et méthodes du parent. Par exemple, Win32_ComputerSystem hérite de CIM_UnitaryComputerSystem. Les relations d’héritage peuvent être déterminées à l’aide des propriétés système __Derivation, __Dynasty et __SuperClass. La propriété système __Derivation est un tableau de chaînes répertoriant l’intégralité de la chaîne d’héritage jusqu’à la classe racine, qui est également incluse dans __Dynasty. La propriété système __SuperClass affiche le parent immédiat de la classe actuelle.

WMI prend également en charge les associations. Une association est une relation entre au moins deux classes WMI différentes. Par exemple, une station de travail en cours d’exécution a généralement un processeur. La classe d’association WMI Win32_ComputerSystemProcessor associe la classe de station de travail Win32_ComputerSystem à la classe de processeur Win32_Processor. Toutefois, une classe d’association n’a pas besoin de lier deux classes dépendantes ensemble. En fait, l’objectif principal d’une classe d’association est de montrer les relations entre les classes qui ne sont pas nécessairement dépendantes les unes des autres. Pour plus d’informations, consultez Déclarer une classe d’association.

Enfin, WMI prend en charge le concept de schémas. Dans le contexte de WMI, un schéma est un groupe de classes qui décrivent un environnement de gestion particulier. Le Kit de développement logiciel (SDK) Microsoft Windows utilise deux schémas : le schéma CIM et le schéma Win32. Les noms des classes de schéma CIM commencent par CIM_, et les noms des classes de schéma Win32 commencent par Win32_. Le schéma CIM contient les définitions des classes principales et courantes, tandis que le schéma Win32 contient les définitions des classes étendues communes à l’environnement Win32. Toutefois, un fournisseur tiers peut créer ses propres schémas pour décrire les exigences spécifiques du fournisseur. Étant donné que les schémas sont conçus pour être extensibles à l’infini, un développeur peut toujours ajouter de nouvelles classes pour décrire de nouveaux objets managés dans un environnement existant. Toutefois, par souci de simplicité, la plupart des fournisseurs choisissent de créer des schémas qui héritent des propriétés des schémas CIM ou Win32.