Chapter 5 • Enterprise Systems 193
sites is generally less expensive than expanding the
capacity of a large system at the central site. Distributed
systems do have disadvantages, such as greater security
risk because of easy accessibility, dependence on high-
quality telecommunications lines, and greater required
coordination across sites. In most instances, however,
the disadvantages are outweighed by the economic
advantages. The distributed mode of computing has
become the norm for business firms around the world.
Client/Server Systems
In the 1990s a particular type of distributed system known as
aclient/server systemmoved to center stage, and this type
of system continues to enjoy the spotlight in the twenty-first
century. With this type of system, the processing power is
distributed between a central server computer, such as a
midrange computer or a powerful workstation, and a
number of client computers, which are usually desktop
microcomputers. The split in responsibilities between the
server and the client varies considerably from application to
application, but the client usually provides the graphical user
interface (GUI), accepts the data entry, and displays the
immediate output, while the server maintains the database
against which the new data are processed. The actual
processing of the transaction may occur on either the client
or a server. For example, in a retail client/server application,
the client might be the sophisticated cash register on the
sales floor while the server is a workstation in the back
office. When a credit sale is made, the data are entered at
the register and transmitted to the server, the server retrieves
the customer’s record and updates it based on the sale, the
server returns a credit authorization signal to the register,
and the sales document is printed at the register. At the close
of the billing cycle, the server prepares the bills for all of the
customers, prints them, and produces summary reports for
store management.
Now that we have a general idea about the nature of
a client/server system, let us explore the three building
blocks of such a system. First, the client building block,
usually running on a PC, handles the user interface and has
the ability to access distributed services through a network.
Sometimes the client also does the processing. Second, the
server building block, usually running on a bigger machine
(a high-end PC, workstation, midrange computer, or even a
mainframe), handles the storage of data associated with the
application. This associated data might be databases, Web
pages, or even objects for object-oriented programs.
Sometimes the server (or even another server) does the
processing. The third building block is middleware,a
rather vague term that covers all of the software needed to
support interactions between clients and servers. The
Client/Server Survival Guiderefers to middleware as “...
the slash (/) component of client/server. In this first
approximation, middleware is the glue that lets a client
obtain a service from a server” (Orfali, et al.,1999, p. 44).
Middleware can be divided into three categories of
software: server operating systems, transport stack
software, and service-specific software. The server operat-
ing system, also called a network operating system, has the
task of creating a single-system imagefor all services on
the network, so that the system is transparent to users and
even application programmers. The user does not know
what functions are performed where on the network—it
looks like a single system. The primary server operating
systems include several variations of Microsoft Windows
Server, several variations of UNIX, and Linux. Transport
stack software allows communications employing certain
protocols, such as Transmission Control Protocol/Internet
Protocol (TCP/IP) (see Chapter 3), to be sent across the
network. The server operating system often encompasses
some elements of the needed transport stack software, but
other middleware products might also be required. The
service-specific software is used to carry out a particular
service, such as electronic mail or the World Wide Web’s
Hypertext Transfer Protocol (HTTP).
Consider the split in responsibilities between the
client and the server. The question is where the actual
processing of the application is done. Originally, all
client/server systems had only two tiers—a client tier and
a server tier. If most of the processing is done on the
client, this is called a fat clientorthin servermodel. If
most of the processing is done on the server, then it is a
thin clientorfat servermodel. For example, Web servers
and groupware servers are usually fat servers (i.e., the
processing is largely done on the server for Web and
groupware applications), while database servers are
usually thin servers (i.e., the processing is largely done on
the client). In the mid-1990s, three-tier client/server
systemsbecame popular. In the most common three-tier
configuration, an application server that is separate from
the database server is employed. The user interface is
housed on the client, usually a PC (tier 1); the processing
is performed on a midrange system or high-end PC oper-
ating as the application server (tier 2); and the data are
stored on a large machine (often a mainframe or midrange
computer) that operates as the database server (tier 3).
Let us consider some examples of client/server
systems. An East Coast electric utility company used a
three-tier approach to revamp its customer service
system. The new system enables the utility’s 450 service
representatives to gain access to the multiple databases
the company maintains on its 1.5 million customers. The
service representatives use PCs as clients (tier 1) working