Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[corona-dev] FW: [higgins-dev] Unique Identification of AmalgamatedDigital Subjects

[cross-posting]

 

Would this have any value to the Container-Repository?

 


From: higgins-dev-bounces@xxxxxxxxxxx [mailto:higgins-dev-bounces@xxxxxxxxxxx] On Behalf Of Scott Lewis
Sent: Tuesday, July 25, 2006 2:44 PM
To: Higgins (Trust Framework) Project developer discussions
Subject: Re: [higgins-dev] Unique Identification of AmalgamatedDigital Subjects

 

Hi Paul/Higginsers,

Paul Trevithick wrote:

 
We have agreed that there is at least one "unified" namespace of identifiers
within a Context, namely, the CUID (contextually unique identifier
namespace) that we've been talking about here. There may, however, be other
identifier namespaces managed by a single Context as well. 
  


There might be a good cross-project coordination point here.

ECF has defined an extension point (org.eclipse.ecf.namespace) that allows providers to define their own Namespaces...delegating to them the responsibility for creating IDs (instances of interface org.eclipse.ecf.identity.ID).  In ECF, ID instances are then used to uniquely identify services (e.g. irc://slewis2@xxxxxxxxxxxxxxxx) and/or persons using those services (e.g. ircuser:slewis), and/or objects (e.g.  objectid:org.eclipse.ecf.example.collab.chat) within the given Namespace (irc,ircuser,objectid). 

ID instances are:

1) guaranteed (by contract) to be unique within the given Namespace
2) extend java.security.Principal (all IDs are Principals)
3) implement Serializable
4) implement a method toURI() which returns URI (so can also be URI)

See org.eclipse.ecf.identity.ID for all the methods on the ID interface but you've already seen most of them.

There are 'built in' providers for creating IDs from arbitrary strings (StringID) and SHA1 SecureRandom numbers (GUID).

Then at runtime ID instances are created with the following (e.g.):

IDFactory.getDefault().createID(namespace, uri);
 or
IDFactory.getDefault().createID(namespace,String);
 or
IDFactory.getDefault().createStringID(String);
 or
IDFactory.getDefault().createGUID();

All of the code for the Namespace extension point, ID interface, and these basic provider implementations is in the org.eclipse.ecf plugin, in the org.eclipse.ecf.identity package.  It's trivially small (11 classes), and has worked extremely well for representing ECF service/protocol identifiers from irc, to jxta, to xmpp, to zeroconf, to jms, etc.

This extension point may be useful for some of the things under discussion...and of course all of the work is available to Higgins/any other eclipse project.  It's worked flawlessly for us so far.


 
  
Context Providers which provide amalgamated identities
could emit unique identifiers with a variety of name forms for a given
set of Digital Subjects.  The wiki talks about the constituent players
of the US Tennis Team.  In a joined system, I may end up with Digital
Subjects which are uniquely identified in a variety of naming forms
(X.500, RFC822, GUID, Screen Name, etc.) for the constituency of that
team.  Ultimately, identifiers are presented to end users.  
    
 
As I mention above, in a single joined context there may be multiple
identifier namespaces (what you call naming forms). We only require that one
of these be the CUID namespace. The other identifiers for the same Digital
Subject may or may not also be uniquely identifying.
  


With ECF's definition of Namespace, the provider implementation (subclass of org.eclipse.ecf.identity.Namespace) defines the characteristics of the given Namespace...i.e. how 'wide' the scope of uniqueness is (from minimally unique to globally unique).  This may be a useful concept for issues under discussion.

Scott

The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.
_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev

Back to the top