Transacciones - Procesos sincrónicos y asincrónicos
La mayoría de las transacciones
atómicas ejecutan operaciones sincrónicas, o sea, la operación comienza y se
queda esperando respuesta la cual se recibe en un breve espacio de tiempo.
Una característica idónea para un
sistema de procesamiento es que la información procesada o respuesta esté
disponible en el menor tiempo posible. De ahí que en el diseño transaccional
del sistema se intenten llamar a procesos de forma sincrónica tanto como sea
posible.
Podemos decir que ejecución de
operaciones de forma sincrónica o asincrónica está basada fundamentalmente en
el tiempo de respuesta y la forma en que se espera la respuesta.
Cuando el tiempo de respuesta es muy
pequeño o mucho menor que el tiempo de duración total de la transacción, tiene
sentido esperar por la respuesta y entonces podemos invocar al proceso de forma
sincrónica.
Cuando el tiempo de respuesta es muy
grande o incluso no se conoce, y no tiene sentido esperar una respuesta
inmediata o incluso bloquear en la espera los datos, podemos invocar al proceso
de forma asincrónica.
Las llamadas sincrónicas invocan a
un módulo, rutina o función devolviendo un resultado en un área de intercambio de
datos prácticamente de inmediato.
Las llamadas asincrónicas tienen la
particularidad de que el resultado no puede obtenerse en las áreas de
intercambio de datos de forma inmediata. En vez de eso, el sistema recibe a
posteriori un mensaje con el resultado.
Es un proceso que transcurre en dos
fases: una fase de invocación asincrónica del proceso y otra fase de recepción
de la información procesada. Ambas fases están espaciadas en el tiempo.
El tratamiento de mensajes en llamadas
asincrónicas nos lleva al concepto de evento. Un evento es algo que ocurre
dentro del sistema cuando se cumple una determinada condición. Cada evento
puede tener asociado una pieza de código que se ejecuta cuando es activado o
“disparado”. Este código se denominada manipulador de evento.
De esta forma, una llamada a un proceso
de forma asincrónica no tiene que esperar por la respuesta. Cuando le llegue un
mensaje, el sistema activa el evento “Recepción de Mensaje”, se da control al
código programado para atender al evento y se procesa el mensaje recibido
obteniéndose así la respuesta del proceso llamado asincrónicamente.
0 comentarios:
Publicar un comentario