Die Community zu .NET und Classic VB.
Menü

COM als Middleware - Seite 6

 von 

2.1 Interfaces, schnittstellenbasierte Programmierung
Nächste Seite >>
1.4 Komponentenspezifische Begriffserklärungen
<< Vorherige Seite

2.0 COM Server  

Ein COM Server ist ein binäres Klassenmodul und verfügt dadurch über die Fähigkeit COM-Objekte zu exportieren und seine Schnittstellen dem COM-Standard entsprechend öffentlich anzubieten. Die Initiierung des für seine Registrierung selbst verantwortlichen COM-Servers erfolgt erst zur Laufzeit. Grundsätzlich gilt es zwischen zwei verschiedenen Servertypen zu unterscheiden:

Prozessinterne Server Prozessinterne Server, kurz InProc-Server, sind vom Dateityp .dll, befinden sich ausschließlich im lokalen Prozessraum des Clients und stellen somit keine eigenständige Anwendung dar. Weil seitens des Betriebssystems kein Kontextwechsel erfolgt, da Methodenaufrufe nicht verschickt, sondern direkt über eine Schnittstellenreferenz weitergeleitet werden können, bietet dieser Servertyp das beste Kommunikationsverhalten. Durch die statische Bindung an den Client beendet ein Absturz des Servers diesen ebenfalls.

Prozessexterne Server Prozessexterne Server, kurz OutProc-Server, sind vom Dateityp .exe und befinden sich als eigenständige Anwendungen außerhalb des Prozessraums eines Clients. Der Server bedarf daher eines eigenen Adressbereich und bildet somit einen unabhängigen Dienst. Er hält zum Client eine dynamische Bindung, so dass bei entsprechender Berücksichtigung des Error-Handlings der Clientprozess fehlertoleranter reagieren kann. Da es bei Methodenaufrufen seitens des Betriebssystems einen Kontextwechsel über geschützte Prozessräume hinweg zu überwinden gilt, führt der Datentransport gegenüber prozessinternen Servern zu Performanceeinbußen. Die Schnittstellenkommunikation findet mittelbar über Marshaling und beiderseitig eingerichtete Proxis statt [s. Kapitel 2.5.1]. Typische Stellvertreter dieser Serverkategorie sind Anwendungen wie Microsoft Internet Explorer und Word. Prozessexterne Server können sowohl lokal, als auch verteilt agieren; es wird hierbei unterschieden in:

Local Lokale Server bieten die schnellste prozessexterne Kommunikation und laufen auf dem Client-Rechner. Es gilt nur Prozess- und Appartmentgrenzen [s. Kapitel 2.5.2] zu überwinden. Operationen auf den Server werden mittels LRPCs [Lightweight RPC] ausgeführt.
Remote Remote Server befinden sich nicht auf der Clientmaschine. Ihre Kommunikation verläuft im Verhältnis zu lokalen Servern ausgesprochen langsam, da es neben Prozess- und Appartmentgrenzen [s. Kapitel 2.5.2] auch Rechnergrenzen zu überwinden gilt. Der Server startet selbständig oder wird durch den Client dazu veranlasst. Operationen auf den Server erfolgen über DCOM transparent via RPC.
Surrogate Surrogate-Server bilden eine Sonderform des prozessinternen Servers [dll]. Der Server läuft nicht auf dem Clientrechner, hat aber den Anspruch sich im Prozessraum des Clients zu befinden. Um dies zu ermöglichen, startet ein stellvertretender Exe-Server als Surrogateprozess. Für den Surrogateprozess dient wahlweise ein Standard- [dllhost.exe] oder optional ein benutzerdefinierter Server als Ersatz. Die Kommunikation basiert auf dem RPC von DCOM.
Nächste Seite >>
2.1 Interfaces, schnittstellenbasierte Programmierung
<< Vorherige Seite
1.4 Komponentenspezifische Begriffserklärungen