Benutzer-Werkzeuge

Webseiten-Werkzeuge


analyse:component-object-model
  • Bookmark "Component Object Model" auf del.icio.us
  • Bookmark "Component Object Model" auf Digg
  • Bookmark "Component Object Model" auf Furl
  • Bookmark "Component Object Model" auf Reddit
  • Bookmark "Component Object Model" auf Ask
  • Bookmark "Component Object Model" auf Google
  • Bookmark "Component Object Model" auf Netscape
  • Bookmark "Component Object Model" auf StumbleUpon
  • Bookmark "Component Object Model" auf Technorati
  • Bookmark "Component Object Model" auf Live Bookmarks
  • Bookmark "Component Object Model" auf Yahoo! Myweb
  • Bookmark "Component Object Model" auf Facebook
  • Bookmark "Component Object Model" auf Newsvine
  • Bookmark "Component Object Model" auf Yahoo! Bookmarks
  • Bookmark "Component Object Model" auf Twitter
  • Bookmark "Component Object Model" auf myAOL
  • Bookmark "Component Object Model" auf Slashdot
  • Bookmark "Component Object Model" auf Mister Wong

Component Object Model

Das Component Object Model (COM) ist ein von Microsoft entwickeltes Objektmodell für den Aufbau und die Benutzung von Software-Komponenten. Es ist Vorgänger des .NET Frameworks und wurde 1993 unter dem Namen Object Linking und Embedding (OLE) eingeführt. Ab 1997 wurde der Name Component Object Model verwendet.

COM Objekte sind unabhängig der Programmiersprache und können in jeder Sprache implementiert werden. Es wird dabei das Client/Server Prinzip angewandt. Ein Client nutzt eine COM Komponente über ein Interface.

Object Linking und Embedding (OLE) Schnittstelle

Mit der OLE Schnittstelle können Objekte dynamisch verknüpft werden, d.h. es können Daten zwischen verschiedenen Anwendungen, welche OLE-fähig sind, ausgetauscht werden. Bei der Verknüpfung von Tabellen, Grafiken, Texten oder auch multimedialen Elementen bzw. generell OLE fähigen Dateien, werden Verweise auf die entsprechende Datei angelegt. Bei dem verknüpfen wird nur eine Kopie der jeweiligen Datei eingebunden. Ein einfaches Beispiel ist hierbei die Einbindung einer Excel-Tabellenkalkulation in eine Word Datei.

COM Server

Ein COM Server ist eine Binäre Datei (im Format .dll, .exe oder .ocx) welche eine Sammlung von ein oder mehrerer COM Klassen (aus Attributen, Methoden und Ereignissen) beinhaltet. Dabei wird unter in-process-Server, Local Server und Remote Server unterschieden.

Ein in-process-Server ist in einer .dll oder .ocx Datei implementiert. Diese Datei wird in den Prozess der jeweiligen Anwendung geladen und exportiert verschiedene Funktionen um den Zugriff zu ermöglichen. In-process-Server sind sehr schnell, da der Zugriff auf die Datei ohne Umwege erfolgt.

Local Server sind .exe Dateien also ausführbare Programme, welche die COM-Komponenten bereitstellen. Local Server sind im Vergleich zu in-process-Server speicherschonender und müssen nur einmal gestartet werden.

Bei der Remote Server Komponente kommt die Erweiterung Distributed COM zum Einsatz. Dabei wird ein Remote Procedure Call 1) und ein Protokoll Stack vorgeschaltet, welche die Ausführung der Komponente sehr verlangsamen.

COM Client

Ein COM Client kennt die Funktionen einer COM Komponente durch die Verwendung des entsprechenden COM Interfaces und nutzt die Funktion des COM Servers.

Interface

COM Server und COM Client kommunizieren über ein eindeutig Identifizierbares Interface miteinander. Ein globaler eindeutiger Bezeichner 2) und ein eindeutiger Name sorgen für die Identifikation eines Interfaces. Ein Interface ist eine Schnittstelle mit Funktionen bzw. Methoden, welche den Zugriff auf ein COM Objekt ermöglichen. Es wandelt bei der Kommunikation die auszutauschenden Dateien in eine vordefinierte Binärrepräsentation um, damit ein Programmiersprachen unabhängige Kommunikation möglich ist. Ein Interface wird über die Typbibliothek oder eine Beschreibung in der Interface Definition Language 3) veröffentlicht.

Apartments

Bei der Instanziierung von COM Objekten werden die Objekte immer einem Apartment zugeordnet. Apartments dienen zur Synchronisierung von Methodenaufrufen mehrerer Objekte, welche unterschiedliche Anforderungen an die Threadsicherheit haben.

Single Threaded Apartments können genau einen Thread aber beliebig viele Objekte besitzen. Aufrufe werden nach Freigabe des Threads nacheinander abgearbeitet.

Multi Threaded Apartments besitzen beliebig viele Threads und es können mehrere Clients gleichzeitig Aufrufe starten. Hierbei muss die COM Komponente allerdings Threadsicher implementiert sein.

Neutral Thread Apartments hingegen haben keinerlei Threadverständnis. Jedes Objekt kann ohne einen Threadübergang aufgerufen werden.

Typbibliothek

COM Komponente, welche als eigener Prozess laufen, müssen veröffentlicht werden, damit jede Programmiersprache den COM Server ansteuern kann. Dazu wird eine einheitliche Schnittstellensprache (IDL 4)) verwendet.

Vorteile

Durch die Verwendung von COM gibt es die Möglichkeit sprach-, plattform-, orts-, versionsunabhängig sowie objektorientiert und automatisierend zu programmieren.

Da COM nicht sprach- oder plattformabhängig ist, können COM Module in jeder Programmiersprache benutzt werden, welche den COM Standard unterstützt. Daher ist COM nicht Windows-spezifisch, sondern kann auch mit anderen Betriebssystemen, z.B. Linux / Unix, verwendet werden.

Quellen:

http://www.itwissen.info/definition/lexikon/component-object-model-COM.html
http://www.itwissen.info/definition/lexikon/object-linking-and-embedding-OLE.html
https://msdn.microsoft.com/de-de/library/system.guid%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
http://www.michael-puff.de/

  • Bookmark "Component Object Model" auf del.icio.us
  • Bookmark "Component Object Model" auf Digg
  • Bookmark "Component Object Model" auf Furl
  • Bookmark "Component Object Model" auf Reddit
  • Bookmark "Component Object Model" auf Ask
  • Bookmark "Component Object Model" auf Google
  • Bookmark "Component Object Model" auf Netscape
  • Bookmark "Component Object Model" auf StumbleUpon
  • Bookmark "Component Object Model" auf Technorati
  • Bookmark "Component Object Model" auf Live Bookmarks
  • Bookmark "Component Object Model" auf Yahoo! Myweb
  • Bookmark "Component Object Model" auf Facebook
  • Bookmark "Component Object Model" auf Newsvine
  • Bookmark "Component Object Model" auf Yahoo! Bookmarks
  • Bookmark "Component Object Model" auf Twitter
  • Bookmark "Component Object Model" auf myAOL
  • Bookmark "Component Object Model" auf Slashdot
  • Bookmark "Component Object Model" auf Mister Wong
analyse/component-object-model.txt · Zuletzt geändert: 2016/04/08 10:52 von grafal