Ask Computer Engineering Expert

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.

Computer Engineering, Engineering

  • Category:- Computer Engineering
  • Reference No.:- M91605338

Have any Question?


Related Questions in Computer Engineering

Does bmw have a guided missile corporate culture and

Does BMW have a guided missile corporate culture, and incubator corporate culture, a family corporate culture, or an Eiffel tower corporate culture?

Rebecca borrows 10000 at 18 compounded annually she pays

Rebecca borrows $10,000 at 18% compounded annually. She pays off the loan over a 5-year period with annual payments, starting at year 1. Each successive payment is $700 greater than the previous payment. (a) How much was ...

Jeff decides to start saving some money from this upcoming

Jeff decides to start saving some money from this upcoming month onwards. He decides to save only $500 at first, but each month he will increase the amount invested by $100. He will do it for 60 months (including the fir ...

Suppose you make 30 annual investments in a fund that pays

Suppose you make 30 annual investments in a fund that pays 6% compounded annually. If your first deposit is $7,500 and each successive deposit is 6% greater than the preceding deposit, how much will be in the fund immedi ...

Question -under what circumstances is it ethical if ever to

Question :- Under what circumstances is it ethical, if ever, to use consumer information in marketing research? Explain why you consider it ethical or unethical.

What are the differences between four types of economics

What are the differences between four types of economics evaluations and their differences with other two (budget impact analysis (BIA) and cost of illness (COI) studies)?

What type of economic system does norway have explain some

What type of economic system does Norway have? Explain some of the benefits of this system to the country and some of the drawbacks,

Among the who imf and wto which of these governmental

Among the WHO, IMF, and WTO, which of these governmental institutions do you feel has most profoundly shaped healthcare outcomes in low-income countries and why? Please support your reasons with examples and research/doc ...

A real estate developer will build two different types of

A real estate developer will build two different types of apartments in a residential area: one- bedroom apartments and two-bedroom apartments. In addition, the developer will build either a swimming pool or a tennis cou ...

Question what some of the reasons that evolutionary models

Question : What some of the reasons that evolutionary models are considered by many to be the best approach to software development. The response must be typed, single spaced, must be in times new roman font (size 12) an ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As