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 hrough 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.