Sistema Distribuido
Definicion
Conjunto de Ordenadores trabajando en forma coordinada, a través del intercambio de mensajes, esto con un fin en conjunto .Este sistema, el estado y los programas se guardan en multiples ordenadores.
Caracteristicas
Concurrencia
Los ordenadores ejecutan eventos de forma independiente y al mismo tiempo
Falta de un reloj global
Se necesita ordenar los eventos que tienen lugar. Pero en un sistema donde los integrantes estan separados en dificil decir el orden de los eventos, dicho de otra forma no existe un reloj global que determine la secuencia de eventos.
Fallos independientes de los componentes
Los sistemas trabajan con componentes que pueden fallar
Crash:Los componentes dejan de funcionar
Omisión: Un componente envía un mensaje, pero no es recibido por los demás
Bizantino: Los componentes de la red empiezan a actuar de forma arbitraria
Modelos
Simple fault-tolerance
Estos sistemas asumen que las partes solo mostraran dos tipos de comportamientos: o sigue el protocolo o fallan. Este modelos maneja correctamente los fallos de los componentes, pero no se piensa en fallos Bizatinos
Byzatine fault-tolerance
Se asume que los componetes pueden fallar o actuar de forma mailiciosa
BAR fault tolerance: Se considera un ampliacion del anterior, algunos argumentan que los modelos no cuentan fallos racionales. En ese sentido, se propone la existencia de incentivos que puedan influir en los nodos para actuar de forma honesta y deshonesta. Por lp¿o que asume tres tipos de actores
Bizantinos: Buscaran dañar la red
Altruistas: siempre seguiran el protocolo
Racionales: solo seguiran el protocolo si les viene bien
Comunicacion de nodos
La comunicacion de nodos se basa en el intercambio de mensajes entre los mismos, permitiendo la coordinacion de estos. Existen dos escenarios en el intercambio
Sincrono
Se asume que los mensajes llegaran en un determinado lapso de tiempo, diseñar un sistema bajo ente escenario no es practico, ya que los ordenadores podrian dejar de funcionar, perder la conexion, etc. Provocando que los mensajes se pudiesen perder.
Asincrono
Se asume que los mensajes pueden retrasarse infinitamente, duplicarse o entregarse en distintos ordenes. Ademas se pueden identificar dos modelos en el intercambio de mensajes
Invocación remota: Desde una maquina poder invocar un codigo que hay en otra
Comunicaciones grupales: Comunicacion de una a muchos
Desventajas
Es muy complicado proveer una seguridad adecuada, ya que hay que proteger los nodos
Los mensajes e informacion puede perderse durante la comunicacion
La base de datos sera complicada y dificil a comparacion de un sistema centralizado
Puede producirse una sobrecarga si los nodos tratan de enviar informacion a la vez
Ventajas
Al estar en nodos de la red conectados entre si, compartir informacion es mas sencillo
Se pueden añadir mas nodos facilmente, haciendo una escalabilidad sencilla
Si un nodo falla, no lleva al fallo de todo el sistema
Retos de diseñar un sistema distribuido
Hetereogeneidad
Apertura
Seguridad
Confidencialidad
Disponibilidad
Integridad
Escalabilidad
Gestion, Deteccion, Mitigar fallos
Tolerancia
Concurrencia
Calidad del servicio