Distributed System Models

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

Welcome to Middleware Joseph Amrithraj
Database Architectures and the Web
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Technical Architectures
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems: Client/Server Computing
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Source: George Colouris, Jean Dollimore, Tim Kinderberg & Gordon Blair (2012). Distributed Systems: Concepts & Design (5 th Ed.). Essex: Addison-Wesley.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 2 ARCHITECTURES.
Architectures of distributed systems Fundamental Models
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
Kyung Hee University 1/41 Introduction Chapter 1.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Architecture Models. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
University of South Asia Course Name: Distributed System
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
Distributed Systems CS Architectural Models of Distributed Systems Lecture 3, September 9, 2015 Mohammad Hammoud.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Architectural.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
Database Principles: Fundamentals of Design, Implementation, and Management Chapter 1 The Database Approach.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
5th Edition, Irv Englander
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CLOUD COMPUTING
Chapter 2 Database System Concepts and Architecture
Web Development Web Servers.
Principles of Network Applications
E-commerce | WWW World Wide Web - Concepts
Distributed Systems CS
MVC and other n-tier Architectures
E-commerce | WWW World Wide Web - Concepts
Software Design and Architecture
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distribution and components
Distributed web based systems
CHAPTER 3 Architectures for Distributed Systems
Introduction to client/server architecture
#01 Client/Server Computing
Database Management System (DBMS)
Introduction to Databases Transparencies
Multiple Processor Systems
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 40 Remote Method Invocation
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
Multithreaded Programming
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Distributed Systems through Web Services
Distributed Systems CS
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
Architectures of distributed systems
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Chapter 5 Architectural Design.
Architectures of distributed systems Fundamental Models
Database System Architectures
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Chapter 2: System models
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
#01 Client/Server Computing
Presentation transcript:

Distributed System Models Most concepts are drawn from Chapter 2 © Pearson Education

Contents Introduction Physical models Architectural models Fundamental models

Contents Introduction Physical models Architectural models Fundamental models

Introduction Distributed system design can be explained through three different models: Physical models – models that capture the hardware composition of a system in terms of computer and their interconnecting networks Architectural models – models that describe the system in terms of the computational and communication tasks performed by its computational elements Fundamental models – models that describe an abstraction of individual items in distributed systems. Three models; interaction, failure, and security models (Cancelled)

Contents Introduction Physical models Architectural models

Physical models Basic physical models - baseline physical model Model that shows hardware and software, components located at networked computers, communicate and coordinate their actions by passing message Three generations of distributed systems: Early distributed systems Internet-scale distributed systems Contemporary distributed systems

Physical models

Contents Introduction Physical models Architectural models

Architectural models Architecture? Why architecture? The structure of a system specifying its components and their interrelationships Why architecture? To ensure that the structure will meet the current and future demands on it To provide a reliable, manageable, adaptable and cost-effective system

Architectural models Architectural elements: How to understand the fundamental building blocks of a distributed system? What are the entities that are communicating in the distributed system (communicating entities)? How do they communicate, or, what communication paradigm is used (communication paradigms)? What roles and responsibilities do they have in the overall architecture (roles and responsibilities)? How do they mapped on to the physical distributed architecture (what is their placement)?

Architectural Elements of a Distributed System Communicating entities Communication paradigms roles and responsibilities Placement of communication entities 95-843 SOA Coulouris 5Ed.

Architectural models Communicating entities: Processes: Operations inside the System Objects: computation consists of a number of interacting objects. Components: emerged due to some weaknesses with distributed objects Web services: closely related to objects and components

Architectural models Communication paradigms Interprocess communication – low-level process support. E.g. message passing primitives, direct access to API (Application Program Interface), multicast communication(a single sender and multiple receivers) API : is a software intermediary وسيطthat allows two applications to talk to each other. Each time you use an app like Facebook, send an instant message, or check the weather on your phone, you’re using an API. Remote invocation – common communication paradigm in distributed systems. Two-way exchange between communicating entities, common techniques; RPC (Remote Procedure call), RMI (Remote Method Invocation), request-reply protocols Indirect communication– E.g. group communication, publish-subscribe systems, message queues, tuple spaces, distributed shared memory(DSM)

Architectural models

Roles and Responsibilities Architectural models Roles and Responsibilities We examine two architecture styles : client server Client-server Peer-to-peer peer 95-843 SOA Coulouris 5Ed.

Client Server Basic Model: Clients invoke individual servers Querying a web server, which could then query a mysql or oracle database before returning the content of a page Web server is a client of the database server A search engine, as well as serving search requests from clients, crawls other websites to keep its information current. Search engine is both a server and a client for other web servers. Client processes interact with individual server processes in a separate computer in order to access data or resource. The server in turn may use services of other servers. Example: A Web Server is often a client of file server. Browser  search engine -> crawlers  other web servers.

A service provided by multiple servers This topology is extremely common. A web site like google serves approximately 100M searches a day. It is obviously simply not feasible to serve them from a single server. Google uses clusters containing 10’s of thousands of machines offering equivalent services, and you are redirected (via DNS and other means) to one of them. Can also be redirected at protocol or application level. Similar techniques can be used for Oracle databases, that are replicated over many servers to offer redundancy and performance Services may be implemented as several server processes in separate host computers. Example: Cluster based Web servers and apps such as Google, parallel databases Oracle

