Distributed System: Definition



Similar documents
How To Make A Distributed System Transparent

Distribution transparency. Degree of transparency. Openness of distributed systems

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

How To Understand The Concept Of A Distributed System

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

Principles and characteristics of distributed systems and environments

Virtual machine interface. Operating system. Physical machine interface

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

Distributed Operating Systems

Basics. Topics to be covered. Definition of a Distributed System. Definition of a Distributed System

Software Concepts. Uniprocessor Operating Systems. System software structures. CIS 505: Software Systems Architectures of Distributed Systems

CS 5523 Operating Systems: Intro to Distributed Systems

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

1.4 SOFTWARE CONCEPTS

Chapter 17: Distributed Systems

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

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

System types. Distributed systems

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

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

A distributed system is defined as

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Mobile and Heterogeneous databases Database System Architecture. A.R. Hurson Computer Science Missouri Science & Technology

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

Chapter 18: Database System Architectures. Centralized Systems

Service-Oriented Architecture and Software Engineering

Distributed Data Management

Tier Architectures. Kathleen Durant CS 3200

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

A Comparison of Distributed Systems: ChorusOS and Amoeba

Client-Server Applications

Base One's Rich Client Architecture

Service Oriented Architecture

Modular Communication Infrastructure Design with Quality of Service

Chapter 16: Distributed Operating Systems

Chapter 14: Distributed Operating Systems

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Chapter 16 Distributed Processing, Client/Server, and Clusters

IaaS Cloud Architectures: Virtualized Data Centers to Federated Cloud Infrastructures

Introduction to Cloud Computing

Distributed Systems Lecture 1 1

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

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

Distributed System Principles

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

Distributed Systems and Recent Innovations: Challenges and Benefits

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

Module 15: Network Structures

Diagram 1: Islands of storage across a digital broadcast workflow

Session 11 Under the hood of a commercial website

Client/server and peer-to-peer models: basic concepts

Operating System Concepts. Operating System 資 訊 工 程 學 系 袁 賢 銘 老 師

System Models for Distributed and Cloud Computing

Event-based middleware services

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

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

Messaging Solutions I N F O R M A T I O N T E C H N O L O G Y S O L U T I O N S

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures

S y s t e m A r c h i t e c t u r e

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

Grid Computing Vs. Cloud Computing

How To Write A Network Operating System For A Network (Networking) System (Netware)

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Operating Systems 4 th Class

1 Organization of Operating Systems

Software design (Cont.)

Phire Architect Hardware and Software Requirements

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

Introduction to Network Management

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

Network Attached Storage. Jinfeng Yang Oct/19/2015

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

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Network Station - Thin Client Computing - Overview

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

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

1.5 Distributed Systems

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

Client/server is a network architecture that divides functions into client and server

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

Distributed Operating Systems. Cluster Systems

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB

High Performance Cluster Support for NLB on Window

Local Area Networks: Software and Support Systems

DESIGN OF A PLATFORM OF VIRTUAL SERVICE CONTAINERS FOR SERVICE ORIENTED CLOUD COMPUTING. Carlos de Alfonso Andrés García Vicente Hernández

Building a Highly Available and Scalable Web Farm

ORACLE DATABASE 10G ENTERPRISE EDITION

The Service Revolution software engineering without programming languages

Distributed File Systems

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

Tutorial on Client-Server Architecture

Storage Guardian Remote Backup Restore and Archive Services

Comparing Mobile VPN Technologies WHITE PAPER

Software-Defined Networks Powered by VellOS

Big data management with IBM General Parallel File System

INTERNET OF THE THINGS (IoT): An introduction to wireless sensor networking middleware

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Transcription:

Distributed System: Definition A distributed system is a piece of software that ensures that: A collection of independent computers that appears to its users as a single coherent system Two aspects: (1) independent computers and (2) single system middleware. Machine A Machine B Machine C Distributed applications Middleware service Local OS Local OS Local OS Network 01 1 Introduction/1.1 Definition

Goals of Distributed Systems Connecting resources and users Distribution transparency Openness Scalability 01 2 Introduction/1.2 Goals

Background Developing Collaborative applications over a collection of mobile heterogeneous devices and data stores. Autonomous and mobile data stores Wireless (or wired) networks of various characteristics Devices of varying capabilities (pagers, cell phones, PDAs, PCs etc.) Limitations of Current Technology Explicit and tedious (data and network) programming of applications on each device. Multiple types of heterogeneity of data stores Poor support for maintaining global consistency of data stores Poor Middleware support Difficult peer-to-peer interaction (no data serving capabilities) Poor or no support for dis-connectivity, location independence, group collaboration, atomic transaction, QoS Confidential & Proprietary All Rights Reserved Internal Distribution, April 2003.

System on Mobile Devices (SyD) An Integrated Programming and Deployment Platform Uniform Web Service view of device, data & network persistent object-view of mobile data and services. Rapid development of reliable and portable group applications high-level programming and deployment environment Leverage off existing server applications Peer-to-peer and distributed applications Group creation, maintenance, and manipulation Quality of Service, while handling mobility and dis-connectivity. Footprint: 112 KB, only 42 KB device resident Confidential & Proprietary All Rights Reserved Internal Distribution, April 2003.

SyD Kernel Architecture and Interactions SyD Kernel SyD Kernel modules developed in Java. SyDAppO Server Client UI 1. Lookup 1. Execute 2. publish 2. Invoke SyDDirectory 3. Register Globally SyDListener SyDEngine SyDLink SyDEventHandler 1.Invoke 2. Lookup 3. Remote Invoke SyD Directory provides user, group and service publishing, lookup service, and intelligent proxy management. SyD Listener sitting on device enables devices to act as servers by listening to remote invocation requests. SyD Engine allows users to execute services (can be group) remotely and aggregate results. SyD Event Handler handles local and global events. SyDAppO TCP/IP Web Services SyDAppO SyDAppO SyDAppO SyD Link enables an application to create and enforce interdependencies, constraints, and automatic updates among groups of SyD entities Confidential & Proprietary All Rights Reserved Internal Distribution, April 2003.

Distribution Transparency Transparency Access Location Migration Relocation Replication Concurrency Failure Persistence Description Hides differences in data representation and invocation mechanisms Hides where an object resides Hides from an object the ability of a system to change that object s location Hides from a client the ability of a system to change the location of an object to which the client is bound Hides the fact that an object or its state may be replicated and that replicas reside at different locations Hides the coordination of activities between objects to achieve consistency at a higher level Hides failure and possible recovery of objects Hides the fact that an object may be (partly) passivated by the system Note: Distribution transparency may be set as a goal, but achieving it is a different story. 01 3 Introduction/1.2 Goals

Degree of Transparency Observation: Aiming at full distribution transparency may be too much: Users may be located in different continents; distribution is apparent and not something you want to hide 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 copy Immediately flushing write operations to disk for fault tolerance 01 4 Introduction/1.2 Goals

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 applications Systems should easily interoperate Achieving openness: At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages 01 5 Introduction/1.2 Goals

Policies versus Mechanisms Implementing openness: Requires support for different policies specified by applications and users: What level of consistency do we require for clientcached 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, preferably per cachable item Support different levels of trust for mobile code Provide adjustable QoS parameters per data stream Offer different encryption algorithms 01 6 Introduction/1.2 Goals

Scale in Distributed Systems Observation: 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. 01 7 Introduction/1.2 Goals

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) Replication: Make copies of data available at different machines: Replicated file servers (mainly for fault tolerance) Replicated databases Mirrored Web sites Large-scale distributed shared memory systems Caching: Allow client processes to access local copies: Web caches (browser/web proxy) File caching (at server and client) 01 8 Introduction/1.2 Goals

Scaling The Problem Observation: 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. Observation: If we can tolerate inconsistencies, we may reduce the need for global synchronization. Observation: Tolerating inconsistencies is application dependent. 01 9 Introduction/1.2 Goals

