Presentation is loading. Please wait.

Presentation is loading. Please wait.

GrapevineCS-4513, D-Term 20071 Introduction to the Grapevine Distributed System CS-4513 Distributed Computing Systems.

Similar presentations


Presentation on theme: "GrapevineCS-4513, D-Term 20071 Introduction to the Grapevine Distributed System CS-4513 Distributed Computing Systems."— Presentation transcript:

1 GrapevineCS-4513, D-Term 20071 Introduction to the Grapevine Distributed System CS-4513 Distributed Computing Systems

2 GrapevineCS-4513, D-Term 20072 Grapevine A distributed system for e-mail and other distributed activities Implemented at Xerox PARC in ~1978-80 Deployed throughout company Productized in Xerox 8000 series office systems Predates most Internet mail systems Embodies many principles of distributed computing systems …

3 GrapevineCS-4513, D-Term 20073 Grapevine (references) … Birrell, et. al., “Grapevine: An Exercise in Distributed Computing,” Communications of ACM, vol. 25, #4, April 1982, pp 260-274. (pdf)pdf Schroeder, et. al., “Experience with Grapevine: The Growth of a Distributed System,” ACM Transactions on Computer Systems, vol. 2, #1, Feb 1984, pp 3-23. (pdf)pdf

4 GrapevineCS-4513, D-Term 20074 Goals Delivery mechanism for large, dispersed e- mail system Previous e-mail system were time-sharing based (now) Familiar model Senders Recipients Distribution lists Buffered delivery Independent clients (e-mail agents)

5 GrapevineCS-4513, D-Term 20075 Design Goals No assumptions about … Message content Client correctness Message delivery guarantee If accepted, message would be delivered to recipient’s inbox or … returned with error Failure of server  unavailability of service Decentralized administration

6 GrapevineCS-4513, D-Term 20076 Key Components Registration Data Base Distributed Replicated Recursively implemented Message Delivery System Transports, buffers, delivers Expands distribution lists Distributed Replicated

7 GrapevineCS-4513, D-Term 20077 Issues Exposed by Grapevine Reliable Transport and Storage Synchronizing and Ordering of Operations Fault-tolerance Consistency and Replication Security and Authentication …

8 GrapevineCS-4513, D-Term 20078 Registration Database {RName, value} pairs Two types of entry Individual Group Group entry value = list of RNames — i.e., the group members May be distribution list, resource list, access control list, etc. Individual entry value = [authenticator, ordered inbox list, contact site, …] May be human users, servers, etc.

9 GrapevineCS-4513, D-Term 20079 Organization Registry Subset of the registration database entries Organizational, geographic, or other convenient partition RName – two-part name Name.R R is a registry Name is a unique name within that particular registry (Easily expandable to three part names or more)

10 GrapevineCS-4513, D-Term 200710 Functions Provided by Grapevine Service Delivery services:– Accept message: [sender, password, recipients, message-body]  ok Message polling: [individual]  {empty, non-empty} Retrieve messages: [name, password]  sequence of messages  ok …

11 GrapevineCS-4513, D-Term 200711 Functions Provided by Grapevine Service (continued) Registry services:– Authenticate: [individual, password]  {authentic, bogus} Membership: [name, group]  {member, non-member} Resource location: [group]  members [individual]  contact site [individual]  ordered list of inbox sites …

12 GrapevineCS-4513, D-Term 200712 Grapevine Server Contains both Registration and Message servers Independent of each other Communicate only by internet protocols Registration server Contains replicas of one or more Registries Can accept change request for any of its registries Propagates changes to other replicas of Registry Message server Accepts any message for delivery Stores inboxes for some individuals (Individuals typically have more than one inbox)

13 GrapevineCS-4513, D-Term 200713 Grapevine “User Package” Library code for Grapevine client programs E-mail clients Other kinds of distributed applications Handles all naming and addressing issues Clients never need to know name or address of any Grapevine server Servers optimized based on “User Package”

14 GrapevineCS-4513, D-Term 200714 Grapevine Operation User P.Q sends message to user X.Y User X.Y wants authenticated access to server E

15 GrapevineCS-4513, D-Term 200715 Message Delivery Find Message service Present [sender, password, recipients] to service Authenticates sender Validates recipients (Assume valid if recipient registry not available) Construct envelope (aka property list) Sender Name, Return-to, recipient list, postmark –Postmark = [server internet addr, server time stamp] Accept message-body Store envelope & message body in reliable storage Acknowledge receipt of message

16 GrapevineCS-4513, D-Term 200716 Message Delivery (continued) Transport system Recursively enumerate groups in destination list Find inbox server contact for each recipient Sort by server, transmit one copy to each server with list of recipient names Duplicate elimination done at receiving server –E.g., an individual a member of more than one group Queue if all servers down or inaccessible Receiving client polls all its inboxes –Downloads from each –Message deleted from inbox only after receipt is acknowledged

17 GrapevineCS-4513, D-Term 200717 Replication in Message Delivery Any server can accept a message for delivery Individuals typically have more than one inbox However, –Crashes can delay messages in transit.

18 GrapevineCS-4513, D-Term 200718 Registration Database gv registry Replicated in all registration servers Groups in gv Names of registries Members are RNames of registration servers holding replicas of the group registry I.e., reg is a Registry iff there is a group reg.gv Server holds a replica of reg iff its name is in reg.gv

19 GrapevineCS-4513, D-Term 200719 Registration Database (continued) gv.gv is a group in gv registry Its members are RNames of all registration servers Adding a registration server  adding a member to gv.gv Adding a new registry r  adding a new group entry r.gv to gv registry Members of r.gv are a subset of gv.gv

20 GrapevineCS-4513, D-Term 200720 Registration Database (continued) Used to locate resources –Service is a group in the database Members are RNames of servers –Servers are individuals in the database Contact site is internet address of server To find foo.bar 1.Contact local Grapevine server, ask for bar.gv 2.Enumerate members, contact one of them, and ask for foo.bar

21 GrapevineCS-4513, D-Term 200721 Finding the first Grapevine Server Ask another name service (e.g., DNS) for GrapevineRServer Returns a list of addresses List changes very infrequently or Broadcast to well-known socket on LAN Local Grapevine servers listen on socket Usually quicker

22 GrapevineCS-4513, D-Term 200722 Summary Names in Grapevine People Services Servers Anything else you want them to be Registry maps names to … Groups (i.e., a list of other names) Individuals (something with an address and/or other properties)

23 GrapevineCS-4513, D-Term 200723 Summary (continued) Highly replicated Registries exist in multiple servers Individuals have more than one mailbox Mail can be delivered to anywhere for any recipient Registry used to manage itself! Distributed System issues to be addressed Synchronizing and Ordering of Operations Fault-tolerance Consistency and Replication Security and Authentication

24 GrapevineCS-4513, D-Term 200724 Break Next Topic


Download ppt "GrapevineCS-4513, D-Term 20071 Introduction to the Grapevine Distributed System CS-4513 Distributed Computing Systems."

Similar presentations


Ads by Google