Modèle objet composant
Microsoft Component Object Model (COM) est un système indépendant de la plateforme, distribué et orienté objet permettant de créer des composants logiciels binaires qui peuvent interagir. COM est la technologie de base pour les documents OLE (documents composés) de Microsoft, 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 d’applications. 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 processus unique, 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 dissemblables, c’est pourquoi COM est appelé standard binaire; un standard 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 via des 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 jeu 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 via 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 le seul moyen d’accéder aux méthodes d’une interface soit via un pointeur vers l’interface.
Outre la spécification de la norme d’objet binaire de base, COM définit certaines interfaces de base qui fournissent des fonctions communes à toutes les technologies COM, et fournit un petit nombre de fonctions requises par tous les composants. 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 mise en œuvre de IUnknown
- réutilisation d’objets
- La bibliothèque COM
- Gestion de l'allocation de mémoire