How does the RPC (Remote Procedure Call) work
As an analogy, RPC works as a function call. Like a function call, when an RPC is made, the calling arguments are passed to the remote machine and the caller waits for a response to be returned from the remote machine.
The below figure shows the flow of activity that takes place during an RPC call between two networked machines:
The client machine makes a procedure call that sends a request which included program number, version number, procedure number & etc to the server and waits. The thread is blocked from processing until either a reply is received, or it times out. When the request arrives, the remote machine calls a dispatch routine that performs the requested service, and sends the reply back to the client procedure. After the RPC call is completed, the client program continues.
A client system connected to a database server may execute an RPC to process data on the server. For example, a computer without a hard drive may use an RPC to access data from a network file system (NFS). When printing to a network printer, a computer might use an RPC to tell the printer what documents to print.
Self-management feedback-control system
Self-configuring – This capability enables the system to adapt to unpredictable conditions by automatically changing its configuration, such as adding or removing new components or resources, or installing software changes without disrupting service.
Self-healing – Can prevent and recover from failure by automatically discovering, diagnosing, circumventing, and recovering from issues that might cause service disruption
Self-optimizing – This capability enables the system to continuously tune itself–proactively to improve on existing processes and reactively in response to environmental conditions.
The pitfalls in the distributed system
- Software Complexity
Little software exists at present. It is difficult to implement sophisticated software on distributed system, because the software has to take care of many machines simultaneously for their interaction.
- Communication Network
Because of users share many paths to the network; the communication is slower compare to a stand-alone system. Moreover, if the network underlying a distributed system saturates or goes down, then the distributed system will be effectively disabled thus negating most of the advantages of the distributed system.
- Security In a distributed system, everyone can conveniently access data all over the system; people may equally be able to conveniently access data that they have no business looking at. In other words, security is often a problem. For data that must be kept secret at all costs, it is often preferable to have a dedicated, isolated stand-alone system that has no network connections to any other machines.




