Write an RMI application that allows a client to open and read a file residing on a remote server. The interface for accessing the remote file object appears as import java.rmi.*; public interface RemoteFileObject extends Remote { public abstract void open(String fileName) throws RemoteException; public abstract String readLine() throws RemoteException; public abstract void close()

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Write an RMI application that allows a client to open and read a file residing on a remote server. The interface for accessing the remote file object appears as

import java.rmi.*;

public interface RemoteFileObject extends Remote

{

public abstract void open(String fileName)

throws RemoteException;

public abstract String readLine()

throws RemoteException;

public abstract void close()

throws RemoteException;

}

That is, the client will open the remote file using the open() method, where the name of the file being opened is provided as a parameter. The file will be accessed via the readLine() method. This method is implemented similarly to the readLine() method in the java.io.BufferedReaderclassintheJavaAPI.Thatis,itwillreadand returnalineoftextthatisterminatedbyalinefeed(\n),acarriagereturn (\r), or a carriage return followed immediately by a line feed. Once the end of the file has been reached, readLine() will return null. Once the file has been read, the client will close the file using the close() method. For simplicity, we assume the file being read is a character (text)stream.Theclientprogramneedonlydisplaythefiletotheconsole (System.out). One issue to be addressed concerns handling exceptions. The server will have to implement the methods outlined in the interface RemoteFileObjectusingstandardI/OmethodsprovidedintheJavaAPI,most of which throw a java.io.IOException. However, the methods to be implementedin the RemoteFileObject interface are declaredto throw a RemoteException. Perhaps the easiest way of handling this situation in the server is to place the appropriate calls to standard I/O methods using try-catch for java.io.IOException. If such an exception occurs, catch it, and then re-throw it as a RemoteException. The code might look like this

try {

...

}

catch (java.io.IOException ioe) {

throw new RemoteException("IO Exception",ioe);

}

You can handle a java.io.FileNotFoundException similarly

Please make three classes

RMIClient.java

RMIServer.java

RemoteFileObject.java

 

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 5 steps

Blurred answer
Knowledge Booster
Windows
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education