Die Community zu .NET und Classic VB.
Menü

COM als Middleware - Seite 13

 von 

2.7 Microsoft Transaction Server und COM+  

Zusammenfassend ist der als Middle-Tier angelegte MTS [Microsoft Transaction Server, auch Viper genannt] eine kostenlose COM-basierte Laufzeitumgebung zum Betrieb skalierbarer verteilter Anwendungen. Sein Transaktionen suggerierender Name führt oft zu Missverständnissen, da er über dieses Merkmal hinaus eine Vielzahl weiterer Dienste anbietet. Die Bezeichnung Applikations- oder Komponentenserver böte eine treffendere Beschreibung seines Funktionsumfanges.

Eine Transaktion selbst fasst eine bis mehrere Operationen auf ein Objekt zu einer Aktivität zusammen. Sie unterliegt mit vier Direktiven dem sogenannten ACID Paradigma:

Atomicity Kompaktheit. Eine Transaktion ist ungültig, falls mindestens eine enthaltene Operation fehlschlägt. Ungültige Transaktionen dürfen nicht ausgeführt werden, so dass das betroffene Objekt sich im gleichen Zustand befindet, wie vor der Transaktion.
Consistency Konsistenz. Die von Transaktionen betroffenen Daten haben konsistent zu sein, d. h. eine bestätigte Transaktion muss auch tatsächlich durchgeführt worden sein.
Isolation Kapselung. Zwei konkurrierende Transaktionen auf das selbe Objekt dürfen sich nicht gegenseitig beeinflussen. Das Ergebnis muss identisch mit der einer sequentiellen Abarbeitung sein.
Durablitiy Beständigkeit. Eine durchgeführte und bestätigte Transaktion muss persistent sein. Fällt ein Objekt aus, so muss es bei erneuter Aktivierung den Zustand der zuletzt bestätigten Transaktion haben.

Im wesentlichen kombiniert MTS in Form eines COM-Objekts einen Transaktions-Monitor mit einem ORB [Objekt Request Broker]. Der Broker setzt auf den COM-ORB auf, erstellt und verwaltet autonom Komponenteninstanzen, die er wiederum an korrespondierende Clients vermittelt.

Als Charakteristikum eines Transaktionsmonitors gilt die Gewährleistung sicherer und konsistenter Datenflüsse mittels seines Transaktionsprotokolls. Ein Transaktionsmonitor unterstützt größere Anwendungen bei der verteilten Skalierung und dem Multiplexen von Systemressourcen wie Prozessen, Threads und Datenbankverbindungen. Beispielsweise ist der gleichzeitige Zugriff von 1000 Clients auf einen Server ohne den optimierenden Eingriff eines Transaktionsmotors undenkbar, da ein solches Szenario unweigerlich zur Überlastung oder gar zum Absturz des Rechners führen würde.

Der MTS-Monitor unterteilt sich in die zwei Dienste Ressource Manager und Ressource Dispenser. Der Manager gewährleistet den Vollzug von Transaktionen zu einer Datenquelle [z. B. Datenbank], er managt durable, persistente Daten nach dem ACID-Prinzip. Ein Dispenser [engl.: Spender] hingegen bewältigt den Umgang mit nicht durablen, verteilten Ressourcen, wie z. B. einer Datenbankverbindung, um dem Manager die notwendigen Informationskanäle für dessen Informationsfluss bereitzustellen. Das Zusammenspiel von Manager und Dispenser beschreibt das von MTS umgesetzte Ressourcen Pooling. Dieses für den Entwickler transparente Pooling begünstigt das effiziente Aufteilen begrenzter Serverkapazitäten auf eine Vielzahl von Clients. Während der Laufzeit eines Clients, allociert ein von ihm instanziertes Objekt nicht mehr konstant Speicher, sondern wird gepoolt, d. h. es wird von mehreren Anwendungen geteilt und steht einem Client nur bei Bedarf für die Dauer einer Transaktion zur Verfügung.

Konzeptionell entspricht MTS der komplexeren Variante des Transaktionsmonitors einer Datenbank. Normiert wird die Abwicklung der Kommunikation zwischen Dispenser und Manager in Datenbanken durch den XA-Protokollstandard. Microsoft hingegen verwendet eine eigene Umsetzung, die allerdings durch die Bereitstellung einfacher Wrapper wieder die Kompatibilität zum XA-Protokoll herstellt.

Die praktische Anwendung des MTS findet auf Grund ihres Umfangs in dieser Arbeit keine weitere Besprechung. Der mit Windows 2000 einhergehende neue COM-Standard ergänzt den überarbeiteten MTS jetzt als integralen Bestandteil zu COM+. MTS erweitert sich um Automatic Transactions, die dem Betriebssystem gestatten, in eine Transaktion einzugreifen. COM+ bereichert das Threading um einen weiteren Apartmenttypen, den NTA [s. Kapitel 2.5.2]. Neben neuen Features zur Unterstützung asynchroner Serverkommunikation oblagen auch die komponentenspezifische Administration als auch deren Sicherheitsaspekte einer Überarbeitung.

2.7.1 Literaturverzeichnis

[VBC-99] Thomas Lewis; VB COM, A Visual Basic Programmer´s Introducion To COM; Wrox; 1999
[GTC-01] Peter Loos; GoTo COM; Das Objektmodell im Detail betrachtet; Addison-Wesley; 2001
[HVB-97] Bruce McKinney; Hardcore Visual Basic 5.0; Geheimnisse & Lösungen für die Windows-Programmierung ohne C; Microsoft Press 1997
[WPG-96] The Waite Group; WIN 32 Programmierung; Windows 95/Windows NT API-Bible; SAMS 1996
[CKP-99] Dan Appleman; COM / ActiveX-Komponenten; mit Visual Basic 6 entwickeln; Markt & Technik 1999
[EID-01] Martin Gudgin; Essential IDL; Interface Design für COM; Addison Wesley; 2001
[UML-00] Thomas Erler; UML; Einsteigerseminar; BHV; 2000
[PIC-90] Brian W. Kernighan, Dennis M. Ritchie; Programmieren in C; Hanser 1990
[PTE-00] Mathew Curland; Advanced Visual Basic 6; Power Techniques for Everyday Programs; Addison-Wesley; 2000
[MIC-98] Microsoft Corporation; MSDN Library Visual Studio 6.0; Microsoft Corporation; 1998

Tutorial und Beispielprojekte als Download [571092 Bytes]