Distribution transparency. Degree of transparency. Openness of distributed systems



Similar documents
Distributed System: Definition

CS 5523 Operating Systems: Intro to Distributed Systems

How To Understand The Concept Of A Distributed System

Distributed Systems LEEC (2005/06 2º Sem.)

How To Make A Distributed System Transparent

Principles and characteristics of distributed systems and environments

Distributed Systems. Examples. Advantages and disadvantages. CIS 505: Software Systems. Introduction to Distributed Systems

Virtual machine interface. Operating system. Physical machine interface

CORBA and object oriented middleware. Introduction

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

DISTRIBUTED SYSTEMS AND CLOUD COMPUTING. A Comparative Study

Grid Computing Vs. Cloud Computing

Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1

Cluster, Grid, Cloud Concepts

Client/Server and Distributed Computing

Tier Architectures. Kathleen Durant CS 3200

EMC VPLEX FAMILY. Continuous Availability and data Mobility Within and Across Data Centers

A Brief Analysis on Architecture and Reliability of Cloud Based Data Storage

Distributed Systems Lecture 1 1

TABLE OF CONTENTS THE SHAREPOINT MVP GUIDE TO ACHIEVING HIGH AVAILABILITY FOR SHAREPOINT DATA. Introduction. Examining Third-Party Replication Models

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

ORACLE DATABASE 10G ENTERPRISE EDITION

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

Distributed Systems and Recent Innovations: Challenges and Benefits

Cloud Computing Disaster Recovery (DR)

Deploying a distributed data storage system on the UK National Grid Service using federated SRB

Distributed Operating Systems

Web DNS Peer-to-peer systems (file sharing, CDNs, cycle sharing)

Cloud Computing Submitted By : Fahim Ilyas ( ) Submitted To : Martin Johnson Submitted On: 31 st May, 2009

Cloud Computing: Meet the Players. Performance Analysis of Cloud Providers

Chapter 1: Distributed Systems: What is a distributed system? Fall 2008 Jussi Kangasharju

EMC VPLEX FAMILY. Continuous Availability and Data Mobility Within and Across Data Centers

Scalability of web applications. CSCI 470: Web Science Keith Vertanen

Software-Defined Networks Powered by VellOS

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

Introduction to Cloud Computing

CLOUD COMPUTING. When It's smarter to rent than to buy

Dynamic Deployment and Scalability for the Cloud. Jerome Bernard Director, EMEA Operations Elastic Grid, LLC.

Distributed Data Management

Code and Process Migration! Motivation!

Data Management in the Cloud. Zhen Shi

Chapter 19 Cloud Computing for Multimedia Services

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

Diagram 1: Islands of storage across a digital broadcast workflow

Bryan Tuft Sr. Sales Consultant Global Embedded Business Unit

Chapter 17: Distributed Systems

DISTRIBUTED AND PARALLELL DATABASE

RAMCloud and the Low- Latency Datacenter. John Ousterhout Stanford University

Vortex White Paper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems

Distributed System Principles

Chapter 18: Database System Architectures. Centralized Systems

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Affordable, Scalable, Reliable OLTP in a Cloud and Big Data World: IBM DB2 purescale

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

bigdata Managing Scale in Ontological Systems

EMC VPLEX FAMILY. Transparent information mobility within, across, and between data centers ESSENTIALS A STORAGE PLATFORM FOR THE PRIVATE CLOUD

HIGH-SPEED BRIDGE TO CLOUD STORAGE

CHAPTER 2 THEORETICAL FOUNDATION

A SWOT ANALYSIS ON CISCO HIGH AVAILABILITY VIRTUALIZATION CLUSTERS DISASTER RECOVERY PLAN

CHAPTER 8 CLOUD COMPUTING

Network File System (NFS) Pradipta De

Tamanna Roy Rayat & Bahra Institute of Engineering & Technology, Punjab, India talk2tamanna@gmail.com

Cloud computing - Architecting in the cloud

Network Attached Storage. Jinfeng Yang Oct/19/2015

PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Introduction to Parallel and Distributed Databases

IBM Platform Computing Cloud Service Ready to use Platform LSF & Symphony clusters in the SoftLayer cloud

Cloud Platforms, Challenges & Hadoop. Aditee Rele Karpagam Venkataraman Janani Ravi

Middleware: Past and Present a Comparison

Datacenters and Cloud Computing. Jia Rao Assistant Professor in CS

Multilevel Communication Aware Approach for Load Balancing

Cloud Computing. Chapter 1 Introducing Cloud Computing

Getting More Performance and Efficiency in the Application Delivery Network

Final Project Proposal. CSCI.6500 Distributed Computing over the Internet

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

IaaS Cloud Architectures: Virtualized Data Centers to Federated Cloud Infrastructures

Service Oriented Architectures


