OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xdi message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Link contract initiation flows


Due to my schedule this week it took me right up until the deadline to fulfill my action item to do the XDI link contract initiation flows we agreed on last week's call. Although I will show these live on the call tomorrow (and Animesh will show his), I'm sending them here for anyone who is not able to make the call (and of course they will make their way onto the wiki and/or Kavi as soon as we boil them down).

I did the Alice->Acme flow first (since it's actually simpler) and then the Alice->Bob flow. Included for each is:
  1. A textual description of the use case.
  2. The text you can cut-and-paste into http://websequencediagrams.com to produce the sequence diagram.
  3. A copy of the diagram itself.

Alice->Acme

In this flow, Alice visits a web page at Acme for subscribing to an email newsletter. Alice clicks the Respect Connect button to share her selected email address from her personal cloud instead of manually filling out a form.

  1. Alice gets Acme web page.

  2. Alice clicks Respect Connect button containing Acme’s link contract request.

    1. {$from}@acme+email$do/$get/{$from}{}{<+email>}&

      (note that I used @acme in the above for readbility - it should actually be [@]!:uuid:x where x is the UUID]

  3. Alice goes to Connect service.

  4. Connect service requests Alice’s cloud name.

  5. Alice provides her cloud name.

  6. Connect service discovers Alice’s CSP endpoint.

  7. Connect service redirects Alice to her CSP endpoint.

  8. Alice’s CSP authenticates Alice.

  9. Alice’s CSP processes the link contract request from Acme.

  10. Alice’s CSP presents the confirmation to Alice.

  11. Alice confirms.

  12. Alice’s CSP sets the link contract to Alice’s XDI endpoint.

  13. Alice’s XDI endpoint sets the link contract to Acme’s XDI endpoint.

  14. Alice’s CSP redirects Alice to success page.

websequencediagrams.com Text

participant Alice

participant "Alice\nCSP" as AliceCSP

participant "Alice\nXDI Server" as AliceXDI

participant "Connect\nService" as Connect

participant "Discovery\nService" as Disco

participant "Acme\nXDI Server" as AcmeXDI

participant "Acme\nWebsite" as Acme



note left of "Alice": Alice has discovered Acme's web form

Alice->Acme: Get web form with Connect button

Acme-->Alice: Return web form

Alice->Alice: Click Connect button

Alice->Connect: Submit connect request

note right of Connect: Only if not logged in

Connect-->Alice: Return Connect form

Alice->Alice: Enter XDI address

Alice->Connect: Return Connect form

Connect->Disco: Discover Alice CSP endpoint

Disco->Connect: Return Alice CSP endpoint

Connect-->Alice: Redirect to CSP endpoint

Alice->AliceCSP: Submit connect request

note right of AliceCSP: Only if not logged in

AliceCSP-->Alice: AuthN challenge

Alice->AliceCSP: AuthN response

AliceCSP->AliceXDI: Submit XDI request

AliceXDI->AliceXDI: Process XDI request (run rules)

AliceXDI-->AliceCSP: Return XDI response

AliceCSP->AliceCSP: Process XDI response (generate form)

AliceCSP-->Alice: Return confirmation form

Alice->Alice: Select data & confirm link contract

Alice->AliceCSP: Submit confirmation form

AliceCSP->AliceXDI: $set Acme link contract

AliceXDI->Disco: Discover Acme XDI endpoint

Disco-->AliceXDI: Return Acme XDI endpoint

AliceXDI->AcmeXDI: $set Acme link contract

AcmeXDI-->AliceXDI: OK

AliceXDI-->AliceCSP: OK

AliceCSP-->Alice: Redirect to success page

Alice->Acme: Get success page

Acme-->Alice: Return success page


Diagram


Inline image 1


******************************

Alice->Bob

In this flow, Alice visits Bob’s cloud page to view his profile. Alice clicks the Respect Connect button to establish a personal connection with Bob.

  1. Alice gets Bob’s cloud page.

  2. Alice clicks Respect Connect button containing Bob’s link contract request.

    1. {$from}=bob=$do/$get/{$from}{}

  3. Alice goes to Connect service.

  4. Connect service requests Alice’s cloud name.

  5. Alice provides her cloud name.

  6. Connect service discovers Alice’s CSP endpoint.

  7. Connect service redirects Alice to her CSP endpoint.

  8. Alice’s CSP authenticates Alice.

  9. Alice’s CSP processes the link contract request from Bob.

  10. Alice’s CSP presents the confirmation to Alice and asks what contact card(s) she wants to share with Bob.

  11. Alice confirms.

  12. Alice’s CSP sets the link contract to Alice’s XDI endpoint.

  13. Alice’s XDI endpoint sets the link contract to Bob’s XDI endpoint.

  14. Bob’s XDI endpoint acks.

  15. Alice’s XDI endpoint acks.

  16. Alice’s CSP redirects Alice to Bob’s cloud page (which now says Connected).

  17. Asynchronously, Bob’s CSP notifies Bob of the new contact and asks what contact card(s) he wants to share with Alice.

  18. Bob confirms.

  19. Bob’s CSP sets the link contract to Bob’s XDI endpoint.

  20. Bob’s XDI endpoint discover’s Alice’s XDI endpoint.

  21. Bob’s XDI endpoint sets the link contract to Alice’s XDI endpoint.

  22. Bob’s CSP tells Bob the connection is complete.

websequencediagrams.com Text

participant Alice

participant "Alice\nCSP" as AliceCSP

participant "Alice\nXDI Server" as AliceXDI

participant "Connect\nService" as Connect

participant "Discovery\nService" as Disco

participant "Bob\nXDI Server" as BobXDI

participant "Bob\nCSP" as BobCSP

participant Bob


note left of "Alice": Alice has discovered Bob's cloud page

Alice->BobCSP: Get cloud page with Connect button

BobCSP-->Alice: Return cloud page

Alice->Alice: Click Connect button

Alice->Connect: Submit connect request

note right of Connect: Only if not logged in

Connect-->Alice: Return Connect form

Alice->Alice: Enter XDI address

Alice->Connect: Return Connect form

Connect->Disco: Discover Alice CSP endpoint

Disco->Connect: Return Alice CSP endpoint

Connect-->Alice: Redirect to CSP endpoint

Alice->AliceCSP: Submit connect request

note right of AliceCSP: Only if not logged in

AliceCSP-->Alice: AuthN challenge

Alice->AliceCSP: AuthN response

AliceCSP->AliceXDI: Submit XDI request

AliceXDI->AliceXDI: Process XDI request (run rules)

AliceXDI-->AliceCSP: Return XDI response

AliceCSP->AliceCSP: Process XDI response (generate form)

AliceCSP-->Alice: Return confirmation form

Alice->Alice: Select contact card(s)

Alice->AliceCSP: Submit confirmation form

AliceCSP->AliceXDI: $set Acme link contract

AliceXDI->Disco: Discover Acme XDI endpoint

Disco-->AliceXDI: Return Acme XDI endpoint

AliceXDI->BobXDI: $set Acme link contract

BobXDI-->AliceXDI: Success

AliceXDI-->AliceCSP: Success

AliceCSP-->Alice: Redirect to connected cloud page

Alice->BobCSP: Get connected cloud page

BobCSP-->Alice: Return connected cloud page

note right of BobCSP: Asynchronous

BobCSP->Bob: You have new connection with Alice; select contact card(s)

Bob-->BobCSP: Submit selection

BobCSP->BobXDI: $set link contract

BobXDI->Disco: Discover Alice CSP endpoint

Disco-->BobXDI: Return Alice CSP endpoint

BobXDI->AliceXDI: $set link contract

AliceXDI-->BobXDI: OK

BobXDI-->BobCSP: OK

BobCSP-->Bob: OK

Diagram

Inline image 2




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]