The entities in a distributed system communicate generally via Inter
Process Communication, Remote Invocation or Indirect Communication.
Remote Invocation is a two-way exchange between the entities communicating
in a distributed system. The appropriate call may be made to the remote procedure,
method or operation.
The communication between the sender and receiver is two-way. Generally,
the receiver is aware of the sender’s identity and the sender directs its
messages to its affiliated receivers. As a result of this direct coupling, the
client and the server are constrained. It becomes very difficult in the case of
a backup server dealing with the incoming requests from the client in case of the primary server failure/maintenance. As
the clients and the server are generally aware of each other and now all the client
needs to know the identity of the new server.
Also, the sender and receiver must exist at the same time which is
futile to operate in the variable environments.
Communication between the senders and receivers can also be
indirect where there is strong decoupling.
In the case of space uncoupling, as the sender does not need to know
the identity of a receiver, it is more flexible as in the case of a backup
server when the primary server fails. Also, it is advantageous in the case of
group communication as the sender does not need to know the individual identity
of the receivers. Here, all the recipients join a group via an identifier to receive
In the case of time uncoupling, the entities to communicate need
not exist at the same time. Here, the processes can place items in tuples i.e.
structured data. The other processes can either read or delete these tuples at
a later point of time. This concept of time decoupling is very useful in the
case of mobile nodes.