-
Notifications
You must be signed in to change notification settings - Fork 1
CJR225/CSC340-Project1
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published