1) The client invokes getBalance() on the stub
2) The stub marshals the method call into the appropriate wire format message and sends it across the network to the remote object's skeleton.
3) The skeleton listens on the network for messages. When the message arrives, the skeleton un-marshals it.
4) The skeleton invokes the getBalance() method of the remote object.
5) Remote object processes the call to getBalance() and returns the balance
6) Return value is marshalled by the skeleton and returned to the stub
7) The stub un-marshals the return and passes it back to the client.