Protocols for Large Self-Organizing Peer Networks

62
Jörg Liebeherr, 2002 Protocols for Large Self-Organizing Peer Networks Jorg Liebeherr University of Virginia

description

Protocols for Large Self-Organizing Peer Networks. Jorg Liebeherr University of Virginia. HyperCast Project. HyperCast is a set of protocols for large-scale overlay multicasting and peer-to-peer networking. Motivating Research Problems: - PowerPoint PPT Presentation

Transcript of Protocols for Large Self-Organizing Peer Networks

Page 1: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002

Protocols for Large Self-Organizing Peer Networks

Jorg Liebeherr

University of Virginia

Page 2: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Project

• HyperCast is a set of protocols for large-scale overlay multicasting and peer-to-peer networking

• Motivating Research Problems:– How to organize thousands of

applications in a virtual overlay network?

– How to do multicasting in very large overlay networks?

Page 3: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Acknowledgements

• Team: – Past: Bhupinder Sethi, Tyler

Beam, Burton Filstrup, Mike Nahas, Dongwen Wang, Konrad Lorincz, Jean Ablutz

– Current:, Weisheng Si, Haiyong Wang, Jianping Wang, Guimin Zhang

• This work is supported in part by the National Science Foundation:

D E N A L I

Page 4: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Applications with many receivers

Numberof Receivers

Number of Senders

Streaming

SoftwareDistribution

10 1,000

1

1,000,000

10

1,000

1,000,000

CollaborationTools

Games

Distributed Information

Systems

Peer-to-PeerApplications

Page 5: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Need for Multicasting ?

• Maintaining unicast connections is not feasible• Infrastructure or services needs to support a “send to group”

Page 6: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Problem with Multicasting

• Feedback Implosion: A node is overwhelmed with traffic or state– One-to-many multicast with feedback (e.g., reliable multicast)– Many-to-one multicast (Incast)

NAK

NAK

NAK

NAK

NAK

Page 7: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Multicast support in the network infrastructure (IP Multicast)

• Reality Check (after 10 years of IP Multicast):

– Deployment has encountered severe scalability limitations in both the size and number of groups that can be supported

– IP Multicast is still plagued with concerns pertaining to scalability, network management, deployment and support for error, flow and congestion control

Page 8: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Overlay Multicasting

• Logical overlay resides on top of the Layer-3 network• Data is transmitted between neighbors in the overlay• No network support needed• Overlay topology should match the Layer-3 infrastructure

Page 9: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Overlay-based approaches for multicasting

• Build an overlay mesh network and embed trees into the mesh:– Narada (CMU)– RMX/Gossamer (UCB)– many more

• Build a shared tree:– Yallcast/Yoid (NTT, ACIRI)– AMRoute (Telcordia, UMD – College Park)– Overcast (MIT)– many more

• Build an overlay using a “logical coordinate spaces”:– Chord (UCB, MIT) not used for multicast

– CAN (UCB, ACIRI)

Page 10: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Approach

• Build overlay network as a graph with known properties – N-dimensional (incomplete) hypercube– Delaunay triangulation

• Advantages:– Achieve good load-balancing – Exploit symmetry – Routing in the overlay comes for free

• Claim: Can improve scalability of multicast and peer-to-peer networks by orders of magnitude over existing solutions

Page 11: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Hypercast Software

Applications organize themselves to form a logical overlay network with a given topology No central control Dynamic membership

hypercube

Delaunaytriangulation

Page 12: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Data Transfer

• Data is distributed neighbor-to-neighbor in the overlay network

110

010

000 001

011

111

101

Page 13: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Software: Overlay Socket

• Transport services in Peer-to-Peer Networks

• Socket-based API• UDP or TCP

• Different reliability

semantics

• Implementation

done in Java

• Software available from:

www.cs.virginia.edu/~hypercast

OverlaySocket

Forwarding Engine Message Store

Overlay Socket Interface

Sta

tist

ics

Inte

rfac

e

Messages ofthe OverlayProtocol

ApplicationReceiveBuffer

ApplicationTransmit

Buffer

Overlay Node

Overlay NodeInterface

Node Adapter

Adapter Interface

Socket Adapter

Adapter Interface

ApplicationMessages

Application Program

Network

Page 14: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Software: Data Exchange

• Each overlay socket has two communication ports:1. Protocol to manage the overlay (overlay protocol)2. Data transfer

Data transfer

Overlay protocolOverlay protocolData tra

nsfer

Overlay protocol

Data transfer

Page 15: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Data transfer

Overlay protocol Overlay protocol

Data transfer

HyperCast Software: Bootstrap

Overlayserver

store parameters

1st

Configuration file

- Overlay protocol- TCP or UDP- etc.

Configuration file

- Overlay protocol- TCP or UDP- etc.

loadparameters

2nd

getparameters

Configuration file

- Overlay protocol- TCP or UDP- etc.

Configuration file

- Overlay protocol- TCP or UDP- etc.

Overlay ID

Overlay ID ?

loadparameters

Page 16: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Data transfer

Overlay protocol Overlay protocol

Data transfer

HyperCast Software: Bootstrap

(without Overlay server)

1st

Configuration file

- Overlay ID- Overlay protocol- TCP or UDP- etc.

Configuration file

- Overlay ID- Overlay protocol- TCP or UDP- etc.

loadparameters

2nd

Configuration file

- Overlay ID- Overlay protocol- TCP or UDP- etc.

Configuration file

- Overlay ID- Overlay protocol- TCP or UDP- etc.

loadparameters

Page 17: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Software: Message Formats

1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +-------+---------------+---+---+-------------------------------+ |Version|LAS|Dmd| Traffic Class | Flow Label | Next Header | +-------+---------------+---+---+-------------------------------+ | OL Message Length | Hop Limit | +-------------------------------+-------------------------------+ | Src LA | +--------------------------------------------------------------- | Dest LA | +---------------------------------------------------------------+

Logical address sizeDelivery mode(unicast, multicast, flood)

Next header

QoS

• Common Header of “Overlay Message”:

Message Length

TTL field Logical address of the sourceLogical address of the destination (if unicast)Version

Page 18: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Software: Message Formats

NextheaderPayload length

• “Raw” messages 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +--------------+------------------------------+----------------+ | Next Header | Payload length |///Payload//////| +--------------------------------------------------------------+

Payload

Page 19: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Software: Socket Based API

//Generate the configuration object OverlayManager om = new OverlayManager(propertyfilename); String overlayID = om.getDefaultProperty("OverlayID")OverlaySocketConfig config = new om.getOverlaySocketConfig(overlayID);

//create an overlay socket OL_Socket socket = config.createOverlaySocket(callback);

//Join an overlay socket.joinGroup();

//Create a message OL_Message msg = socket.createMessage(byte[] data, int length);

//Send the message to all members in overlay network socket.sendToAll(msg);

//Receive a message from the socket OL_Message msg = socket.receive();

//Extract the payload byte[] data = msg.getPayload();

//Generate the configuration object OverlayManager om = new OverlayManager(propertyfilename); String overlayID = om.getDefaultProperty("OverlayID")OverlaySocketConfig config = new om.getOverlaySocketConfig(overlayID);

//create an overlay socket OL_Socket socket = config.createOverlaySocket(callback);

//Join an overlay socket.joinGroup();

//Create a message OL_Message msg = socket.createMessage(byte[] data, int length);

//Send the message to all members in overlay network socket.sendToAll(msg);

//Receive a message from the socket OL_Message msg = socket.receive();

//Extract the payload byte[] data = msg.getPayload();

Page 20: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

HyperCast Software: Demo Applications

Distributed Whiteboard Multicast file transfer

Page 21: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Delaunay Triangulation Overlays

Page 22: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

0,0 1,0 2,0 3,0

0,1

0,2

0,3

12,0

10,8

5,2

4,9

0,6

Nodes are assigned x-y coordinates

(e.g., based on geographic location)

Nodes are assigned x-y coordinates

(e.g., based on geographic location)

Nodes in a Plane

Page 23: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

10,8

5,2

4,9

0,6

The Voronoi region of a node is the region of the plane that is closer to this node than to any other node.

The Voronoi region of a node is the region of the plane that is closer to this node than to any other node.

Voronoi Regions

Page 24: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

The Delaunay triangulation has edges between nodes in neighboring Voronoi regions.

The Delaunay triangulation has edges between nodes in neighboring Voronoi regions.

12,0

10,8

5,2

4,9

0,6

Delaunay Triangulation

Page 25: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

An equivalent definition:A triangulation such that each circumscribing circle of a triangle formed by three vertices, no vertex of is in the interior of the circle.

An equivalent definition:A triangulation such that each circumscribing circle of a triangle formed by three vertices, no vertex of is in the interior of the circle.

12,0

10,8

5,2

4,9

0,6

Delaunay Triangulation

Page 26: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

A

B

C

D

Locally Equiangular Property

• Sibson 1977: Maximize the minimum angle

For every convex quadrilateral formed by triangles ACB and ABD that share a common edge AB, the minimum internal angle of triangles ACB and ABD is at least as large as the minimum internal angle of triangles ACD

and CBD.

A

B

C

D

Page 27: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Next-hop routing with Compass Routing

• A node’s parent in a spanning tree is its neighbor which forms the smallest angle with the root.

• A node need only know information on its neighbors – no routing protocol is needed for the overlay.

Root Node

B

A

15°

30°

B is the Node’s Parent

Page 28: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

Spanning tree when node (8,4) is root. The tree can be calculated by both parents and children.

Spanning tree when node (8,4) is root. The tree can be calculated by both parents and children.

0,6

5,2

4,9

12,0

10,8

8,4

Page 29: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Problem with Delaunay Triangulations

• Delaunay triangulation considers location of nodes, but not the network topology

• 2 heuristics to achieve a better mapping

Page 30: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Evaluation of Overlays

• Simulation:– Network with 1024 routers (“Transit-Stub” topology)– 2 - 512 hosts

• Performance measures for trees embedded in an overlay network:

– Degree of a node in an embedded tree

– “Relative Delay Penalty”: Ratio of delay in overlay to shortest path delay

– “Stress”: Number of duplicate transmissions over a physical link

Page 31: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Illustration of “Stress” and “Relative Delay Penalty”

AA

BBStress = 2

Stress = 2

Relative delay penalty for AB: 1.5

1 1

1 1

Unicast delay AB : 4

11 1

1

1

1

Delay AB in overlay: 6

Page 32: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Transit-Stub Network

Transit-Stub• GA Tech topology

generator

• 4 transit domains

• 416 stub domains

• 1024 total routers

• 128 hosts on stub domain

Page 33: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Overlay Topologies

Delaunay Triangulation and variants– Hierarchical DT– Multipoint DT

Degree-6 Graph– Similar to graphs generated in Narada

Degree-3 Tree– Similar to graphs generated in Yoid

Logical MST– Minimum Spanning Tree

Hypercube

Page 34: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Average Relative Delay Penalty

Page 35: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

90th Percentile of Relative Delay Penalty

Delaunay triangulation

Page 36: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Average “Stress”

Delaunay triangulation

Page 37: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

90th Percentile of “Stress”

Delaunay triangulation

Page 38: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

The DT Protocol

Protocol which organizes members of a network in a Delaunay Triangulation

• Each member only knows its neighbors

• “soft-state” protocol

Topics:• Nodes and Neighbors• Example: A node joins• State Diagram• Rendezvous• Measurement Experiments

Page 39: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Each node sends Hello messages to its neighbors periodically

Each node sends Hello messages to its neighbors periodically

12,0

5,2

4,9

0,6

10,8HelloHelloH

ello

HelloHello

Hello

HelloHello

HelloHelloH

ello

Hello

HelloHello

Page 40: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

• Each Hello contains the clockwise (CW) and counterclockwise (CCW) neighbors

• Receiver of a Hello runs a “Neighbor test” ( locally equiangular prop.)

• CW and CCW are used to detect new neighbors

• Each Hello contains the clockwise (CW) and counterclockwise (CCW) neighbors

• Receiver of a Hello runs a “Neighbor test” ( locally equiangular prop.)

• CW and CCW are used to detect new neighbors

12,0

5,2

4,9

0,6

10,8

Hello

CW =

12,

0

CCW =

4,9

Nei

gh

bo

r

5,2 12,0 4,9 4,9 5,2 –12,0 – 10,8

CC

W

CW

Neighborhood Table of 10.8

Page 41: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

A node that wants to join the triangulation contacts a node that is “close”

A node that wants to join the triangulation contacts a node that is “close”

12,0

10,8

5,2

4,9

0,6

8,4

New node

Hello

Page 42: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Node (5,2) updates its Voronoi region, and the triangulation

Node (5,2) updates its Voronoi region, and the triangulation

12,0

4,9

0,6

8,4

10,8

5,2

Page 43: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

(5,2) sends a Hello which contains info for contacting its clockwise and counterclockwise neighbors

(5,2) sends a Hello which contains info for contacting its clockwise and counterclockwise neighbors

Hello

12,0

4,9

0,6

8,4

10,8

5,2

Page 44: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

0,6

(8,4) contacts these neighbors ...(8,4) contacts these neighbors ...

8,4

10,8

5,2

Hello

Hello

12,0

4,9

Page 45: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

… which update their respective Voronoi regions.

… which update their respective Voronoi regions.

0,6

10,8

5,2

4,9

12,0

8,4

Page 46: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

0,6

(4,9) and (12,0) send Hellos and provide info for contacting their respective clockwise and counterclockwise neighbors.

(4,9) and (12,0) send Hellos and provide info for contacting their respective clockwise and counterclockwise neighbors.

10,8

5,2

4,9

12,0

8,4

Hello

Hello

Page 47: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

0,6

(8,4) contacts the new neighbor (10,8) ...

(8,4) contacts the new neighbor (10,8) ...

10,8

5,2

4,9

12,0

8,4H

ello

10,8

Page 48: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

0,6

…which updates its Voronoi region...…which updates its Voronoi region...

5,2

