Client-Server Computing : Butler Model
How to Use Client Servers in the Business Environment
This article will discuss the Butler pyramid model of client-server computing in an attempt to provide a metaphor for understanding the most effective way of using client-server resources in a business environment. This five-layered model is also known as the Butler Group VAL (Value Added Layers) Model.
I will describe each of the layers and their function in an integrated client-server architecture. To expand this discussion on architecture, we will describe the four main client-server application models. We will summarize with conclusions.
Butler Pyramid Model of Client-Server Computing
The Butler pyramid model of client-server computing was developed as a metaphor with which to visualize the necessary components for effective client-server integration.
The bottom of the pyramid, the base, is infrastructure. This is Layer 1. This layer is made up of all the technological components that don’t directly perform business function but enable them passively. Operating systems, networks, user interfaces and database management systems (DBMS) are the broadest level or floor level. It encompasses the technology interacted with by most employees at all levels. It’s the layer IT managers are most familiar with.
Layer 2 is the middleware level. It is above the infrastructure layer and adds value through specialization. Middleware is the general term for programming that allows transparent communication between pre-existing applications. It provides messaging services so that applications can communicate. For example, a program can be written for one database in a way that also allows access to other databases, thereby multiplying its usefulness. The same program can provide communication between multiple databases by multiple users. The tying together of different components through middleware is known as enterprise application integration (EAI). It provides a means of mapping applications to specific resources to perform specific tasks. Middleware typically monitors and supports database connections and network connections.
Examples of different middleware applications include ones that offer database access technology, like ODBC (Open Database Connectors). Another one is Java’s database connectivity API (Application Programming Interface) or JDBC. There are also remote computation products, like ONC RPC (Open Network Computing Remote Procedure Call). Remote procedure call is a protocol by which one computer can request a service from another computer in a network without requiring full knowledge of network details. Other remote computation products are OSF RPC (Open Software Foundation Remote Procedure Call) and Java’s RMI (Remote Method Invocation). Other products include DCE (Distributed Computing Environments) products, CORBA (Common Object Request Broker Architecture), and DCOM (Distributed Component Object Model).
Layer 3 is more dense and specialized than Layer 2. Remember the layers keep decreasing in size as they increase in number. However, they keep increasing in specialization. Layer 3 contains applications. This is the layer that actively manipulates data and executes business functions. Companies usually invest a lot of money on applications. Unfortunately, some of this expense is superfluous because unneeded applications come as a part of software packages. However, in client-server models applications can be chosen from a variety of vendors to suit the company’s specific needs. Competitiveness is enhanced by this kind of in-house application development.
Layer 4 is the repository. This is the layer separating the business model or strategy from the technology that executes it. It is the location that stores and maintains multiple databases over a network. These are the networks and databases that run from the infrastructure to the top level.
The top level, Layer 5, is the business model level. It is the top of the pyramid, the point. It is independent from the technologies that execute it. But nonetheless, it structures the more technological levels underneath it. Business models represent a company’s cost-revenue-profit mechanics and the strategies it will use to reach its goals. It is essentially a company’s business design.
Business models will determine which hardware and software environments are needed. These environments may change according to the business model. However, the business model should remain constant and independent, picking and choosing technology to support its vision. Most business models are methodologically object oriented, concerned more with the manipulation of objects or data than concerned with the logic. This is a big leap from original programming, which was all about writing the logic that executed tasks.
Four Main Models of Client-Server Application Models
When client-server technology was being developed there were 4 dominant models: SQL (Structured Query Language) databases; Transaction Processing (TP) monitors; Groupware; and distributed objects.
SQL is the standardized query language used to make requests from databases. SQL supports distributed databases, which are different databases spread across several computer systems. This allows many users/employees to access databases that are networked together through LANs (Local Area Networks) simultaneously, insuring that all the data available throughout an organization is consistent and up-to-date. In addition to just manipulating data through simple commands/requests, SQL must also manage the functions that define these command/requests. This is done through stored procedures.
Stored procedures are a collection of commands and logical procedures that are stored on a server-side database. These procedures protect data integrity, conduct system maintenance, and execute the server’s application logic. Previously, SQLs were not standardized for database management, data replication, and user-defined data types. They were also not standardized in relation to format and protocols over networks. This made them costly and difficult to maintain due to the level of complexity in the using the language to write commands.
It is important to remember that SQL is a declarative programming language, which describes a problem rather than solving it. Data is retrieved by giving criteria rather than employing commands on ‘how’ to find the requested data. It is a declarative language rather than a function one. However, SQLs are popular because it is easy to build client-server applications in a single-vendor or single-server environment. (However, we know that this is increasingly not the case for larger businesses who mix-and-match products from different vendors.) GUI (graphic user interface) tools also make it easy to build SQL applications.
Transaction Processing monitors or TP monitors are another popular model for building client-server environments. TP monitors were programs developed to protect against system crashes when too many clients make too many requests from a single server. Originally, TP monitors were known as teleprocessing monitors and were used for multiplexing, allowing several clients to connect and work through one server. However, it developed into a program that breaks down other applications into pieces of code called transactions. Each transaction consists of a set of actions that comply with four properties known as ACID. Therefore, the actions within a transaction must be Atomic, Consistent, Isolated, and Durable. TP monitors are not necessary in single vendor/single server environments. They work best in three-tier architectures that employ load balancing. These three tier architectures are the user interface (UI), the functional logic for processing requests, and data storage/access. They are created on different platforms as independent modules and are then linked according to the business model’s needs.
Load balancing, another feature of TP monitors, is the even distribution of communications and processing over a network so that no device becomes overwhelmed. When one server reaches its threshold, requests are sent to other available servers. TP monitors ensure this process. Middleware employed by TP monitors is usually a transactional RPC (Remote Procedure Call) or peer-to-peer middleware. Peer-to-peer middleware insures that all users have access to the same data, execute the same procedures, and initiate communication.
Groupware uses five technologies to allow users to collect unstructured data into a set of documents. This is done by having multimedia management, e-mail, work-flow management, conferencing, and scheduling work together collaboratively. E-mail is its primary middleware. However, its greatest contribution comes from work-flow management. Work-flow is the process by which data gets sent to the appropriate parties that can act on it to move the work forward. It simulates real-life worker collaboration electronically, reducing the amount of manpower required to complete a business task.
The distributed object client-server model is the most flexible and is currently the vanguard of client-server architecture. Distributed objects are software modules that exist on multiple computer systems but are designed to work together. Objects are the individual units of data storage that are acted upon in object-oriented programming. Unlike other forms of programming that are mostly a collection of functions, object-oriented programming allows objects to receive and send messages and process data within the object. One of the factors that make distributed object models so flexible is their standardization. For example, OMG (Object Management Group) was one of the first to contribute to standardization by creating CORBA (Common Object Request Broker Architecture). CORBA allows objects or pieces of programs to communicate with each other regardless of operating systems or what programming language they were written in.
Benefits of Client-Server Models
The benefits of client-server models help businesses confront challenges in a variety of ways. For example, increasing complexity due to global marketing and remote online distribution requires a level of de-centralized accessibility to data and processes. Client-server models allow for easier and quicker communication between business departments and individuals. It also allows for easier coordination between customers, the businesses providing the service, and any supporting businesses outside the organization that are used to execute its services. The most powerful model currently is the distributed object model (DOM).