The basic characteristics of client/server architectures
are:
1) combination of a client or front-end portion that
interacts with the user,and a server or back-end portion
that interacts with the shared resource.
The client process contains solution-specific logic and
provides the interface between the user and the rest of the
application system. The server process acts as a software
engine that manages shared resources such as databases,
printers, modems, or high powered processors.
2) the front-end task and back-end task have fundamentally
different requirements for computing resources such as
processor speeds, memory, disk speeds and capacities, and
input/output devices.
3) the environment is typically heterogeneous and
multivendor. The hardware platform and operating system of
client and server are not usually the same.Client and
server processes communicate through a well-defined set of
standard application program interfaces (API's) and
RPC's.
4) An important characteristic of client-server systems is
scalability. They can be scaled horizontally or vertically.
Horizontal scaling means adding or removing client
workstations with only a slight performance impact.
Vertical scaling means migrating to a larger and faster
server machine or multiservers.
Advantages of client-server architecture:-
In most cases, client-server architecture enables the roles
and responsibilities of a computing system to be distributed
among several independent computers that are known to each
other only through a network. This creates an additional
advantage to this architecture: greater ease of maintenance.
For example, it is possible to replace, repair, upgrade, or
even relocate a server while its clients remain both unaware
and unaffected by that change. This independence from change
is also referred to as encapsulation.
All the data is stored on the servers, which generally have
far greater security controls than most clients. Servers can
better control access and resources, to guarantee that only
those clients with the appropriate permissions may access
and change data.
Since data storage is centralized, updates to those data are
far easier to administer.
It functions with multiple different clients of different
capabilities.
Disadvantages of client-server architecture :-
Traffic congestion on the network has been an issue since
the inception of the client-server paradigm. As the number
of simultaneous client requests to a given server increases,
the server can become severely overloaded.
The client-server paradigm lacks the robustness. Under
client-server, should a critical server fail, clients’
requests cannot be fulfilled.