Design and implement a rmi-based client

Assignment Help JAVA Programming
Reference no: EM13930250

In this assignment, you are requested to build a system which allows a school pupil to practise multiple choice tests in math. Design and implement a RMI-based Client / Server communication system in Java, which will do the following:

Client: c1. Connect to server via client_stub. c2. Read and display the prompt message sent (see step s2 in server) by the server. c3. Receives and displays the first math question plus three possible answers from the server. c4. User then selects and inputs only one answer and the client program sends the answer to the server. This process is repeated three times to complete all 3 questions from the server Questions database c5. After the test is over the client accepts and displays the test results and score from the server. 

Server: . s0. [Initialization] Create a RMI-based server which implements a test interface s1.Wait for a client connection s2.When a client connection is accepted send an acknowledgement (a welcome message) as a sting of text. s3. From Questions database, server sends the first test questions plus three possible answers to the client. s4. Receives the answer from the client. Stores and evaluates the answer. This process is repeated three times. s5. After that the server sends all results and score to the client. s6. Close the connection to the client and then loop back and wait for another connection. Questions database: Q1: (A + B)*(A+B) 1. A*A + B*B 2. A*A +A*B + B*B 3. A*A +2*A*B + B*B (correct) Q2: (A + B)*(A - B) 1. A*A + 2*B*B 2. A*A - B*B (correct) 3. A*A -2*A*B + B*B Q3: sin(x)*sin(x) + cos(x)*cos(x) 1. 1 (correct) 2. 2 3. 3 Note: All the communication between the Client and the Server should be in the form of strings. ! Programming Notes Here are a few tips/thoughts to help you with this assignment:

• You must use the three questions from Questions database (see above).

• Define the remote methods to allow the client to send the answers to the server.

• Implement these methods as a remote object.

• Write a client to invoke the remote methods.

• Use the rmic program to produce a stub and a skeleton.

• Use the rmiregistry tool to register the server.

Defining the Interface In this coursework, firstly you define the server methods. The server receives and reads the list of answers selected by the client. Then it checks that this answer is valid (distinct numbers in the range 1-3):

If not, return an error message to the client.

If yes, check answers and see if the client has answered correctly, then return the score to the client. The server is comprised of an interface and a class. The interface provides the definition for the methods that can be called from the client. Essentially the interface defines the client's view of the remote object. The class provides the implementation. Define these methods in a Java TestInfo interface. Derive the interface from the Remote class or from java.io.Serializable interface (The interface must extend from java.rmi.Remote. All the method declarations must include the throws java.rmi.RemoteException clause).

Implementing the Remote Objects on the Server Write the TestInfoImpl class that implements the TestInfo interface and the TestServer class that creates an object and registers it on the server. 1. Write the TestInfoImpl class that contains the actual methods with questions and to receive the answers. 2. Derive the class from the UnicastRemoteObject class 3. Create a TestServer class with a method that creates an object. Register this object with the RMI remote object registry, name and bind it to a port using the Naming class and the bind() or rebind() method.

Programming the Client Produce the TestClient class that locates the server and invokes the remote methods. The command to start the client will be $ java TestClient rmi://machine/remote_object Where the URL refers to the registry(usually on the same machine that the server runs on, probably localhost). Retrieve the remote object using the Naming class, by passing the use of the registry to the lookup() method. Then make the remote method call on this object.

Producing the Distributed Objects Finally, compile and run the distributed objects. 1. Compile all the classes you have written. 2. Your Java RMI programs are only a part of the application. It uses two other pieces of code called the stub and the skeleton. These reformat the method parameters and encapsulate them into a RMI data unit. This process is called marshalling. Run the command rmic TestInfoImpl to generate the stub and the skeleton. 3. Launch the registry rmiregistry. Be sure to run the registry in the RMI server directory that contains the stub and skeleton. 4. Run the server and the client on a same machine and directory. Then try to run the client and the server on two different machines. ! Submission You should submit your code both on paper and on disk (hand in the assignment to the undergraduate office in the normal way with floppy disk containing only the *.java source code). Write a report on the design and implementation of your solution and answers, showing code and results: (i) a class diagram outlining the class structure for your proposed solution. (ii) a set of summary tables describing the fields, constructors and methods for each class. (iii) a print out of the Java source code of your complete program. ! Extensions A small number of marks are reserved for extensions. These could be to have GUI on client and server sides which send the range of possible choices to the client and validate entries, or to be able to specify a security manager which determines its security policy by using the RMISecurityManager.

