RPC software should generally meets the basic requirements of a distributed application including: Clients finding the appropriate servers; Data conversion for operating in a heterogeneous environment; and Network communications Distributed applications include tasks such as managing communications, finding servers, providing security, and so forth.