COM+-Entwurfsannahmen und -prinzipien

Das verteilte Programmiermodell von Microsoft besteht aus mehreren Technologien, darunter MSMQ, IIS, DCOM und COM+. Alle diese Dienste wurden für die Verwendung durch verteilte Anwendungen konzipiert.

COM+ wurde entwickelt, um das Erstellen verteilter Anwendungen zu vereinfachen. Die Gesamtarchitektur basiert auf einer Reihe von Annahmen und Prinzipien.

Annahmen

Die Annahmen sind wie folgt:

  • Die COM+-Anwendung unterstützt mehrere Benutzer auf mehreren Servern. Mit anderen Worten, Sie erstellen eine verteilte Anwendung, und diese mehrere Benutzer befinden sich auf verschiedenen Hostcomputern, auf denen der Code ausgeführt wird. Benutzer greifen über das Internet oder über ein privates Netzwerk auf den Code zu. Die Benutzeroberfläche wird über einen Browser oder eine benutzerdefinierte Anwendung angezeigt, z. B. eine formularbasierte Anwendung, die mit Microsoft Visual Basic oder MFC geschrieben wurde. Diese Benutzeroberfläche befindet sich auf dem Clientcomputer.
  • Die COM+-Anwendung kann skalierbar sein und eine höhere Verfügbarkeit und Zuverlässigkeit bieten, indem die Anwendung auf mehreren Servercomputern bereitgestellt wird. Auf diese Weise können Sie die Workload der Anwendung ausgleichen und Fehlertoleranz mithilfe von Windows-Clustering bereitstellen.
  • Wenn etwas schief geht, wird der Zustand der in einer Datenbank gespeicherten Daten aus einer COM+-Anwendung beibehalten, wenn Sie Transaktionen verwenden. Der Anwendungsstatus muss Unfälle wie Anwendungsfehler, Systemabstürze oder Netzwerkausfälle überstehen.

Prinzipien

Zusätzlich zu diesen drei Annahmen durchdringen die folgenden Prinzipien das COM+-Programmiermodell:

  • Die Anwendungslogik befindet sich auf Servercomputern, nicht auf Clientcomputern. Dafür gibt es drei Hauptgründe:
    • Der Clientcomputer verfügt möglicherweise nicht über die Verarbeitungsleistung oder die Funktionen, die zum Ausführen der Anwendungslogik erforderlich sind. Darüber hinaus vereinfacht die Beibehaltung der Anwendungslogik auf dem Server die Bereitstellung.
    • Die Servercomputer sind oft näher an den Daten, und diese Daten befinden sich am häufigsten in einer Datenbank. Da Ihre Anwendung auf Datenbanken zugreift, sollten Sie die Kosten für Datenbankverbindungen sehr berücksichtigen. Indem Sie den Großteil der Logik auf den Servercomputern platzieren, können Sie Datenbankverbindungen freigeben und eine erhebliche Leistungsverbesserung erzielen. Es gibt andere Ressourcen auf den Servercomputern, die ebenfalls freigegeben werden können, wiederum mit einem Leistungsvorteil.
    • Wenn sich anwendungslogik auf Servercomputern befindet, behält die Kontrolle über den Sicherheitskontext mit der Anwendung. Sie haben mehr Kontrolle über die Sicherheit, wenn Sie diese Sicherheit für Anwendungskomponenten beibehalten, die auf Servercomputern und nicht auf Clientcomputern ausgeführt werden.
  • Transaktionen sind der Kern. Transaktionen durchdringen das COM+-Programmiermodell so, dass es für Sie sehr wichtig ist, sie zu verstehen. Obwohl Sie viele der Dienste von COM+ ohne Transaktionen nutzen können, können Sie die verfügbaren COM+-Dienste nicht in vollem Umfang nutzen, wenn Sie sie nicht verwenden möchten. Einige wichtige Vorteile der Verwendung von Transaktionen sind die folgenden:
    • Transaktionen sind eine sinnvolle Lösung für das Problem der Parallelitätsverwaltung. Außerdem schützen Transaktionen vor Abstürze und verfügen über ein gutes Fehlerwiederherstellungsmodell. Darüber hinaus erweisen sich Transaktionen als eine hervorragende Möglichkeit, Aufgaben über mehrere Systeme hinweg zu verwalten.
    • Sie können eine transaktionsbasierte COM+-Anwendung für die Arbeit mit einem Ressourcen-Manager und einer Datenbank entwerfen, wodurch die meisten Zustandsinformationen geschützt werden. Wenn Sie den Zustand in einer Datenbank oder einem anderen Speicher beibehalten, der von einem Ressourcen-Manager verwaltet wird, müssen Sie nicht viel Zustand innerhalb der tatsächlichen Objekte beibehalten, die Ihre Anwendung erstellt. Dies ist zwar eine Abkehr von einem rein objektorientierten Modell, eignet sich aber gut zum Erstellen verteilter Anwendungen mit Fehlerwiederherstellung.
  • Anwendungsfunktionen werden als COM-Objekte erstellt, die die Protokolle umschließen, die für die Kommunikation mit anderen Systemen oder Technologien verwendet werden. Da Sie wahrscheinlich Komponenten erstellen, die mehrere Technologien oder Legacysysteme zusammenfügen, sollten Sie eine Vielzahl von Kommunikationsprotokollen verwenden. Verwenden Sie HTTP für die Client/Server-Kommunikation oder die Kommunikation zwischen Anwendungen und Anwendungen über das Internet. Verwenden Sie DCOM für die Kommunikation zwischen Anwendungen oder Komponenten zu Komponenten auf dem Server.

Grundlegende Richtlinien für das Entwerfen von COM+-Anwendungen

Entwerfen der COM+-Anwendung mithilfe von UML

Allgemeine Entwurfstipps für die Verwendung von COM+

Optimieren von Interaktionen mit der COM+-Geschäftslogikebene

Andere Microsoft-Tools zum Erstellen verteilter Anwendungen