Distributed Processing, Client/Server, and Clusters Chapter 13.
Distributed Processing, Client/Server and Clusters Chapter 16.
-
Upload
jalyn-gott -
Category
Documents
-
view
230 -
download
4
Transcript of Distributed Processing, Client/Server and Clusters Chapter 16.
Distributed Processing, Client/Serverand Clusters
Chapter 16
Client/Server Computing
Client machines:
single-user PCs or workstations that provide a highly user-friendly interface to the end user
Each server provides a set of shared user services to the clients
The server enables many clients to share access to the same database and enables the use of a high-performance computer system to manage the database
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)
Client/Server Applications
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
Client/ServerDatabase 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 can be equipped with application logic for performing data analysis (computation of mean).
Split-up the application logic
10
Classes of Client/Server Applications
Host-based (dumb terminal) not true client/server computing traditional mainframe environment
Server-based (thin client) server does all the processing User(client) workstation provides a
graphical user interface
Fat client modelsTakes advantage of desktop power and can serve large number of 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 routines and other database
logic function are done at the server
Three-Tier Client/Server Architecture
Application software distributed among three types of machines
User machine thin client
Middle-tier serverGatewayConverts protocolsMap from one type of
database query to anotherMerge/integrate results from
different data sourcesAssumes 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
a write, mark the file as non-cacheable
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.
Capability 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
LOGICAL VIEW OF MIDDLEWARE
Middleware which cuts across all client and server platforms, is responsible for routing client requests to the appropriate server.
Distributed Message Passing Middleware products are typically based on one of two underlying
mechanisms: Message-passing or RPC (Remote procedure calls) Send and receive messages as used in a single system
OR Remote procedure calls
Reliable Guarantees delivery if possible - Not necessary to let the sending
process know that the message was delivered
Unreliable Send the message out into the communication network without
reporting success or failure - Reduces complexity and overhead
Blocking 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
Message-passing schemes
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 Add new systems in small increments Can have dozens of machines each of which is a multiprocessor
Clusters are superior in terms of availability 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 Returning the design and improvements to the community
Issues on Clusters
Failure management Highly available vs. fault-tolerant clusters
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 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