mdelos arquitecturaa
-
Upload
louis-mendoza -
Category
Documents
-
view
215 -
download
1
description
Transcript of mdelos arquitecturaa
From Coulouris, Dollimore, Kindberg and
Blair
Distributed Systems:
Concepts and Design
Edition 5, © Addison-Wesley 2012
Modelos
Architecturales
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
Modelos de Sistema
• Motivación.
• Modelos Arquitectónicos.
• Arquitectura de Sistema.
• Variaciones en el modelo Cliente-Servidor.
• Modelos Fundamentales: Interacción, Fallo,
Seguridad
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
Introducción
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
• Los diferentes tipos de SD comparten
propiedades subyacentes y dan lugar a
problemas de diseño comunes.
• Se pueden presentar las propiedades y temas
de diseño comunes mediante modelos
descriptivos.
• Un modelo arquitectónico define:
• Interacciones entre componentes (papeles funcionales y patrones de comunicación entre ellos).
• Cómo están vinculados con la red.
• “Simplifica y abstrae las funciones y roles de los componentes”.
• Ejemplos: cliente-servidor, peer-to-peer.
Introducción (cont)
• Modelo Fundamental, descripción más
formal de las propiedades comunes en todos
los modelos arquitectónicos:
• Modelo de interacción: trata las prestaciones y
dificultad de poner límites temporales en SD
• Modelo de fallos: especifica los fallos que se
pueden producir en procesos y canales de
comunicación. Canales fiables, procesos correctos.
• Modelo de seguridad: discute posibles amenazas a
los procesos y canales de comunicación. Canal
seguro
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
Introducción (cont)
• Dificultades y amenazas de los sistemas distribuidos ..
problemas que los desarrolladores de sistemas distribuidos
enfrentan.
• Espectro de los modos de uso:
• Las partes componentes de los sistemas están sujetos a amplia
variaciones por la carga de trabajo - por ejemplo, páginas web con
millones acceso al día.
• Partes del sistema conectados o desconectados en el tiempo -
ejemplo, los móviles incluidos en un sistema.
• Pocas aplicaciones tienen requisitos especiales en ancho de banda
de alta velocidad de comunicación y baja latencia - ejemplo, las
aplicaciones multimedia.
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
Introducción (cont)
• Amplia gama de entornos de sistema: Un sistema distribuido
debe acomodar hardware heterogéneo, sistemas operativos y
redes.
Las redes pueden diferir ampliamente en el rendimiento - redes inalámbricas operan
a una fracción de la velocidad de locales redes.
Sistemas de escalas muy diferentes, que van desde decenas de computadoras para
millones de computadoras, que deben ser apoyadas.
• Los problemas internos: los relojes no sincronizados,
actualizaciones de datos contradictorios y muchos modos de fallo
de hardware y software que afectan a los componentes individuales
del sistema.
• Las amenazas externas: Los ataques a la integridad de los datos y
el secreto, ataques de denegación de servicio.
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
7
Figure 2.1
Generaciones de los sistemas distribuidos
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
Elementos Arquitecturales
Para entender los bloques fundamentales de un sistema
distribuido de construcción, es necesario a considerar
las siguientes preguntas claves:
• ¿Cuáles son las entidades que se comunican en el
sistema distribuido?
• ¿Cómo se comunican, o más específicamente, qué
paradigma de la comunicación se utiliza?
• ¿Que roles (cambiantes) y responsabilidades tienen en
la general arquitectura?
• ¿Cómo se asignan a la infraestructura distribuida
física (como son localizados)?
8
Modificado DAAP 2015 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design
Edn. 5
© Pearson Education 2012
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.2
Entidades y paradigmas de comunicación
Elementos Arquitecturales (cont.)
Aspectos de diseño evidentes:
División de responsabilidades: Aplicaciones
Servidores
Otros procesos
Ubicación de los componentes
Implicaciones fundamentales
Prestaciones
Fiabilidad
Seguridad
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Elementos Arquitecturales C-S
11
Clásica e históricamente la más importante
Continúa siendo la más utilizada.
Recursos compartidos gestionados por los
servidores.
Servidores pueden ser clientes de otros
servicios.
Ejemplos
Navegador-Servidor Web-Servidor Archivos
Navegador-Buscador-Escaladores (crawlers)
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.3
Clients invoke individual servers
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
Servicios por Múltiples Servidores
13
• Distintos procesos servidor en
máquinas separadas interaccionan
para proveer un servicio
• Dos opciones, el conjunto de objetos
en que está basado el servicio:
Se divide y se distribuye entre los servidores.
Se mantiene copias en varias máquinas.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.4a
Peer-to-peer architecture
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.4b
A service provided by multiple servers
Server
Server
Server
Service
Client
Client
Mas sobre Procesos Peer-to-Peer
• Todos los procesos realizan tareas semejantes.
• Interactúan cooperativamente para realizar una
actividad distribuida como iguales.
• El patrón de comunicación de la aplicación determina la
cantidad de procesos cooperantes.
• El código de los procesos debe mantener la
consistencia de los recursos y la sincronización de las
acciones.
• Ejemplos, cluster de datos, distribución de contenido,
pizarra distribuida.
16
Servidores Proxy y Cachés
• Caché, almacén de datos utilizados recientemente.
• Se encuentra más próximo que los datos originales.
• Pueden estar en cada clientes o en un servidor proxy.
• Se incrementa la disponibilidad y prestaciones del servicio.
• La máquina proxy puede desarrollar otros roles, por ejemplo, cortafuego.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.5
Web proxy server
Client
Proxy
Web
server
Web
server
serverClient
Arquitectura Jerárquica
Zonas de Usuarios
Caché’s Institucionales
Caché’s Regionales
Caché Nacional (Raíz)
Servidor Web
INTERNET
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Arquitectura Jerárquica Dinámica
INTERNET
Caché’s CReps
Usuarios
Servidores Web
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Aspectos de Diseño del Caché Políticas de Reemplazo
Políticas de control de admisión
Prefetching
Mecanismos de coherencia
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Yo estudio desde cualquier parte..
Proyecto
SD -AICI
Producto
Casero
Innovador
SD-AICI
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Variaciones Modelo Cliente-
Servidor
Código Móvil
• Código se desplaza al cliente y se ejecuta
• Respuesta interactiva no sufre retardos
• Servicio se accede al ejecutar código que
invoca operaciones.
• Para implementar interfaces complejas
• Para simular un modelo “push” sobre la
Web.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.6
Web applets
a) client request results in the downloading of applet code
Web
server
ClientWeb
serverApplet
Applet code
Client
b) client interacts with the applet
Variaciones Modelo Cliente-Servidor (cont.I)
Agentes Móviles
• Programa en ejecución que se traslada de una máquina a otra
realizando una tarea.
• Puede realizar solicitudes a los recursos locales de las máquinas
que visita.
• Reduce el coste de comunicación y tiempo de las solicitudes
remotas.
• Constituyen una amenaza potencial a la seguridad de los recursos
de las máquinas que visita.
• Existe el riesgo de que la visita se quede indefinidamente
25
Variaciones Modelo Cliente-Servidor (cont.II)
Computadores de Red
• Descarga su sistema operativo y cualquier aplicación que necesita
el usuario desde un servidor de archivos remoto.
• Las aplicaciones corren localmente.
• Los archivos se gestionan desde un servidor de archivos remoto.
• Los usuarios pueden migrar desde un computador a otro sin
problemas.
• Capacidad del computador de red es limitada, lo que reduce los
costos.
• Si existe disco, se utiliza como un caché.
26
Variaciones Modelo Cliente-Servidor (cont.III)
Clientes ligeros.
• Capa de aplicación que soporta una interfaz basada en
ventanas.
• Las aplicaciones se ejecutan en un computador remoto,
servidor de cómputo
• Servidor de cómputo, máquina multiprocesador.
• Actividades gráficas fuertemente interactivas, tienen
problemas en este esquema.
27
Intercomunicación Espontánea
28
Internet
gateway
PDA
service
Music service
service Discovery
Alarm
Camera
Guests devices
Laptop TV/PC
Hotel wireless
network
Intercomunicación Espontánea (cont.)
Características.
• Fácil conexión: dispositivos en un entorno nuevo, se
reconfigura transparentemente.
• Fácil integración: los servicios disponibles se descubren
automáticamente.
Asuntos por resolver.
• Conectividad limitada: zonas sin cobertura, cambio de
celda, costo involucrado, etc.
• Seguridad y privacidad.
29
Requisitos de Diseño
Arquitecturas Distribuidas
Temas de prestaciones.
Capacidad de respuesta
• Carga y prestaciones del servidor
• Carga y prestaciones de la red
• Retardos de los componentes software
“sistemas con pocas capas de software y pequeñas cantidades de
datos a transferir entre cliente y servidor”
Productividad
• Tareas completadas / tiempo
• En servidor, cliente y red (tasa transferencia)
Balance de carga
• Entre computadores alternativos
• Entre procesos implicados
30
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.7
Software and hardware service layers in distributed systems
Applications, services
Computer and network hardware
Platform
Operating system
Middleware
Requisitos… (cont.I)
Calidad de servicio
• Se ve afectada por: fiabilidad, seguridad, adaptabilidad y
prestaciones.
• En general, se puede ver como el indicador de aceptabilidad de un
servicio.
• Se recomienda usar QoS (Quality of Service), para referirse a la
capacidad de garantizar tasas de transferencia y límites de tiempo.
• Importante para aplicaciones que mantienen datos críticos en el
tiempo (caudales de sonido o vídeo).
• Disponibilidad de los recursos necesarios en los instantes
adecuados…
32
Uso de caché y replicación. • Ayudan a mejorar las prestaciones
• Ej. Protocolo de caché de Web
a) TTL (Time-To-Live)
b) PER (Poll Each Read)
c) PPA (Poll Periodically Algorithm)
Aspectos de fiabilidad. • Corrección
• Tolerancia a fallos
mediante redundancia, protocolos con reconocimiento y mecanismos de recuperación
Seguridad
•Protección activa y pasiva contra ataques, y
•Mecanismos de seguridad criptográfica.
34 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.8
Two-tier and three-tier architectures
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.10
Thin clients and compute servers
Thin Client
Application Process
Network computer or PC Compute server
network
36 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.11
The web service architectural pattern
Modelos Fundamentales
En general,
“Un modelo contiene los elementos esenciales para comprender y
razonar sobre el comportamiento del sistema”
Trata cuestiones del sistema como:
• ¿Cuáles son sus entidades principales?
• ¿Cómo interactúan?
Cuáles son las características que afectan su comportamiento
individual y colectivo?
Su objetivo es:
• Explicitar todas las premisas relevantes
• Generalizar respecto a lo que es posible o no, dadas las premisas
anteriores (mediante algoritmos o propiedades)
37
Modelo de Interacción
De interacción, refleja hechos como
• Comunicación se efectúa con retrasos.
• Probablemente retrasos de considerable duración.
• Precisión en la coordinación está limitada por la duración de los
retrasos y la dificultad de mantener un reloj común.
De fallo,
• Define y clasifica los fallos.
• Proporciona la base para el análisis de los efectos potenciales de
los fallos y el diseño de sistemas con tolerancia a fallos.
De seguridad
• Define y clasifica las formas en que se pueden llevar a cabo
ataques al sistema.
• Proporciona la base para el análisis de amenazas.
38
39 Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.12
Categories of middleware
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.14
Processes and channels --Modelo de Interacción
process p process q
Communication channel
send
Outgoing message buffer Incoming message buffer
receivem
Los procesos transmiten mensajes de unos a otros para transferir
información y coordinar su actividad.
Cada proceso tiene su propio estado que es privado.
En general no puede predecirse:
• La tasa con que procede cada proceso.
• La temporización de la transmisión de mensajes.
Sistemas Distribuidos
Modelo de Interacción (cont.I) Prestaciones de los canales de comunicación. Latencia: retardo entre el envío de un mensaje y su recepción, incluye
• Tiempo de acceso a la red.
• Tiempo de transmisión.
• Tiempo empleado por los servicios de comunicación del sistema operativo
(origen y destino).
Ancho de banda: cantidad máxima de información que se puede transmitir
en un intervalo de tiempo.
Fluctuación (jitter): variación del tiempo invertido en completar el reparto de
una serie de mensajes.
Sistemas Distribuidos
Modelo de Interacción (cont.II) Relojes y eventos de temporización. Cada reloj posee una deriva diferente (diferencia con respecto a un tiempo
absoluto).
Incluso, sus tasas de deriva son diferentes.
Además, la concordancia final de los relojes está afectada por retardos
variables de los mensajes.
Dos variantes del modelo de interacción, según las
restricciones temporales: Sistemas distribuidos síncronos
Sistemas distribuidos asíncronos
Sistemas Distribuidos
Modelo de Interacción (cont.III) Sistemas distribuidos síncronos. Se establecen límites:
Tiempo de ejecución de cada etapa de un proceso tiene ciertos límites
inferior y superior conocidos.
• Cada mensaje se transmite en tiempo limitado conocido.
• La tasa de deriva de cada reloj tiene un límite conocido.
Es difícil obtener valores realistas y además dar garantías sobre los valores
elegidos.
Es posible utilizar timeouts para detectar fallos de procesos o pérdidas de
mensajes.
Sistemas Distribuidos
Modelo de Interacción (cont.IV) Sistemas distribuidos asíncronos. No existen limitaciones:
• Velocidad de procesamiento.
• Los retardos de transmisión de mensajes.
• Las tasas de deriva del reloj.
Ejemplo: Internet
Mayor dificultad para llegar a acuerdos, aún si se utilizan canales seguros.
Generalmente, se permite realizar otro tipo de tareas durante la espera.
Modelo de Interacción (cont.V) Sistema Distribuido
Síncrono Sistema Distribuido
Asíncrono
Respuesta de los procesos
Timeouts superior e inferior en cada etapa del proceso
Velocidad de proceso muy variable
Tiempo de comunicación
Timeouts de recepción conocidos
Retardos imprevisibles en la transmisión
Error en los relojes
Tasas de deriva locales conocidas
Tasas de deriva imprevisibles
Sistemas Distribuidos
Modelo de Interacción (cont.VI) Ordenamiento de eventos. En un sistema asíncrono los eventos se pueden ver en un orden distinto al
que fueron generados.
Por ejemplo,
• X envía un mensaje con el tema Reunión a Y, Z y A
• Usuarios Y y Z responden con un mensaje Re:Reunión
• El retardo en la transmisión de los mensajes puede hacer que los eventos se
vean en una secuencia distinta a la que se produjeron.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.13
Real-time ordering of events
send
receive
send
receive
m1 m2
2
1
3
4X
Y
Z
Physical
time
A
m3
receive receive
send
receive receive receive
t1 t2 t3
receive
receive
m2
m1
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.15
Omission and arbitrary failures
Class of failure Affects Description
Fail-stop Process Process halts and remains halted. Other processes may detect this state.
Crash Process Process halts and remains halted. Other processes may not be able to detect this state.
Omission Channel A message inserted in an outgoing message buffer never arrives at the other end’s incoming message buffer.
Send-omission Process A process completes a send, but the message is not put in its outgoing message buffer.
Receive-omission Process A message is put in a process’s incoming message buffer, but that process does not receive it.
Arbitrary (Byzantine)
Process or channel
Process/channel exhibits arbitrary behaviour: it may send/transmit arbitrary messages at arbitrary times, commit omissions; a process may stop or take an incorrect step.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.11
Timing failures
Class of Failure Affects Description
Clock Process Process’s local clock exceeds the bounds on its rate of drift from real time.
Performance Process Process exceeds the bounds on the interval between two steps.
Performance Channel A message’s transmission takes longer than the stated bound.
Sistemas Distribuidos
Modelo de Seguridad Lograr la seguridad del sistema distribuido: • Asegurando los procesos y canales
• Protegiendo los objetos de acceso no autorizados
Protección de objetos • Los objetos se construyen para ser utilizados en formas diferentes por
usuarios diferentes
• Los derechos de acceso especifican a quién se permite realizar ciertas acciones sobre el objeto
• La autoridad con que se ordena una invocación o se da un resultado se denomina principal
• Un principal puede ser un usuario o un proceso
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.17
Objects and principals
Network
invocation
result
ClientServer
Principal (user) Principal (server)
ObjectAccess rights
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5
© Pearson Education 2012
Figure 2.18
The enemy
Communication channel
Copy of m
Process p Process q m
The enemy m’
Sistemas Distribuidos
Modelo de Seguridad (cont.III) Amenazas • A procesos: suplantación de la identidad tanto del cliente como del servidor
• A los canales: vulneración de la privacidad e integridad de la información
sobre la red
Vencer amenazas • Criptografía
• Encriptación
• Autenticación
• Firmas digitales, etc
Sistemas Distribuidos
Modelo de Seguridad (cont.IV) Canales seguros • Cada proceso conoce la identidad del principal en cuya representación se
ejecuta otro proceso.
• Se asegura la privacidad y la integridad de datos
• Cada mensaje incluye un sello temporal, físico o lógico, para prevenir el
reenvío o reordenación
Principal A
Secure channel Process p Process q
Principal B