Distributed Processing, Client/Server and Clusters

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Distributed Processing, Client/Server and Clusters
ICS 434 Advanced Database Systems
Database Architectures and the Web
Cache Coherent Distributed Shared Memory. Motivations Small processor count –SMP machines –Single shared memory with multiple processors interconnected.
Distributed Processing, Client/Server, and Clusters
Distributed components
Chapter 6: Client/Server and Intranet Computing
Chapter 16 Client/Server Computing Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Technical Architectures
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Distributed Database Management Systems
Distributed Processing, Client/Server and Clusters
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Chapter 7: Client/Server Computing Business Data Communications, 5e.
Distributed Information Systems - The Client server model
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 17 Client-Server Processing, Parallel Database Processing,
Distributed Systems: Client/Server Computing
Client/Server Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Application Programming Interface (API) A set of function and call programs that allow clients and servers to inter- communicate Client A networked.
Client/Server Architectures
System Architecture & Hardware Configurations Dr. D. Bilal IS 592 Spring 2005.
1 Distributed Processing, Client/Server, and Clusters Chapter 13.
1 Chapter 3 Database Architecture and the Web Pearson Education © 2009.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Database Architectures and the Web Session 5
Lecture On Database Analysis and Design By- Jesmin Akhter Lecturer, IIT, Jahangirnagar University.
Distributed Processing and Client/Server
1 Distributed Processing, Messages, RPC, RMI, CORBA Chapter 14 ”Operating Systems” W. Stallings.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Personal Computer - Stand- Alone Database  Database (or files) reside on a PC - on the hard disk.  Applications run on the same PC and directly access.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
CENTRALISED AND CLIENT / SERVER DBMS. Topics To Be Discussed………………………. (A) Centralized DBMS (i) IntroductionIntroduction (ii) AdvantagesAdvantages (ii)
Unit 9: Distributing Computing & Networking Kaplan University 1.
Client/Server Computing
Chapter 131 Distributed Processing, Client/Server, and Clusters Chapter 13.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
System Models Advanced Operating Systems Nael Abu-halaweh.
Chapter 16 Client/Server Computing Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Business System Development
Database Architectures and the Web
System Architecture & Hardware Configurations
The Client/Server Database Environment
The Client/Server Database Environment
The Client/Server Database Environment
CSC 480 Software Engineering
System Architecture & Hardware Configurations
CHAPTER 3 Architectures for Distributed Systems
Database Architectures and the Web
CHAPTER 2 Application Layer.
#01 Client/Server Computing
Ch > 28.4.
Computing Architectures
Distributed Processing, Client/Server and Clusters
Chapter 17: Database System Architectures
Outline Midterm results summary Distributed file systems – continued
Introduction to Databases Transparencies
Chapter 17: Client/Server Computing
MORE ON ARCHITECTURES The main reasons for using an architecture are maintainability and performance. We want to structure the software into reasonably.
Basic organizations and memories in distributed computer systems
Database System Architectures
#01 Client/Server Computing
Presentation 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 The server enables many clients to access shared resources (e.g. a large database). The server typically runs on a cloud or a high-performance computer system.

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

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).

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. If initial query results in 100K possible records, the server may just indicate that without sending the records. Then search can be narrowed down and the # of possible records is reduced drastically. After a few iterations we may receive the desired record. Do not return the records

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 thin client Middle-tier server 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 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

Clusters Clusters Compared to SMP 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

Issues on Clusters Failure management Load balancing 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