Parallel computing deals with the development of programs where multiple concurrent processes cooperate in the fulfillment of a common task. Distributed computing deals with the development of applications that execute on different computers interconnected by networks. Distributed computing in local networks is also called cluster computing while in wide-area networks we nowadays talk about grid computing. In the World Wide Web, web services implement globally distributed applications.A distributed system is a network of autonomous computers that communicate with each other in order to achieve a goal. The computers in a distributed system are independent and do not physically share memory or processors. They communicate with each other using messages, pieces of information transferred from one computer to another over a network. Messages can communicate many things: computers can tell other computers to execute a procedures with particular arguments, they can send and receive packets of data, or send signals that tell other computers to behave a certain way.