09 Sistemas Distribuidos - eafranco.com

26
09 Sistemas Distribuidos Estructuras de datos (Prof. Edgardo A. Franco) 1 Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco [email protected]

Transcript of 09 Sistemas Distribuidos - eafranco.com

Page 1: 09 Sistemas Distribuidos - eafranco.com

09 Sistemas Distribuidos

Estructuras de datos (Prof. Edgardo A. Franco)

1

Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco [email protected]

Page 2: 09 Sistemas Distribuidos - eafranco.com

Contenido

• Definición de un sistema distribuido

• Características

• Objetivos de los sistemas distribuidos

• Ejemplos de sistemas distribuidos

• Tipos de sistemas distribuidos

• Implicaciones de los sistemas distribuidos

• Desafíos de los sistemas distribuidos

2

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Co

nte

nid

o

Page 3: 09 Sistemas Distribuidos - eafranco.com

Definición de un sistema distribuido • "Un sistema distribuido es una colección de

computadoras independientes que dan al usuario la impresión de constituir un único sistema coherente".

• Por lo tanto sus componentes se localizan en computadoras conectadas en una red con el fin de comunicarse y coordinar sus acciones únicamente mediante el paso de mensajes.

3

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Intr

od

ucc

ión

Page 4: 09 Sistemas Distribuidos - eafranco.com

Características de los sistemas distribuidos • La computación usa múltiples recursos que

están situados físicamente dispersos.

• En un sistema distribuido se ejecutan múltiples aplicaciones a la vez. Las aplicaciones pueden pertenecer a diferentes usuarios.

• Un sistema distribuido es a menudo heterogéneo.

4

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Car

acte

ríst

icas

de

los

sist

emas

dis

trib

uid

os

Page 5: 09 Sistemas Distribuidos - eafranco.com

Características de los sistemas distribuidos • Un sistema distribuido no tiene una memoria

compartida, al menos a nivel de hardware.

• Las características y las formas de comunicarse de las computadoras quedan ocultas para el usuario.

• Los usuario y las aplicaciones pueden interactuar con el sistema distribuido de manera consistente y uniforme sin importar donde y cuando se tenga lugar. 5

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Car

acte

ríst

icas

de

los

sist

emas

dis

trib

uid

os

Page 6: 09 Sistemas Distribuidos - eafranco.com

Características de los sistemas distribuidos • Con el objeto de dar soporte a computadoras

y redes heterogéneas mientras se ofrece la vista de un sistema único, los sistemas distribuidos se organizan a menudo en términos de una capa de software.

• i.e. están colocados de manera lógica entre una capa de alto nivel que consta de usuarios y aplicaciones y una capa subyacente constituida por los sistemas operativos y recursos básicos de comunicación.

6

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Car

acte

ríst

icas

de

los

sist

emas

dis

trib

uid

os

Page 7: 09 Sistemas Distribuidos - eafranco.com

Características de los sistemas distribuidos • Un sistema distribuido comúnmente se apoya

de una capa de middleware que se extiende sobre diversas máquinas, y ofrece a cada aplicación la misma interfaz.

7

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Car

acte

ríst

icas

de

los

sist

emas

dis

trib

uid

os

Aplicación A

SO local 1

Computadora 1

SO local 2

Computadora 2

SO local 3

Computadora 3

Aplicación C

SO local 4

Computadora 4

Capa del sistema distribuido (middleware)

Aplicación C

Red

Page 8: 09 Sistemas Distribuidos - eafranco.com

Objetivos de los sistemas distribuidos • Un sistema distribuido debe hacer que los

recursos sean fácilmente accesibles; debe de ocultar de manera razonable el hecho de que los recursos están distribuidos por toda la red; debe de ser abierto; y debe de ser escalable.

8

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ob

jeti

vos

de

los

sist

emas

dis

trib

uid

os

Page 9: 09 Sistemas Distribuidos - eafranco.com

Objetivos de los sistemas distribuidos • Hacer accesibles los recursos

• El principal objetivo de un sistema distribuido es facilitar a los usuarios (y a las aplicaciones) el acceso a los recursos remotos (físicos, bases de datos, archivos, redes, etc.), y compartirlos de manera controlada y eficiente.

• Groupware (Sistemas de edición y trabajo colaborativo) 9

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ob

jeti

vos

de

los

sist

emas

dis

trib

uid

os

Page 10: 09 Sistemas Distribuidos - eafranco.com

Objetivos de los sistemas distribuidos • Transparencia en la distribución

• Se deberá de ser capaz de presentarse ante los usuarios y las aplicaciones como si se tratará de una sola computadora.

