Projetando para implantação
Planejar o escopo de aplicativos COM+ é uma tarefa de design importante que você deve considerar desde o início. Os sistemas distribuídos que se destinam a ser executados usando COM+ devem ser projetados para implantação com a menor quantidade de configuração individual e para usar cada processo com mais eficiência. Há também técnicas que você pode usar que permitirão que você obtenha o desempenho ideal ao implantar um aplicativo COM+. (Para obter mais informações, consulte Implantando para uma comunicação mais rápida.)
Quando exibido com a ferramenta administrativa Serviços de Componentes, cada aplicativo COM+ aparece como uma pasta dentro da qual os conjuntos de componentes são agrupados logicamente. Embora você possa mover componentes individuais entre pastas de componentes do aplicativo COM+ (em outras palavras, de um aplicativo para outro), vários serviços definidos no nível do aplicativo COM+, como segurança, podem ser diferentes. Essas configurações de serviço podem afetar a portabilidade.
Um aplicativo de servidor COM+ define um limite de processo
Quando você cria um novo aplicativo de servidor COM+, você está realmente definindo um novo limite de processo. (Observe a exceção para aplicativos de biblioteca explicada abaixo.) Esse processo se torna a instância de aplicativo de controle para os componentes contidos no aplicativo COM+. Todos esses componentes são executados em processo em uma nova instância do programa executável COM+ sempre que um programa chama um aplicativo COM+ pela primeira vez. Isso significa que todos os componentes dentro de uma determinada pasta Components do aplicativo COM+ são executados em um único espaço de processo que serve como o servidor DCOM. No aplicativo COM+, o COM+ gerencia a memória, a coordenação com o DTC (Distributed Transaction Coordinator), a ativação da instância do componente just-in-time, a detecção e recuperação de falhas e a segurança baseada em função.
Chamando através dos limites do aplicativo COM+
Como cada aplicativo COM+ normalmente é implementado como um executável separado, o efeito de dividir um aplicativo distribuído em vários aplicativos COM+ introduz chamadas COM fora de processo quando componentes em um aplicativo COM+ chamam os componentes em outro aplicativo COM+. Isso introduz degradação de desempenho devido à carga extra que o empacotamento de parâmetros COM entre processos impõe.
Observação
Não há nada de inerentemente errado em incorrer nessa penalidade de desempenho; Você só precisa estar ciente de que isso vai ocorrer. Dependendo do tempo de resposta necessário, do número de usuários que solicitarão serviços corporativos simultaneamente e da carga de inicialização adicional que cada componente adiciona a cada aplicativo COM+, você pode achar que o desempenho atribuível a chamadas entre aplicativos é aceitável.
Uma possibilidade que elimina a penalidade de desempenho de chamar através dos limites do aplicativo COM+ é marcar um determinado aplicativo COM+ como um aplicativo de biblioteca. Um aplicativo de biblioteca COM+ é executado no processo do cliente que o cria. É claro que nenhum ganho de desempenho tem custo zero. Nesse caso, a compensação envolve as limitações dos aplicativos de biblioteca COM+. Embora um aplicativo de biblioteca possa usar segurança baseada em função, ele não pode oferecer suporte a componentes em fila ou acesso remoto.
Tópicos relacionados