15 August 2006

Intro to Client/Server Computing-2

(Part 1)

The first part very briefly outlined the development of major computer architectures responsible for client/server computing, organized somewhat thematically. However, I'm going to be a little more structured hereafter. In what follows, I'm going to be referring to networks that do not follow the client/server model, and for which "client" and "server" don't really apply. So for networks (whether C/S or not), all of the networked machines are called nodes; those nodes that are computers are called hosts. Elsewhere I've used the word "host" to refer to web servers that host a website. Here, I'm greatly expanding the sense to include any computer-like device with a microprocessor. All hosts in a network are nodes; but not all nodes are necessarily hosts: "dumb terminals," passive terminal emulator sessions, and some industrial machine tools, may be nodes that can't, or don't, run programs within the network.

The client/server model of data organization is actually one of several network formats that can be used.
  • The mainframe model
    In the mainframe model, the terminal transmits keystrokes to the mainframe and receives a screen image back. This is the most extreme form of data centralization. Since genuinely dumb terminals are comparatively rare nowadays, it's more likely one would be using a terminal emulator program.
  • File sharing
    At the opposite extreme is the file-sharing architecture, in which the server merely hosts files, like a library; the processing functions remain on the client.
  • Peer-to-Peer
    Any type of network configuration in which nodes on the network are responsible for maintaining themselves on the network. This requires a network architecture that is highly decentralized. All nodes are on an equal footing.
  • Client Server
    Under this system, there is an integral relationship between the application running on the client, and that running on the server. Specifically, the server maintains a database backend, and the client maintains a database frontend. Several standardized languages were developed for communication between client and server, allowing them to run separate parts of a common program.
