Está en la página 1de 21

+

Sistemas Distribuidos
Introducción
Rodrigo Santamaría
+ 2

¿Qué es un sistema distribuido?

 Es un sistema en el que los componentes hardware o


software:
 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

 Concurrencia
 Varios componentes acceden a la vez a un recurso compartido
 Hardware: impresoras, discos
 Software: ficheros, bases de datos, objetos de datos

 Inexistencia de un reloj global


 Necesidad de temporalidad para coordinación/sincronización

 Fallos independientes
 Por aislamiento de la red (red)
 Por parada de un computador (hardware)
 Por terminación anormal de un programa (software)
+ 4

Desafíos

1. Heterogeneidad
2. Extensibilidad
3. Seguridad
4. Escalabilidad
5. Tratamiento de fallos
6. Concurrencia
7. Transparencia
+ 5

1.- Heterogeneidad

 En un SD existe heterogeneidad a mucho niveles:


 Redes → distintos protocolos de red
 HW → distinta representación de los datos
 SSOO → distintas llamadas al sistema
 Lenguajes de programación → representación de
estructuras de datos, acceso a métodos, etc.
 Implementaciones → adopción de estándares

 Solución: middleware, estrato SW que enmascara la


heterogeneidad subyacente

Middleware
Java C Perl Python HTML JavaScript Ruby
Internet/Intranet LAN/WAN OSI/TCP-IP 3G
MacOS Windows Linux Unix Android iOS
Intel Motorola AMD PowerPC Móviles
+ 6

2.- Extensibilidad

 Grado en que se pueden añadir y publicar nuevos


servicios para su uso por una variedad de clientes
 Publicación de interfaces

 Por ejemplo
 RFC (Request For Comments)
 Propuestas de protocolos para Internet
 WSDL (Web Service Description Language)
 Descripción y publicación de servicios web (SOAP)
+ 7

3.- Seguridad

 Comunicación por paso de mensajes


 Estos mensajes pueden ser manipulados por terceros

 Tres desafíos principales:


 Confidencialidad: lectura de mensajes por terceros
 Integridad: modificación de mensajes por terceros
 Disponibilidad: interferencia con los procedimientos de
acceso a los recursos
+ 8

4.- Escalabilidad

 Un sistema es escalable si conserva su efectividad ante un


incremento significativo del
 Número de recursos
 Número de usuarios

 Puntos clave
 Control del coste de los recursos HW
 Prevención del desbordamiento de recursos SW
 P. ej: paso de IPV4 (234 direcciones IP) a IPV6 (2128 direcciones IP)*
 Evitar cuellos de botella/pérdidas en prestaciones
 Algoritmos descentralizados
 Replicación
 Uso de cachés

*En 1998 ya se había diseñado la solución al


problema de escala de IPv4. ¿En qué medida es,
a día de hoy, IPv6 una realidad?
+ 9

Escalabilidad
Internet
(IPv4 only)

https://www.isc.org/network/survey/
+
Escalabilidad
Internet

https://global-internet-map-2021.telegeography.com
https://global-internet-map-2021.telegeography.com
+ 12

5.- Tratamiento de fallos

 En un sistema distribuido, los fallos siempre son parciales

 Detección de fallos
 Checksum para fallos en la transmisión
 Detección de la caída de servidores

 Enmascaramiento de fallos
 Retransmisión de mensajes fallidos
 Servidores proxy

 Tolerancia a fallos → Redundancia


 Rutas alternativas entre routers
 Sistemas de nombres duplicado
 Replicación de ficheros

 Disponibilidad:
 Proporción de tiempo que un sistema está operativo
+ 13

6.- Concurrencia

 Cada objeto que represente un recurso compartido en


un sistema distribuido debe responsabilizarse de
garantizar que opera correctamente en un entorno
concurrente
 Algunos objetos deberán reimplementarse para trabajar
correctamente en entornos distribuidos
 Servidores multihilo
 Sincronización mediante semáforos u otros mecanismos
+ 14

7.- Transparencia

 Ocultación al usuario y al programador de aplicaciones


de los componentes de un sistema distribuido
 El sistema se percibe como un todo, en vez de como una
colección de componentes independientes

¿Crees que se puede conseguir una transparencia


perfecta? Es decir ¿crees que puede ejecutarse un
método remoto como si fuera local? Razona tu respuesta
+ 15

Transparencia
Tipos

 De acceso
 Se accede mediante igual mecanismo a recursos locales y remotos

 De ubicación
 Se accede a los recursos sin necesidad de conocer su localización

 De concurrencia
 Varios procesos operan concurrentemente sin interferencia mutua

 De replicació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?
+ 16

Transparencia
Tipos (ii)

 Frente a fallos
 Ocultación de fallos dejando que el usuario o programa de
aplicación complete sus tareas a pesar de fallos HW o SW

 Movilidad
 Reubicación de recursos y clientes en un sistema sin afectar la
operación de los usuarios y programas

 Prestaciones
 Reconfiguración del sistema para mejorar las prestaciones según
varíe la carga de uso

 Escalado
 Expansión en tamaño del sistema o aplicaciones sin cambiar la
estructura subyacente o los algoritmos de aplicación
+ 17

Desafíos
Contexto

 Todos los desafíos son importantes

 Dependiendo del contexto unos van a tener más


relevancia que otros
 Transacciones comerciales → seguridad, fallos, concurrencia
 Google, P2P, DNS → escalabilidad, fallos

 Cuando estemos estudiando un problema, a menudo:


 Nos centraremos en un desafío
 Dando por ‘solventados’ algunos desafíos
 Analizando cómo repercute la solución en algunos otros
desafíos
18
+ 19

Resumen

 En un sistema distribuido (SD) los  En un SD varios procesos pueden


componentes están unidos acceder a los mismos recursos a la
mediante una red y se comunican vez. Esta concurrencia debe ser
mediante paso de mensajes. identificada y tratada
 En un SD pueden convivir muchas adecuadamente.
plataformas, una heterogeneidad  La seguridad y la extensibilidad
que trata de resolverse mediante son otros desafíos importantes,
middleware. pero no nos centraremos en ellos
 En algunos casos es importante  Un tratamiento correcto de estos
diseñar SDs que sean escalables, desafíos lleva a un sistema.
es decir, toleren un incremento en transparente en el que el usuario
el número de recursos o usuarios. final no percibe estos aspectos.
Especialmente importante si la  Es importante definir el contexto
escala es Internet. en el que nos encontramos para
 En un SD puede haber fallos a identificar los desafíos clave, o los
muchos niveles que en la medida que vamos a necesitar enfrentar en
de lo posible deben ser ocultados o nuestro modelo de SD.
tolerados.
+ 20

Referencias

 G. Colouris, J. Dollimore, T. Kindberg and G. Blair.


Distributed Systems: Concepts and Design (5th Ed).
Addison-Wesley, 2011
 Capítulo 1
 Internet World Stats
 http://www.internetworldstats.com
 Internet Systems Consortium
 http://www.isc.org
21

Opte Project
http://www.opte.org/the-internet

También podría gustarte