While it provides many important advantages over file-based systems, client/server
architecture does involve performance issues that relate to the separation of server-based
data and networked clients that must access the data.
Consider the difference between client/server design and a centralized environment,
where a server-based program issues a command that is executed by the server’s own
CPU. Processing speed is enhanced because program instructions and data both travel
on an internal system bus, which moves data more efficiently than an external network.
In contrast to the centralized system, a client/server design separates applications and
data. Networked clients submit data requests to the server, which responds by sending
data back to the clients. When the number of clients and the demand for services
increases beyond a certain level, network capacity becomes a constraint, and system performance
declines dramatically.
In the article shown in Figure 10-19, IBM states that the performance characteristics of a
client/server system are not the same as a centralized processing environment. Client/server
response times increase gradually as more requests are made, but then rise dramatically
when the system nears its capacity. To deliver and maintain acceptable performance, system
developers must anticipate the number of users, network traffic, server size and location, and
design a client/server architecture that can support current and future business needs.
What is the answer to enhancing client/server performance? According to IBM,
client/server systems must be designed so the client contacts the server only when
necessary and makes as few trips as possible.
Another issue that affects client/server performance is data storage. Just as processing
can be done at various places, data can be stored in more than one location using a distributed
database management system (DDBMS).