Computación distribuida



Documentos relacionados
TEMA 1. Introducción a las arquitecturas distribuidas

Cliente/Servidor en Java

Tema 1 Introducción a los Sistemas Distribuidos

Arquitectura cliente/servidor

APLICACIONES DE INTERNET: SOAP

Introducción a la seguridad en redes IP

Tema VI. Servicios Web I. Introducción

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

Arquitectura cliente/servidor

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

Introducción a Sistemas Peer to Peer

PROCESAMIENTO DISTRIBUIDO

Curso JAVA EE

Administración y Seguridad de Sistemas Cloud Computing. Integrantes: Martín Steglich Martín Berguer Raúl Speroni Cristian Bauza

Programación Web Tema 1: Arquitectura C / S

Objetos Distribuidos - Componentes. Middleware

Modelo Cliente / Servidor. Gerardo Grinman 5D

Definición de Sistema Operativo

PROGRAMACION DISTRIBUIDA

IBM Software Group. Daniel de la Fuente Martínez Director Lotus España

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

ANEXO VII Documento de Arquitectura de Software

Punto 1 «Proxy» Juan Luis Cano

Alumno: Grupo: Ejercicio 1. Responda a las siguientes preguntas cortas justificando brevemente su respuesta (3 puntos).

5. Modelos de Sistemas Distribuidos

Qué puede hacer TRBOnet?

Introducción a Web Services

El sistema GFS. Roberto Gómez Cárdenas. The Google File System (GFS)

Modelo OSI. Ing. William Marín Moreno

Sistemas Operativos Distribuidos

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS

Paradigmas/Modelos de SD (3)

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

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Antecedentes de REST: sockets, RPC, SOAP, WSDL

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

Plataformas operativas de tecnologías de información. Proyecto Final

CLASIFICACIÓN DE SERVICIOS EN SOA CONTENIDO

Implementación de Centros de. Computadoras. Implementación del sistema de red, y. redes empresariales

Sistemas Distribuidos

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

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

4.1 Dispositivos y manejadores de dispositivos: device drivers

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

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Manejo de Entrada-Salida. Arquitectura de Computadoras

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO HUAYCÁN (Decreto Supremo No ED y Resolución Directoral No ED)

Tema 1: INTRODUCCIÓN A LOS SISTEMAS DISTRIBUIDOS Sistemas Distribuidos

Desarrollo de Aplicativos con winsockets

Sistemas. Tecnologías de la Información y la Comunicación 1º bachillerato

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

Manejo de Entrada-Salida. Arquitectura de Computadoras

Protocolos PPP, PAP y CHAP

Introducción a la Computación

Introducción (I) La capa de transporte en Internet: TCP es: UDP es:

INFORME TÉCNICO ADQUISICIÓN DE SOFTWARE DE SISTEMA OPERATIVO PARA COMPUTADORAS

Sistemas Operativos Distribuidos

Generador GeneXus JAVA

Enterprise Java Beans. JBoss AS. Ronier Rodríguez

Qué es una red? través de un área geográfica limitada, como un campus universitario, o una base militar.

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

EJERCICIOS DEL TEMA 4

Desarrollo de WebServices- GEL XML

Interoperabilidad Cómputo Cliente/Servidor

Transcripción:

Computación distribuida Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid

Contenidos 1. Qué es computación distribuida 2. Principales paradigmas a) Paso de mensajes b) Cliente/Servidor y Peer-to-Peer c) Procedimientos remotos y métodos remotos d) Servicios de red, Object Request Broker y agentes móviles e) Espacio de objetos y aplicaciones colaborativas 2

Contenidos 1. Qué es computación distribuida 2. Principales paradigmas a) Paso de mensajes b) Cliente/Servidor y Peer-to-Peer c) Procedimientos remotos y métodos remotos d) Servicios de red, Object Request Broker y agentes móviles e) Espacio de objetos y aplicaciones colaborativas 3

Sistema distribuido Sistema en el cual componentes de hardware y software, localizadas en computadores en red, se comunican y coordinan sus acciones sólo por paso de mensajes [Coulouris 2002] Conjunto de computadores independientes que se muestran al usuario como un sistema único coherente [Tanenbaum 2001] 4

Computación distribuida Sistema distribuido Esquemas de computación: Monolítica Paralela Distribuida Cooperativa Computación distribuida: Servicio de red Aplicación de red INTERNET Servidor de red 5

Computación distribuida Ventajas: Reducción del coste del computador y del acceso a la red. Compartición de recursos. Escalabilidad. Tolerancia a fallos. Inconvenientes: Múltiples puntos de fallo. Seguridad. 6

Computación distribuida Conectividad (usuarios y recursos) Desempeño (tiempo de respuesta, productividad) Robustez (disponibilidad y consistencia) Seguridad (autenticación, privacidad y control de acceso) Transparencia (ubicación, acceso, fallas, partición, replicación, migración, etc.) Escalabilidad (tamaño, distancia y gestión) Apertura (Openess) (interfaces, interoperabilidad y portabilidad) 7

Contenidos 1. Qué es computación distribuida 2. Principales paradigmas a) Paso de mensajes b) Cliente/Servidor y Peer-to-Peer c) Procedimientos remotos y métodos remotos d) Servicios de red, Object Request Broker y agentes móviles e) Espacio de objetos y aplicaciones colaborativas 8

Paradigmas de computación distribuida Abstracción: encapsulación o ocultamiento de detalles. Paradigma: un patrón, ejemplo o modelo. Estrategia: identificar los patrones o modelos básicos y clasificar los detalles de acuerdo con estos modelos. Características de las aplicaciones distribuidas: Comunicación entre procesos: una aplicación distribuida requiere la participación de dos o más procesos. Sincronización de eventos: deben de existir mecanismos de sincronización para el correcto envío y recepción de la información. 9

Paradigmas de computación distribuida Los paradigmas se representan clasificados de acuerdo con su nivel de abstracción. alto Espacio de objetos, aplicaciones colaborativas Servicios de red, object request broker, agentes móviles procedimientos remotos, métodos remotos Cliente-servidor, peer-to-peer Paso de mensajes bajo 10

Paradigma de paso de mensajes alto Espacio de objetos, aplicaciones colaborativas Servicios de red, object request broker, agentes móviles procedimientos remotos, métodos remotos Cliente-servidor, peer-to-peer Paso de mensajes bajo 11

Paradigma de paso de mensajes Paradigma fundamental para aplicaciones distribuidas Un proceso envía un mensaje de solicitud El mensaje llega al receptor, el cual procesa la solicitud y devuelve un mensaje en respuesta Esta respuesta puede originar posteriores solicitudes por parte del emisor Proceso A Proceso B m1 m2 Mensaje m3 Paso de mensajes 12

Paradigma de paso de mensajes Las operaciones básicas para soportar el paradigma de paso de mensajes son enviar y recibir Protocolos más comunes: IP y UDP Para las comunicaciones orientadas a conexión también se necesitan las operaciones conectar y desconectar Protocolo más común: TCP Operaciones de Entrada/Salida que encapsulan el detalle de la comunicación a nivel del sistema operativo Ejemplo: el API de sockets 13

Paradigmas cliente/servidor y P2P alto Espacio de objetos, aplicaciones colaborativas Servicios de red, object request broker, agentes móviles procedimientos remotos, métodos remotos Cliente-servidor, peer-to-peer Paso de mensajes bajo 14

Paradigma cliente-servidor Asigna roles diferentes a dos procesos que colaboran: Servidor: es el proveedor del servicio. Espera de forma pasiva la llegada de peticiones. Cliente: invoca peticiones al servidor y aguarda su respuesta. Servidor Cliente 1... Cliente 2 Petición de servicio Proceso cliente Proceso servidor Servicio 15

Paradigma cliente-servidor Proporciona una abstracción eficiente para facilitar los servicios de red. La asignación de roles asimétricos simplifica la sincronización. Paradigma adecuado para servicios centralizados. Ejemplos: servicios de internet como HTTP, FTP, DNS, finger, etc. Implementación mediante sockets, llamada a procedimientos remotos (RPC) o invocación de métodos remotos (RMI). 16

