Download Plataformas de Distribución
Document related concepts
no text concepts found
Transcript
Plataformas de Distribución Prog. Distribuida bajo Internet Plataformas de Distribución Introducción – – Bajo Nivel – – – Llamada a procedimiento remoto (RPC) Invocación a Objeto Remoto (ROI) Alto Nivel – – 2 Sockets PVM Nivel Intermedio – Modelo ISO/OSI Niveles de abstracción Erlang Oz 16-2-2006 Prog. Distribuida bajo Internet Modelo ISO Descomposición en niveles – – Cada nivel trata un aspecto específico de la comunicación Cada nivel usa el inferior, da soporte al superior, incluye su cabecera Bajo nivel (físico, enlace, red) Transporte Alto nivel (sesión, presentación, aplicación) Middleware.- sustituye a sesión y presentación. Ofrece protocolos a las aplicaciones – Autenticación, compromiso atómico, reservas distribuidas, comunicación de alto nivel 3 16-2-2006 Prog. Distribuida bajo Internet Niveles ISO Físico.- transmite bits – Enlace.- comunicación libre de errores – Divide mensaje en paquetes, retransmite los que no llegan a destino Sesión.- Control conversación, facilidades de sincronización – Tramas de bits, detección errores, mensajes control, retransmisión Red.- encamina paquetes entre máquinas (ej.- IP) Transporte.- asegura la fiabilidad de las comunicaciones – ¿velocidad? ¿Conectores? ¿señales eléctricas? Ej TCP (mensajes fiables con conexión), UDP (no fiables, sin conexión) Presentación.- Interpreta significado de la información recibida Aplicación.- protocolos que dotan de funcionalidad al sistema – Ej FTP, HTTP, Mail, etc. 4 16-2-2006 Prog. Distribuida bajo Internet Niveles Abstracción Plataforma de distribución = soft que proporciona transparencia a las aplicaciones – – Bajo Nivel (ej.- sockets, PVM) – – – Proporciona nivel de transporte y sesión Permite intercambio de datos no interpretados entre componentes Componentes en direcciones conocidas Nivel Intermedio (Ej.- RPC, RMI, CORBA, DCOM, .NET) – – Abstracciones para direccionamiento, sincronización, representación datos Facilidades para movilidad, calidad de servicio e interoperabilidad Proporciona niveles de presentación y sesión Automatiza la codificación y transferencia de parámetros Alto Nivel (ej.- Erlang, Oz) – – – Proporcionan sesión, presentación y aplicación Los mecanismos de comunicación forman parte integral del sistema Asociados a lenguajes y entorno de programación concretos 5 16-2-2006 Prog. Distribuida bajo Internet Niveles Abstracción (cont.) Remote Procedure Call: hides communication details behind a procedure call and helps bridge heterogeneous platforms sockets: operating system level interface to the underlying communication protocols TCP, UDP: User Datagram Protocol (UDP) transports data packets without guarantees Transmission Control Protocol (TCP) verifies correct delivery of data streams Remote Procedure Call sockets TCP, UDP Internet Protocol (IP): moves a packet of data from one node to another Internet Protocol (IP) 6 16-2-2006 Prog. Distribuida bajo Internet Bajo nivel.- Sockets Disponible en cualquier plataforma – – Proporcionan interfaz de programación para – – Bajo coste (0 en internet) Base para plataformas de mayor nivel TCP/IP.- orientada a conexión (flujo de datos) UDP/IP.- sin conexión, no fiable Direccionamiento: (nombre host, port) – – – Port = 0..2^16-1 En redes locales puede usarse multicast (grupo de receptores) Los participantes consensúan nombres de máquinas y nums port 7 Mismos números de port en todos los nodos Mapping entre nombres de servicio y números de port Los más conocidos registrados en internet (ej news:119, http:80, date:13,..) 16-2-2006 Prog. Distribuida bajo Internet Bajo nivel.- Sockets (cont.) La aplicación debe: – – Establecer protocolo Empaquetar/desempaquetar datos (se transfieren bytes no interpretados) El receptor debe saber cómo interpretar los datos En entornos heterogéneos, consensuar formato común (ej.- tiras) Servidor = proceso que espera conexiones (solicitudes) en un port 8 16-2-2006 Prog. Distribuida bajo Internet Bajo nivel: PVM Plataforma para procesamiento paralelo – – Organización jerárquica de tareas – – Asume estaciones de trabajo homogéneas en red Cada host ejecuta un demonio PVM Toda tarea posee un identificador único Cada tarea puede ejecutarse en cualquier host Diseño Maestro/Esclavo. La tarea maestra: – – – Arranca varias tareas esclavas, que se ejecutan en paralelo Le pasa a cada una parte de los datos Recoge los resultados parciales y construye resultado final 9 16-2-2006 Prog. Distribuida bajo Internet Bajo nivel: PVM (cont.) Oculta la red – Direccionamiento basado en identificadores de tareas – El emisor envía el mensaje de forma asíncrona a una o más tareas (identificadores) Codificación común de los datos Pero no los protocolos (la aplicación debe interpretar los mensajes) 10 16-2-2006 Prog. Distribuida bajo Internet Nivel Intermedio Facilitan desarrollo de sistemas distribuidos Cliente/Servidor Extienden lenguajes de programación existentes – – Utilizan las mismas abstracciones (procedimiento, objeto) Invocante e invocado pueden residir en nodos distintos Nueva capa entre aplicación y red. Oculta: – – Detalles de comunicación Mecanismo de transferencia de datos 11 Codificación y transferencia de parámetros y resultados Referencias 16-2-2006 Prog. Distribuida bajo Internet Nivel Intermedio (cont.) Propuestas – – RPC (invocación de procedimiento remoto) ROI (invocación de método sobre objeto remoto) 12 Estándar (multilenguaje).- CORBA Específico para Java.- RMI, EJB Específico para Windows, multilenguaje.- .NET 16-2-2006 Prog. Distribuida bajo Internet RPC Procedimiento – – Abstracción habitual en programación Caja negra.- argumentos [proc] resultado El programa invocante pasa args y espera respuesta El procedimiento invocado se ejecuta y devuelve resultado Podemos situar invocante y procedimiento en nodos distintos, unidos por una red – – – Se denomina Invocación de Procedimiento Remoto Un mecanismo de invocación oculta la interacción entre nodos Buscamos transparencia de ubicación (misma sintaxis para invocar procedimiento local y remoto) 13 16-2-2006 Prog. Distribuida bajo Internet ROI Similar a RPC – – También utiliza el modelo Cliente/Servidor Al usar objetos, podemos proporcionar servicios con estado Invoca un método con transparencia de ubicación – – Si el objeto es local, invocación normal Si es remoto 14 Objeto remoto y stub cliente (proxy) implementan el mismo interfaz El proxy envía la invocación al stub servidor (esqueleto) El esqueleto invoca el método sobre el objeto 16-2-2006 Prog. Distribuida bajo Internet ROI.- ORB ORB (Object Request Broker) – – Gestor de invocaciones a objetos Proporciona servicios usados por proxies, esqueletos, y código de las aplicaciones – Básicamente dirige las invocaciones a los esqueletos apropiados en el nodo adecuado Todo objeto invocable debe registrarse en el ORB 15 El ORB crea el esqueleto 16-2-2006 Prog. Distribuida bajo Internet Alto Nivel: Erlang Lenguaje abierto desarrollado por Ericsson – – Para su OTP (infraestructura para aplicaciones de telefonía) Util para sist. distribuidos tolerantes a fallos con ‘soft real-time’ Características – – Funcional (similar a Lisp) Proporciona procesos ligeros 16 Sólo se comunican mediante mensajes Pueden lanzarse procesos en otros nodos Transparencia de ubicación (direc. basado identidad del proceso) Dispone de enlace y carga dinámicos (facilita migración) 16-2-2006 Prog. Distribuida bajo Internet Alto Nivel: Erlang (cont.) – Facilita la programación dirigida por eventos – Sistema concurrente como colección de autómatas finitos intercomunicados Favorece el desarrollo de sistemas fiables Recuperación ante fallos El sistema envía mensajes especiales si un proceso remoto finaliza o falla – Gestión del tiempo real pasiva – 17 Podemos diseñar mecanismos de recuperación ante fallos Limitamos el tiempo de espera a un mensaje, pero no controlamos el envío de mensajes 16-2-2006 Prog. Distribuida bajo Internet Alto Nivel: Oz Es un lenguaje académico (investigación) Es concurrente y multiparadigma. Soporta: – – – Programación declarativa Programación funcional Programación Orientada a Objetos Proporciona un mecanismo de paso de mensajes asíncrono entre tareas 18 16-2-2006 Prog. Distribuida bajo Internet Alto Nivel: Oz (cont.) Proporciona Transparencia de: – – Acceso Ubicación – – Concurrencia Migración Invocación de métodos idéntica para objeto local y remoto Utiliza movilidad de objetos Los procesos migran de forma transparente al nodo que los utiliza de forma activa Dispone de soporte parcial para detectar y recuperar fallos 19 16-2-2006 Prog. Distribuida bajo Internet