Skip to main content

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

This is interesting.  So, further... Maybe we could define our policy
objects such when one is going about the business of specifying an
entity (as a subject or resource), instead of allowing any old string or
textual identifier to be passed there, one must actually pass an
IEntity.  That way, the policy object could be sure to call
getCanonicalID.  Maybe that's heavy-handed.  I just hate leaving gapping
holes lying around for people to stumble into. 

Anyway to repeat... An Entity could be referred to by it's
'human-friendly' entityID which isn't guaranteed to always be able to
find the same entity (though one imagines confidence being at least
medium to med-high), and also possibly be referred to by its canonical
entityID (which may or may not be less aesthetically pleasing to humans)
which is guaranteed to get you back to the original entity.  I think
this may be an example of what Tony was talking about when he was saying
"an entity could have multiple entity identifiers" 

we could just overload getEntityID to take a bool bEnsureCanonical arg. 
Also, the following could be used to test whether an entityID is
canonical (assuming EntityID's are Strings here: 

String friendlyID = myEntity.getEntityID(); 
String canonicalID = myEntity.getEntityID(true); 

if (friendlyID !=null && canonicalID != null &&
friendlyID.equals(canonicalID)) { 
   // the entity has a friendly id and it is canonical. 
} 

of course, one interested in the canonical id would simply get that and
use it. 

Jim

>>> "Drummond Reed" <drummond.reed@xxxxxxxxxxxx> 09/16/08 2:04 PM >>>
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

_______________________________________________
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 { line-height: normal; font-variant: normal; margin-bottom: =
1px; margin-top: 4px; margin-left: 4px; margin-right: 4px }
        p { margin-top: 0; margin-bottom: 0 }
      -->
    </style>
   =20
  </head>
  <body style=3D"margin-left: 4px; margin-top: 4px; margin-bottom: 1px; =
margin-right: 4px">
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">This is interesting. &nbsp;So&#44; =
further... Maybe we could define our policy objects such when one is going =
about the business of specifying an entity &#40;as a subject or resource&#4=
1;&#44; instead of allowing any old string or textual identifier to be =
passed there&#44; one must actually pass an IEntity. &nbsp;That way&#44; =
the policy object could be sure to call getCanonicalID. &nbsp;Maybe =
that&#39;s heavy-handed. &nbsp;I just hate leaving gapping holes lying =
around for people to stumble into.</font>    </p>
<br>     =20
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">Anyway to repeat... An Entity could =
be referred to by it&#39;s &#39;human-friendly&#39; entityID which =
isn&#39;t guaranteed to always be able to find the same entity &#40;though =
one imagines confidence being at least medium to med-high&#41;&#44; and =
also possibly be referred to by its canonical entityID &#40;which may or =
may not be less aesthetically pleasing to humans&#41; which is guaranteed =
to get you back to the original entity. &nbsp;I think this may be an =
example of what Tony was talking about when he was saying &quot;an entity =
could have multiple entity identifiers&quot;</font>    </p>
<br>     =20
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">we could just overload getEntityID =
to take a bool bEnsureCanonical arg. &nbsp;Also&#44; the following could =
be used to test whether an entityID is canonical &#40;assuming EntityID&#39=
;s are Strings here:</font>    </p>
<br>     =20
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">String friendlyID &#61; myEntity.get=
EntityID&#40;&#41;&#59;</font>    </p>
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">String canonicalID &#61; myEntity.ge=
tEntityID&#40;true&#41;&#59;</font>    </p>
<br>     =20
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">if &#40;friendlyID &#33;&#61;null =
&amp;&amp; canonicalID &#33;&#61; null &amp;&amp; friendlyID.equals&#40;can=
onicalID&#41;&#41;&nbsp;&#123;</font>    </p>
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">&nbsp;&nbsp;&nbsp;// the entity has =
a friendly id and it is canonical.</font>    </p>
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">&#125;</font>    </p>
<br>     =20
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">of course&#44; one interested in =
the canonical id would simply get that and use it.</font>    </p>
<br>     =20
    <p style=3D"margin-bottom: 0; margin-top: 0">
      <font size=3D"2" face=3D"Dialog">Jim</font><br><br>&gt;&gt;&gt; =
&quot;Drummond Reed&quot; &lt;drummond.reed@xxxxxxxxxxxx&gt; 09/16/08 2:04 =
PM &gt;&gt;&gt;<br>Yes&#44; it&#39;s a good point Jim - all a getEntityIdsM=
utable method could do is<br>serve as an input to a application making =
policy decisions.<br><br>More useful might be a method for asking an =
Entity specifically for an<br>immutable EntityId. Call it getCanonicalId. =
The rule would be that it always<br>returns one EntityId value that the =
Context asserts is the immutable<br>canonical identifier for that Entity =
in that Context.<br><br>If the Context does not support immutable =
identifiers&#44; then getCanonicalId<br>will return an error&#44; and the =
application can plan accordingly. But I<br>suspect the value of having an =
immutable reference would incent CPs to<br>support this method.<br><br>&#61=
;Drummond<br><br>&gt; -----Original Message-----<br>&gt; From: higgins-dev-=
bounces@xxxxxxxxxxx &#91;mailto:higgins-dev-<br>&gt; bounces@xxxxxxxxxxx&#9=
3; On Behalf Of Jim Sermersheim<br>&gt; Sent: Monday&#44; September =
15&#44; 2008 11:01 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; notan =
attribute&#63;&#41;<br>&gt;<br>&gt; How does it help an application to =
know whether a context&#39;s entityIDs<br>&gt; are mutable&#63;&#160;&nbsp;=
Does that tell the client that they&#39;d better not use this<br>&gt; =
Higgins policy objects &#40;at least none that refer to entities as =
subjects<br>&gt; or resources&#41;&#63;<br>&gt;<br>&gt;<br>&gt;<br>&gt; =
&gt;&gt;&gt; &quot;Drummond Reed&quot; &lt;drummond.reed@xxxxxxxxxxxx&gt; =
09/15/08 9:59 PM &gt;&gt;&gt;<br>&gt; Okay&#44; after talking with Markus =
and Paul on the phone&#44; and gathering the<br>&gt; last round of =
comments in email&#44; I did another update to<br>&gt; <a href=3D"http://wi=
ki.eclipse.org/EntityId_Requirements.">http://wiki.eclipse.org/EntityId_Req=
uirements.</a>&nbsp;This should really be<br>&gt; called<br>&gt; &quot;Enti=
tyId Requirements for Context Data Model 1.1&quot;&#44; since what =
we&#39;re<br>&gt; talking<br>&gt; about here is the delta between what we =
have in 1.0 and 1.1.<br>&gt;<br>&gt; The current state as I understand it =
in 1.0 is that the entityId<br>&gt; parameter<br>&gt; to the getEntity =
method on IContext interface:<br>&gt;<br>&gt;&#160;&#160;&#160;&nbsp;1. Is =
of type string &#40;confirm&#63;&#41;<br>&gt;&#160;&#160;&#160;&nbsp;2. =
Has cardinality 0..1<br>&gt;&#160;&#160;&#160;&nbsp;3. MUST be Context-uniq=
ue&#59; MAY be globally unique.<br>&gt;&#160;&#160;&#160;&nbsp;4. Is =
always exposed as an Attribute.<br>&gt;&#160;&#160;&#160;&nbsp;5. Exposes =
no information about mutability.<br>&gt;<br>&gt; Following are the =
proposed changes in 1.1. Please do comment on each<br>&gt; one.<br>&gt;<br>=
&gt; &#35;1: NOT REQUIRE entityId TO BE EXPOSED AS AN ATTRIBUTE<br>&gt;<br>=
&gt; The proposed change is to make EntityId OPTIONAL to expose as =
an<br>&gt; Attribute.<br>&gt; Contexts that do not want to expose the =
EntityId can omit it from the<br>&gt; list<br>&gt; of Attributes for an =
Entity. Note: if the EntityId is mutable&#44; it SHOULD<br>&gt; be<br>&gt; =
exposed as an Attribute so it can be modified.<br>&gt;<br>&gt; &#35;2: ADD =
getEntityIdsMutable METHOD<br>&gt;<br>&gt; The proposed change is to add a =
getEntityIdsMutable&#40;&#41; method on IContext<br>&gt; that returns a =
Boolean indicating whether EntityIds in that Context are<br>&gt; mutable =
or not. True &#61; mutable.<br>&gt;<br>&gt; &#35;3: ADD getIdentifiers =
METHOD<br>&gt;<br>&gt; The proposed change is to add a getIdentifiers&#40;&=
#41; method on IEntity that<br>&gt; returns all Identifiers for an Entity =
&#40;0..n&#41;. By definition this would<br>&gt; return all identifiers =
that the Context considers to be synonyms of the<br>&gt; EntityId&#44; =
even if the EntityId was not among the values returned.<br>&gt;<br>&gt; =
&#35;4: MULTI-PART KEYS<br>&gt;<br>&gt; The proposal is to keep it simple =
by requiring multi-part keys to be<br>&gt; serialized into a composite =
identifier&#44; which can then be used as an<br>&gt; EntityId or exposed =
as an Identifiers attribute.<br>&gt;<br>&gt; Again&#44; comments welcome =
so we can close this.<br>&gt;<br>&gt; &#61;Drummond<br>&gt;<br>&gt; &gt; =
-----Original Message-----<br>&gt; &gt; From: higgins-dev-bounces@eclipse.o=
rg &#91;mailto:higgins-dev-<br>&gt; &gt; bounces@xxxxxxxxxxx&#93; On =
Behalf Of Tom Doman<br>&gt; &gt; Sent: Monday&#44; September 15&#44; 2008 =
1:34 PM<br>&gt; &gt; To: &#39;Higgins &#40;Trust Framework&#41; Project =
developer discussions&#39;<br>&gt; &gt; Subject: RE: EntityId decision =
analysis<br>&gt; page&#40;wasRE:&#91;higgins-dev&#93;entityID<br>&gt; &gt; =
not an attribute&#63;&#41;<br>&gt; &gt;<br>&gt; &gt; &#43;1<br>&gt; =
&gt;<br>&gt; &gt; On &#35;1&#44; I think more complex could get CP =
implementors into some<br>&gt; &gt; difficult situations though that&#39;s =
just a hunch w/o concrete examples.<br>&gt; &gt; But&#44; like Jim&#44; I =
prefer simple.<br>&gt; &gt;<br>&gt; &gt; On &quot;another question&quot;&#4=
4; I don&#39;t see how we could guarantee immutability<br>&gt; &gt; or =
referential integrity.&#160;&nbsp;I understand the need&#44; just not how =
we&#39;d<br>&gt; pull<br>&gt; &gt; it off especially w/o producing a major =
house of cards to implement.<br>&gt; &gt; Event notification from the =
backing store&#44; if even possible&#44; would<br>&gt; still<br>&gt; &gt; =
not be guaranteed to be reliable.&#160;&nbsp;Maybe doing the best we can =
is<br>&gt; better<br>&gt; &gt; than no guarantee whatsoever.<br>&gt; =
&gt;<br>&gt; &gt; Tom<br>&gt; &gt;<br>&gt;<br>&gt; ________________________=
_______________________<br>&gt; higgins-dev mailing list<br>&gt; higgins-de=
v@xxxxxxxxxxx<br>&gt; <a href=3D"https://dev.eclipse.org/mailman/listinfo/h=
iggins">https://dev.eclipse.org/mailman/listinfo/higgins</a>-dev<br>&gt;<br=
>&gt;<br>&gt; ------------------- TEXT.htm follows -------------------<br>&=
gt; &lt;html&gt;<br>&gt;&#160;&#160;&nbsp;&lt;head&gt;<br>&gt;&#160;&#160;&=
#160;&#160;&nbsp;&lt;style type&#61;3D&quot;text/css&quot;&gt;<br>&gt;&#160=
;&#160;&#160;&#160;&#160;&#160;&nbsp;&lt;&#33;--<br>&gt;&#160;&#160;&#160;&=
#160;&#160;&#160;&#160;&#160;&nbsp;body&nbsp;&#123;&nbsp;font-variant: =
normal&#59; margin-left: 4px&#59; margin-bottom: 1px&#59;<br>&gt; =
&#61;<br>&gt; line-height: normal&#59; margin-top: 4px&#59; margin-right: =
4px&nbsp;&#125;<br>&gt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&nbs=
p;p&nbsp;&#123;&nbsp;margin-bottom: 0&#59; margin-top: 0&nbsp;&#125;<br>&gt=
;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;--&gt;<br>&gt;&#160;&#160;&#160;=
&#160;&nbsp;&lt;/style&gt;<br>&gt;&#160;&#160;&#160;&nbsp;&#61;20<br>&gt;&#=
160;&#160;&nbsp;&lt;/head&gt;<br>&gt;&#160;&#160;&nbsp;&lt;body style&#61;3=
D&quot;margin-left: 4px&#59; margin-bottom: 1px&#59; margin-top: 4px&#59; =
&#61;<br>&gt; margin-right: 4px&quot;&gt;<br>&gt;&#160;&#160;&#160;&#160;&n=
bsp;&lt;p style&#61;3D&quot;margin-bottom: 0&#59; margin-top: 0&quot;&gt;<b=
r>&gt;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&lt;font face&#61;3D&quot;D=
ialog&quot; size&#61;3D&quot;2&quot;&gt;How does it help an application =
to<br>&gt; &#61;<br>&gt; know whether a context&amp;&#35;39&#59;s =
entityIDs are mutable&amp;&#35;63&#59; &amp;nbsp&#59;Does that &#61;<br>&gt=
; tell the client that they&amp;&#35;39&#59;d better not use this Higgins =
policy objects<br>&gt; &#61;<br>&gt; &amp;&#35;40&#59;at least none that =
refer to entities as subjects or<br>&gt; resources&amp;&#35;41&#59;&amp;&#3=
5;63&#61;<br>&gt; &#59; &lt;/font&gt;&#160;&#160;&#160;&nbsp;&lt;/p&gt;<br>=
&gt; &lt;br&gt;&#160;&#160;&#160;&#160;&nbsp;&#61;20<br>&gt;&#160;&#160;&#1=
60;&#160;&nbsp;&lt;p style&#61;3D&quot;margin-bottom: 0&#59; margin-top: =
0&quot;&gt;<br>&gt;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&lt;br&gt;<br>=
&gt;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&lt;br&gt;<br>&gt;&#160;&#160=
;&#160;&#160;&#160;&#160;&nbsp;&amp;gt&#59;&amp;gt&#59;&amp;gt&#59; =
&amp;quot&#59;Drummond Reed&amp;quot&#59;<br>&gt; &amp;lt&#59;drummond.reed=
@cordance.net&#61;<br>&gt; &amp;gt&#59; 09/15/08 9:59 PM &amp;gt&#59;&amp;g=
t&#59;&amp;gt&#59;&lt;br&gt;Okay&amp;&#35;44&#59; after talking with =
Markus<br>&gt; &#61;<br>&gt; and Paul on the phone&amp;&#35;44&#59; and =
gathering the&lt;br&gt;last round of comments in<br>&gt; &#61;<br>&gt; =
email&amp;&#35;44&#59; I did another update to&lt;br&gt;&lt;a<br>&gt; =
href&#61;3D&quot;http://wiki.eclipse.org/En&#61;<br>&gt; tityId_Requirement=
s.&quot;&gt;<a href=3D"http://wiki.eclipse.org/EntityId_Requirements.";>http=
://wiki.eclipse.org/EntityId_Requirements.</a>&lt;/a&gt;&amp;n<br>&gt; =
b&#61;<br>&gt; sp&#59;This should really be called&lt;br&gt;&amp;quot&#59;E=
ntityId Requirements for Context<br>&gt; &#61;<br>&gt; Data Model =
1.1&amp;quot&#59;&amp;&#35;44&#59; since what we&amp;&#35;39&#59;re =
talking&lt;br&gt;about here is &#61;<br>&gt; the delta between what we =
have in 1.0 and 1.1.&lt;br&gt;&lt;br&gt;The current state as<br>&gt; =
&#61;<br>&gt; I understand it in 1.0 is that the entityId parameter&lt;br&g=
t;to the getEntity<br>&gt; &#61;<br>&gt; method on IContext interface:&lt;b=
r&gt;&lt;br&gt;&amp;&#35;160&#59;&amp;&#35;160&#59;&amp;nbsp&#59;1. Is of =
type &#61;<br>&gt; string &amp;&#35;40&#59;confirm&amp;&#35;63&#59;&amp;&#3=
5;41&#59;&lt;br&gt;&amp;&#35;160&#59;&amp;&#35;160&#59;&amp;nbsp&#59;2. =
Has cardinality &#61;<br>&gt; 0..1&lt;br&gt;&amp;&#35;160&#59;&amp;&#35;160=
&#59;&amp;nbsp&#59;3. MUST be Context-unique&amp;&#35;59&#59; MAY be =
globally &#61;<br>&gt; unique.&lt;br&gt;&amp;&#35;160&#59;&amp;&#35;160&#59=
;&amp;nbsp&#59;4. Is always exposed as an<br>&gt; Attribute.&lt;br&gt;&amp;=
&#35;160&#61;<br>&gt; &#59;&amp;&#35;160&#59;&amp;nbsp&#59;5. Exposes no =
information about mutability.&lt;br&gt;&lt;br&gt;Following<br>&gt; =
&#61;<br>&gt; are the proposed changes in 1.1. Please do comment on =
each<br>&gt; one.&lt;br&gt;&lt;br&gt;&amp;&#35;35&#61;<br>&gt; &#59;1: NOT =
REQUIRE entityId TO BE EXPOSED AS AN ATTRIBUTE&lt;br&gt;&lt;br&gt;The =
proposed<br>&gt; &#61;<br>&gt; change is to make EntityId OPTIONAL to =
expose as an Attribute.&lt;br&gt;Contexts<br>&gt; &#61;<br>&gt; that do =
not want to expose the EntityId can omit it from the list&lt;br&gt;of =
&#61;<br>&gt; Attributes for an Entity. Note: if the EntityId is mutable&am=
p;&#35;44&#59; it SHOULD<br>&gt; &#61;<br>&gt; be&lt;br&gt;exposed as an =
Attribute so it can be modified.&lt;br&gt;&lt;br&gt;&amp;&#35;35&#59;2: =
ADD &#61;<br>&gt; getEntityIdsMutable METHOD&lt;br&gt;&lt;br&gt;The =
proposed change is to add a &#61;<br>&gt; getEntityIdsMutable&amp;&#35;40&#=
59;&amp;&#35;41&#59; method on IContext&lt;br&gt;that returns a Boolean<br>=
&gt; &#61;<br>&gt; indicating whether EntityIds in that Context are&lt;br&g=
t;mutable or not. True &#61;<br>&gt; &amp;&#35;61&#59; mutable.&lt;br&gt;&l=
t;br&gt;&amp;&#35;35&#59;3: ADD getIdentifiers METHOD&lt;br&gt;&lt;br&gt;Th=
e &#61;<br>&gt; proposed change is to add a getIdentifiers&amp;&#35;40&#59;=
&amp;&#35;41&#59; method on IEntity &#61;<br>&gt; that&lt;br&gt;returns =
all Identifiers for an Entity &amp;&#35;40&#59;0..n&amp;&#35;41&#59;. =
By<br>&gt; definition&#61;<br>&gt;&#160;&nbsp;this would&lt;br&gt;return =
all identifiers that the Context considers to be &#61;<br>&gt; synonyms of =
the&lt;br&gt;EntityId&amp;&#35;44&#59; even if the EntityId was not among =
the &#61;<br>&gt; values returned.&lt;br&gt;&lt;br&gt;&amp;&#35;35&#59;4: =
MULTI-PART KEYS&lt;br&gt;&lt;br&gt;The proposal is to<br>&gt; &#61;<br>&gt;=
 keep it simple by requiring multi-part keys to be&lt;br&gt;serialized =
into a &#61;<br>&gt; composite identifier&amp;&#35;44&#59; which can then =
be used as an&lt;br&gt;EntityId or &#61;<br>&gt; exposed as an Identifiers =
attribute.&lt;br&gt;&lt;br&gt;Again&amp;&#35;44&#59; comments welcome =
so<br>&gt; &#61;<br>&gt; we can close this.&lt;br&gt;&lt;br&gt;&amp;&#35;61=
&#59;Drummond&lt;br&gt;&lt;br&gt;&amp;gt&#59; -----Original &#61;<br>&gt; =
Message-----&lt;br&gt;&amp;gt&#59; From: higgins-dev-bounces@xxxxxxxxxxx<br=
>&gt; &amp;&#35;91&#59;mailto:higg&#61;<br>&gt; ins-dev-&lt;br&gt;&amp;gt&#=
59; bounces@xxxxxxxxxxx&amp;&#35;93&#59; On Behalf Of Tom Doman&lt;br&gt;&a=
mp;gt&#59; &#61;<br>&gt; Sent: Monday&amp;&#35;44&#59; September 15&amp;&#3=
5;44&#59; 2008 1:34 PM&lt;br&gt;&amp;gt&#59; To: &amp;&#35;39&#59;Higgins<b=
r>&gt; &#61;<br>&gt; &amp;&#35;40&#59;Trust Framework&amp;&#35;41&#59; =
Project developer discussions&amp;&#35;39&#59;&lt;br&gt;&amp;gt&#59; =
&#61;<br>&gt; Subject: RE: EntityId decision analysis page&amp;&#35;40&#59;=
wasRE:&amp;&#35;91&#59;higgins-<br>&gt; dev&amp;&#35;93&#61;<br>&gt; =
&#59;entityID&lt;br&gt;&amp;gt&#59; not an attribute&amp;&#35;63&#59;&amp;&=
#35;41&#59;&lt;br&gt;&amp;gt&#59;&lt;br&gt;&amp;gt&#59;<br>&gt; &amp;&#35;4=
3&#59;1&lt;br&gt;&amp;gt&#59;&#61;<br>&gt; &lt;br&gt;&amp;gt&#59; On =
&amp;&#35;35&#59;1&amp;&#35;44&#59; I think more complex could get CP =
implementors &#61;<br>&gt; into some&lt;br&gt;&amp;gt&#59; difficult =
situations though that&amp;&#35;39&#59;s just a hunch w/o<br>&gt; =
&#61;<br>&gt; concrete examples.&lt;br&gt;&amp;gt&#59; But&amp;&#35;44&#59;=
 like Jim&amp;&#35;44&#59; I prefer<br>&gt; simple.&lt;br&gt;&amp;gt&#59;&l=
t;&#61;<br>&gt; br&gt;&amp;gt&#59; On &amp;quot&#59;another question&amp;qu=
ot&#59;&amp;&#35;44&#59; I don&amp;&#35;39&#59;t see how we could<br>&gt; =
&#61;<br>&gt; guarantee immutability&lt;br&gt;&amp;gt&#59; or referential =
integrity.&amp;&#35;160&#59;&amp;nbsp&#59;I &#61;<br>&gt; understand the =
need&amp;&#35;44&#59; just not how we&amp;&#35;39&#59;d pull&lt;br&gt;&amp;=
gt&#59; it off &#61;<br>&gt; especially w/o producing a major house of =
cards to implement.&lt;br&gt;&amp;gt&#59; &#61;<br>&gt; Event notification =
from the backing store&amp;&#35;44&#59; if even possible&amp;&#35;44&#59; =
would<br>&gt; &#61;<br>&gt; still&lt;br&gt;&amp;gt&#59; not be guaranteed =
to be reliable.&amp;&#35;160&#59;&amp;nbsp&#59;Maybe doing the<br>&gt; =
&#61;<br>&gt; best we can is better&lt;br&gt;&amp;gt&#59; than no =
guarantee<br>&gt; whatsoever.&lt;br&gt;&amp;gt&#59;&lt;br&gt;&amp;gt&#59;&#=
61;<br>&gt;<br>&gt; Tom&lt;br&gt;&amp;gt&#59;&lt;br&gt;&lt;br&gt;__________=
_____________________________________&lt;br&gt;higg<br>&gt; &#61;<br>&gt; =
ins-dev mailing list&lt;br&gt;higgins-dev@xxxxxxxxxxx&lt;br&gt;&lt;a<br>&gt=
; href&#61;3D&quot;https://dev.e&#61;<br>&gt; clipse.org/mailman/listinfo/h=
iggins&quot;&gt;<a href=3D"https://dev.eclipse.org/mailman/listi";>https://d=
ev.eclipse.org/mailman/listi</a><br>&gt; n&#61;<br>&gt; fo/higgins&lt;/a&gt=
;-dev&lt;br&gt;<br>&gt;&#160;&#160;&#160;&#160;&nbsp;&lt;/p&gt;<br>&gt;&#16=
0;&#160;&nbsp;&lt;/body&gt;<br>&gt; &lt;/html&gt;<br>&gt; _________________=
______________________________<br>&gt; higgins-dev mailing list<br>&gt; =
higgins-dev@xxxxxxxxxxx<br>&gt; <a href=3D"https://dev.eclipse.org/mailman/=
listinfo/higgins">https://dev.eclipse.org/mailman/listinfo/higgins</a>-dev<=
br><br>_______________________________________________<br>higgins-dev =
mailing list<br>higgins-dev@xxxxxxxxxxx<br><a href=3D"https://dev.eclipse.o=
rg/mailman/listinfo/higgins">https://dev.eclipse.org/mailman/listinfo/higgi=
ns</a>-dev<br>
    </p>
  </body>
</html>


Back to the top