A Client/Server Architecture
Most DSS are built within the context of a corporate-wide client/server architecture. You might be asking, "What is a client/server architecture or what are the characteristics of a client/server architecture?" Based on Taylor (1998), client/server refers to a computational architecture that involves client processes requesting service over a network from server processes. Ravi Kalakota in the Client/Server FAQ explains client/server architectures are:
1) A 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. The client process provides the interface between the user and the rest of the application system. The server process acts as a software engine that manages shared resources such as databases, analytical processors, or printers.
2) The client and server have fundamentally different requirements for computing resources such as processor speeds, memory, disk speeds and capacities, and input/output devices.
3) Scalable. 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 to multiple servers.
A common error in client/server development is to prototype an application in a small, two-tier architecture environment, and then scale up by simply adding more users to the server. This approach usually results in an ineffective system, because the server becomes overwhelmed. A three-tier architecture with a second "agent" server between the client and the server can support hundreds or thousands of users.
The Gartner group proposed terminology for describing different client/server styles or organizing schemes based on the distribution of the three components of an application: user interface, business analysis or application logic, and data management. The descriptive styles are distributed presentation, distributed function, and distributed data management. Distributed presentation is when only the user interface is processed on the client either using a Web browser or thick client interface. In a distributed function design, one part of the application processing in on the client, additional application processing is on one or more servers. Distributed function applications are the most complex type of design. In distributed data management, the entire application resides on the client and data management is located on one or more remote servers/hosts. Web-Based DSS are implemented using a distributed presentation design, but a DSS may also have distributed functions and distributed data management.
As noted, networks are a major element in the technical specification of a DSS architecture. The next section discusses this key architecture component.