Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

21.04.2000 - 

Microsoft verspricht bessere Skalierbarkeit

COM+ unterstützt nun auch verteilte Transaktionen

COM+ stellt eine der wesentlichen Neuerungen von Windows 2000 dar. Microsoft bietet damit auf seiner Plattform eine Infrastruktur für komponentenbasierte und transaktionsfeste Anwendungen an. Christian Weyer* beschreibt, worin die Verbesserungen von COM+ gegenüber COM und DCOM bestehen.

Vor allem bei immer stärker nachgefragter E-Commerce-Software ist eine transaktionsbasierte Datenverarbeitung unabdingbar, damit keine inkonsistenten Datenbestände in verteilten Datenquellen entstehen können. Aber auch Sicherheitsaspekte spielen in diesem Umfeld eine maßgebliche Rolle. Derartige Anforderungen erfüllt COM - auch der große Bruder Distributed COM (DCOM) für verteilte Komponentenkommunikation - in seiner Grundversion entweder gar nicht oder nur unzureichend. Erst seit dem Erscheinen des Microsoft Transaction Servers (MTS) Ende 1996 ist es möglich, verteilte Transaktionen gepaart mit konfigurierbarer Sicherheit und Mulituser-Handling einfach in seine eigenen Anwendungen zu integrieren.

COM+ beinhaltet den Microsoft Transaction ServerDie mit Windows 2000 erschienene Nachfolgerversion COM+ 1.0 geht noch einen Schritt weiter: Als zentraler Bestandteil der Windows Distributed Internet Application Architecture (Windows DNA) besteht die eigentliche Neuerung von COM+ in der Verschmelzung von COM und dem MTS. Während unter Windows NT 4.0 der MTS als separates Produkt aufbauend auf COM seine Tätigkeit verrichtete, sind diese beiden essenziellen Technologien nun in Windows 2000 tief verankert. COM+ kann also als Evolution seiner Vorgänger COM und DCOM sowie MTS gesehen werden (siehe Grafik).

Bedingt durch diese Verschmelzung, unterscheidet man künftig zwischen so genannten konfigurierten und nicht konfigurierten Komponenten. Erstere sind speziell für den Einsatz mit den in COM+ zur Verfügung gestellten Applikationsdiensten wie Transaktionsverarbeitung konzipiert, während Letztere alle bisher entwickelten COM-Komponenten umfassen. Eine wichtige Neuerung ist, dass konfigurierbare Komponenten nur in Form einer Dynamic Link Library (DLL) vorliegen können, da sie in den Speicherbereich der COM+-Laufzeitumgebung (dllhost.exe) geladen werden, um alle Dienste direkt nutzen zu können.

Die Verwendung der Dienste wird durch ein zentrales Konzept in COM+ namens Kontext ermöglicht. Ein Kontext ist eine Ansammlung von Eigenschaften einer Komponente, die beispielsweise Transaktionsattribute oder Sicherheitseinstellungen beinhalten. So erhält jede Komponente einen Kontext, in welchem sämtliche Attribute definiert sind. Der Entwickler der Komponente entscheidet sich für die Nutzung bestimmter Dienste durch einfache Konfiguration über ein Verwaltungswerkzeug, den "Component Services Administrator". Client-Anwendungen bemerken indes gar nicht, dass sie mit einer COM+-Anwendung kommunizieren. COM+ schiebt sich für den Client transparent in die Objektinstantiierung und in den Methodenaufruf hinein - Microsoft bezeichnet dies als Interception. Somit werden alle bisher entwickelten Anwendungen auch mit COM+-Komponenten zusammenarbeiten können. Aufgrund dieser Abwärtskompatibilität können übrigens Entwickler die bisher erlernten und teuer bezahlten Methodiken und Techniken weiterhin einsetzten. In der nächsten Version von Microsofts Entwicklungsumgebung Visual Studio 7 sollen zudem neue Hilfswerkzeuge zur einfachen Erstellung und Konfiguration von COM+-Applikationen enthalten sein.

Die Liste der wichtigsten COM+-Dienste umfasst eine automatische Transaktionsverarbeitung (auch eigene Transaktionen lassen sich implementieren), eine moderne Ereignisverarbeitung nach dem Herausgeber/Abonnent-Prinzip (Publish/Subscribe), rollenbasierte Sicherheit, die asynchrone Kommunikation zwischen Anwendungskomponenten, Objekt-Pooling zur Erhöhung der Skalierbarkeit sowie eine Lastverteilung auf Komponentenbasis. Letztere wird allerdings nicht mit der aktuellen Version von Windows 2000 ausgeliefert, sondern soll im Laufe des Jahres zusammen mit dem "Microsoft Appcenter Server" auf den Markt kommen. Im Folgenden sollen die wichtigsten Dienste kurz erläutert werden.

Transaktionsverarbeitung: In Verbindung mit dem "Distributed Transaction Coordinator" (DTC) verwaltet und steuert die COM+-Laufzeitumgebung verteilte Transaktionen, um einen konsistenten Zustand aller Daten zu gewährleisten. Dabei wird der Entwickler von den lästigen Details abgeschirmt - er muss nur festlegen, in welchem Fall die Transaktion erfolgreich oder erfolglos beendet wird (Commit/Rollback). Die Konfiguration einer Komponente bezüglich ihrer Teilnahme an Transaktionen erfolgt über den Component Services Administrator. Diese Informationen befinden sich dann zur Laufzeit des Objektes im zugehörigen Kontext, über das der Entwickler dann auch den Ausgang der Transaktion steuern kann.

