2) Graphics based
Java RMI: Remote method invocation is a java specific implementation of a distributed object model. There are more general approaches to developing distributed applications of a Common Object Request Broker Architecture (CORBA). , But these generally requires writing language neutral interfaces in a tannery Interface Description Language (IDL) that must be compiled separately from your Application. This adds to the complexity of developing distributed applications .By contrast RMI provides you with a simple elegant interface to distributing objects that are implemented in the Java Language.
BUILDING DISTRIBUTED CHAT APPLICATION
In this chat application you can send text messages as well as handwritten messages to the active participants.
The server enables clients to register themselves and maintains table of active patricians. When a participant wishes to send message to the other participants that are currently logged on a message is sent to the server application and is then distributed to the other participants.
The client connects to the server and sends text messages and line drawings to the other participants on the server.
The server is general purpose and can handle number of participants that each get their own thread for server to client communication. The server expects any client that connect to it to implement the chat interface provides a call back mechanism allowing the servers to notify the clients when new data have arrived (as well as send data to the client). The clients in this model are also acting as servers. They are exporting an object that is use to remotely invoke method that is defined in chat interface.
The sever also exports a remote object that the client use to post messages to other clients, register themselves so that the server has a handle on there call back mechanism and query the server for the list of participants.