Design and develop distributed applications

Assignment Help JAVA Programming
Reference no: EM132435049

COIT20257 - Distributed Systems: Principles and Development - Central Queensland University

1. Objectives

The purpose of this assessment item is to assess your skills attributable to the following learning outcomes and achieving the expected graduate attributes of advanced level knowledge, cognitive, technical, and creative skills, professional level communication, self- management, research skills, ethical and professional responsibility, and leadership.
• Design and develop distributed applications using one of the approaches of distributed objects, web services, and peer-to-peer solutions
• Solve problems in the distributed systems domain by applying the principles of distributed systems to authentic problems
• Critique the issues involved in developing reliable, secure, and scalable distributed systems
• Work independently and collaboratively in small teams.

2. Assessment task - Team Work

Your task in this assessment is to analyse the given problem, model, design, implement, test and document a client/server application that allows multiple users to access stored data, or add new data. You will be implementing the software solution, applying efficient algorithms, inheritance, polymorphism, and exception handling. The topics required for this assessment task are from Weeks 1-8. You should also write a report, as specified in this document, demonstrating your conceptual knowledge. You will be required to use the topics learnt in the pre-requisite unit Data Structures and Algorithms.

Problem
Year 11 and 12 students study five subjects. There are many assessments for these subjects in different formats and the grades of these assessments are summative contributing to a student's final result. These two years of study are closely monitored by teachers and parents as the outcome decides the final grade a student achieves when s/he completes year 12. University entrance to various degrees are based on a student's year 12 final grade. Queensland Government Education department is keen to have better systems for parents to be informed and enable teachers to upgrade grades with one software system.

You are invited to develop a prototype of a Study Progress Monitor System (SPMS), for managing students' grades allowing administrators to add students, enrol subjects with assessments, set grade, and parents/students to access the stored details. You will be developing a multiple-threaded client/server application.

As part of your Assignment One you have developed an initial prototype of the SPMS that enabled users to access assessments and grades of Year 11 students. In this Assignment you are extending the prototype so that a new user can register, and later login and access the data by sending request to the server more securely. You must implement a multiple-threaded client/server application that allows multiple users to register/access and use the functions listed below.

The user should be able to execute the following menu items:
1. Register by entering a user name and password (new in Assignment 2)
2. Securely login by entering a UserId and Password (new in assignment 2)
All users accessing the SPMS should able to view the following data:
1. List of assessments for a chosen subject
2. Grades of assessments for a student Administrator should be able to access the SPMS to:
1. Set grade for a chosen student and subject
2. Add a student (new in assignment 2)
Note: You will be given a data file containing list of subjects and assessment details from Term 1 2020.

Design Guidelines

You can use the following guidelines in your modelling and design.

Sever side
The server should enable the following functionalities. The server creates a new thread for each client connection (thread-per-connection model). The server side receives client requests, processes them and returns results. Multiple read requests are executed concurrently.
During the first run of the program the server loads the data from the file as soon as it starts and creates the database and stores the subjects and assessments.

The server should also save all the data newly entered such as user registration, and new students to the database when the application stops. The server should also save all the newly entered data when a user exits from the application.

User Registration/Log in
Once the server exchanges a message "hello" between the client, the server sends a message to the client which displays two options to the client, ‘New User' or ‘Registered User'. If the client connection is from a New User the server sends message to collect the type of user- student or admin and the user's name (full name).

In case of a new user the server searches the database for the user's name if it exists enables the user to enter and verify a password. The server sends a PublicKey to the client for sending an encoded password. The server decodes the user's password using the privateKey. The server stores the decoded Password in the database. Server sends the database generated UserId to the client. This completes the registration process.

If the client connection is from an existing user the server sends message to collect the UserId and Password. The server sends the PublicKey to the client for sending an encoded password. The server decodes the user's password using the privateKey. The server connects to the database, searches and gets the stored password and verifies that the password entered matches the stored password. If the password is verified user gets logged in.

Once the user is registered or authenticated, the server sends the menu listing to the client and processes the request as received. Multiple client requests are executed concurrently. Therefore, saving new user details received from multiple clients should be synchronised.

Request for view Assessments for a subject (Same as Assignment One)

If the client request is to view assessments for a subject, the server should parse the request received from the client and execute appropriate database queries to extract data and send the data back to the client.

Request to view grades of a student (Same as Assignment One)

If the client request is to view grades of a student, the server should parse the request containing the student's name received from the client and execute appropriate queries to extract all the graded assessments and send the data back to the client.
Request to set grade for a specific assessment of a student (Same as Assignment One)

If the client request is to set grade, the server should parse the request containing student's name, subject name, assessmentId, and achievement value to execute database query and update the database with the new grade. (It is assumed that the user is aware of the ungraded assessments or the user can display grades to view the current grade status. This is to reduce the complexity of the database operation as that is not the focus of this unit.) This should be synchronised as multiple clients will be running through multiple threads.

Request to add a student

If the client request is to add a student, the server should parse the request containing student's name, and year level and add that to the

Database.
All the newly entered data can be written to the database when the user exits the application.

Client side

The client side interacts with the user, parses the request and sends it to the server. It receives messages from the server and displays to the user. The client starts with receiving the options to choose from one of ‘New User' or ‘Registered User'. In case of a new user the client should send the user name to the server's request.

The server sends the PublicKey for encrypting the password and sending that to the server. The client should receive the PublicKey, extract the key using the key specification, and use it to encrypt the password. The encrypted password is sent to the server. Once the registration or authentication is completed the client receives the menu listing from the server. The query frontend provides a menu to let a user choose any of the functions continuously until the user chooses to exit the SPMS.

Database

The data base should have the following tables

1. Student to store student name, year level (studentId: primary key)

2. Subject to store subject name (subjectId: primary key)