• Aunque la transparencia de distribución generalmente es considerada preferible para cualquier sistema distribuido, no siempre es posible ocultar por completo los aspectos de distribución a los usuarios, además de no ser la mejor idea. 10

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ob

jeti

vos

de

los

sist

emas

dis

trib

uid

os

Page 11: 09 Sistemas Distribuidos - eafranco.com

Objetivos de los sistemas distribuidos • Transparencia en la distribución

11

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ob

jeti

vos

de

los

sist

emas

dis

trib

uid

os

Transparencia Descripción

Acceso Oculta diferencias en la representación de los datos y la forma en que un recurso accede a los datos.

Ubicación Oculta la localización de un recurso.

Migración Oculta el que un recurso pudiera moverse a otra ubicación.

Reubicación Oculta el que un recurso pudiera moverse a otra ubicación mientras está en uso.

Replicación Oculta el número de copias de un recurso.

Concurrencia Oculta que un recurso puede ser compartido por varios usuarios que compiten por el.

Falla Oculta la falla y recuperación de un recurso.

Page 12: 09 Sistemas Distribuidos - eafranco.com

Objetivos de los sistemas distribuidos • Grado de apertura • Un sistema distribuido abierto es un sistema que

ofrece servicios de acuerdo con las reglas estándar que describen la sintaxis y la semántica de dichos servicios. • Interoperabilidad: Define la extensión mediante la

cual dos implementaciones de sistemas o componentes de fabricantes distintos pueden coexistir y trabajar juntos.

• Portabilidad: Define la extensión mediante la cual una aplicación desarrollada para un sistema distribuido A se pueda ejecutar en un sistema distribuido B. 12

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ob

jeti

vos

de

los

sist

emas

dis

trib

uid

os

Page 13: 09 Sistemas Distribuidos - eafranco.com

Objetivos de los sistemas distribuidos • Escalabilidad

• Un sistema distribuido puede ser escalable con respecto a su tamaño, i.e. agregar fácilmente usuarios y recursos.

• Existe la escalabilidad geográfica, según los alcances geográficos de la conexión al sistema.

• El hablar de escalabilidad implica resolver una gran cantidad de problemas de diversos tipos. 13

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ob

jeti

vos

de

los

sist

emas

dis

trib

uid

os

Page 14: 09 Sistemas Distribuidos - eafranco.com

Objetivos de los sistemas distribuidos • Escalabilidad

• Limitaciones en la escalabilidad

14

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ob

jeti

vos

de

los

sist

emas

dis

trib

uid

os

Concepto Ejemplo

Servicios centralizados

Un solo servidor para todos los usuarios.

Datos centralizados

Un solo directorio telefónico en línea.

Algoritmos centralizados

Hacer un ruteo basado en información completa.

Page 15: 09 Sistemas Distribuidos - eafranco.com

Ejemplos de sistemas distribuidos • Internet

• Una intranet, que es porción de Internet gestionada por una organización

• La computación móvil y ubicua

15

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ejem

plo

s d

e si

stem

as d

istr

ibu

ido

s

Page 16: 09 Sistemas Distribuidos - eafranco.com

Ejemplos de sistemas distribuidos • Internet

• Internet es una red mundial de computadoras.

• Lo que nos lleva a que Internet engloba una vasta colección de computadoras de diferentes tipos con programas ejecutándose en ellas interactuando a través de paso de mensajes bajo diversos medios físicos de comunicación.

16

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ejem

plo

s d

e si

stem

as d

istr

ibu

ido

s

Page 17: 09 Sistemas Distribuidos - eafranco.com

Ejemplos de sistemas distribuidos • Intranets

• Una intranet es una porción de Internet que es, administrada separadamente y que tiene un limite que puede ser configurado para hacer cumplir políticas de seguridad local.

• Servicios de archivos

• Servicios de bases de datos

• Servicios de comunicación y multimedia

17

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ejem

plo

s d

e si

stem

as d

istr

ibu

ido

s

Page 18: 09 Sistemas Distribuidos - eafranco.com

Ejemplos de sistemas distribuidos • Computación móvil y ubicua

• El termino ubicuo está pensado en sugerir que los pequeños dispositivos llegarán a estar tan extendidos en los objetos de cada día que apenas nos daremos cuenta de ellos.

"Computación en todo momento y en todo lugar"

18

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Ejem

plo

s d

e si

stem

as d

istr

ibu

ido

s

Page 19: 09 Sistemas Distribuidos - eafranco.com

Implicaciones de los sistemas distribuidos • Concurrencia: en la red existirán programas

concurrentes, los cuales requieren coordinarse y compartir recursos.

• Inexistencia de reloj global: La coordinación estrecha depende a menudo de una idea compartida del instante en el que ocurren las acciones de los programas. Aunque hay limites de precisión para sincronizar relojes, no hay una única noción global del tiempo correcto.

• Fallos independientes: Es necesario planificar las consecuencias de posibles fallos. Un posible fallo en la red aislará a una computadora, pero los programas que se ejecutan no deberán de detener su ejecución.

19

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Imp

licac

ion

es d

e lo

s s

iste

mas

dis

trib

uid

os

Page 20: 09 Sistemas Distribuidos - eafranco.com

Desafíos de los sistemas distribuidos • Aunque en la actualidad se encuentran sistemas

distribuidos por todas partes, su diseño es aún bastante simple y quedan todavía grandes posibilidades de desarrollar servicios y aplicaciones más ambiciosas. Para ello es necesario enfrentarse a los siguientes desafíos: • Heterogeneidad

• Extensibilidad

• Seguridad

• Escalabilidad

• Tratamiento de fallos

• Concurrencia

• Transparencia

20

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Des

afío

s d

e lo

s si

stem

as d

istr

ibu

ido

s

Page 21: 09 Sistemas Distribuidos - eafranco.com

Desafíos de los sistemas distribuidos • Heterogeneidad: En los diferentes elementos redes,

hardware, sistemas operativos, lenguajes de programación, implementaciones de distintos desarrolladores.

• El middleware provee una abstracción de programación, así como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programación.

• La mayoría de los midleware se implementas obre protocolos de Internet, enmascarando la diversidad de redes existente.

• E.g. Java RMI y CORBA soportan un lenguaje de programación y transparentan el proceso del paso de mensajes y la distribución de los objetos.

21

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Des

afío

s d

e lo

s si

stem

as d

istr

ibu

ido

s

Page 22: 09 Sistemas Distribuidos - eafranco.com

Desafíos de los sistemas distribuidos • Heterogeneidad y código móvil: En un

sistema distribuido cabe la posibilidad de enviar código de una computadora a otra que será la el que finalmente lo ejecutará.

• Es muy común depender de una máquina virtual.

22

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Des

afío

s d

e lo

s si

stem

as d

istr

ibu

ido

s

Page 23: 09 Sistemas Distribuidos - eafranco.com

Desafíos de los sistemas distribuidos • Extensibilidad: Los sistemas distribuidos

deberían de ser extensibles, el primer paso es la publicación de las interfaces de sus componentes, aunque es un verdadero reto la integración de componentes escritos por distintos desarrolladores.

• Seguridad: Se puede emplear encriptación para proporcionar una protección adecuada a los recursos compartidos y mantener secreta la información sensible cuando se transmite un mensaje a través de la red. Los ataques de denegación de servicio son un problema.

23

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Des

afío

s d

e lo

s si

stem

as d

istr

ibu

ido

s

Page 24: 09 Sistemas Distribuidos - eafranco.com

Desafíos de los sistemas distribuidos • Escalabilidad: Un sistema distribuido es

escalable si el coste de añadir un usuario es una cantidad constante en términos de recursos que se deberán añadir. Los algoritmos empleados para acceder a los datos compartidos deberían evitar cuellos de botella y los datos deberían estar estructurados jerárquicamente para dar los mejores tiempos de acceso. Los datos frecuentemente accedidos pudieran estar replicados. 24

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Des

afío

s d

e lo

s si

stem

as d

istr

ibu

ido

s

Page 25: 09 Sistemas Distribuidos - eafranco.com

Desafíos de los sistemas distribuidos • Tratamiento de fallos: Cualquier proceso,

computadora o red puede fallar independientemente de los otros. En consecuencia cada componente necesita estar al tanto de las formas posibles en que pueden fallar los componentes de los que depende y estar diseñado para tratar apropiadamente con cada uno de estos fallos.

25

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Des

afío

s d

e lo

s si

stem

as d

istr

ibu

ido

s

Page 26: 09 Sistemas Distribuidos - eafranco.com

Desafíos de los sistemas distribuidos • Concurrencia: La presencia de múltiples usuarios en

un sistema distribuido es un fuente de peticiones concurrentes a sus recursos. Cada recurso debe estar diseñado para ser seguro en un entorno concurrente.

• Transparencia: Ciertos aspectos de la distribución deben ser invisibles al programador de aplicaciones de modo que solo se necesite ocuparse del diseño de su aplicación en particular. E.g. no debería de ocuparse de su ubicación o los detalles de como accede a sus operaciones por otros componentes, o si será replicado o migrado. Incluso los fallos de las redes y los procesos deberán presentarse en forma de excepciones que puedan ser tratadas.

26

Sist

emas

op

erat

ivo

s II

0

9 S

iste

mas

dis

trib

uid

os

Des

afío

s d

e lo

s si

stem

as d

istr

ibu

ido

s