Skip to main content

Round Robin Algorithm - Distributed Network Architectures & Operating Systems

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

Get your solution now

Buy now

Comments

Popular posts from this blog

Are you looking for the article. Congratulations! you are at the right place

Please comment on this post for Article requests Kindly Write Following things in comment: 1)  Name 2)  Article Link 3)  Your Email Id We will process your request as soon as possible. Note: Share this post with friends to help them.

Human Physiology by Stuart Ira Fox [PDF] (12th edition) free download

Body Mass Index (BMI) calculator with JUnitTesting in Java

Introduction: Aitor Tilla S.L. clinic specializes on the endocrine treatment of people with diverse needs in relation to weight control. The clinic wants to launch a number of technological solutions (mobile app and web pages) that will allow its clients to have an effective monitoring of the dietary plans suggested by the clinic doctors. To this end, Aitor Tilla, S.L. requires to evolve the component that measures metrics for a healthy life developed during the previous guided exercises. The component will be reusable and will allow the calculation of new necessary metrics. The component will be developed in Java, J2EE platform, and will be delivered in a JAR format that will allow the access to the methods, and the programming interface that integrates with the mobile app and web pages. In addition, the code will be delivered with a user manual that explains programmers how the integration with other components should be done. The function to consider consists of characterizing the B...