Understanding Client/Server Computing



Similar documents
Chapter 1 Introduction to Enterprise Software

ICS 434 Advanced Database Systems

Tutorial on Client-Server Architecture

Client/server is a network architecture that divides functions into client and server

Distributed Systems Architectures

System types. Distributed systems

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

Databases Lesson 04 Client Server Computing and Adaptation

The 5-Minute ThinManager Overview. White Paper. For more information, please visit:

Understanding Application Servers

1. INTRODUCTION TO RDBMS

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

B. WEB APPLICATION ARCHITECTURE MODELS

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

IT Infrastructure: Hardware and Software

Network and Services (NETW-903)

Client-server systems

Benchmarks of SQL Query Performance for ODBC and Oracle Call Interface

Tier Architectures. Kathleen Durant CS 3200

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

What Is the Java TM 2 Platform, Enterprise Edition?

WHAT IS AN APPLICATION PLATFORM?

Client-Server Applications

Special Edition for FastTrack Software

Session 12 Evolving IT Architectures: From Mainframes to Client-Server to Network Computing

APPLICATION ARCHITECTURE AND MODELING

Cloud Computing Architecture: A Survey

This paper was presented at the 1996 CAUSE annual conference. It is part of the proceedings of that conference, "Broadening Our Horizons:

AS/400 System Overview

Mobile Devices: Server and Management Lesson 02 Application Servers Part 1

Distributed Database Design

Client/Server and Distributed Computing

IT Infrastructure and Platforms

Axapta Object Server MICROSOFT BUSINESS SOLUTIONS AXAPTA

GEOG 482/582 : GIS Data Management. Lesson 10: Enterprise GIS Data Management Strategies GEOG 482/582 / My Course / University of Washington

The Microlease Asset Management Solution

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Enterprise Desktop Virtualization

Cloud Computing. Cloud computing:

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Chapter 4 IT Infrastructure: Hardware and Software

White Paper Converting Lotus Notes Applications to the Cloud Using the CIMtrek converter Product

Client-server 3-tier N-tier

Service Oriented Architectures

VIRGINIA DEPARTMENT OF MOTOR VEHICLES SECURITY ARCHITECTURE POLICY. 03/27/09 Version

SalesLogix. SalesLogix v6 Architecture, Customization and Integration

Custom Systems Corp.

Hyper-V: Microsoft s

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Introduction. Introduction: Database management system. Introduction: DBS concepts & architecture. Introduction: DBS versus File system

EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

ProactiveWatch Monitoring For the Rest of Us

Phire Architect Hardware and Software Requirements

Introduction: Database management system

Chapter A computer is a collection of computers that communicate with one another over transmission lines.

Resolving network file speed & lockup problems

SequeLink Server for ODBC Socket

Chapter 16 Distributed Processing, Client/Server, and Clusters

Outline. TIM 50 - Business Information Systems. Lecture 10. Instructor: Terry Allen UC Santa Cruz 10/28/2011

Introduction to Visual Basic and Visual C++ Database Foundation. Types of Databases. Data Access Application Models. Introduction to Database System

SOA Performance Testing Challenges

Relational Databases in the Cloud

Managing Enterprise Devices and Apps using System Center Configuration Manager

Enterprise Infrastructure Architecture

Frequently Asked Questions: Desktone s Offerings and Market

Chapter by Prentice Hall

Fax Server Cluster Configuration

TG Web. Technical FAQ

Enterprise Governance and Planning

Software Architecture Document

BS&A Software Application Design Approach

To use MySQL effectively, you need to learn the syntax of a new language and grow

WHITE PAPER: ENTERPRISE SOLUTIONS. Symantec Insight Inquire Symantec i 3 Application Availability and Performance Management Solution

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

Chapter 4 IT Infrastructure and Platforms

Programming in C# with Microsoft Visual Studio 2010

HELP DESK SUPERVISOR

Performance Considerations for Web Applications

