Sei sulla pagina 1di 10

Sistemas Distribuidos Sistemas Distribuidos

Objetivo
„ Estudiar los principios fundamentales de la
tecnología de sistemas distribuidos
Sistemas Distribuidos „ Manejar conceptos teóricos fundamentales sobre
computación distribuida y sobre diseño de
algoritmos distribuidos básicos.
Prof. Dr. Raúl Monge „ Manejar los conceptos básicos de comunicación y
sincronización en la programación distribuida de
Departamento de Informática aplicaciones.
UTFSM „ Comprender y aplicar los conceptos
Valparaíso, Agosto del 2006 anteriores en el diseño de sistemas y
servicios informáticos distribuidos.

© Raúl Monge, 2006 Sistemas Distribuidos 1 © Raúl Monge, 2006 2

Sistemas Distribuidos Sistemas Distribuidos

Contenido Metodología
„ Introducción al Curso „ Presentación y discusión en la cátedra
„ Programación Distribuida y Comunicación de la materia y trabajos relacionados.
„ Fundamentos Teóricos de Computación
Distribuida (Tiempo, causalidad y consistencia) „ Tareas de aplicación de la materia
„ Algoritmos Básico de Control Distribuido „ Investigación de un tema específico y
„ Tolerancia a Fallas desarrollo de una monografía
„ Datos y Transacciones Distribuidas, y Replicación
„ Nombramiento, directorios y seguridad
„ Plataformas de distribución, servicios distribuidos
y tendencias

© Raúl Monge, 2006 3 © Raúl Monge, 2006 4

Sistemas Distribuidos Sistemas Distribuidos

Evaluación Bibliografía
• A. Tanenbaum, & M. van Steen, “Distributed
„ Certámenes (60%) Systems: Principles and Paradigms”, Prentice
• Certamen Nº1 Mie 27 de Septiembre Hall, 2002.
• Certamen Nº2 Mie 22 de Noviembre • G. Coulouris, J. Dollimore, & T. Kindberg,
“Distributed Systems: Concepts and Design”,
• Recuperativo Mie 29 de Noviembre Addison-Wesley, 3rd. Edition, 2001.
„ Tareas (40%) • S. Mullender, “Distributed Systems”, 2nd.
Edition, Prentice-Hall, (1994).
• Tarea Nº1 Mie 15 de Septiembre • M. Singhla & N.G. Shivaratri, “Advanced
• Tarea Nº2 Mie 27 de Octubre Concepts in Operating Systems”, McGraw-Hill,
(1994).
• Monografía Mie 29 de Noviembre
© Raúl Monge, 2006 5 © Raúl Monge, 2006 6

1
Sistemas Distribuidos Sistemas Distribuidos

Contactos Capítulo I:
„ Apuntes y otra información Introducción a los
http://dotlrn.inf.utfsm.cl/ Sistemas Distribuidos
(curso de “sistemas distribuidos”)
„ Consultas:
Lunes 14:00 – 15:30 horas
Oficina Director Departamento de
Informática

© Raúl Monge, 2006 7 © Raúl Monge, 2006 Sistemas Distribuidos 8

Sistemas Distribuidos Sistemas Distribuidos

Aplicaciones
„ Servicios computacionales en red
„ Sistema de información distribuida
1.1 Motivación „ Automatización industrial
„ Internet y WWW
„ Redes corporativas (Extranet e Intranet)
Comercio electrónico
Nuevas tecnologías, beneficios y
„

„ Trabajo colaborativo y a distancia


aplicaciones „ Educación a distancia
„ Diagnósticos médicos a distancia
„ etc.

© Raúl Monge, 2006 Sistemas Distribuidos 9 © Raúl Monge, 2006 10

Sistemas Distribuidos Sistemas Distribuidos

¿Porqué su Desarrollo? Objetivos Generales


• Desarrollo tecnológico Principales:
) Microelectrónica • Mejor desempeño
) Redes de comunicación de alta velocidad • Compartición de recursos e información
) Ingeniería de software • Mayor fiabilidad y disponibilidad
) disminución de costos • Escalabilidad y crecimiento incremental
• Necesidades de los usuarios Además, .....
) Aplicaciones más sofisticadas • Mejorar la comunicación
) Administrativas y económicas • Mayor adaptabilidad (más natural, distribución de
carga, etc.)

