RE: [uddi-spec] CR-010: isReplacedBy tModel

From
Anne Thomas Manes <>
Date
2003-02-12T13:17:31+00:00
ID
Thread
RE: [uddi-spec] CR-010: isReplacedBy tModel
Andrew,

 

I 
think your proposed solution is excellent. When we first started talking about 
this issue, I asked what is the expected behavior if someone attempts to use a 
previously claimed identifier or if someone attempts to idenitfy an entity with 
more than one identitfier from the same identifier system. From what I can tell, 
this behavior has not been specified. There is nothing in the spec that enforces 
cardinality. I agree with you that we have imposed cardinality on ourselves just 
by virtue of our definition. Changing the definition seems to me to be the 
simplest and least disruptive solution. 

 

I 
suspect that some people might get a bit confused trying to understand the 
difference between an identifier system and a category system if we remove the 
cardinality qualifier, so we need to be careful with our 
definition.

 

Anne

  
-----Original Message-----
From: Andrew Hately 
  [mailto:]
Sent: Tuesday, February 11, 2003 11:36 
  PM
To: 
Cc: 
  
Subject: RE: [uddi-spec] CR-010: 
  isReplacedBy tModel

Anne, 

Reading through the 
  CR again, I feel that the glossary definitions of category and identifier are 
  still the problem. 

Does the 
  suggestion in my note below address the problem without changing the 
  classification of isReplacedBy?

Andrew Hately
IBM Austin
UDDI 
  Development, Emerging Technologies 

  
    
    

      Andrew 
        Hately/Austin/IBM@IBMUS 
        
01/23/2003 12:12 PM 

      
        
          
          

            
              
To

            Daniel Feygin 
              <> 
          

            
              
cc

            "'Anne Thomas Manes'" 
              <>, "'Von Riegen, Claus'" 
              <>, "'Uddi-Spec'" 
              <> 
          

            
              
Subject

            RE: [uddi-spec] 
              CR-010: isReplacedBy tModel

        
          
          

            
            

Perhaps a simpler approach is to fix our definition 
  of identifier and identifier system.  I don't see that there is anything 
  wrong with the isReplacedBy system other than our inference about cardinality 
  due to the definitions in our glossary.  Searching through the 
  specification and a bunch of dictionaries, it appears the only place that 
  restricts identifiers to a definition of one to one relationship is in our 
  glossary. I'm not sure why we have included mention of cardinality as the 
  distinguishing characteristic in our glossary definition as identifiers. 
    

The 
  existing definitions are as follows: 

Category: A value from a specified category system. 
  
Category system: Any value set intended to be used 
  to categorize the 
  entities in which it is 
  referenced. A category system is distinct from an identifier system in that 
  many entities in the same registry can be categorized with the same category. 

Identifier: A value from a specified identifier system. 
Identifier 
  system: Any value set intended to be used to identify the entities in which 
  it is referenced. An identifier system is distinct from a category system in that only 
  one entity in a given registry 
  should be associated with a given identifier.

Borrowing more directly 
  from dictionaries, I'd suggest we clarify these definitions as follows 
  (additions in quotes and note that the second sentence of each system 
  definition is removed and replaced): 

Category: A value "representing a defined 
  division of classification" from a specified category system. 
  
Category system: Any value set intended to be used 
  to categorize the 
  entities in which it is 
  referenced.  The documentation for a category system should describe the 
  characteristics that mark the divisions, or categories, in the system. 
   Each category in a category system typically represents a means of 
  grouping distinct entities with similar characteristics. 
  

Identifier: A value 
  "representing the distinct identity of the entity" from a specified 
  identifier system. 
    
Identifier 
  system: Any value set intended to be used to identify the entities in which 
  it is referenced.  The documentation for an identifier system should 
  describe the distinct characteristics of an entity for each value, or 
  identifier, in the system.  Each identifier in an identifier system 
  typically represents a unique entity or entities that are considered 
  equivalent. 

