Nachteile

Prozessin-Process-Server bieten den Vorteil der Geschwindigkeit und Größe eines Objekthandlers mit der Bearbeitungsfunktion eines lokalen Servers. Warum würden Sie sich also jemals dafür entscheiden, Ihre OLE-Anwendung als lokalen Server und nicht als Prozessserver zu implementieren? Es gibt mehrere Gründe:

  • Sicherheit. Nur auf einem lokalen Server ist der Adressraum von dem des Clients isoliert. Ein Prozessserver teilt den Adressraum und den Prozesskontext des Clients und kann daher bei Fehlern oder böswilliger Programmierung weniger robust sein.
  • Granularität. Ein lokaler Server kann mehrere Instanzen seines Objekts auf vielen verschiedenen Clients hosten und den Serverzustand zwischen Objekten auf mehreren Clients auf eine Weise freigeben, die schwierig oder unmöglich wäre, wenn er als Prozessserver implementiert wird, bei dem es sich einfach um eine dll handelt, die in jeden Client geladen wird.
  • Kompatibilität. Wenn Sie sich für die Implementierung eines In-Process-Servers entscheiden, geben Sie die Kompatibilität mit OLE 1 auf, die solche Server nicht unterstützt. Dies ist für viele Entwickler kein Aspekt, aber wenn dies der Fall ist, ist dies von entscheidender Bedeutung.
  • Unfähigkeit, Links zu unterstützen. Ein Prozessserver kann nicht als Linkquelle dienen. Da eine DLL nicht allein ausgeführt werden kann, kann sie kein Dateiobjekt erstellen, mit dem verknüpft werden soll.

Trotz dieser Nachteile kann ein In-Process-Server eine hervorragende Wahl für seine Geschwindigkeit und Größe sein – wenn er all Ihre anderen Anforderungen erfüllt.

Vorteile

In-Process-Server