Peer Processes: A distributed application based on peer processes Peer model suits ad-hoc groupings of participants. Can be used very effectively… for instant bittorrent “swarm” style downloaded. -No central point of failure (reliable) -No central point of control (difficult to deny service for adversaries) -Some peers will typically contribute more than others (I.e. seed or super-peer) All of the processes play similar roles, interacting cooperatively as peers to perform distributed activities or computations without distinction between clients and servers. E.g., music sharing systems Gnutella, Napster, Kaza, etc. Distributed “white board” – users on several computers to view and interactively modify a picture between them.

Architectural models Placement strategies: Mapping of services to multiple servers – several servers process services in separate hosts. Example: Sun Network Information Service (NIS) Caching – storing recently used data objects. Example: web proxy server Mobile code – Code can be downloaded and run on user’s machine. Example: Applet Mobile agents – Code and data travel in a network and performing specific tasks on behalf of the users. Example: Web crawler program

Architectural models Web applets

Proxy servers (replication transparency) and caches: Web proxy server A cache is a store of recently used data. Web proxy servers can operate at client level, at ISP level and at edge/gateway levels to improve performance and reduce communication costs for frequently accessed data. Caching can even be used for dynamic data (such as a google search). This reduces the load on the web servers and improves the performance for end users by reducing the time taken for a dynamic request. Google uses this technique extensively! When serving 100M requests/day this saves resources.

Architectural models Architectural patterns: Layering –complex system is partitioned into a number of layers. The top layer utilizes the services of the lower layer. Tiered architecture – complementary to layering, organizes the functionality of the given layer and place it in appropriate server (physical nodes). Thin clients – software layer that supports window-based user interface in remote computers. Other patterns : e.g. proxy, brokerage, reflection

N-tired vs. n-layer architecture N-tier and n-layer are entirely different concepts. N-tier refers to the actual n system components of your application. For ex: Suppose you create a web application, its components include your application server where it is being hosted, the database being used with it, on another server and the user machine who access the application, forms the third component. These are referred to as the 3-tier of your application. So they may be n in number and so the term n-tier application. So tiers are the physically separate components of the same system.

On the other hand, layers refer to the internal architecture of your component. For ex: in your code, you divide the code into different layers like Data access layer, Business logic layer etc.. So they are internal to the component and these layers interact with each other internally to form the entire component.

Architectural Patterns (1) Layered architecture the vertical organization of services into layers of abstraction: applications, services layered on the top middleware between the application and the operating system 95-843 SOA Coulouris 5Ed.

Architectural models Software and hardware service layers in distributed systems

Architectural Patterns (2) Tiered architecture: Complementaryمكمل to layering (combining in such a way as to enhance or emphasize the qualities of each other or another.) usually applied to the applications and services layer An application may be described in terms of presentation logic(Presentation logic is that portion of an enterprise system which determines how data will be displayed or reported.), business logic(Business logic is that portion of an enterprise system which determines how data is transformed and/or calculated) , and data logic (The data access layer consists of the definitions of database tables and columns and the computer logic that is needed to navigate the database Such an application might be built upon two tiers or three. This is separation of concerns 95-843 SOA Coulouris 5Ed.

Application Architecture Overview An application system consists of three logical layers.  The presentation layer is what a system user sees or interacts with.  It can consist of visual objects such as screens, web pages or reports or non-visual objects such as an interactive voice response interface. When most people think of application systems, they think mainly of the presentation layer.  The business logic layer, on the other hand, represents the business rules that are enforced via programming logic (computer instructions) regarding how those rules are applied.  This business logic layer on the surface, can appear to be very straight forward, however, it is rarely so 95-843 SOA Coulouris 5Ed.

The data access layer consists of the definitions of database tables and columns and the computer logic that is needed to navigate the database.  The data access layer enforces rules regarding the storage and access of information. 95-843 SOA Coulouris 5Ed.

Client-Server Architecture Types (Tier arch complements layer architecture) Two-tier model (classic) Three-tier (when the server, becomes a client) Multi-tier (cascade model) client server client Server/client server client Server/client server

Architectural Patterns (3) In a two-tier solution, the business logic and user interface may reside on the client and the data logic layer may be placed on the server. This is the classic client server architecture. Other organizations are possible: In a three-tier solution, the first tier can be a simple user interface, the second tier has the application logic, the third tier is simply a database An AJAX application such as Google Maps is an example of a responsive multi-tiered application. New Map tiles (256X256 pixel images) are fetched as as needed. The thin client approach is a trend in distributed computing. Move complexity into internet based services. Cloud computing and Virtual Network Computing (remote desktop ) are examples. 95-843 SOA Coulouris 5Ed.

Multitiered Architectures (2) Figure 2-5. Alternative client-server organizations (a)–(e). Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5

Questions Q: What is a three-tiered client-server architecture? A: A three-tiered client-server architecture consists of three logical layers, where each layer is, in principle, implemented at a separate machine. The highest layer consists of a client user interface, the middle layer contains the actual application, and the lowest layer implements the data that are being used. Q: What is the difference between a vertical distribution and a horizontal distribution? A: Vertical distribution refers to the distribution of the different layers in a multitiered architectures across multiple machines. In principle, each layer is implemented on a different machine. Horizontal distribution deals with the distribution of a single layer across multiple machines, such as distributing a single database. In this type of distribution, a client or server may be physically split up into logically equivalent parts, but each part is operating on its own share of the complete data set, thus balancing the load. Modern system architectures that support horizontal distribution, known as peer-to-peer systems.