I'm sure we could argue over the exact definitions used, but I 
  think using a proper definition of what each system is intending to accomplish 
  is better than trying to fit value sets into the overly restrictive definition 
  we may be using today.  In the particular case of isReplacedBy, if a 
  group of tModels really represents the replacement for one, than I believe 
  that this is an identity relationship where the replacement is a specific and 
  unique set as opposed to stating that it is replaced by items in this general 
  division of entities. 

Andrew Hately
IBM Austin
UDDI Development, Emerging 
  Technologies 
Lotus Notes: Andrew Hately/Austin/IBM@IBMUS
Internet: 
  
(512) 838-2866,  t/l 678-2866

  
    
    

      Daniel Feygin 
        <> 
        
01/23/2003 08:36 AM 
        

      

        
          
          

            
              
To

            "'Von 
              Riegen, Claus'" <>, "'Anne Thomas 
              Manes'" <>, "'Uddi-Spec'" 
              <> 
          

            
              
cc

            
          

            
              
Subject

            RE: [uddi-spec] 
              CR-010: isReplacedBy tModel

        
          
          

            
            

Claus,

I did not realize 
  that the identifiers' uniqueness is scoped to an
entire registry.  I 
  went by the assumption that a given entity could
have only one value for a 
  given identifier (one keydReference of a given
tModelKey in the entity's 
  identifierBag), but that there were no other
requirements on that.  I 
  looked through the spec and found no guidance
as to what the registry is 
  supposed to do when a businessEntity is
published with an identifier that 
  is already "claimed" (perhaps
unjustifiably) by another businessEntity 
  publisher.

V3 definition of an identifier introduces by implication a 
  requirement
that establishes an indirect relationship between potentially 
  unrelated
entities.  Thus registry owners are put in the position of 
  not only
validating publishers' content, which is fine within clearly 
  defined and
reasonable syntactic and semantic bounds, but also 
  policing
publisher-to-publisher relationships, which may be quite tricky in 
  some
circumstances (consider the UBR as an extreme case).  Appendix E, 
  Using
Identifiers, does not mention the uniqueness requirements of 
  identifier
values, so one might question the suitability of introducing 
  normative
requirements (if my assessment of the definition is correct) in 
  the
glossary appendix of the specification.

Clearly my prior remarks 
  on isReplacedBy capability are inconsistent
with the apparent 'idea' of the 
  identifier in UDDI V3.  I found no
references to the scope of 
  identifier uniqueness in V2 though, so I
wonder if my comments could still 
  apply to V2.  With regard to V3 we
thus have a choice between adopting 
  the solution proposed in Anne's CR
or adopting the alternative she 
  mentioned with the implication that the
definition of the identifier in V3 
  will have to be revised.  Also it
would not hurt to add more normative 
  guidance explaining the proper
enforcement of identifiers' uniqueness 
  characteristics.  If this could
be left up to registry policy, then we 
  should probably also specify
that.

Lets try to analyze your point of 
  this being an errata, because it fixes
an inconsistency.  I can 
  identify 4 scenarios relevant to our
discussion:
1. One entity is 
  replaced by one other entity.  This is one-to-one
relationship that is 
  covered under existing specification.
2. One entity is replaced by multiple 
  entities.  This is one-to-many
relationship that cannot be implemented 
  under existing specification and
requires a categorization.  I do not 
  see an inconsistency with the spec
here, we are extending the spec to cover 
  a new function.
3. Multiple entities are replaced by one other entity. 
   This is
one-to-many relationship that can be modeled with 
  isReplacedBy, but will
cause the inconsistency which I assume you are 
  referring to, as multiple
entities will become identified by one value. 
   However, the replacement
entity's identity can be traced to the 
  multiple entities it is
replacing.  Therefore IMHO it would be more 
  consistent with the general
idea of identity to model this relationship 
  with an identifier rather
than with a categorization.  But even if we 
  choose to represent this
scenario with a categorization, this would still 
  be a new capability
which I would therefore favor being implemented with a 
  new tModel (say,
isConsolidatedReplacedBy for the purpose of 
  discussion).
4. Multiple entities are replaced by multiple other entities. 
   I do not
have a clue as to how this might be modeled without the use 
  of an
intermediary entity, which would have one-to-many relationships to 
  the
group of multiple entities being replaced and to the group of 
  newly
