Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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
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
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
2
Sistemas Distribuidos Sistemas Distribuidos
Una definición de SD
mensajes” generales,
heterogéneo
[Coulouris 2002] Propósitos especiales,
homogéneo
único coherente”
directorio central
Esclavo Cooperativos
[Tanenbaum 2001]
Datos totalmente
replicados
Datos locales y
directorio local
3
Sistemas Distribuidos Sistemas Distribuidos
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
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
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)
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.)
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
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
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.
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
8
Sistemas Distribuidos Sistemas Distribuidos
Arquitecturas de
E) Estilo Híbrido Sistemas de Información
Middleware
Servidor Usuario
Datos
(Sistema)
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
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
Ejemplo:
Ejemplo: Servicio en Web Modelo Multicapa de J2EE
9
Sistemas Distribuidos Sistemas Distribuidos
Bi
HTTP SOAP
b
DI
HTTP
SO
Transporte: RMI
nd
Pu
AP
Servidor
de Aplicación
Sistemas Distribuidos
10