How joaoptoaldo/sistemas-distribuidos works
This is a Portuguese-language teaching repository of practical distributed-systems examples, not one integrated application. Its examples demonstrate parallel tasks and thread pools, TCP/UDP sockets, RPC, multicast, JSON handling, and progressively larger exercises such as concurrent log processing and a UDP registration/token protocol. The graph shows documented or indexed calls where supported; several capabilities are represented by their source paths alone because the sampled evidence does not establish their runtime wiring.
Main entry points: LogController.cs Log processing coordinator · ClienteController.cs Registration client · 2.1-threads-pool Thread-pool examples · 1.2-threads Parallel sum and filter
Components 23
Threads and concurrency
- Thread examples
1.1-threads - Parallel sum and filter
1.2-threads - Threaded TCP echo
1.3-threads/csharp/Servidor.cs - Thread-pool examples
2.1-threads-pool
Socket communication
- TCP socket examples
3.1-sockets/src - TCP communicators
3.2-sockets/Sockets TCP (com comunicador)/src - UDP communicator example
3.3-sockets/Sockets UDP (com comunicador)/src
RPC and serialization
- RPC clients
4.1-RPC - gRPC person service
4.1-RPC/C#/Grpc/PersonGrpc.Server/PersonServiceImpl.cs - Person contract
4.1-RPC/C#/Grpc/PersonGrpc.Contracts/Protos/person.proto - JSON examples
7.1-JSON/python
Multicast
- Multicast examples
6.1-multicast
Applied exercises
- Log processing coordinator
desafios/desafio003/DesafioThreadPool/Controller/LogController.cs - Log chunk reader
desafios/desafio003/DesafioThreadPool/Service/LeitorLogs.cs - Log worker pool
desafios/desafio003/DesafioThreadPool/Service/WorkerPool.cs - Result aggregator
desafios/desafio003/DesafioThreadPool/Service/AgregadorResultados.cs - Registration client
desafios/desafio004_UDP/DesafioUDP/Cliente/Controllers/ClienteController.cs - UDP communicator facade
desafios/desafio004_UDP/DesafioUDP/Comunicador/Comunicador.cs - Message protocol
desafios/desafio004_UDP/DesafioUDP/Comunicador/Protocolo.cs - Registration server
desafios/desafio004_UDP/DesafioUDP/Servidor/Controllers/ServidorController.cs - Expiring token
desafios/desafio004_UDP/DesafioUDP/Servidor/Models/Token.cs - Concurrent branch totals
desafios/desafio002/csharp/ex02/Controller/FilialController.cs - Concurrent data loading
desafios/desafio001/java/ex01/src/controller/DadosController.java
Connections 13
- Parallel sum and filter → Thread-pool examples: runs tasks
1.2-threads/java/ex01/src/controller/SomaController.java - Parallel sum and filter → Thread-pool examples: runs tasks
1.2-threads/java/ex02/src/controller/FiltroController.java - Log processing coordinator → Log chunk reader: reads chunks
desafios/desafio003/DesafioThreadPool/Controller/LogController.cs - Log processing coordinator → Log worker pool: submits chunks
desafios/desafio003/DesafioThreadPool/Controller/LogController.cs - Log processing coordinator → Log worker pool: collects results
desafios/desafio003/DesafioThreadPool/Controller/LogController.cs - Log processing coordinator → Result aggregator: aggregates results
desafios/desafio003/DesafioThreadPool/Controller/LogController.cs - Registration client → UDP communicator facade: sends and receives
desafios/desafio004_UDP/DesafioUDP/Cliente/Controllers/ClienteController.cs - Registration client → Message protocol: formats messages
desafios/desafio004_UDP/DesafioUDP/Cliente/Controllers/ClienteController.cs - Registration server → Message protocol: parses messages
desafios/desafio004_UDP/DesafioUDP/Servidor/Controllers/ServidorController.cs - Registration server → Expiring token: checks validity
desafios/desafio004_UDP/DesafioUDP/Servidor/Controllers/ServidorController.cs - UDP communicator facade → Registration client: delegates client mode
desafios/desafio004_UDP/DesafioUDP/Comunicador/Comunicador.cs - Concurrent data loading → Thread examples: runs concurrent tasks
desafios/desafio001/java/ex01/src/controller/DadosController.java - Concurrent branch totals → Thread-pool examples: starts worker threads