PROGRAMACION DISTRIBUIDA

Documentos relacionados
PROCESAMIENTO DISTRIBUIDO

Tema 1: Introducción a los Sistemas Distribuidos. Sistemas Distribuidos Marcos López Sanz [Curso ]

TEMA 1. Introducción a las arquitecturas distribuidas

PROGRAMACIÓN DISTRIBUIDA Introducción a DDS (Data Distribution Service for Real-Time Systems)

Sistemas Operativos Distribuidos

Sistemas Distribuidos Introducción. Rodrigo Santamaría

Sistemas Distribuidos

Hora 1 1. Introducción 2. Web semántica 2.1 Ontologías 2.2 Lenguajes 2.3 Ejemplos 2.4 Estado actual Microformatos 2.4.

Introducción a los sistemas distribuidos. Jorge Iván Meza Martínez

Sistemas Operativos Distribuidos. Sistemas Operativos Una visión aplicada

Sistemas Operativos Distribuidos

Ingeniería en computación Tipos de sistemas operativos

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Sistemas Distribuidos. Soporte de Sistemas Operativos

Programación Distribuida y Tiempo Real

Sistemas distribuidos

Objetos Distribuidos

Servicios Telemáticos Avanzados 4º Grado en Ingeniería en Tecnologías de Telecomunicación Especialidad de Telemática

Programación Web Tema 1: Arquitectura C / S

Introducción a Web Services

APLICACIONES DE INTERNET: SOAP

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

Diseño y Aplicaciones de Sistemas Distribuidos. Programa de la asignatura

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

CONCEPTO DE ARQUITECTURA CLIENTE / SERVIDOR.

Computación cliente/servidor

Service Oriented Architecture

Aspectos pragmáticos de los lenguajes de programación

Tema 1 Introducción a los Sistemas Distribuidos

Arquitectura ANSI/SPARC

Redes de Altas Prestaciones

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR PROGRAMA SINTÉTICO

Introducción a Sistemas Peer to Peer

Sistemas Distribuidos

Conceptos generales de sistemas distribuidos

Java RMI. Sistemas distribuidos

ARQUITECTURAS. Carlos Reveco D. IN73J Arquitectura, Diseño y Construcción de un Negocio con Apoyo TI.

Middleware: Evolución en el desarrollo de aplicaciones distribuidas. Contenido

Optomation Systems Pág.1. Introducción a. Optomation Systems. Opto22 en España y Portugal

Nombre del documento: Programa de Estudio de asignatura de Especialidad. Referencia a la Norma ISO 9001: Página 1 de 6

UNIVERSIDAD DEL VALLE FACULTAD DE INGENIERIA ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN MAESTRÍA EN INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

octubre de 2007 Arquitectura de Software

Arquitectura Software. Laura M. Castro D4.15

ASIGNATURA: SISTEMAS OPERATIVOS II

SISTEMAS EN TIEMPO REAL

Tema 1: Patrones Arquitectónicos

Programación Distribuida

Tema 3.1: Introducción a Servicios Web

Servicios Web. Desarrollo de Aplicaciones Empresariales

Diseño de Sistemas Operativos. Capítulo 10 Introducción a los Sistemas Operativos Distribuidos

SERVICIOS WEB DE MODIFICACIÓN DE LA D.G. DEL CATASTRO Introducción general

Objetos Distribuidos - Componentes. Middleware

Introducción a la computación distribuida

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Transcripción:

PROGRAMACION DISTRIBUIDA Sistemas distribuidos: Mapa conceptual Héctor Pérez 2 Definición de Sistema Distribuido A collection of independent computers that appears to its users as a single coherent system Distributed Systems: principles and paradigms, A. Tanenbaum & M. Van Steen A collection of autonomous computers linked by a computer network with distributed system software Distributed Systems: Concepts and Design, G. Coulouris, J. Dollimore & T. Kindberg A system of multiple autonomous processing elements cooperating in a common purpose or to achieve a common goal Real-time systems and programming languages, A. Burns & A. Wellings A distributed system is a system where I can t get my work done because a computer has failed that I ve never even heard of Leslie Lamport