BIG DATA IN THE CLOUD : CHALLENGES AND OPPORTUNITIES MARY- JANE SULE & PROF. MAOZHEN LI BRUNEL UNIVERSITY, LONDON

LOGO Resource Management for Cloud Computing

Zadara Storage Cloud A

What is Data Virtualization?

How Solace Message Routers Reduce the Cost of IT Infrastructure

Cloud Design and Implementation. Cheng Li MPI-SWS Nov 9 th, 2010

Cloud Computing. Chapter 1 Introducing Cloud Computing

<Insert Picture Here> Oracle VM and Cloud Computing

Chapter 2: Enterprise Applications from a Middleware Perspective

Global Server Load Balancing

Transcription:

Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science steen@cs.vu.nl Chapter 01: Version: August 27, 2012 1 / 28 Distributed System: Definition A distributed system is 1.1 Definition a collection of autonomous computing elements that appears to its users as a single coherent system Two aspects: (1) independent computing elements and (2) single system middleware. 1.1 Definition Same interface everywhere Computer 1 Computer 2 Computer 3 Computer 4 Appl. A Application B Appl. C Distributed-system layer (middleware) Local OS 1 Local OS 2 Local OS 3 Local OS 4 Network 2 / 28 2 / 28 Goals of Distributed Systems Making resources available Distribution transparency Openness Scalability 3 / 28 3 / 28

Distribution transparency Transp. Access Location Relocation Migration Replication Concurrency Failure Description Hide differences in data representation and how an object is accessed Hide where an object is located Hide that an object may be moved to another location while in use Hide that an object may move to another location Hide that an object is replicated Hide that an object may be shared by several independent users Hide the failure and recovery of an object Note Distribution transparency is a nice a goal, but achieving it is a different story. 4 / 28 4 / 28 Degree of transparency Aiming at full distribution transparency may be too much: Users may be located in different continents Completely hiding failures of networks and nodes is (theoretically and practically) impossible You cannot distinguish a slow computer from a failing one You can never be sure that a server actually performed an operation before a crash Full transparency will cost performance, exposing distribution of the system Keeping Web caches exactly up-to-date with the master Immediately flushing write operations to disk for fault tolerance 5 / 28 5 / 28 Openness of distributed systems Open distributed system Be able to interact with services from other open systems, irrespective of the underlying environment: Systems should conform to well-defined interfaces Systems should support portability of s Systems should easily interoperate Achieving openness At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages 6 / 28 6 / 28

Policies versus mechanisms Implementing openness Requires support for different policies: What level of consistency do we require for client-cached data? Which operations do we allow downloaded code to perform? Which QoS requirements do we adjust in the face of varying bandwidth? What level of secrecy do we require for communication? Implementing openness Ideally, a distributed system provides only mechanisms: Allow (dynamic) setting of caching policies Support different levels of trust for mobile code Provide adjustable QoS parameters per data stream Offer different encryption algorithms 7 / 28 7 / 28 Scale in distributed systems Many developers of modern distributed system easily use the adjective scalable without making clear why their system actually scales. Scalability At least three components: Number of users and/or processes (size scalability) Maximum distance between nodes (geographical scalability) Number of administrative domains (administrative scalability) Most systems account only, to a certain extent, for size scalability. The (non)solution: powerful servers. Today, the challenge lies in geographical and administrative scalability. 8 / 28 8 / 28 Techniques for scaling Hide communication latencies Avoid waiting for responses; do something else: Make use of asynchronous communication Have separate handler for incoming response Problem: not every fits this model 9 / 28 9 / 28

Techniques for scaling Distribution Partition data and computations across multiple machines: Move computations to clients (Java applets) Decentralized naming services (DNS) Decentralized information systems (WWW) 10 / 28 10 / 28 Techniques for scaling Replication/caching Make copies of data available at different machines: Replicated file servers and databases Mirrored Web sites Web caches (in browsers and proxies) File caching (at server and client) 11 / 28 11 / 28 Scaling The problem Applying scaling techniques is easy, except for one thing: Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest. Always keeping copies consistent and in a general way requires global synchronization on each modification. Global synchronization precludes large-scale solutions. If we can tolerate inconsistencies, we may reduce the need for global synchronization, but tolerating inconsistencies is dependent. 12 / 28 12 / 28

Developing distributed systems: Pitfalls Many distributed systems are needlessly complex caused by mistakes that required patching later on. There are many false assumptions: The network is reliable The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 13 / 28 13 / 28 Types of distributed systems Distributed computing systems Distributed information systems Distributed pervasive systems 14 / 28 14 / 28 Distributed computing systems Many distributed systems are configured for High-Performance Computing Cluster Computing Essentially a group of high-end systems connected through a LAN: Homogeneous: same OS, near-identical hardware Single managing node 15 / 28 15 / 28

Distributed computing systems Master node Compute node Compute node Compute node Management Parallel libs Component of parallel Component of parallel Component of parallel Local OS Local OS Local OS Local OS Remote access network Standard network High-speed network 16 / 28 16 / 28 Distributed computing systems Grid Computing The next step: lots of nodes from everywhere: Heterogeneous Dispersed across several organizations Can easily span a wide-area network Note To allow for collaborations, grids generally use virtual organizations. In essence, this is a grouping of users (or better: their IDs) that will allow for authorization on resource allocation. 17 / 28 17 / 28 Distributed computing systems: Clouds Software aa Svc Platform aa Svc Infrastructure aa Svc Web services, multimedia, business apps Application Software framework (Java/Python/.Net) Storage (DB, File) Platforms Computation (VM), storage (block) Infrastructure CPU, memory, disk, bandwidth Hardware Google Apps YouT ube Flickr MS Azure Amazon S3 Amazon EC2 Datacenters 18 / 28 18 / 28

Distributed computing systems: Clouds Cloud computing Make a distinction between four layers: Hardware: Processors, routers, power and cooling systems. Customers normally never get to see these. Infrastructure: Deploys virtualization techniques. Evolves around allocating and managing virtual storage devices and virtual servers. Platform: Provides higher-level abstractions for storage and such. Example: Amazon S3 storage system offers an API for (locally created) files to be organized and stored in so-called buckets. Application: Actual s, such as office suites (text processors, spreadsheet s, presentation s). Comparable to the suite of apps shipped with OSes. 19 / 28 19 / 28 Distributed Information Systems The vast amount of distributed systems in use today are forms of traditional information systems, that now integrate legacy systems. Example: Transaction processing systems. BEGIN TRANSACTION(server, transaction) READ(transaction, file-1, data) WRITE(transaction, file-2, data) newdata := MODIFIED(data) IF WRONG(newData) THEN ABORT TRANSACTION(transaction) ELSE WRITE(transaction, file-2, newdata) END TRANSACTION(transaction) END IF Note Transactions form an atomic operation. 20 / 28 20 / 28 Distributed information systems: Transactions Model A transaction is a collection of operations on the state of an object (database, object composition, etc.) that satisfies the following properties (ACID) Atomicity: All operations either succeed, or all of them fail. When the transaction fails, the state of the object will remain unaffected by the transaction. Consistency: A transaction establishes a valid state transition. This does not exclude the possibility of invalid, intermediate states during the transaction s execution. Isolation: Concurrent transactions do not interfere with each other. It appears to each transaction T that other transactions occur either before T, or after T, but never both. Durability: After the execution of a transaction, its effects are made permanent: changes to the state survive failures. 21 / 28 21 / 28

Transaction processing monitor In many cases, the data involved in a transaction is distributed across several servers. A TP Monitor is responsible for coordinating the execution of a transaction Reply Server Transaction Client Requests Reply TP monitor Request Request Reply Request Server Reply Server 22 / 28 22 / 28 Distr. info. systems: Enterprise integration Problem A TP monitor doesn t separate apps from their databases. Also needed are facilities for direct communication between apps. Client Client Communication middleware Server-side Server-side Server-side Remote Procedure Call (RPC) Message-Oriented Middleware (MOM) 23 / 28 23 / 28 Distributed pervasive systems Emerging next-generation of distributed systems in which nodes are small, mobile, and often embedded in a larger system, characterized by the fact that the system naturally blends into the user s environment. Three (overlapping) subtypes Ubiquitous computing systems: pervasive and continuously present, i.e., there is a continous interaction between system and user. Mobile computing systems: pervasive, but emphasis is on the fact that devices are inherently mobile. Sensor (and actuator) networks: pervasive, with emphasis on the actual (collaborative) sensing and actuation of the environment. 24 / 28 24 / 28

Ubiquitous computing systems Basic characteristics (Distribution) Devices are networked, distributed, and accessible in a transparent manner (Interaction) Interaction between users and devices is highly unobtrusive (Context awareness) The system is aware of a user s context in order to optimize interaction (Autonomy) Devices operate autonomously without human intervention, and are thus highly self-managed (Intelligence) The system as a whole can handle a wide range of dynamic actions and interactions 25 / 28 25 / 28 Mobile computing systems Mobile computing systems are generally a subclass of ubiquitous computing systems and meet all of the five requirements. Typical characteristics Many different types of mobile divices: smart phones, remote controls, car equipment, and so on Wireless communication Devices may continuously change their location setting up a route may be problematic, as routes can change frequently devices may easily be temporarily disconnected disruption-tolerant networks 26 / 28 26 / 28 Sensor networks Characteristics The nodes to which sensors are attached are: Many (10s-1000s) Simple (small memory/compute/communication capacity) Often battery-powered (or even battery-less) 27 / 28 27 / 28

Sensor networks as distributed systems Sensor network Operator's site Sensor data is sent directly to operator (a) Operator's site Each sensor can process and store data Query Sensor network Sensors send only answers (b) 28 / 28 28 / 28