Taller Distribuidos 2 1. Describa e ilustre la arquitectura cliente-servidor de una de las principales aplicaciones de Internet (por ejemplo el Web, email o netnews). Visitar un sitio web es un ejemplo de la arquitectura cliente/servidor. El servidor web sirve las páginas web al navegador (el cliente). Por ejemplo, si leemos un artículo en cualquier dirección web, la computadora y el navegador web serían considerados un cliente, del otro lado, las computadoras, bases de datos, y demás son considerados el servidor.
2. Para las aplicaciones discutidas en el Ejercicio 1 indique cómo cooperan los servidores al proveer un servicio. Cuando el cliente realiza una petición a un recurso web, los servidores por los cuales pasa dicha petición, cooperan de la siguiente forma: 1- El Servidor DNS, es el que se encarga de convertir una URL ejemplo (www.google.com), en una dirección IP ejemplo (172.9.15.3). 2- Dicha dirección IP antes mencionada, es recibida por el Servidor Proxy el cual cumple las siguientes funciones: Realiza una petición al servidor web donde se encuentra alojado el recurso (haciendo uso de la dirección IP), pidiendo la fecha de expiración del mismo, para tomar una decisión; si el recurso ya había sido solicitado antes, compara las fechas de expiración del recurso, si aún está vigente, devuelve la información alojada en el proxi. Si en el momento de la comparación de las fechas de expiración, no son iguales, el proxi trae todo el contenido ubicado en el Servidor Web lo actualiza y lo muestra al cliente.
3. ¿Cómo están involucrados, en el particionado y/o replicación (o el uso de caché) de los datos de ciertos servidores, las aplicaciones discutidas en el Ejercicio 1?
Particionado: Forma global de la red.
Replicación: Copia de la información en distintos nodos.
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? Una araña web (crawler) es un programa o script automatizado que inspecciona la World Wide Web de una manera metódica y automatizada. Las arañas web son utilizadas principalmente para crear una copia de todas las páginas visitadas para su procesamiento posterior con un motor de búsqueda que creará un índice de las páginas descargadas para proveer búsquedas más rápidas. Los motores de búsqueda envían arañas y robots para visitar su sitio y recolectar páginas web. Cuando un robot visita un sitio web hace una de dos cosas:
Busca el archivo robots.txt y la meta etiqueta robots para ver las “reglas” que se han establecido.
Comienza a crear un índice de las páginas web que hay en su sitio.
El bot explora entonces el texto visible en la página, el contenido de varias etiquetas HTML y los hipervínculos enlistados en la página. Analizará y procesará la información de acuerdo al algoritmo diseñado por su propietario. Dependiendo del motor de búsqueda, la información es indexada y enviada a la base de datos del motor de búsqueda. ¿Cómo se realiza la sincronización de la información obtenida?
Se ubica en un servidor, lo pone en estado off-line y carga la información que trae de toda la búsqueda que realizo en la web, al terminar levanta los servicios de este y continua así del mismo modo con los demás servidores.
5. Sugiera algunas aplicaciones para un modelo entre pares, distinguiendo entre casos en los que el estado de todos necesita ser idéntico y casos que demandan menos consistencia. -
Servicio de video llamada. Sistemas de telefonía por internet (ejemplo: Skype). Intercambio y búsqueda de ficheros (ejemplo: BitTorrent).
6. Tabule los tipos de recursos locales que son vulnerables a un ataque por un programa no fiable que se descarga de un lugar remoto y se ejecuta en un computador local. Los tipos de recurso locales que son vulnerables a un ataque prácticamente de los virus descargados remotamente de internet son: Los recursos hardware como: discos duros, impresora, teléfonos y scanner, que también podrían ser afectados en el daño de sus datos. Los recursos software existentes en el computador junto a su sistema operativo, creando conflictos en él. 7. Dé ejemplos de aplicaciones donde sea beneficioso emplear código móvil. Un corredor de bolsa puede proporcionar un servicio personalizado para notificar a los usuarios los cambios en las cotizaciones: Para utilizar dicho servicio cada usuario debería haber descargado un applet especial, que recibe las actualizaciones del servidor del corredor, las presentan en la pantalla al usuario y quizá realiza las operaciones automáticas de compra y venta desencadenadas por las condiciones prefijadas por el usuario y almacenados localmente en el computador del mismo. 8. ¿Qué factores afectan el modo de comportamiento de una aplicación que accede a los datos compartidos administrados por un servidor? Describa los remedios disponibles y discuta su utilidad. La simultaneidad de acceder a un contenido con necesidad de modificarlo generan un estado de cola, donde los usuarios accedan y modifiquen el contenido según el tiempo de la solicitud. 9. Distinga entre búfer y caché. Se define como buffer a una memoria intermedia, o memoria de almacenamiento temporal de información entre un dispositivo y otro, por ejemplo, la computadora y la impresora, o la computadora y el disco rígido. El buffer almacena los datos a modo de los denominados "paquetes de información" para ser volcados al dispositivo en cuestión. Hecho esto, el buffer se "vacía" y queda disponible para recibir otro "paquete" y repetir así el procedimiento. En cambio cuando hablamos de memoria en "Cache", se puede decir que es un conjunto de datos duplicados de otros, con el propósito de obtener la información en
forma más rápida, cuando el conjunto de los datos originales resultan más difíciles de acceder en tiempo con respecto a la copia en memoria caché. Cuando se accede por primera vez a un dato, este se copia en el caché y cuando se requiera volver a obtener ese dato se accederá al mismo directamente en caché. De esta forma se aumenta la velocidad del proceso dado que se evita el volver a tener que extraerlo del medio en que se encuentra el original. La diferencia entre el buffer y el cache es que, si bien ambos pueden ser considerados como memorias temporales, en el buffer el dato se pierde una vez utilizado para ser reemplazado por otro, mientras que en el cache, permanece mientras el proceso lo requiera accediendo a él tantas veces como sea necesario.
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, hace que el sistema sea tolerable frente a fallos? Fallo Hardware:
Fallo Software:
- Sistema Operativo. - En los puertos de red. - Aplicaciones - Discos Duros. - Procesos - Red (Física). - Procesadores. - Memorias. La redundancia se puede garantizar hasta el momento en que se presentan fallos arbitrarios. 11. Considere un servidor simple, que realiza peticiones de clientes, sin acceder a otros servidores. Explique por qué no es posible en general establecer un límite al tiempo que invierte un servidor en responder una petición de un cliente. ¿Qué habría que hacer para que el servidor fuera capaz de ejecutar respuestas dentro de un tiempo acotado? ¿Es práctica esta opción? Por el lado del cliente no se sabe cuántas peticiones pueda generar, tampoco sabremos a qué tipo de proceso desea acceder, los cuales pueden tardar más o menos dependiendo de su complejidad. Como respuesta a esto podemos tener un tiempo límite estimado para atender las peticiones del cliente, después de un tiempo no atenderá más peticiones. Si el servidor del que estamos hablando tiene como característica la calidad de servicio, seria practico realizar esta técnica.
12. Para cada uno de los factores que contribuye al tiempo que se invierte en la transmisión de un mensaje entre dos procesos sobre un canal de comunicación, enumere que medidas habría que emplear para acotar su contribución al tiempo real. ¿Por qué estas medidas no se incluyen en los sistemas distribuidos de propósito general actuales? Factores: Latencia, ancho de banda, Fluctuación.
Tener una tasa de transferencia mayor, de modo que al momento de compartir el canal las divisiones no sean tan pequeñas. Mejorar la infraestructura física de la red. Mejorar los equipos para que sea más rápido su acceso a la red.
La implementación de estas soluciones, generarían un alza en los costos que no todas las empresas que manejen S.D estarían dispuestos a pagar, principalmente si su sistema no tiene como objetivo la Calidad de Servicio. 13. El servicio del Protocolo de Tiempo de Red se puede utilizar para sincronizar relojes de computadores. Explique por qué, incluso con este servicio, no se puede garantizar un límite para la diferencia de tiempo entre relojes. No se puede garantizar, ya que si el ancho de banda disponible se reduce por todas las peticiones de las computadores para sincronizarse, los paquetes pueden perderse y/o demorarse en llegar a su destino.
14. Considere dos servicios de comunicación para utilizarse en sistemas distribuidos asíncronos. En el servicio A, los mensajes pueden perderse, duplicarse o retrasarse y la suma de chequeo solo se aplica a las cabeceras. En el servicio B los mensajes pueden perderse, retrasarse o distribuirse demasiado rápido para que el receptor pueda recibirlos, pero aquellos que llegan lo hacen en buenas condiciones. Describa las clases de fallo que se presentan en cada servicio. Clasifique sus características según su efecto sobre la validez y la integridad. ¿Puede el servicio B, tal y como se ha descrito, ´ser un servicio de comunicación fiable? Servicio A:
Presenta Fallos Arbitrarios. Presenta Fallos por omisión.
Servicio B:
Presenta Fallos por omisión de recepción y de canal.
El servicio A, no cumple con el concepto de la validez porque los mensajes pueden perderse en cualquier momento durante la comunicación, tampoco cumple con el concepto de integridad ya que eventualmente se generan mensajes duplicados. El servicio B, no cumple con el concepto de la validez porque los mensajes pueden perderse en cualquier momento durante la comunicación. Si se presenta integridad ya que los mensajes que logran ser recibidos son idénticos a los enviados por la otra entidad y no se genera duplicidad de estos. Este fallo de la validez hace que no sea un servicio de comunicación fiable. 15. Considere un par de procesos X e Y que emplean el servicio de comunicación B del Ejercicio anterior para comunicarse entre sí. Suponga que X es un cliente e Y un servidor y que una invocación consta de un mensaje de X a Y, tras lo cual Y obtiene resultado, seguido por un mensaje de respuesta de Y a X. Describa las clases de fallos que pueden presentarse en una invocación.
Presenta Fallos por omisión de recepción y de canal.
16. Suponga que una lectura básica de disco puede leer a veces valores que difieren de los escritos. Indique el tipo de fallo presentado por una lectura básica de disco. Sugiera como puede enmascararse este fallo para producir una forma diferente de fallo benigno. Ahora sugiera como enmascarar el fallo benigno.
En la lectura del disco se están presentando fallos arbitrarios. Mediante el chequeo se logra saber si la información esta alterada, lo cual nos permitirá presentar este fallo arbitrario como un fallo por omisión.
17. Defina la propiedad de integridad de la comunicación fiable e indique todas las amenazas posibles a la integridad para los usuarios y para los componentes del sistema. ¿Qué medidas pueden tomarse para garantizar la propiedad de integridad en presencia de cada una de estas fuentes de ataques? Integridad: El mensaje recibido es idéntico al enviado, y no se reparten mensaje por duplicado. Una amenaza a la integridad son los ataques pasivos en los cuales el atacante no altera la comunicación, sino que únicamente la escucha o monitoriza, para obtener la información que está siendo transmitida. Sus objetivos son la intercepción de datos y el análisis de tráfico. Los ataques pasivos son muy difíciles de detectar, ya que no provocan ninguna alteración de los datos. Sin embargo, es posible evitar su éxito mediante el cifrado de la información.