Skip to content

"Distributed Computing” (DC) and deploy a cloud data cluster.

Notifications You must be signed in to change notification settings

CJR225/CSC340-Project1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Architecture:
Server (S):

The server will be responsible for receiving the main job (J) and breaking it into smaller sub-jobs (J1, J2, …Jm).
Distribute these sub-jobs to available clients for parallel processing.
Accumulate results (R1, R2, R3…Rn) from clients.
Send the final result (R) back to the user or the system.
Clients (C1, C2, …Cn):

Each client will be preloaded with the computing program (P).
Receive sub-jobs from the server and execute the computing program on their respective sub-jobs.
Send back the results (Ri) to the server.
Network Communication (TCP):
Use Java's Socket class for implementing TCP communication.
The server should listen for incoming connections and spawn a new thread for each client connection.
Clients connect to the server, receive their sub-job, process it, and send the result back to the server.
The server collects results from all clients and sends the final result.
Implementation Steps:
Define Communication Protocol:

Establish a clear protocol for communication between the server and clients. This includes defining message formats for job distribution and result collection.
Server Implementation:

Implement a server in Java using ServerSocket and Socket classes.
Accept client connections and spawn a new thread for each connection.
Distribute sub-jobs to clients and collect results.
Aggregate results and send the final result back to the user or system.
Client Implementation:

Implement a client in Java using Socket for communication with the server.
Receive sub-jobs from the server, execute the computing program, and send back results.
Handle connections and communication errors gracefully.
Job and Computing Program (J and P):

Use the provided sample J and P (in Java) or translate P if you choose to use another language.
Ensure that the computing program P can process its input independently.
Testing:

Test your distributed computing system with different types of jobs and computing programs.
Check for edge cases, handle errors, and ensure that the system works reliably.
Scalability and Optimization:

Consider scalability issues as the number of clients increases.
Optimize the system for performance, considering factors like load balancing and efficient resource utilization.
Documentation:

About

"Distributed Computing” (DC) and deploy a cloud data cluster.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages