Anda di halaman 1dari 29

1

Universidad Tcnica Federico Santa Mara


Departamento de Informtica
Sistemas Distribuidos y Middleware 2005
CURSO:
Sistemas Distribuidos y
Middleware
Prof. Dr.-Ing. Ral Monge
Departamento de Informtica
UTFSM
Agosto del 2005
Sistemas Distribuidos y Middleware (R. Monge) 2005
Objetivos del curso
Conocer los problemas bsicos de los
sistemas distribuidos y las tcnicas utilizadas
en su diseo.
Comprender la filosofa de diseo, la
estructura y los servicios ms comunes de
middleware.
Conocer las plataformas de middleware ms
populares en el mercado
2
Sistemas Distribuidos y Middleware (R. Monge) 2005
Contenido
Introduccin, Conceptos bsicos,
Arquitecturas y Sistemas Distribuidos,
y Middleware
Desarrollo de Sistemas, Comunicacin
y Programacin Distribuida, Algoritmos
Distribuidos
Transacciones Distribuidas y
Replicacin
Servicios de middleware y tendencias
Sistemas Distribuidos y Middleware (R. Monge) 2005
Metodologa
Presentacin y discusin en clases de la
materia y trabajos relacionados
Anlisis en grupo de problemas
Trabajo de aplicacin de la materia
Lecturas de artculos complementarios a la
materia
3
Sistemas Distribuidos y Middleware (R. Monge) 2005
Evaluacin
Actividades en Clase (25%)
Control de Lectura (25%)
Santiago: Sbado 24/09/2005
Valparaso: Sbado 31/09/2005
Monografa (50%)
Santiago: Viernes 28/10/2005
Valparaso: Viernes 04/11/2005
Sistemas Distribuidos y Middleware (R. Monge) 2005
Bibliografa
A. Tanenbaum, & M. van Steen,
Distributed Systems: Principles and
Paradigms, Prentice Hall, 2002.
G. Coulouris, J. Dollimore, & T. Kindberg,
Distributed Systems: Concepts and
Design, Addison-Wesley, 3
rd
. Edition,
2001.
Chris Britton, IT Architectures and
Middleware, Addison-Wesley, 2001.
4
Sistemas Distribuidos y Middleware (R. Monge) 2005
Contactos e Informacin
Apuntes y otra informacin
Intranet del MTI www.mti.cl
Pginas personales:
http://inf.utfsm.cl/~rmonge/mti-sd
Consultas:
e-mail: rmonge@inf.utfsm.cl
fono: (32) 654 242
Universidad Tcnica Federico Santa Mara
Departamento de Informtica
Sistemas Distribuidos y Middleware 2005
Captulo I:
Introduccin a los
Sistemas Distribuidos
5
Universidad Tcnica Federico Santa Mara
Departamento de Informtica
Sistemas Distribuidos y Middleware 2005
1.1 Motivacin y Definiciones
Nuevas tecnologas,
beneficios y aplicaciones y
definicin de un Sistema
Distribuido
Sistemas Distribuidos y Middleware (R. Monge) 2005
Aplicaciones
Servicios computacionales en red
Sistemas de informacin distribuida
Automatizacin industrial
Internet y WWW
Redes corporativas (Extranet e Intranet)
Comercio electrnico
Trabajo colaborativo y a distancia
Educacin a distancia
Diagnsticos mdicos a distancia
etc.
6
Sistemas Distribuidos y Middleware (R. Monge) 2005
Porqu su Desarrollo?
Desarrollo tecnolgico
Microelectrnica
Redes de comunicacin de alta velocidad
Ingeniera de software
disminucin de costos
Necesidades de los usuarios
Aplicaciones ms sofisticadas
Administrativas y econmicas
Sistemas Distribuidos y Middleware (R. Monge) 2005
Objetivos Generales
Principales:
Mejor desempeo
Comparticin de recursos e informacin
Mayor fiabilidad y disponibilidad
Escalabilidad y crecimiento incremental
Adems, .....
Mejorar la comunicacin entre personas y
sistemas
Mayor adaptabilidad (ms natural, distribucin
de carga, calidad del servicio, etc.)
7
Sistemas Distribuidos y Middleware (R. Monge) 2005
Definicin de un Sistema
Distribuido
Sistema en el cual componentes de hardware y
software, localizadas en computadores en red, se
comunican y coordinan sus acciones slo por paso
de mensajes
[Coulouris 2002]
Conjunto de computadores independientes que se
muestran al usuario como un sistema nico
coherente
[Tanenbaum 2001]
Sistemas Distribuidos y Middleware (R. Monge) 2005
Grados de Distribucin (Enslow, 78)
Hardware y Procesamiento
Datos o Estado
Control
Hardware
Datos
Datos locales y
directorio local
Datos totalmente
replicados
Datos distribuidos,
directorio central
Propsitos especiales,
homogneo
Propsitos
generales,
heterogneo
Maestro/
Esclavo
Autnomos,
Cooperativos
Control
8
Sistemas Distribuidos y Middleware (R. Monge) 2005
Sntomas de un SD (Schroeder, 92)
Propiedades bsicas:
Mltiples procesadores (con memoria
local)
Interconexin (red de comunicacin)
Estado compartido (para coordinacin
global)
Adems, ...
Fallas independientes
Comunicacin no fiable
Comunicacin insegura
Comunicacin costosa
Sistemas Distribuidos y Middleware (R. Monge) 2005
Caractersticas Principales
Varios procesadores autnomos
Una subred de comunicacin compartida que
permite paso de mensajes entre
componentes de Hw y Sw
Un estado compartido distribuido o replicado
entre los participantes
Concurrencia y paralelismo
Inexistencia de un reloj global
Fallos independientes
9
Sistemas Distribuidos y Middleware (R. Monge) 2005
Dificultades en su Realizacin
Mayor complejidad
Ausencia de un estado global
conocido
No existe un patrn de tiempo
perfecto
Fallas parciales y fiabilidad
Estructura dinmica del sistema
Heterogeneidad
Seguridad
Gestin
Universidad Tcnica Federico Santa Mara
Departamento de Informtica
Sistemas Distribuidos y Middleware 2005
1.2 Conceptos y Estrategias de
Diseo en Sistemas Distribuidos
10
Sistemas Distribuidos y Middleware (R. Monge) 2005
Conceptos de Hardware
Sistema de multiprocesamiento con memoria
compartida
Sistema multicomputador homogneo
Sistema Multicomputador heterogneo
Sistemas Distribuidos y Middleware (R. Monge) 2005
Estructuras de Proceso
Procesos (o Tareas)
Instancias de programas en ejecucin
Threads
Representa un procesador virtual
Threads comparten un mismo programa y
recursos de un proceso, lo que requiere de
coordinacin (o sincronizacin)
Cambio de contexto es mucho ms eficiente, lo
que mejora el desempeo
11
Sistemas Distribuidos y Middleware (R. Monge) 2005
Hebras en
Sistemas no Distribuidos
Evitar bloqueos cuando existen mltiples
actividades concurrentes
Aprovechar el multiprocesamiento para
lograr mayor desempeo
Reducir el costo de comunicacin en
aplicaciones cooperativas
Evitar cambios de contexto en el kernel
Usar memoria compartida
Sistemas Distribuidos y Middleware (R. Monge) 2005
Sistemas Multihebra
Clientes Multihebra
Permitir manejar la comunicacin remota
mientras se desarrollan otras actividades
locales (sin bloquear)
Crear mltiples conexiones
Servidores Multihebra
Simplifica el desarrollo de software que
explota el paralelismo
Cada peticin de cliente se puede procesar
con una hebra independiente
12
Sistemas Distribuidos y Middleware (R. Monge) 2005
Conceptos de Software
Sistema Operativo de Red
Sistema Operativo Distribuido
SO de Multiprocesamiento
SO de Multicomputador
Sistemas de Memoria Compartida
Distribuida
Middleware
Sistemas Distribuidos y Middleware (R. Monge) 2005
1) Sistemas Operativos de Red
Mquina A Mquina B Mquina C
Kernel Kernel Kernel
Aplicaciones Distribuidas
Servicios
NOS
Servicios
NOS
Servicios
NOS
13
Sistemas Distribuidos y Middleware (R. Monge) 2005
2) Sistemas Operativos Distribuidos
Mquina A Mquina B Mquina C
Kernel Kernel Kernel
Sistema Operativo Distribuido
Aplicaciones Distribuidas
Sistemas Distribuidos y Middleware (R. Monge) 2005
3) Middleware
Mquina A Mquina B Mquina C
Kernel Kernel Kernel
Aplicaciones Distribuidas
Servicios
NOS
Servicios
NOS
Servicios
NOS
Servicios de Middleware
14
Sistemas Distribuidos y Middleware (R. Monge) 2005
Sistemas Operativos de Red vs.
Sistemas Operativos Distribuidos
Un Sistema Distribuido debe proveer
transparencia respecto la distribucin
[Tanenbaum85]
Sistema operativo
de red (NOS)
Sistema operativo
distribuido (DOS)
Cada computador tiene su S.O. ..una parte de un S.O. global
Cada usuario en un computador,
acceso remoto a recursos
Transparencia de acceso
No hay tolerancia a fallas Existe

Sistemas Distribuidos y Middleware (R. Monge) 2005
Estrategias de Distribucin
Qu se puede distribuir?
Estado
Funcin
Control
Sistema Distribuido Ideal
Componentes tienen mismo valor y derecho
Componentes son autnomas
Cooperacin sustituye control central
15
Sistemas Distribuidos y Middleware (R. Monge) 2005
Metas de Diseo en Sistemas
Distribuidos
Conectividad (usuarios y recursos)
Desempeo (tiempo de respuesta,
productividad)
Robustez (disponibilidad y consistencia)
Seguridad (autenticacin, privacidad y control
de acceso)
Transparencia (ubicacin, acceso, fallas,
particin, replicacin, migracin, etc.)
Escalabilidad (tamao, distancia y gestin)
Apertura (interfaces, interoperabilidad y
portabilidad)
Sistemas Distribuidos y Middleware (R. Monge) 2005
Transparencia en SD [Sinha97]
Acceso (mismo mtodo para acceso local o remoto)
Ubicacin (relocalizacin y movilidad de objetos)
Replicacin (mayor disponibilidad y robustez)
Fallas (recuperacin automtica de errores)
Migracin (mejor desempeo y fiabilidad)
Concurrencia (recursos compartidos)
Desempeo (e.g. reconfiguracin dinmica)
Escalamiento (sin interrumpir los servicios)
Persistencia (si est en memoria o en disco)
16
Sistemas Distribuidos y Middleware (R. Monge) 2005
Tcnicas de Escalamiento
Distribucin: Particionar datos y/o funciones entre
nodos
Ejemplo: Applets, DNS y WWW
Replicacin: Hacer varias copias de datos y/o
funciones
Ejemplo: DFS, BDD, Mirrors
Caching: Permitir acceso a copias locales
Ejemplo: Pginas web y archivos
Sistemas Distribuidos y Middleware (R. Monge) 2005
Problemas de Escalamiento
Mantener mltiples copias de datos produce
inconsistencias ante modificaciones
Mantener consistencia requiere de
coordinacin global
Tolerar inconsistencias permite reducir
costo de coordinacin
17
Sistemas Distribuidos y Middleware (R. Monge) 2005
Tcnicas Comunes en Diseo de
Sistemas Distribuidos
Identificacin y localizacin de componentes
Tolerancia a fallas y recuperacin de errores
Balance de carga
Persistencia de datos
Replicacin y relajar consistencia
Criptografa para privacidad y autenticacin
Sistemas Distribuidos y Middleware (R. Monge) 2005
Propiedades Deseables en un
Sistema Distribuido
Nombres globales (facilita comparticin)
Acceso global (funciona en todas partes)
Seguridad global (autenticacin, privacidad,
control de acceso y auditora)
Gestin global (componentes administrables)
Disponibilidad global (tolerancia a fallos y
degradacin suave)
18
Universidad Tcnica Federico Santa Mara
Departamento de Informtica
Sistemas Distribuidos y Middleware 2005
1.3 Modelos y Arquitecturas
de Sistemas Distribuidos
Sistemas Distribuidos y Middleware (R. Monge) 2005
Estilos de Arquitecturas
de Software Distribuido
Flujos de Datos (Tuberas y filtros)
Abstraccin de Datos (Cliente/Servidor,
Orientacin a Objetos)
Capas (Sistemas Operativos, Redes)
Repositorios (Memoria Compartida,
Archivos, BD, etc.)
. adaptado de [Garlan & Shaw 96]
19
Sistemas Distribuidos y Middleware (R. Monge) 2005
Estilos de Interaccin Directa
write /
send
read /
receive
b) Data streaming
Peticin
Respuesta
Procesamiento
Cliente Servidor
a) Cliente - Servidor
Sistemas Distribuidos y Middleware (R. Monge) 2005
Estilos de Interaccin Indirecta
Repositorio de
Datos
Servicios de
Mensajera
20
Sistemas Distribuidos y Middleware (R. Monge) 2005
Modelos de
Arquitecturas de Sistemas
Cliente/Servidor
Estructura simple y muy
popular
Cliente controla los
recursos compartidos
Peer-to-Peer (P2P)
Procesos tienen roles
similares
Interacciones
cooperativas
Logra mejores tiempos
de respuesta
Cliente
Servidor
Sistemas Distribuidos y Middleware (R. Monge) 2005
Arquitectura de Mltiples Servidores
Caractersticas:
Un servicio lo implementan varios servidores
Permite distribuir carga
Estrategias:
Particin (requiere funcin de distribucin)
Replicacin (requiere coordinacin, si existen datos y/o
estado replicado)
Ejemplos:
La Web particiona los datos (pginas)
Replicacin para alto desempeo y disponibilidad
Sun NIS con replicacin de archivo de passwords
21
Sistemas Distribuidos y Middleware (R. Monge) 2005
Principio Proxy [Shapiro 85]
Proxy permite:
Caching
Autenticacin
Control de acceso
Validacin local
de datos
Funcionalidades
locales
etc.
Cliente 1
Cliente 2
Servidor 1
Servidor 2
Servidor 3
Servidor 4
Servicio Distribuido
Proxies
Sistemas Distribuidos y Middleware (R. Monge) 2005
Variaciones al Modelo C/S
Cdigo y Agentes Mviles
Cdigo migra de una mquina a otra
Ejemplo: Applets y agentes mviles
Clientes Delgados
Estacin con recursos mnimos
Ejemplos: Network Computers, Estaciones X
Servidores Proxies
Permite reducir trfico y mejorar tiempos de
respuesta
Ejemplos: Web caching y file caching
Dispositivos Trminales Mviles
Conexin temporal y posiblemente con bajo BW
Ejemplos: Laptop, PDA y celulares
22
Sistemas Distribuidos y Middleware (R. Monge) 2005
Servicios Distribuidos Comunes
Procesamiento distribuido
Comunicacin entre procesos e invocaciones
remotas
Identificacin y Seguridad
Localizacin y bsqueda
Almacenamiento de informacin
Sincronizacin de relojes
Administracin y monitoreo
Sistemas Distribuidos y Middleware (R. Monge) 2005
Arquitecturas de Mltiples Niveles
(Multi-layered)
Sistema Operativo +Comunicacin
Cooperacin
Tiempo Nombre Seguridad
Extensiones
Aplicacin
M
I
D
D
L
E
W
A
R
E
23
Sistemas Distribuidos y Middleware (R. Monge) 2005
Ejemplo: Arquitectura OMA de OMG
Object Request Broker
Servicios comunes
(CORBAservices)
Facilidades
Verticales
Facilidades
Horizontales
Objetos y
Aplicaciones
OMG: Object Management Group
OMA: Object management Architecture
CORBA: Common Object Request
Broker Architecture
Sistemas Distribuidos y Middleware (R. Monge) 2005
Ejemplo: Tecnologa J2EE
J2EE: J ava 2 Enterprise Edition
24
Sistemas Distribuidos y Middleware (R. Monge) 2005
Estilo Hbrido
Cliente
(Aplicacin)
Servidor
(Aplicacin)
Servidor
(Sistema)
Middleware
Aplicacin
Sistemas Distribuidos y Middleware (R. Monge) 2005
Arquitecturas de
Sistemas de Informacin
Lgica de
Presentacin
Lgica de
Negocios
Lgica de Acceso
a los Datos
Usuario
Datos
25
Sistemas Distribuidos y Middleware (R. Monge) 2005
Arquitecturas de
Mltiples Capas (Multi-tiered)
Distribuyen un Sistemas de Informacin
particionando su lgica en 2 o ms capas
Existen varios niveles de acceso al sistema
Corresponde a una distribucin horizontal
Ejemplo:
Aplicaciones C/S tradicionales son 2-tier
Aplicaciones Web simples tienden a ser 3-tier
Sistemas Distribuidos y Middleware (R. Monge) 2005
Distribucin de Aplicaciones C/S
C
L
I
E
N
T
E
S
E
R
V
I
D
O
R
R
E
D
PRESENTACIN
DISTRIBUIDA
PRESENTACIN
REMOTA
DATOS
DISTRIBUIDOS
FUNCIN
DISTRIBUIDA
ACCESO REMOTO
ADATOS
PRESENTACIN PRESENTACIN PRESENTACIN PRESENTACIN PRESENTACIN
PROCESO PROCESO PROCESO
ACCESOA
DATOS
ACCESOA
DATOS
ACCESOA
DATOS
ACCESOA
DATOS
ACCESOA
DATOS
ACCESOA
DATOS
PROCESO PROCESO PROCESO
PRESENTACIN
26
Sistemas Distribuidos y Middleware (R. Monge) 2005
Ejemplo: Servicio en Web
Usuario
Browser
Servidor Web Servidor Datos
Presentacin Negocios Datos
Sistemas Distribuidos y Middleware (R. Monge) 2005
Ejemplo: Modelo Multicapa de J2EE
cliente
cliente
cliente
cliente
Firewall
Capa Cliente
Contenedor
Web
(Servlets, J SP,
HTML y XML)
Capa Media
J NDI,
J MS,
J avaMail
EJB
EJB
EJB
Contenedor
EJB
Sistemas de
Informacin
Empresarial
(RDBMS,
Aplicaciones
heredadas)
Capa SIE
27
Sistemas Distribuidos y Middleware (R. Monge) 2005
Ejemplo: Servicio en Web
Usuario
Browser
Servidor
Web
Servidor
Datos
Presentacin Negocios Datos
Servidor
Aplicacin
Sistemas Distribuidos y Middleware (R. Monge) 2005
SOA: Arquitectura Orientada a
Servicios
Service
Broker
Service
User
Service
Provider
Find
P
u
b
l
i
s
h
B
i
n
d
U
D
D
I
UDDI/WSL
S
O
A
P
Transporte: HTTP
Datos: XML
Interaccin: SOAP
Web Services
28
Sistemas Distribuidos y Middleware (R. Monge) 2005
Ejemplo: Web Services
Servidor
de Aplicacin
Servicios
Web
Servidor Web
HTTP
SOAP
RMI
Servidor
de Datos
SOAP
Browser
Sistemas Distribuidos y Middleware (R. Monge) 2005
Tendencias
Web Services y XML
Peer to Peer Computing
Grid Computing
Pervasive Computing
Mobile Computing
29
Sistemas Distribuidos y Middleware (R. Monge) 2005
Referencias del Captulo
Distributed Systems, edited by Sape Mullender, Second Edition,
Addison-Wesley ,1993.
P.H. Enslow, What is a Distributed Data Processing System?, IEEE
Computer, January 1978, pp. 13-21.
G. Coulouris, J. Dollimore, & T. Kindberg, Distributed Systems:
Concepts and Design, Addison-Wesley, 3rd. Edition, 2001.
A. Tanenbaum, & M. van Steen, Distributed Systems: Principles and
Paradigms, Prentice Hall, 2002.
Pradeep Sinha, "Distributed Operating Systems", IEEE Press, 1997.
B. Neuman. "Scale in Distributed Systems". In T. Casavant and
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
Fhnrich (Eds.): Proc. KIVS 2003, pp. 3-25, Springer-Verlag, February
2003
Sistemas Distribuidos y Middleware (R. Monge) 2005
Sinopsis del Curso
Paradigmas de programacin distribuida
Teora para comprender el comportamiento
de los sistemas distribuidos
Algoritmos distribuidos bsicos
Datos y transacciones distribuidas
Replicacin de datos y consistencia
Otros servicios de middleware

Anda mungkin juga menyukai