Paradigma peer-to-peer Asignación de roles simétrica: Los procesos participantes tienen el mismo papel Proceso 1 un mismo proceso puede actuar tanto como cliente como servidor Los recursos computacionales y los servicios son intercambiados entre los computadores. Solicitud Respuesta Solicitud Respuesta Ejemplo: servicios de intercambio de ficheros como Gnutella Proceso 2 17

Paradigma híbridos (c/s + p2p) Modelos híbridos cliente-servidor y peer-to-peer Ejemplo: servicio de intercambio de ficheros Napster 18

Paradigma del sistema de mensajes También denominado middleware orientado a mensajes (MOM) El sistema de mensajes actúa de intermediario entre los procesos que se comunican Proceso: Emisión al sistema de mensajes Almacenamiento en la cola asociada al receptor Envío al proceso receptor Receptores... Sistema de mensajes Emisores... 19

Paradigma del sistema de mensajes Comunicación asíncrona y desacoplada. Una vez que el emisor envía el mensaje al sistema de mensajes, queda libre para realizar otra tarea. Existen dos subclases de sistema de mensajes: el punto a punto y el publicación/suscripción. Sistema de mensajes punto a punto: El sistema de mensajes proporciona el middleware que gestiona cada cola de mensajes Envío y recepción están desacopladas: uso del threads o procesos hijo 20

Paradigma del sistema de mensajes Sistema de mensajes publicación/suscripción: Cada mensaje se asocia con un determinado evento. Pasos: 1. Cada participante se subscribe a los mensajes asociados a cada evento (operación suscribir). 2. Cuando el evento ocurre el middleware distribuye el mensaje a todos los subscriptores (operación publicar). Los eventos pueden ser iniciados por cualquier participante. Ejemplos de servicio: MQ*Series de IBM Microsoft s Message Queue (MSMQ) Java s Message Service (JMS) 21

Paradigmas de procedimientos/métodos remotos alto Espacio de objetos, aplicaciones colaborativas Servicios de red, object request broker, agentes móviles procedimientos remotos, métodos remotos Cliente-servidor, peer-to-peer Paso de mensajes bajo 22

Llamadas a procedimientos remotos Objetivo: hacer que el software distribuido se programe igual que una aplicación no distribuida. Mediante el modelo RPC la comunicación se realiza conceptualmente igual que la invocación de un procedimiento local. Proceso A proceso B proc1(arg1, arg2) proc2(arg1) proc3(arg1,arg2,arg3) 23

Llamadas a procedimientos remotos Pasos: A llama al procedimiento remoto de B. La llamada dispara una acción de un procedimiento de B. Al finalizar el procedimiento, B devuelve el valor a A. Simplifica la comunicación entre procesos y la sincronización de eventos. Ejemplos: Open Network Computing Remote Procedure Call, desarrollada a partir del API RPC de Sun Microsystems a comienzo de los años 80 Distributed Computing Environment (DCE) RPC de Open Group Simple objeto Access Protocol (SOAP) 24

Llamada a métodos remotos Primera aproximación al uso de un modelo orientado a objetos sobre aplicaciones distribuidas Objetos distribuidos dentro de una red Los objetos proporcionan métodos, los cuales dan acceso a los servicios Ejemplo: Remote method invocation (RMI) de Java 25

Remote method invocation Modelo equivalente a las llamadas a procedimientos remotos Proceso invoca un método local de otro proceso Se envían tanto los argumentos del método como el valor devuelto por el mismo Proceso 1 Proceso 2 RMI método1 método2 Objeto remoto 26

Paradigmas de Servicios de red, ORB y agentes móviles alto Espacio de objetos, aplicaciones colaborativas Servicios de red, object request broker, agentes móviles procedimientos remotos, métodos remotos Cliente-servidor, peer-to-peer Paso de mensajes bajo 27

