Download Distributed Processing, Client/Server, and Clusters

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

Database wikipedia , lookup

Concurrency control wikipedia , lookup

Microsoft Access wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Database model wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Btrieve wikipedia , lookup

Clusterpoint wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Team Foundation Server wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
Distributed Processing,
Client/Server
and Clusters
Chapter 16
Client/Server Computing

Client machines:
single-user PCs or
workstations that provide a
highly user-friendly interface
to the end user

The server provides a set of
shared user services to the
clients


LAN or WAN
or Internet
The server enables many
clients to access shared
resources (e.g. a large
database).
The server typically runs on
a cloud or a highperformance computer
system.
server
workstation
(client)
Figure 16.1 Generic Client/Server Environment
Client/Server Applications

Client and server platforms/OS may be different

These lower-level differences are irrelevant as long as a client and
server share the same communications protocols (ex: TCP/IP)
and support the same applications

Actual functions performed by the application can be split up
between client and server in a way that optimizes the use of
resources

Optimize the ability of users to perform various tasks and to
cooperate with one another using shared resources

Heavy emphasis on providing a user-friendly Graphical User
Interface (GUI) on the client side (presentation services layer)
Generic Client/Server Architecture
Database Applications

One of the most common families of client/server applications

The server is a database server responsible for maintaining
the database

Interaction between client and server is in the form of
transactions
 the client makes a database request and receives a database
response

A variety of different client applications can use the same
database server; all using the same interface/protocol
Client/Server Architecture for Database Applications
e.g. SQL: Structured Query Language
1,000 possible records
Final query
1,000,000
record
database
One record returned
Client/Server
Database Usage
Example:
think of an application in
which we need to compute
the mean of the ages of a
certain population and the
search criteria returns 300K
records
 heavy network traffic
To optimize performance:
server must be equipped with
application logic for
performing data analysis
(computation of mean).
(a) Desirable client/server use
Server
Client
Query
300,000 records returned
1,000,000
record
database
(b) Misused client/server
Figure 16.4 Client/Server Database Usage
Client/Server
Interaction
Yet another example:
think of an application in
which we need to search for
a person named Jo Smith,
born before 1980.
Client
100,000 possible records
Do not return the records
Next query
If initial query results in
100K possible records, the
server may just indicate that
without sending the records.
1,000 possible records
Final query
1,000,000
record
database
One record returned
Then search can be narrowed
down and the # of possible
records is reduced
drastically.
After a few iterations we
may receive the desired
record.
Server
Initial query
(a) Desirable client/server use
Server
Client
Classes of Client/Server Applications

Host-based (dumb terminal)
 not true client/server computing
 traditional mainframe environment.
 Text-based interface to a mainframe.
(e.g. used only for login, issuing shell commands, viewing results, and logout)

Server-based (thin client)
 server does all the processing
 User(client) workstation provides a graphical user interface
(e.g. Business-specific applications:
Taking orders and entering them into a database.
Producing and printing receipts etc.)
Classes of Client/Server Applications
Fat client models
Takes advantage of desktop power and can serve large number of clients
by offloading application processing from servers to the clients.

Cooperative
 application processing is performed in an optimized fashion
 complex to set up and maintain but
 greater user productivity gains and greater network efficiency

Client-based
 Most common client/server model
 all application processing done at the client
 data validation and other database logic functions are done at the server
 Some of the database logic functions are housed on the client side
(e.g. hotel search on expedia – narrow down search based on star/price/etc)
Three-Tier Client/Server Architecture

Application software distributed
among three types of machines

User machine


Middle-tier server






thin client
Gateway
Converts protocols
Map from one type of database
query to another
Merge/integrate results from
different data sources
Assumes both roles:
server & client
Backend server

Legacy applications
File Cache Consistency


File caches hold recently accessed file records
Cache consistency problem:



Caches are consistent when they contain exact copies for remote data
Simple solution: File-locking prevents simultaneous access to a file
Complicated approach: allow multiple read but one write access; when there is
an access for ‘write’, mark the file as non-cacheable for others.
Middleware






Lack of standards for client/server models makes it difficult to implement an integrated,
multivendor, enterprise-wide client/server configuration
Middleware: Set of tools that provide a uniform means and style of access to system resources
across different platforms. Goal: to enable an application or user at a client to access a variety
of services on servers without being concerned about differences among them
Provides standard programming interfaces/protocols that sit between the application above and
the communications software+OS below.
Capable to hide the complexities and disparities of different network protocols and OS
Enable programmers to build applications that look and feel the same with little effort
Enable programmers to use the same method to access data
Distributed Message Passing

Middleware products typically use one of the two underlying
mechanisms for communication.
Message-passing
or
RPC (Remote procedure calls)
Message-passing schemes

Reliable

Guarantees delivery if possible - Not necessary to let the sending
process know that the message was delivered

Unreliable


Blocking




Send the message out into the communication network without
reporting success or failure - Reduces complexity and overhead
Send does not return control to the sending process until the
message has been transmitted
OR does not return control until an acknowledgment is received
Receive does not return until a message has been placed in the
allocated buffer
Nonblocking



Process is not suspended as a result of a Send or a Receive
Efficient and flexible
Difficult to debug
Clusters


Alternative to symmetric multiprocessing (SMP)
Group of interconnected, whole computers working together as a
unified computing resource


illusion is one machine
system can run on its own
Clusters Compared to SMP

SMP is easier to manage and configure

SMP takes up less space and draws less power

Clusters are better for incremental and absolute scalability



Clusters are superior in terms of availability


Add new systems in small increments
Can have dozens of machines each of which is a multiprocessor
Failure of one node does not mean loss of service
Clusters have superior price/performance
Beowulf and Linux Clusters





Mass market commodity components (No custom components)
A dedicated, private network (LAN or WAN or internetworked combination)
Easy replication from multiple vendors
Scalable I/O
A freely available software base
Distributed
shared storage
Linux
workstations
Ethernet or
Interconected Ethernets
Issues on Clusters

Failure management



Highly available clusters offers a high probability that all resources will be in service

Fault-tolerant cluster ensures that all resources are always available (use of
redundant disks/processors etc.)
Load balancing


Highly available vs. fault-tolerant clusters
When a new computer is added to the cluster, the load-balancing
facility should automatically include this computer in scheduling
applications
Parallelizing Computation

Parallelizing compiler

Parallelized application