miércoles, 10 de junio de 2009

MODELOS DE SISTEMA

Modelos Arquitectónicos

Un modelo arquitectónico de un sistema distribuido trata sobre la colocación de sus partes y las relaciones entre ellas. Algunos ejemplos pueden ser el modelo clienteservidor y el modelo de procesos «de igual a igual» (peer to peer).
Toda comunicación entre procesos se realiza por medio de mensajes. La comunicación mediante mensajes sobre una red puede verse afectada por retrasos, puede sufrir variedad de fallos y es vulnerable a los ataques a la seguridad.
Estas cuestiones se consideran en tres modelos:
  • El modelo de interacción.
  • El modelo de fallos.
  • El modelo de seguridad.

El término arquitectura de software se refería inicialmente a la estructuración del oftware como capas o módulos en un único computador.

Un servidor es un proceso que acepta peticiones de otros procesos.

Un servicio distribuido puede proveerse desde uno o más procesos servidor, nteractuando entre cada uno de ellos, y con los procesos clientes.

Capas de servicio software y hardware en los sistemas distribuidos.

Applications, services, Middleware, Operating system and Computer and network hardware. Siendo Operating system and Computer and network hardware la plataforma.

Modelo cliente-servidor

tóricamente la arquitectura cliente- servidor es la más importante, y continúa siendo la más ampliamente utilizada.

Los servidores pueden, a su vez, ser clientes de otros servidores.

Los servidores web y la mayoría del resto de los servicios de Internet son clientes del servicio DNS, que traduce Nombres de Dominio de Internet en direcciones de red.

Servicios proporcionados por múltiples servidores

Los servicios pueden implementarse como distintos procesos de servidor encomputadores separados interaccionando, cuando es necesario, para proporcionar un servicio a los procesos clientes.

Los servidores pueden dividir el conjunto de objetos en los que está basado el servicio y distribuírselos entre ellos mismos, o pueden mantener copias replicadas de ellos en varias máquinas.

Servidores proxy y cachés

Un caché es un almacén de objetos de datos utilizados recientemente, y que se encuentra más próximo que los objetos en sí.

Cuando se necesita un objeto en un proceso cliente, el servicio caché comprueba inicialmente la caché y le proporciona el objeto de una copia actualizada. Si no, se buscará una copia actualizada. Los cachés pueden estar ubicados en cada cliente o en un servidor proxy que puede compartirse desde varios clientes.

Los servidores proxy para el web proporcionan un caché compartido de recursos web a las máquinas cliente de uno o más sitios.

El propósito de los servidores proxy es incrementar la disponibilidad y prestaciones del servicio, reduciendo la carga en redes de área amplia y en servidores web.

Una aplicación distribuida basada en procesos de igual a igual

En esta arquitectura todos los procesos desempeñan tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cómputo sin distinción entre clientes y servidores.

Una aplicación de pizarra distribuida permite que usuarios en varios computadores vean y modifiquen interactivamente un dibujo que se comparte entre ellos.

Applets de tipo Web

a) client request results in the downloading of applet code.

b) client interacts with the applet.

Variaciones en el modelo cliente-servidor

Código móvil. Los applets son el ejemplo más conocido y más ampliamente extendido de código móvil; un usuario que ejecute un navegador y que seleccione un enlace con un applet, cuyo código esté almacenado en un servidor web, descargará el código en el navegador y se ejecutará allí .

Una ventaja de ejecutar el código descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre ni de los retardos ni de la variabilidad del ancho de banda asociados con la comunicación en red.

Agentes móviles. Un agente móvil es un programa en ejecución (lo que incluye tanto código como datos) que se traslada de un computador a otro en la red realizando una tarea para alguien; por ejemplo, recolectando información, y retornando eventualmente con los resultados.

Un agente móvil puede hacer muchas solicitudes a los recursos locales de los sitios que visita, por ejemplo, accediendo a anotaciones individuales en una base de datos. Si se compara esta arquitectura con un cliente estático que realiza solicitudes de algunos recursos, transfiriendo posiblemente grandes cantidades de datos, hay una reducción en el coste de la comunicación y en el tiempo con la sustitución de las solicitudes remotas por las locales.

Clientes ligeros y servidores de cálculo

Variaciones en el modelo cliente-servidor

El término cliente ligero se refiere a una capa de aplicación que soporta una interfaz de usuario basada en ventanas sobre un computador local del usuario mientras se ejecutan programas de aplicación en un computador remoto.

Las aplicaciones se ejecutan en un servidor de cómputo, un potente computador que tiene capacidad para ejecutar gran número de aplicaciones simultáneamente. El servidor de cómputo será normalmente un multiprocesador o un sistema de computadores fuertemente acoplado (cluster) y que ejecuta una versión multiprocesador de un sistema operativo como UNIX o Windows NT .

Implementaciones de clientes ligeros: Los sistemas de clientes ligeros son sencillos en concepto y sus implementaciones son inmediatas en algunos entornos. Por ejemplo, la mayoría de las variantes de UNIX incluyen el sistema de ventanas X-11 .

Para usuarios móviles se presentan otras cuestiones.

  • Conectividad limitada.
  • Seguridad y privacidad.

Requisitos de diseño para arquitecturas distribuidas

  • Temas de prestaciones.
  • Capacidad de respuesta (Responsiveness).
  • Productividad (Throughput).
  • Balance de cargas computacionales.
  • Calidad de servicio.
  • La facilidad de adaptación (adaptability).

Aspectos de fiabilidad.

  • Tolerancia frente a fallos.
  • Seguridad.

Modelos Fundamentales

