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