In progress

Calculadora descentralizada

Published on the November 25, 2019 in IT & Programming

About this project

Open

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

Category IT & Programming
Subcategory Other
Project size Small
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed

Project duration 1 to 3 months

Skills needed