Trabajando

Calculadora descentralizada

Publicado el 25 Noviembre, 2019 en Programación y Tecnología

Sobre este proyecto

Abierto

Crear una calculadora descentralizada en java, en donde todos sean clientes y servidores al mismo tiempo. Todos los nodos (conectados por hilos) reciben información y se las mandan a sus células (conectadas por hilos) a través de tcp/ip cada nodo/célula o servidor tiene que tener un puerto diferente, las células reciben la información y la regresan a todos los nodos y a la calculadora. Se pueden crear n nodos, n células y n clientes con la calculadora.


Para la calculadora (el cliente) se necesita una pequeña interfaz de una calculadora.

Algo muy importante es que los mensajes enviados desde el cliente tiene que tener un código de contenido, por ejemplo: la suma = 1, la resta = 2, multiplicación = 3 y división = 4. La interfaz "transforma" los mensajes dependiendo si metemos una suma, resta, etc y lo manda a los nodos, ellos lo mandan a las células, las cuales reciben ese código de contenido y procesan la operación deseada. Cada célula tiene que tener tolerancia a fallas, si por ejemplo tiene una tolerancia a 4 fallas, tenemos que tener 3 instancias más de esa operación .


El broadcast del cliente(interfaz de calculadora) es asíncrona, pero síncrona en el procesamiento. La calculadora manda el mensaje y no tiene que esperar el resultado para poder mandar otra operación, pero sí tiene que esperar a que las 4 instancias de la suma le manden un mensaje diciendo: "recibí operación", esto para ver si se cumple la tolerancia de fallas. El número de acuses de "recibí operación" tiene que ser igual al número de instancias de esa operación.El cliente tiene que esperar los acuses de las instancias para poder procesar otra suma.


Cuando el cliente manda una operación, esta debe de tener un id único de operación que viaja a través de los nodos y llega a las células, las células tienen un id o huella como un timestamp o algo que las distinga.

Debe funcionar así:
Cliente o clientes(puede haber muchas calculadoras) mandan mensaje a través de la interfaz de la calculadora donde se envía su código de contenido, con su huella distintiva, el evento(generado al momento de ejecución) y los datos(3+3).
Pasa por todos los nodos y le llega a todas las células, las cuales responden(sólo las que puedan hacer la suma) con un acuse ("recibí operación"), su huella, el nombre de la célula y el evento que se mandó desde el cliente. Si no le llegan los 4 acuses de la operación, se sigue mandando el mismo evento hasta que le regrese la respuesta.

Los archivos tienen que ser Nodo1 (nodo.jar config.txt), Nodo2...Nodo n y así con todos CelulaServidor(celulaservidor.jar config.txt) CelulaServidor2(celulaservidor.jar config.txt)... CelulaServidor n CelulaCliente(celulacliente.jar config.txt) CelulaCliente2(celulacliente.jar config.txt)... CelulaCliente n

Categoría Programación y Tecnología
Subcategoría Otros
Tamaño del proyecto Pequeño
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite

Duración del proyecto 1 a 3 meses

Habilidades necesarias