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.