Ereignisverarbeitung: Um der umständlichen Behandlung von Ereignissen in verteilten Anwendungen unter DCOM ein Ende zu bereiten, hat Microsoft ein neues Konzept zur Ereignisverwaltung implementiert. Es wird wegen der sich ständig ändernden Rollen von Client und Server auch von Herausgeber und Abonnent gesprochen. Mit der so genannten Ereignisklasse wird die enge Bindung zwischen einem Herausgeber und einem Abonnenten aufgelockert. Wenn ein Herausgeber Ereignisse nach außen zur Verfügung stellen will, so muss er dies über eine spezielle Schnittstelle der Laufzeitumgebung tun. Dadurch wird eine Ereignisklasse generiert. Analog erzeugt ein Abonnent ein Abonnementobjekt, um Ereignisse anderer Objekte zu erhalten.

Objekt-Pooling: Mit diesem neuen Dienst werden auf Wunsch mehrere Objektinstanzen im Speicher gehalten, damit sie sofort für Anwendungsprogramme zur Verfügung stehen. Der zeitraubende Instantiierungsprozess für ressourcenintensive Objekte entfällt somit. Object Pooling ist vor allem dann sinnvoll, wenn es sich um Objekte entweder mit sehr zeitaufwendiger Instantiierung oder mit einem generischen Erzeugungsprozess handelt - in beiden Fällen bringt das Zurückstellen in und das Wiederauslösen aus einem Vorrat von Objekten einen signifikanten Geschwindigkeitsvorteil. Allerdings hat der interne Ablauf des Objekt-Pooling den Nachteil, dass zu poolende Komponenten nicht mit der aktuellen Version von Visual Basic erstellt werden können - keine schöne Nachricht für die vielen VB-Programmierer.

Sicherheit: Auch im Bereich Sicherheit bietet COM+ interessante Features. Entsprechende Funktionen sind ebenfalls in systemeigene Dienste eingebettet, der Entwickler braucht sie nur zu aktivieren und zu benutzen. Die größte Erleichterung ist die so genannte rollenbasierte Sicherheit. Durch sie wird im Programmcode lediglich eine bestimmte Rolle festgelegt und diese später Benutzern über den "Component Services Explorer" zugewiesen. Auch die Bereiche Authentifizierung (über die Kerberos-Implementierung von Windows 2000) und Impersonation/Delegation in mehrschichtigen Architekturen werden abgedeckt und bieten dem Softwareentwickler neue Möglichkeiten zur Erstellung sicherer Anwendungen.

COM+-Spezifikation weist noch Defizite aufDurch diese Dienste lassen sich bereits wesentlich bessere Internet-Applikationen erstellen. Jedoch ist auch die COM+-Spezifikation noch nicht vollständig, wie etwa das Fehlen eines standardisierten Persistenzmechanismus zeigt. Darüber hinaus waren noch andere Neuerungen geplant, wie eine Implementierung von COM-Standard-Schnittstellen oder die mögliche Entwicklung von eigenen Interception-Objekten, konnten aber aufgrund des engen Zeitrahmens nicht in die Version 1.0 von COM+ mit aufgenommen werden. Auch konnten nicht alle Kinderkrankheiten und Probleme von COM und MTS unter NT 4.0 aus der Welt geschafft werden. Der mit dem MTS eingeführte "Shared Property Manager" (SPM) dient beispielsweise dazu, MTS-Objekten Daten in einem gemeinsam nutzbaren Speicher zugänglich zu machen. Dies sollte die einzige Verfahrensweise sein, um sich den Zustand eines Objekts zu merken. Allerdings hat selbst Microsoft im Laufe der Zeit von der Benutzung des SPM abgeraten, da auch er mit heißer Nadel gestrickt wurde: Bei ansteigenden Client-Zahlen bricht die Leistung spürbar ein. COM+ sollte dort mit der so genannten In-Memory Database (IMDB) und dem damit verbundenen "Transacted Shared Property Manager" (TSPM) Besserung bringen, jedoch wurden diese Features nach der zweiten Betaversion von Windows 2000 ausgemustert.

Ein großer Vorzug von COM+ ist aber dessen Integration mit weiteren Diensten des Windows-2000-Server. Sie verbessern insbesondere die Skalierbarkeit und Verfügbarkeit verteilter Anwendungen. Dazu zählen die "Network Load Balancing Services" (NLBS) zum Verteilen von IP-Anfragen oder die "Component Load Balancing Services" (CLB) für die Aufteilung von eingehenden Methodenaufrufen auf Komponentenbasis innerhalb eines Server-Verbundes.

Mit der aktuellen Version 1.0 von COM+ hat Microsoft zwar einen großen Schritt in die richtige Richtung gemacht, aber noch ist nicht alles Gold, was am Komponentenhimmel glänzt. Außerdem muss sich die neue Technologie erst noch in großen Projekten bewähren, nicht zuletzt deshalb, weil noch keine breite Basis an Windows-2000-Installationen in Sicht ist.

*Christian Weyer (christian.weyer@eyesoft.de) ist freier Autor und Berater in Softwareprojekten mit Schwerpunkt auf Windows NT und Windows 2000.