© Raúl Monge, 2006 11 © Raúl Monge, 2006 12

2
Sistemas Distribuidos Sistemas Distribuidos

Una definición de SD

1.2 Conceptos Básicos de „ “Sistema en el cual múltiples


Sistemas Distribuidos procesadores autónomos, posiblemente
de diferente tipo, están interconectados
por una subred de comunicación para
interactuar de una manera cooperativa
en el logro de un objetivo global.”
[Lelann 1981]

© Raúl Monge, 2006 Sistemas Distribuidos 13 © Raúl Monge, 2006 14

Sistemas Distribuidos Sistemas Distribuidos

Otra definición de un SD Grados de Distribución (Enslow, 78)


„ “Sistema en el cual componentes de Hardware y Procesamiento
hardware y software, localizadas en
„

„ Datos o Estado Hardware


computadores en red, se comunican y „ Control
coordinan sus acciones sólo por paso de Propósitos

mensajes” generales,
heterogéneo
[Coulouris 2002] Propósitos especiales,
homogéneo

„ “Conjunto de computadores independientes


que se muestran al usuario como un sistema Datos distribuidos,
Maestro/ Autónomos,
Control

único coherente”
directorio central
Esclavo Cooperativos

[Tanenbaum 2001]
Datos totalmente
replicados
Datos locales y
directorio local

© Raúl Monge, 2006 15 © Raúl Monge, 2006


Datos 16

Sistemas Distribuidos Sistemas Distribuidos

Síntomas de un SD (Schroeder, 92) Ejemplos de Posibles SD

Propiedades básicas: U „ Sistema de Multiprocesamiento con


Múltiples procesadores (con memoria local)

memoria compartida
• Interconexión (red de comunicación)
• Estado compartido (para coordinación global) D „ Red de Comunicaciones (e.g. Internet)
Además, ... D „ Un cluster de computadores
• Fallas independientes
• Comunicación no fiable
• Comunicación insegura
• Comunicación costosa
© Raúl Monge, 2006 17 © Raúl Monge, 2006 18

3
Sistemas Distribuidos Sistemas Distribuidos

Conceptos de Hardware Conceptos de Software


„ Sistema de multiprocesamiento con „ Sistema Operativo de Red
memoria compartida „ Sistema Operativo Distribuido
„ Sistema multicomputador homogéneo „ SO de Multiprocesamiento
„ Sistema Multicomputador heterogéneo „ SO de Multicomputador
„ Sistemas de Memoria Compartida
Distribuida
„ Middleware

© Raúl Monge, 2006 19 © Raúl Monge, 2006 20

Sistemas Distribuidos Sistemas Distribuidos

Sistemas Operativos de Red Sistemas Operativos Distribuidos


Máquina A Máquina B Máquina C Máquina A Máquina B Máquina C

Aplicaciones Distribuidas Aplicaciones Distribuidas

Servicios Servicios Servicios


Sistema Operativo Distribuido
NOS NOS NOS

Kernel Kernel Kernel Kernel Kernel Kernel

© Raúl Monge, 2006 21 © Raúl Monge, 2006 22

Sistemas Distribuidos Sistemas Distribuidos

Sistemas Operativos de Red vs.


Middleware Sistemas Operativos Distribuidos

Máquina A Máquina B Máquina C • “Un Sistema Distribuido debe proveer


Aplicaciones Distribuidas
transparencia respecto la distribución”
[Tanenbaum85]
Servicios de Middleware

Servicios Servicios Servicios Sistema operativo Sistema operativo


NOS NOS NOS de red distribuido
Cada computador tiene su S.O. ..una parte de un S.O. global
Kernel Kernel Kernel Cada usuario en un computador, Transparencia de acceso
acceso remoto a recursos
No hay tolerancia a fallas Existe

© Raúl Monge, 2006 23 © Raúl Monge, 2006 24

4
Sistemas Distribuidos Sistemas Distribuidos

Hebras en
Sistemas no Distribuidos Multihebras en SD
„ Evitar bloqueos cuando existen „ Clientes Multihebras
múltiples actividades concurrentes „ Permitir manejar la comunicación remota
mientras se desarrollan otras actividades
„ Aprovechar el multiprocesamiento para (sin bloquear)
lograr mayor desempeño „ Crear múltiples conexiones
„ Reducir el costo de comunicación en „ Servidores Multihebra
aplicaciones cooperativas „ Simplifica el desarrollo de software que
„ Evitar cambios de contexto en el kernel explotan el paralelismo
„ Usar memoria compartida „ Cada petición de cliente se puede procesar
con una hebra independiente
© Raúl Monge, 2006 25 © Raúl Monge, 2006 26