3 Por qué distribuir el sistema informático? El sistema interactúa con un entorno distribuido geográficamente Hay recursos que son compartidos por muchas aplicaciones Se prevé escalar el sistema en varios ordenes de magnitud Se necesita acumular la potencia de cálculo de muchos computadores El sistema requiere alta disponibilidad 4 Objetivos Permitir el acceso a los recursos disponibles busca optimizar la eficiencia Uso transparente de los recursos acceso local/remoto, concurrente, reubicación, múltiples copias Tolerancia a fallos los fallos afectan parcialmente al sistema distribuido Escalabilidad aumento de recursos/usuarios Integración de sistemas heterogéneos

5 Arquitectura general (1/3) comunicación lógica comunicación lógica comunicación lógica comunicación física La red constituye un recurso compartido Influye en las características del sistema distribuido: escalabilidad, rendimiento, movilidad, fiabilidad, calidad de servicio (QoS), etc. Ej. Ethernet, WiFi, SpaceWire, Can, FlexRay 6 Arquitectura general (2/3) Distributed Operating Systems: Concepts & Practice Doreen L. Galli Un protocolo representa un conjunto de reglas para el intercambio de información Permite la utilización de diferentes redes Ej. TCP/IP sobre Ethernet o sobre WiFi

7 Arquitectura general (3/3) Ada App Java App C App Middleware Android Linux MaRTE OS Windows ARM x86 Can WiFi Ethernet Capa de software entre la aplicación y los servicios de red proporcionados por el sistema operativo Proporciona una abstracción de alto nivel de las comunicaciones Gestiona el proceso de comunicación entre nodos Permite la comunicación entre sistemas heterogéneos 8 Aspectos fundamentales en un sistema distribuido (1/3) Cómo se comunican las aplicaciones distribuidas? visión general de los paradigmas básicos de comunicación

9 Paradigmas de comunicación (1/3) Uso directo de los servicios de comunicación del SO distribución explícita (ej. sockets) propenso a errores en sistemas con múltiples nodos complejidad inherente a un sistema real cómo gestionar la entrada/salida (I/O)? cómo gestionar componente dinámicos? cómo representar adecuadamente un mensaje por la red de comunicaciones? cómo gestionar los mensajes perdidos? necesito utilizar varios protocolos de comunicaciones? o varios lenguajes de programación? 10 Paradigmas de comunicación (2/3) Comunicación basada en invocaciones remotas ejemplo representativo: llamadas a procedimientos remotos (RPC) invocación transparente de subprogramas bool add_user (int id)? Nodos conocidos? Ambos deben estar online para completar la invocación?

11 Paradigmas de comunicación (3/3) Comunicación indirecta mayor desacoplo en las comunicaciones temporal: no es necesario que el emisor y el receptor se ejecuten al mismo tiempo espacial: no es necesario conocer la fuente o el destino de los mensajes ejemplo: colas de mensajes Subscriber C Emitter A Subscriber B Messages service Emitter D 12 Aspectos fundamentales en un sistema distribuido (2/3) Cómo se comunican las aplicaciones distribuidas? visión general de los paradigmas básicos de comunicación Qué entidades componen un sistema distribuido? desde una perspectiva de diseño de alto nivel

13 Abstracciones de alto nivel para la comunicación (1/3) Aplicaciones distribuidas basadas en transacciones invocación coordinada del conjunto de actividades (ACID) Actividad 1 Actividad 2 Actividad 3 Transacción Fase 1: Prepare to commit Fase 2: Execution Preparación para cumplir Listo para cumplir Ejecutar Termina Preparación para cumplir Listo para cumplir Ejecutar Termina Preparación para cumplir Listo para cumplir Ejecutar Termina 14 Abstracciones de alto nivel para la comunicación (2/3) Aplicaciones distribuidas basadas en objetos uso transparente de objetos distribuidos Objetos locales o remotos Objetos remotos con métodos remotos y locales Acceso remoto como si fuera local mediante la interfaz remota (proxy) Distributed Systems: Concepts and Design George Coulouris et al.

