[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: EntityId decision analysis page (wasRE:[higgins-dev]entityID notan attribute?)

Yes, it's a good point Jim - all a getEntityIdsMutable method could do is
serve as an input to a application making policy decisions.

More useful might be a method for asking an Entity specifically for an
immutable EntityId. Call it getCanonicalId. The rule would be that it always
returns one EntityId value that the Context asserts is the immutable
canonical identifier for that Entity in that Context.

If the Context does not support immutable identifiers, then getCanonicalId
will return an error, and the application can plan accordingly. But I
suspect the value of having an immutable reference would incent CPs to
support this method.

=Drummond 

> -----Original Message-----
> From: higgins-dev-bounces@xxxxxxxxxxx [mailto:higgins-dev-
> bounces@xxxxxxxxxxx] On Behalf Of Jim Sermersheim
> Sent: Monday, September 15, 2008 11:01 PM
> To: 'Higgins (Trust Framework) Project developer discussions'
> Subject: RE: EntityId decision analysis page (wasRE:[higgins-dev]entityID
> notan attribute?)
> 
> How does it help an application to know whether a context's entityIDs
> are mutable?  Does that tell the client that they'd better not use this
> Higgins policy objects (at least none that refer to entities as subjects
> or resources)?
> 
> 
> 
> >>> "Drummond Reed" <drummond.reed@xxxxxxxxxxxx> 09/15/08 9:59 PM >>>
> Okay, after talking with Markus and Paul on the phone, and gathering the
> last round of comments in email, I did another update to
> http://wiki.eclipse.org/EntityId_Requirements. This should really be
> called
> "EntityId Requirements for Context Data Model 1.1", since what we're
> talking
> about here is the delta between what we have in 1.0 and 1.1.
> 
> The current state as I understand it in 1.0 is that the entityId
> parameter
> to the getEntity method on IContext interface:
> 
>    1. Is of type string (confirm?)
>    2. Has cardinality 0..1
>    3. MUST be Context-unique; MAY be globally unique.
>    4. Is always exposed as an Attribute.
>    5. Exposes no information about mutability.
> 
> Following are the proposed changes in 1.1. Please do comment on each
> one.
> 
> #1: NOT REQUIRE entityId TO BE EXPOSED AS AN ATTRIBUTE
> 
> The proposed change is to make EntityId OPTIONAL to expose as an
> Attribute.
> Contexts that do not want to expose the EntityId can omit it from the
> list
> of Attributes for an Entity. Note: if the EntityId is mutable, it SHOULD
> be
> exposed as an Attribute so it can be modified.
> 
> #2: ADD getEntityIdsMutable METHOD
> 
> The proposed change is to add a getEntityIdsMutable() method on IContext
> that returns a Boolean indicating whether EntityIds in that Context are
> mutable or not. True = mutable.
> 
> #3: ADD getIdentifiers METHOD
> 
> The proposed change is to add a getIdentifiers() method on IEntity that
> returns all Identifiers for an Entity (0..n). By definition this would
> return all identifiers that the Context considers to be synonyms of the
> EntityId, even if the EntityId was not among the values returned.
> 
> #4: MULTI-PART KEYS
> 
> The proposal is to keep it simple by requiring multi-part keys to be
> serialized into a composite identifier, which can then be used as an
> EntityId or exposed as an Identifiers attribute.
> 
> Again, comments welcome so we can close this.
> 
> =Drummond
> 
> > -----Original Message-----
> > From: higgins-dev-bounces@xxxxxxxxxxx [mailto:higgins-dev-
> > bounces@xxxxxxxxxxx] On Behalf Of Tom Doman
> > Sent: Monday, September 15, 2008 1:34 PM
> > To: 'Higgins (Trust Framework) Project developer discussions'
> > Subject: RE: EntityId decision analysis
> page(wasRE:[higgins-dev]entityID
> > not an attribute?)
> >
> > +1
> >
> > On #1, I think more complex could get CP implementors into some
> > difficult situations though that's just a hunch w/o concrete examples.
> > But, like Jim, I prefer simple.
> >
> > On "another question", I don't see how we could guarantee immutability
> > or referential integrity.  I understand the need, just not how we'd
> pull
> > it off especially w/o producing a major house of cards to implement.
> > Event notification from the backing store, if even possible, would
> still
> > not be guaranteed to be reliable.  Maybe doing the best we can is
> better
> > than no guarantee whatsoever.
> >
> > Tom
> >
> 
> _______________________________________________
> higgins-dev mailing list
> higgins-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/higgins-dev
> 
> 
> ------------------- TEXT.htm follows -------------------
> <html>
>   <head>
>     <style type=3D"text/css">
>       <!--
>         body { font-variant: normal; margin-left: 4px; margin-bottom: 1px;
> =
> line-height: normal; margin-top: 4px; margin-right: 4px }
>         p { margin-bottom: 0; margin-top: 0 }
>       -->
>     </style>
>    =20
>   </head>
>   <body style=3D"margin-left: 4px; margin-bottom: 1px; margin-top: 4px; =
> margin-right: 4px">
>     <p style=3D"margin-bottom: 0; margin-top: 0">
>       <font face=3D"Dialog" size=3D"2">How does it help an application to
> =
> know whether a context&#39;s entityIDs are mutable&#63; &nbsp;Does that =
> tell the client that they&#39;d better not use this Higgins policy objects
> =
> &#40;at least none that refer to entities as subjects or
> resources&#41;&#63=
> ; </font>    </p>
> <br>     =20
>     <p style=3D"margin-bottom: 0; margin-top: 0">
>       <br>
>       <br>
>       &gt;&gt;&gt; &quot;Drummond Reed&quot;
> &lt;drummond.reed@xxxxxxxxxxxx=
> &gt; 09/15/08 9:59 PM &gt;&gt;&gt;<br>Okay&#44; after talking with Markus
> =
> and Paul on the phone&#44; and gathering the<br>last round of comments in
> =
> email&#44; I did another update to<br><a
> href=3D"http://wiki.eclipse.org/En=
> tityId_Requirements.">http://wiki.eclipse.org/EntityId_Requirements.</a>&n
> b=
> sp;This should really be called<br>&quot;EntityId Requirements for Context
> =
> Data Model 1.1&quot;&#44; since what we&#39;re talking<br>about here is =
> the delta between what we have in 1.0 and 1.1.<br><br>The current state as
> =
> I understand it in 1.0 is that the entityId parameter<br>to the getEntity
> =
> method on IContext interface:<br><br>&#160;&#160;&nbsp;1. Is of type =
> string &#40;confirm&#63;&#41;<br>&#160;&#160;&nbsp;2. Has cardinality =
> 0..1<br>&#160;&#160;&nbsp;3. MUST be Context-unique&#59; MAY be globally =
> unique.<br>&#160;&#160;&nbsp;4. Is always exposed as an
> Attribute.<br>&#160=
> ;&#160;&nbsp;5. Exposes no information about mutability.<br><br>Following
> =
> are the proposed changes in 1.1. Please do comment on each
> one.<br><br>&#35=
> ;1: NOT REQUIRE entityId TO BE EXPOSED AS AN ATTRIBUTE<br><br>The proposed
> =
> change is to make EntityId OPTIONAL to expose as an Attribute.<br>Contexts
> =
> that do not want to expose the EntityId can omit it from the list<br>of =
> Attributes for an Entity. Note: if the EntityId is mutable&#44; it SHOULD
> =
> be<br>exposed as an Attribute so it can be modified.<br><br>&#35;2: ADD =
> getEntityIdsMutable METHOD<br><br>The proposed change is to add a =
> getEntityIdsMutable&#40;&#41; method on IContext<br>that returns a Boolean
> =
> indicating whether EntityIds in that Context are<br>mutable or not. True =
> &#61; mutable.<br><br>&#35;3: ADD getIdentifiers METHOD<br><br>The =
> proposed change is to add a getIdentifiers&#40;&#41; method on IEntity =
> that<br>returns all Identifiers for an Entity &#40;0..n&#41;. By
> definition=
>  this would<br>return all identifiers that the Context considers to be =
> synonyms of the<br>EntityId&#44; even if the EntityId was not among the =
> values returned.<br><br>&#35;4: MULTI-PART KEYS<br><br>The proposal is to
> =
> keep it simple by requiring multi-part keys to be<br>serialized into a =
> composite identifier&#44; which can then be used as an<br>EntityId or =
> exposed as an Identifiers attribute.<br><br>Again&#44; comments welcome so
> =
> we can close this.<br><br>&#61;Drummond<br><br>&gt; -----Original =
> Message-----<br>&gt; From: higgins-dev-bounces@xxxxxxxxxxx
> &#91;mailto:higg=
> ins-dev-<br>&gt; bounces@xxxxxxxxxxx&#93; On Behalf Of Tom Doman<br>&gt; =
> Sent: Monday&#44; September 15&#44; 2008 1:34 PM<br>&gt; To: &#39;Higgins
> =
> &#40;Trust Framework&#41; Project developer discussions&#39;<br>&gt; =
> Subject: RE: EntityId decision analysis page&#40;wasRE:&#91;higgins-
> dev&#93=
> ;entityID<br>&gt; not an attribute&#63;&#41;<br>&gt;<br>&gt;
> &#43;1<br>&gt;=
> <br>&gt; On &#35;1&#44; I think more complex could get CP implementors =
> into some<br>&gt; difficult situations though that&#39;s just a hunch w/o
> =
> concrete examples.<br>&gt; But&#44; like Jim&#44; I prefer
> simple.<br>&gt;<=
> br>&gt; On &quot;another question&quot;&#44; I don&#39;t see how we could
> =
> guarantee immutability<br>&gt; or referential integrity.&#160;&nbsp;I =
> understand the need&#44; just not how we&#39;d pull<br>&gt; it off =
> especially w/o producing a major house of cards to implement.<br>&gt; =
> Event notification from the backing store&#44; if even possible&#44; would
> =
> still<br>&gt; not be guaranteed to be reliable.&#160;&nbsp;Maybe doing the
> =
> best we can is better<br>&gt; than no guarantee
> whatsoever.<br>&gt;<br>&gt;=
> 
> Tom<br>&gt;<br><br>_______________________________________________<br>higg
> =
> ins-dev mailing list<br>higgins-dev@xxxxxxxxxxx<br><a
> href=3D"https://dev.e=
> clipse.org/mailman/listinfo/higgins">https://dev.eclipse.org/mailman/listi
> n=
> fo/higgins</a>-dev<br>
>     </p>
>   </body>
> </html>
> _______________________________________________
> higgins-dev mailing list
> higgins-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/higgins-dev