Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Higgins XRDS Service Endpoint"

(See Also)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{#eclipseproject:technology.higgins}}
 
This page describes the XRDS convention Higgins uses to discover metadata about a [[ContextId]] necessary to resolve and access its [[Context]]. The mechanism itself is described in [[Context Discovery]]
 
This page describes the XRDS convention Higgins uses to discover metadata about a [[ContextId]] necessary to resolve and access its [[Context]]. The mechanism itself is described in [[Context Discovery]]
  
Line 4: Line 5:
 
A [[Higgins XRDS Service Endpoint]] is a Higgins convention on the use of service endpoints (SEPs) in an XRDS document. XRDS documents and SEP construction and selection are fully defined in [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0]. A Higgins SEP is obtained either from a ContextURI (using standard "Yadis" discovery, defined in Section 6 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0]) or from a ContextXRI (using standard XRI resolution), and contains all information needed to instantiate a Higgins [[Context]] (i.e. a datastore containing identity information such as an LDAP directory or a Facebook account).
 
A [[Higgins XRDS Service Endpoint]] is a Higgins convention on the use of service endpoints (SEPs) in an XRDS document. XRDS documents and SEP construction and selection are fully defined in [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0]. A Higgins SEP is obtained either from a ContextURI (using standard "Yadis" discovery, defined in Section 6 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0]) or from a ContextXRI (using standard XRI resolution), and contains all information needed to instantiate a Higgins [[Context]] (i.e. a datastore containing identity information such as an LDAP directory or a Facebook account).
  
Higgins SEPs are therefore a key enabling building block for the [[Higgins Global Graph]]: They act as discoverable "pointers" into contexts containing slices of your identity.
+
Higgins SEPs are therefore a key enabling building block for the [[Context Data Model]] and specifically the [[Higgins Global Graph]]: They act as discoverable "pointers" into contexts containing slices of your identity.
  
 
''Note: see also [[Higgins XDI Context Reference]] – these contain identical data/metadata as in a Higgins XRDS Service Endpoint, but in XDI format.''
 
''Note: see also [[Higgins XDI Context Reference]] – these contain identical data/metadata as in a Higgins XRDS Service Endpoint, but in XDI format.''
Line 13: Line 14:
  
 
* One or more [[Context Types]]: This is a string that identifies the underlying technology of the [[Context]]. Based on this string, a suitable [[Context Provider]] is selected to instantiate the context.
 
* One or more [[Context Types]]: This is a string that identifies the underlying technology of the [[Context]]. Based on this string, a suitable [[Context Provider]] is selected to instantiate the context.
* The schema of the context: This is a URL pointing to a [[HOWL]] file describing the context's schema (i.e. the kind of subjects and attributes in the context). For example, a context may contain "people" who have "names", "e-mail addresses" and "friends". This schema is based on the [[Higgins Data Model]]
+
* (Optional) The schema of the context: This is a URL pointing to a [[HOWL]] file describing the context's schema (i.e. the kind of subjects and attributes in the context). For example, a context may contain "people" who have "names", "e-mail addresses" and "friends". This schema is based on the [[Higgins Data Model]]. It is optional, because for privacy reasons it may not always be desirable to publicly advertise the schema without first authenticating to the context.
 
* (Optional) Context authentication type: The type of authentication materials needed to open the context (e.g. a password).
 
* (Optional) Context authentication type: The type of authentication materials needed to open the context (e.g. a password).
 
* (Optional) Context configuration: Arbitrary information required to instantiate the Higgins [[Context]] (e.g. the address of a server to connect to).
 
* (Optional) Context configuration: Arbitrary information required to instantiate the Higgins [[Context]] (e.g. the address of a server to connect to).
Line 21: Line 22:
 
=== Facebook account ===
 
=== Facebook account ===
  
Consider a Higgins [[Relation]] pointing to a facebook account: '''@higgins*contexts/$context@facebook//2345673826'''
+
Consider a Higgins [[Node Relation]] pointing to a facebook account: '''@higgins*contexts/$context@facebook//2345673826'''
  
 
* '''@higgins*contexts/$context@facebook''' is the [[ContextId]] XRI that resolves to the SEP below.
 
