Este proyecto implementa un sistema distribuido usando ZeroC ICE, donde:
- Un nodo maestro en Python distribuye el trabajo.
- Múltiples nodos trabajadores en Java procesan archivos de texto.
- Los resultados se combinan para obtener estadísticas globales como el conteo de palabras y contexto.
maestro: Nodo maestro que coordina los procesos (Python + Flask).nodo_java: Nodo(s) trabajador(es) en Java.shared: Archivos.icecompartidos que definen las interfaces ICE.texts: Archivos de texto para análisis.referencias: Resultados opcionales con contexto.
graph TD
A[Archivo de texto] --> B[Maestro]
B --> C1[Nodo Java 1]
B --> C2[Nodo Java 2]
B --> C3[Nodo Java 3]
B --> C4[Nodo Java 4]
C1 --> B
C2 --> B
C3 --> B
C4 --> B
B --> D[Usuario final]
- El usuario sube un archivo
.txty define palabras a buscar. - El nodo maestro divide el archivo en partes iguales.
- Cada chunk se envía por red a un nodo trabajador vía ICE.
- Cada nodo analiza su parte (conteo y contexto si se desea).
- El maestro junta los resultados y los muestra en la web.
- ZeroC ICE: Framework de comunicación RPC distribuido.
- Python + Flask: Frontend simple para interacción web.
- Java: Nodos trabajadores concurrentes.
- Docker + Docker Compose: Orquestación y aislamiento de cada servicio.
- Weave Scope: Visualización de contenedores y red.
docker-compose up --buildLuego, abre http://localhost en tu navegador y carga un archivo .txt.
Sebastián Puentes — 2025