Data Warehousing. Wolf-Tilo Balke Silviu Homoceanu Institut für Informationssysteme Technische Universität Braunschweig

2.1 Basics: Indexing. 2.1 Primary Index. 2.1 Secondary Index. 2.1 Secondary Index. 2.1 Indexes. 2.1 Indexes

RESILIENT PRODUCT LIFECYCLE MANAGEMENT STRATEGIES & SOLUTIONS FOR FUTURE-PROOFING PLM

SAP Banking Technology. Technical Overview Roland Keller Solution Architect SAP NetWeaver Technology. Layer. SAP Application. (e.g.

Installing VinNOW Client Computers

Best Practices: Extending Enterprise Applications to Mobile Devices

Desktop Application Virtualization and Application Streaming: Function and Security Benefits

SHAREPOINT ARCHITECTURE FUNDAMENTALS

Information Systems Development Process (Software Development Life Cycle)

Chapter 18: Database System Architectures. Centralized Systems

ntier Verde: Simply Affordable File Storage No previous storage experience required

Administering System Center 2012 Configuration Manager

Transcription:

Understanding Client/Server Computing By Will Fastie PC Magazine; "Enterprize Computing;" Back in the eighties when network equipment vendors first started to hawk their wares, the term client/server was used to conjure up a host of fancy capabilities offered by the new hardware. Today, client/server has a very specific meaning that has nothing to do with hardware at all. Even so, most folks still associate the term client with the physical computers they are using and the term server with some other physical computer to which they are connected. There's a glimmer of truth there, to be sure, but today client/server means much more. We're going to cover the essentials of client/server computing. We'll define one-tier, twotier, three-tier, and n-tier client/server program architectures; we'll explain the difference between a thin client and a fat client; and we'll discuss the middleware concept. But first, you need to understand a few things about general software architecture. Most application programs have three major layers. On top is the presentation layer, which provides the human/machine interaction (the user interface). The presentation layer handles input from the keyboard, mouse, or other device and output in the form of screen displays. In the middle is the application or business logic, the functionality that gives the application program its character. Application logic makes the difference between an order entry system and an inventory control system, for example; it is often called business logic because it contains the business rules that drive a given enterprise. The bottom layer provides the generalized services needed by the other layers, including such things as file services, print services, communications services, and, perhaps most important, database services.

For simplicity, we will confine this discussion just to those programs needing database services. That's what most architects first think of when they hear the term client/server, but the general rules apply to any kind of service. The number of tiers in a client/server application is determined by how tightly or loosely the three program layers are integrated. A one-tier application is one in which the three program layers are tightly connected. In particular, the presentation layer has intimate and detailed knowledge of the database structure. The application layer is often interwoven with both the presentation layer and the services layer. All three layers, including the database engine, almost always run on the same computer. One-tier applications are easy to design and write, especially with today's modern software tools. It's also possible to create a multiuser one-tier application by running the application on several PCs and having them share the database. The database can be stored either on one of the PCs (a peer solution) or on a file server. Note that each PC running the application has its own copy of the database engine; only the data is shared, not the database logic itself. Multiuser one-tier applications are okay until the number of users gets large. The problem is that all the database work is performed in each client. For example, if the program needs to list all clients with the last name of Smith, all the information (indexes and data records) needed to resolve that query to the database must be transferred over the network. For some complex queries, a significant amount of data must be examined, perhaps even the entire database. At a more technical level, it is difficult to manage independent database engines to be sure that no conflict arises when two clients attempt to access or update the same record. This is called the record-locking problem. The solution for the performance and technical problems associated with multiuser onetier programs is two-tier client/server architecture. This type of application is written in mostly the same way as a one-tier application, with the exception that the database service (engine) no longer runs with the client. Instead, it runs on the server computer that contains the database itself. Some method is used to communicate between the application logic layer and the database service.

Today, the method that's most commonly used is the Structured Query Language (SQL), a language that can encapsulate complex database queries in relatively compact sentences. The SQL statement is sent to the database server, which performs the work locally on that physical computer and returns only the relevant information (the answer) to the client PC. Only the database services are separated from the application in a twotier design. The presentation and business logic layers remain very intertwined, and both continue to have intimate knowledge of the database. Two-tier applications are a bit more complex to write, but most development tools are equipped with a great deal of support in their integrated development environments to facilitate rapid programming. The tools are so good that two-tier programs can be developed almost as quickly as one-tier apps. The only downside is cost. Most tools provide database engines that can handle one-tier designs (such as the Jet engine, used with Access and Visual Basic), but two-tier applications require separate database products such as Oracle, IBM DB2, Sybase, or Microsoft SQL Server. Three-tier client/server applications, as you may have guessed, break all three program layers into independent sections. We have already seen how the database service can run on a different computer. in three-tier designs, the business logic itself becomes a service, and that service can also be run on its own computer. When the business logic becomes a service, it is usually called an application server or simply app server. Quite often, the app server runs on the same physical server hardware as the database. Colocation can sometimes benefit performance, so it is usually a first choice. But a key advantage of having an app server is that it can be located in the best place to serve the need. If you run a business with sales regions, for example; some regions might have many salespeople sharing an app server that's running on a separate physical computer. However, the one salesperson in a remote region might run both the client and the app server on a single PC. No matter how the client and app server are configured, all app

servers might receive database services from a centralized computer, perhaps a mainframe. And no matter how the app server is deployed, all users operate the application in exactly the same way from the client. The locations of the app server and the database server are irrelevant to the user. In a three-tier client/server application, the presentation layer usually does not have intimate knowledge of the database. Instead, the presentation layer communicates with its application server using a predifined message strategy. The best way to understand this is to think about the Web. Your browser knows absolutely nothing about the structure of the database at Amazon.com, for example, but you are nevertheless able to interact with that database when you order a book. This is the result of well-defined Internet protocols that allow the client (the browser) to talk to an application server (a Web site). Three-tier applications are much more difficult to build than two-tier apps. The biggest obstacle is that the software tools integrated development environments are not aware of the three-tier model the way they are about the two-tier model. As a result, much more hand-coding is required to write a three-tier application. Three-tier apps are also harder to design, because they are somewhat abstract compared with their more direct two-tier counterparts. Software tool vendors are starting to release new versions that tout threetier or n-tier development support, but it's not mature development technology just yet. One point of interest is that a two-tier relationship exists between an app server and its database server. In other words, even though the client in a three-tier application doesn't have intimate database knowledge, the app server does. The term "n-tier" is quite in vogue right now. In truth, three tiers are the maximum;"ntier" refers to the fact that an application server can request services from many other services, and that the services themselves can ask for services as needed to respond properly to the client's original request. The message flows can get pretty complex. Middleware is the term often used to describe the application or business logic present in an app server. Unfortunately, the same term is also used to describe generic services. For example, to communicate, the three tiers may use a messaging system. This is true middleware in the sense that it functions between, or in the middle of, the three tiers. When someone uses the term middleware, be sure you know what specific meaning is intended. When designing and building a three-tier client/server application, most developers make conscious decisions about how much of the business logic to move into the independent app server. A good example of this is input-data validation. Most users like immediate feedback when a datum is invalid. If the app server lives on a different physical computer, there can be a delay before the presentaion layer in the client reports that an entry is invalid. To keep good performance, validation rules often live with the presentation layer in the client. If little or no business logic remains in the client, meaning that it is exclusively a presentation layer, then the client is called thin. If the client has lots of business logic, then it is fat. The best example of a thin client is your Web browser. It is so thin that it

can connect to entirely different applications of which it has no knowledge and still provide a suitable user interface. The whole concept of the network computer hinges on building the cheapest, smallest device that will run a Web browser. Client/server computing is really much more than a simple separation of a user's PC from a server computer. Hopefully the definitions provided here can give you a leg up the next time you're caught in a jargon-laden meeting.