by Albert Yau
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.
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.
Disk and File ServersThe 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.
- 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.
- 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.
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