When creating a new UseCase, choose the XdiUseCases/UseCaseTemplate to create the new page
If you need more help, see the /HowTo
- See also the section below describing use case levels.
For an excellent example, see SAML Use Cases and Requirements (PDF)
You can also see a UseCaseMatrix, which now shows the candidates proposed for publication in the OASIS XDI Use Cases and Requirements document.
Unofficial notes on a UseCaseDocumentDeliverable are also available.
XDI Use Cases
Kite Level (Business interactions)
/DatabaseQuery - How will database query's work under XDI (AjayMadhok)
- Current languages are inadequate
- We need the ability to query link information, not just attributes
- CWM::RDF as XSLT::XML
see http://www.w3.org/2002/Talks/0508-swad/slide5-0.html and
/BusinessLogic - applications to /LinkContract (AjayMadhok)
- access control
- authorization
- synchronization
- change control
- Roles - data sharing / authorization (attributes of member identities)
- Static vs. dynamic
- "Virtual" groups (non-enumerated) (is this the same as direct vs indirect membership?)
- Ability to publish and subscribe as groups
/DictionaryAndOntologySharing (BillBarnhill, PeterDavis)
- Define and share a dictionary among a community of users / applications
- Negotiation / transformation of ontologies as you cross domain boundaries
- Interactions that enable evolution of dictionaries or ontologies
- Of particular interest is the implied similarity of the following two ontologies:
- xri:@example/+location
- xri:@example/(+location)
Related Standards - use cases with synergy to other standards (DaveMcAlpin)
- Liberty
- XACML
- SAML
- Shared sign-on
- user authentication and profile sharing (Liberty, SAML 2.0)
- specific example: cross-wiki user authentication
- GRID networking
- also P2P systemes like Freenet
Investigate XRI/XDI role in directory and discovery services - (DaveMcAlpin, PeterDavis)
- e.g UDDI
/ExternalContractReference - building link contracts by referencing 3rd party-provided contracts - (MarcLeMaitre)
/SocialSoftware (suggested uplift and rename of Sea level Use Case SocialNetworks)
Sea Level (system interactions/architecture)
/SocialNetworks - extending FOAF with XDI (BillBarnhill, FenLabalme)
/ReputationManagement - accumulation and querying of an identity's reputation WRT a community or social norm (FenLabalme)
/ReputationCapitalExchange - interpreting reputation metrics across communities (FenLabalme)
/ProfileSharing - use of a /LinkContract and Query Data (a type of /DatabaseQuery?) to enable fine-grained control over identity profile data (FenLabalme, VictorGrey)
/PlatformTrustAttestations & LinkContract - (GeoffreyStrongin)
/EmailListSubscriptions, e.g., Automated email list subscriptions/unsubscriptions/change of addresses - (DrummondReed)
Fish Level (specific examples)
(Use this as a holding tank if you think of a specific use case you want to make sure is covered but doesn't fit in one of the buckets above.)
The following fish level use cases were submitted by MarcLeMaitre
- Registration and Deregistration - This is a set of use cases describing how an IA (SP) registers and deregisters XRIs for a DA (SC).
/RegisteringAnXri - This use case describes how a DA (SC) obtains a non-reassignable XRI from an IA (SP)
/UnilateralRegistrationOfXri - This use case describes how an IA (SP) registers a non-reassignable or re-assignable XRI for a DA
/ReassigningRegisteredXri - This use case describes how an IA (SP) handles a request from a DA for the registration of a reassignable identifier that is currently registered to another DA.
/EnameRegistration - Creating an i-name with an XSP. Involves interaction with a Broker to attach an i-name to an XRI that will be stored at the Registry and point to the DataBroker.
/UnilaterallyReassigningRegisteredXri - This use case describes how an IA (SP) reregisters a reassignable XRI for one DA that is currently registered to another DA
/DeregisteringAnXri - This use case describes how an IA (SP) deregisters a reassignable or non-reassignable XRI that has been assigned to a DA (SC)
- Discovery and Resolution - This is a set of use cases describing how one DA discovers the XRI registered by another DA and then resolves the XRI to registration data
/DiscoveringDataAuthorityXri - This use case describes how a DA (SC) queries an IA (SP) to establish the XRI registered by another DA.
/ResolvingDataAuthorityXri - This use case describes how a Data Authority resolves, to registration data, the XRI associated with another Data Authority
- Data Sharing - This is a set of use cases describing how a Data Authority shares data with another Data Authority
- Control Data - This is a set of use cases describing control data and how it is shared between Data Authorities with respect to the linking, synchronization, establishment, reference and/or negotiate of security and privacy permissions, policies and terms.
Use Case Levels
"The core use cases are at "sea-level". Sea-level use cases typically represent a discrete interaction between a primary actor and the system. Such use cases will deliver something of value to the primary actor and usually take from a couple of minutes to half an hour for the primary actor to complete. Use cases that are there only because they are included in sea-level uses cases are fish-level. Higher kite-level use cases show how the sea-level use cases fit into wider business interactions. Kite-level use cases are usually business use cases, whereas sea and fish leveles are system use cases." [Fowler, Martin, UML Distilled : a brief guide to the standard object modeling language, Third Edition, Addison-Wesley 2004. pp 103-104]
General Notes
(Notes below are from conference calls about use cases. They are here to help us parse out appropriate use cases and requirements and put them into the buckets above.)
MarcLeMaitre proposed some buckets that are a good starting point, including:
- XRI Registration / De-registration
- Business Logic
- Discovery / Resolution of XDI Resources
- Data Sharing
- Data Control
Additional use case brainstorming:
- Data response / request synchronization (sea - level)
- Negotiation of a link contract
- Group formation (3/10 - added to Kite level above)
- Roles - data sharing / authorization (attributes of member identities)
- Static vs. dynamic
- "Virtual" groups (non-enumerated) (is this the same as direct vs indirect membership?)
- Ability to publish and subscribe as groups
Exchange of platform characteristics (3/10 - now /PlatformTrustAttestations in Sea Level above)
- Negotiation / transformation of ontologies as you cross domain boundaries (3/10 - assigned to Kite bucket above)
- Define and share a dictionary among a community of users / applications)
- Interactions that enable an evolution of dictionaries or ontologies
- Registry Interactions (XRI's used to ID data being exchanged) (3/10 - assigned to Sea level above)
- Using XDI in Liberty, WS-Resource, etc... (composability of XDI) (3/10 - assigned to Kite level above)
- SSO and Federation use case (SAML 2.0?) (e.g. Using XDI as a credential transport) (ditto)
- Pseudonymity and data exchange.
- Ability to request a particular version of data
