distributed systems (3rd edition) maarten van steen and ... · distributed systems (3rd edition)...

61
Distributed Systems (3rd Edition) Maarten van Steen and Tanenbaum Edited by Ghada Ahmed, PhD Fall 2017

Upload: others

Post on 28-May-2020

36 views

Category:

Documents


3 download

TRANSCRIPT

Distributed Systems(3rd Edition)

Maarten van Steen and Tanenbaum

Edited by

Ghada Ahmed, PhD

Fall 2017

Introduction: What is a distributed system?

Distributed System

DefinitionA distributed system is a collection of autonomous computing elements thatappears to its users as a single coherent system.

Characteristic features

Autonomous computing elements, also referred to as nodes, be theyhardware devices or software processes.

Single coherent system: users or applications perceive a single system⇒nodes need to collaborate.

2 / 39

Introduction: What is a distributed system? Characteristic 1: Collection of autonomous computing elements

Collection of autonomous nodes

Independent behavior

Each node is autonomous and will thus have its own notion of time: there is noglobal clock. Leads to fundamental synchronization and coordination problems.

Collection of nodes

How to manage group membership?

How to know that you are indeed communicating with an authorized(non)member?

3 / 39

Introduction: What is a distributed system? Characteristic 1: Collection of autonomous computing elements

Organization

Overlay network

Each node in the collection communicates only with other nodes in the system,its neighbors. The set of neighbors may be dynamic, or may even be knownonly implicitly (i.e., requires a lookup).

Overlay types

Well-known example of overlay networks: peer-to-peer systems.

Structured: each node has a well-defined set of neighbors with whom it cancommunicate (tree, ring).

Unstructured: each node has references to randomly selected other nodesfrom the system.

4 / 39

Introduction: What is a distributed system? Characteristic 2: Single coherent system

Coherent system

EssenceThe collection of nodes as a whole operates the same, no matter where, when,and how interaction between a user and the system takes place.

Examples

An end user cannot tell where a computation is taking placeWhere data is exactly stored should be irrelevant to an applicationIf or not data has been replicated is completely hidden

Keyword is distribution transparency

The snag: partial failures

It is inevitable that at any time only a part of the distributed system fails. Hidingpartial failures and their recovery is often very difficult and in generalimpossible to hide.

5 / 39

Introduction: What is a distributed system? Middleware and distributed systems

Middleware: the OS of distributed systems

Local OS 1 Local OS 2 Local OS 3 Local OS 4

Appl. A Application B Appl. C

Distributed-system layer (middleware)

Computer 1 Computer 2 Computer 3 Computer 4

Same interface everywhere

Network

What does it contain?Commonly used components and functions that need not be implemented byapplications separately.

6 / 39

Introduction: Design goals

What do we want to achieve?

Support sharing of resources

Distribution transparency

Openness

Scalability

7 / 39

Introduction: Design goals Supporting resource sharing

Sharing resources

Canonical examples

Cloud-based shared storage and filesPeer-to-peer assisted multimedia streamingShared mail services (think of outsourced mail systems)Shared Web hosting (think of content distribution networks)

Observation

“The network is the computer”

(quote from John Gage, then at Sun Microsystems)

8 / 39

Introduction: Design goals Making distribution transparent

Distribution transparency

Types

Transparency DescriptionAccess Hide differences in data representation and how an

object is accessedLocation Hide where an object is locatedRelocation Hide that an object may be moved to another location

while in useMigration Hide that an object may move to another locationReplication Hide that an object is replicatedConcurrency Hide that an object may be shared by several

independent usersFailure Hide the failure and recovery of an object

Types of distribution transparency 9 / 39

Introduction: Design goals Making distribution transparent

Degree of transparency

ObservationAiming at full distribution transparency may be too much:

There are communication latencies that cannot be hiddenCompletely hiding failures of networks and nodes is (theoretically andpractically) impossible

You cannot distinguish a slow computer from a failing oneYou can never be sure that a server actually performed an operationbefore a crash

Full transparency will cost performance, exposing distribution of thesystem

Keeping replicas exactly up-to-date with the master takes timeImmediately flushing write operations to disk for fault tolerance

Degree of distribution transparency 10 / 39

Introduction: Design goals Making distribution transparent

Degree of transparency

ObservationAiming at full distribution transparency may be too much:

There are communication latencies that cannot be hidden

Completely hiding failures of networks and nodes is (theoretically andpractically) impossible

