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"

(added references and a URI example)
 
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
A Higgins XRDS Service Endpoint is a kind of service endpoint (SEP) in an XRDS document. XRDS documents and SEP construction and selection is 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).
+
{{#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]]
  
Higgins SEPs are therefore a key enabling building block for the [[Higgins Dataweb]]: They act as discoverable "pointers" into contexts containing slices of your identity.
+
== 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 [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 [[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 10: 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 [[Higgins OWL]] 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 18: Line 22:
 
=== Facebook account ===
 
=== Facebook account ===
  
Example 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 42: Line 46:
 
=== LDAP directory ===
 
=== LDAP directory ===
  
Example 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 this XRDS document may contain multiple SEPs for '''@Parity''' – 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 57: 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 78: 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>
 
    
 
    
Line 104: Line 110:
 
* [[Context Discovery]] describes the process of resolving a [[ContextId]] to instantiate a [[Context]].
 
* [[Context Discovery]] describes the process of resolving a [[ContextId]] to instantiate a [[Context]].
 
* [[Context Discovery Components]] describes in more detail the Higgins components involved in [[Context Discovery]].
 
* [[Context Discovery Components]] describes in more detail the Higgins components involved in [[Context Discovery]].
 +
 +
== Links ==
 +
* [http://eclipse.org/higgins Higgins Home]

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