Sistemas Distribuidos Sistemas Distribuidos

Características Principales de los


Sistemas Distribuidos Dificultades en su Realización
„ Varios procesadores autónomos,
normalmente heterogéneos „ Mayor complejidad
„ Una subred de comunicación „ Ausencia de un estado global conocido
compartida que permite paso de „ No existe un patrón de tiempo perfecto
mensajes entre componentes de Hw y „ Fallas parciales y fiabilidad
Sw „ Estructura dinámica del sistema
„ Un estado compartido distribuido o „ Heterogeneidad
replicado entre los participantes „ Seguridad
„ Concurrencia y paralelismo „ Gestión
© Raúl Monge, 2006 27 © Raúl Monge, 2006 28

Sistemas Distribuidos Sistemas Distribuidos

Estrategias de Distribución
¿Qué se puede distribuir?
1.3 Diseño de Sistemas „

Estado
Distribuidos
„

„ Función
„ Control
„ Sistema Distribuido Ideal
„ Componentes tienen mismo valor y derecho
„ Componentes son autónomas
„ Cooperación sustituye control central

© Raúl Monge, 2006 Sistemas Distribuidos 29 © Raúl Monge, 2006 30

5
Sistemas Distribuidos Sistemas Distribuidos

Transparencia en SD
Metas [Sinha97]
„ Conectividad (usuarios y recursos)
„ Acceso (mismo método para acceso local o remoto)
„ Desempeño (tiempo de respuesta, productividad)
„ Ubicación (e.g. Nombre y movilidad de objetos)
„ Robustez (disponibilidad y consistencia)
„ Replicación (mayor disponibilidad)
„ Seguridad (autenticación, privacidad y control de
„ Fallos (recuperación automática de errores)
acceso)
„ Migración (mejor desempeño y fiabilidad)
„ Transparencia (ubicación, acceso, fallas, partición,
replicación, migración, etc.) „ Concurrencia (varios usuarios y recursos
compartidos)
„ Escalabilidad (tamaño, distancia y gestión)
„ Desempeño (e.g. reconfiguración dinámica)
„ Apertura (Openess) (interfaces, interoperabilidad y
portabilidad) „ Escalamiento (sin interrumpir los servicios)
„ Persistencia (si está en memoria o en disco)

© Raúl Monge, 2006 31 © Raúl Monge, 2006 32

Sistemas Distribuidos Sistemas Distribuidos

Técnicas de Escalamiento Problemas de Escalamiento


„ Distribución: Particionar datos y funciones „ Mantener múltiples copias de datos
entre nodos produce inconsistencias ante
„ Ejemplo: Applets, DNS y WWW modificaciones
„ Replicación: Hacer varias copias de datos y
funciones
„ Mantener consistencia requiere de
„ Ejemplo: DFS, BDD, Mirrors
coordinación global
„ Caching: Permitir acceso a copias locales „ Tolerar inconsistencias permite reducir
„ Ejemplo: Páginas web y archivos costo de coordinación

© Raúl Monge, 2006 33 © Raúl Monge, 2006 34

Sistemas Distribuidos Sistemas Distribuidos

Técnicas de Diseño en SD Propiedades Deseables


„ Identificación y localización de „ Nombres globales (facilita compartición)
componentes „ Acceso global (funciona en todas partes)
„ Tolerancia a fallos y recuperación de „ Seguridad global (autenticación, privacidad,
errores control de acceso y auditoría)
„ Balance de carga „ Gestión global (componentes administrables)
„ Persistencia de datos „ Disponibilidad global (tolerancia a fallas y
„ Replicación y relajar consistencia degradación suave)
„ Criptografía para privacidad y
autenticación
© Raúl Monge, 2006 35 © Raúl Monge, 2006 36

6
Sistemas Distribuidos Sistemas Distribuidos

