Client-Server and Multi-Tier Architectures

Client-Server and Multi-Tier Architectures

Numerous different types of present software use a client-server architecture, in which requests by one process (the client) are sent to another process (the server) for implementation. Database systems are no exception, and it has become gradually more common to divide the work of a DBMS into a server process and one or more client processes.

In the simplest client-server architecture, the entire DBMS is a server, except for the query interfaces that act together with the user and send queries or other commands across to the server. For example, relational systems generally use the SQL language for representing requests from the client to the server. The database server then sends the answer, in the form of a table or relation, back to the client. The relationship between client and server can get more complex, especially when answers are extremely large. We shall have more to say about this matter in "Multimedia Data".

There is also a tendency to put more work in the client, since the server will be a bottleneck if there are many simultaneous database users. In the recent proliferation of system architectures in which databases are used to provide dynamically-generated content for Web sites, the two-tier (client-server) architecture gives way to three (or even more) tiers. The DBMS continues to act as a server, but its client is typically an application server, which manages connections to the database, transactions, authorization, and other aspects. Application servers in turn have clients such as Web servers, which support end-users or other applications.




Tags