Transcript
Page 1: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

PeerSpaces: Data-Driven Coordination on P2P Networks

(2003)

From Nadia Busi, Cristian Manfredini, Alberto Montresor and Gianluigi Zavattaro of

University of Bologna

Presented by Samuele Milani

Page 2: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

2

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Page 3: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

3

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Summary

New coordination model (The Peer Spaces Model)

Exploit the Linda Model for Peer-to-Peer Networks.

Prototypical implementation (JXTA).

Page 4: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

4

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Overview

1)Peer-to-Peer Networks

2)The Linda Model

3)Linda in a Mobile Environment (LIME)

4)Peer Spaces

5)An Implementation with JXTA

Page 5: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

5

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

1. Peer-to-Peer Networks1. Peer-to-Peer Networks

Page 6: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

6

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Peer-to-Peer Basics

Various type of Networks :

- Client-Server : Web servers

- Hybrid P2P : Napster, eDonkey

- Pure P2P : Gnutella, Freenet

Page 7: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

7

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

The eDonkey Network

Page 8: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

8

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Problems ?

High comunication overhead Slow search Distribution of load & resources Elephant & Mice problem …

Page 9: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

9

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

2. The Linda Model2. The Linda Model

Page 10: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

10

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

The Linda Model

Developped at Yale University in 1985 Shared memory accessible by all processes Data elements consists of tuples Tuple is like a record ex. (‘worker’, 0, i) Four basic primitives Implemented through libraries (Linda for C,

Fortran, C++)

Page 11: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

11

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

The Fantastic 4

out(‘test’, 4, 64)places a data tuple in tuple space

eval(‘test’,i, f(i))creates a live tuple, which start a process that evaluate each argument

rd(‘test’, ?i, ?j) blockingread the values in a tuple in a tuple space

in(‘test’, ?i, ?j) blockingsame as rd except that it also removes the tuple from the tuple space

Page 12: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

12

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Example

(‘Test’,1)

(‘Test2’,18)

Boss

Slave

(‘Car’,180,’Volvo’)

Slave

Page 13: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

13

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Example

(‘Test’,1)

(‘Test2’,18)

Boss

Slave

(‘Car’,180,’Volvo’)

Slave

out(‘Job1’,100,’$’)

Page 14: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

14

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Example

(‘Test’,1)

(‘Test2’,18)

Boss

Slave

(‘Car’,180,’Volvo’)

Slave

(‘Job1’,100,’$’)

Page 15: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

15

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Example

(‘Test’,1)

(‘Test2’,18)

Boss

Slave

(‘Car’,180,’Volvo’)

Slave

(‘Job1’,100,’$’)in(‘Job1’,?i,’$’)

Page 16: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

16

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Example

(‘Test’,1)

(‘Test2’,18)

Boss

Slave

(‘Car’,180,’Volvo’)

Slave

(‘Job1’,100,’$’)

Page 17: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

17

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

3. Lime 3. Lime

(Linda in Mobile Environment)(Linda in Mobile Environment)

Page 18: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

18

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Lime

Problems with Linda :- where i store the tuples (Server)- rather statical model- not suitable for dynamical changing networks

Lime designed for mobile applications over wired and ad hoc networks

Supports physical and logical mobility of the hosts Introduces transiently shared data space Decoupled and opportunistic style of computation

Page 19: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

19

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Transiently shared Dataspaces

Process Level

Data Space

Host Level

Data Space

Transiently shared

Data Space

Page 20: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

20

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

4. Peer Spaces4. Peer Spaces

Page 21: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

21

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Motivation

Adapt the Linda/Lime Model to P2P Generative communication Must support extreme dynamism in structure,

content and load Large degree of self-configuration and self

management is required New coordination model PeerSpaces Formal rules, abstraction of data and network

structure

Page 22: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

22

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Definitions

Data (d) Local data Generic data (Chat) Replicable data (FileSharing)

Peer p [P, DS] Ps set of peers MD Misplaced data Network topology

gdrd

d

Page 23: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

23

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(write(job,Gen).read(response,8).write(cash,Gen).P, { })Peer q :q(read(job,8).write(response,Rep).read(cash,8).

write(pay,Gen).Q, {dog})

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

Page 24: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

24

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(write(job,Gen).read(response,8).write(cash,Gen).P, { })Peer q :q(read(job,8).write(response,Rep).read(cash,8).

write(pay,Gen).Q, {dog})

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

Page 25: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

25

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(read(response,8).write(cash,Gen).P, {job })Peer q :q(read(job,8).write(response,Rep).read(cash,8).

write(pay,Gen).Q, {dog})

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

g

Page 26: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

26

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(read(response,8).write(cash,Gen).P, {})Peer q :q(read(job,8).write(response,Rep).read(cash,8).

write(pay,Gen).Q, {dog})

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = {job }g

Page 27: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

27

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(read(response,8).write(cash,Gen).P, { })Peer q :q(write(response,Rep).read(cash,8).

write(pay,Gen).Q, {dog, job })

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

g

Page 28: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

28

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(read(response,8).write(cash,Gen).P, { })Peer q :q(read(cash,8).

write(pay,Gen).Q, {dog, job, response })

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

r

Page 29: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

29

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(write(cash,Gen).P, {response })Peer q :q(read(cash,8).

write(pay,Gen).Q, {dog, job, response})

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

r

Page 30: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

30

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(P, {response, cash })Peer q :q(read(cash,8).

write(pay,Gen).Q, {dog, job, response})

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

g

Page 31: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

31

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(P, {response})Peer q :q(

write(pay,Gen).Q, {dog, job, response, cash } )

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

g

Page 32: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

32

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(P, {response})Peer q :q(

Q, {dog, job, response, cash, pay } )

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- fully connectedMD = { }

g

Page 33: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

33

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

A Peer Space Example

Peer p :p(P, {response})Peer q :q(

Q, {dog, job, response, cash} )

Peer r :r(read(pay,8).write(receipt,Gen).R, {credit})

Network :- A Node has disconnected now Route(q,r) = falseMD = {pay }g

Page 34: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

34

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Data Production

Page 35: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

35

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Data Retrieval

Page 36: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

36

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Constant and Context Rules

Page 37: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

37

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Open issues ?

• Implementation of :- Route (p, p’)- Hor (p, h)- LoadBal (p,p’,d)

Page 38: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

38

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

5. A JXTA Prototypical 5. A JXTA Prototypical ImplementationImplementation

Page 39: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

39

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

What’s JXTA ?

JXTA is an open-source project by Sun to provide a set of basic facilities for P2P applications

Based on a set of XML protocols JXTA middleware has 3 layers

- core : low-level functions (routing, communication, …)

- services : indexing, searching, file sharing

- applications : high-level application (chat, auction, …)

Page 40: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

40

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

The JPS Network

Page 41: Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks PeerSpaces: Data-Driven Coordination on P2P Networks (2003) From Nadia Busi,

41

Concurrency Seminar : PeerSpaces Data-Driven Coordination on P2P Networks

Conclusion

We can not yet draw conclusions until concrete implementations comes out !!!!

But the model should theoretically work

To be continued…


Recommended