You cannot distinguish a slow computer from a failing oneYou can never be sure that a server actually performed an operationbefore a crash

Full transparency will cost performance, exposing distribution of thesystem

Keeping replicas exactly up-to-date with the master takes timeImmediately flushing write operations to disk for fault tolerance

Degree of distribution transparency 10 / 39

Introduction: Design goals Making distribution transparent

Degree of transparency

ObservationAiming at full distribution transparency may be too much:

There are communication latencies that cannot be hiddenCompletely hiding failures of networks and nodes is (theoretically andpractically) impossible

You cannot distinguish a slow computer from a failing oneYou can never be sure that a server actually performed an operationbefore a crash

Full transparency will cost performance, exposing distribution of thesystem

Keeping replicas exactly up-to-date with the master takes timeImmediately flushing write operations to disk for fault tolerance

Degree of distribution transparency 10 / 39

Introduction: Design goals Making distribution transparent

Degree of transparency

ObservationAiming at full distribution transparency may be too much:

There are communication latencies that cannot be hiddenCompletely hiding failures of networks and nodes is (theoretically andpractically) impossible

You cannot distinguish a slow computer from a failing oneYou can never be sure that a server actually performed an operationbefore a crash

Full transparency will cost performance, exposing distribution of thesystem

Keeping replicas exactly up-to-date with the master takes timeImmediately flushing write operations to disk for fault tolerance

Degree of distribution transparency 10 / 39

Introduction: Design goals Making distribution transparent

Degree of transparency

Exposing distribution may be good

Making use of location-based services (finding your nearby friends)

When dealing with users in different time zones

When it makes it easier for a user to understand what’s going on (whene.g., a server does not respond for a long time, report it as failing).

ConclusionDistribution transparency is a nice a goal, but achieving it is a different story,and it should often not even be aimed at.

Degree of distribution transparency 11 / 39

Introduction: Design goals Making distribution transparent

Degree of transparency

Exposing distribution may be good

Making use of location-based services (finding your nearby friends)

When dealing with users in different time zones

When it makes it easier for a user to understand what’s going on (whene.g., a server does not respond for a long time, report it as failing).

ConclusionDistribution transparency is a nice a goal, but achieving it is a different story,and it should often not even be aimed at.

Degree of distribution transparency 11 / 39

Introduction: Design goals Being open

Openness of distributed systems

What are we talking about?

Be able to interact with services from other open systems, irrespective of theunderlying environment:

Systems should conform to well-defined interfacesSystems should easily interoperateSystems should support portability of applicationsSystems should be easily extensible

Interoperability, composability, and extensibility 12 / 39

Introduction: Design goals Being scalable

Scale in distributed systems

ObservationMany developers of modern distributed systems easily use the adjective“scalable” without making clear why their system actually scales.

At least three components

Number of users and/or processes (size scalability)

Maximum distance between nodes (geographical scalability)

Number of administrative domains (administrative scalability)

ObservationMost systems account only, to a certain extent, for size scalability. Often asolution: multiple powerful servers operating independently in parallel. Today,the challenge still lies in geographical and administrative scalability.

Scalability dimensions 13 / 39

Introduction: Design goals Being scalable

Scale in distributed systems

ObservationMany developers of modern distributed systems easily use the adjective“scalable” without making clear why their system actually scales.

At least three components

Number of users and/or processes (size scalability)

Maximum distance between nodes (geographical scalability)

Number of administrative domains (administrative scalability)

ObservationMost systems account only, to a certain extent, for size scalability. Often asolution: multiple powerful servers operating independently in parallel. Today,the challenge still lies in geographical and administrative scalability.

Scalability dimensions 13 / 39

Introduction: Design goals Being scalable

Scale in distributed systems

ObservationMany developers of modern distributed systems easily use the adjective“scalable” without making clear why their system actually scales.

At least three components

Number of users and/or processes (size scalability)

Maximum distance between nodes (geographical scalability)

Number of administrative domains (administrative scalability)

ObservationMost systems account only, to a certain extent, for size scalability. Often asolution: multiple powerful servers operating independently in parallel. Today,the challenge still lies in geographical and administrative scalability.

Scalability dimensions 13 / 39

Introduction: Design goals Being scalable

Size scalability

Root causes for scalability problems with centralized solutions

The computational capacity, limited by the CPUs

The storage capacity, including the transfer rate between CPUs and disks

