# Common Information Model

CIM signifie « modèle de données unifié » (Common Information Model). C'est un standard ouvert qui définit comment des éléments administrés dans un environnement informatique peuvent être représentés sous forme d'un ensemble d'objets cohérents et d'un ensemble de relations entre ces objets. Le but est d'avoir une administration système cohérente et unifiée des éléments gérés, et cela de façon totalement indépendante de leurs fabricants ou fournisseurs.

## Vue générale

Une autre façon de décrire CIM est de dire qu'il permet à de nombreux intervenants d'échanger des informations de management les concernant. Mais CIM ne permet pas seulement de représenter ces éléments managés ainsi que leurs informations intrinsèques, il fournit aussi un moyen de les contrôler et de les manager directement. En utilisant un modèle de donnée unifié, un logiciel de management peut être écrit une seule fois et travailler ainsi avec plusieurs implémentations de ce modèle unifié, sans surcoût ni perte d'information.
Le standard CIM est défini et publié par le DMTF (Distributed Management Task Force). Un standard similaire est WBEM (Web-Based Enterprise Management), définit aussi par le DMTF, qui définit une implémentation particulière de CIM, incluant des protocoles de découverte et d'accès à des implémentations CIM.

## Schéma et Spécifications de CIM

Le standard CIM comporte deux spécifications distinctes: la spécification CIM Infrastructure Specification et la spécification CIM Schema:
* CIM Infrastructure Specification
    Cette spécification définit l'architecture et les concepts de CIM, incluant un langage par lequel le schéma CIM est défini (en incluant d'éventuelles extensions de ce schéma), en pratique toujours le langage WQL, ainsi qu'une méthode pour mapper CIM à d'autres modèles de données, tels que SNMP par exemple. L'architecture CIM est basée sur UML, et est donc orientée-objet: Les éléments managés sont représentés comme des classes CIM et toutes les relations entre ces classes sont représentées comme des associations CIM. L'héritage permet la spécialisation des éléments CIM de base dans des éléments dérivés plus spécifiques. S'y ajoute la notion de serveur CIM qui répond à ces requêtes, locales ou distantes. Une implémentation commune est OpenPegasus.
* CIM Schema
    Cette spécification est un schéma conceptuel qui définit un ensemble d'objets et de relations entre elles et qui représente une base commune pour les éléments managés dans leur environnement. Le schéma CIM couvre la plupart des éléments connus dans le monde de l'informatique IT d'aujourd'hui. Par exemple, les ordinateurs, les systèmes d'exploitation, les réseaux, le middleware, le stockage de données... Des classes seront par exemple CIM_ComputerSystem, CIM_OperatingSystem, CIM_Process, CIM_DataFile. Le schéma CIM définit une base commune pour représenter ces éléments manageables. Puisque la plupart des éléments à manager ont des comportements et des fonctionnalités spécifiques selon leurs fabricants, le schéma CIM est extensible afin de permettre aux fabricants de ces éléments de représenter leur produit et le comportement spécifique de leurs équipements en utilisant comme base commune les éléments définis dans le schéma CIM.
CIM est le socle de base utilisé dans la plupart des autres standards du DMTF (par exemple WBEM ou SMASH). Il forme aussi la base de la spécification de la gestion de stockage nommé SMI-S.

## Versions

* La dernière version du Schéma CIM est la version 2.20.1, publiée le 16 février 2009.
* La dernière version de la Spécification d'Infrastructure de CIM est la version 2.3, publiée le 4 octobre 2005.
* La dernière version de la Spécification de Compliance CIM est la version 1.1, publiée le 5 décembre 2003.
* La dernière version de la Spécification CIM est la version 2.2, publiée le 14 juin 1999.

## Implémentations

Plusieurs vendeurs fournissent des implémentations de CIM sous différentes formes:
* La plupart des systèmes d'exploitation fournissent une implémentation CIM. Par exemple, l'API WMI (Windows Management Instrumentation) disponible dans Microsoft Windows 2000 et les versions suivantes implémentent CIM, ainsi que certaines distributions GNU/Linux avec le projet SBLIM sur SourceForge.net.
* L'industrie des réseaux SAN (Storage Area Network) a intensivement utilisé CIM et WBEM. Son utilisation spécifique de CIM est connue sous le nom de SMI-S (Storage Management Initiative - Specification) qui est un standard définit par le SNIA.
* La plupart des fabricants de serveurs ont collaboré avec le DMTF via l'initiative SMASH (Systems Management Architecture for Server Hardware) afin de définir une base CIM pour l'administration des serveurs.
* L'initiative DASH, toujours issue du DMTF, essaie de définir une administration des ordinateurs de bureau basée sur CIM.
Il existe aussi de nombreux outils commerciaux autour de CIM.