Compartir a través de


Ventajas del procesamiento en cola

Al diseñar nuevas aplicaciones, los desarrolladores deben tener en cuenta las implicaciones de codificar componentes para el procesamiento en tiempo real (sincrónico) frente al procesamiento en cola (asincrónico). La elección depende de los requisitos de la aplicación específica según lo determinado por la lógica de negocios subyacente. Como guía, el procesamiento en cola ofrece las siguientes ventajas sobre el procesamiento en tiempo real:

  • Dependencia reducida de la disponibilidad de componentes
  • Duración más corta de los componentes
  • Productividad ininterrumpida al usar aplicaciones desconectadas
  • Confiabilidad de mensajes
  • Programación eficaz del servidor

Disponibilidad de componentes

En una aplicación de procesamiento en tiempo real, si solo hay un componente de la transacción disponible (quizás debido a problemas de sobrecarga del servidor o de red), todo el proceso está bloqueado y no se puede completar. Por el contrario, una aplicación que usa el servicio de componentes en cola com+ separa la transacción en actividades que se deben completar ahora y las que se pueden completar más adelante. Por ejemplo, los mensajes se pueden poner en cola para su procesamiento posterior para que el componente solicitante sea gratuito para otras tareas.

Duración de los componentes

Una aplicación que usa el servicio de componentes en cola permite que el componente de servidor funcione independientemente del cliente. Como resultado, los componentes del servidor se pueden completar más rápidamente. En un sistema en tiempo real, el componente de servidor existe desde el momento en que se crea hasta que finalmente se libera el objeto. El servidor espera a que el cliente realice llamadas de método y que se devuelvan resultados, lo que niega el ciclo rápido de objetos de servidor y limita la escalabilidad del servidor.

Aplicaciones desconectadas

El creciente uso de portátiles, cuadernos y equipos palmeros ha creado una necesidad de aplicaciones que a veces desconectan clientes o usuarios móviles desconectados. En un sistema en cola, estos usuarios pueden seguir funcionando en un escenario desconectado o cuando no están conectados al servidor, y posteriormente pueden conectarse a las bases de datos o servidores para procesar sus solicitudes. Por ejemplo, un vendedor puede realizar pedidos de clientes y después conectarse al departamento de envío para procesar esos pedidos.

Si tiene un componente que se puede ejecutar conectado o desconectado, los mensajes viajan en una dirección y rara vez es necesario cambiar hacia atrás y hacia delante. Por ejemplo, en el escenario de toma de pedidos, el componente de envío recibe el mensaje y lo procesa. Puede generar otro componente para facturación o auditoría. El cliente se confirma antes de que se inicie el servidor. El mensaje no se envía hasta que la aplicación se confirma.

En la ilustración siguiente se muestra el flujo de información en un escenario desconectado.

Diagrama que muestra el flujo de información entre el cliente y el servidor.

Confiabilidad de mensajes

Message Queuing es una herramienta eficaz que usa técnicas de base de datos para ayudar a proteger los datos de forma sólida. En caso de error de servidor, Message Queuing garantiza que las transacciones se revierten para que los mensajes no se pierdan y los datos no estén dañados.

Programación del servidor

Una aplicación que usa componentes en cola es adecuada para la ejecución de componentes con desplazamiento de tiempo, que aplaza el trabajo no crítico a un período fuera del pico. Este es el mismo concepto útil que se aplicó al procesamiento en modo por lotes tradicional. El servidor puede aplazar solicitudes similares para la ejecución contigua en lugar de requerir que el servidor reaccione inmediatamente a una amplia variedad de solicitudes.