Download Chapter 8

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Microsoft Jet Database Engine wikipedia , lookup

Database model wikipedia , lookup

SQL wikipedia , lookup

Relational model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Btrieve wikipedia , lookup

Clusterpoint wikipedia , lookup

Team Foundation Server wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
Local Area Networks, 3rd Edition
David A. Stamper
Part 3: Software
Chapter 8
Client/Server
Architecture
© 2001 by Prentice Hall
8-1
Chapter Preview
In this chapter you will study:
• What is client/server?
• Client/server history
• Client/server advantages and
disadvantages
• Client/server technology
• Client/server standards
• Client/server database
implementations
© 2001 by Prentice Hall
8-2
What Is Client/Server?
• A client is a software module that relies on
a server software module for some of an
application’s processing requirements.
• The server performs the work necessary
to complete the request and returns the
result to the client.
• Client/server computing is:
– a modular approach to application design
– an architecture for software deployment and sharing
– a hardware-independent approach to application design
© 2001 by Prentice Hall
8-3
Client/Server Computing: A
Modular Approach
• The client/server approach to application
design takes advantage of the fact that
applications typically perform a variety of
functions. Three of the most common
functions are presentation, business, and
database logic.
• If this type of architecture is adopted,
changes in one functional area can be
isolated from the remainder of the system.
© 2001 by Prentice Hall
8-4
Single Process Client/Server
Configuration
Database
Logic
Disk drives
Business
Logic
Application
© 2001 by Prentice Hall
Presentation
Logic
Terminal
8-5
Client/Server Computing: Software
Sharing
• Client/server computing can take
advantage of the fact that some
application logic is common to multiple
programs.
• Because most applications use
databases, the logic these applications
use to access and manipulate data is
mostly the same. With client/server
computing, these applications can share
this logic rather than have it embedded
within each program.
© 2001 by Prentice Hall
8-6
Client/Server Computing:
Hardware-Independent Approach
• Client/server provides a way of crafting
application systems for single computers
as well as for networks. Therefore,
client/server applications can be spread
over a wide variety of hardware
configurations.
• The primary requirement is an ability for
the client and server to communicate.
© 2001 by Prentice Hall
8-7
Client/Server on a Network
File/Print
Server
Database
(SQL)
Server
Clients
Bus.
Logic
Pres.
Logic
Requests and Responses
© 2001 by Prentice Hall
8-8
Client/Server an Historical
Perspective
• In the early days of computing, a programmer often needed
to address the issues of hardware interfaces as well as the
issues of business logic. This required more skills from the
programmer, and development time was extensive because
hardware-oriented logic often had to be duplicated in
multiple programs.
• With the advent of compilers and operating systems, the
application programmer’s responsibilities were reduced.
Compilers allowed code to be written in high-level
languages, like COBOL and C++.
• ON-line transaction processing (OLTP) provided another
step toward client/server computing. The implementation
used in leading OLTP systems was the precursor of modern
client/server computing environments.
© 2001 by Prentice Hall
8-9
Client/Server Models
Server
Client
Database Logic
Business Logic
Presentation Logic
Database Server Model
Server
Client
Database Logic Business Logic
Business Logic Presentation Logic
Split Business Logic Model
Server
Client
Database Logic Business Logic
Presentation Logic
Presentation Client Model
© 2001 by Prentice Hall
8-10
Local Procedure Call Example
P2
Procedure P2 (input1, output1)
P1
Procedure P1 (input1, input2, ouput1)
Call P2 (param1, param2)
Main
Call P1 (param1, param2, param3)
Local
Procedure
Calls
Program
© 2001 by Prentice Hall
8-11
Remote Procedure Call Example
Procedure P2 (input1, output1) P2
Procedure P1 (input1,
P1 input2, ouput1)
Call P2 (param1, param2)
Main
Remote
Procedure
Call
Call P1 (param1, param2,
Local
param3)
Program
Procedure
Call
Client Computer
Server Computer
© 2001 by Prentice Hall
8-12
SQL Server
• With SQL server technology, the database
processing is done on the server. In file server
technology, the database processing is the
responsibility of the client. The advantages of the
SQL server technology are as follows:
– Less data is transmitted over the network.
– Database processing that can be optimized for that task is performed on the
server.
– If database processing demands increase, more powerful SQL servers can
be installed to accommodate the increased workload.
– Processing is distributed over multiple computers, each of which can be
optimized for the tasks it performs.
© 2001 by Prentice Hall
8-13
Relationship Between SQL Server
and Client
Vendor A
Business
Logic
Database
Driver
Vendor A
Database
Driver
Vendor B
Database
(SQL)
Servers
Com.
Interface
Client Computer
Vendor B
© 2001 by Prentice Hall
8-14
The Role of the SQL Server
• The SQL server’s job is to process the queries it receives
from clients.
• The SQL server must be multithreaded.
• Because the SQL server specializes in carrying out
database requests, it can be highly optimized for tasks it
performs. To optimize the SQL server operations, an SQL
server computer may be configured with some of the
following options:
–
–
–
–
–
–
–
Multiple processors for parallel processing
Large amounts of RAM for caching disk images
Processor s dedicated for improving the speed of disk access
High-speed buses
Efficient disk subsystems that allow parallel disk accesses
Fault-tolerant disk configurations to reduce the risk of database outages
High-speed communications between client and server
© 2001 by Prentice Hall
8-15
Combined Client/Server
Responsibilities
• Clients and servers have disjoint processing
responsibilities. There are some processing
responsibilities that may be assigned to either the client or
the server or split between them. One example of this is the
enforcement of business rules.
• There are advantages and disadvantages to having the
logic for enforcing business rules in the server. When such
logic is placed in the server, there is a single point at which
the logic is placed. If the business logic changes, the
change can be made in the server’s logic, and all clients
immediately see the effect of the changes.
• However, adding application logic to the server increases
its workload and can decrease the server’s ability to
provide fast responses to requests.
© 2001 by Prentice Hall
8-16
Client/Server Standards
• Client/server standards have been formulated to allow open
systems and provide a mechanisms for interoperability of
clients and servers. The standards being formed include:
– how clients and servers communicate with each other
– how clients find the server or servers that perform their needed functions
• Interfaces between clients and servers have come to be
called middleware. Middleware is responsible for making
the connection between clients and servers.
• Examples of middleware and its standardization efforts are:
– distributed computing environment (DCE) specifications
– object request broker (ORB)
– open database connectivity (ODBC)
© 2001 by Prentice Hall
8-17
A Look to the Future
• Operating system and application software
evolution is placing ever higher demands for
disk, memory, and processing. These increasing
demands together with a dependence on desktop
computing have the following consequences:
– Newer, higher capacity computers are needed to replace older, lower
capacity computers.
– Existing computers need upgrading to accommodate new software.
– Installing and supporting distributed applications can be expensive.
– Managing centralized systems is easier than managing decentralized
systems.
• In an effort to trim the costs associated with
software evolution, some companies are adopting
the use of thin clients and server clusters.
© 2001 by Prentice Hall
8-18
A Look to the Future (cont.)
• A thin client is a stripped-down microcomputer.
The function of the thin client is to provide basic
input and output much like the terminals in the
earlier centralized host computer architectures.
• A cluster servers consists of two or more servers
operating in concert with each other.
• The benefits of the then client architecture are:
– Lower costs because the thin clients are less expensive to buy
– Obsolescence is not as likely for thin clients because they do not need to
keep pace with expanding software needs
– Software distribution and maintenance is simpler when restricted to the
servers
– Management and control of applications and data is easier in a centralized
architecture
© 2001 by Prentice Hall
8-19
Thin Client Architecture
Server Cluster
High-speed Interface Between Servers
Database
(SQL)
Servers
File/Print
Servers
Application
Servers
Thin
Clients
Terminal
Server
© 2001 by Prentice Hall
8-20