Paradigma de servicios de red Servicio de directorio Servicio de directorio: proporcionan la referencia a los servicios disponibles 1 2 3 Solicitante del servicio Objeto de servicio Pasos: 1. El proceso solicitante contacta con el servicio de directorio 2. El servicio de directorio devuelve la referencia al servicio solicitado 3. Usando la referencia, el proceso solicitante interactúa con el servicio 28

Paradigma de servicios de red Extensión del paradigma de invocación de métodos remotos Transparencia de localización: nivel de abstracción extra Ejemplos: Tecnología Jini de Java Protocolo SOAP lo aplica para servicios accesibles en la Web 29

Paradigma basado en Object Request Broker El ORB funciona como una capa middleware. El ORB redirige las peticiones al objeto apropiado que proporciona el servicio solicitado. Extensión a los paradigmas a RMI y servicios de red: Instanciación de clases y objetos Solicitante del objeto Objeto Object Request Broker 30

Paradigma basado en Object Request Broker El ORB actúa como mediador de objetos heterogéneos Ejemplos: CORBA (Common Object Request Broker Architecture) Java CORBA Visibroker de Inspire. IONA de Orbix y TAO de Objet Computing, Inc. Microsoft COM, DCOM. Java Beans y Enterprise Java Beans. 31

Paradigma de agentes móviles agente Computador 2 Agente móvil: programa u objeto transportable. Un agente se lanza desde un ordenador Viaja de forma automática de acuerdo con un itinerario Accede a los recursos o servicios de cada sistema que visita Computador 1 Computador 3 Computador 4 32

Paradigma de agentes móviles Ejemplos: Concordia system de Mitsubishi Electric ITA. Aglet system de IBM. Sistemas experimentales: D agent. Proyecto Tacoma. 33

Paradigmas de Espacio de objetos y aplicaciones colaborativas alto Espacio de objetos, aplicaciones colaborativas Servicios de red, object request broker, agentes móviles procedimientos remotos, métodos remotos Cliente-servidor, peer-to-peer Paso de mensajes bajo 34

Paradigma de espacio de objetos Denominadas tecnologías basadas en componentes. Objeto empaquetado, con formato y especializado. Oculta el nivel de detalle implicado en la búsqueda de recursos y objetos distribuidos. Elimina la declaración de secuencias de sincronización. 35

Paradigma de espacio de objetos Espacio de objetos: entidades lógicas que contiene un conjunto de objetos comunes a los solicitantes Suministrador: provee de objetos al espacio Solicitantes: se subscriben al espacio para acceder a los objetos Solicitante Suministrador Solicitante lectura escritura Espacio de objetos 36

Paradigma de espacio de objetos Espacio virtual o sala de reunión entre los suministradores y solicitantes. Un objeto en el espacio sólo puede ser usado por un participante al mismo tiempo. Exclusión mutua queda asegurada. Solicitantes pueden actuar como suministradores. Ejemplo: JavaSpaces de SUN. 37

Paradigma de aplicaciones colaborativas Groupware: sesión colaborativa en la que participan los procesos. Cada participante puede hacer contribuciones a todo o parte del grupo mediante: a. Multidifusión. b. El empleo de pizarras virtuales. mensaje mensaje mensaje Paradigma groupware basado en mensajes Paradigma groupware basado en pizarra 38

Paradigmas de computación distribuida Los paradigmas presentados: alto Espacio de objetos, aplicaciones colaborativas Servicios de red, object request broker, agentes móviles procedimientos remotos, métodos remotos Cliente-servidor, peer-to-peer Paso de mensajes bajo 39

Paradigmas de computación distribuida Pregunta: Cómo decidir el paradigma más apropiado para una tarea dada? Respuesta: Estudio de las ventajas y desventajas de cada uno de ellos. Factores: Nivel de abstracción frente a sobrecarga. Escalabilidad. Soporte multi-plataforma. Otras consideraciones: estabilidad de la herramienta, tolerancia a fallos, disponibilidad de herramientas de desarrollo, reutilización del código, etc. 40

Computación distribuida Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid