ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sistemas distribuidos


Enviado por   •  23 de Octubre de 2022  •  Trabajos  •  1.372 Palabras (6 Páginas)  •  153 Visitas

Página 1 de 6

[pic 1]

Objetivos Generales

  • Poner en práctica conceptos de sistemas distribuidos en un problema práctico del mundo real.
  • Implementar, mediante el uso de la librería ZMQ, una aplicación funcional, utilizando patrones de comunicación síncronos y asíncronos.
  • Afianzar los conceptos de control de control de fallos y concurrencia de un Sistema Distribuido
  • Realizar métricas de desempeño y calidad asociados a la implementación de un sistema distribuido.
  • Analizar el rendimiento de una aplicación en un entorno distribuido

Objetivo Específico

Apropiar el uso de ZMQ, a través de la implementación de un sistema de balanceo de carga por software, para distribuir las cargas recibidas por parte de diversos clientes, realizando un manejo equilibrado con el algoritmo Round Robin.

Descripción del Sistema a desarrollar

El proyecto se focalizará en la implementación y uso de mecanismos de invocación de métodos remotos, para ofrecer un servicio de balanceo de cargas en un sistema distribuidos de una tienda de comercio electrónico. Las conexiones se harán utilizando la librería ZMQ y los patrones de comunicación cliente/servidor y publicador/suscriptor.

Contexto

Un balanceador de carga es un proxy inverso que se sitúa delante de un conjunto de servidores y gestiona las solicitudes entrantes, con el fin de repartir el trabajo solicitado por diferentes clientes entre diferentes servidores. Los propósitos de un balanceador de cargas son, entre otros, gestionar la carga entrante para distribuirla de forma equitativa entre los diferentes servidores, permitir mayor eficiencia de los dispositivos de seguridad al enfrentar ataques virtuales, ofrecer transparencia a los usuarios en caso de fallas en alguno de los servidores.

El proyecto consiste en desarrollar e implementar un balanceador de cargas que permita hacer la distribución correspondiente entre diferentes servidores de las peticiones de compra de los clientes de una tienda virtual. Los usuarios aceden al servicio web a través de una única URL, asociada a una dirección IP.

[pic 2][pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9]

Fig. 1. Arquitectura general del sistema de tienda virtual

Clientes

Los clientes pueden realizar operaciones de consulta o compra de artículos. En la operación de consulta se le debe mostrar al cliente los artículos disponibles y con base en esta información el cliente decide que artículos comprar.  Los clientes se pueden simular utilizando hilos con el fin de realizar las operaciones de consulta o compra de artículos y pueden provenir de una única máquina física. La comunicación entre los clientes y el balanceador de cargas debe hacerse por medio del patrón cliente/servidor de la librería ZMQ. Se deben simular mínimo 10 clientes y aumentarlos para las pruebas de rendimiento.

Balanceador de cargas

El balanceador de cargas recibe las peticiones de cada cliente y las asigna a los servidores de acuerdo con el algoritmo Round Robin. La comunicación entre el balanceador de cargas y los servidores debe hacerse por medio del patrón publicador/suscriptor de la librería ZMQ[1]. El balanceador de cargas recibe las respuestas procesadas de los servidores y las entrega a los clientes.

Servidor

Recibe las solicitudes del balanceador de cargas y realiza la operación correspondiente (Lectura o escritura) de la base de datos y la envía al balanceador de cargas. Después de que el servidor realiza la operación correspondiente la comunica al balanceador de cargas. Se deben tener mínimo tres servidores separados, es decir, cada uno con su propia dirección IP.

Base de datos

En la base de datos se mantiene el estado de cada uno de los artículos de la tienda virtual y la información debe ser consistente. Se debe tener en cuenta que varios clientes pueden solicitar el mismo artículo al mismo tiempo (concurrencia) y en algún momento no se podría satisfacer la demanda. Si esto ocurre, se le debe informar al usuario y mostrarle nuevamente los artículos disponibles y sus cantidades.

Tolerancia a Fallas

Se debe implementar una arquitectura tolerante a fallas, considerando una posible falla de uno de los servidores, de manera que debe existir un proceso encargado de chequear que todos los monitores están o no en funcionamiento (health check). Cuando se detecte la falla, se debe asignar esta carga a otro servidor de acuerdo con el algoritmo Round Robin (se puede adaptar, según como lo considere el grupo, pero quehaya distribución de cargas) de forma automática, ofreciendo transparencia al usuario, quien no se dará cuenta de lo ocurrido.

RENDIMIENTO DEL SISTEMA

Variables para medir el rendimiento del sistema

1. Se deben definir variables que permitan medir el rendimiento del sistema, por ejemplo: tiempos de almacenamiento en la base de datos, tiempo que tarda en llegar una solicitud a los servidores (desde el cliente hace una solicitud, hasta que recibe la respuesta), utilización de los procesadores, etc.  Debe definir al menos dos tipos de variables.

2. Establezca el procedimiento para tomar el valor de dichas variables, por ejemplo, va a instrumentar el programa, va a usar ciertas herramientas especiales de monitoreo, ¿cuáles serán?, etc.

...

Descargar como (para miembros actualizados)  txt (9.1 Kb)   pdf (193.3 Kb)   docx (106.3 Kb)  
Leer 5 páginas más »
Disponible sólo en Clubensayos.com