Compartilhar via


Serviços COM+ sem conceitos de componentes

COM+ 1.5 introduz a capacidade de usar serviços COM+ sem componentes. Isso reduz significativamente os custos de desempenho ao usar serviços COM+ de um ambiente que não usa componentes e também elimina a complexidade do uso desses serviços. A partir do IIS 6.0, o IIS e o ASP aproveitam o uso de serviços COM+ sem componentes.

Os serviços COM+ foram originalmente projetados para serem usados com componentes COM+. No entanto, alguns ambientes de programação não são baseados em componentes e, portanto, exigiram uma sobrecarga substancial para usar serviços COM+. Por exemplo, antes do lançamento do COM+ 1.5, o IIS tinha que criar objetos de correção somente para poder usar serviços de transação COM+ em páginas ASP. Os custos de desempenho decorrentes da criação desses objetos incluem o armazenamento dos dados de configuração na metabase do IIS e no banco de dados de registro COM+ (RegDB), bem como a comunicação extra entre a metabase do IIS e o RegDB COM+ necessária para gerenciar efetivamente os dados de configuração.

Se o IIS precisasse usar um segundo serviço COM+, como sincronização, ele teria que criar um objeto de correção completamente diferente para fazer isso. Para usar transações COM+ e sincronização, um terceiro tipo de objeto de calço seria necessário. A complexidade dessa abordagem escala como O(n2), dificultando sobremaneira a implementação de novos serviços.

Com a introdução de serviços COM+ sem componentes, os serviços necessários são configurados por meio de um objeto instanciado da classe. A classe CServiceConfig implementa as interfaces necessárias para configurar os diferentes serviços, fornecendo a flexibilidade para oferecer suporte a vários serviços ao mesmo tempo e a capacidade de oferecer suporte a novos serviços no futuro.

Os serviços configurados podem então ser usados por meio de dois mecanismos diferentes: eles podem ser usados por meio da função CoCreateActivity, que aplica os serviços a todo o trabalho enviado por meio da atividade criada pela função, e também podem ser usados incorporando o trabalho que usa os serviços entre chamadas para as funções CoEnterServiceDomain e CoLeaveServiceDomain. Nenhuma dessas funções requer a criação de novos componentes para poder usar os serviços COM+; somente o objeto CServiceConfig é necessário.

Serviços COM+ sem tarefas de componentes