I. Assessment Requirements
You must work individually on this assessment to develop a load balancer Java application. A report is required which explains what you had to change since assessment 1 and the challenges that you encountered and solved for your project.II. Assessment Scenario/Problem
Restating the scenario from Assessment 1:For this assignment, you will be taking your design from assessment 1 and implementing it using Java.Here, your standard or weighted round-robin algorithm will be running on the load balancing machine (i.e. the load balancing program will be working on a single computer) while some client applications will be running on each of the nodes. Your system will need to consider the following functionality and messaging (in no particular order):
- 1. Standard/weighted round-robin algorithm working on a designated load balancer machine.
- 2. Each node will register with the server by sending a message.
- 3. The load balancer will record node details.
- 4. The notion of a job (as a message) requires the load balancer to allocate the task to the next free node. The position information will detail the number of seconds that a job will take to run, rather than trying to include some form of code that is required to be executed.
- 5. The load balancer will need to store an ordered list of nodes. In the weighted round-robin strategy, the list could be ordered based on the nodes workload (i.e. the number of jobs given to them already by the scheduler). The least weighted node (i.e. the one that has the least amount of work) will be at the top.
- 6. Weighted information to determine the order of the scheduled jobs can be gained by remembering how many jobs are currently running on a node.
- 7. The load balancer assigns the task to a node by sending it a message to work for X seconds. Nodes will receive job requests and wait for
You will be expected to produce separate programs for:
- 1. The load balancer
- 2. General worker node (do not hardcode names or IP address into this but instead have these passed in as parameters on the command line)
- 3. A program for sending jobs into the systemTo achieve a good mark in this assignment, you will need to (at least):
- 1. have different programs as stated above
- 2. make use of multiple classes in each program
- 3. ensure that the relevant functionality for the class is contained within it
- 4. link levels together to form the overall algorithm
- 5. use multi-threading where necessary
- 6. send, receive and process messages as explained in the lectures (Lecture on messaging systems and covered in lectures 18 / 19).
- 7. only use the primary method for extracting information from the arguments passed in from the command line and to start your system
Comments
Post a Comment