Documentos de Académico
Documentos de Profesional
Documentos de Cultura
14 15 16 17 Arquitecturas de Sistemas Distribuidos y Tarea 04
14 15 16 17 Arquitecturas de Sistemas Distribuidos y Tarea 04
distribuidos y Tarea 04
1
Prof. Edgardo Adrián Franco Martínez
http://computacion.cs.cinvestav.mx/~efranco
efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco)
Contenido
Sistemas operativos II
Contenido
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Introducción
• Ventajas del uso de una aproximación distribuida
• Desventajas del uso de una aproximación distribuida
• Reto al diseñar un sistema distribuido
• Arquitecturas multiprocesador
• Arquitecturas cliente-servidor
• Arquitecturas de objetos distribuidos
• CORBA
• Computación distribuida interorganizacional
• Arquitecturas peer-to-peer
• Arquitecturas de sistemas orientados a servicios 2
• Tarea 04
Introducción
Sistemas operativos II
Introducción
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Prácticamente todos los grandes sistemas
informáticos son en la actualidad sistemas
distribuidos.
3
Ventajas del uso de una
Sistemas operativos II
4
Ventajas del uso de una
Sistemas operativos II
5
Ventajas del uso de una
Sistemas operativos II
6
Ventajas del uso de una
Sistemas operativos II
7
Ventajas del uso de una
Sistemas operativos II
8
Ventajas del uso de una
Sistemas operativos II
Sistemas operativos II
10
• Seguridad
• Complejidad
• Manejabilidad
• Impredecibilidad
aproximación distribuida
Desventajas del uso de una
Sistemas operativos II
11
Sistemas operativos II
Sistemas operativos II
13
Desventajas del uso de una
Sistemas operativos II
14
Desventajas del uso de una
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• En una arquitectura cliente-servidor, una aplicación se
modela como un conjunto de servicios
proporcionados por los servidores y un conjunto de
clientes que usan estos servicios.
• Los clientes necesitan conocer qué servidores están
disponibles, pero normalmente no conocen la
existencia de otros clientes. Clientes y servidores son
procesos diferentes.
• Varios procesos servidores pueden ejecutarse en un
procesador, por lo que no existe una correspondencia
19
1:1 entre procesos y procesadores. en el sistema.
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
Un sistema cliente –servidor
c1 c1
Proceso
c1 c12 servidor
c1 s1 c11
s4 Proceso
cliente
c6
c10
c9
c7 s2
s3 20
c8
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• El diseño de sistemas cliente-servidor debería
reflejar la estructura lógica de la aplicación que se
esta desarrollando.
• Por ello generalmente se debe de organizar en
tres capas.
Capa de presentación
Capa de procesamiento
de la aplicación
21
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• La capa de presentación está relacionada con la
presentación de la información al usuario y con
toda la interacción con él.
• La capa de procesamiento de la aplicación está
relacionada con la implementación de la lógica de
la aplicación.
• La capa de gestión de datos está relacionada con
todas las operaciones sobre la base de datos.
• En los sistemas centralizados, estas capas no es
22
necesario que estén claramente separadas
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Sin embargo a la hora del diseño debe hacerse
una distinción entre ellas, de forma que sea
posible distribuir cada capa sobre una
computadora diferente.
• La arquitectura cliente servidor más simple se
denomina arquitectura cliente-servidor de dos
capas, en la que una aplicación se organiza como
un servidor (o múltiples servidores) y un conjunto
de clientes.
23
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Arquitecturas cliente-servidor de dos capas:
1. Modelo de cliente ligero (thin-client): En un modelo
de cliente ligero, todo el procesamiento de las
aplicaciones y la gestión de los datos se lleva a cabo
en el servidor. El cliente simplemente es
responsable de la capa de presentación del
software.
2. Modelo de cliente rico o pesado (fat-client): En este
modelo, el servidor solamente es responsable de la
gestión de los datos. El software del cliente
implementa la lógica de la aplicación y las
interacciones con el usuario del sistema. 24
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
Presentación Servidor
Gestión de datos
Modelo de Cliente Procesamiento de
cliente ligero la aplicación
Presentación
Procesamiento de la Servidor
Modelo de aplicación
Cliente Gestión de datos
cliente pesado
25
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Una arquitectura de dos capas con clientes
ligeros, es la aproximación más simple en los
sistemas centralizados.
• Una desventaja del modelo de cliente ligero es
que ubica una elevada carga de procesamiento
tanto en el servidor como en la red. El servidor es
responsable de todos los cálculos, además de que
se debería de aprovechar que los dispositivos de
computación modernos disponen de una gran
cantidad de potencia de procesamiento. 26
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• El modelo cliente-servidor de dos capas de cliente
pesado, hace uso de esa potencia de
procesamiento disponible y distribuye tanto el
procesamiento de la lógica de la aplicación como
la presentación al cliente.
• El servidor es esencialmente un servidor de
transacciones que gestiona todas las transacciones
con la base de datos.
• Un ejemplo de este tipo de arquitectura es la de
los sistemas bancarios ATM. 27
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Un sistema ATM cliente-servidor
ATM
Servidor de cuentas
Base de
Monitor de
ATM datos de
teleprocesa
cuentas de
miento
clientes
ATM
28
ATM
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Aunque el modelo de pesado distribuye el procesamiento
de forma más efectiva que un modelo de cliente ligero, la
gestión del sistema es más compleja.
• Cuando la aplicación software tiene que ser modificada, se
debe de realizar la reinstalación en cada computadora
cliente. (Alto costo si hay cientos de clientes en el sistema)
• La aparición de código móvil (applets de Java y los
controles Active X), ha permitido el desarrollo de sistemas
cliente-servidor que son algo intermedio entre los modelos
de cliente ligero y pesado. Parte del procesamiento se
realiza del lado servidor y parte del lado cliente. La interfaz
de usuario se crea usando un navegador web que permite
ejecutar el código descargado. 29
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Aunque el modelo de pesado distribuye el
procesamiento de forma más efectiva que un modelo
de cliente ligero, la gestión del sistema es más
compleja.
• Cuando la aplicación software tiene que ser
modificada, se debe de realizar la reinstalación en
cada computadora cliente. (Alto costo si hay cientos
de clientes en el sistema)
• La aparición de código móvil (applets de Java y los
controles Active X), ha permitido el desarrollo de
sistemas cliente-servidor que son algo intermedio
entre los modelos de cliente ligero y pesado. 30
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• El problema con una aproximación cliente-servidor de
dos capas es que las tres capas lógicas (presentación,
procesamiento de la aplicación y gestión de los datos)
debe de asociarse con el cliente y el servidor, por lo
que esto puede acarrear problemas de escalabilidad y
rendimiento (cliente ligero) o problemas de gestión
(cliente pesado).
• Para evitar estos problemas, una aproximación
alternativa es usar una arquitectura cliente-servidor de
tres capas. En esta arquitectura, la presentación, el
procesamiento de la aplicación y la gestión de los
datos son procesos lógicamente separados que se
ejecutan sobre procesos diferentes. 31
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
Arquitectura cliente-servidor de tres capas
Presentación
Servidor Servidor
Procesamiento Gestión de los
Cliente
de la aplicación datos
32
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Un ejemplo de una arquitectura de tres capas es un
sistema bancario por internet.
• La base de datos de clientes (usualmente ubicada
sobre un mainframe) proporciona servicios de gestión
de datos; un servidor web proporciona los servicios de
aplicación tales como facilidades para transferir
efectivo, generar estados de cuenta, pagar facturas,
etc.; la propia computadora del usuario con un
navegador de internet es el cliente.
• El sistema es escalable debido a que es mas sencillo
agregar servidores web a la medida que crece el
sistema. 33
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
La arquitectura de distribución de
un sistema bancario en Internet
Interacción HTTP
Cliente
Servidor de bases
Servidor Web de datos
Provisión del SQL query Base de datos
Cliente servicio de SQL de cuentas de
clientes
cuentas
Cliente 34
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
Arquitectur Aplicaciones
a
Arquitectura Aplicaciones de sistemas heredados en donde no es práctico separar el
C/S de dos procesamiento de la aplicación y la gestión de los datos.
capas con
clientes Aplicaciones que requieren cálculos intensivos tales como
ligeros compiladores con poca o ninguna gestión de datos.
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
Arquitectura Aplicaciones
Arquitectura C/S Aplicaciones a gran escala con cientos o miles de clientes
de tres capas o Aplicaciones en donde tanto los datos como la aplicación son
multicapa volátiles
Aplicaciones en donde se integran datos de múltiples fuentes.
36
Arquitecturas cliente-servidor
Sistemas operativos II
Arquitecturas cliente-servidor
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• En el modelo cliente-servidor de un sistema distribuido, los
clientes y los servidores son diferentes. Los clientes reciben
servicios de los servidores y no de otros clientes; los
servidores pueden actuar como clientes recibiendo
servicios de otros servidores, pero sin solicitar servicios de
clientes; los clientes deben conocer los servicios que
ofrece cada uno de los servidores y deben conocer cómo
contactar cada uno de estos servidores.
• Este modelo funciona bien para muchos tipos de
aplicaciones. Sin embargo, limita la flexibilidad de los
diseñadores del sistema ya que ellos deben decidir dónde
se proporciona cada servicio. También deben planificar la
escalabilidad y proporcionar algún medio para distribuir la
carga sobre los servidores cuando más clientes se añadan
37
al sistema.
Arquitecturas de objetos
S(o1)
o2
o5
S(o2)
S(o5)
distribuidos
Bus software
o3
S(o3)
o6
Arquitecturas de objetos
S(o6)
o4
S(o4)
Sistemas operativos II
39
40
Arquitecturas de objetos
49
Red
Arquitecturas de objetos
51
Computación distribuida
Sistemas operativos II
Sistemas operativos II
n1
n2
n5
n3
• Arquitectura P2P
n8
n11
interorganizacional
n7
n12
Computación distribuida
n6
n9
n10
Sistemas operativos II
54
Sistemas operativos II
55
Computación distribuida
Sistemas operativos II
Sistemas operativos II
1- ¿cc.mp3?
Par B (bb.mp3)
2- Par C
Servidor
Bbb.mp3 Par A (¿cc.mp3?)
Ccc.mp3
Par C (cc.mp3) Ddd.mp3
Sistemas operativos II
Par F Par E
¿ccc.mp3?
ccc.mp3 ccc.mp3
ccc.mp3
Par D
Conexión directa
Flujo de Datos
Sistemas operativos II
cc.mp3->Z
cc.mp3->Z
Conexión directa
Flujo de Datos
59
Red Escalable
Reducción del número de nodos involucrados en el encaminamiento
Buen tiempo de respuesta
Computación distribuida
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Registro de
servicios
Buscar Publicar
Solicitante Suministrador
Servicio
de servicios de servicios
Enlazar
66
Computación distribuida
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
71
Computación distribuida
Sistemas operativos II
Sistemas operativos II
73
Computación distribuida
Sistemas operativos II
Sistemas operativos II
Sistemas operativos II
Abstracción 76
interorganizacional
Computación distribuida
Sistemas operativos II
77
Sistemas operativos II
78
Ámbito de Intra- Inter-
Comunicación Intra-Aplicación Aplicación Aplicaciones Inter-Empresas
interorganizacional
Computación distribuida
Sistemas operativos II
79
Tarea 04
Sistemas operativos II
14 , 15, 16 y 17 Arquitecturas de sistemas distribuidos
• Realizar un mapa conceptual que contenga los
conceptos de la clase 11 a 17
• A más tardar se debe entregar el día Domingo 17 de
Octubre de 2010 a las 23:59:59 hrs.
• Incluir portada.
• Recomendación: Usar Cmap Tools
80