Article 1

Client Server Computing

by Albert Yau


What is Client-Server Computing?

Client-Server computing is the logical extension of modular programming with fundamental assumption that separation of a huge program into its constituent parts ("modules") can create the possibility for further modification, easier development and better maintainability. In Client-Server Computing, all large modules need not all be excecuted within the same memory space. With this architecture, the calling module becomes the client( requesting service) and the called module becomes the server (providing service). Clients and Servers are running separately on appropriate hardware and software platforms for their functions. For example, database management system servers running on platforms specially designed and configured to perform queries, or file servers running on platforms with special elements for managing files.

Components in Client-Server Computing

Client-Server Computing is dividing into three components, a Client Process requesting service and a Server Process providing the requested service, with a Middleware in between them for their interaction.

A Client Server Process usually manage the user-interface portion of the application, validate data entered by the user, dispatch requests to server programs. It is the front-end of the application that the user sees and interacts with. Besides, the Client Process also manages the local resources that the user interacts with such as the monitor, keyboard, workstation, CPU and other peripherals.

On the other hand, the Server Process fulfills the client request by performing the service requested. After the server receives requests from clients, it executes database retrieval , updates and manages data integrity and dispatches responses to client requests. The server-based process may run on another machine on the network; the server is then provided both file system services and application services.Or in some cases, another desktop machine provides the application services. The server acts as software engine that manages shared resources such as databases, printers, communication links, or high powered-processors. The main aim of the Server Process is to perform the back-end tasks that are common to similar applications.

Middleware allows applications to transparently commnicate with other programs or processes regardless of location. The key element of Middleware is NOS (Network Operating System) that provides services such as routing, distribution, messaging and network management service. NOS rely on communiction protocols to provide specific services. Once the physical connection has been established and transport protocols chosen, a client-server protocol is required before the user can access the network services. A client-server protocol dictates the manner in which clients request information and services from a server and also how the server replies to that request.


Characteristics of Client-Server Architecture

There are four basic characteristics of Client-Server Architecture:

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.

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.


Various types of Servers

Disk and File Servers

The simplest form of servers are disk servers and file servers. With a file server, the client passes requests for files or file records over a network to the file server. This form of data service requires large bandwidth and can slow a network with many users.

Database, Transaction and Application Servers

The more advanced form of servers are Database servers, Transaction server and Application servers (Orfali and Harkey 1992).

In database servers, clients passes SQL (Structured Query Language) requests as messages to the server and the results of the query are returned over the network. The code that processes the SQL request and the data resides on the server allowing it to use its own processing power to find the requested data, rather than pass all the records back to a client and let it find its own data as was the case for the file server.

In transaction servers, clients invoke remote procedures that reside on servers which also contains an SQL database engine. There are procedural statements on the server to execute a group of SQL statements (transactions) which either all succeed or fail as a unit.

Application servers are not necessarily database centered but are used to server user needs, such as. download capabilities from Dow Jones or regulating a electronic mail process. Basing resources on a server allows users to share data, while security and management services, which are also based in the server, ensure data integrity and security.


Reasons for employing Client-Server Technology in Business

Client/server computing has arisen because of a change in business needs. Businesses today need integrated, flexible, responsive and comprehensive applications to support the complete range of business processes. Problems with existing systems include:

- applications were developed to model vertical applications

- applications were built in isolation

- applications were implemented as monolithic systems

- applications were complex

- the supporting technology was based on a centralised control model

Information technology, which is an enabling factor in systems building, has almost reached the stage where these systems can be designed and created. Unfortunately, most businesses have existing systems based on older technology, which must be incorporated into the new, integrated environment. The development and implementation of client/server computing is more complex, more difficult and more expensive than traditional, single process applications. The only answer to the question "why build client/server applications?" is "because the business demands the increased benefits.


Business Benefits From Client-Server Computing

Tremendous benefits for implementing Client-Server Technology in Business. Below are just a few of it.

- Vendor independence as compared to the traditional mainframe computing. This includes application development methodologies, programming paradigms, products and architectures.

- Organisation have changed from steep hierarchies to flattened hierarchies. Decisions making are carried out by many lower ranked mangaers across the organisation rather than performed only by CEOs in the past.

- Network management is replacing vertical management

- Faster response and flexibilty to changing environment of business world outside.

- The customer has a single point of contact for all business with the organisation.

- The time required to complete the work will be minimised

- Better sharing of critical database resources and other application softwares among clients through the network.

- Companies can cut costs on maintainence in employing Client- Server Computing since servers are usually cheaper than mainframe (1/10 of mainframe) and the performance of servers and mainframe are nearly identical.

- Networked webs of small, powerful machines. If one machine goes down, the organisation can still function properly.

- Systems grow easily. It is easy to updated and modernise sytem, both hardware and software as the companies evolved and has new requirements.

- Indiviual client operating environments. You can mix and match computer platforms to suit the needs of individual departments and users.


References

Orfali, Robert, et. al. Essential Client/Server Survival Guide New York : Van Nostrand Reinhold

Berson, Alex Client-server architecture / Alex Berson. New York : McGraw-Hill, c1992.

Smith, Patrick. Client/server computing Carmel, Ind. : SAMS, c1992.

Computing Archive, Department of Applied Science, Johns Hopkins University

Byte Magazine , Issue 6 1993 & Issue 4 1995

INSPEC - CD ROMS titles by IEE


Updated by Albert Yau on 22nd May, 1995