« Weblog Stats thru Feb 24. | Main | Research assistance »


Components of a client/server architecture

Chapter 4 introduced the basic concepts of client/server technologies and discussed how they could be applied to ebusiness. Recall from our last terminology review that client/server refers to a popular software architecture. Client/server could be used to describe the physical properties of a network or the way in which a software system works. They are called client/server architectures because of the way the various resources (computers or software applications, for instance) that make up the overall system are either logically or physically, separated, classified as either a client or a server, and arranged as such to provide for optimal efficiency and effectiveness. In Chapter 7 we take this slightly further to explore the underlying components of a client/server architecture.

We used the example of the University's physical plant to illustrate the role of servers. Where the physical plant is a dedicated centralized group which operate powerful heavy equipment to provide specialized maintenance services, servers are powerful computers or software processes dedicated to the 'heavy lifting' in a software system -managing database access, disk drives (file servers), printers (print servers), or network traffic (network servers) for instance. Continuing with our analogy, the various departments of the university, like clients, rely on the central services of the physical plant from time to time. Decisions are made, sometimes difficult ones, about which resources are given to each department and which are held and managed centrally and shared as needed. The clients in a client/server architecture might be PCs or workstations on which users run applications or the applications themselves. Clients rely on servers for resources, such as files, devices, security checks, and even processing power. The inner components and processes of a software system, even of a single program, may themselves also follow a client/server model.

But for our purposes let's keep things simple. A very simple ebusiness application might just require an architecture similar to a PC. In this case we would have a two-tier client/server environment; one tier is the server computer that contains all the application logic and manages the database, and the other tier, the presentation tier, is the client which accesses these server functions. The client, or presentation tier, might be on the same machine or located anywhere, using a browser or other client technology to access the server across a remote network like the Internet, for instance.
Client-Server-Pic.gif
More robust ebusiness applications, with more sophisticated functionality and capable of handling more concurrent users, would require a more sophisticated architecture, more scalability. More than likely the database would be managed on its own dedicated server. In fact most ebusiness applications consist of several distributed applications running on several distributed machines. Separating the presentation layer from the application layer from the database layer is a classic design practice found in both hardware and software architectures known as the 3-tier architecture (as illustrated with this conceptual model). Though there are common best business practices, software design is not an exact science and different situations, different problems will call for different approaches and solutions. Issues such as speed, security, data integrity, scalability, flexibility, and cost contribute to what amounts to sometimes difficult decisions and a complex systems design.

Underlying components of a client/server architecture

E-commerce applications typically require a variety of servers to perform a variety of functions. While an operating system is an essential requirement of any server, some servers which perform specialized tasks require specific software. In practice servers are sometimes referred to by the operating system which runs on them. The most popular operating systems that run servers are Unix, Linux, and Windows 2000.

Types of servers

  • File server
  • Print server
  • web server (i.e apache, MS-IIs, IBM websphere)
  • database server (i.e oracle, MS-SQLserver, IBM DB2)
  • communication server
  • groupware server (i.e. Lotus notes, MS-exchange)
  • proxy server
  • application server (i.e BEA weblogic, SUN ONE, Apple webObjects)

Network Operating Systems
Network operating systems (NOS) are complex programs for managing internal and local area network resources. A NOS may manage servers, printers, stations, remote users, security, applications, client/server functions. Unix, Linux, Novell Netware and Windows NT are a few examples.

Types of clients

  • Workstation - Windows XP, web browser
  • Terminals (ATM, POS, Kiosk, set-top boxes)
  • Network computer - web browser
  • Mobile technologies - digital phones, PDAs, GPS, etc...
  • etc

Peripherals

  • Monitors
  • Printer
  • Network Equipment
  • Backup systems
  • devices (scanner, camera, labeller, pos, etc..)

Posted by Mark Hemphill on February 25, 2004 | Permalink

Comments

It was interesting for me to learn about what exactly a client and a server are and how they differ. I always thought that the server was only the network operating system that is used in a network and that the clients were each computer hooked up to the network. Now i relaize there is a lot more to it then I first thought. I also thought that windows would be the server but all windows actually does is run the server like it would any other program.

Posted by: Jamie Holland | Oct 27, 2004 1:07:34 PM

A client-server architecture is a network architecture in which each computer or process on the network is either a client or a server. Servers are powerful computers or processes dedicated to managing disk drives (file servers), printers (print servers), or network traffic (network servers ). Clients are PCs or workstations on which users run applications. Clients rely on servers for resources, such as files, devices, and even processing power. This architecture is primarily distinguished from other architectural styles by its reliance on structuring the system using layers A layer is the following:

In abstraction, a layer is an abstract place conceived as having depth.
In telecommunications a layer is an F region.
In telecommunications networks and open systems architecture a layer is a group of related functions that are performed in a given level in a hierarchy of groups of related functions.
In object-oriented design a layer is a group of classes that have the same set of (compile-time) module dependencies to other modules, i.e. a collection of reusable components that are available for reuse in similar circumstances.

Posted by: Jared Doyle | Oct 28, 2004 12:13:56 AM

The comments to this entry are closed.