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 "Context Provider"

(Relationship between Context Providers, Context Factories, and Contexts)
 
(29 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==Summary==
+
{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}
A [[Context Provider]] adds support for one or more kinds of [[Context|Contexts]] to the Higgins framework. These [[Context|Contexts]] contain [[Digital Subject|Digital Subjects]] that hold [[Identity Attributes]]. A context provider is responsible for its internal data management, security, encryption, persistence, etc. A Context  provides the uni- or bi-directional transformation of data from its internal structures to the normalized IdAS data model. In many cases [[Context Provider|Context Providers]] act as adapters or "wrappers" of existing services such as communications systems, collaboration systems, social networks, identity providers, games, enterprise apps, and so on that it exposes as one or more [[Context|Contexts]]. In addition to web services, [[Context Provider|Context Providers]] can also adapt client-side applications such as email clients, IM and other messaging and collaboration apps.. We plan to develop approximately 3-5 [[Context Provider|Context Providers]]. We expect that third parties may also choose to contribute [[Context Provider]] implementations to the project.
+
==Overview==
 +
A [[Context Provider]] adds support for one or more kinds of Contexts to the [[Identity Attribute Service]] framework. These Contexts contain Nodes/Entities that hold attributes. A context provider is responsible for its internal data management, security, encryption, persistence, etc. The provider provides the uni- or bi-directional transformation of data from its internal structures to the normalized IdAS data model. In many cases these Context Providers act as adapters or "wrappers" of existing services such as communications systems, collaboration systems, social networks, identity providers, games, enterprise apps, and so on. In addition to web services, [[Context Provider]]s can also adapt client-side applications such as email clients, IM and other messaging and collaboration apps.
  
See also: [[IdAS Context Provider Registry]], [[Identity Attribute Service (IdAS)]]
+
Here is [[Components#IdAS_Context_Provider|a list]] of existing Higgins [[Context Provider]]s.
  
 
==Relationship between Context Providers, Context Factories, and Contexts==
 
==Relationship between Context Providers, Context Factories, and Contexts==
* Multiple Context Factories may be [[registered]] with a single [[Identity Attribute Service (IdAS)|IdAS]]
+
* Multiple Context Factories may be registered with a single [[Identity Attribute Service (IdAS)|IdAS]]
 
* A Context Provider is a packaging/deployment wrapper around one or more Context Factories, which in turn produce Context instances and the data they hold
 
* A Context Provider is a packaging/deployment wrapper around one or more Context Factories, which in turn produce Context instances and the data they hold
 
* A Context Factory may provide access to multiple Contexts
 
* A Context Factory may provide access to multiple Contexts
Line 12: Line 13:
  
 
==Responsibilities of a ContextFactory==
 
==Responsibilities of a ContextFactory==
# createContext(URI) - create a [[Context]] object for a given reference
+
# createContext(URI) - create a Context object for a given reference
 
# getContexts(String filter) - return the set of Context References (URIs) that are currently open and are managed by this provider [this method is under review]
 
# getContexts(String filter) - return the set of Context References (URIs) that are currently open and are managed by this provider [this method is under review]
# getPolicy() - returns the policy in effect for this Context Provider. This policy must include a list of the required and optional [[Claims]] required to open any (is the word "any" correct here?) context managed by this provider
+
# getPolicy() - returns the policy in effect for this Context Provider. This policy must include a list of the required and optional Claims required to open any (is the word "any" correct here?) context managed by this provider
  
 
==Responsibilities of an IContext implementation==
 
==Responsibilities of an IContext implementation==
# Maintain the set of [[Digital Subject|Digital Subjects]] that exist in this context and conform to its schema.
+
# Maintain the set of objects that exist in this context and conform to its schema.
#* The underlying bits that represent the Digital Subjects might be in an LDAP directory, a text file, or an IM chat client The Context Provider's IContext implementation is responsible for translation and mapping from the underlying representation to the abstract IdAS data model of Digital Subjects, Attributes, etc.
+
#* The underlying bits that represent the objects might be in an LDAP directory, a text file, or an IM chat client The Context Provider's IContext implementation is responsible for translation and mapping from the underlying representation to the [[Context Data Model]].
 
#* The Context Provider certainly needs to know what the storage technology is and how to use it. It could also source data from many different formats, presenting the results as a unified Context with a specific schema.
 
#* The Context Provider certainly needs to know what the storage technology is and how to use it. It could also source data from many different formats, presenting the results as a unified Context with a specific schema.
 
#* But the Context Provider also represents a specific vendor's (or author's) code to implement that transformation. So it's possible to have a Novell-LDAP provider and an IBM-LDAP provider.
 
#* But the Context Provider also represents a specific vendor's (or author's) code to implement that transformation. So it's possible to have a Novell-LDAP provider and an IBM-LDAP provider.
# Support addition, deletion, and navigation of contained [[Digital Subject|Digital Subjects]] as allowed by the context's policy
+
# Support addition, deletion, and navigation of contained objects as allowed by the context's policy
# Support update and deletion of attributes of contained [[Digital Subject|Digital Subjects]] as allowed by the context's policy
+
# Support update and deletion of attributes of contained objects as allowed by the context's policy
 
# Provide the ability to export and import the contents of a context to an RDF data stream
 
# Provide the ability to export and import the contents of a context to an RDF data stream
# Act as a container of references to sub-[[Context|Contexts]]
+
# Act as a container of references to sub-Contexts
# Maintain (and return on request) the policies related to various kinds of access to [[Digital Subject|Digital Subjects]]
+
# Maintain (and return on request) the policies related to various kinds of access to objects
# Provide access to the schema which governs the form of [[Digital Subject|Digital Subjects]] in this context.
+
# Provide access to the schema which governs the form of objects in this context
 
# Open the context for a particular Digital Identity as allowed by the context's policy.
 
# Open the context for a particular Digital Identity as allowed by the context's policy.
 
# Close context, preventing further access via this object.
 
# Close context, preventing further access via this object.
  
 
Optional IContext implementation responsibilities
 
Optional IContext implementation responsibilities
# Authentication to add a new [[Digital Subject]] to the context
+
# Authentication to add a new object to the context
# Authorization of access to [[Digital Subject]] profile data using role-based access control lists
+
# Authorization of access to object attributes using role-based access control lists
# Support for finding [[Digital Subject|Digital Subjects]] by query
+
# Support for finding objects by query
# Ability to associate [[Digital Subject|Digital Subjects]] to other [[Digital Subject|Digital Subjects]] within the same context
+
# Ability to associate objects to other objects within the same context
# Support for adding tag properties to [[Digital Subject|Digital Subjects]] and on the associations between [[Digital Subject|Digital Subjects]]
+
# Support for adding tag properties to objects and on the associations between objects
 
# Replication/distribution/synchronization of context data with external systems (and directly or indirectly, other Higgins frameworks)
 
# Replication/distribution/synchronization of context data with external systems (and directly or indirectly, other Higgins frameworks)
 
# Persistence and encryption of context data
 
# Persistence and encryption of context data
Line 41: Line 42:
  
 
==Current Java Impl==
 
==Current Java Impl==
In the Java reference implementation a [[Context Provider]] implements the IContextFactory and IContext interfaces. Implementations of this interface and the associated IContextProvider interface are usually packaged as an Eclipse plug-in (or more properly an OSGI bundle). See also: [[IdAS Context Provider Registry]]
+
In the Java reference implementation a [[Context Provider]] implements the IContextFactory and IContext interfaces. Implementations of this interface and the associated IContextProvider interface are usually packaged as an Eclipse plug-in (or more properly an OSGI bundle). See also: [[IdAS Registry]]
 +
 
 +
==See Also==
 +
* [[IdAS Registry]]
 +
* [[Identity Attribute Service]]
 +
 
 +
[[Category:Higgins Components]]

Latest revision as of 08:29, 15 December 2008

{{#eclipseproject:technology.higgins|eclipse_custom_style.css}}

Overview

A Context Provider adds support for one or more kinds of Contexts to the Identity Attribute Service framework. These Contexts contain Nodes/Entities that hold attributes. A context provider is responsible for its internal data management, security, encryption, persistence, etc. The provider provides the uni- or bi-directional transformation of data from its internal structures to the normalized IdAS data model. In many cases these Context Providers act as adapters or "wrappers" of existing services such as communications systems, collaboration systems, social networks, identity providers, games, enterprise apps, and so on. In addition to web services, Context Providers can also adapt client-side applications such as email clients, IM and other messaging and collaboration apps.

Here is a list of existing Higgins Context Providers.

Relationship between Context Providers, Context Factories, and Contexts

  • Multiple Context Factories may be registered with a single IdAS
  • A Context Provider is a packaging/deployment wrapper around one or more Context Factories, which in turn produce Context instances and the data they hold
  • A Context Factory may provide access to multiple Contexts
  • Multiple Context Providers (using their associated Context Factories) may provide access to the same Context.
    • An example of this might be using different LDAP engines to access the same underlying data store

Responsibilities of a ContextFactory

  1. createContext(URI) - create a Context object for a given reference
  2. getContexts(String filter) - return the set of Context References (URIs) that are currently open and are managed by this provider [this method is under review]
  3. getPolicy() - returns the policy in effect for this Context Provider. This policy must include a list of the required and optional Claims required to open any (is the word "any" correct here?) context managed by this provider

Responsibilities of an IContext implementation

  1. Maintain the set of objects that exist in this context and conform to its schema.
    • The underlying bits that represent the objects might be in an LDAP directory, a text file, or an IM chat client The Context Provider's IContext implementation is responsible for translation and mapping from the underlying representation to the Context Data Model.
    • The Context Provider certainly needs to know what the storage technology is and how to use it. It could also source data from many different formats, presenting the results as a unified Context with a specific schema.
    • But the Context Provider also represents a specific vendor's (or author's) code to implement that transformation. So it's possible to have a Novell-LDAP provider and an IBM-LDAP provider.
  2. Support addition, deletion, and navigation of contained objects as allowed by the context's policy
  3. Support update and deletion of attributes of contained objects as allowed by the context's policy
  4. Provide the ability to export and import the contents of a context to an RDF data stream
  5. Act as a container of references to sub-Contexts
  6. Maintain (and return on request) the policies related to various kinds of access to objects
  7. Provide access to the schema which governs the form of objects in this context
  8. Open the context for a particular Digital Identity as allowed by the context's policy.
  9. Close context, preventing further access via this object.

Optional IContext implementation responsibilities

  1. Authentication to add a new object to the context
  2. Authorization of access to object attributes using role-based access control lists
  3. Support for finding objects by query
  4. Ability to associate objects to other objects within the same context
  5. Support for adding tag properties to objects and on the associations between objects
  6. Replication/distribution/synchronization of context data with external systems (and directly or indirectly, other Higgins frameworks)
  7. Persistence and encryption of context data
  8. Reputation computation

Current Java Impl

In the Java reference implementation a Context Provider implements the IContextFactory and IContext interfaces. Implementations of this interface and the associated IContextProvider interface are usually packaged as an Eclipse plug-in (or more properly an OSGI bundle). See also: IdAS Registry

See Also

Back to the top