Das Component Object Model

Das Microsoft Component Object Model (COM) ist ein plattformunabhängiges, verteiltes, objektorientiertes System zum Erstellen binärer Softwarekomponenten, die interagieren können. COM ist die Basistechnologie für MICROSOFT OLE (Verbunddokumente), ActiveX (internetfähige Komponenten) und andere.

Um COM (und damit alle COM-basierten Technologien) zu verstehen, ist es wichtig zu verstehen, dass es sich nicht um eine objektorientierte Sprache handelt, sondern um einen Standard. Com gibt auch nicht an, wie eine Anwendung strukturiert werden soll; Sprach-, Struktur- und Implementierungsdetails bleiben dem Anwendungsentwickler überlassen. Vielmehr gibt COM ein Objektmodell und Programmieranforderungen an, die es COM-Objekten (auch als COM-Komponenten oder manchmal einfach objekte bezeichnet) ermöglichen, mit anderen Objekten zu interagieren. Diese Objekte können sich innerhalb eines einzelnen Prozesses, in anderen Prozessen und sogar auf Remotecomputern befinden. Sie können in verschiedenen Sprachen geschrieben werden, und sie können strukturell recht unterschiedlich sein, weshalb COM als binärer Standard bezeichnet wird; ein Standard, der angewendet wird, nachdem ein Programm in binären Computercode übersetzt wurde.

Die einzige Sprachanforderung für COM ist, dass Code in einer Sprache generiert wird, die Strukturen von Zeigern erstellen und Funktionen entweder explizit oder implizit über Zeiger aufrufen kann. Objektorientierte Sprachen wie C++ und Smalltalk bieten Programmiermechanismen, die die Implementierung von COM-Objekten vereinfachen. Sprachen wie C, Java und VBScript können jedoch zum Erstellen und Verwenden von COM-Objekten verwendet werden.

COM definiert den wesentlichen Charakter eines COM-Objekts. Im Allgemeinen besteht ein Softwareobjekt aus einem Satz von Daten und den Funktionen, die die Daten bearbeiten. Ein COM-Objekt ist ein Objekt, in dem der Zugriff auf die Daten eines Objekts ausschließlich über eine oder mehrere Sätze verwandter Funktionen erreicht wird. Diese Funktionssätze werden als Schnittstellen bezeichnet, und die Funktionen einer Schnittstelle werden als Methoden bezeichnet. Darüber hinaus erfordert COM, dass die einzige Möglichkeit, zugriff auf die Methoden einer Schnittstelle zu erhalten, über einen Zeiger auf die Schnittstelle besteht.

Neben der Angabe des grundlegenden binären Objektstandards definiert COM bestimmte grundlegende Schnittstellen, die Funktionen bereitstellen, die allen COM-basierten Technologien gemeinsam sind, und stellt eine kleine Anzahl von Funktionen bereit, die alle Komponenten benötigen. COM definiert auch, wie Objekte über eine verteilte Umgebung zusammenarbeiten, und es wurden Sicherheitsfeatures hinzugefügt, um die System- und Komponentenintegrität zu gewährleisten.

In den folgenden Themen in diesem Abschnitt werden grundlegende COM-Probleme im Zusammenhang mit dem Entwerfen von COM-Objekten beschrieben: