pdf 1.4MB

Anuncio
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Sistemas Distribuidos -Arquitecturas
M.C. Fernando Pech May
Instituto Tecnológico Superior de los Rı́os
[email protected]
Materia: Sistemas Distribuidos
Curso de verano, 2011
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 1/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Tabla de contenido
1
Introducción
2
Modelos arquitectónicos
3
Arquitectura de sistema
Arquitectura Cliente-servidor
Interfaces y objetos
4
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 2/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Los SD son los sistemas de software más complejos
Nortel Networks crea switches los cuales pueden contener
entre 25-30 millones de lı́neas de código, interviniendo 3000
desarrolladores de software, y con un ciclo de vida de 20 años
para actualizar.
En Motorola, el 20% de sus ingenieros producen hardware,
80% produce software.
En este tipo de software hay materia para toda clase de
problemas de ingenierı́a de software.
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 3/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Investigación de arquitectura de software para tratar los retos de
diseño
“... Incluye la organización de un sistema como la
composición de componentes; control global de estructuras;
los protocolos para comunicación, sincronización, y acceso a
datos; la asignación de funcionalidad para diseñar elementos;
la composición de diseño de elementos; distribución fı́sica;
escalamiento y desempeño; dimensiones de evolución; y
selección de alternativas de diseño. Este es el nivel de diseño
arquitectura de software.”[Garlan y Shaw]
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 4/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Algunos paradigmas de arquitecturas pertinentes para SD
Capas
Cliente-Servidor
Idea básica
Desmembrar la complejidad de sistemas mediante el diseño en
capas y servicios
Capas: grupo de funcionalidades fuertemente relacionadas y
altamente coherentes
Servicios: funcionalidades proporcionadas a capas superiores
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 5/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Ejemplos de arquitecturas en capas
Sistemas operativos (kernel, otros servicios), históricamente:
los sistemas operativos
Arquitecturas de protocolos de red
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 6/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Estructura tı́pica en capas de un SD
Componentes Importantes:
Plataforma (Hardware y Sistema operativo)
Middleware
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 7/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Plataforma
Contiene los servicios propios de cada computadora concreta
Depende del hardware y del S.O.
Windows NT / Procesador Pentium
Solaris / Procesador SPARC
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 8/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Middleware
Logra trasparencia en la heterogeneidad en el nivel de
plataforma
Puede dar un modelo y una interfaz de programación utilizable
Puede soportar abstracciones como:
Llamadas a procedimientos remotos (RPC)
Comunicación en grupo
Eventos, replicación, servicios multimedia, etc...
Ejemplos
CORBA (OMG), DCOM (Microsoft)
RM-ODP (ITU-T/ISO)
Invocacin de Métodos Remotos Java (SUN)
Servicios Web
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 9/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Middleware
Qué forma tiene el middleware?
Bibliotecas adicionales:
Procedimientos remotos (RPC)
Objetos remotos (RMI, CORBA)
Herramientas de programación
Lenguajes de definicin de interfaces (IDL)
+ Compiladores para ellos
Servicios básicos de ayuda
servicios de nombres, para buscar objetos
de notificacin de eventos,
De control de transacciones, etc.
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 10/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Middleware
Qué limitaciones impone?
Se incrementa la complejidad arquitectónica:
Hay más niveles
Hay que aprender más herramientas
Se pierde el control de bajo nivel sobre los modos de fallo
Se depende de terceras partes,
...
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 11/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Arquitectura de sistema
Modelo Cliente-Servidor
Múltiples servidores
Procesos de Igual a Igual
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 12/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Cliente: el proceso requiere acceder datos, utilizar recursos o
ejecutar operaciones en una computadora diferente
Servidor: Proceso maneja datos y otros recursos compartidos,
permite al cliente acceder a recursos y ejecutar cómputos
Interacción: invocacin / par de mensajes resultantes
Ejemplo: Servidor http: cliente (navegador) pgina solicitada,
servidor entrega página
Servicios de caching (servidores proxy)
Muy habitual (DNS, Web, ftp, telnet, ...)
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 13/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes
Servicios proporcionados por múltiples servidores
Ejemplos: muchos servicios de comercio Web están
implementados en diferentes servidores
Motivación (Desempeño, confiabilidad)
Los servidores mantienen bases de datos replicadas o
distribuidas
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 14/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes
Servidores proxy: suministrar replicación/distribución trasparente
Caching
Los servidores proxy mantienen caches, como almacenes de
recursos solicitados recientemente
Utilizados frecuentemente en motores de búsqueda:
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 15/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes
Más variantes de modelo Cliente- Servidor
Código Móvil
Código enviado a un proceso cliente para realizar una tarea
especı́fica
Ejemplos
Applets
Mensajes Activos(contiene código de protocolo de
comunicación)
Agentes móviles
Programa ejecutado (código + datos), migración entre
procesos, realizando una tarea autónoma, frecuentemente en
representación de otro proceso
ventajas: flexibilidad, ahorro en costo de comunicación
Merados virtuales, programas gusano
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 16/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes
Clientes delgados
Ejecutar interfaces de ventanas localmente mientras la
aplicación se ejecuta en el servidor
ejemplo: servidores X11 (corren del lado de la aplicación
cliente)
Dispositivos portátiles para cómputo móvil
personal digital assistants (PDAs)
Como se conectan a internet
wireless LANs/ MANs
wireless Personal Area Networks
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 17/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes -Gestión espontánea de red
Caracterı́sticas
W-LAN se enfrentan a constantes cambios de dispositivos
móviles heterogéneos
Dispositivos vagando en ambientes W-LAN heterogéneos
Beneficios
no se requiere conexión con cable
Fácil acceso a servicios disponibles localmente
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 18/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes -Gestión espontánea de red
Retos
Soporte para conexiones convenientes e integración:
Internet asume dispositivos con dirección IP en redes fijas
Posible solución: asignación dinámica de direcciones IP
Problemas: como encontrar dispositivos si estos son servidores
Conexión intermitente de dispositivos
Privacidad
Seguridad
Descubrimiento de servicios
Servicios disponibles en la red
Sus propiedades, y como accederlos (incluyendo información
especı́fica de drivers)
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 19/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes -Gestión espontánea de red
Conexión espontánea
Metropolitana (GPRS, UTMS)
Media (x0 o x00 m) (Wavelan, Wireless 802.11b)
Corta (x o x0 m) (BlueTooth, infrarojos, HomeRF)
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 20/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Variantes
Procesos pares
Cuando los roles entre procesos son de igual a igual
(peer-to-peer)
Ejemplo:
Cooperación y coordinación
Algoritmos descentralizados
(coordinación de agendas, trabajo colaborativo, ...)
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 21/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Interfaz de un proceso
Utilizar arquitecturas cliente-servidor impacta en el uso del
software
cuál es el mecanismos de sincronización entre cliente y
servidor?
tipos permitidos de solicitudes/respuestas?
“Conjunto de peticiones a que responde”
Estilos
Mediante interfaces de módulos “ módulos”
Mediante la interfaz de los objetos en OOP
Soportado de modo natural para SD en: JAVA RMI, CORBA
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 22/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Arquitectura Cliente-servidor
Interfaces y objetos
Los procesos contienen objetos cuyos métodos podemos invocar de
modo remoto
Es deseable que las referencias a los objetos remotos se usen
de modo “transparente”(como las locales)
No podemos hablar exclusivamente de procesos cliente y
procesos servidor, sino de objetos cliente y objetos servidor
Retos de diseño
Calidad de servicio
Desempeño (Tiempo de respuesta, caudal, puntualidad)
Confiabilidad
Adaptabilidad
Dependencia
Tolerancia a fallas: se espera que el sistema siga funcionando
correctamente a pesar de presentarse fallas
Seguridad
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 23/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Modelos fundamentales
Sistema Distribuido
Procesos múltiples
Conectados mediante canales de comunicación
Algoritmo distribuido
Pasos a realizar por cada proceso
Comunicación entre procesos (sincronización, flujo de
información)
Paradigmas generales para captar aspectos de
comportamiento de un sistema distribuido basado en
mensajes, algoritmos de ejecución
Comunicando máquinas de estado finito extendidas [Brand y
Zafiropoulo]
Autómatas de E/S [Lynch]
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 24/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Modelos fundamentales
Modelo: contiene los elementos esenciales para comprender y
razonar sobre el sistema
Manifiesta las premisas del sistema
Generaliza sobre lo que es posible o no.
Principales modelos
De interacción
De fallo
De seguridad
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 25/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
La forma en que se produce el “paso de mensajes”entre los
procesos restringe los modos de interacción
Retrasos, precisión, y tiempo
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 26/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Problemas presentados en las prestaciones del canal
latencia: retardo entre el envı́o y recepción del mensaje
Tiempo de acceso a la red (ej., retardos de transmisión
Ethernet)
Tiempo para que el primer bit viaje desde la interfaz de la red
transmisora hasta la interfaz de red receptora
Tiempo procesado dentro del proceso de envı́o y recepción
caudal: número de unidades (ej., paquetes) entregadas por
unidad de tiempo
Ancho de banda: cantidad de información (ej., bits)
transmitida por unidad de tiempo
Variación de retardo: variación en retardos entre diferentes
mensajes del mismo tipo (ej., cuadros de video en redes ATM)
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 27/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
En virtud del modelo de comunicación aparecen dos familias
de sistemas:
Sistemas distribuidos sı́ncronos
el tiempo para ejecutar cada paso de un proceso tiene
establecidos limites inferiores y superiores
los tiempo de entrega de mensajes tienen limites establecidos
cada proceso tiene un reloj que deriva rangos en tiempo real
con limites establecidos
Sistemas distribuidos ası́ncronos: sin lı́mite
Tiempos de ejecución de procesos
Tiempo de entrega de mensajes
Tasa de movimiento del reloj
Nota
los sistemas distribuidos sı́ncronos son fáciles de manejar, pero
determinar limites realistas puede ser difı́cil o imposible
Los sistemas ası́ncronos son más abstractos y genéricos: un
algoritmo distribuido ejecutado en un sistema es probable que
también trabaje en otro
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 28/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Tiempo y sincronicidad
Consecuencia básica de la asincronicidad
en un sistema ası́ncrono los eventos pueden observarse
desordenados con respecto a su generación
Ejemplo
El usuario X envı́a un mensaje con el tema Reunión.
Los usuarios Y y Z responden con un mensaje con el tema Re:
Reunión.
Si rompe la relación de causalidad
Si los relojes de X, Y y Z pudieran sincronizarse, podramos
observar la secuencia ordenada.
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 29/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Fernando Pech May
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 30/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Posibilidad en sistemas ası́nconos:
Relojes lógicos: Proporcionan enteros consecutivos que
permiten ordenar eventos marcados por un timestamp, con la
relación de orden ocurrió antes(S1 ,S2 ).
X envı́a m1 antes de que Y reciba m1
T(envı́a(X,m1 )) < T(recibe(Y,m1 ))
ocurrió antes(envı́a(X,m1 ), recibe(Y,m1 ))
Y recibe m1 antes de enviar m2
T(recibe(Y,m1 )) < T(envı́a(Y,m2 ))
ocurrió antes(recibe(Y,m1 ), envı́a(Y,m2 ))
Luego por transitividad
T(envı́a(Y,m2 )) < T(recibe(X,m2 ))
ocurrió antes(envı́a(X,m1 ), envı́a(Y,m2 ))
X envı́a m1 antes de que Y envı́e m2
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 31/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Modelo de fallo
Fallo por omisión (del proceso o del canal)
Fallas por omisión de proceso: caı́da de proceso
detección con timeouts
la caı́da es del tipo fail-stop si otro proceso puede detectar con
certeza que el proceso ha caı́do
Fallas por omisión de comunicación (canal): el mensaje no ha
sido entregado (pérdida de mensajes)
Posibles causas:
error de trasmisión de red
Sobrecarga de buffer de recepción de mensajes
Fallas arbitrarias
proceso: omite pasos esperados del proceso o lleva a cabo no
deseados
Canal de comunicación: ej., sin entrega, corrupción o
duplicidad
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 32/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Tipos de fallos
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 33/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Modelo de seguridad
Las técnicas de seguridad permiten la comprobación de fallos
y la minimización de su posible aparición:
Comunicación Fiable
Validez de la comunicación:
cualquier mensaje enviado() será escuchado.
Integridad de la comunicación:
Cualquier mensaje recibido() es correcto y respeta la
secuencialidad.
Amenazas:
Duplicación de mensajes, desorden, corrupción del mensaje,
revelación, (y sigue...)
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 34/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Amenaza a los Procesos
Acceso indebido a los recursos
Ataque a la integridad del proceso
Suplantación de los principales interlocutores
Falsificación de servicios
Falsificación de peticiones
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 35/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Amenaza a los canales
Acceso indebido al canal
Captura de mensajes
Reenvı́o de mensajes
Eliminación de mensajes
Modificación de mensajes y de código móvil
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 36/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Amenaza a la disponibilidad del servicio
Ataque a la integridad de los servicios
Ataque de denegación de servicio
Seguridad de...
Las interacciones en procesos y canales
Las acciones de acceso a objetos (derechos)
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 37/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Técnicas
Criptografı́a (de clave secreta y de clave pública)
Encriptación para preservar la privacidad
Firmas para preservar la autenticidad
Autenticación para preservar la identidad
Contrato digital para preservar la legalidad
Ejemplos de servicios seguros
Correo electrónico seguro
Pagos seguros por Internet
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 38/39
Introducción
Modelos arquitectónicos
Arquitectura de sistema
Modelos fundamentales
Modelo de Interacción
Modelo de fallo
Modelo de Seguridad
Técnicas
Técnicas sobre derechos de acceso
Control de acceso a los recursos
Control de acceso a los servicios
Técnicas de filtrado y seguridad de tráfico en redes
Mecanismos de confianza por dominios
Protección pasiva (cortafuegos)
Tunelización
...
Fernando Pech May
Sistemas Distribuidos -Arquitecturas
Curso de verano, 2011 39/39
Descargar