Computing has passed through many stages since the birth of the first computing machines. A centralized solution has one component that is shared by users all the time. All resources are accessible, but there is a single point of control as well as a single point of failure. A distributed system is a group of autonomous computers connected to a computer network, which appears to the clients of the system as a single computer.
Distributed system software allows computers to manage their activities and to share the resources of the system, so that clients recognize the system as a single, integrated computing facility. Opportunity to attach components improves the availability, reliability, fault tolerance and performance of the system. In such systems, the methods for minimizing communication and computation cost are significant. The widely used client–server model is an example of a distributed system. In this model, the servers are optimized to offer services to several clients. A peer-to-peer network is also a good example of a distributed system. In peer-to-peer network, we cannot force a peer to remain online until a file is completely downloaded; therefore it is important to choose a node, which is trustworthy by nature.
Multi-tire differential search, unstructured P2P networks, OPNET