* '''@higgins*contexts/$context@facebook''' is the [[ContextId]] XRI that resolves to the SEP below.
* '''2345673826''' is the [[SubjectId]], i.e. the unique identifier in the context that can be instantiated using the metadata in the SEP below.
+
* '''2345673826''' is the relative [[NodeId]], i.e. the unique identifier in the context that can be instantiated using the metadata in the SEP below.
  
 
   <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
   <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
Line 47: Line 48:
 
Consider a Higgins [[Relation]] pointing to a user in an LDAP directory. In this example, the relation can be expressed as both an XRI or a URI:
 
Consider a Higgins [[Relation]] pointing to a user in an LDAP directory. In this example, the relation can be expressed as both an XRI or a URI:
  
# XRI: '''@parity/$context$ldap//msabadello'''
+
# XRI: '''@parity*contexts/$context$ldap//msabadello'''
 
# URI: '''http://ldap.parityinc.inc#msabadello'''
 
# URI: '''http://ldap.parityinc.inc#msabadello'''
  
 
In this XRI:
 
In this XRI:
* '''@parity/$context$ldap''' is the [[ContextId]] that resolves to the SEP below within the XRDS document. Note that the '''@parity''' XRDS document may contain multiple SEPs – it is the XRI path '''$context$ldap''' that is used to select the SEP below (see the Service Endpoint Selection rules in section 13 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0].
+
* '''@parity*contexts/$context$ldap''' is the [[ContextId]] that resolves to the SEP below within the XRDS document. Note that the '''@parity*contexts''' XRDS document may contain multiple SEPs – it is the XRI path '''$context$ldap''' that is used to select the SEP below (see the Service Endpoint Selection rules in section 13 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0].
 
* '''msabadello''' is the [[SubjectId]], i.e. the unique identifier in the context.
 
* '''msabadello''' is the [[SubjectId]], i.e. the unique identifier in the context.
  
Line 60: Line 61:
 
   <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
   <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
    
 
    
   <Path select="true">$context$ldap</Type>
+
   <Path select="true">$context$ldap</Path>
 
    
 
    
 
   <Type select="true">$context$ldap</Type>
 
   <Type select="true">$context$ldap</Type>
Line 81: Line 82:
 
    
 
    
 
   </hconf:Configuration>
 
   </hconf:Configuration>
 +
 
 +
  </Service>
  
 
=== XDI endpoint ===
 
=== XDI endpoint ===
  
Example Higgins [[Relation]] pointing to a subject at an XDI endpoint: '''@parity/$context$xdi//=markus'''
+
Example Higgins [[Relation]] pointing to a subject at an XDI endpoint: '''@parity*contexts/$context$xdi+ldap//=markus'''
  
 
* '''=markus''' is the [[SubjectId]], i.e. the unique identifier in the context.
 
* '''=markus''' is the [[SubjectId]], i.e. the unique identifier in the context.
* '''@parity/$context$xdi''' is the [[ContextId]], it resolves to the following SEP:
+
* '''@parity*contexts/$context$xdi+ldap''' is the [[ContextId]], it resolves to the following SEP:
  
 
   <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
   <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
    
 
    
   <Path select="true">$context$xdi</Path>
+
   <Path select="true">$context$xdi+ldap</Path>
 
    
 
    
   <Type select="true">$context$xdi</Type>
+
   <Type select="true">$context$xdi+ldap</Type>
 
   <Type>$context</Type>
 
   <Type>$context</Type>
 
    
 
    

Latest revision as of 21:01, 27 April 2008

