Reference no: EM13847307
Field of study: Bachelor of Computer Science. Course: Distributed Systems. The project is about writing a Client/Server program.
SCENARIO
Imagine a new university registration system, on that registration system, the following must be possible. While the server is running, a client can connect to the server and select any one of the two choices (by means of the method reg as given below). After registering, the client can request the registration results up to that period.
intReg.java:
interface intReg extends java.rmi.Remote {
public void reg( int choice) throws java.rmi.RemoteException;
public String getRegResults( ) throws java.rmi.RemoteException;
}
1. Write a java program implementing Client-Server communication using Remote Method Invocation.
(a) Implement the following classes.
(i) Class RegImp.java - this class has to implement the registration interface.
(ii) Server side- the server has to initiate and register the remote object.
(iii) Client side - the client should submit the user choice to the remote server and then print the current registration on screen.
(b) (i) Implement in the remote object the counting of registrations and returning registration results.
(ii) Implement the client side functionality.
(iii) Extend the communication model to make sure that the server will only allow a client to see the current registration results after submitting its registration.
2. Plan the deployment of this project scenario for a university that has multiple campuses and has international students accessing the university registration system. In your deployment you should ensure the following are taken care of.
(i) Increase the level of fault tolerance of your system.
(ii) Decrease the time for recovery.
(iii) Add necessary features to increase scalability and security of the registration system.
3. A summary documentation of not more than 10 pages, detailing the deployment of the scenario in 1 answering Question 2, which should cover the following key headings.
(a). Description of the application.
(b). Overall structure of the implementation.
(c). Distributed systems features and algorithms you intend to use in the implementation.
(d). Plan for testing the system.
(e). How you intend to implement your system as a series of tiers.
(f). A schedule of the design and implementation.
(g). Overall documentation layout (Table of Contents, Headings, formatting, e.t.c).
- A running program, in Java or any programming language answering Question 1.