Compartilhar via


Benefícios do processamento em fila

Ao projetar novos aplicativos, os desenvolvedores devem considerar as implicações dos componentes de codificação para processamento em tempo real (síncrono) versus processamento em fila (assíncrono). A escolha depende dos requisitos do aplicativo específico, conforme determinado pela lógica de negócios subjacente. Como diretriz, o processamento em fila oferece as seguintes vantagens em relação ao processamento em tempo real:

  • Dependência reduzida da disponibilidade de componentes
  • Vida útil mais curta dos componentes
  • Produtividade ininterrupta ao usar aplicativos desconectados
  • Confiabilidade da mensagem
  • Agendamento eficiente de servidores

Disponibilidade de componentes

Em um aplicativo de processamento em tempo real, se apenas um componente da transação não estiver disponível — talvez devido à sobrecarga do servidor ou a problemas de rede — todo o processo será bloqueado e não poderá ser concluído. Por outro lado, um aplicativo que usa o serviço de componentes em fila COM+ separa a transação em atividades que devem ser concluídas agora e aquelas que podem ser concluídas posteriormente. Por exemplo, as mensagens podem ser enfileiradas para processamento posterior para que o componente solicitante esteja livre para outras tarefas.

Vida útil dos componentes

Um aplicativo que usa o serviço de componentes em fila permite que o componente de servidor opere independentemente do cliente. Como resultado, os componentes do servidor podem ser concluídos mais rapidamente. Em um sistema de tempo real, o componente de servidor existe desde o momento em que é criado até que o objeto seja finalmente liberado. O servidor aguarda que o cliente faça chamadas de método e que os resultados sejam retornados, o que anula o ciclo rápido de objetos de servidor e limita a escalabilidade do servidor.

Aplicativos desconectados

O uso crescente de laptops, notebooks e computadores palm criou uma necessidade de aplicativos que atendem ocasionalmente clientes desconectados ou usuários móveis. Em um sistema em fila, esses usuários podem continuar a trabalhar em um cenário desconectado ou quando não estão conectados ao servidor e, posteriormente, podem se conectar aos bancos de dados ou servidores para processar suas solicitações. Por exemplo, um vendedor pode receber pedidos de clientes e, posteriormente, conectar-se ao departamento de remessa para processar esses pedidos.

Se você tiver um componente que possa ser executado conectado ou desconectado, as mensagens estão viajando em uma direção e raramente há a necessidade de alternar para frente e para trás. Por exemplo, no cenário de tomada de pedidos, o componente de remessa recebe a mensagem e a processa. Ele pode gerar outro componente para faturamento ou auditoria. O cliente confirma antes que o servidor seja iniciado. A mensagem não é enviada até que o aplicativo seja confirmado.

A ilustração a seguir mostra o fluxo de informações em um cenário desconectado.

Diagram that shows teh flow of information between the client and server.

Confiabilidade da mensagem

O serviço de enfileiramento de mensagens é uma ferramenta poderosa que usa técnicas de banco de dados para ajudar a proteger os dados de forma robusta. No caso de uma falha do servidor, o serviço de enfileiramento de mensagens garante que as transações sejam revertidas para que as mensagens não sejam perdidas e os dados não sejam corrompidos.

Agendamento de servidores

Um aplicativo que usa componentes em fila é adequado para a execução de componentes com deslocamento de tempo, o que adia o trabalho não crítico para um período fora do pico. Este é o mesmo conceito útil que foi aplicado ao processamento tradicional em modo de lote. Solicitações semelhantes podem ser adiadas para execução contígua pelo servidor, em vez de exigir que o servidor reaja imediatamente a uma ampla variedade de solicitações.