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