COM-Server

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Elemente einer COM-Anwendung


Bei einem COM-Server handelt es sich um eine Anwendung oder eine Bibliothek, die einer Client-Anwendung oder Client-Bibliothek Dienste zur Verfügung stellt. Ein COM-Server besteht aus einem oder mehreren COM-Objekten, wobei ein COM-Objekt eine Gruppe von Eigenschaften und Methoden darstellt.

Den Clients ist nicht bekannt, wie ein COM-Objekt seinen Dienst durchführt, die Implementierung des Objekts bleibt verkapselt. Ein Objekt stellt seine Dienste über seine Schnittstellen zur Verfügung.

Zudem brauchen die Clients nicht zu wissen, wo sich ein COM-Objekt befindet. COM bietet transparenten Zugriff unabhängig vom Standort des Objekts.

Wenn ein Client einen Dienst von einem COM-Objekt anfordert, übergibt er einen Klassenbezeichner (CLSID) an COM. Ein CLSID ist nichts weiter als ein GUID, der ein COM-Objekt bezeichnet. Über diesen CLSID, der in der Registrierungsdatenbank eingetragen ist, sucht COM die entsprechende Server-Implementierung. Nachdem der Server lokalisiert ist, lädt COM den Quelltext in den Speicher und veranlasst den Server, eine Objektinstanz für den Client zu instantiieren. Dieser Vorgang erfolgt indirekt durch ein spezielles (auf Schnittstellen basierendes) Klassengeneratorobjekt, das auf Anforderung Instanzen von Objekten erzeugt.

Ein COM-Server muss mindestens folgende Schritte ausführen:

  • In der Registrierdatenbank Einträge registrieren, die das Server-Modul dem Klassenbezeichner (CLSID) zuordnen.
  • Ein Klassengeneratorobjekt implementieren, der ein anderes Objekt mit einer bestimmten CLSID erstellt.
  • Den Klassengenerator für COM bereitstellen.
  • Einen Mechanismus zur Verfügung stellen, über den ein Server, der gerade keine Clients bedient, aus dem Speicher entfernt werden kann.

Hinweis: Mit den Delphi-Experten kann die Erstellung von COM-Objekten und -Servern automatisiert werden.

Themen

Siehe auch