Skip to content

brenomchd/distributed-systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Systems Laboratory

Academic repository containing practical distributed systems implementations using C, Python, and Java.

About

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

Repository Structure

.
├── 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

Projects

RPC Calculator in C

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

RPC Services in Python

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

Multicast Conference Chat

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

Requirements

C Projects

  • GCC
  • rpcgen
  • Linux environment

Python Projects

  • Python 3

Java Projects

  • JDK 8+

Build

RPC Calculator in C

Generate RPC files:

rpcgen calcula.x

Compile:

make

Run

RPC Calculator in C

Start server:

./calcula_server

Run client:

./calcula_client localhost

RPC Services in Python

Start server:

python3 rpc3_server.py

Run client 1:

python3 rpc3_client1.py

Run client 2:

python3 rpc3_client2.py

Multicast Conference Chat

Compile:

javac Conferencia.java

Run:

java Conferencia 224.225.226.227 6868 Breno

Notes

This 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.


Author

Breno Machado Barros

About

Academic repository containing practical distributed systems implementations using C, Python, and Java, focusing on RPC communication, multicast networking, and client-server distributed architectures.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors