Skip to content

DataScience-ArtificialIntelligence/Distributed_Edge-Computing

Repository files navigation

Distributed File Transfer with Java RMI and Edge Computing

Group Members

HITIK ADWANI - 22BDS029
LAKSHYA BABEL - 222BDS033
ABHIJIT SINGH - 22BDS054
SURYANSH AYUSH - 22BDS057

Overview

This project presents a hybrid distributed system that combines edge computing and cloud infrastructure to efficiently process large-scale graph data. By using Java RMI for peer-to-peer communication, the system enables low-latency file access from the nearest peer, while Spring Boot manages coordination from a central cloud server. Files are partitioned into chunks using Java NIO with memory-mapped buffers, allowing parallel transfer with metadata for integrity and recovery. A Swing-based GUI provides real-time progress updates, and the project is managed using Maven and deployed via Docker containers for cross-platform support. Integrated into the existing Deezer Networks platform, this system is scalable, fault-tolerant, and optimized for real-world distributed graph processing applications.

Dataset

Network dataset : Deezer Networks.

Project Setup

To set up this project locally, follow these steps:

Step 1: Clone the Repository

git clone https://github.com/DataScience-ArtificialIntelligence/Distributed_Edge-Computing.git

Step 2: Build the project

mvn clean install

Step 3: Running the Application

mvn spring-boot:run

Step 4: Start Peer Clients

java "-Djava.security.policy=client.policy" -cp "target/p2p-file-sharing-1.0.jar;target/classes" com.p2p.client.PeerClient Peer1

Replace Peer1 with different peer names for additional clients (e.g., Peer2, Peer3).

For Linux/Mac users, use colons instead of semicolons for the classpath separator:

java "-Djava.security.policy=client.policy" -cp "target/p2p-file-sharing-1.0.jar:target/classes" com.p2p.client.PeerClient Peer1

To configure using Docker, follow these steps:

Step 1: Pull the Docker Image

Pull the image from Docker Hub:

docker pull hitikadwani0902/p2p-file-sharing:latest

Step 2: Run the Main Application

To start the main server/application:

docker run -d --name p2p-server hitikadwani0902/p2p-file-sharing:latest

Step 3: Start Peer Clients

To run a peer client (e.g., Peer1):

docker run -it --rm \
  --name peer1 \
  -e PEER_NAME=Peer1 \
  hitikadwani0902/p2p-file-sharing:latest \
  java "-Djava.security.policy=client.policy" \
  -cp "target/p2p-file-sharing-1.0.jar:target/classes" \
  com.p2p.client.PeerClient Peer1

Links

Link to report
Link to Presentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published