COM (Component Object Model)
Microsoft Component Object Model (COM) est un système orienté objet indépendant de la plateforme, distribué et qui permet de créer des composants logiciels binaires qui peuvent interagir. COM est la technologie de base de Microsoft OLE (documents composés), ActiveX (composants Internet), ainsi que d’autres.
Pour comprendre COM (et donc toutes les technologies com), il est essentiel de comprendre qu’il ne s’agit pas d’un langage orienté objet, mais d’une norme. COM ne spécifie pas non plus comment une application doit être structurée ; Les détails du langage, de la structure et de l’implémentation sont laissés au développeur de l’application. Au lieu de cela, COM spécifie un modèle objet et des exigences de programmation qui permettent aux objets COM (également appelés composants COM, ou parfois simplement objets) d’interagir avec d’autres objets. Ces objets peuvent se trouver dans un même processus, dans d’autres processus et même sur des ordinateurs distants. Ils peuvent être écrits dans différents langages, et ils peuvent être structurellement assez différents, c’est pourquoi COM est appelé une norme binaire; une norme qui s’applique une fois qu’un programme a été traduit en code machine binaire.
La seule exigence de langage pour COM est que le code est généré dans un langage qui peut créer des structures de pointeurs et, explicitement ou implicitement, appeler des fonctions par le biais de pointeurs. Les langages orientés objet tels que C++ et Smalltalk fournissent des mécanismes de programmation qui simplifient l’implémentation d’objets COM, mais des langages tels que C, Java et VBScript peuvent être utilisés pour créer et utiliser des objets COM.
COM définit la nature essentielle d’un objet COM. En général, un objet logiciel est constitué d’un ensemble de données et des fonctions qui manipulent les données. Un objet COM est un objet dans lequel l’accès aux données d’un objet est obtenu exclusivement par le biais d’un ou plusieurs ensembles de fonctions associées. Ces jeux de fonctions sont appelés interfaces, et les fonctions d’une interface sont appelées méthodes. En outre, COM exige que la seule façon d’accéder aux méthodes d’une interface est d’utiliser un pointeur vers l’interface.
En plus de spécifier la norme d’objet binaire de base, COM définit certaines interfaces de base qui fournissent des fonctions communes à toutes les technologies basées sur COM, et fournit un petit nombre de fonctions dont tous les composants ont besoin. COM définit également la façon dont les objets fonctionnent ensemble sur un environnement distribué et a ajouté des fonctionnalités de sécurité pour aider à fournir l’intégrité du système et des composants.
Les rubriques suivantes de cette section décrivent les problèmes COM de base liés à la conception d’objets COM :
- Objets et interfaces COM
- Utilisation et implémentation d’IUnknown
- Réutilisation d’objets
- Bibliothèque COM
- Gestion de l’allocation de mémoire