{{#eclipseproject:technology.higgins}} This page describes the XRDS convention Higgins uses to discover metadata about a ContextId necessary to resolve and access its Context. The mechanism itself is described in Context Discovery

Introduction

A Higgins XRDS Service Endpoint is a Higgins convention on the use of service endpoints (SEPs) in an XRDS document. XRDS documents and SEP construction and selection are fully defined in XRI Resolution 2.0. A Higgins SEP is obtained either from a ContextURI (using standard "Yadis" discovery, defined in Section 6 of XRI Resolution 2.0) or from a ContextXRI (using standard XRI resolution), and contains all information needed to instantiate a Higgins Context (i.e. a datastore containing identity information such as an LDAP directory or a Facebook account).

Higgins SEPs are therefore a key enabling building block for the Context Data Model and specifically the Higgins Global Graph: They act as discoverable "pointers" into contexts containing slices of your identity.

Note: see also Higgins XDI Context Reference – these contain identical data/metadata as in a Higgins XRDS Service Endpoint, but in XDI format.

Higgins XRDS Service Endpoint

The information in a Higgins XRDS Service Endpoint can be summarized as follows:

  • One or more Context Types: This is a string that identifies the underlying technology of the Context. Based on this string, a suitable Context Provider is selected to instantiate the context.
  • (Optional) The schema of the context: This is a URL pointing to a HOWL file describing the context's schema (i.e. the kind of subjects and attributes in the context). For example, a context may contain "people" who have "names", "e-mail addresses" and "friends". This schema is based on the Higgins Data Model. It is optional, because for privacy reasons it may not always be desirable to publicly advertise the schema without first authenticating to the context.
  • (Optional) Context authentication type: The type of authentication materials needed to open the context (e.g. a password).
  • (Optional) Context configuration: Arbitrary information required to instantiate the Higgins Context (e.g. the address of a server to connect to).

Examples

Facebook account

Consider a Higgins Node Relation pointing to a facebook account: @higgins*contexts/$context@facebook//2345673826

  • @higgins*contexts/$context@facebook is the ContextId XRI that resolves to the SEP below.
  • 2345673826 is the relative NodeId, i.e. the unique identifier in the context that can be instantiated using the metadata in the SEP below.
 <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
 	<Path select="true">$context@facebook</Path>
 
 	<Type select="true">$context@facebook</Type>
 	<Type>$context</Type>
 
 	<hconf:Schema>http://www.higgins-project.org/schemas/facebook.owl</hconf:Schema>
 
 	<hconf:Configuration>
 
 		<Setting Name="apikey" Type="xsd:string">FB8189237498</Setting>
 
 	</hconf:Configuration>
 
 </Service>

LDAP directory

Consider a Higgins Relation pointing to a user in an LDAP directory. In this example, the relation can be expressed as both an XRI or a URI:

  1. XRI: @parity*contexts/$context$ldap//msabadello
  2. URI: http://ldap.parityinc.inc#msabadello

In this XRI:

  • @parity*contexts/$context$ldap is the ContextId that resolves to the SEP below within the XRDS document. Note that the @parity*contexts XRDS document may contain multiple SEPs – it is the XRI path $context$ldap that is used to select the SEP below (see the Service Endpoint Selection rules in section 13 of XRI Resolution 2.0.
  • msabadello is the SubjectId, i.e. the unique identifier in the context.

In this URI:

  • http://ldap.parityinc.inc resolved directly to an XRDS document as defined in section 6 of XRI Resolution 2.0.
  • This XRDS document must contain only the SEP below (OR the consuming application must know to select this type of SEP).
 <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
 	<Path select="true">$context$ldap</Path>
 
 	<Type select="true">$context$ldap</Type>
 	<Type>$context</Type>
 
 	<hconf:Schema>http://www.parityinc.net/schemas/ldap.owl</hconf:Schema>
 
 	<hconf:Configuration>
 
 		<Setting Name="Connection" Type="htf:map">
 			<Setting Name="ConnectionType" Type="xsd:string">LDAP</Setting>
 			<Setting Name="AddressList" Type="htf:list">
 				<Setting Name="Address" Type="xsd:string">ldap://ldap.parityinc.net:389</Setting>
 			</Setting>
 			<Setting Name="jndiProvider" Type="xsd:string">com.sun.jndi.ldap.LdapCtxFactory</Setting>
 		</Setting>
 		<Setting Name="env" Type="htf:map">
 			<Setting Name="java.naming.security.authentication" Type="xsd:string">simple</Setting>
 		</Setting>
 
 	</hconf:Configuration>
 
 </Service>

XDI endpoint

Example Higgins Relation pointing to a subject at an XDI endpoint: @parity*contexts/$context$xdi+ldap//=markus

  • =markus is the SubjectId, i.e. the unique identifier in the context.
  • @parity*contexts/$context$xdi+ldap is the ContextId, it resolves to the following SEP:
 <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
 	<Path select="true">$context$xdi+ldap</Path>
 
 	<Type select="true">$context$xdi+ldap</Type>
 	<Type>$context</Type>
 
 	<hconf:Schema>http://www.parityinc.net/schemas/xdi-test.owl</hconf:Schema>
 
 	<URI>http://graceland.parityinc.net/xdi-endpoint/idas</URI>
 
 </Service>

See Also

Links

Back to the top