4,9

12,0

10,8

8,4

Page 49: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

0,6

…and responds with a Hello…and responds with a Hello

5,2

4,9

12,0

10,8

8,4H

ello

Page 50: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

4,9

This completes the update of the Voronoi regions and the Delaunay Triangulation

This completes the update of the Voronoi regions and the Delaunay Triangulation

0,6

5,2

4,9

12,0

10,8

8,4

Page 51: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Rendezvous Methods

• Rendezvous Problems:– How does a new node detect a member of the overlay?– How does the overlay repair a partition?

• Three solutions:

1. Announcement via broadcast

2. Use of a rendezvous server

3. Use `likely’ members (“Buddy List”)

Page 52: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

10,8

5,2

4,9

0,6

8,4

New node

Hello

Rendezvous Method 1: Announcement via broadcast (e.g., using IP Multicast)

Rendezvous Method 1: Announcement via broadcast (e.g., using IP Multicast)

Page 53: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

10,8

5,2

4,9

0,6

Leader Rendezvous Method 1:

A Leader is a node with a Y-coordinate higher than any of its neighbors.

Rendezvous Method 1:

A Leader is a node with a Y-coordinate higher than any of its neighbors.

Page 54: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

10,8

5,2

4,9

0,6

8,4

New node

Rendezvous Method 2: New node and leader contact a server. Server keeps a cache of some other nodes

Rendezvous Method 2: New node and leader contact a server. Server keeps a cache of some other nodes

Server

ServerRequestServerReply(12,0)

NewNode

Hello NewNode

Page 55: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

12,0

10,8

5,2

4,9

0,6

8,4

New nodewith Buddy List: (12,0) (4,9)

Rendezvous Method 3: Each node has a list of “likely” members of the overlay network

Rendezvous Method 3: Each node has a list of “likely” members of the overlay network

NewNode

Hello NewNode

Page 56: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

State Diagram of a Node

Leaderwithout

Neighbor

Leader withNeighbor

NotLeader

Leaving

Stopped

Neighbor added(with smaller coordinates)

All neighborsleave or timeout

Neighbor added(with larger coordinates)

All neighborsleave or timeout

Application starts

A new neighbor withgreater coordinates is added

After removing some neighbor,this node has largest coordinates

Send Goodbye Send Goodbye

SendGoodbye

Applicationexits

Page 57: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Sub-states of a Node

Stable WithoutCandidateNeighbor

Stable WithCandidateNeighbor

NotStable

Node contained in NewNodepasses neighbor test

After handling thecandidate neighbor,node remains stable

After neighborhoodupdating, node becomes

not stable

After neighborhood updating,node becomes stable.

After neighborhoodupdating,

node becomes not stable

• A node is stable when all nodes that appear in the CW and CCW neighbor columns of the neighborhood table also appear in the neighbor column

• A node is stable when all nodes that appear in the CW and CCW neighbor columns of the neighborhood table also appear in the neighbor column

Page 58: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Measurement Experiments

• Experimental Platform: Centurion cluster at UVA (cluster of 300 Linux PCs) – 2 to 10,000 overlay members – 1–100 members per PC

Switch 8

Switch 9

Switch 11

Switch 10

Switch 4

Switch 5

Switch 6

Switch 7

Switch 3

Internet

centurion149-167centurion183centurion253-255

centurion246centurion250centurion251

centurion249centurion252

centurion168-182centurion164-187

centurion188-211

centurion228-247centurion128-147

Gigabit Ethernet

Page 59: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

How long does it take to add M members to an overlay network of N members ?

Experiment: Adding Members

M+N members

Tim

e to

Co

mp

lete

(se

c)

Page 60: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Experiment: Throughput of Multicasting

Number of Members N

Bandwidth bounds(due to stress)

Measuredvalues

Ave

rag

e th

rou

gh

pu

t

(Mb

ps)

100 MB bulk transfer for N=2-100 members (1 node per PC) 10 MB bulk transfer for N=20-1000 members (10 nodes per PC)

Page 61: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Experiment: Delay

100 MB bulk transfer for N=2-100 members (1 node per PC) 10 MB bulk transfer for N=20-1000 members (10 nodes per PC)

Del

ay o

f a

pac

ket

(mse

c)

Number of Nodes N

Page 62: Protocols for Large  Self-Organizing Peer Networks

Jörg Liebeherr, 2002 March 2002

Summary

• Use of Delaunay triangulations for overlay networks• Delaunay triangulation observes ‘coordinates” but ignores

network topology• No routing protocol is needed in the overlay

• Ongoing efforts: – Use delay measurements to determine coordinates– HyperCast on handheld devices (iPaQs)– Enhance data services: “Message Store”

• HyperCast Project website: http://www.cs.virginia.edu/~hypercast