A server is a computer program or a machine that waits for requests from other machines or software (clients) and responds to them. This architecture is called the client–server model. The clients may run on the same computer or may connect to the server over a network. The purpose of a server is to share data or hardware and software resources among clients. Typical computing servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers.