SISTEMAS WEB Y DISTRIBUIDOS
PRÁCTICO #1: Resolver ejercicios del capítulo 1 y 2 del libro Sistemas Distribuidos.
PROFESOR: ALDO MEDINA ESTUDIANTE: ADRIÁN AGÜERO
Encarnación, 27 de agosto del 2.015 PRÁCTICO #1 FECHA: 27-08-15 Ejercicios del Capítulo 1
1.1 Proponga cinco tipos de recursos hardware y cinco tipos de recursos software o de datos que puedan compartirse últimamente. Proponga ejemplos de su uso compartido tal y como ocurre en la práctica en los sistemas distribuidos. Hardware: 1. Impresoras: en una oficina existe un equipo de trabajo con 5 computadoras, las cuales utilizan una sola impresora para la impresión de sus documentos. 2. Virtualización de escritorios: la empresa NComputing ofrece hardware y software que permite conectar periféricos de los usuarios a una sola computadora compartida. 3. HDD: Seagate 1TB Wireless Plus, posee tecnología wifi que le permite estar conectado a múltiples computadoras. 4. Monitor: es un recurso compartido por los programas, ejemplo personajes de un videojuego. 5. Router: Al igual que el dispositivo anterior procesa múltiples peticiones de recepción y envío de mensajes para los procesos pero en este caso de múltiples computadoras. Software: 1. Sistema de base de datos: responde solicitudes de múltiples aplicaciones en un solo computador. 2. Sistema de ficheros: debe ofrecer acceso a los archivos de manera eficiente y controlada en conjunto con los demás componentes del S.O. 3. Fichero de configuración: debe ofrecer acceso para diferentes procesos. 4. Objetos remotos, los cuales deben ser llamados a través de paso de mensajes. 5. Bibliotecas, procesos recurrentes que solicitan funcionalidades 1.2 ¿Cómo podría sincronizarse los relojes de dos computadores unidos por una red local, sin hacer uso de una referencia temporal externa? ¿Qué factores limitarían la precisión del procedimiento propuesto? ¿Cómo podrían sincronizarse los relojes de un mayor número de computadores conectados a Internet? Discuta la precisión de este procedimiento. Una computadora podría brindarle su hora actual a la otra computadora a través de la red. Limitan la precisión de este método los canales de transmisión del mensaje, él cual se puede demorar, perder, retrasar. Podrían sincronizarse utilizando un reloj de referencia externo. Al ser Internet una red inmensa que ocurriría lo mismo que en el caso anterior pero aún de forma más perjudicial. Para ello se definió el protocolo NTP [RFC 1305], el cual considera la latencia de los mensajes. 1.3 Un usuario llega a una estación de ferrocarril que no conoce, portando un PDA capaz de conectarse a una red inalámbrica. Sugiera cómo podría proporcionársele al usuario información sobre los servicios locales y las comodidades en la estación, sin necesidad de insertar el nombre de la estación o sus características. ¿Qué dificultades técnicas hay que superar? Y podríamos realizar una consulta a alguna BD sobre la posición GPS de las estaciones de ferrocarriles y consultar la posición del usuario con los sensores de geolocalización incorporados en el dispositivo PDA, realizar un cálculo para determinar cuál de las estaciones es la más cerca y mostrar dicha información. Si el dispositivo no cuenta con GPS podría simplemente consultar alguna de los sitios web que proporcionan información acerca de la posición GPS de los router.
1
La primera técnica tiene el inconveniente que debe esperar a tener una lectura clara de los satélites para determinar su posición. La segunda es más eficiente pero debemos confiar en que los datos proveídos por estos sitios está actualizada y es correcta. 1.4 ¿Cuáles son las ventajas y desventajas de HTML, URL y HTTP como tecnologías de base para la consulta y visualización de información? ¿Son algunas de estas tecnologías adecuadas como plataforma de cómputo cliente-servidor en general? HTML tiene como ventajas el ser simple y adaptable a casi todo tipo de dispositivo (arduino, tablets, smartphone, computadoras, etc), sin embargo como su propósito era solo el de brindar una estructura al texto no provee de mayor información semántica sobre su contenido. URL tiene la ventaja de ser también muy simple y permite localizar recursos de forma rápida. No tiene desventajas salvo que su actualización requiere de interacción humana siempre y cuando no se disponga de un software que automatice este proceso, y de usarlo incorrectamente se podría dejar link con enlaces rotos. 1.5 Tome World Wide Web como ejemplo para ilustrar el concepto de compartición de recursos, cliente y servidor. Los recursos en World Wide Web y otros servicios se direccionan mediante URL. ¿Que significan las siglas URL? Proporcione ejemplos de tres tipos de recursos web a los que pueda darse un nombre URL: Si tomamos como ejemplo la WWW, que no es sino una plataforma llena de archivos e hipertextos, podemos observar que los navegadores son los clientes, mientras que los servidores responden con un recurso a una solicitud de URL a través de la red. Significa “uniform resource locator” o “localizador uniforme de recursos”. mailto:
[email protected] (mail) ftp: ftp.download.com/adrian.rar (FTP) http://hola.com (HTTP)
2
1.6 De un ejemplo de URL. http://www.hola.com/search/?q=a (HTTP) Enumerelos tres componentes principales de un URL, indicando cómo se delimitan e ilustre cada uno a partir de un ejemplo. ¿Hasta qué límite es transparente a la ubicación en URL? a. Dominio b. Nombre o path del recursos c. Parámetros Ejemplo: Protocolo://máquina.dominio[:puerto]/[recurso]/[?parámetros] Se delimitan como sigue: servidor -> recurso -> parámetros de operación Primero se ubica el ordenador que provee el servicio o recurso, posterior se identifica el recurso o servicio solicitado y por último en el ámbito de ejecución del programa se emplean los parámetros. La URL es extremadamente transparente permite, apoyado en DNS, que una máquina predeterminada responda la solicitud, podría ser otra. El recurso podría ser cualquier tipo de programa que genera algún código entendible por el cliente y finalmente es posible configurar su comportamiento con los parámetros. 1.7 Un programa servidor escrito en un lenguaje (por ejemplo C++) proporciona un objeto BURBUJA al que se pretende que accedan clientes que pudieran estar escritos en un lenguaje diferentes (por ejemplo Java). Los computadores clientes y servidores pueden tener un hardware diferente, pero todas están conectadas a Internet. Describa los problemas debidos a cada uno de los cinco aspectos de la heterogeneidad que necesitan resolverse para posibilitar que un objeto cliente invoque un método sobre el objeto servidor. Problemas de heterogeneidad del hardware: debido a que los datos son representados de diferentes formas en diferentes arquitecturas de hardware. Problemas de heterogeneidad del S.O: debido a que el acceso a los datos y llamadas al sistema varían de acuerdo al sistema operativo usado. Problemas de heterogeneidad con el lenguaje: El uso de lenguajes de programación diferentes evita que el mismo objeto sea portable, porque ambos lenguajes pueden tener representaciones diferentes del mismo y no pueden trabajar con el código móvil tampoco. Problemas de heterogeneidad en la red: al transmitirse los datos por Internet, este pasa a través de muchos dispositivos diferentes que lo modifican y almacenan o reenvían de diferente forma por lo que es necesaria que el mensaje enviado se mantenga fidedigno al que se envió. Problemas de heterogeneidad de mensaje en si mismo, el mensaje debe ser comprensible por ambos sistemas.
3
1.8 Un sistema distribuido abierto permite la adición de nuevos servicios de compartición de recursos como el objeto BURBUJA del Ejercicio 1.7 y que sean accesibles por una variedad de programas cliente. Discuta en el contexto de este ejemplo, hasta dónde las necesidades de extensibilidad difieren de las de heterogeneidad Cuando hablamos de extensibilidad nos referimos a la capacidad que tiene el sistema de agregar nuevas funcionalidades como opciones o servicios mientras que hablamos de heterogeneidad nos referimos a la capacidad que tiene el sistema para soportar nuevos y diferentes sistemas de transmisión o clientes. 1.9 Suponga que las operaciones del objeto BURBUJA están separadas en dos categorías: operaciones públicas disponibles para todos los usuarios y operaciones protegidas disponibles sólo para ciertos conocidos por un nombre concreto. Presente todos los problemas relacionados con la operación de garantizar que solo los usuarios con nombre conocido puedan acceder a la operación protegida. Suponiendo que el acceso a una operación protegida da información que no debiera revelarse al resto de los usuarios. ¿Qué problemas aparecen? Aparecen problemas de seguridad, se debe prever un sistema de identificación de usuarios para garantizar que los usuarios que acceden a la parte sensible de nuestro sistemas están autorizados a ello. Garantizar este reconocimiento supone una mayor carga para el sistema como encriptación y una gestión de usuarios. 1.10 El servicio INFO admite un conjunto de recursos potencialmente muy grande, cada uno de los cuales puede ser accedido por usuarios de Internet mediante una clave (en forma de
). Discuta una aproximación al diseño de los nombres de los recursos que logra la mínima pérdida de prestaciones según crece el número de recursos en el servicio. Sugiera cómo puede implementarse el servicio INFO para evitar cuellos de botella en las prestaciones cuando el número de usuarios se vuelve muy grande. Los recursos deberán utilizar un número entero ID que facilite su identificación y rápida obtención por parte del servicio. A medida que crece el número de usuarios se deberá pensar en implementar una replicación de la BD para así duplicar aproximadamente el número de respuesta. 1.11 Enumere los tres componentes software principal que pueden fallar cuando un proceso cliente invoca un método en un objeto servidor, proporcionando un ejemplo del fallo en cada caso. A qué dimensión son independientes unas de otras estas fallas? Sugiera cómo construirse los componentes para tolerar sus fallos mutuamente. Fallo de sistema, un sistema operativo puede fallar debido a una sobrecarga de pedidos en su cola, como en un ataque de denegación de servicio. Fallo de proceso servidor, una aplicación de base de datos pueda fallar debido a que su disco se lleno, la aplicación no debe dejar de funcionar, debe utilizar la siguiente BD disponible. Fallo del proceso cliente, si el cliente deja de existir, el servidor debe ser tolerante a esta falla. Cada una es independiente de la otra. Y debe existir redundancia y control y recuperación ante errores.
4
1.12 Un servidor mantiene un objeto de información compartida tal como el objeto BURBUJA del Ejercicio 1.7. Argumente en pro y en contra de si admitir que las peticiones de los clientes se ejecuten concurrentemente en el servidor. En este caso, de un ejemplo de posibles “interferencias” que pudiera aparecer entre las operaciones de diferentes clientes. Sugiera cómo puede prevenirse tal interferencia. Los pro con respecto a permitir las peticiones concurrentes es la mejora en performance; la desventaja es que se debe agregar métodos de control para evitar inconsistencias al utilizar el objeto. Un ejemplo puede ser, la modificación de un archivo por dos procesos simultáneos puede ocasionar que este quede corrupto porque mientras uno aún no ha terminado de escribir, el otro también escribe. Solución usar Semáforos u otro sistema de sincronización. 1.13 Varios servidores implementan cierto servicio. Explique porqué pueden transferirse los recursos entre ellos. Sería satisfactorio para los clientes la multidifusión de todas las peticiones al grupo de servidores como una medio de obtener la transparencia en la movilidad para los clientes? Pueden transferirse los recursos a través de la red y aplicando semáforos u otros métodos. Si sería satisfactorio porque de esa forma los servidores podrían auto-organizarse para responder de la forma más eficiente las peticiones. Por ejemplo el servidor más cercano responderá la solución.
5
Ejercicios Capitulo 2 2.1 Describa e ilustre la arquitectura cliente-servidor de una o más aplicaciones de Internet (por ejemplo la web, email o foros de noticias).
Mail: El cliente de correo, solicita al servidor MTA enviar un mail. El servidor recibe el mail y a su vez lo traslada al MTA al que corresponda ese mail, finalmente un servidor POP, actúa de cliente y pregunta al servidor MTA si existe correo nuevo, este lo copia. Cuando el cliente de correo del destinatario consulte a su POP/IMAP recuperar el correo enviado. 2.4 Un motor de búsqueda es un servidor web que ofrece a los clientes la oportunidad de buscar en ciertos índices almacenados y (concurrentemente) lanzar varios escaladores web para construir y actualizar estos índices. Cuáles son los requisitos de sincronización entre estas actividades concurrentes? Debe estar sincronizados de tal forma que los escaladores actualicen los índices mientras los clientes no solicitan una búsqueda, al solicitarla se puede realizar ésta. Pero siempre balanceando ambas actividades. 2.7 De ejemplos de aplicaciones donde sea beneficiosos emplear código móvil. Para validar un formulario, el servidor además de enviar el formulario envía código js para validar del lado del cliente ese mismo formulario y así no tener que responderle si comete algún error, que era evitable.
6
2.9 Distinga entre búfer y cache. Buffer: es un espacio de memoria, en el que se almacenan datos de manera temporal, normalmente para un único uso (generalmente utilizan un sistema de cola FIFO); su principal uso es para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede sin datos durante una transferencia (entrada/salida) de datos irregular o por la velocidad del proceso. Caché: es la memoria física de acceso rápido de una computadora, que guarda temporalmente los datos recientemente procesados. Diferencia: Una memoria caché puede ser usada a veces como un búfer, y viceversa. Sin embargo, una caché opera con el supuesto de que los mismos datos van a ser utilizados múltiples veces, que los datos escritos serán leídos en un periodo corto de tiempo, o teniendo en cuenta la posibilidad de múltiples lecturas o escrituras para formar un único bloque más grande. Su premisa básica es reducir los accesos a los almacenamientos de nivel más bajo, los cuales son bastante lentos. La caché también es normalmente una capa de abstracción que está diseñada para ser invisible. 2.10 De algunos ejemplos de fallos en el hardware y el software de un sistema distribuido que puedan o no ser tolerados mediante el uso de redundancia. En qué punto podemos asegurar que el empleo de redundancia, cuando sea adecuado, hace que el sistema sea tolerante frente a fallos? Para casos en que un servidor se queda sin conexión de red, un disco se avería o una computadora falla por la temperatura. La redundancia posibilita que el sistema sea tolerante a fallas, sin el mucho datos se perderían irremediablemente.
7
Bibliografía Sistemas Distribuidos, Colouris
8