created entities.  That is covered in (2) and (3).

So I 
  assume it is scenario (3) above you find inconsistent with the
wording of 
  the identifier definition.  I would argue though, that that
definition 
  is inconsistent with the ability for one-to-many
transformation of an 
  entity's identity.  Thereby the inconsistency is
only with the V3 
  definition of identifiers in UDDI.  isReplacedBy could
be used as 
  identification scheme tModel to model scenario (3).
Alternatively, it is 
  possible to model scenario (3) with a
categorization.  Then we face 
  another choice of either making up another
tModel or redefining 
  isReplacedBy as a categorization scheme, risking to
inflict pain on the 
  users.

Also, I searched through the text of V2 specs and found no 
  reference to
the V3 definition of identifier.  So it is only an 
  inconsistency in V2
if you consider the general agreement of the 
  Consortium's Working Group
members as to the concept of 
  identifiers.

Regards,
Daniel

> -----Original 
  Message-----
> From: Von Riegen, Claus [mailto:] 
  
> Sent: Thursday, January 23, 2003 11:31 AM
> To: 'Anne Thomas 
  Manes'; Daniel Feygin; 'Uddi-Spec'
> Subject: RE: [uddi-spec] CR-010: 
  isReplacedBy tModel
> 
> 
> Anne, Daniel,
> 
> 
  Daniel's proposal to let two businessEntities be "identified" 
> by the 
  merged businessEntity (second case from below) seems 
> to be attractive 
  at first view, but it actually contradicts 
> to the idea of an 
  identifier in UDDI.
> 
> An entity's identifierBag contains 
  identifiers (specified as 
> keyValues in keyedReferences) for the 
  entity itself (see 
> section 3.3.2.10 of the UDDI V3 specification). 
  That's why 
> any identifier should be used only once in a UDDI registry 
  - 
> the V3 glossary (see Appendix L of the UDDI V3 specification) 
  
> defines an identifier system as "Any value set intended to be 
  
> used to identify the entities in which it is referenced. An 
> 
  identifier system is distinct from a category system in that 
> only one 
  entitty in a given registry should be associated 
> with a given 
  identifier." And that's why we changed the 
> categorization of the 
  owningBusiness tModel from "identifier" 
> to "categorization" in one of 
  the V2 errata sets. It is used 
> in a tModel to identify the 
  businessEntity that owns the 
> tModel - but it does not identify the 
  tModel, it categorizes 
> it (and many tModels can carry the same 
  category, i.e. be 
> owned by the same businessEntity).
> 
> 
  Again, the most consistent solution, IMO, would be to change 
> the 
  categorization for the isReplacedBy tModel in both UDDI 
> V2 and V3, if 
  possible at all (in V2). The change can 
> certainly be viewed as a 
  valid errata, since it removes an 
> inconsistency. If the change in V2 
  is not acceptable, we can 
> start to find the second-best 
  solution.
> 
> Claus
> 
> 
> -----Original 
  Message-----
> From: Anne Thomas Manes [mailto:] 
> 
  Sent: Mittwoch, 22. Januar 2003 17:34
> To: Daniel Feygin; 'Uddi-Spec'; 
  Von Riegen, Claus
> Subject: RE: [uddi-spec] CR-010: isReplacedBy 
  tModel
> 
> 
> +1
> 
> > -----Original 
  Message-----
> > From: Daniel Feygin 
  [mailto:]
> > Sent: Wednesday, January 22, 2003 
  11:18 AM
> > To: 'Uddi-Spec'; 'Anne Thomas Manes'; 'Von Riegen, 
  Claus'
> > Subject: RE: [uddi-spec] CR-010: isReplacedBy 
  tModel
> > 
> > 
> > Anne, Claus,
> > 
  
> > Please see my comments inline.
> > 
> > Thank 
  you,
> > Daniel
> > 
> > 
> > > 
  -----Original Message-----
> > > From: Von Riegen, Claus 
  [mailto:]
> > > Sent: Wednesday, January 
  22, 2003 5:56 PM
> > > To: 'Anne Thomas Manes'; Uddi-Spec
> 
  > > Subject: RE: [uddi-spec] CR-010: isReplacedBy tModel
> > 
  > 
> > > 
> > > Anne,
> > > 
> 
  > > If we have two different tModels for nearly the same 
  concept,
> > > it would complicate the decision for the publisher 
  which 
> > > tModel to use, but would of course help the inquirer 
  to more 
> > > clearly distinguish between the different 
  cases.
> > > 
> > > So, let us assume three 
  cases.
> > > 
> > > First, tModel T1 represents a Web 
  service type for which a
> > > new version is developed and 
  published as tModel T2. Assuming 
> > > that this is a one-to-one 
  relationship (one tModel can be 
> > > found by using the key of 
  one tModel it is replaced with), 
> > > the publisher of tModel T1 
  should then add an identifierBag 
> > > to T1 that contains a 
  keyedReference isReplaceBy / tModelKey T2.
> > 
> > That is 
  how I would prefer to see this recommended.
> > 
> > > 
  Second, businessEntities B1 and B2 represent businesses that
> > > 
  are merged to a business, that is published as businessEntity 
> > 
  > B3. This is a many-to-one relationship (many businessEntities 
> 
  > > can be found by using the key of one businessEntity they are 
  
> > > replaced with), that means the key of B3 is not an 
> 
  > > identifier, neither for B1 nor for B2. Should we recommend to 
  
> > > use "isReplacedByMultiple" due to this reason, that is, the 
  
> > > publishers of B1 and B2 each add a categoryBag to their 
  
> > > businessEntities that contains a keyedReference 
> 
  > > isReplacedByMultiple / businessKey B3?
> > 
> > 
  No, I would rather see this done by the application of existing 
> > 
  identifier isReplacedBy to both B1 and B2.  That is, the 
> 
  publishers of 
> > B1 and B2 would each add an identifierBag to their 
  businessEntities 
> > that contains a keyedReference isReplacedBy 
  referring to the 
> > businessKey of B3.  The use of 
  isReplacedByMultiple would 
> apply in the 
> > unlikely event 
  of a businessEntity B selling off all of its 
> > businesses, 
  resulting in a number of identities Bx that are 
> separate 
> 
  > from the original B (perhaps a sad example of this could be the 
> 
  > sell-off of some defunct dom-com's assets to different 
> buyers; 
  another 
> > one could have been the court-ordered break up of our 
  good friend 
> > Microsoft [no emotion of any kind intended]). 
   Then the original B 
> > would add a categoryBag containing 
  several keyedReferences 
> > isReplacedByMultiple enumerating 
  businessKeys of each of resultant 
> > businessEntities Bx.  Am 
  I missing something here?
> > 
> > > Third, tModel T1 
  represents a Web service type for which a
> > > new version is 
  developed that consists of multiple single Web 
> > > service 
  types that are published as separate tModels, for 
> > > example, 
  T2 - T4. The RosettaNet PIP 3A4 is an example for 
> > > this, 
  since up to version 1.4, it consists of messages that 
> > > 
  represent a Purchase Order Request, a Purchase Order Change, 
> > 
  > a Purchase Order Cancellation, and a Purchase Order 
> > > 
  Acceptance, whereas it is followed by PIP 3A4 2.0 (Purchase 
> > > 
  Order Request & Purchase Order Confirmation), PIP 3A8 1.0 
> > 
  > (Purchase Order Change) and PIP 3A9 1.0 (Purchase Order 
> > 
  > Cancellation). This is a one-to-many relationship (one 
> > > 
  businessEntity can be found by using one of the keys of many 
> > 
  > tModels it is replaced with), that means the keys of T2, T3 
> > 
  > and T4 are identifiers, the all "identify" T1. Should we 
> > 
  > recommend to use "isReplacedBy" due to this reason, that is, 
> 
  > > the publisher of T1 adds a categoryBag to A1 that contains 
> 
  > > three keyedReferences isReplacedByMultiple / tModelKey T2, 
> 
  > > isReplacedByMultiple / tModelKey T3, isReplacedByMultiple / 
> 
  > > tModelKey T4?
> > 
> > That is exactly along the 
  lines of what I am thinking.
> > 
> > > I fear that I 
  would have problems to explain this to