The network between the user and the centralized service

Scalability dimensions 14 / 39

Introduction: Design goals Being scalable

Problems with geographical scalability

Cannot simply go from LAN to WAN: many distributed systems assumesynchronous client-server interactions: client sends request and waits foran answer. Latency may easily prohibit this scheme.

WAN links are often inherently unreliable: simply moving streaming videofrom LAN to WAN is bound to fail.

Lack of multipoint communication, so that a simple search broadcastcannot be deployed. Solution is to develop separate naming and directoryservices (having their own scalability problems).

Scalability dimensions 15 / 39

Introduction: Design goals Being scalable

Problems with administrative scalability

EssenceConflicting policies concerning usage (and thus payment), management, andsecurity

Examples

Computational grids: share expensive resources between differentdomains.

Shared equipment: how to control, manage, and use a shared radiotelescope constructed as large-scale shared sensor network?

Exception: several peer-to-peer networks

File-sharing systems (based, e.g., on BitTorrent)Peer-to-peer telephony (Skype)Peer-assisted audio streaming (Spotify)

Note: end users collaborate and not administrative entities.

Scalability dimensions 16 / 39

Introduction: Design goals Being scalable

Techniques for scaling

Hide communication latencies

Make use of asynchronous communication

Have separate handler for incoming response

Problem: not every application fits this model

Scaling techniques 17 / 39

Introduction: Design goals Being scalable

Techniques for scaling

Facilitate solution by moving computations to client

MA

AR

TE

N

FIRST NAME

LAST NAME

E-MAIL

ServerClient

Check form Process form

MAARTEN

MVS VAN-STEEN.NET@

VAN STEEN

FIRST NAME

LAST NAME

E-MAIL

ServerClient

Check form Process form

MAARTEN

[email protected]

VAN STEENMAARTENVAN [email protected]

Scaling techniques 18 / 39

Introduction: Design goals Being scalable

Techniques for scaling

Partition data and computations across multiple machines

Move computations to clients (Java applets)

Decentralized naming services (DNS)

Decentralized information systems (WWW)

Scaling techniques 19 / 39

Introduction: Design goals Being scalable

Techniques for scaling

Replication and 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)

Scaling techniques 20 / 39

Introduction: Design goals Being scalable

Scaling: The problem with replication

Applying replication 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 globalsynchronization on each modification.

Global synchronization precludes large-scale solutions.

ObservationIf we can tolerate inconsistencies, we may reduce the need for globalsynchronization, but tolerating inconsistencies is application dependent.

Scaling techniques 21 / 39

Introduction: Design goals Being scalable

Scaling: The problem with replication

Applying replication 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 globalsynchronization on each modification.

Global synchronization precludes large-scale solutions.

ObservationIf we can tolerate inconsistencies, we may reduce the need for globalsynchronization, but tolerating inconsistencies is application dependent.

Scaling techniques 21 / 39

Introduction: Design goals Being scalable

Scaling: The problem with replication

Applying replication 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 globalsynchronization on each modification.

Global synchronization precludes large-scale solutions.

ObservationIf we can tolerate inconsistencies, we may reduce the need for globalsynchronization, but tolerating inconsistencies is application dependent.

Scaling techniques 21 / 39

Introduction: Design goals Being scalable

Scaling: The problem with replication

Applying replication 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 globalsynchronization on each modification.

Global synchronization precludes large-scale solutions.

ObservationIf we can tolerate inconsistencies, we may reduce the need for globalsynchronization, but tolerating inconsistencies is application dependent.

Scaling techniques 21 / 39

Introduction: Design goals Being scalable

Scaling: The problem with replication

Applying replication 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 globalsynchronization on each modification.

Global synchronization precludes large-scale solutions.

ObservationIf we can tolerate inconsistencies, we may reduce the need for globalsynchronization, but tolerating inconsistencies is application dependent.

Scaling techniques 21 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Design goals Pitfalls

Developing distributed systems: Pitfalls

ObservationMany distributed systems are needlessly complex caused by mistakes thatrequired patching later on. Many false assumptions are often made.

False (and often hidden) 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

22 / 39

Introduction: Types of distributed systems

Three types of distributed systems

High performance distributed computing systems

Distributed information systems

Distributed systems for pervasive computing

23 / 39

Introduction: Types of distributed systems High performance distributed computing

Parallel computing

ObservationHigh-performance distributed computing started with parallel computing

