Introducción

Anuncio
+
Sistemas Distribuidos
Introducción
Rodrigo Santamaría
+
2
¿Qué es un sistema distribuido?
n 
Es un sistema en el que los componentes hardware o
software:
n 
n 
Se encuentran en computadores unidos mediante una red
Se comunican únicamente mediante paso de mensajes
¿Qué sistemas que conozcas
crees que pueden considerarse
un sistema distribuido?
+
3
Características de un SD
n 
Concurrencia
n 
Varios componentes acceden a la vez a un recurso compartido
n  Hardware: impresoras, discos
n 
n 
Inexistencia de un reloj global
n 
n 
Software: ficheros, bases de datos, objetos de datos
Necesidad de temporalidad para coordinación/sincronización
Fallos independientes
n 
Por aislamiento de la red (red)
n 
Por parada de un computador (hardware)
Por terminación anormal de un programa (software)
n 
+
4
Objetivos de la asignatura
Comprensión de las características de los sistemas
distribuidos a tener en cuenta por diseñadores e
implementadores
Presentación de los conceptos y técnicas fundamentales
existentes para ayudar en el diseño e implementación de
sistemas distribuidos
+
5
Desafíos
1. 
Heterogeneidad
2. 
Extensibilidad
3. 
Seguridad
4. 
Escalabilidad
5. 
Tratamiento de fallos
6. 
Concurrencia
7. 
Transparencia
+
6
1.- Heterogeneidad
n 
En un SD existe heterogeneidad a mucho niveles:
n 
n 
n 
SSOO à distintas llamadas al sistema
Lenguajes de programación à representación de estructuras de
datos, acceso a métodos, etc.
n 
Implementaciones à adopción de estándares
n 
n 
Redes à distintos protocolos de red
HW à distinta representación de los datos
Solución: middleware
+
7
Heterogeneidad
Middleware
n 
Estrato SW que proporciona una abstracción de
programación y enmascara la heterogeneidad subyacente
n 
Varios ‘estándares’
n 
n 
n 
n 
CORBA, RMI
SOAP, REST
Middleware P2P
…
Java
C
Perl
Middleware
Python HTML
JavaScript
Ruby
Internet/Intranet
LAN/WAN
OSI/TCP-IP
3G
MacOS Windows
Intel
Motorola
Linux
Unix
Android
AMD
PowerPC
iOS
Móviles
+
8
2.- Extensibilidad
n 
Grado en que se pueden añadir y publicar nuevos servicios
para su uso por una variedad de programas cliente
n 
n 
Publicación de interfaces
Por ejemplo
n 
RFC (Request For Comments)
Propuestas de protocolos para Internet
CORBA (Common Object Request Brocker Arquitecture)
n 
n 
n 
n 
Envoltorio de código para crear accesos a servicios en un SD
WSDL (Web Service Description Language)
n  Descripción y publicación de servicios web (SOAP)
+
9
3.- Seguridad
n 
Comunicación por paso de mensajes
n 
n 
Estos mensajes pueden ser manipulados por terceros
Tres desafíos principales:
n 
Confidencialidad:
Lectura de mensajes por terceros
Integridad:
n 
n 
n 
n 
Modificación de mensajes por terceros
Disponibilidad
n  Interferencia con los procedimientos de acceso a los recursos
+
10
Seguridad
n 
Confidencialidad:
n 
n 
n 
Integridad
n 
n 
n 
Protección contra el descubrimiento de dichos mensajes por
entidades no autorizadas
Resuelta gracias a la criptografía
Protección contra su alteración o corrupción
Detección de su alteración o corrupción (p. ej. MD5)
Disponibilidad
n 
Protección contra la interferencia de otros mensajes o
procedimientos no deseados
n  Por ejemplo ataques de denegación de servicio (DoS)
n  Ataques por sobreuso de servicios públicos
n  No resuelto
No entraremos mucho en este
aspecto al cubrirse en detalle en
la asignatura Seguridad en
Sistemas Informáticos
+
11
4.- Escalabilidad
n 
Un sistema es escalable si conserva su efectividad ante un
incremento significativo del
n 
n 
n 
Número de recursos
Número de usuarios
Puntos clave
n 
n 
n 
Control del coste de los recursos HW
Prevención del desbordamiento de recursos SW
n  Por ejemplo: IPV4 (234 direcciones IP)à IPV6 (2128 direcciones IP)
Evitar cuellos de botella/pérdidas en prestaciones
n  Algoritmos descentralizados
n  Replicación
n  Uso de cachés
+
12
Escalabilidad
Internet
https://www.isc.org/solutions/survey/history
+
13
Escalabilidad
Internet
1988 – 88M hosts
http://www.informationweek.com/news/internet/reporting/210600289
2003 - 200M hosts
Opte Project (http://www.opte.org/)
Rojo – Asia
Verde – Europa, África y Oriente Medio
Azul – Norteamérica
Amarillo – Sudamérica y Caribe
Cyan – LANs
Blanco - desconocido
14
2010 - 700M hosts
Opte Project (http://www.opte.org/)
Los puntos con mayor número de conexiones se acercan al blanco
15
+
16
5.- Tratamiento de fallos
n 
En un sistema distribuido, los fallos siempre son parciales
n 
Detección de fallos
n 
n 
n 
Enmascaramiento de fallos
n 
n 
n 
Checksum para fallos en la transmisión
Detección de la caída de servidores
Retransmisión de mensajes fallidos
Servidores proxy
Tolerancia a fallos à Redundancia
n 
n 
n 
Rutas alternativas entre routers
Sistemas de nombres duplicado
Replicación de ficheros
+
17
Tratamiento de fallos
Disponibilidad
n 
n 
Es la proporción de tiempo en que un sistema está utilizable
n 
El fallo de un componente sólo debe afectar al trabajo
relacionado con el componente defectuoso
n 
Si falla un computador el usuario debe poder desplazarse a
trabajar a otro de los que funcionen
n 
Si falla un proceso servidor debería poder reiniciar su ejecución
en otra ubicación
Un sistema distribuido debería buscar un alto grado de
disponibilidad
+
18
6.- Concurrencia
n 
Cada objeto que represente un recurso compartido en un
sistema distribuido debe responsabilizarse de garantizar
que opera correctamente en un entorno concurrente
n 
Algunos objetos deberán reimplementarse para trabajar
correctamente en entornos distribuidos
n 
n 
Servidores multihilo
Sincronización mediante semáforos u otros mecanismos
+
19
7.- Transparencia
n 
Ocultación al usuario y al programador de aplicaciones de
los componentes de un sistema distribuido
n 
El sistema se percibe como un todo, en vez de como una
colección de componentes independientes
+
20
Transparencia
Tipos
n 
De acceso
n 
n 
De ubicación
n 
n 
Se accede a los recursos sin necesidad de conocer su localización
De concurrencia
n 
n 
Se accede mediante igual mecanismo a recursos locales y remotos
Varios procesos operan concurrentemente sin interferencia mutua
De replicación
n 
Uso de múltiples ejemplares de cada recurso para aumentar
fiabilidad y prestaciones sin que los usuarios necesiten su
conocimiento
¿Se te ocurre algún sistema distribuido
que cumpla con alguno de estos tipos
de transparencia?
+
21
Transparencia
Tipos (ii)
n 
Frente a fallos
n 
n 
Movilidad
n 
n 
Reubicación de recursos y clientes en un sistema sin afectar la
operación de los usuarios y programas
Prestaciones
n 
n 
Ocultación de fallos dejando que el usuario o programa de aplicación
complete sus tareas a pesar de fallos HW o SW
Reconfiguración del sistema para mejorar las prestaciones según
varíe la carga de uso
Escalado
n 
Expansión en tamaño del sistema o aplicaciones sin cambiar la
estructura subyacente o los algoritmos de aplicación
+
22
Desafíos
Contexto
n 
Todos los desafíos son importantes
n 
Dependiendo del contexto unos van a tener más relevancia
que otros
n 
n 
n 
n 
n 
Transacciones comerciales à seguridad, fallos, concurrencia
Google à escalabilidad
DNS à escalabilidad, fallos
P2P à escalabilidad, fallos
Cuando estemos estudiando un problema, a menudo
n 
Daremos por ‘solventados’ algunos desafíos
n 
Analizaremos cómo repercute en otros desafíos
23
+
24
Resumen
n 
En un sistema distribuido (SD) los
componentes están unidos mediante
una red y se comunican mediante paso
de mensajes
n 
En un SD pueden convivir muchas
plataformas, una heterogeneidad que
trata de resolverse mediante
middleware
n 
En algunos casos es importante diseñar
SDs que sean escalables, es decir,
toleren un incremento en el número de
recursos o usuarios. Especialmente
importante si la escala es Internet
n 
En un SD puede haber fallos a muchos
niveles que en la medida de lo posible
deben ser ocultados o tolerados
n 
En un SD varios procesos pueden
acceder a los mismos recursos a la
vez. Esta concurrencia debe ser
identificada y tratada
adecuadamente
n 
La seguridad y la extensibilidad
son otros desafíos importantes, pero
no nos centraremos mucho en ellos
n 
Un tratamiento correcto de estos
desafíos lleva a un sistema
transparente en el que el usuario
final no percibe todos estos aspectos
n 
Es importante definir el contexto en
el que nos encontramos para
identificar los desafíos clave, o los
que vamos a necesitar enfrentar en
nuestro modelo de SD
+
25
Referencias
n 
G. Colouris, J. Dollimore, T. Kindberg and G. Blair. Distributed
Systems: Concepts and Design (5th Ed). Addison-Wesley, 2011
n 
n 
Internet World Stats
n 
n 
Capítulo 1
http://www.internetworldstats.com/
Internet Systems Consortium
n 
http://www.isc.org
26
Descargar