> > > publishers so that 
  they make consistent use of the different 
> > > isReplacedBy 
  tModels.
> > The publishers shouldn't really care - that would be 
  taken 
> care of by 
> > the software they use.  Their 
  only problem would be if we 
> deprecate or 
> > change the 
  definition of existing isReplacedBy tModel that 
> they use. 
> 
  > Guidance to UDDI client implementers is fairly simple too:
> > 
  1) when an entity is replaced by one other entity, the 
> _preferred_ 
  way 
> > of communicating that is isReplacedBy;
> > 2) when 
  an entity is replaced by more than one other entity, the 
> > _only_ 
  way of communicating that is isReplacedByMultiple.
> > 
> > 
  Hence my interpretation that we are introducing a new 
> capability and 
  
> > not fixing a bug.  What am I missing?
> > 
> 
  > > What do you think?
> > > 
> > > 
  Claus
> > > 
> > > -----Original Message-----
> 
  > > From: Anne Thomas Manes [mailto:]
> > > 
  Sent: Mittwoch, 22. Januar 2003 14:25
> > > To: Von Riegen, Claus; 
  Uddi-Spec
> > > Subject: RE: [uddi-spec] CR-010: isReplacedBy 
  tModel
> > > 
> > > 
> > > I'm thinking 
  that the better alternative is to create an
> > > 
  isReplacedByMultiple tModel.
> > > 
> > > > 
  -----Original Message-----
> > > > From: Von Riegen, Claus 
  [mailto:]
> > > > Sent: Wednesday, 
  January 22, 2003 7:42 AM
> > > > To: 'Anne Thomas Manes'; 
  Uddi-Spec
> > > > Subject: RE: [uddi-spec] CR-010: isReplacedBy 
  tModel
> > > >
> > > >
> > > > 
  Anne,
> > > >
> > > > Thanks for the 
  well-prepared change request.
> > > >
> > > > As 
  you note in section 3 (Impact statement), there is a 
> > > > 
  significant
> > > > impact for UDDI V2 registries if we make 
  the change for 
> V2 also, 
> > > > especially if the 
  tModel is already used often.
> > > >
> > > > 
  However, there is at least a similar impact for UDDI V3 
> 
  registries
> > > > that also support UDDI V2 APIs: at the time 
  UDDI V3 is 
> implemented, 
> > > > all keyedReferences 
  to the V2 isReplacedBy identifier 
> > > system within an
> 
  > > > identifierBag have to be migrated to then occur within 
  a
> > > categoryBag.
> > > > Otherwise, the V2/V3 
  multi-version registry would have to switch
> > > > between the 
  two personalities of the keyedReference on the 
> > > fly - 
  and
> > > > would have to support two personalities of the same 
  
> tModel for the
> > > > different UDDI versions as well 
  (note that the key for the 
> > > > isReplacedBy tModel is not 
  changed).
> > > > But the migration would mean that V2 API call 
  response messages
> > > > would contain the isReplaceBy tModel 
  as a category system, which
> > > > is simply wrong per the V2 
  specification.
> > > > Thus, I have the dim feeling that we 
  have to change the
> > > > categorization for the isReplacedBy 
  tModel already in 
> V2 in order
> > > > to prevent 
  problems that can occur later.
> > > >
> > > > 
  An alternative could be to not change the categorization at all 
> > 
  > > ...
> > > >
> > > > Thoughts?
> 
  > > >
> > > > Claus
> > > >
> 
  > > > -----Original Message-----
> > > > From: Anne 
  Thomas Manes [mailto:]
> > > > Sent: Mittwoch, 
  22. Januar 2003 00:39
> > > > To: Uddi-Spec
> > > 
  > Subject: [uddi-spec] CR-010: isReplacedBy tModel
> > > 
  >
> > > >
> > > >
> > > 
  >
> > > > Anne Thomas Manes
> > > > 
  617-497-1748 (land)
> > > > 617-642-3144 
  (mobile)

----------------------------------------------------------------
To 
  subscribe or unsubscribe from this elist use the subscription
manager: 
  <http://lists.oasis-open.org/ob/adm.pl>