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ó[login to view URL] 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 ([login to view URL] [login to view URL]), Nodo2...Nodo n y así con todos CelulaServidor([login to view URL] [login to view URL]) CelulaServidor2([login to view URL] [login to view URL])... CelulaServidor n CelulaCliente([login to view URL] [login to view URL]) CelulaCliente2([login to view URL] [login to view URL])... CelulaCliente n. Los programas tienen que correr desde la consola de Windows
Hello.
I have experiences with lots of project.
Your project is for me, I think.
If you send me a message, we can discuss more.
I am waiting for your reply.
Thank you.
⭐⭐⭐⭐⭐
Hola, leí los detalles del trabajo de su proyecto y estoy absolutamente seguro de que puedo hacer este proyecto muy bien, tengo más de 5 años de experiencia en él.
Tengo 5 Star Rating⭐⭐⭐⭐⭐ en Freelancer.com
Yo proveo -
- Servicios 24x7 para mis clientes (la razón por la cual mis clientes me aman y se levanta)
- 1 mes de servicio gratuito después de la finalización del proyecto
- Desarrollo en nuestro servidor de prueba al inicio y realizará la migración después de todo completado y aprobado
Hace más de 5 años que presto servicios aquí
He reunido más de 1000 comentarios en mi mercado sin conexión, he completado más de 1500 proyectos
Estar en el Top Rankings en Freelancer
He trabajado en todo tipo de proyectos pequeños, medianos o largos
Envíame un ping en cualquier momento, siempre estoy allí para ayudarte (24x7)
Gracias