The Java Remote Method Invocation (RMI) API facilitates communication between distributed applications in a client/server model over a specific network. In this framework, the client application sends a method invocation request to a remote object on the server, which responds to the request by executing the method and returning the results.
Using this interface, we will construct a distributed chat system that relies on direct communication between individuals within the same chat room. The main components of this system will be the server and the client. The server application defines a service interface with various functions, including adding or deleting chat rooms, user registration, logging in and out of specific groups, and other functions commonly found in chat systems.
Functional Requirements:
Any client can add a chat room (room name).
Any client can delete a chat room (if they created it).
Clients can sign up with a username, password, first name, and last name.
Clients can sign in to a specific chat room (using username, password, and room name).
Clients can sign out.
Clients can view available chat rooms.
Clients can view other clients within a specific chat room (after selecting the room).
Clients can send messages to specific recipients (or multiple recipients chosen from the client list).
Clients can broadcast messages to all clients within the same room (when no specific recipient is chosen).
Non-Functional Requirements:
Interface Requirements: The application interface must be clear and user-friendly