Multiprocessor and multicore versus multicomputerShared memory

Processor

P P P P

M M M

Interconnect

Private memory

Memory

P P P P

M M M M

Interconnect

24 / 39

Introduction: Types of distributed systems High performance distributed computing

Distributed shared memory systems

ObservationMultiprocessors are relatively easy to program in comparison tomulticomputers, yet have problems when increasing the number of processors(or cores). Solution: Try to implement a shared-memory model on top of amulticomputer.

Example through virtual-memory techniques

Map all main-memory pages (from different processors) into one single virtualaddress space. If process at processor A addresses a page P located atprocessor B, the OS at A traps and fetches P from B, just as it would if P hadbeen located on local disk.

ProblemPerformance of distributed shared memory could never compete with that ofmultiprocessors, and failed to meet the expectations of programmers. It hasbeen widely abandoned by now.

25 / 39

Introduction: Types of distributed systems High performance distributed computing

Cluster computing

Essentially a group of high-end systems connected through a LAN

Homogeneous: same OS, near-identical hardwareSingle managing node

Local OSLocal OS Local OS Local OS

Standard network

Component

of

parallel

application

Component

of

parallel

application

Component

of

parallel

applicationParallel libs

Management

application

High-speed network

Remote access

network

Master node Compute node Compute node Compute node

Cluster computing 26 / 39

Introduction: Types of distributed systems High performance distributed computing

Grid computing

The next step: lots of nodes from everywhere

Heterogeneous

Dispersed across several organizations

Can easily span a wide-area network

NoteTo allow for collaborations, grids generally use virtual organizations. Inessence, this is a grouping of users (or better: their IDs) that will allow forauthorization on resource allocation.

Grid computing 27 / 39

Introduction: Types of distributed systems High performance distributed computing

Cloud computing

Application

Infrastructure

Computation (VM) torage (block ), s , file

Hardware

Platforms

Software framework (Java/Python/.Net)Storage ( )databases

Infr

astr

uctu

re

aa S

vc

Pla

tform

aa S

vc

Softw

are

aa

Svc

MS AzureGoogle App engine

Amazon S3

Amazon EC2

DatacentersCPU, memory, disk, bandwidth

Web services, multimedia, business apps

Google docsGmailYouTube, Flickr

Cloud computing 28 / 39

Introduction: Types of distributed systems High performance distributed computing

Cloud computing

Make a distinction between four layers

Hardware: Processors, routers, power and cooling systems. Customersnormally never get to see these.

Infrastructure: Deploys virtualization techniques. Evolves aroundallocating 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 applications, such as office suites (text processors,spreadsheet applications, presentation applications). Comparable to thesuite of apps shipped with OSes.

Cloud computing 29 / 39

Introduction: Types of distributed systems Distributed information systems

Integrating applications

SituationOrganizations confronted with many networked applications, but achievinginteroperability was painful.

Basic approach

A networked application is one that runs on a server making its servicesavailable to remote clients. Simple integration: clients combine requests for(different) applications; send that off; collect responses, and present a coherentresult to the user.

Next step

Allow direct application-to-application communication, leading to EnterpriseApplication Integration.

30 / 39

Introduction: Types of distributed systems Distributed information systems

How to integrate applications

File transfer: Technically simple, but not flexible:

Figure out file format and layoutFigure out file managementUpdate propagation, and update notifications.

Shared database: Much more flexible, but still requires common data schemenext to risk of bottleneck.

Remote procedure call: Effective when execution of a series of actions isneeded.

Messaging: RPCs require caller and callee to be up and running at the sametime. Messaging allows decoupling in time and space.

31 / 39

Introduction: Types of distributed systems Pervasive systems

Distributed pervasive systems

ObservationEmerging next-generation of distributed systems in which nodes are small,mobile, and often embedded in a larger system, characterized by the fact thatthe system naturally blends into the user’s environment.

Three (overlapping) subtypes

Ubiquitous computing systems: pervasive and continuously present, i.e.,there is a continuous interaction between system and user.

Mobile computing systems: pervasive, but emphasis is on the fact thatdevices are inherently mobile.

Sensor (and actuator) networks: pervasive, with emphasis on the actual(collaborative) sensing and actuation of the environment.

32 / 39

Introduction: Types of distributed systems Pervasive systems

Distributed pervasive systems

ObservationEmerging next-generation of distributed systems in which nodes are small,mobile, and often embedded in a larger system, characterized by the fact thatthe system naturally blends into the user’s environment.