15 Abstracciones de alto nivel para la comunicación (3/3) Aplicaciones distribuidas basadas en componentes reutilizables aislamiento componibilidad opacidad Aplicaciones distribuidas basadas en servicios integración con la tecnología www SOAP, XML, HTTP, REST, etc. business-to-business integration 16 Aspectos fundamentales en un sistema distribuido (3/3) Cómo se comunican las aplicaciones distribuidas? visión general de los paradigmas básicos de comunicación Qué entidades componen un sistema distribuido? desde una perspectiva de diseño de alto nivel Qué función desempeña cada nodo? visión general de los paradigmas básicos de interacción

17 Paradigmas de interacción Qué función desempeña cada nodo del sistema distribuido? 18 Arquitectura cliente/servidor La arquitectura cliente/servidor es un paradigma de interacción entre los elementos que constituyen una aplicación distribuida: Clientes: elementos activos que dirigen las actividades que deben ejecutarse para implementar la tarea requerida por la aplicación. Realizan peticiones a los servidores para que ejecuten algunas de esas actividades Servidores: elementos pasivos especializados en realizar ciertas tareas bajo petición de los clientes. Habitualmente representan elementos que son compartidos por múltiples clientes, de una o varias aplicaciones Proporciona un marco de referencia sencillo, flexible y abierto para distribuir la ejecución de una aplicación en varios nodos de una plataforma. Se caracteriza por el acoplamiento entre elementos

19 Arquitectura cliente/servidor: Características Servicios: Facilita la colaboración de procesos que se ejecutan en diferentes máquinas, a través de intercambios de servicios. Los procesos servidores proveen los servicios, los clientes los consumen Recursos compartidos: Los servidores pueden ser invocados concurrentemente por los clientes y, por tanto, debe arbitrarse el acceso a sus recursos compartidos Comunicación asimétrica: Un servidor puede atender a múltiples clientes. El cliente conoce el servidor que invoca. El servidor no necesita conocer el cliente que atiende Independencia de la ubicación: La ubicación de los servidores es transparente al cliente. Se utilizan servicios de localización definidos a nivel de plataforma para que los clientes encuentren a los de servidores Soporte de clientes y servidores heterogéneos: Los mecanismos de interacción entre clientes y servidores son independientes de las plataformas. El middleware independiza la aplicación de la plataforma 20 Cliente/servidor: Estrategias de reparto de la complejidad 2-tier Client/Server Presentation layer Business layer - SQL - Data Access - C API Data access layer 2-tier versus n-tier Cliente pesado Servidor final Costo desarrollo y mantenimiento 2-tier 3-tier n-tier Client/Server Presentation layer - RPC - DOM - MOM - HTTP Business layer - SQL - Data Access - C API Data access layer Complejidad de la aplicación Cliente ligero Servidor aplicación Servidor final

21 Middleware de comunicaciones Entidades de alto nivel para la comunicación Middleware de comunicaciones basado en C/S Invocación remota Comunicación indirecta Servicios de comunicación SO Protocolos de comunicaciones P2P P/S 22 Middleware de comunicaciones: Características Gestiona todos los detalles de bajo nivel relacionados con las comunicaciones (ej. sockets) permite la comunicación transparente entre aplicaciones a nivel de usuario Gestiona las diferencias relacionadas con el hardware, los sistemas operativos y los protocolos de comunicaciones facilita la comunicación entre sistemas heterogéneos Habitualmente proporciona una interfaz estandarizada para el desarrollo de aplicaciones facilita el desarrollo y la interoperabilidad entre aplicaciones Proporciona un conjunto de servicios habituales en sistemas distribuidos servicios de localización de entidades (naming), registro de logs, etc.

23 Middleware de comunicaciones: Estructura (1/2) 24 Middleware de comunicaciones: Estructura (2/2) Addressing o la asignación de referencias que indiquen la ubicación de cada entidad distribuida Marshalling o la transformación de datos a un formato adecuado para su transmisión por la red de comunicaciones Dispatching o la asignación de recursos para el procesado de cada invocación Transport o el establecimiento de un enlace de comunicaciones para el intercambio de mensajes

25 Tecnologías middleware