Resumen Telemática: 2020-2021 Exam PDF

Document Details

StatelyPoltergeist2606

Uploaded by StatelyPoltergeist2606

2021

Tags

telematics distributed systems networking computer science

Summary

This document is a summary for a Telematics exam from 2020-2021. It covers topics such as basic concepts, distributed systems, middleware, system models, networking, interprocess communication and cloud computing. The keywords for the document are telematics, distributed systems and networking.

Full Transcript

RESUMEN TELEMÁTICA Examen 2020-2021 Examen Julio 2020-2021 TEMA 1: BASIC CONCEPTS Sistema Distribuido Conjunto de computadoras interconectadas que trabajan juntas como si fueran un solo sistema. En estos sistemas, las tareas se dividen entre...

RESUMEN TELEMÁTICA Examen 2020-2021 Examen Julio 2020-2021 TEMA 1: BASIC CONCEPTS Sistema Distribuido Conjunto de computadoras interconectadas que trabajan juntas como si fueran un solo sistema. En estos sistemas, las tareas se dividen entre varios nodos o máquinas, y la comunicación entre ellos se realiza mediante redes de comunicación. Cada nodo tiene una tarea específica y se comunica con otros nodos para intercambiar información o para solicitar ayuda para realizar tareas. Sistema Centralizado vs Sistema Distribuido Sistemas Centralizados Sistemas Distribuidos RESUMEN TELEMÁTICA 1 Todos los recursos y datos se Los recursos y datos se encuentran encuentran en un único lugar o distribuidos en varios nodos o servidor. servidores interconectados. Todas las decisiones se toman desde La toma de decisiones se distribuye un único punto de control. entre los nodos. Los usuarios y aplicaciones acceden Los usuarios y aplicaciones pueden a los mismos recursos y datos. acceder a los recursos y datos desde distintos puntos de la red. Es más simple de administrar y controlar. Es más complejo de administrar y controlar. Puede ser menos escalable y tolerante a fallos. Puede ser más escalable y tolerante a fallos. Es más adecuado para aplicaciones y entornos más simples y pequeños. Es más adecuado para aplicaciones y entornos más grandes y complejos que requieren una mayor escalabilidad y tolerancia a fallos. Non-Functional Requirements Los requisitos no funcionales (non-functional requirements) de un sistema distribuido son aquellos que no se refieren directamente a las funciones que realiza el sistema, sino a cómo se realiza su funcionamiento. Definiciones de chatgpt… Escalabilidad: la capacidad del sistema para manejar un aumento en el número de usuarios, datos o transacciones sin degradar el rendimiento. Heterogeneidad: la presencia de múltiples tecnologías, plataformas, lenguajes de programación y sistemas operativos diferentes en el sistema. Compartir recursos: la capacidad del sistema para compartir recursos, como hardware, software, datos y servicios, entre los diferentes componentes y usuarios del sistema distribuido. Tolerancia a fallos: la capacidad del sistema para continuar funcionando en caso de fallo de uno o varios componentes. RESUMEN TELEMÁTICA 2 Concurrencia: la capacidad del sistema para manejar múltiples procesos, tareas o solicitudes simultáneamente. Transparencia: la capacidad del sistema para ocultar la complejidad de la red y los detalles de la implementación a los usuarios y las aplicaciones que interactúan con el sistema. Puede tomar varias formas, como: – Transparencia de acceso: Los usuarios y las aplicaciones pueden acceder a los recursos y servicios del sistema sin necesidad de conocer los detalles de su ubicación o implementación. – Transparencia de ubicación: Los usuarios y las aplicaciones no necesitan saber la ubicación física de los recursos y servicios del sistema, ya que el sistema se encarga de localizarlos y hacer que estén disponibles de manera transparente. – Transparencia de migración: Los recursos y servicios del sistema se pueden mover de una ubicación a otra sin afectar a los usuarios y aplicaciones que interactúan con ellos. – Transparencia de replicación: Los usuarios y aplicaciones no necesitan saber si están interactuando con una única instancia de un recurso o servicio o con varias réplicas distribuidas en diferentes ubicaciones. SCALABILITY: un sistema es escalable si sigue siendo funcional aunque haya un gran aumento de usuarios y de recursos. Es la capacidad de acomodar una carga creciente en el futuro. OPENNESS: es la característica que determina si una aplicación puede ser extendida y re-implementada en diferentes formas. En sistemas distribuidos se logra al especificar la interfaz de software clave del sistema y hacerla disponible para los desarrolladores de software para que el sistema pueda ser extendido de muchas maneras. HETEROGENEITY: variedad y diferencia en – Lenguajes de programación – Sistemas operativos – Plataformas de hardware – Protocolos de red RESOURCE SHARING: que los datos estén en cualquier lado y que puedan ser accesibles en cualquier momento. Recursos como por ejemplo: hardware, software and data, from different “parts” of the system are shared by multiple users. RESUMEN TELEMÁTICA 3 FAULT-TOLERANCE: si tiene la capacidad de aguantar que algo fallo en el sistema. CONCURRENCY: capacidad de procesar múltiples tareas o procesos simultáneamente. En un sistema distribuido, varias tareas pueden ser ejecutadas al mismo tiempo en diferentes nodos o servidores. TRANSPARENCY: el sistema es percibido como un todo y no como un conjunto de componentes distribuidos. Middleware El middleware es un software que actúa como intermediario entre diferentes aplicaciones o sistemas para facilitar la comunicación y el intercambio de datos. El middleware se sitúa entre la capa de hardware (sistema operativo) y la capa de aplicación, proporcionando una abstracción de la complejidad de los sistemas subyacentes y permitiendo que las aplicaciones se comuniquen entre sí de manera eficiente y transparente. Resuelve la heterogeneidad y distribuye transparencia al desarrollador. TEMA 2: SYSTEMS MODELS Physical Models Es la composición del hardware en términos de ordenadores y como se interconectan con las redes. Baseline physical model: Sistemas distribuidos como un extensible set de ordenadores (nodos) interconectados por una red para poder pasarse mensajes entre ellos. Tres generaciones de sistemas distribuidos: Early distributed systems RESUMEN TELEMÁTICA 4 Internet-scale distributed systems Contemporary distributed systems Architectural Models La arquitectura de un sistema es su estructura en términos de componentes separadamente especificados y sus interrelaciones. Enfoque de tres etapas: Core underlying architectural elements Composite architectural patterns Middleware platforms Communicating Entities Perspectiva del Sistema Perspectiva de Programación Las entidades que se comunican en un Los procesos no son suficientes, y se sistema distribuido suelen ser procesos. han propuesto abstracciones más orientadas a problemas: En algunos entornos, las entidades son nodos (redes de sensores) OBJECTS En la mayoría de los entornos de Enfoques orientados a objetos sistemas distribuidos, los procesos (en diseño y lenguajes de se complementan con threads. programación) PROCESS Objetos que interactúan y representan unidades naturales Programa de ejecución que de descomposición. requiere algunos recursos: – Localizaciones de memoria del Los objetos se acceden a través espacio de interfaces con un lenguaje de – Registros del procesador definición de interfaces asociado – Archivos abiertos (o IDL). – Etc. – IDL proporciona una RESUMEN TELEMÁTICA 5 Ejecución secuencial e especificación de los métodos independiente. definidos en un objeto. THREAD COMPONENTS Programa “hilado”: Mayor Respuesta a los problemas de potencial (aumento del objetos distribuidos. rendimiento mediante la Similar a objetos. ejecución de código asíncrono y en paralelo) La diferencia principal es que es un contrato mucho más completo Flujos de control independientes para la construcción del sistema dentro del mismo proceso que → Especifican sus interfaces y comparten datos globales hace sus dependencias (variables globales, archivos, explicitas. etc.), pero tienen su propia stack, variables locales y program Fomenta y permite el desarrollo counter. de componentes por terceros. – Procesos ligeros (contexto más Promueve un enfoque más puro pequeño) de composición eliminando – Necesitan poca memoria dependencias ocultas. – Tienen un bajo coste de WEB SERVICES creación – Modelo adecuado para explotar Basado en objetos y el paralelismo en un entorno componentes: es la multiprocesador. encapsulation del – Mejora el rendimiento de los comportamiento y acceso por sistemas operativos al reducir la interfaces. sobrecarga causada por el Integrado en el World Wide Web. cambio de contexto entre procesos. Ejecución: – Programa en ejecución que comparte la imagen de memoria y otros recursos del proceso con otros threads. – Su ejecución puede ser RESUMEN TELEMÁTICA 6 lanzada en paralelo con otro thread. Communicating Paradigms Hay tres tipos de paradigmas de comunicación: INTERPROCESS REMOTE INDIRECT COMMUNICATION INVOCATION COMMUNICATION Mecanismo que Es un intercambio Es la comunicación permite a los procesos de dos vías entre entre procesos o en un sistema entidades componentes a través distribuido comunicantes, un de un intermediario. comunicarse entre sí y emisor y un Group compartir información. receptor. communication: es Mecanismos: Request-reply un paradigma que Message-passing protocols: da soporte a la primitives → los Protocolos que comunicación one- procesos pueden relacionan un to-many. Depende enviar y recibir intercambio de la abstracción mensajes a través entre parejas de del grupo que un client a un representa el de una cola compartida. server y luego sistema. de vuelta al Socket Publish-subscribe server. El primer programming → systems: sistemas mensaje los procesos de information- enviado es una pueden dissemination que operación a ser comunicarse a en un gran ejecutada. través de una red nombre de utilizando Remote producers protocolos de procedure calls distribuye comunicación. (RPC): información entre Procedimiento los items de en procesos en interés (eventos) RESUMEN TELEMÁTICA 7 Multicast ordenadores similares a un communication → remotos que gran número de los procesos pueden ser consumers. pueden compartir llamados como Message queues: la misma memoria si fueran es un servicio para acceder a procedimientos point-to-point datos comunes. en un local donde los address space. procesos del Ofrece producer pueden transparencia enviar mensajes a de acceso y de una cola ubicación. especifica y los Remote method procesos del invocation consumer pueden (RMI): Un objeto notificar la llegada de llamada de un nuevo puede invocar mensaje en la un método en cola. (FIFO) un objeto Distributed shared remoto. memory: es el Habilidad de concepto de pasar objetos compartir data identificadores entre procesos como que no comparten parámetros en memoria física. llamadas (TUPLES SPACE remotas. HAY QUE PONER Elementos por EL CONCEPTO) poner aquí. XDR , STUB, CORBA, SKELETON RESUMEN TELEMÁTICA 8 Roles and Responsibilities En un sistema distribuido, los procesos asumen roles específicos, y estos roles son fundamentales para establecer la arquitectura general a adoptar. CLIENT-SERVER Es el más importante y ampliamente utilizado. Los servidores pueden ser clientes de otros servidores. PEER-TO-PEER Todos los procesos relacionados en una tarea o actividad hacen el mismo rol. Todos los procesos ejecutan el mismo programa y ofrecen el mismo conjunto de interfaces entre ellos. Los recursos disponibles para ejecutar el servicio crece con el nombre de usuarios. RESUMEN TELEMÁTICA 9 Architectural Patterns: Proporcionan estructuras compuestas recurrentes que han demostrado funcionar bien en circunstancias específicas. No han de ser completas, pero cuando son combinadas guían al diseñador a una solución para un cierto problema. LAYERING Un sistema complejo está dividido en diferentes capas, donde cada capa utiliza los servicios proporcionados por la capa inferior a ella. Las capas de servicios software y hardware: RESUMEN TELEMÁTICA 10 Platform – La capa de hardware y software de nivel más bajo. – Proporciona servicios a las capas por encima de ellos. Middleware – Capa de software cuyo propósito es ocultar la heterogeneidad y proporcionar un modelo de programación conveniente a los programadores de aplicaciones. – Soporte de abstracciones. TIERED ARCHIECTURE Técnica para organizar la funcionalidad de una capa dada y colocar esta funcionalidad en servidores apropiados y, como consideración secundaria, en nodos físicos. Generalmente se asocia con la organización de aplicaciones y servicios. Descomposición funcional de una aplicación dada: Presentation logic: manejo de la interacción del usuario y actualización de la vista de la aplicación. Application logic: procesamiento detallado específico de la aplicación asociado con la aplicación (business logic). Data logic: almacenamiento persistente de la aplicación, típicamente en un sistema de gestión de bases de datos. Arquitecturas de dos y tres niveles: RESUMEN TELEMÁTICA 11 Middleware Solutions El objetivo del middleware es proporcionar una abstracción de programación de alto nivel para el desarrollo de sistemas distribuidos y, mediante el layering, abstraer sobre la heterogeneidad en la infraestructura subyacente para promover la interoperability y la portability. Estas soluciones están basadas en los architectural models. TEMA 3: NETWORKING AND INTERPROCESS COMMUNICATION Networking and Internetworking RESUMEN TELEMÁTICA 12 El networking es el proceso de conectar dos o más dispositivos para permitir la comunicación y el intercambio de datos. En un sistema distribuido, esta conexión puede ocurrir a través de una red local o de área amplia, como Internet. El internetworking se refiere a la conexión de redes diferentes para formar una red más grande y compleja. En un sistema distribuido, esto significa que múltiples redes interconectadas se utilizan para permitir la comunicación y el intercambio de datos entre diferentes sistemas distribuidos. Networking Issues Actualmente, en las redes informáticas han surgido requisitos más estrictos que anteriormente. Performance: velocidad de los mensajes. – Latency → tiempo después de que se ejecuta una operación de envío y antes de que los datos comiencen a llegar. – Data transfer rate → velocidad a la que se pueden transferir datos entre dos ordenadores. – Message transmission time = latency + length / data transfer rate – Access time → Local hard disk > local network > local memory Scalability – Necesario escalar para incluir billones de nodes y cientos de millones de active hosts. Reliability – Capacidad de la red para garantizar que los datos se transmitan de manera segura y sin errores. Security – Firewall → componente de seguridad utilizado en los sistemas distribuidos para controlar y filtrar el tráfico de red que entra y sale de una red. Su objetivo principal es proteger la red y los sistemas conectados a ella de accesos no autorizados y ataques maliciosos provenientes de la red pública, como Internet. Se ubica en la frontera entre la red interna y la red externa. Mobility – Los esquemas de direccionamiento y enrutamiento de Internet no están bien RESUMEN TELEMÁTICA 13 adaptados a la necesidad de los dispositivos móviles de conexión intermitente a muchos subredes diferentes. Quality of Service – Algunas aplicaciones requieren un ancho de banda garantizado y latencias limitadas para los canales de comunicación. Multicasting – Necesaria la comunicación one-to-many. Network Principles Protocols Conjuntos de reglas que se utilizan para establecer y mantener la comunicación entre los diferentes nodos/procesos. Estas reglas describen el formato y la secuencia de los mensajes intercambiados, así como las acciones que se deben tomar en respuesta a diferentes situaciones. Protocol Layers Los protocolos se dividen en capas lógicas que se denominan protocol layers, cada una de las cuales es responsable de una tarea específica en la comunicación de datos. Cada capa proporciona servicios a la capa superior y utiliza los servicios de la capa inferior para llevar a cabo sus funciones. Encapsulation: proceso de envolver los datos de una capa en un encabezado antes de pasarlos a la capa inferior. Cada capa en un protocolo de red tiene su propia estructura de encabezado, que contiene información de control y metadatos RESUMEN TELEMÁTICA 14 relevantes para esa capa. Cuando los datos se transmiten desde una capa a otra, se envuelven en el encabezado correspondiente para esa capa, formando una "unidad de datos" que se transmite a través de la red. Luego, en el extremo receptor, cada capa desempaqueta su encabezado antes de pasar los datos a la capa superior. La encapsulación es importante para garantizar que los datos se transmitan correctamente a través de la red y para proporcionar la información necesaria para realizar las funciones de control y gestión en cada capa. Protocol Suites Grupo de protocolos que trabajan juntos para proporcionar un servicio de red completo. OSI Protocol El modelo OSI (Open Systems Interconnection) es un modelo de referencia para la comunicación de sistemas abiertos. Es decir, es un modelo teórico que define una arquitectura de capas (7) para la comunicación entre sistemas de red. RESUMEN TELEMÁTICA 15 1. Física: Se encarga de la transmisión de datos a través del medio físico. 2. Enlace de datos: Proporciona la detección y corrección de errores, y controla el flujo de datos en la red. 3. Red: Se encarga del direccionamiento y enrutamiento de los datos en la red. 4. Transporte: Proporciona servicios de transporte extremo a extremo, incluyendo control de errores y control de flujo. 5. Sesión: Gestiona la sesión entre dos dispositivos en una red. 6. Presentación: Se encarga de la representación y conversión de los datos a un formato común y entendible para las aplicaciones. 7. Aplicación: Ofrece servicios de red a las aplicaciones del usuario final. Internet Protocols - TCP/IP Suite: – Surge de ARPANET → TCP (Transmission Control Protocol) y IP (Internet Protocol) – Crecimiento extremadamente rápido. – Muchos servicios de aplicaciones y protocolos de nivel de aplicación que existen están basados en TCP/IP. – Originalmente soportaban aplicaciones de área amplia simples, ahora se usa universalmente. Layers: Architecture RESUMEN TELEMÁTICA 16 Transport Layer TCP and UDP protocols Extiende el servicio de la capa de red. Proporcionan una comunicación lógica entre procesos de aplicaciones de diferentes hosts. Distinguen entre múltiples destinos dentro de un host. Se implementan en los sistemas finales (no en los routers). RESUMEN TELEMÁTICA 17 Addressing Transport layer: responsable de entregar mensajes al destino. Utiliza una transport address: dirección y puerto. INTERNET TRANSPORT PROTOCOLS Enviando datos desde un emisor a un receptor. TCP (Transmision Control Protocol) Network level layer: IP protocol → responsable de la transmisión end-to-end de paquetes pero… – No orientado a la conexión. – No garantiza la entrega de paquetes (no fiable) – Los paquetes pueden llegar desordenados. Características: – Orientado a conexión. – Fiable. – Los datos llegan en el mismo orden. – Dos endpoints en una conexión. – Full duplex → ambos puntos pueden transmitir. – La transmisión a través de un byte stream (flujo de bytes). UDP (User Datagram Protocol) Características: – Sin conexión. – Cada mensaje en un datagram. – No fiable. – Los datos pueden llegar desordenados. – Más escalable: – El SO no mantiene un estado para cada cliente. – Menos overhead (sobrecarga) en cada segmento → más eficiencia. PORT “Port” (of protocol) – Punto abstracto de destino de datagramas. – Los procesos se crean y terminan dinámicamente → Los procesos acceden RESUMEN TELEMÁTICA 18 a los puertos para enviar o recibir datos. – Los puertos se identifican con un número entero entre 0 y 65535. Assigning ports – Hybrid approach – Clients: se definen su puerto de manera random. – Servers: se definen su puerto pero no de manera random (los deben conocer los clients) – Los puertos universalmente asignados a servicios importantes son conocidos como los well-known port numbers. – Los puertos disponibles bajo demanda (usados por los clients) son conocidos como los emphemeral port numbers (>1023) Ranges: Interprocess Communication Como el middleware y los programas de aplicaciones pueden usar los protocolos de transporte (TCP y UDP) The API for the Internet Protocols Procesos en diferentes ordenadores. 2 operaciones básicas: enviar y recibir mensajes. También implica la sincronización de procesos. Comunicación: Síncrona (enviar y recibir son blocking operations) Asíncrona (enviar es non-blocking) RESUMEN TELEMÁTICA 19 Interconectados por una red (ejemplo: cliente y servidor) Sockets → abstracción para la comunicación en red. Sockets Interfaz de programación que permiten la interprocess comunication en diferentes hosts a través de la red. Características: Endpoint de una comunicación bidireccional entre procesos. Punto de acceso al servicio de transporte (TSAP) Socket TCP / Socket UDP: comunicación endpoint Combinación de una IP y un puerto. El par de sockets (dirección IP del cliente, número de puerto del cliente, dirección IP del servidor, número de puerto del servidor) identifica de manera única cada conexión TCP. socket(): función que pertenece a la API de Sockets. Socket TCP and Socket UDP RESUMEN TELEMÁTICA 20 External Data Representation En los programas en ejecución (procesos) los datos almacenados se representan como estructuras de datos, mientras que la información de los mensajes consiste en secuencias de bytes. Problemas: Las estructuras de datos deben aplanarse (convertir la estructura compleja en un formato plano y lineal para que se pueda transmitir eficientemente) antes de enviarse y luego reconstruirse. No todos los ordenadores almacenan valores primitivos en el mismo orden (big- endian-order o little-endian-order) Conjunto de códigos utilizados para representar caracteres. Solución: Para que los ordenadores puedan intercambiar datos binarios, los valores se convierten a un formato externo acordado y se transmiten en el formato del emisor. La external data representation → estándar que define la forma en que los datos se representan externamente. Marshalling y Unmarshalling RESUMEN TELEMÁTICA 21 Marshalling Proceso de convertir la representación interna de los datos de una aplicación en una representación que pueda ser transmitida a través de la red. Es decir, se trata de convertir los datos en un formato que pueda ser enviado a través de la red y recibido por otra aplicación en un formato que pueda ser entendido por ella. Unmarshalling → proceso inverso al marshalling, convierte la representación externa de datos en la representación interna de una aplicación, lo que permite que los datos transmitidos a través de la red puedan ser comprendidos y procesados adecuadamente por la aplicación de destino. TEMA 4: REMOTED METHOD INVOCATION Remote object references: Los objetos pueden invocar métodos de un objeto remoto siempre y cuando tengan acceso a la referencia del objeto. Podemos relacionar el concepto de remote invocation con la transparency haciendo que los métodos remotos como si fueran local pero las invocaciones remotas son más vulnerables a los fallos La latencia de una invocación remota puede ser bastante más grande que una local Hay que mantener el estado del objeto consistente en la presencia de accesos concurrentes. A continuación tenemos un esquema de RMI RESUMEN TELEMÁTICA 22 REMOTE REFERENCE MODULE: Es el responsable de traducir las referencias locales y las remotas del objeto. Tambien crea referencias remotas. Tiene una remote object table que guarda las correspondencias entre los objetos locales y remetos(con sus referencias) SERVANT: Es la instancia de una clase que provee el cuerpo de un objeto remoto … RESUMEN TELEMÁTICA 23 TEMA 5: COMPONENT-ORIENTED MIDDLEWARE Components Unidad de composición de aplicaciones con interfaces especificadas mediante contratos, con dependencias contextuales explícitas. Un componente de software puede desplegarse de forma independiente y someterse a la composición de terceros. Caracterísitcas: Se pueden hacer y comprar Se pueden reutilizar !! Componentes de origen (archivo java) Componentes en tiempo de compilación (archivo class) Componentes desplegables (integrados en ese momento, orientados al cliente) Unidades de despliegue: separadas del entorno y de otros componentes. Unidades de composición por terceros: autónomas y interfaces bien definidas. Sin estado persistente: todas las copias son iguales. Dónde se pueden desplegar? → en modelos, plataformas, arquitecturas: Escritorios (Yahoo widgets, Apple Dashboard widgets…) Navegadores (Java applets, Google gadgets) Servidores (web): – Orientados a la presentación (servlets y portlets) – Empresa (Enterprise Java Beans, CORBA components, Microsoft Component Object Model…) Mercado: Mejorar la reutilización del software (reuso de componentes de terceros, COTS) RESUMEN TELEMÁTICA 24 Beneficios de COTS (estabilidad del software, eficacia del software, reducción del tiempo de desarrollo, reducción del coste final) Servlets Programas JAVA que corren en servidores web (mediadores entre navegadores u otros clientes HTTP y bases de datos u otras aplicaciones) Tareas de un Servlet: Leer datos (explícitos) enviados por el cliente (formulario HTML, applet…) Leer datos (implícitos) de la petición enviada por el navegador (cookies, header…) Generar resultados. Requiere hablar con una base de datos, ejecutar un RMI o una llamada CORBA, invocar un servicio Web o generar la respuesta directamente. Enviar los datos explícitos (un documento) al cliente. Formato más común: HTML. Enviar los datos de respuesta HTTP implícitos. TEMA 6: WEB SERVICES — SERVICE- ORIENTED MIDDLEWARE RESUMEN TELEMÁTICA 25 Service-Oriented Computing Los servicios como construcciones para la composición rápida, económica y sencilla de aplicaciones distribuidas, entre diferentes organizaciones. Evolución del concepto software-as-a-service: solicitudes de alquiler a los abonados. Services: Entidades computacionales autónomas e independientes de la plataforma. Ofrecidos por proveedores de servicios e instalados en sus propias máquinas. Web Services Web → prueba de la eficacia de protocolos sencillos en Internet como base de aplicaciones: El protocolo HTTP de request-reply permite a los clientes de uso general (navegadores) visualizar páginas web y otros recursos con referencia a sus URL. Sin embargo, el uso de un navegador de uso general como cliente restringe el alcance potencial de las aplicaciones. Web services → vuelta al modelo en el que el cliente es específico de la aplicación e interactúa con un servicio con una interfaz especializada en funciones: Permiten aplicaciones más complejas. Proporcionan servicios que integran otros servicios. Los navegadores no pueden acceder a ellos directamente (debido a la generalidad de sus interacciones) Web Service vs Web Server: El web server proporciona un servicio HTTP básico. El web service proporciona un servicio basado en las operaciones definidas en su interfaz. Composition of Web Services RESUMEN TELEMÁTICA 26 Una interfaz de servicio permite combinar sus operaciones con las de otros servicios para ofrecer nuevas funcionalidades. Ejemplo: XML Una opción para la representación y marshalling de mensajes intercambiados entre clientes y servicios web. Sobre XML: eXtensible Markup Language Lenguaje autodescriptivo, representación textual Legible → facilidad de depuración SOAP Simple Object Access Protocol. Es un estándar desarrollado por el Consorcio World Wide Web (W3C) SOAP establece: Cómo debe utilizarse XML para representar el contenido de los mensajes individuales. Cómo se pueden combinar un par de mensajes individuales para producir un patrón de request-reply. RESUMEN TELEMÁTICA 27 Las reglas sobre cómo los destinatarios de los mensajes deben procesar los elementos XML que contienen. Cómo deben utilizarse HTTP, SMTP, etc. para comunicar mensajes SOAP. Transporte de mensajes SOAP: Los mensajes SOAP son independientes del tipo de transporte utilizado → sus sobres no contienen ninguna referencia a la dirección de destino. Método HTTP POST utilizado para transmitir un mensaje SOAP: Cabeceras HTTP: URI del receptor final y acción a realizar (el parámetro action optimiza el envío → revela el nombre de la operación sin necesidad de analizar el mensaje SOAP) El cuerpo HTTP transporta el mensaje SOAP. REST REST vs SOAP SOAP es un protocolo de mensajería. REST es un estilo de arquitectura de software para sistemas hipermedia distribuidos. REpresentation State Transfer. Abstracción central: el recurso !! RESUMEN TELEMÁTICA 28 Un recurso en el sentido RESTful es cualquier cosa que tiene un URI (identificador uniforme) Un recurso es un elemento informativo que tiene hipervínculos hacia él (¡los hipervínculos utilizan URI!) Los recursos tienen una representación y un estado. Un cliente RESTful emite una solicitud que implica un recurso. → Si la solicitud tiene éxito, una representación del recurso se transfiere desde el servidor al cliente. El recurso permanece en la máquina de servicio. → Es la representación la que se transfiere de esta máquina a la del solicitante (debe capturar el estado del recurso) Los servicios web RESTful además también requieren operaciones (CRUD) invocadas por el cliente sobre los recursos. → Uso de HTTP más allá de un protocolo de transporte: POST: crea un nuevo recurso a partir de los datos de la solicitud. GET: lee un recurso. PUT: actualiza un recurso. DELETE: borra un recurso. REST - Architectural Constraints Utiliza un modelo client-server: el servidor proporciona recursos a través de una interfaz uniforme y el cliente interactúa con ellos. La comunicación entre el cliente y el servidor es sin estado, lo que significa que cada solicitud del cliente contiene toda la información necesaria para procesarla y no se mantiene un estado persistente en el servidor. Las respuestas deben definirse, implícita o explícitamente, como almacenables en caché o no. Sistema de capas: permite que una arquitectura se componga de capas jerárquicas. Interfaz uniforme: identificación de los recursos (las representaciones es lo que se devuelve al cliente), manipulación de estos a través de las representaciones y mensaje autodescriptivo. RESUMEN TELEMÁTICA 29 TEMA 7: PEER-TO-PEER Motivation El modelo client-server no funciona para distribuir contenido en línea porque no es posible una distribución masiva a través de Internet: Mal funcionamiento del servidor. Mal funcionamiento de la red. La forma de escalarlo es muy complicada. Solución → P2P Model P2P Se busca un sistema escalable y no replicado. Un sistema es más escalable cuanto menor es la dependencia entre partes del sistema. Además, los sistemas P2P crecen con la demanda: mayor demanda → mayor capacidad del sistema. Challenges No hay un sistema central que controle el P2P, aparece espontáneamente. Esto provoca más flexibility, fault tolerance y scalability. Desafíos en estas redes: Búsqueda de contenido. Distribución de contenido. Scalability. RESUMEN TELEMÁTICA 30 Dynamism. Peer Architecture Client: peticiones de búsqueda y enrutamiento. Server: contesta las peticiones y mantiene la tabla de enrutamiento. Network Virtualization P2P está basado en la virtualización de la red, es decir, en la construcción de redes virtuales sobre redes físicas existentes (Internet) Cada red virtual es diseñada para soportar aplicaciones distribuidas concretas y tienen su propio direccionamiento, protocolos y algoritmos de enrutamiento (redefinidos) Overlay Network Una red superpuesta es una red virtual formada por nodos y enlaces virtuales, que se asienta sobre una red subyacente (como una red IP) Ordenadores en lugar de routers. Los desarrolladores redefinen el modo de direccionamiento, los protocolos y el enfoque del enrutamiento. RESUMEN TELEMÁTICA 31 P4P La overlay network no aprovecha la red que hay debajo: Las descargas se realizan desde cualquier peer (puede ser remoto) La red está innecesariamente congestionada. Objetivo: mantener los flujos P2P lo más cerca posible. Mejorar el acceso al servicio del usuario. La red no está congestionada. P4P: Tecnología para que los proveedores de Internet optimicen el tráfico P2P: Minimizar el número de saltos necesarios. Elegir los pares más cercanos. Generations of P2P Systems — creo que esto lo quitaré Primera generación Napster Segunda generación BitTorrent Tercera generación Chord Content Distribution Arquitecturas dispares para distribuir un archivo: Basado en servidor Baja scalability (model inadecuado) RESUMEN TELEMÁTICA 32 Árbol Si se corta la raíz, el resto se queda en nada. El ancho de banda viene determinado por el de los anchos de banda de cualquier nodo. Múltiples árboles distribuidos Demasiado complejo. Mesh + Tracker (Controller) → solución de BitTorrent RESUMEN TELEMÁTICA 33 Basada en los seis grados de separación → Se acaban conociendo todos a partir de un cierto número de saltos. Primer acercamiento para descargar el contenido (Napster / Gnutella): Descargar el archivo entero desde un peer. Si la descarga falla, se repite la búsqueda del contenido y se descarga de nuevo desde otro peer. Desventajas: No hay distribución de la carga. Bajo rendimiento: ancho de banda ascendente/descendente asimétrico (ADSL) Baja fiabilidad. Evolución, el client peer descarga el contenido de múltiples fuentes (BitTorrent): El archivo está dividido en múltiples partes llamadas chunks. Cada miembro del swarm (enjambre) contiene cualquier parte del archivo. Seed: contiene todas las partes. Controller (Tracker) Información sobre los miembros de un swarm (dirección IP) El cliente descarga las partes mientras actualiza otras partes. Ventajas: Si un peer falla, no se pierde el archivo, tan solo alguna parte. El rendimiento mejora. RESUMEN TELEMÁTICA 34 Evolution of P2P Searches Base de datos centralizada (Napster) Flooding (inundación) de consultas (Gnutella) Flooding inteligente de consultas (KaZaA) Tracker (BitTorrent) Enrutamiento estructurado (Tablas Hash distribuidas) Finding Resources Dos soluciones para encontrar los recursos: Redes estructuradas Garantizan encontrar el recurso en pocos saltos. Sin falsos negativos (falso negativo: la búsqueda termina sin encontrar el recurso) Redes no estructuradas Menos eficientes. Pueden producirse falsos negativos. RESUMEN TELEMÁTICA 35 Se adaptan mejor a la entrada y salida frecuente de nodos en el sistema. Unstructured P2P Los peers conservan sus propios objetos. Tienen múltiples cópias. Vecinos Se conocen aleatoriamente. No hay organización de la topología entre peers. Búsqueda Flooding. Structured P2P Los objetos son asignados a los peers. Búsqueda dirigida La búsqueda se envía al peer en el que se supone que está el objeto. Mecanismo de enrutamiento Los objetos tienen su propia dirección. Más sofisticado que el flooding. Limitaciones La gestión de las entradas y salidas de los nodos es costosa. Difícil buscar por palabras clave. Ejemplo: Chord Cada recurso es “asignado” a un nodo. Éste debe saber dónde se encuentra el recurso (aunque no lo gestione) RESUMEN TELEMÁTICA 36 Existe un control estricto de las conexiones de la red superpuestas. Basado en uso de tablas hash distribuidas (DHT) Propiedades: Tablas de ruta N es el número de nodos. Consultas en pasos O(logN) Objetivos: Cientos de miles de nodos. Dinamismo en la entrada y salida de nodos. Estructura de datos Tablas Hash Distribuidas (DHT) Estructura de datos descentralizada. Se asigna un id a cada recurso y nodo mediante una función hash. Mapeo similar a una tabla hash. (name, value) Cualquier participante puede realizar una consulta. Se distribuye la responsabilidad de mantener la tabla. Se crea un espacio de identificadores: Circular y unidimensional. Cada nodo… … maneja un segmento del espacio, asignado según a su id. RESUMEN TELEMÁTICA 37 … debe saber dónde están los recursos de su segmento. … sólo conoce su subconjunto de otros nodos. Las búsquedas se dirigen a los vecinos, en función de la zona a la que pertenece la clave buscada. Espacio identificador: 0…2^m Cada nodo mantiene: Tabla de sucesores m entradas. Entrada i: primer nodo que viene después de id+2^i, 0≤i≤m-1 El primer nodo sucesor de id guarda el archivo u objeto con identificador id. Algoritmo de búsqueda Llega una petición de búsqueda de n a peer con identificador id. 1. Si contiene un objeto con identificador n → se devuelve el objeto. 2. Si no → elige el máximo i: id+2^i≤n y envía la consulta al peer en la posición i de la tabla de enrutamiento. RESUMEN TELEMÁTICA 38 TEMA 8: NAME SERVICES Naming Service: es un servicio independiente utilizado para el proceso cliente para obtener atributos como las direcciones de los objetos Domain names: Namespace for which there is a singles global administrative authority for naming. DNS (Domain Name System): Sistema para resolver el nombre de los dominios. Antiguamente en el DNS la solución era tener un file llamado hosts.txt donde mapeabamos los nombres con las IP Address. Se actualizaba manualmente. Como problemas representaba que no era escalable y habia conflictos con los nombres. Actualmente los customers utilizan un nameserver. Distributed DataBase RESUMEN TELEMÁTICA 39 -Información disponible desde cualquier parte -Tiene una estructura de arbol. Donde cada branca corresponde a una parte de la database y cada nono tiene asociado un nombre -Dominios: son subtrees del namespace, el nombre del dominio es el nombre de la raíz nodo del dominio. Nameserver: contiene información de cualquier porción fronteriza del dominio namespace. La porción del árbol donde contenga información es llamada zona. Zone: parte del dominio namespace. El dominio está dividido en múltiples zonas. Example:.edu in upf.edu, upc.edu, ucsd.edu, berkeley.edu RESUMEN TELEMÁTICA 40 Diferencia: un dominio es un subtree de un namespace, mientras tanto una zona es una parte del DNS namespace que normalmente se ha almacenado en un archivo que contiene información sobre múltiples dominios. Hay dos tipos de servidores, primario y secundario. Primario: recoge la información de un file Secundario: recibe el file de un server primario o secundario Como ventajas presentan fault tolerance y load balancing Nameservers ponen su información disponible para los clientes: Resolvers:Son utilizados por los clientes de la aplicación para resolver una dirección. Con los objetivos de consultar nameservers, interpretar respuestas y devolver respuestar al programa que hemos inicializado una consulta. DNS: Zone files Files with multiple resource records for each zone. Files en formato texto Record types: SOA: autorización por area NS: lista de servidores que son autorizados en la zona A: name to adress mapping PTR: address to name mapping CNAME: utilizado para crear nombres adicionales o alias para hosts CDN: CONTENT DELIVERY NETWORK Problem: massive arrival of requests. RESUMEN TELEMÁTICA 41 Example: CNN and the attack on the twin towers. El load fue doblado cada siete minutos. CDN: Múltiples servers deployed in Inernet for providing content distribution. Imágenes y otro contenido statico consumen un significante bandwidth Las CDN’s proveen un response time más rápido Menos data para transferir desde el servidor de origin hasta un servidor en un nodo. Akamai( me suena que el profe dijo que preguntaria sobre esto): Corporation providing, among other services, a distributed computing platform for global Internet content caching and application sharing. Beneficios: Velocidad más alta, mejor seguridad y escabilidad flexible Actualmente un 85% de los users de Internet estan en una network de un Akamai CDN server. RESUMEN TELEMÁTICA 42 CDN: DYNAMIC DNS Paginas web que contienen links: Links que apuntan a objetos Objetos almacenados en los bordes de los servidores Ejemplo de item: imagen. RESUMEN TELEMÁTICA 43 TEMA 9: INDIRECT COMMUNICATION Comunicación entre entidades de un sistema distribuido a través de un intermediario sin acoplamiento directo entre emisor y receptor(es) Acoplamiento directo → rigidez en el sistema. Mayor dificultad de sustituir el servidor. El cliente debe ocuparse explícitamente de los fallos del servidor. Sin acoplamiento directo (indirect communication) Desacoplamiento espacial No es necesario conocer la identidad del otro participante. Más fácil sustituir, actualizar, replicar o migrar a los participantes. Desacoplamiento temporal El emisor y el receptor pueden tener vidas independientes. Adecuado para entornos volátiles Principal desventaja: sobrecarga de rendimiento introducida por el nivel añadido de indirección. Group Communication Servicio por el que se envía un mensaje a un grupo y luego este mensaje se entrega a todos miembros del grupo. Modelo de programación: RESUMEN TELEMÁTICA 44 Más que un simple multicast (multidifusión) (se envía un mensaje a todos los miembros del grupo mediante una única operación) El grupo está bien definido y gestionado. Entrega ordenada de los mensajes. Tolerancia a fallos, garantías de entrega. Publish-Subscribe Sistema en el que los editores publican eventos estructurados en un servicio de eventos y los suscriptores expresan su interés por determinados eventos mediante suscripciones que pueden ser patrones arbitrarios sobre los eventos estructurados. Tarea: cotejar las suscripciones con los eventos publicados y garantizar la correcta entrega de las notificaciones de eventos. Se trata fundamentalmente de un paradigma de comunicación one-to-many. Dos características principales: Heterogeneidad. Asincronía. Modelo de programación: RESUMEN TELEMÁTICA 45 Paradigma publish-subscribe Message Queues Servicio punto a punto utilizando el concepto de cola de mensajes como indirección. Las colas permiten alcanzar las propiedades deseadas de desconexión espacial y temporal. Punto a punto: el emisor coloca el mensaje en una cola y, a continuación, un único proceso lo elimina. Punto a punto != estilo de comunicación one-to-many de los sistemas de publish- subscribe. Modelo de programación: RESUMEN TELEMÁTICA 46 Paradigma message queues Características principales: La política de colas suele ser el primero en entrar, primero en salir (FIFO) También admite el concepto de prioridad. → Los mensajes de alta prioridad se entregan primero. Un mensaje consta de Cola de destino (identificador único) Metadatos asociados al mensaje (la selección del mensaje se expresa normalmente mediante predicados definidos sobre los metadatos) Cuerpo (normalmente opaco e intacto) Los mensajes son persistentes. RESUMEN TELEMÁTICA 47 Shared Memory Distributed Shared Memory (DSM): Abstracción utilizada para compartir datos entre ordenadores que no comparten memoria física. Los procesos acceden a DSM mediante lecturas y actualizaciones de lo que parece ser memoria ordinaria dentro de su espacio de direcciones. Sin embargo, un sistema de ejecución subyacente garantiza de forma transparente que los procesos que se ejecutan en distintos ordenadores observen las actualizaciones realizadas por los demás. Es como si los procesos accedieran a una única memoria compartida, pero en realidad la memoria física está distribuida. Evita al programador los problemas del paso al escribir aplicaciones. Modelo de programación: Tuple Spaces: RESUMEN TELEMÁTICA 48 Los procesos se comunican indirectamente colocando tuplas en un espacio de tuplas, del que otros procesos pueden leerlas o eliminarlas. Las tuplas no tienen una dirección, sino que se accede a ellas por coincidencia de patrones en el contenido. A su vez, las tuplas consisten en una secuencia de uno o más campos de datos tipificados. En un mismo espacio de tuplas puede existir cualquier combinación de tipos de tuplas espacio. Operaciones: Escribir: añadir una tupla al almacén. Leer: encontrar una tupla coincidente en el almacén. Tomar: eliminar una tupla coincidente del almacén. TEMA 10: DISTRIBUTED FILE SYSTEMS File systems: RESUMEN TELEMÁTICA 49 Se encargan de organizar, almacenar, recuperar, nombrar, compartir y proteger los archivos. Proporcionan una interfaz de programación que caracteriza la abstracción de archivos. Distributed file systems: Permiten a los programas almacenar y acceder a archivos remotos exactamente igual que a los locales, lo que permite a los usuarios acceder a los archivos desde cualquier ordenador de la red. Archivos accesibles a través de la red. Ventajas: Almacenamiento compartido. Acceso de múltiples usuarios. Requirements: Transparency Suele ser el servicio más cargado de una intranet, por lo que su funcionalidad y rendimiento son fundamentales. Transparencia de acceso Los clientes desconocen la distribución de los archivos. Operar con archivos locales o remotos sin modificarlos. Transparencia de ubicación Los programas cliente deben ver un espacio de nombres de archivo uniforme. Los programas ven el mismo espacio de nombres dondequiera que se ejecuten. Transparencia de movilidad No es necesario modificar los programas cliente cuando se mueven los archivos. Transparencia en el rendimiento RESUMEN TELEMÁTICA 50 Los programas cliente deben seguir rindiendo satisfactoriamente. Transparencia de escalado Puede ampliarse para hacer frente a una amplia gama de cargas y tamaños de red. Concurrent file updates Control de concurrencia: Los cambios en un archivo por parte de un cliente no deben interferir con el funcionamiento de otros clientes que accedan simultáneamente a o modificando el mismo fichero. File replication Varias copias en distintos lugares. Compartir la carga (scalability) Mejora la tolerancia a fallos. Hardware and operating system heterogeneity Las interfaces de servicio pueden implementarse para diferentes sistemas operativos y ordenadores (openness). Fault tolerance El servicio sigue funcionando ante fallos del cliente y del servidor. Consistency Semántica de actualización de una copia: Cuando los ficheros están replicados, los contenidos que ven todos los procesos que acceden o actualizan un fichero determinado son los que verían si sólo existiera una única copia del contenido del fichero. Security Todos los sistemas de ficheros proporcionan mecanismos de control de acceso: las listas de control de acceso. En los sistemas de archivos distribuidos, es necesario autenticar las solicitudes de los clientes para que el control de acceso en el servidor se base en identidades de usuario correctas. RESUMEN TELEMÁTICA 51 Efficiency Un servicio de ficheros distribuido debe alcanzar un nivel de rendimiento en comparación con los sistemas de archivos convencionales. Architectures: Arquitecturas client/server tradicionales: Sun NFS (Network File System) Arquitecturas basadas en clústeres (soluciones descentralizadas): GFS (Google File System) Servicios de compartición de archivos: Servidores de archivos (NFS, CIFS, AFA, etc.) Servidores de archivos redundantes (CODA, DFS, etc.) Sistemas de archivos en clúster (GFS, etc.) Discos remotos (iSCSI, FCoE, AoE, etc.) En la nube (Dropbox, Drive, Wuala, etc.) TEMA 11: CLOUD COMPUTING Caracteristicas principales: Los recursos necesarios no han de estar online o desplegados de antemano Es un pay-per-use model: solo para situaciones especificas donde necesitemos los recursos Garantía de calidad: Escalabilidad: el tamaño del servicio que suele ser dinámico segun las necesidades de la demanda RESUMEN TELEMÁTICA 52 Hay tres tipos que dependen según el nivel de abstracción que provee el servicio: INFRASTRUCTURE AS A SERVICE (IaaS) El Cloud soporta recursos de hardware virtuales ya sean , maquinas , redes o almacenamiento Los desarrolladores deben adaptarse, para desplegar y controlar todo el software Permite comprar recursos a demanda, cuando sea necesario en lugar de tener que comprar hardware Es el más flexible computing model, dando a los clientes el completo control de la infraestructura Es altamente escalable Da el control de la infraestructura a organizaciones y el coste depende de lo que se consuma PLATFORM AS A SERVICE (PaaS) Clouds proveen un contenedor(environment) para usuarios para que ejecuten su software Developers teams: pueden utilizar contenedores, database management systems, etc. Paas provee un entorno de software compartido dando a los developers la libertad de concentrar en un sitio el software. Para que no se preocupen por sistemas operativos, software updates o infraestructura. El despliego y el desarrollo lo hace más simple y más efectivas en cuanto a precio. Esta basada en tecnología virtualizada, donde los recursos pueden ser facilmente escalables. Como ejemplo tenemos AWS Elastic Beanstalk RESUMEN TELEMÁTICA 53 SOFTWARE AS A SERVICE (SaaS) Clouds dando acceso a aplicaciones (email clients,etc) a través de la red Es para usuarios normalmente, no para desarrolladores Dirigido desde una localización central Hosted on a remote server. Accesible a través de internet Los usuarios no son responsables del hardware ni de actualizaciones de software Normalmente se ejecutan a través del buscador web Tenemos como ejemplo: Google, Drophox, Spotify, Office 365, Google Docs.. RESUMEN TELEMÁTICA 54 ESQUEMA: los procesos pueden compartir la misma memoria para acceder a datos comunes. RESUMEN TELEMÁTICA 55