Partilhar via


Arquitetura de componentes em fila

O serviço de componentes enfileirados 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 (enfileirada). Um componente não precisa saber se é empregado em tempo real ou em um contexto 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 e-mail, um sistema de mensagens deve lidar com os detalhes da rede e garantir que a mensagem se mova 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 enfileirados COM+ consiste nas seguintes partes:

  • Gravador (para o cliente ou lado de envio)
  • Ouvinte (para o servidor ou para o lado de receção)
  • Player (para o servidor ou lado de receção)

Diagrama que mostra o caminho do cliente para o servidor: cliente, gravador, fila, ouvinte, player, servidor.

O gravador

Em um cenário típico de componentes enfileirados, o cliente chama um componente enfileirado. A chamada é feita para o gravador de componentes em fila, que a empacota como parte de uma mensagem para o servidor e a coloca em uma fila. O gravador controla o contexto de segurança do cliente na mensagem e grava todas as chamadas de método do cliente. Em sua função de 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 do 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 anulada. Para obter mais informações sobre transações, consulte Transactional Message Queuing.

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 desmarechal 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 registrou as chamadas de método seja confirmada.

O Impulsionador de Mensagens

O movimentador de mensagens de componentes enfileirados é um utilitário que move todas as mensagens com falha do serviço de enfileiramento de mensagens de uma fila para outra para que possam ser repetidas. O utilitário de movimentação de mensagens é um objeto de automação que pode ser invocado com um VBScript; para obter mais informações, consulte Tratamento de erros.