Estilos de Arquitecturas de
Software Distribuido
1.4 Modelos, Arquitecturas y „ Flujos de Datos (Tuberías y filtros)
Servicios en Sistemas „ Abstracción de Datos
Distribuidos (Cliente/Servidor, Orientación a
Objetos)
„ Capas (Sistemas Operativos, Redes)
„ Repositorios (Memoria Compartida,
Archivos, BD, etc.)

…adaptado de [Garlan & Shaw 96]


© Raúl Monge, 2006 Sistemas Distribuidos 37 © Raúl Monge, 2006 38

Sistemas Distribuidos Sistemas Distribuidos

Estilos de Interacción Directa Estilos de Interacción Indirecta


Cliente Servidor

Petición
Procesamiento

Respuesta

a) Cliente - Servidor

c) Repositorio de
write / read / Datos
send receive
d) Servicios de
Mensajería
b) Data streaming
© Raúl Monge, 2006 39 © Raúl Monge, 2006 40

Sistemas Distribuidos Sistemas Distribuidos

Modelos de
Arquitecturas de Sistemas Servicios Distribuidos Comunes
„ Cliente/Servidor Cliente Servidor „ Procesamiento distribuido
„ Estructura simple y muy
popular „ Comunicación entre procesos e
„ Cliente controla los
recursos compartidos
invocaciones remotas
„ Peer-to-Peer (P2P) „ Identificación y Seguridad
Procesos tienen roles
„
similares „ Localización y búsqueda
„ Interacciones
cooperativas
„ Almacenamiento de información
„ Logra mejores tiempos „ Sincronización de relojes
de respuesta
„ Administración y monitoreo

© Raúl Monge, 2006 41 © Raúl Monge, 2006 42

7
Sistemas Distribuidos Sistemas Distribuidos

Arquitectura de
Múltiples Servidores Principio Proxy [Shapiro 85]
„ Características:
Proxy permite:
„ Un servicio lo implementan varios servidores Servidor 1
„ Caching
„ Permite distribuir carga Cliente 1
„ Autenticación
„ Estrategias: Servidor 2
„ Control de acceso
„ Partición (requiere función de distribución) „ Validación local de
„ Replicación (requiere coordinación si existen datos datos
replicados) Servicio Distribuido
Proxies Servidor 3 „ Funcionalidades
„ Ejemplos: locales
„ La Web particiona los datos (páginas) Servidor 4 „ etc.

„ Replicación para alto desempeño y disponibilidad Cliente 2

„ Sun NIS con replicación de archivo de passwords

© Raúl Monge, 2006 43 © Raúl Monge, 2006 44

Sistemas Distribuidos Sistemas Distribuidos

Arquitecturas de Múltiples Niveles


Variaciones al Modelo C/S (Multi-layered)

„ Código y Agentes Móviles Aplicación


„ Código migra de una máquina a otra
„ Ejemplo: Applets y agentes móviles
Extensiones

MIDDLEWARE
„ Clientes Delgados
„ Estación con recursos mínimos
„ Ejemplos: Network Computers, Estaciones X Tiempo Nombre Seguridad

„ Servidores Proxies
Cooperación
„ Permite reducir tráfico y mejorar tiempos de respuesta
„ Ejemplos: Web caching y file caching
„ Dispositivos Términales Móviles Sistema Operativo + Comunicación
„ Conexión temporal y posiblemente con bajo BW
„ Ejemplos: Laptop, PDA y celulares
© Raúl Monge, 2006 45 © Raúl Monge, 2006 46

Sistemas Distribuidos Sistemas Distribuidos

Ejemplo: Arquitectura OMA de OMG Ejemplo: Tecnología J2EE

Objetos y Facilidades Facilidades


Aplicaciones Verticales Horizontales

Object Request Broker

OMG: Object Management Group


OMA: Object management Architecture
CORBA: Common Object Request Servicios comunes
Broker Architecture
(CORBAservices)
© Raúl Monge, 2006 47 © Raúl Monge, 2006 48

8
Sistemas Distribuidos Sistemas Distribuidos

Arquitecturas de
E) Estilo Híbrido Sistemas de Información

Aplicación Cliente Servidor


(Aplicación) (Aplicación)

Middleware
Servidor Usuario
Datos
(Sistema)

Lógica de Lógica de Lógica de Acceso


Presentación Negocios a los Datos

© Raúl Monge, 2006 49 © Raúl Monge, 2006 50

Sistemas Distribuidos Sistemas Distribuidos

