Client-servercomputer network application is one in which a client, which instantiates the user interface of the application, connects with an application server or database system. When a client connects directly to a database system, or to a monolithic application server, the architecture of the application is a 2-tier architecture.
A client-server architecture is a network architecture in which each computer or process on the network is either a client or a server. Servers are powerful computers or processes dedicated to managing disk drives (file servers), printers (print servers), or network traffic (network servers ). Clients are PCs or workstations on which users run applications. Clients rely on servers for resources, such as files, devices, and even processing power. This architecture is primarily distinguished from other architectural styles by its reliance on structuring the system using layers.
In recent years, it is more common for a thin client which does not incorporate business logic, but only user interface elements to connect to an application server that implements the business logic, and which transitively (i.e. in turn) communicates with a database server, which stores the raw data used by the application. Such an architecture is called a three-tier architecture, which is a special case of n-tier architecture.
In general, n-tier architectures may employ a number of distinct services, including transitive relations between application servers implementing different functions of business logic, each of which may or may not employ a distinct or shared database system.
Another type of network architecture is known as a peer-to-peer architecture because each node has equivalent responsibilities. Both client/server and peer-to-peer architectures are widely used, and each has unique advantages and disadvantages.