Introduction to Distributed Systems
Material adapted from Distributed Systems: Concepts & Design, George Coulouris, et al. and Engineering Distributed Objects, Wolfgang Emmerich
Introduction to Distributed Systems Material adapted from Distributed - - PowerPoint PPT Presentation
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
Material adapted from Distributed Systems: Concepts & Design, George Coulouris, et al. and Engineering Distributed Objects, Wolfgang Emmerich
SWEN-342 Engineering of Concurrent & Distributed Software Systems
What is a Distributed System? Examples of Distributed Systems Distributed System Requirements Transparency in Distributed System
SWEN-342 Engineering of Concurrent & Distributed Software Systems
A system in which hardware or software components
A distributed system is a collection of autonomous hosts
SWEN-342 Engineering of Concurrent & Distributed Software Systems
SWEN-342 Engineering of Concurrent & Distributed Software Systems
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
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Multiple autonomous components Components are not shared by all users Resources may not be accessible Software runs in concurrent processes on different
Multiple Points of control Multiple Points of failure
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Resources – things shared in a distributed system
hardware (disks, printers) software (files, databases, data objects)
Server – program or process that performs services in
Client – process that makes requests of a server by
Remote Invocation – complete send and response
Servers & Clients are software processes
SWEN-342 Engineering of Concurrent & Distributed Software Systems
SWEN-342 Engineering of Concurrent & Distributed Software Systems
3,000,000 parts per aircraft Configuration of every aircraft is different CAA regulations demand that records are kept for every single part
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
SWEN-342 Engineering of Concurrent & Distributed Software Systems
COTS Integration
Existing IT infrastructure was no longer appropriate Boeing could not afford to build required IT
Components were purchased from several different
relational database technology enterprise resource planning computer aided project planning
Components needed to be integrated
SWEN-342 Engineering of Concurrent & Distributed Software Systems
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Object wrapping of COTS Resolution of distribution at high level of abstraction Resolution of heterogeneity Scalability
SWEN-342 Engineering of Concurrent & Distributed Software Systems
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
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Heterogeneity Resource Sharing Openness Security Concurrency Scalability Fault Tolerance Transparency
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Ability to use any hardware, software or data anywhere in
Resource manager controls access, provides naming
Resource sharing model (e.g. client/ server or object-
resources are provided, they are used and provider and user interact with each other.
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Openness is concerned with extensions and improvements
Detailed interfaces of components need to be published. New components have to be integrated with existing
Differences in data representation of interface types on
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Components in distributed systems are executed in
Components access and update shared resources (e.g.
Integrity of the system may be violated if concurrent
Lost updates Inconsistent analysis
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Hardware, software and networks fail! Distributed systems must maintain availability even at low
Fault tolerance is achieved by
recovery redundancy
SWEN-342 Engineering of Concurrent & Distributed Software Systems
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
Design components to be scalable!
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Distributed systems should be perceived by users and
Transparency has different dimensions that represent
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Enables information objects to be accessed without
Example: File system operations in NFS Example: Pages in the Web Example: Tables in distributed databases
SWEN-342 Engineering of Concurrent & Distributed Software Systems
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Enables local and remote information objects to be
Example: File system operations in NFS. Example: Navigation in the Web. Example: SQL Queries
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Enables several processes to operate concurrently using
Example: NFS Example: Automatic teller machine network Example: Database management system
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Enables multiple instances of information objects to be
Example: Distributed DBMS Example: Mirroring Web Pages.
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Enables the concealment of faults Allows users and applications to complete their tasks
Example: Database Management System
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Allows the movement of information objects within a
Example: NFS Example: Web Pages
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Allows the system to be reconfigured to improve
Example: Distributed make.
SWEN-342 Engineering of Concurrent & Distributed Software Systems
Allows the system and applications to expand in scale
Example: World-Wide-Web Example: Distributed Database
SWEN-342 Engineering of Concurrent & Distributed Software Systems
SWEN-342 Engineering of Concurrent & Distributed Software Systems
The system should hide its distributed nature, programs
The system should not hide its distributed nature. The
When designing distributed applications we need to favor
SWEN-342 Engineering of Concurrent & Distributed Software Systems
What is a Distributed System Adoption of Distributed Systems is driven by Non-
Distribution needs to be transparent to users and
Transparency has several dimensions Transparency dimensions depend on each other