Condividi tramite


Servizi COM+ senza componenti

COM+ 1.5 introduce la possibilità di usare servizi COM+ senza componenti. Ciò riduce significativamente i costi di prestazioni quando si usano i servizi COM+ da un ambiente che non usa componenti ed elimina anche la complessità dell'uso di questi servizi. A partire da IIS 6.0, IIS e ASP sfruttano l'uso di servizi COM+ senza componenti.

I servizi COM+ sono stati originariamente progettati per essere usati con i componenti COM+. Tuttavia, alcuni ambienti di programmazione non sono basati su componenti e pertanto richiedono un notevole sovraccarico per l'uso dei servizi COM+. Ad esempio, prima del rilascio di COM+ 1.5, IIS doveva creare oggetti shim esclusivamente per poter usare i servizi transazioni COM+ nelle pagine ASP. I costi di prestazioni derivanti dalla creazione di tali oggetti includono l'archiviazione dei dati di configurazione sia nella metabase IIS che nel database di registrazione COM+ (RegDB), nonché la comunicazione aggiuntiva tra la metabase IIS e il regDB COM+ necessari per gestire in modo efficace i dati di configurazione.

Se IIS doveva usare un secondo servizio COM+, ad esempio la sincronizzazione, doveva creare un oggetto shim completamente diverso per farlo. Per usare sia le transazioni COM+ che la sincronizzazione, sarebbe necessario un terzo tipo di oggetto shim. La complessità di questo approccio viene ridimensionata come O(n2), rendendo estremamente difficile l'implementazione di nuovi servizi.

Con l'introduzione dei servizi COM+ senza componenti, i servizi necessari vengono configurati tramite un oggetto di cui è stata creata un'istanza dalla classe . La classe CServiceConfig implementa le interfacce necessarie per configurare i diversi servizi offrendo al tempo stesso la flessibilità necessaria per supportare più servizi contemporaneamente e la possibilità di supportare nuovi servizi in futuro.

I servizi configurati possono quindi essere usati tramite due meccanismi diversi: possono essere usati tramite la funzione CoCreateActivity, che applica i servizi a tutte le attività inviate tramite l'attività creata dalla funzione e possono essere usate incorporando il lavoro che usa i servizi tra le chiamate alle funzioni CoEnterServiceDomain e CoLeaveServiceDomain. Nessuna di queste funzioni richiede la creazione di nuovi componenti per poter utilizzare i servizi COM+; è necessario solo l'oggetto CServiceConfig .

Servizi COM+ senza attività dei componenti