jorge iván meza martínez [email protected] especialización...
TRANSCRIPT
1/28
Introducción a los sistemas distribuidos
Jorge Iván Meza Martí[email protected]
Especialización en Gestión de Redes de DatosUniversidad Nacional de Colombia – Sede Manizales
2/28
Contenidos
● Definiciones● Propósito principal● Consecuencias de la distribución● Esquema general de la comunicación● Desafíos
3/28
Evaluación pre-contenido
1.Qué es un sistema distribuido ?
2.Cuál es la ventaja de los sistemas distribuidos frente a los centralizados ?
3.Cuáles son las dificultades que se debe enfrentar al diseñar e implementar un sistema distribuido ?
4/28
Definición
Un sistema distribuido es aquel en el que sus componentes (hardware y software) se encuentran localizados en computadores, conectados a una red, comunican y coordinan sus acciones únicamente mediante el paso de mensajes a través de un protocolo establecido.
5/28
Definición
Un sistema distribuido se compone de un grupo de computadores autónomos, enlazados mediante una red y equipados con un software de sistemas distribuidos. Este software permite que los computadores coordinen sus actividades y compartan recursos.
6/28
Definición
Los usuarios de un sistema distribuido bien diseñado deberían percibir un sistema de computación único e integrado, aun cuando las máquinas estén dispersas geográficamente.
(c,d,k, 1998)
7/28
Definición
Un sistema distribuido es un grupo de computadores independientes que son percibidas por los usuarios como un único computador.
(tanenbaum, 1995)
8/28
Definición
You know you have a distributed system when the crash of a computer you’ve never heard of stops you
from getting any work done.
- Leslie Lamport
9/28
Propósito principal
Optimizar recursos mediante el aprovechamiento de la infraestructura (hardware, software, información, etc.) que no necesariamente se dispone local.● Bajo costo de servidores pequeños (memoria,
procesador) vs servidores centrales costosos.● Redes de prestaciones medias disponibles.● Recursos críticos que debían ser compartidos.
Ejemplos cotidianos: Internet (www, ftp, mail, video, …) y, la computación móvil y ubícua.
10/28
Consecuencias de la distribución
● Concurrencia → coordinación de recursos● Inexistencia de reloj global → sincronización● Fallos independientes → tolerancia
11/28
Esquema general de la comunicación
Red Servidor(Proceso)
Usuario
Cliente
Solicitud (request)
Respuesta (response)
12/28
Desafíos
● Heterogeneidad● Extensibilidad● Seguridad● Escalabilidad● Tratamiento de fallos● Concurrencia● Transparencia
13/28
Actividad
En grupos de dos estudiantes realizar la lectura de los desafíos y realizar una presentación en la que se comparta la explicación del desafío a enfrentarse, sus posibles alternativas de mitigación y ejemplos de esta.
14/28
Desafío: heterogeneidad
Aplica sobre los siguientes elementos.
● Redes● Hardware de computadores● Sistemas operativos● Lenguajes de programación● Implementaciones de diferentes desarrolladores● Diferentes representaciones de la información
15/28
Desafío: heterogeneidad
Middleware
Es una capa de software adicional que se agrega al sistema para abstraer la heterogeneidad subyacente y enmascarando sus detalles de implementación específicos (redes, hardware, sistemas operativos, lenguajes de programación, etc) permitiendo además un modelo computacional uniforme para el acceso a los recursos.
Ejemplos: Corba, Java VM, Java RMI, Java JDBC, Globus.
16/28
Desafío: heterogeneidad
Código móvil
Instrucciones de código que pueden ser enviadas desde un computador a otro para ser ejecutadas en este último.
Es dependiente de la plataforma/arquitectura donde se vaya a ejecutar.
Ejemplos: controles ActiveX, Applets Java
17/28
Desafío: extensibilidad
Nivel o grado en el cual se pueden añadir nuevos servicios de compartición de recursos al sistema y ponerlos a disposción de los clientes.● Se requiere acceso a las interfaces de los nuevos
módulos (por ejemplo las Request For Comments de Internet).
● Mecanismo de comunicación uniforme.● Conformidad de estándares.
18/28
Desafío: seguridad
● La distribución física incluye nuevos puntos de fallo a accesos no autorizados incluyendo el transporte de la información y su entrega.
● La información del sistema es de alto interés para los usuarios.
● Tres componentes:– Confidencialidad: sólo para individuos autorizados.
– Integridad: sin alteraciones ni pérdidas
– Disponibilidad: sin pérdida de acceso
19/28
Desafío: escalabilidad
Un sistema es escalable si conserva su efectividad después de un incremento significativo en sus recursos y/o número de usuarios que lo acceden.● Control del coste de los recursos físicos →
actualizar el sistema a un costo razonable para atender la demanda.
● Control de las pérdidas de prestaciones → comportamiento frente al aumento de demanda.
● Prevención del desbordamiento de recursos de software → previsión de la infraestructura (IPV4).
20/28
Desafío: escalabilidad
● Evitar cuellos de botella → soluciones descentralizadas.
Es complejo de lograr pero idóneo. Algunas técnicas.● Replicación de datos.● Uso de cachés.● Uso de múltiples servidores → concurrencia.
21/28
Desafío: tratamiento de fallos
Los fallos sucederán → manejarlos de la mejor manera posible de forma que no interrumpa el servicio.● Detección de fallos → identificarlos antes de
consecuencias graves.● Enmascaramiento de fallos → reintentar de forma
que no sea visible el problema.● Tolerancia de fallos → manejar de manera
inteligente los problemas, inclusive informarlos a tiempo.
22/28
Desafío: tratamiento de fallos
● Recuperación ante fallos → el sistema no pierde su coherencia después de un error.
● Redundancia → replicas o caminos alternativos.
La disponibilidad de un sistema distribuido se mide según la proporción de tiempo que este puede ser utilizado por sus usuarios.
23/28
Desafío: concurrencia
En un sistema multiusuario con múltiples recursos es muy probable que mas de un usuario intente acceder a un mismo recurso.
Dependiendo del tipo de operación que se vaya a realizar sobre el recurso estas pueden ser seguras o inseguras para la consistencia de la información. En el último caso las solicitudes se deberán sincronizarse (semáforos, mutex, etc.) para garantizar que sólo una se realizará en un instante determinado de tiempo limitando el desempeño del sistema (throughput).
24/28
Desafío: transparencia
Se define con la abstracción al usuario y desarrollador de la separación que existe entre los distintos componentes de un sistema distribuido haciéndole ver como un único sistema completo.● Transparencia de acceso → recursos locales y
remotos con iguales operaciones.● Transparencia de ubicación → acceder a los
recursos sin conocer su ubicación real.● Transparencia de concurrencia → procesos
concurrentes que no se interfieren.
25/28
Desafío: transparencia
● Transparencia de replicación → utilizar copias de un mismo recurso para aumentar su disponibilidad.
● Transparencia frente a fallos → garantizar que se completen las tareas a pesar de fallos de hardware o software.
● Transparencia de movilidad → reubicar recursos y usuarios sin afectar el sistema.
26/28
Desafío: transparencia
● Transparencia de prestaciones → reconfigurar el sistema según su carga actual
● Transparencia de escalado → expandirse sin cambiar sus algoritmos o estructura.
27/28
28/28
Evaluación post-contenido
1.Qué es un sistema distribuido ?
2.Cuál es la ventaja de los sistemas distribuidos frente a los centralizados ?
3.Cuáles son las dificultades que se debe enfrentar al diseñar e implementar un sistema distribuido ?