Distributed Systems: Hardware Concepts Multiprocessors Multicomputers Networks of Computers 01 10 Introduction/1.3 Hardware Concepts

Multiprocessors and Multicomputers Distinguishing features: Private versus shared memory Bus versus switched interconnection Shared memory Private memory M M M M M M P P P P P P P M P Bus-based M M M M M M M P P P P Switch-based P P P P P Processor M Memory 01 11 Introduction/1.3 Hardware Concepts

Networks of Computers High degree of node heterogeneity: High-performance parallel systems (multiprocessors as well as multicomputers) High-end PCs and workstations (servers) Simple network computers (offer users only network access) Mobile computers (palmtops, laptops) Multimedia workstations High degree of network heterogeneity: Local-area gigabit networks Wireless connections Long-haul, high-latency connections Wide-area switched megabit connections Observation: Ideally, a distributed system hides these differences 01 12 Introduction/1.3 Hardware Concepts

Distributed Systems: Software Concepts Distributed operating system Network operating system Middleware System Description Main goal DOS Tightly-coupled OS for multiprocessors and homogeneous multicomputers NOS Middleware Loosely-coupled OS for heterogeneous multicomputers (LAN and WAN) Additional layer atop of NOS implementing general-purpose services Hide and manage hardware resources Offer local services to remote clients Provide distribution transparency 01 13 Introduction/1.4 Software Concepts

Distributed Operating System Some characteristics: OS on each computer knows about the other computers OS on different computers generally the same Services are generally (transparently) distributed across computers Machine A Machine B Machine C Distributed applications Distributed operating system services Kernel Kernel Kernel Network 01 14 Introduction/1.4 Software Concepts

Multicomputer Operating System Harder than traditional (multiprocessor) OS: Because memory is not shared, emphasis shifts to processor communication by message passing: Often no simple global communication: Only bus-based multicomputers provide hardware broadcasting Efficient broadcasting may require network interface programming techniques No simple systemwide synchronization mechanisms Virtual (distributed) shared memory requires OS to maintain global memory map in software Inherent distributed resource management: no central point where allocation decisions can be made Practice: Only very few truly multicomputer operating systems exist (example: Amoeba) 01 15 Introduction/1.4 Software Concepts

Network Operating System Some characteristics: Each computer has its own operating system with networking facilities Computers work independently (i.e., they may even have different operating systems) Services are tied to individual nodes (ftp, telnet, WWW) Highly file oriented (basically, processors share only files) Machine A Machine B Machine C Distributed applications Network OS services Network OS services Network OS services Kernel Kernel Kernel Network 01 16 Introduction/1.4 Software Concepts

Distributed System (Middleware) Some characteristics: OS on each computer need not know about the other computers OS on different computers need not generally be the same Services are generally (transparently) distributed across computers Machine A Machine B Machine C Distributed applications Middleware services Network OS services Network OS services Network OS services Kernel Kernel Kernel Network 01 17 Introduction/1.4 Software Concepts

Need for Middleware Motivation: Too many networked applications were hard or difficult to integrate: Departments are running different NOSs Integration and interoperability only at level of primitive NOS services Need for federated information systems: Combining different databases, but providing a single view to applications Setting up enterprise-wide Internet services, making use of existing information systems Allow transactions across different databases Allow extensibility for future services (e.g., mobility, teleworking, collaborative applications) Constraint: use the existing operating systems, and treat them as the underlying environment (they provided the basic functionality anyway) 01 18 Introduction/1.4 Software Concepts

Middleware Services (1/2) Communication services: Abandon primitive socketbased message passing in favor of: Procedure calls across networks Remote-object method invocation Message-queuing systems Advanced communication streams Event notification service Information system services: Services that help manage data in a distributed system: Large-scale, systemwide naming services Advanced directory services (search engines) Location services for tracking mobile objects Persistent storage facilities Data caching and replication 01 19 Introduction/1.4 Software Concepts

Middleware Services (2/2) Control services: Services giving applications control over when, where, and how they access data: Distributed transaction processing Code migration Security services: Services for secure processing and communication: Authentication and authorization services Simple encryption services Auditing service 01 20 Introduction/1.4 Software Concepts

Comparison of DOS, NOS, and Middleware 1: Degree of transparency 2: Same operating system on each node? 3: Number of copies of the operating system 4: Basis for communication 5: How are resources managed? 6: Is the system easy to scale? 7: How open is the system? Item Distributed OS Network Middlemultiproc. multicomp. OS ware DS 1 Very High High Low High 2 Yes Yes No No 3 1 N N N 4 Shared memory Messages Files Model specific 5 Global, Global, Per node Per node central distributed 6 No Moderately Yes Varies 7 Closed Closed Open Open 01 21 Introduction/1.4 Software Concepts

Client Server Model Basic model Application layering Client Server architectures 01 22 Introduction/1.5 Client Server Model

Basic Client Server Model (1/2) Characteristics: There are processes offering services (servers) There are processes that use services (clients) Clients and servers can be distributed across different machines Clients follow request/reply model with respect to using services Client Wait for result Request Reply Server Provide service Time 01 23 Introduction/1.5 Client Server Model

Basic Client Server Model (2/2) Servers: Generally provide services related to a shared resource: Servers for file systems, databases, implementation repositories, etc. Servers for shared, linked documents (Web, Lotus Notes) Servers for shared applications Servers for shared distributed objects Clients: Allow remote service access: Programming interface transforming client s local service calls to request/reply messages Devices with (relatively simple) digital components (barcode readers, teller machines, hand-held phones) Computers providing independent user interfaces for specific services Computers providing an integrated user interface for related services (compound documents) 01 24 Introduction/1.5 Client Server Model

Application Layering (1/2) Traditional three-layered view: User-interface layer contains units for an application s user interface Processing layer contains the functions of an application, i.e. without specific data Data layer contains the data that a client wants to manipulate through the application components Observation: This layering is found in many distributed information systems, using traditional database technology and accompanying applications. 01 25 Introduction/1.5 Client Server Model

Application Layering (2/2) User interface User-interface level Keyword expression Query generator Database queries Database with Web pages HTML page containing list HTML generator Ranking component Ranked list of page titles Web page titles with meta-information Processing level Data level 01 26 Introduction/1.5 Client Server Model

Client-Server Architectures Single-tiered: dumb terminal/mainframe configuration Two-tiered: client/single server configuration Three-tiered: each layer on separate machine Traditional two-tiered configurations: Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine (a) (b) (c) (d) (e) 01 27 Introduction/1.5 Client Server Model

Alternative C/S Architectures (1/2) Observation: Multi-tiered architectures seem to constitute buzzwords that fail to capture many modern client server organizations. Cooperating servers: Service is physically distributed across a collection of servers: Traditional multi-tiered architectures Replicated file systems Network news services Large-scale naming systems (DNS, X.500) Workflow systems Financial brokerage systems Cooperating clients: Distributed application exists by virtue of client collaboration: Teleconferencing where each client owns a (multimedia) workstation Publish/subscribe architectures in which role of client and server is blurred 01 28 Introduction/1.5 Client Server Model

Alternative C/S Architectures (2/2) Essence: Make distinction between vertical and horizontal distribution Front end handling incoming requests Requests handled in round-robin fashion Replicated Web servers each containing the same Web pages Disks Internet Internet 01 29 Introduction/1.5 Client Server Model

r1(* uüxøs0dßb^ëû ÿ Ü ÞXÛ NÚ]8 ýf Þ Ù>²Ø ÖÜ Û ÝÛ ý Ø ÿuÿ ( qû ÞXØÄÜ3? ØyÜÞ

ro+* uüø].dßb^ëû ÿ ÜqÞXÛ tû ( ý Ø +*UÛdÜ ý Þ monjk e k &j Ø uþxø Û ÖÞÁÿ uüø ݳÙ> uüø#-n@ &j Ø ÞXØ Û ØÄÞXÞ +*UÛdÜ 2 ÛC?AØÄÜ Ø Ý