3. Assessment to store the Assessment details as shown in Table 2 (use composite key of subjectId and Assessment Id)

4. Grade to store the Grade details as shown in Table 3

5. StudentGrade to store the set grade for an Assessment item of a student (use composite key of StudentId, subjectId, AssessmentId, and gradeId).

6. Admin to store the name of the admin user (adminId: primary key) (a list is given in Table 2)

Responding to Client Requests involving execution of search queries

When the program starts you can run queries to read the database tables and store the data in appropriate data structures such as LinkedList. Use lambdas and streams for searching and filtering. It takes more time to connect to the database residing in the disk compared to accessing data residing in the program memory.

Student data given below can be used for testing purposes. Add any other table/s as necessary.
Note: The table listings only show the values to be stored as per the user requirements. The primary keys are generated during the programmatic creation of the tables and used for other database operations. These keys need not be displayed to the user. The primary keys can be auto-incremented integer values. One Student has to enrol in five Subjects and each Subject is enrolled by many Students. (many - to - many). You may add additional tables as required for the correct functioning of the database. Create an ERD to understand the relationship between tables.

Coding
Include necessary accessor, mutator methods, constructors, and toString() method for each class. Also, follow good coding practices, using meaningful names, camel case notation for naming, constants as necessary, and include meaningful comments. Complete the UML class diagrams for the required classes that will improve clarity. The Use NetBeans to insert code after entering the class name and including the attributes.

Team work
You work in Teams. The minimum team size is three (3). You can choose your own team members. Please inform your tutor by Week 6, who your team members are. If you have problem forming a team, please contact your tutor. Team work is to contribute to the development of graduate attributes: ethical and professional responsibility, and leadership. This is a highly regarded soft skill by employers. Therefore, one of the team members should take the team leadership role each week, organise team meetings, write the minutes of meeting (what you have discussed and the outcome). You should also allocate tasks to each team members. Team members should collaborate to solve problems.

Report
Submit an individual report by each team member with the following details.
1. Provide a diagrammatic representation of the SPMS architecture.
2. Include a test plan, and user instructions.
3. The admin staff (or teachers) will be updating students' grade as they finish marking. The system should be sending a message to all students and these messages should be available to students as they login. Discuss how multicasting can be used for this purpose. Provide a design of the multicasting feature explaining the technical details of how it works. This feature need not be implemented.
4. Give details of your team work including your role in each week (Weeks 6, 7, 8, 9), tasks allocated and completion, summary of meeting minutes (attendees, date and time, topics discussed), your experience of learning and collaborative problem solving.

Attachment:- Principles and Development.rar

Reference no: EM132435049

Questions Cloud

How does cultural competence relate to better patient care : What are the methods a nurse can use to gather cultural information from patients? How does cultural competence relate to better patient care?
Write an essay on the current climate change : Write an essay on the current climate change protest by the youth
Why nutrition is a central component in health promotion : What are some of the nutritional challenges for emerging populations? What roles do nutritional deficiency and nutritional excess play in disease?
Conflict between person behavior and sense of self : For this Discussion, You will examine conflict between a person's behavior and sense of self.
Design and develop distributed applications : Design and develop distributed applications using one of the approaches of distributed objects, web services, and peer-to-peer solutions
Identify key issue for destination for international tourism : Identify and critically analyse the impacts from tourism activity on the host community at the destination.Identify key issue for destination for international
Three elements of framing used by winogrand : Post a response that describes at least three elements of framing used by Winogrand in his photograph, Untitled, 1950s.
What are the nutritional challenges for the group : Select an ethnic minority group that is represented in the United States (American Indian/Alaskan Native, Asian American, Black/African American.
What are the health disparities that exist for the group : What are the health disparities that exist for this group? What are the nutritional challenges for this group? Discuss the barriers to health for this group.

Reviews

len2435049

1/15/2020 9:36:36 PM

This assignment should be make without using RMI interface and it should be run while I demostarte project infront of tutor For Report: 1.Not use RMI architechter 2.Test plan should covers user interface on the client side. server side and database tests screenshot 3.Give appropriate heading in report.

Write a Review

JAVA Programming Questions & Answers

  Recursive factorial program

Write a class Array that encapsulates an array and provides bounds-checked access. Create a recursive factorial program that prompts the user for an integer N and writes out a series of equations representing the calculation of N!.

  Hunt the wumpus game

Reprot on Hunt the Wumpus Game has Source Code listing, screen captures and UML design here and also, may include Javadoc source here.

  Create a gui interface

Create GUI Interface in java programing with these function: Sort by last name and print all employees info, Sort by job title and print all employees info, Sort by weekly salary and print all employees info, search by job title and print that emp..

  Plot pois on a graph

Write a JAVA program that would get the locations of all the POIs from the file and plot them on a map.

  Write a university grading system in java

University grading system maintains number of tables to store, retrieve and manipulate student marks. Write a JAVA program that would simulate a number of cars.

  Wolves and sheep: design a game

This project is designed a game in java. you choose whether you'd like to write a wolf or a sheep agent. Then, you are assigned to either a "sheep" or a "wolf" team.

  Build a graphical user interface for displaying the image

Build a graphical user interface for displaying the image groups (= cluster) in JMJRST. Design and implement using a Swing interface.

  Determine the day of the week for new year''s day

This assignment contains a java project. Project evaluates the day of the week for New Year's Day.

  Write a java windowed application

Write a Java windowed application to do online quiz on general knowledge and the application also displays the quiz result.

  Input pairs of natural numbers

Java program to input pairs of natural numbers.

  Create classes implement java interface

Interface that contains a generic type. Create two classes that implement this interface.

  Java class, array, link list , generic class

These 14 questions covers java class, Array, link list , generic class.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd