Introduction to Distributed Systems

Similar documents
Distributed System Principles

Distributed Systems. Outline. What is a Distributed System?

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

Ingegneria del Software II academic year: Course Web-site: [

Distributed Systems Lecture 1 1

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Virtual machine interface. Operating system. Physical machine interface

Transparency in Distributed Systems

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

CORBA and object oriented middleware. Introduction

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

INSIDE. Preventing Data Loss. > Disaster Recovery Types and Categories. > Disaster Recovery Site Types. > Disaster Recovery Procedure Lists

1 Organization of Operating Systems

Distributed Data Management

OVERVIEW. CEP Cluster Server is Ideal For: First-time users who want to make applications highly available

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Distributed System: Definition

A SURVEY OF POPULAR CLUSTERING TECHNOLOGIES

Distributed Systems. Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets

Distribution transparency. Degree of transparency. Openness of distributed systems

6306 Advanced Operating Systems

System types. Distributed systems

Tier Architectures. Kathleen Durant CS 3200

Middleware Lou Somers

Operating system Dr. Shroouq J.

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Lesson Plans Microsoft s Managing and Maintaining a Microsoft Windows Server 2003 Environment

Cloud Based Distributed Databases: The Future Ahead

IBM Tivoli Storage Manager Version Introduction to Data Protection Solutions IBM

How To Understand The Concept Of A Distributed System

Chapter 17: Distributed Systems

The Key Technology Research of Virtual Laboratory based On Cloud Computing Ling Zhang

Fault Tolerant Servers: The Choice for Continuous Availability

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

OMG/CORBA: An Object-Oriented Middleware

EMC Virtual Infrastructure for Microsoft SQL Server

An Object Model for Business Applications

Distributed Operating Systems

Middleware: Past and Present a Comparison

The Service Availability Forum Specification for High Availability Middleware

SCALABILITY AND AVAILABILITY

Architectures for Distributed Real-time Systems

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

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

DISTRIBUTED AND PARALLELL DATABASE

Client/Server Computing Distributed Processing, Client/Server, and Clusters

HP Operations Agent for NonStop Software Improves the Management of Large and Cross-platform Enterprise Solutions

Write a technical report Present your results Write a workshop/conference paper (optional) Could be a real system, simulation and/or theoretical

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

Application Brief: Using Titan for MS SQL

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

Data Management in an International Data Grid Project. Timur Chabuk 04/09/2007

Integrated Application and Data Protection. NEC ExpressCluster White Paper

9 Things Small Business Owners Need To Know When Talking To The IT Guy

March 2008 Grant Halverson CEO, GFG Group. Regional Processing Models

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Distributed Computing

Virtualization for Cloud Computing

Protecting your SQL database with Hybrid Cloud Backup and Recovery. Session Code CL02

Planning and Administering Windows Server 2008 Servers

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Distributed Databases

"Charting the Course... MOC C Designing a Data Solution with Microsoft SQL Server Course Summary

Module 5 Introduction to Processes and Controls

Planning and Administering Windows Server 2008 Servers

Carestream Information Management Solutions. Managing the explosion in patient information

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Data Protection with IBM TotalStorage NAS and NSI Double- Take Data Replication Software

Star System Deitel & Associates, Inc. All rights reserved.

Next Generation Cloud Services. White Paper

SAN Conceptual and Design Basics

EII - ETL - EAI What, Why, and How!

Sage Intelligence Support Desk

1.1.1 Introduction to Cloud Computing

Virtualization s Evolution

Table of Contents. Technical paper Open source comes of age for ERP customers

University Health Care System improves patient care with enterprise grid storage system

How Routine Data Center Operations Put Your HA/DR Plans at Risk

Protecting SQL Server in Physical And Virtual Environments

SCADA Questions and Answers

Module 15: Network Structures

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

chapater 7 : Distributed Database Management Systems

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware

Double-Take Replication in the VMware Environment: Building DR solutions using Double-Take and VMware Infrastructure and VMware Server

Distributed Systems Architectures

Managing Large Imagery Databases via the Web

Distributed Systems. Distributed Systems

Outline: Operating Systems

Exam Name: Fundamentals of Applying Tivoli Storage

COMPONENTS in a database environment

Distributed Fault-Tolerant / High-Availability (DFT/HA) Systems

Principles and characteristics of distributed systems and environments

Data Integration using Agent based Mediator-Wrapper Architecture. Tutorial Report For Agent Based Software Engineering (SENG 609.

Object Oriented Storage and the End of File-Level Restores

Designing a Cloud Storage System

Transcription:

Introduction to Distributed Systems Material adapted from Distributed Systems: Concepts & Design, George Coulouris, et al. and Engineering Distributed Objects, Wolfgang Emmerich Outline What is a Distributed System? Examples of Distributed Systems Distributed System Requirements in Distributed System

What is a Distributed System? What is a Distributed System? A system in which hardware or software components located at networked computers communicate and coordinate their actions only by passing messages. (Coulouris) A distributed system is a collection of autonomous hosts that that are connected through a computer network. Each host executes components and operates a distribution middleware, which enables the components to coordinate their activities in such a way that users perceive the system as a single, integrated computing facility. (Emmerich)

What is a Distributed System? Component Component 1 Component 1 Component n n Middleware Middleware Network Operating System Network Operating System Hardware Hardware Host Host n-1 2 Component 1 Component n Component 1 Component n Middleware Middleware Network Operating System Network Operating System Hardware Hardware Host 1 Network Host n Centralized System Characteristics One component with non-autonomous parts Component shared by users all the time All resources accessible Software runs in a single process Single Point of control Single Point of failure

Distributed System Characteristics Multiple autonomous components Components are not shared by all users Resources may not be accessible Software runs in concurrent processes on different processors Multiple Points of control Multiple Points of failure Key Terms Resources things shared in a distributed system hardware (disks, printers) software (files, databases, data objects) Server program or process that performs services in response to requests from other processes. Client process that makes requests of a server by invoking an operation. Remote Invocation complete send and response sequence Servers & Clients are software processes

Examples of Distributed Systems Boeing 777 Configuration Management

Problems to be solved Scale 3,000,000 parts per aircraft Configuration of every aircraft is different CAA regulations demand that records are kept for every single part of aircraft Aircraft evolve during maintenance Boeing produce 500 aircraft per year Configuration database grows by 1.5 billion parts each year Projected life of each aircraft 30 years 45,000 engineers need on-line access to engineering data Problems to be solved (cont d) COTS Integration Existing IT infrastructure was no longer appropriate Boeing could not afford to build required IT infrastructure from scratch Components were purchased from several different specialized vendors relational database technology enterprise resource planning computer aided project planning Components needed to be integrated

Problems to be solved (cont d) Heterogeneity 20 Sequent database machines as servers for the engineering data 200 UNIX application servers NT and UNIX workstations for engineers Why distributed object technology Object wrapping of COTS Resolution of distribution at high level of abstraction Resolution of heterogeneity Scalability

Distributed System Requirements Requirements Integration of new, legacy and components off-the-shelf Legacy components might not need to be re-engineered COTS cannot be modified Heterogeneity of hardware platforms operating systems networks programming languages Construction of distributed systems

Common Requirements/Challenges What are we trying to achieve when we construct a distributed system? Certain requirements are common to many distributed systems Heterogeneity Resource Sharing Openness Security Concurrency Scalability Fault Tolerance Resource Sharing Ability to use any hardware, software or data anywhere in the system. Resource manager controls access, provides naming scheme and controls concurrency. Resource sharing model (e.g. client/ server or objectbased) describing how resources are provided, they are used and provider and user interact with each other.

Openness Openness is concerned with extensions and improvements of distributed systems. Detailed interfaces of components need to be published. New components have to be integrated with existing components. Differences in data representation of interface types on different processors (of different vendors) have to be resolved. Concurrency Components in distributed systems are executed in concurrent processes. Components access and update shared resources (e.g. variables, databases, device drivers). Integrity of the system may be violated if concurrent updates are not coordinated. Lost updates Inconsistent analysis

Fault Tolerance Hardware, software and networks fail! Distributed systems must maintain availability even at low levels of hardware/software/network reliability. Fault tolerance is achieved by recovery redundancy Scalability Adoption of distributed systems to accommodate more users respond faster (this is the hard one) Usually done by adding more and/or faster processors. Components should not need to be changed when scale of a system increases. Design components to be scalable!

in Distributed Systems Distributed systems should be perceived by users and application programmers as a whole rather than as a collection of cooperating components. has different dimensions that represent various properties distributed systems should have.

Distribution Scalability Performance Failure Migration Replication Concurrency Access Location Access Enables local and remote information objects to be accessed using identical operations. Example: File system operations in NFS. Example: Navigation in the Web. Example: SQL Queries

Location Enables information objects to be accessed without knowledge of their location. Example: File system operations in NFS Example: Pages in the Web Example: Tables in distributed databases Concurrency Enables several processes to operate concurrently using shared information objects without interference between them. Example: NFS Example: Automatic teller machine network Example: Database management system

Replication Enables multiple instances of information objects to be used to increase reliability and performance without knowledge of the replicas by users or application programs Example: Distributed DBMS Example: Mirroring Web Pages. Failure Enables the concealment of faults Allows users and applications to complete their tasks despite the failure of other components. Example: Database Management System

Migration Allows the movement of information objects within a system without affecting the operations of users or application programs Example: NFS Example: Web Pages Performance Allows the system to be reconfigured to improve performance as loads vary. Example: Distributed make.

Scaling Allows the system and applications to expand in scale without change to the system structure or the application algorithms. Example: World-Wide-Web Example: Distributed Database Distribution Scalability Performance Failure Migration Replication Concurrency Access Location

Two Views of The system should hide its distributed nature, programs running on a multiple-computer system appear no different from a single-computer system. The system should not hide its distributed nature. The programs are aware of the multiple computers in the system. When designing distributed applications we need to favor the second view. (see: A Note on Distributed Computing, Jim Waldo, et al.) Key Points What is a Distributed System Adoption of Distributed Systems is driven by Non- Functional Requirements Distribution needs to be transparent to users and application designers has several dimensions dimensions depend on each other