Reference no: EM13930250

Questions Cloud

What is the p-value of the given test : Test the  hypothesis that the preferences of office and line employees are the same. Use α = 0.05. Use α = 0.01. What is the p-value of this test?
What is the purpose of the neo-pi-r in lay terms : What is the purpose of the NEO-PI-R in lay terms? What issues could be most challenging concerning test explanation as indicated by the instructions. How can one address, within the limits of the test's standardized administration, these challenge..
Discuss the implications of given prediction : It is reasonable to expect that given growing wealth, the emergence of a middle class, access to modern conveniences, and so forth, the "emerging" countries of the world may experience exponential growth in energy consumption over the short to med..
Describe gayle level of intelligence based on cogat scores : How would you describe Gayle's overall level of intelligence based on the CogAT scores? How would you describe her overall level of achievement based on her scores on the WJ III ACH?
Design and implement a rmi-based client : In this assignment, you are requested to build a system which allows a school pupil to practise multiple choice tests in math. Design and implement a RMI-based Client / Server communication system in Java, which will do the following:
Determine the true cash balance by preparing a bank : Record in general journal format the adjusting entries necessary to correct the unadjusted book balance.
Calculate the lower and the upper quartiles for the data : Calculate the lower and the upper quartiles for the data. Hence, calculate the inner and outer fences to draw a box and whisker plot
The unadjusted balance per the bank statement : The unadjusted balance per the bank statement on August 31 was $35,200.
Campaign speech : Campaign Speech Read the following scenario. "Alcohol and drug abuse are associated with crime on the streets, health problems, the breakdown of the family, and poor

Reviews

Write a Review

JAVA Programming Questions & Answers

  Write an applet that includes a pie chart

Write an applet that includes a pie chart. Use a news article with statistics that are good candidates for a pie chart: for example, political candidate preferences; percentages of those for, against, or undecided about a ballot measure; and so for..

  What about percent values and currencies

List three debugging techniques, within the debugger, that can be used to locate logical error in the Java code. For each of these tools, explain what purpose it serves, and how it relates to the debugging process.

  Implement a shopping cart class with user interface

project will be to implement a shopping cart class with user interface (UI) that contains main() in Net Beans. The UI class will be used to perform user input/output and to invoke the appropriate methods of shopping cart class. When your program star..

  Assignment in python

You will complete this assignment in Python 3.x. Make sure you have downloaded the software and it is installed correctly. You will download it from this site: https://www.python.org/downloads/.

  Calculate the area of the circle

Circle Area- Write an application that prompts the user for the radius of a circle and uses a method called circleArea to calculate the area of the circle

  Create a class named blooddata that includes fields

Create a class named BloodData that includes fields that hold a blood type (the four blood types are O, A, B, and AB) and an Rh factor (the factors are + and -). Create a default constructor that sets the fields to "O" and "+", and an overloaded c..

  Write a program that establishes two savings accounts

Write a program that establishes two savings accounts with saver1 having account number 10002 with an initial balance of $2,000, and saver2 having account 10003 with an initial balance of $3,000

  Creates a professorraing class

Write a program that creates a professorRaing class consisting of professor ID and three ratings. The three ratings are used to evaluate easiness, helpfullness, and clarity. In a separate implementation class, allow the user to enter the values.

  Create a gui application with jframe

Create a GUI application with JFrame that contains five labels describing reasons that a customer might not buy a specific product (e.g. too expensive).

  Create class called hospital and add all relevant attributes

Create a class called Hospital and add all the relevant attributes for the created class - Create a User's super class that contains all the properties common to the all the users that will be using the Hospital patient billing system.

  Automated code coverage and cyclomatic complexity analyses

Automated code coverage and cyclomatic complexity analyses -

  Java application prompt user to put in integer from keyboard

Write a java application that performs the following task: prompt user to put in an integer from the keyboard, search for the user input from the array created in step 1.

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