Academic repository containing practical distributed systems implementations using C, Python, and Java.
This repository contains distributed computing experiments and communication systems developed for Distributed Systems studies.
The projects explore practical concepts related to Remote Procedure Calls (RPC), multicast communication, distributed architectures, interprocess communication, and distributed services.
Main topics explored in this repository:
- Remote Procedure Call (RPC)
- Distributed computing
- Client-server architecture
- Multicast communication
- Distributed services
- Interprocess communication
- Distributed object references
- Network programming
- Middleware concepts
The codebase was developed using:
- C
- Python
- Java
- RPC
- Multicast sockets
- TCP/IP communication
- Distributed communication protocols
.
├── rpc-calculator-c/
│ ├── calcula.x
│ ├── calcula.h
│ ├── calcula_clnt.c
│ ├── calcula_svc.c
│ ├── calcula_server.c
│ ├── calcula_client.c
│ ├── calcula_xdr.c
│ ├── Makefile
│
├── rpc-services-python/
│ ├── client.py
│ ├── server.py
│ ├── dbclient.py
│ ├── constRPC.py
│ ├── rpc3_client1.py
│ ├── rpc3_client2.py
│ ├── rpc3_server.py
│
├── multicast-chat-java/
│ ├── Conferencia.java
│
└── README.md
Distributed calculator implemented using Remote Procedure Call (RPC) concepts in C.
Concepts explored:
- RPC communication
- Remote service invocation
- XDR serialization
- rpcgen
- Client-server distributed architecture
- Distributed computation
Distributed service system implemented in Python using socket communication and serialized remote references.
Concepts explored:
- Distributed services
- Remote object references
- Interprocess communication
- Distributed data sharing
- Python socket programming
- Remote procedure abstraction
Java multicast communication system where multiple clients join a multicast group and exchange messages.
Concepts explored:
- Multicast networking
- Group communication
- Concurrent communication
- UDP multicast sockets
- Distributed messaging
- GCC
- rpcgen
- Linux environment
- Python 3
- JDK 8+
Generate RPC files:
rpcgen calcula.xCompile:
makeStart server:
./calcula_serverRun client:
./calcula_client localhostStart server:
python3 rpc3_server.pyRun client 1:
python3 rpc3_client1.pyRun client 2:
python3 rpc3_client2.pyCompile:
javac Conferencia.javaRun:
java Conferencia 224.225.226.227 6868 BrenoThis repository focuses on educational implementations and foundational Distributed Systems concepts through practical communication and networking experiments.
The goal is to understand how distributed applications communicate, coordinate, and exchange information across networked systems using low-level communication mechanisms and middleware abstractions.
Breno Machado Barros