Definition „Microsoft COM“ Was ist das Component Object Model?

Autor / Redakteur: jelsag / Stephan Augsten |

Das Component Object Model (COM) ist Microsofts Konzept für die Programmierung objektorientierter Software-Komponenten. Es ermöglicht die unkomplizierte Wiederverwendung bereits geschriebenen Codes.

Anbieter zum Thema

Im Windows Dev Center finden sich mit Blick auf das Component Object Model nützliche Referenzen zu Funktionen und deren Aufrufen.
Im Windows Dev Center finden sich mit Blick auf das Component Object Model nützliche Referenzen zu Funktionen und deren Aufrufen.
(Bild: Microsoft)

Das Component Object Model wurde von Microsoft im Jahr 1992 zusammen mit dem Betriebssystem Windows 3.1 veröffentlicht. Es verfügt über objektorientierte Strukturen. Als Kommunikationsschnittstelle ist es mit Object Linking and Embedding (OLE) ausgestattet.

COM legt fest, wie einzelne Software-Komponenten anzusprechen sind und wie ihre Methoden veröffentlicht werden. Jedes COM-Objekt wird auf individueller Basis registriert und lässt sich daher eindeutig identifizieren. Das Component Object Model bietet die Möglichkeit, sprach- und plattformunabhängig, versions- und ortsunabhängig, automatisierend und objektzentriert zu programmieren.

Client-Server-Modell als COM-Grundlage

Das Konzept von COM beruht auf dem Client-Server-Modell. Ein COM-Server besteht aus einem ausführbaren Programm, das in einer COM-kompatiblen Programmiersprache entwickelt wurde und in der Lage ist, COM-Komponenten zu erstellen. Alternativ kann es sich dabei auch um ein Laufzeitmodul respektive eine DLL (Dynamic Link Library) handeln.

DLL-Server sind In-Process-Server, die den Prozess des jeweiligen Clients geladen werden. Daneben werden durch das Component Object Model auch lokale Server sowie Remote Server unterstützt. Lokale Server sind unter Windows aufrufbare Programme, die unterschiedliche Clients bedienen können. Hierdurch sind synchronisierte Zugriffe auf gemeinsam genutzte Datenbestände möglich.

Falls sich Server und Client in einem Rechnernetzwerk befinden, wird Distributed COM (DCOM) eingesetzt. Die Netzwerkvariante des Modells ermöglicht, Client und Server betriebssystemübergreifend zu betreiben.

COM-Schnittstellen, -Komponenten und -Objekte

Für die Kommunikation zwischen Client und Server sind COM-Schnittstellen nötig. Zu den unterstützten Technologien gehören OLE, ActiveX und DirectX und die dazugehörigen Interfaces. COM-Objekte, die eine Schnittstelle implementieren, muss deren Methoden komplett überschreiben.

COM-Komponenten bieten ihre jeweils aufrufbaren Funktionen über eine oder mehrere Schnittstellen an und erzeugen hierdurch COM-Objekte, die binär kompatibel sind und daher unabhängig von verwendeten Programmiersprachen funktionieren. In der Client-Server-Relation ist der Client das Programm, das über diesen Server eine COM-Komponente erzeugt und deren Funktionen nutzt.

COM-Appartements

Bei ihrer Erzeugung werden COM-Objekte immer einem bestimmten Appartement zugeordnet. Die Appartements synchronisieren die Methodenaufrufe mehrerer Objekte und sind dabei in der Lage, unterschiedliche Anforderungen an die Thread-Sicherheit zu realisieren. Thread-Sicherheit ist eine wesentliche Eigenschaft von Softwarekomponenten. Sie stellt die Ausführbarkeit der Komponenten in verschiedenen Programmbereichen sicher, ohne dass es dabei zu wechselseitigen Behinderungen kommt.

Nachfolgemodell .NET Framework

Inzwischen wird das Component Object Model sukzessive von Micrsofts .NET Framework Modell abgelöst. Die ursprünglich geplante Bezeichnung COM 3.0 für das Nachfolgekonzept wurde wieder aufgegeben, da die COM-Basis der Programmierung hier nicht mehr gegeben ist.

Viele Eigenschaften von COM blieben zwar auch hier vom Grundsatz her erhalten. Das neue Modell ist jedoch komplexer, da die Programmierung dabei unter anderem in einer einheitlichen Laufzeitumgebung vor sich geht. Auch viele andere Features wurden optimiert, um eine zeitgemäße Programmierung unter Windows zu unterstützen.

(ID:45260480)