project1_001 - Version 1.0 Author: Yilin COP5615...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
Version 1.0 Author: Yilin COP5615 – Distributed Operating Systems Principles – Spring 2011 Project 1 Assigned: Jan 20, 2011 (Thursday) Due Dates: February 03, 2011 (Local), February 06 (EDGE), 11:55 PM EDT Programming Language Allowed: Java (only) Platforms Allowed: sand, rain (SunOS Machines) and/or lin113-01 (Linux Machines) Java versions available: OpenJDK Runtime Environment (build 1.6.0_0-b11) on lin113-01 Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03) on sand/rain Project Overview: In the first project, we will develop a very simple distributed application. The underlying motivation will be very similar to [email protected] distributed computational model where normal users contribute idle CPU cycles that are utilized to perform a very complex mathematical computation that has been broken down into several simpler computations. In this project you will be asked to develop a distributed client/server model that distributes the task of sorting a large set of numbers to several available idle clients. Task distribution will be done at the server depending on the remote idle clients' CPU power. The aim of this project is to help you learn and understand client/server socket communication as well as multi-threading in Java. Helpful Resources: Socket Programming Tutorial: http://java.sun.com/docs/books/tutorial/networking/sockets/index.html Multi-threading Tutorial: http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html Introduction: In this project, you are required to develop a server-client program in Java, including one server and five clients . The client program will be single-threaded; however, the server program will be multi-threaded so that it can handle multiple clients at the same time. The client program, when started, generates a random number between 1 and 10 that will be used to indicate the hypothetical remote client's relative CPU speed. When the server starts, it will generate a list of 100 random numbers between 1 and 500. It then will distribute this sequence to remote clients in proportion to the CPU speeds reported by the clients. Each client then does the insertion sort (or other sorting algorithm if you like) and reports the results to the server when it finishes. After receiving the results from all clients, the server uses the aggregated results to merge the sorted subset of numbers to get the final sorted sequence. You are required to provide a start.java ” that will start the server program as well as all the remote clients. Please note that the file name begins with small case 's' and NOT a capital 'S' . All the communication between server and clients will be done using Java sockets (TCP). Server Description:
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 01/22/2012 for the course COP 5615 taught by Professor Staff during the Fall '08 term at University of Florida.

Page1 / 4

project1_001 - Version 1.0 Author: Yilin COP5615...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online