Arquitecturas de
Múltiples Capas (Multi-tiered) Distribución de Aplicaciones C/S
C
Distribuyen un Sistemas de Información
PRESENTACIÓN PRESENTACIÓN PRESENTACIÓN PRESENTACIÓN PRESENTACIÓN

„ L
particionando su lógica en 2 o más capas PROCESO PROCESO PROCESO I
E
„ Existen varios niveles de acceso al sistema ACCESO A N
S
DATOS

„ Corresponde a una distribución horizontal T


E E
Ejemplo: R
PRESENTACIÓN

„
V
R ED
„ Aplicaciones C/S tradicionales son 2-tier I PROCESO PROCESO PROCESO

D
„ Aplicaciones Web simples tienden a ser 3-tier
O ACCESO A
DATOS
ACCESO A
DATOS
ACCESO A
DATOS
ACCESO A
DATOS
ACCESO A
DATOS

R PRESENTACIÓN PRESENTACIÓN FUNCIÓN ACCESO REMOTO DATOS


DISTRIBUIDA REMOTA DISTRIBUIDA A DATOS DISTRIBUIDOS

© Raúl Monge, 2006 51 © Raúl Monge, 2006 52

Sistemas Distribuidos Sistemas Distribuidos

Ejemplo:
Ejemplo: Servicio en Web Modelo Multicapa de J2EE

Browser Servidor Web Servidor Datos Firewall


Contenedor
Usuario cliente EJB
EJB
EJB Sistemas de
cliente EJB Información
Empresarial
cliente (RDBMS,
Contenedor Aplicaciones
Presentación Negocios Datos Web heredadas)
cliente (Servlets, JSP,
HTML y XML)
JNDI,
JMS,
JavaMail
Capa Cliente Capa Media Capa SIE
© Raúl Monge, 2006 53 © Raúl Monge, 2006 54

9
Sistemas Distribuidos Sistemas Distribuidos

SOA: Arquitectura Orientada a Servicios Ejemplo: Web Services

Service Web Services


Servicios
Provider Servidor Web
Web
Interacción: SOAP Browser
Datos: XML SOAP
UD lish

Bi

HTTP SOAP
b
DI

HTTP
SO

Transporte: RMI
nd
Pu

AP

Servidor
de Aplicación

Service Find Service


Broker User
UDDI/WSDL Servidor
de Datos
© Raúl Monge, 2006 55 © Raúl Monge, 2006 56

Sistemas Distribuidos Sistemas Distribuidos

Tendencias Referencias para el Capítulo


“Distributed Systems”, edited by Sape Mullender, Second
„ Web Services y XML „
Edition, Addison-Wesley ,1993.
P.H. Enslow, “What is a Distributed Data Processing System?”,
Grid Computing
„
„ IEEE Computer, January 1978, pp. 13-21.
„ G. Coulouris, J. Dollimore, & T. Kindberg, “Distributed Systems:
„ Peer to Peer Computing Concepts and Design”, Addison-Wesley, 3rd. Edition, 2001.
„ A. Tanenbaum, & M. van Steen, “Distributed Systems: Principles
„ Mobile Computing and Paradigms”, Prentice Hall, 2002.
„ B. Neuman. "Scale in Distributed Systems". In T. Casavant and
„ Pervasive Computing M. Singhal, (eds.), Readings in Distributed Computing Systems,
pp. 463--489. IEEE Computer Society Press, Los Alamitos, CA.,
1994.
„ Friedemann Mattern, Peter Sturm, “From Distributed Systems to
Ubiquitous Computing – The State of the Art, Trends, and
Prospects of Future Networked Systems.”, In: Klaus Irmscher,
Klaus-Peter Fähnrich (Eds.): Proc. KIVS 2003, pp. 3-25,
Springer-Verlag, February 2003
© Raúl Monge, 2006 57 © Raúl Monge, 2006 58

Sistemas Distribuidos

Sinopsis del Curso


„ Paradigmas de programación distribuida
„ Teoría para comprender el comportamiento
de los sistemas distribuidos
„ Algoritmos distribuidos básicos
„ Tolerancia a fallas
„ Datos y memoria distribuida, transacciones y
replicación de datos
„ Servicios distribuidos fundamentales
„ Middleware

© Raúl Monge, 2006 59

10

Potrebbero piacerti anche