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 (zusammengesetzte Dokumente), ActiveX (internetfähige Komponenten) sowie andere.

Um COM (und daher alle COM-basierten Technologien) zu verstehen, ist es wichtig zu verstehen, dass es sich nicht um eine objektorientierte Sprache, sondern um einen Standard handelt. Weder gibt COM an, wie eine Anwendung strukturiert werden soll; Die Details zu Sprache, Struktur und Implementierung sind dem Anwendungsentwickler überlassen. Stattdessen gibt COM ein Objektmodell und programmieranforderungen an, die COM-Objekte (auch COM-Komponenten genannt oder manchmal einfach Objekte) ermöglichen, mit anderen Objekten zu interagieren. Diese Objekte können sich innerhalb eines einzelnen Prozesses, in anderen Prozessen befinden und sich sogar auf Remotecomputern befinden. Sie können in unterschiedlichen Sprachen geschrieben werden, und sie können strukturell ziemlich uneinweichlich sein, weshalb COM als binärstandard bezeichnet wird; ein Standard, der angewendet wird, nachdem ein Programm in binären Computercode übersetzt wurde.

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

COM definiert den wesentlichen Charakter eines COM-Objekts. Im Allgemeinen besteht ein Softwareobjekt aus einer Reihe 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 Gruppen 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 erfolgt.

Neben der Angabe des grundlegenden Binärobjektstandards definiert COM bestimmte grundlegende Schnittstellen, die Funktionen bereitstellen, die für alle COM-basierten Technologien gemeinsam sind, und es stellt eine kleine Anzahl von Funktionen bereit, die alle Komponenten erfordern. COM definiert außerdem, wie Objekte über eine verteilte Umgebung zusammenarbeiten und Sicherheitsfeatures hinzugefügt haben, um System- und Komponentenintegrität bereitzustellen.

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