Difference between revisions of "Data Sharing With Alice And Bob"
(→Share Alice's (Alice and Bob) with Bob) |
(→Introduction) |
||
(49 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}} | {{#eclipseproject:technology.higgins|eclipse_custom_style.css}} | ||
+ | |||
+ | === Introduction === | ||
This document describes a use case wherein Alice offers to enter into a data sharing relationship with Bob. | This document describes a use case wherein Alice offers to enter into a data sharing relationship with Bob. | ||
− | A cursory knowledge of the concept of a [[ | + | A cursory knowledge of the concept of a [[Attribute Data Service 2.0]] and of the [[Persona Data Model 2.0]] (PDM 2.0) is assumed. Although not mentioned explicitly the graph of objects being shared are described in the PDM 2.0 model. |
− | + | === Overview === | |
− | + | Alice wishes to grant access to one of her contexts to her friend Bob. In accepting this invite, Bob will grant access to Alice to an equivalent context owned by Bob. | |
− | + | ||
− | Alice wishes to | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
=== Initial Condition === | === Initial Condition === | ||
− | + | Alice has: | |
− | * | + | * An account on a Higgins-based ADS |
− | + | * A Higgins-based PDS | |
− | + | * A share-able context, call it context-A1 | |
− | + | * A sharing_inbox contex, which is read/writeable by Alice, and appendable by all. | |
− | + | * Bob's email address | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | A | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Bob has: | |
− | + | ||
− | + | ||
− | + | ||
− | + | * No ADS account | |
+ | * No PDS | ||
+ | * An email address | ||
− | + | === Alice Initiates Sharing === | |
− | + | * Alice opens her sharable context in her PDS, call it context-A1. | |
+ | * Alice clicks the "share via email" button, and enter's Bob's email address. | ||
+ | * The PDS system does the following: | ||
+ | ** Generates a GUID for this invitation, call it GUID-1 | ||
+ | ** Makes the following entries in the sharing_inbox context: | ||
+ | *** GUID-1, invited_to, context-A1 | ||
+ | *** GUID-1, invited_timestamp, {timestamp} | ||
+ | *** GUID-1, invited_method, email | ||
+ | *** GUID-1, identified_by, bob@bob.com | ||
+ | ** Sends an email message to Bob that contains an invitation message, and a link back to the PDS that embeds these pieces of data: | ||
+ | *** Alice's user ID | ||
+ | *** The URI to the context that Alice shared | ||
+ | *** The URI to the template for the context that Alice shared | ||
+ | *** The invitation GUID-1 | ||
+ | |||
+ | === Bob Clicks the Link === | ||
+ | * Bob retrieves the email message | ||
+ | * Bob clicks the link | ||
+ | * The link opens the PDS to a page that offers Login or Create Account, and saves the GUID-1 in a session variable. | ||
+ | * Bob creates an account. | ||
+ | * Bob sees some UI that asks if he want to accept sharing of Alice's context, and in turn, share his equivalent context. | ||
+ | * The PDS creates a context for Bob using the template URI from the link, call it Context-B1. | ||
+ | * The PDS grants read-access to Alice to Context-B1 (since it knows her root ID). | ||
+ | * Creates a pointer form Context-B1 to Context-A1. | ||
+ | * Bob's PDS creates a GUID-2 for the reciprocal invitation to Alice, and creates the following statements in Alice's sharing_inbox context: | ||
+ | ** GUID-1, accepted_by, bob | ||
+ | ** GUID-1, accepted_timestamp, {timestamp} | ||
+ | ** GUID-2, invited_to, Context-B1 | ||
+ | ** GUID-2, invited_timestamp, {timestamp} | ||
+ | ** GUID-2, invited_method, internal | ||
+ | ** GUID-2, identified_by, alice | ||
+ | * Bob's PDS creates the following statements in Bob's sharing_inbox context: | ||
+ | ** GUID-2, invited_to, Context-B1 | ||
+ | ** GUID-2, invited_timestamp, {timestamp} | ||
+ | ** GUID-2, invited_method, internal | ||
+ | ** GUID-2, identified_by, alice | ||
− | |||
− | === | + | === Alice finalizes the sharing === |
+ | Alice's PDS reads Alice's sharing_inbox and does the following: | ||
+ | * Creates an ACL entry in Context-A1 granting read-access to {bob's user ID} | ||
+ | * Creates a pointer from Context-A1 to Context-B1 | ||
+ | * Write the following entries into Bob's sharing_inbox context: | ||
+ | ** GUID-2, accepted_by, alice | ||
+ | ** GUID-2, accepted_timestamp, {timestamp} | ||
− | + | [[Category:Higgins 2]] |
Latest revision as of 21:09, 15 May 2011
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
Contents
Introduction
This document describes a use case wherein Alice offers to enter into a data sharing relationship with Bob.
A cursory knowledge of the concept of a Attribute Data Service 2.0 and of the Persona Data Model 2.0 (PDM 2.0) is assumed. Although not mentioned explicitly the graph of objects being shared are described in the PDM 2.0 model.
Overview
Alice wishes to grant access to one of her contexts to her friend Bob. In accepting this invite, Bob will grant access to Alice to an equivalent context owned by Bob.
Initial Condition
Alice has:
- An account on a Higgins-based ADS
- A Higgins-based PDS
- A share-able context, call it context-A1
- A sharing_inbox contex, which is read/writeable by Alice, and appendable by all.
- Bob's email address
Bob has:
- No ADS account
- No PDS
- An email address
Alice Initiates Sharing
- Alice opens her sharable context in her PDS, call it context-A1.
- Alice clicks the "share via email" button, and enter's Bob's email address.
- The PDS system does the following:
- Generates a GUID for this invitation, call it GUID-1
- Makes the following entries in the sharing_inbox context:
- GUID-1, invited_to, context-A1
- GUID-1, invited_timestamp, {timestamp}
- GUID-1, invited_method, email
- GUID-1, identified_by, bob@bob.com
- Sends an email message to Bob that contains an invitation message, and a link back to the PDS that embeds these pieces of data:
- Alice's user ID
- The URI to the context that Alice shared
- The URI to the template for the context that Alice shared
- The invitation GUID-1
Bob Clicks the Link
- Bob retrieves the email message
- Bob clicks the link
- The link opens the PDS to a page that offers Login or Create Account, and saves the GUID-1 in a session variable.
- Bob creates an account.
- Bob sees some UI that asks if he want to accept sharing of Alice's context, and in turn, share his equivalent context.
- The PDS creates a context for Bob using the template URI from the link, call it Context-B1.
- The PDS grants read-access to Alice to Context-B1 (since it knows her root ID).
- Creates a pointer form Context-B1 to Context-A1.
- Bob's PDS creates a GUID-2 for the reciprocal invitation to Alice, and creates the following statements in Alice's sharing_inbox context:
- GUID-1, accepted_by, bob
- GUID-1, accepted_timestamp, {timestamp}
- GUID-2, invited_to, Context-B1
- GUID-2, invited_timestamp, {timestamp}
- GUID-2, invited_method, internal
- GUID-2, identified_by, alice
- Bob's PDS creates the following statements in Bob's sharing_inbox context:
- GUID-2, invited_to, Context-B1
- GUID-2, invited_timestamp, {timestamp}
- GUID-2, invited_method, internal
- GUID-2, identified_by, alice
Alice finalizes the sharing
Alice's PDS reads Alice's sharing_inbox and does the following:
- Creates an ACL entry in Context-A1 granting read-access to {bob's user ID}
- Creates a pointer from Context-A1 to Context-B1
- Write the following entries into Bob's sharing_inbox context:
- GUID-2, accepted_by, alice
- GUID-2, accepted_timestamp, {timestamp}