Arquitetura de componentes em fila
O serviço de componentes em fila COM+ aprimora o modelo de programação COM, fornecendo um ambiente no qual um componente pode ser invocado de forma síncrona (em tempo real) ou assíncrona (em fila). Um componente não precisa estar ciente se ele é empregado em um contexto em tempo real ou em fila.
Os aplicativos de mensagens são como transações de e-mail entre programas. O solicitante envia uma mensagem para o servidor; Quando o servidor chega a ele, a mensagem é processada. Como o email, um sistema de mensagens deve lidar com os detalhes da rede e garantir que a mensagem seja movida do cliente para o servidor. Na estrutura de componentes em fila, o serviço de enfileiramento de mensagens é responsável por isso.
O serviço de componentes em fila COM+ consiste nas seguintes partes:
- Gravador (para o cliente ou lado de envio)
- Ouvinte (para o servidor ou recebimento)
- Player (para o servidor ou lado de recebimento)
O Gravador
Em um cenário típico de componentes em fila, o cliente chama um componente em fila. A chamada é feita para o gravador de componentes em fila, que o empacota como parte de uma mensagem para o servidor e o coloca em uma fila. O gravador coloca o contexto de segurança do cliente na mensagem e registra todas as chamadas de método do cliente. Em sua função como proxy para o componente de servidor, o gravador seleciona interfaces das interfaces enfileiráveis no catálogo COM+.
Uma representação da gravação é enviada para o serviço de enfileiramento de mensagens como uma mensagem a ser enviada a um servidor. Quando o componente enfileirado tem a configuração de atributo de transação Obrigatório ou Suportado, o serviço de enfileiramento de mensagens aceita a entrega da mensagem somente se a transação do lado do cliente for confirmada e a fila do serviço de enfileiramento de mensagens for transacional, que é o padrão normalmente estabelecido. Quando a configuração do atributo de transação é Requer Novo, o serviço de enfileiramento de mensagens pode aceitar a mensagem mesmo se a transação do lado do cliente for interrompida. Para obter mais informações sobre transações, consulte Enfileiramento de mensagens transacionais.
O Ouvinte
O ouvinte de componentes em fila recupera a mensagem da fila e a passa para o player de componentes em fila.
O Jogador
O player desorganiza o contexto de segurança do cliente no lado do servidor e, em seguida, invoca o componente do servidor e faz as mesmas chamadas de método. As chamadas de método não são reproduzidas pelo player até que o componente cliente seja concluído e a transação que gravou as chamadas de método seja confirmada.
O Impulsionador de Mensagens
O movimentador de mensagens de componentes em fila é um utilitário que move todas as mensagens do serviço de enfileiramento de mensagens com falha de uma fila para outra para que possam ser repetidas. O utilitário de movimentação de mensagens é um objeto Automation que pode ser invocado com um VBScript; para obter mais informações, consulte Manipulando erros.