Three (overlapping) subtypes

Ubiquitous computing systems: pervasive and continuously present, i.e.,there is a continuous interaction between system and user.

Mobile computing systems: pervasive, but emphasis is on the fact thatdevices are inherently mobile.

Sensor (and actuator) networks: pervasive, with emphasis on the actual(collaborative) sensing and actuation of the environment.

32 / 39

Introduction: Types of distributed systems Pervasive systems

Distributed pervasive systems

ObservationEmerging next-generation of distributed systems in which nodes are small,mobile, and often embedded in a larger system, characterized by the fact thatthe system naturally blends into the user’s environment.

Three (overlapping) subtypes

Ubiquitous computing systems: pervasive and continuously present, i.e.,there is a continuous interaction between system and user.

Mobile computing systems: pervasive, but emphasis is on the fact thatdevices are inherently mobile.

Sensor (and actuator) networks: pervasive, with emphasis on the actual(collaborative) sensing and actuation of the environment.

32 / 39

Introduction: Types of distributed systems Pervasive systems

Distributed pervasive systems

ObservationEmerging next-generation of distributed systems in which nodes are small,mobile, and often embedded in a larger system, characterized by the fact thatthe system naturally blends into the user’s environment.

Three (overlapping) subtypes

Ubiquitous computing systems: pervasive and continuously present, i.e.,there is a continuous interaction between system and user.

Mobile computing systems: pervasive, but emphasis is on the fact thatdevices are inherently mobile.

Sensor (and actuator) networks: pervasive, with emphasis on the actual(collaborative) sensing and actuation of the environment.

32 / 39

Introduction: Types of distributed systems Pervasive systems

Ubiquitous systems

Core elements1 (Distribution) Devices are networked, distributed, and accessible in a

transparent manner2 (Interaction) Interaction between users and devices3 (Context awareness) The system is aware of a user’s context in order to

optimize interaction4 (Autonomy) Devices operate autonomously without human intervention,

and are thus highly self-managed5 (Intelligence) The system as a whole can handle a wide range of

dynamic actions and interactions

Ubiquitous computing systems 33 / 39

Introduction: Types of distributed systems Pervasive systems

Mobile computing

Distinctive features

An extremely great number of different mobile devices (smartphones,tablets, GPS devices, remote controls, active badges.

Mobile implies that a device’s location is expected to change over time⇒change of local services, reachability, etc. Keyword: discovery.

Communication may become more difficult: no stable route, but alsoperhaps no guaranteed connectivity⇒ disruption-tolerant networking.

Mobile computing systems 34 / 39

Introduction: Types of distributed systems Pervasive systems

Mobility patterns

IssueWhat is the relationship between information circulation and human mobility?Basic idea: an encounter allows for the exchange of information(pocket-switched networks).

A successful strategy

Alice’s world consists of friends and strangers.

If Alice wants to get a message to Bob: hand it out to all her friends

Friend passes message to Bob at first encounter

ObservationThis strategy works because (apparently) there are relatively closedcommunities of friends.

Mobile computing systems 35 / 39

Introduction: Types of distributed systems Pervasive systems

How mobile are people?

Experimental results

Tracing 100,000 cell-phone users during six months leads to:

Moreover: people tend to return to the same place after 24, 48, or 72 hours⇒we’re not that mobile.

Mobile computing systems 36 / 39

Introduction: Types of distributed systems Pervasive systems

Sensor networks

CharacteristicsThe nodes to which sensors are attached are:

Many (10s-1000s)

Simple (small memory/compute/communication capacity)

Often battery-powered (or even battery-less)

Sensor networks 37 / 39

Introduction: Types of distributed systems Pervasive systems

Sensor networks as distributed databases

Two extremes

Operator's site

Sensor network

Sensor datais sent directly

to operator

Operator's site

Sensor network

Query

Sensors

send only

answers

Each sensor

can process and

store data

Sensor networks 38 / 39

Introduction: Types of distributed systems Pervasive systems

Duty-cycled networks

IssueMany sensor networks need to operate on a strict energy budget: introduceduty cycles

DefinitionA node is active during Tactive time units, and then suspended for Tsuspendedunits, to become active again. Duty cycle τ:

τ =Tactive

Tactive +Tsuspended

Typical duty cycles are 10−30%, but can also be lower than 1%.

Sensor networks 39 / 39