Augustana University College

COMPUTING SCIENCE 220
Software Engineering and Human-Computer Interfaces


A Brief Historical Overview of System Architecture



Traditional Mainframe Architecture

advantages
centralized data: high data security, ease of backups; reliable, scalable computing.
disadvantages
inflexible; limited user interface; producing multiuser online applications was complex and difficult.

File Server Architecture

advantages
flexible, inexpensive to deploy
disadvantages
low security and reliability

Client/Server Architectures

Two-tier Client/Server Architecture

advantages
use of a relational DB increases security, reliability, flexibility; GUI makes system easy to learn for users; low to medium cost
disadvantages

Three-tier Client/Server Architecture

Figure 34.11 Classic view of a three-tier architecture.

Figure 34.12 A three-tier logical division deployed in two physical architectures.

advantages
disadvantages

Distributed Architectures

If the organization is geographically dispersed, a distributed architecture should be considered:

A distributed architecture for object-oriented applications typically uses an Object Request Broker (ORB), a middleware layer that enables an object on a client to send a message to an object on the server. The ORB handles all communication and coordination functions, providing transparent local and remote access to objects. Various implementations are available:

These technologies allow you to change the topology of your application without changing its classes.

See Chapter 4, §3, Problems and Methods to Avoid from Eric S. Raymond's online book The Art of Unix Programming for a critical view of RMI, COM, and DCOM.

Java and the Web

Java programs are:

portable
runs on any platform that offers a Java interpreter (JVM)
distributable

Implementing client software in Java adds platform independence to the data independence provided by a relational database and the topology independence provided by an object request broker [Gilbert and McCarty, p. 635].

References

Stephen Gilbert and Bill McCarty, Object-Oriented Design in Java (Waite Group Press, 1998) [QA 76.73 J38 G55 1998]

. Client/Server Software Architectures--An Overview from the Software Engineering Institute

. What Are the Basic Concepts of Client/server Architecture? History, definition and evolution by Marion K. Jenkins, Question #11 from Business Driven Information Technology: Answers to 100 Critical Questions for Every Manager edited by David R. Laube and Raymond F. Zammuto (Stanford University Press, 2003).

Copyright © 2003 Jonathan Mohr
Figures copyright © 2002 Craig Larman