Distributed Systems Just what is a Distributed System? Definitions - - PowerPoint PPT Presentation

distributed systems
SMART_READER_LITE
LIVE PREVIEW

Distributed Systems Just what is a Distributed System? Definitions - - PowerPoint PPT Presentation

Distributed Systems Just what is a Distributed System? Definitions "A Distributed System is one in which components located at networked computers communicate and coordinate their actions only by passing messages". [Coulouris,


slide-1
SLIDE 1

Distributed Systems

Just what is a Distributed System?

slide-2
SLIDE 2

Definitions

  • "A Distributed System is one in which

components located at networked computers communicate and coordinate their actions only by passing messages". [Coulouris, 2005]

  • "A Distributed System is a collection of

independent computers that appears to its users as a single coherent system". [Tanenbaum, 2002]

slide-3
SLIDE 3

Questions?

  • Concurrency - can we concurrently access

shared resources safely?

  • Timing - no real notion of global time, so, how

is coordination achieved?

  • Failures - what happens if a component fails?
slide-4
SLIDE 4

Why?

  • To Share Resources!
slide-5
SLIDE 5

Example Distributed Systems

  • The Internet
  • Intranet
  • Networks based on "Mobile Devices"
slide-6
SLIDE 6

(Part of) The Internet

intranet ISP desktop computer: backbone satellite link server: ☎ network link: ☎ ☎ ☎

slide-7
SLIDE 7

A Typical Intranet

the rest of email server Web server

Desktop computers

File server router/firewall print and other servers

  • ther servers

print Local area network email server the Internet

slide-8
SLIDE 8

Networks based on "Mobile Devices"

Laptop Mobile Printer Camera Internet Host intranet Home intranet WAP Wireless LAN phone gateway Host site

slide-9
SLIDE 9

Mobile Computing

  • Nomadic Computing
  • Location Aware or Context-Aware Computing
  • Ubiquitous Computing (Computers

Everywhere)

slide-10
SLIDE 10

Resource Sharing

  • It is easy to overlook the significance of:

– printer sharing – disk/file sharing – application sharing (search engines)

slide-11
SLIDE 11

Important Definition

  • "Service" - a distinct part of a computer

system that manages a collection of related resources and presents their functionality to users and applications via a set of operations that it exports.

slide-12
SLIDE 12

Important Definition

  • "Server" - a running program (process) on a

networked computer that accepts requests from programs running on other computers to perform a service and respond appropriately

slide-13
SLIDE 13

Clients and Servers

  • A client invokes an operation upon a server

(often referred to as a "remote invocation")

  • The terms "client" and "server" apply only to

the roles played in a single request

  • Many (but not all) distributed systems can be

constructed entirely in the form of interacting clients and servers

slide-14
SLIDE 14

Extended Example

  • The World Wide Web
  • "An evolving system for publishing and

accessing resources and services across the Internet"

slide-15
SLIDE 15

The Web is "Open"

  • Can be extended and implemented in new

ways without disturbing its existing functionality

  • Based on freely published and widely

implemented (and adhered to!) communication standards and documents

  • The types of resources that can be published

and shared is not fixed

slide-16
SLIDE 16

Web Server and Web Clients

Internet Browsers Web servers www.google.com www.cdk3.net www.w3c.org Protocols Activity.html http://www.w3c.org/Protocols/Activity.html http://www.google.comlsearch?q=kindberg http://www.cdk3.net/ File system of www.w3c.org

slide-17
SLIDE 17

Evolving Web

  • HTML
  • HTTP
  • URL
  • ... together with ...
  • CGI, Server Applications ...
  • Web Services and XML
slide-18
SLIDE 18

The Web's Successes

  • Easy to publish
  • Hypertext
  • Openness of its system architecture
slide-19
SLIDE 19

The Web's Failures

  • Design Issues
  • Dangling Links
  • "Lost in Hyperspace"
slide-20
SLIDE 20

The Web's Future?

  • The Semantic Web?
  • Role of XML?
  • Meta-data - “data about data”
slide-21
SLIDE 21

Scalability within the Web

  • Popular site = many hits = slow!
  • Caching and Proxying can help
  • Clustering can help, too
slide-22
SLIDE 22

The Web's "Reload" Problem

  • Stale Data
  • There's just no way to keep data that's been

read up-to-date

  • Web Interface can be too limited
slide-23
SLIDE 23

Challenges of Distributed Systems

  • Heterogeneity
  • Openness
  • Security
  • Scalability
  • Failure Handling
  • Concurrency
  • Transparency
slide-24
SLIDE 24

Heterogeneity

  • All types of everything: networks, hardware,

software ...

  • ... operating systems, programming

languages, APIs ...

  • ... protocols, byte ordering, standards ...
  • One possible (popular) solution: Middleware
slide-25
SLIDE 25

Middleware

  • A software layer that provides a programming

abstraction as well masking the heterogeneity

  • f the underlying technologies (whatever they

might be)

  • Middleware provides a uniform computational

model for use by the programmers of servers and distributed applications

slide-26
SLIDE 26

Openness

  • This is a characteristic that determines

whether the system can be extended and re- implemented in various ways

  • Key interfaces are PUBLISHED
slide-27
SLIDE 27

The Key Openness Challenge

Tackling the complexity of distributed systems consisting of many components engineered by different people

slide-28
SLIDE 28

Openness - Key Points

  • Key interfaces are published
  • Based on the provision of a uniform

communication mechanism and published interfaces for access to shared resources

  • Open distributed systems can be constructed from

heterogeneous hardware and software, from different vendors. But the conformance of each component to the published standard must be tested and verified if systems are to work correctly

slide-29
SLIDE 29

Security

  • Very important
  • Confidentiality
  • Integrity
  • Availability
slide-30
SLIDE 30

Security Challenges

  • Sending sensitive information in a message
  • ver a network in a secure manner
  • Identifying a remote user or agent correctly
  • Dealing effectively with Denial-of-Service

Attacks

  • Securing Mobile Code
slide-31
SLIDE 31

Scalability

  • A system is scalable if it will remain effective

when there is a significant increase in the number of resources and the number of users

slide-32
SLIDE 32

Computers on the Internet

Date Computers Web servers 1979, Dec. 188 1989, July 130,000 1999, July 56,218,000 5,560,866 2003, Jan. 171,638,297 35,424,956

slide-33
SLIDE 33

Web Servers on the Internet

Date Computers Web servers Percentage 1993, July 1,776,000 130 0.008 1995, July 6,642,000 23,500 0.4 1997, July 19,540,000 1,203,096 6 1999, July 56,218,000 6,598,697 12 2001, July 125,888,197 31,299,592 25 42,298,371

slide-34
SLIDE 34

Scalability Challenges

  • Controlling the cost of physical resources
  • Controlling the performance loss
  • Preventing software resources running out
  • Avoiding performance bottlenecks
slide-35
SLIDE 35

Scalability - Bottom Line

  • Difficult to achieve
  • Help - Replicated Data
  • Help - Caching
  • Help - Multiple Servers
  • Help - Tasks Performed Concurrently
slide-36
SLIDE 36

Failure Handling

  • Failures are partial - some component(s) fail(s),

while others keep operating - how is this managed?

  • Detecting failures can be hard
  • Masking failures is possible (e.g., retransmission,

redundancy)

  • Tolerating failures can sometimes be acceptable
  • Recovering from failures is often desirable
slide-37
SLIDE 37

Failure Handling and Availability

The availability of a system is a measure of the proportion of time that it is available for use

slide-38
SLIDE 38

Concurrency

  • There's always a possibility that several clients will

attempt to access a shared resource at the same time

  • Services and applications generally allow multiple

client requests to be processed concurrently

  • For an object to be safe within a

concurrent/distributed environment, its operations must be synchronized in such a way that its data remains consistent

slide-39
SLIDE 39

Transparency

Defined as the concealment from the user and the applications programmer of the separation

  • f components in a distributed system, so that

the system is perceived as a whole rather than as a collection of independent components

slide-40
SLIDE 40

Types of Transparency

  • Access
  • Location
  • Concurrency
  • Replication
  • Failure
  • Mobility
  • Performance
  • Scaling
slide-41
SLIDE 41

Transparency Types

  • Access transparency: enables local and remote resources to be accessed using identical
  • perations.
  • Location transparency: enables resources to be accessed without knowledge of their physical or

network location (for example, which building or IP address).

  • Concurrency transparency: enables several processes to operate concurrently using shared

resources without interference between them.

  • Replication transparency: enables multiple instances of resources to be used to increase

reliability and performance without knowledge of the replicas by users or application programmers.

  • Failure transparency: enables the concealment of faults, allowing users and application

programs to complete their tasks despite the failure of hardware or software components.

  • Mobility transparency: allows the movement of resources and clients within a system without

affecting the operation of users or programs.

  • Performance transparency: allows the system to be reconfigured to improve performance as

loads vary.

  • Scaling transparency: allows the system and applications to expand in scale without change to

the system structure or the application algorithms.

slide-42
SLIDE 42

Distributed Systems

Distributed Systems are Everywhere Resource Sharing is the Main Motivation A Number of Challenges Exist