Of the C/S formats, there are a few basic standards:
  • Two tier architectures
    The most obvious client-server relationship. The client is the lower tier, while the server is the upper tier. This sharply enhances the power of a computer system, by dispersing but coordinating the functions of data storage and data presentation. However, two-tiered architectures have a limited scalability because of limitations imposed by the address resolution protocol (ARP). For large numbers of subnet nodes, ARP queries seriously slow down the efficiency of the network.

    Another problem is that, with a two-tier architecture, if the front end resides entirely on the user networks, this requires the system administrator to install updates on all of the client computers.

  • Three tier architectures
    With a third tier, the ARP can readily address a far larger number of end-user nodes. Moreover, the intermediate tier was given additional features, such as queuing and application execution. The three tiers are known as the user interface tier (which resides on the user nodes), the business logic (intermediate) tier, and the database access tier.

    The user interface tier merely makes requests of the business logic tier. In some cases, it interfaces with the database through a web browser (e.g., Citrix Presentation Server); updates to the front end are made to the server with the business logic tier installed, and do not require that the system administrator ensure that the software is installed properly on the desktops of many employees. The database access tier, likewise, is responsible solely for storing data. The business logic tier is responsible for handling queries, forms, generating output, and other functions of the database front end. Of course, the database access and business logic tiers may well be stored on the same physical computer.

    Another way of describing this architecture (explained later) is "DBMS independence." Ideally, the intermediate tier could house multiple DB management softwares, such as Oracle and Ingres, which both access the same database. This is made possible by a standard SQL format for relational databases.

  • Three tier architectures with Transaction Processing Monitor technology
    When operations are performed on the data in a database, or when a DBMS performs a query on a database, the operation typically consists of several steps that must be be executed atomically. For example, if money is transferred from a checking account to a savings account at an ATM, then the checking account must be credited and the savings account must be debited the amount. These two operations must occur seamlessly; it is not acceptable for the database to have an intermediate state in which one step has been executed and the other hasn't. We call such operations atomic because they are indivisible, and the intermediate state is unknown to the process; they are also known as transactions.

    Transactions can be bundled and processed, while remaining atomic (i.e., with no intermediate state data available to the running software process) using the Transaction Processing (TP) Monitors [*], which manages transactions from their point of origin. The TP Monitor does this by dividing many requests from users into separate threads, and allowing the processor to divide its time among the threads one transaction at a time. As the system resources grow, the architecture can be scaled upward in size to support more processors (thereby allowing many threads to be run at the same time).

  • Three tier architectures with message server
    Here, the intermediate tier is implemented as a message server. Transactions take the form of messages between database server and user/client. The difference between TP monitor technology (above) and message server is that the message server architecture treats messages as intelligent (i.e., containing direction and purpose) whereas the TP Monitor environment has the intelligence in the monitor, and treats transactions as raw data packets.

  • Distributed/collaborative enterprise architecture
    The crucial element here is that the database (the highest tier) is distributed, possibly over a large area and probably among multiple machines. As a term of art, the distributed/collaborative enterprise architecture incorporates an object request broker (ORB), or software component that manages communications among data objects. ORB's interpret user requests, then logically establish the resources within the distributed system and invoke them [*]. The ORB contains the communications infrastructure that allows applications to access DB services.


  • International Business Machines (IBM)
    IBM's contributions include SNA and the token ring. Neither was a prolonged commercial success. The token ring was initially adopted by many of IBM's clients, but soon afterwards overwhelmed by Ethernet, which made TCP/IP networks more capable. (Ethernet is not a competing network architecture, but it did compete with the data level standard for IBM token ring).

    Systems Network Architecture (SNA) is a complete set of protocols defining all levels of a network, from cables to applications. It was created in 1974 and remains in use in some financial settings. The SNA is interesting insofar as it provides an illustration of a completely distinct network ecosystem, entirely separate from the Internet. (MORE INFO: Cisco Documentation, IBM Systems Network Architecture Protocols)

  • Digital Equipment Corporation (DEC)
    The network system DECnet (AKA Digital Network Architecture, or DNA) was introduced in 1975 to link PDP-11 computers. Rather than corresponding to the then-familiar concept of client/server networks, DECnet was based on the concept of peer-to-peer (P2P) networks, rather than the hierarchical structure used by SNA.

    DEC was bought by Compaq in 1998; Compaq, in turn, merged with Hewlett-Packard in 2001. DECnet was by then slated for obsolescence. Even before 1996, the DECnet architecture was drastically revised into DECnet-Plus, and made compatible with TCP/IP data, network, and transport layers [*]. As DNA-specific protocols were made optional, they were phased out. This was a strategic decision made by Compaq and HP management; the payoff was continued viability of the OpenVMS operating system. However, it is worth noting that DECnet-Plus V is still supported in open source, and is available for Linux [*].
    (MORE INFO: HP Documentation, OpenVMS Systems Documentation & esp. table 1-2; for a beginner's guide, see DECnet-Plus for OpenVMS Introduction and User's Guide)

  • AppleTalk
    AppleTalk was a network protocol suite that was introduced in 1984 as part of the Macintosh. It was carefully designed to follow the OSI reference model, and compensate for the inadequacy of TCP/IP network architecture for small, peer-to-peer computer networks. Soon after the release of MS Windows, Apple moved away from AppleTalk.

    An industry standard for object request brokers (ORB's); CORBA is the Common ORB Architecture. The goal was to develop a standard by which databases distributed over many servers (perhaps in many different locations) could be accessed by diverse DBMS's; the different DB-locales would be invoked as software objects, and the invoked results based on the requestor (client) transparently.[*]

  • Distributed Computing Environment (DCE)
    A competing standard for distributed client/server architecture developed by the Open Group.[*] Like CORBA, DCE is a set of interface standards that define how applications ought to be designed. However, DCE also includes a reference implementation, or source code on which DCE products are based. The goal is for DCE-compliant applications to be interoperable (able to exchange information with each other, that can then be used by the applications rather than merely parsed) and flexible.

passive terminal emulator sessions: if you access a session on a mainframe on a modern Windows PC, you will do so through an emulator session. While the PC is capable of being a host, and is (at the hardware layer), at the application layer, all it is doing is transmitting keystrokes and receiving a screen signal. Terminal emulators are programs that communicate with the mainframe in signals identical to those of the original terminal, even though one's terminal may be any type of computer.
ADDITIONAL READING & SOURCES: Wikipedia entries for types of client/server network architecture: client/SOA; SNA, token ring (IBM); DECnet (DEC);

Carnegie-Mellon University, "Client/Server Software Architectures—An Overview," w/links to related topics; CodeWhore.com, "Networking: Broadcast, Client/Server, Token Ring"; IONA Technologies, "Two- " and "Three-Tier Client-Server Architecture,"; Brian E. Hoffmann, "Online defect management via a client/server DBMS" (1993); "A perspective on Advanced Peer-to-Peer Networking" (PDF), by P. E. Green, R. J. Chappuis, J. D. Fisher, P. S. Frosch, & C. E. Wood, IBM (1987);

BOOKS: An Introduction to Database Systems-7th Edition, C.J. Date, Addison-Wesley (2000)

Labels: ,


Post a Comment

<< Home