COM+-Dienste ohne Komponentenkonzepte

COM+ 1.5 bietet die Möglichkeit, COM+-Dienste ohne Komponenten zu verwenden. Dadurch werden die Leistungskosten bei der Verwendung von COM+-Diensten aus einer Umgebung, in der keine Komponenten verwendet werden, erheblich reduziert, und die Komplexität der Verwendung dieser Dienste entfällt. Ab IIS 6.0 nutzen IIS und ASP die Verwendung von COM+-Diensten ohne Komponenten.

COM+-Dienste wurden ursprünglich für die Verwendung mit COM+-Komponenten entwickelt. Einige Programmierumgebungen sind jedoch nicht komponentenbasiert und erfordern daher erheblichen Mehraufwand für die Verwendung von COM+-Diensten. Vor der Veröffentlichung von COM+ 1.5 musste IIS beispielsweise Shimobjekte ausschließlich erstellen, um COM+-Transaktionsdienste auf ASP-Seiten verwenden zu können. Zu den Leistungskosten beim Erstellen dieser Objekte gehören das Speichern der Konfigurationsdaten sowohl in der IIS-Metabasis als auch in der COM+-Registrierungsdatenbank (RegDB) sowie die zusätzliche Kommunikation zwischen der IIS-Metabasis und der COM+-RegDB, die zur effektiven Verwaltung der Konfigurationsdaten erforderlich ist.

Wenn IIS einen zweiten COM+-Dienst wie die Synchronisierung verwenden musste, musste dafür ein völlig anderes Shimobjekt erstellt werden. Um sowohl COM+-Transaktionen als auch die Synchronisierung zu verwenden, ist ein dritter Typ von Shimobjekt erforderlich. Die Komplexität dieses Ansatzes wird als O(n2) skaliert, wodurch die Implementierung neuer Dienste extrem schwierig wird.

Mit der Einführung von COM+-Diensten ohne Komponenten werden die benötigten Dienste über ein Objekt konfiguriert, das aus der -Klasse instanziiert wird. Die CServiceConfig-Klasse implementiert die Schnittstellen, die zum Konfigurieren der verschiedenen Dienste erforderlich sind, und bietet gleichzeitig die Flexibilität, mehrere Dienste gleichzeitig zu unterstützen, und die Möglichkeit, neue Dienste in Der Zukunft zu unterstützen.

Die konfigurierten Dienste können dann über zwei verschiedene Mechanismen verwendet werden: Sie können über die CoCreateActivity-Funktion verwendet werden, die die Dienste auf die gesamte Arbeit anwendet, die über die von der Funktion erstellte Aktivität übermittelt wird, und sie können auch verwendet werden, indem die Arbeit eingebettet wird, die die Dienste zwischen Aufrufen der Funktionen CoEnterServiceDomain und CoLeaveServiceDomain verwendet. Keine dieser Funktionen erfordert die Erstellung neuer Komponenten, um die COM+-Dienste verwenden zu können. nur das CServiceConfig-Objekt ist erforderlich.

COM+-Dienste ohne Komponententasks