lnteracción: el cómputo ocurre en los procesos; los procesos interaccionan por paso de mensajes, lo que deviene en comunicación y coordinación (sincronización y ordenamiento de actividades) entre procesos.

Fallo: la correcta operación de un sistema distribuido se ve amenazada allá donde aparezca un fallo en cualquiera de los computadores sobre el que se ejecuta (incluyendo fallos de software) o en la red que los conecta.

Seguridad: la naturaleza modular de los sistemas distribuidos y su extensibilidad los expone a ataques tanto de agentes externos como internos.

Modelo de Interacción

Prestaciones de los canales de comunicaciones: las características de prestaciones de la comunicación sobre una red de computadores incluyen la latencia, el ancho de banda y las fluctuaciones:

  • El retardo entre el envío de un mensaje por un proceso y su recepción por otro se denomina latencia.
  • El ancho de banda de una red de computadores es la cantidad total de información que puede transmitirse en un intervalo de tiempo dado.
  • La fluctuación (jitter) es la variación en el tiempo invertido en completar el reparto de una serie de mensajes.

Relojes de computadores y eventos de temporización: Cada computador de un sistema distribuido tiene su propio reloj interno; los procesos locales obtienen de él, el valor del tiempo actual.

Esta es la forma en que dos procesos en ejecución sobre dos computadores diferentes asocian marcas (o sellos) temporales a sus eventos. Sin embargo, incluso si dos procesos leen sus relojes a la vez, sus relojes locales proporcionarán valores de tiempo diferentes.


Dos variantes del modelo de interacción. En un sistema distribuido es difícil establecer cotas sobre el tiempo que debe tomar la ejecución de un proceso, el reparto de un mensaje o la deriva del reloj. Tenemos dos modelos simples que parten de posiciones extremas y opuestas: el primero tiene en cuenta una fuerte restricción sobre el tiempo; en el segundo no se hace ninguna presuposición.

Sistemas distribuidos síncronos: Hadzilacos y Toueg [1994] definen un sistema distribuido síncrono como aquel en el que se establecen los siguientes límites:

  • El tiempo de ejecución de cada etapa de un proceso tiene ciertos límites inferior y superior conocidos.
  • Cada mensaje transmitido sobre un canal se recibe en un tiempo limitado conocido.
  • Cada proceso tiene un reloj local cuya tasa de deriva sobre el tiempo real tiene un límite conocido.

Sistemas distribuidos asíncronos: muchos sistemas distribuidos, por ejemplo Internet, son de gran utilidad aun sin ser sistemas síncronos. En consecuencia necesitamos un modelo alternativo: un sistema distribuido asíncrono es aquel en que no existen limitaciones sobre:

  • La velocidad de procesamiento (por ejemplo, un paso de un proceso puede requerir tan sólo un pico segundo y otro un siglo; lo único que podemos decir es que cada paso se tomará un tiempo arbitrariamente largo).
  • Los retardos de transmisión de mensaje (por ejemplo, al repartir un mensaje de un proceso A a otro B puede tardar un tiempo cero o bien varios años. En otras palabras, un men-saje puede recibirse tras un tiempo arbitrariamente largo).
  • Las tasas de deriva de reloj (de nuevo, la tasa de deriva de reloj es arbitraria). El modelo asíncrono no presupone nada sobre los intervalos de tiempo involucrados en cualquier ejecución. Éste es exactamente el modelo de Internet, en él no hay límite intrínseco en la carga del servidor o la red (en consecuenciano se sabe cuánto tomará, por ejemplo, transferir un archivo usando ftp). A veces un mensaje de correo puede tomarse varios días en llegar.

Ordenamiento de eventos. En muchos casos, nos interesa saber si un evento (enviar o recibir un mensaje) en un proceso ocurrió antes, después o concurrentemente con otro evento en algún otro proceso. La ejecución de un sistema puede describirse en términos de los eventos y su ordenación aun careciendo de relojes precisos.

Modelo de fallo.

Fallos por omisión. Las faltas clasificadas como fallos por omisión se refieren a casos en los que los procesos o los canales de comunicación no consiguen realizar acciones que se suponen que pueden hacer.

Fallos por omisión de procesos: El principal fallo por omisión de un proceso es el fracaso o ruptura accidentada del procesamiento (crash). Cuando decimos que un proceso se rompe queremos decir que ha parado y no ejecutará ningún paso de programa más.

Fallos por omisión de comunicaciones: El canal de comunicación produce un fallo de omisión si no transporta un mensajedesde el búfer de mensajes salientes de p al búfer de mensajes entrantes de q. A esto se denomina «perder mensajes» y su causa suele ser la falta de espacio en el búfer de recepción de alguna pasarela de entre medias, o por un error de red, detectable por una suma de chequeo de los datos del mensaje.

Fallos arbitrarios. Un fallo arbitrario en un proceso es aquel en el que se omiten pasos deseables para el procesamiento o se realizan pasos no iptencionados de procesamiento. En consecuencia los fallos arbitrarios en los procesos no pueden detectarse observando si el proceso responde a las invocaciones, dado que podría omitir arbitrariamente la respuesta.

Fallos de temporización. Los fallos de temporización se aplican en los sistemas distribuidos síncronos donde se establecen límites en el tiempo de ejecución de un proceso, en el tiempo de reparto de un mensaje y en la tasa de deriva de reloj.

Fiabilidad y comunicación uno a uno. El término comunicación fiable se define en términos de validez e integridad, definidos como sigue:

  • Validez: Cualquier mensaje en el búfer de mensajes salientes será hecho llegar eventualmente al búfer de mensajes entrantes.
  • Integridad: El mensaje recibido es idéntico al enviado, y no se reparten mensajes por duplicado.

No hay comentarios:

Publicar un comentario