Semánticas de Ejecución en Sistemas Distribuidos y Arquitectura de Capas

Informática y Telecomunicaciones3,59 KB

Semánticas de Ejecución en Sistemas Distribuidos

La semántica de ejecución define las garantías que un sistema distribuido ofrece respecto a la invocación de un método remoto y la entrega de resultados, especialmente en presencia de fallos.

1. Semántica "Pudiera ser" (At most once, o mejor dicho, no garantizada)

  • Ejemplos: UDP, CORBA en métodos que no devuelven resultados.
  • No se puede asegurar si un objeto se ha ejecutado una vez, o ninguna.
  • No se aplica ninguna medida de tolerancia a fallos.
  • Puede padecer fallos de omisión si se pierde la invocación o la respuesta.
  • Si falla el servidor que contiene el objeto remoto, fallaría el invocante.
  • Si se establece un timeout, podría recibirse la respuesta tras su vencimiento (comportamiento asíncrono).
  • Es una semántica útil en aplicaciones donde es aceptable que haya invocaciones fallidas.

2. Semántica "Al menos una vez" (At least once)

  • Ejemplos: Consultas, SUN RPC.
  • El invocante recibe un resultado, por lo que sabe que se ejecutó el método al menos una vez, o se produjo una excepción indicando que no se recibe ningún resultado.
  • Se puede conseguir retransmitiendo los mensajes de los que no se tuvo respuesta.
  • Dependiendo de si el fallo se produjo en el envío al servidor o en la respuesta del servidor, tendremos fallos arbitrarios (pueden llegar dos invocaciones y que el método se ejecute dos veces, por ejemplo).
  • Es una semántica válida cuando el método es idempotente.

3. Semántica "Como máximo una vez" (At most once)

  • Ejemplos: TCP, Java RMI, CORBA.
  • El invocante sabe que el método se ejecutó exactamente una vez, o recibe una excepción que le indica que no se ha ejecutado; por lo tanto, o se ejecuta una sola vez o ninguna.
  • Aplica todas las medidas de tolerancia a fallos necesarias.
  • No hay fallos de omisión porque si un mensaje falla se reintenta.
  • Como solo se ejecuta una vez o ninguna, no puede haber fallos arbitrarios.

Arquitectura Modular de Aplicaciones

La estructura de una aplicación se organiza típicamente en capas funcionales:

Capa de Presentación

  • Módulo de Inicialización
  • Gestor de Sesión
  • Gestor de Diálogo
  • Adaptación y Validación de la Entrada
  • Adaptador de Canal
  • Plantillas de Presentación
  • Tratamiento de Contenidos

Capa de Negocio

  • Operaciones de Aplicación
  • Servicios de Negocio

Capa de Integración

  • Gestor de Acceso a Datos
  • Gestor de Acceso a Servicios de Negocio
  • Gestor de Adaptadores Específicos

Comunicación con Vistas Síncronas y Garantías de Entrega

La comunicación con vistas síncronas genera garantías adicionales en lo que respecta al orden en las entregas de notificaciones de vistas con respecto al reparto de mensajes de multidifusión:

Integridad

Un proceso entrega cada mensaje una sola vez. Si un proceso entrega un mensaje, este fue enviado por un miembro de su vista.

Acuerdo

Los procesos correctos entregan los mismos mensajes en cada vista.

Validez (Grupos Cerrados)

Los procesos correctos siempre entregan los mensajes que envían. Si falla la entrega de un mensaje $m$ a un proceso $q$, los procesos que entregan $m$ reciben inmediatamente una notificación de vista sin $q$.

Descargar

PDF Word HTML