Issue 10982: Section: 7.2.10 (uml-corba-ccm-ftf) Source: Objective Interface Systems (Mr. Victor Giddings, victor.giddings@mail.ois.com victor.giddings@ois.com) Nature: Revision Severity: Significant Summary: The following constraints in 7.2.10 are incorrect: [1] A ConstantDef must be defined in a Container [2] A TypedefDef must be defined in a Container [6] An ExceptionDef must be defined in a Container [8] An InterfaceDef must be defined within a ModuleDef [9] A ValueDef must be defined within a ModuleDef Each of these can be defined as "global scope" (as is acknowledged in 7.2.3: "Modules can contain any definition that can appear at global scope (type, constant, exception, and interface definitions)" Resolution: see above Revised Text: Actions taken: May 7, 2007: reeived issue November 7, 2007: closed issue Discussion: Resolution/Clarification: According to the Chapter 10, Figure 10-2 of the CORBA/IIOP: Repository or ComponentIR::Repository ConstantDef TypedefDef ExceptionDef [Ext]InterfaceDef [Ext]ValueDef ValueBoxDef ModuleDef … Repository is an interface that provides global access to the Interface Repository, it can contain constants, typedefs, exceptions, interfaces, value types, value boxes, native types, and modules. Repository derives from Container (Chapter 10.5.6 of the CORBA/IIOP), therefore everything in the Repository is defined in a Container. The constraints 1,2,6 are tautologies and needless. According to the description of the Repository below the constraints 7, 8 and 9 are not correct: InterfaceDef and ValueDef can be also defined as “global” and contained immediately in the Repository object. Changes: Chapter 7.2.10, page 10: Constraints 1, 2, 6, 7, 8 and 9 have been deleted from the specification. End of Annotations:===== m: webmaster@omg.org Date: 07 May 2007 16:05:51 -0400 To: Subject: Issue/Bug Report -------------------------------------------------------------------------------- Name: Victor Giddings Company: Objective Interface Systems mailFrom: victor.giddings@ois.com Notification: No Specification: UML Profile for CORBA and CCM Section: 7.2.10 FormalNumber: ptc/2007-05-02 Version: FAS RevisionDate: 5/2/2007 Page: 10 Nature: Revision Severity: Significant HTTP User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 Description The following constraints in 7.2.10 are incorrect: [1] A ConstantDef must be defined in a Container [2] A TypedefDef must be defined in a Container [6] An ExceptionDef must be defined in a Container [8] An InterfaceDef must be defined within a ModuleDef [9] A ValueDef must be defined within a ModuleDef Each of these can be defined as "global scope" (as is acknowledged in 7.2.3: "Modules can contain any definition that can appear at global scope (type, constant, exception, and interface definitions)" Date: Fri, 11 May 2007 11:51:31 +0200 From: Julia Reznik User-Agent: Thunderbird 1.5.0.5 (Windows/20060719) To: victor.giddings@ois.com Cc: uml-corba-ccm-ftf@omg.org Subject: issue 10982 -- UML Profile for CORBA & CCM FTF X-OriginalArrivalTime: 11 May 2007 09:51:29.0247 (UTC) FILETIME=[F2A0D6F0:01C793B1] Hello Victor, first of all many thanks for your submitted issues. I just want to discuss the Issue 10982: " The following constraints in 7.2.10 are incorrect: [1] A ConstantDef must be defined in a Container [2] A TypedefDef must be defined in a Container [6] An ExceptionDef must be defined in a Container [8] An InterfaceDef must be defined within a ModuleDef [9] A ValueDef must be defined within a ModuleDef Each of these can be defined as "global scope" (as is acknowledged in 7.2.3: "Modules can contain any definition that can appear at global scope (type, constant, exception, and interface definitions)". You are right, according to the OMG IDL Grammar (see below): (1) ::= * + (2) ::= .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. (3) ::= .module. .{. + .}. ch of mentioned in the Issue definition can be defined as .global scope., but it is related to the IDL Grammar definition. The BaseIDL metamodel is a description of the CORBA Interface Repository (see relevant document, page 5: .The BaseIDL package is a MOF-compliant description of the pre-existing CORBA Interface Repository. This metamodel has been standardized in formal/06-04-01..). The Interface Repository (CORBA/IIOP Specification, Chapter 10) is .the component of the ORB that provides persistent storage of interface definitions.it manages and provides access to a collection of object definitions specified in OMG IDL... So, we have to distinguish between both things: IDL Grammar and Interface Repository: the BaseIDL metamodel doesn.t describe the CORBA IDL Grammar, but provides concepts for object definitions specified in IDL. Therefore, I still think that the mentioned above constraints are correct. Do you agree with me? Could you accept my answer? Best regards, Julia Date: Mon, 14 May 2007 18:58:55 +0200 From: Julia Reznik User-Agent: Thunderbird 1.5.0.5 (Windows/20060719) To: victor.giddings@mail.ois.com Cc: uml-corba-ccm-ftf@omg.org Subject: Re: issue 10982 -- UML Profile for CORBA & CCM FTF X-OriginalArrivalTime: 14 May 2007 16:58:51.0272 (UTC) FILETIME=[25B49880:01C79649] Hello Victor, Victor Giddings schrieb: Hello Julia, Let me restate in case I misunderstand. I think you contend: 1) The Interface Repository restricts the definitions that it contains according to the constraints under question. (BTW I cannot find these constraints in formal/06-04-01) You can find these constraints in formal/06-04-01 on the page 182, figure 11.5 2) The UML Profile should reflect the constaints of the Interface Repository, not the full grammar of the OMG IDL language. Correct? The CCM metamodel reflects the constraints of the IR, but also indirectly the OMG IDL. The UML Profile defines how UML can be extended for representation of CCM concepts (based on the CORBA IDL), the CCM metamodel can be used for a CCM repository generation where CCM UML models can be stored. So, we have in the CCM metamodel abstract metaclasses Container and Contained, they are used to form a containment hierarchy in the Interface Repository. "A Container can contain any number of objects derived from the Contained interface. All Containers, except for Repository, are also derived from Contained." (Chapter 10.5.4 of the CORBA/IIOP spec) I'm afraid I do not agree with either of these. 1) I can find no restrictions in Chapter 10 of the CORBA/IIOP specification along the lines of these restrictions. In fact, there is Figure 10-2: Repository or ComponentIR::Repository ConstantDef TypedefDef ExceptionDef [Ext]InterfaceDef [Ext]ValueDef ValueBoxDef ModuleDef ComponentDef - only in ComponentIR::Repository HomeDef - only in ComponentIR::Repository Am I missing something? Yes, this is correct, but please refer to the chapter 10.5.6: "...Since Repository derives only from Container and not from Contained, it does not have a RepositoryId associated with it. By default it is deemed to have the RepositoryId "" (the empty string) for purposes of assigning a value to defined_in field of the description structure of ModuleDef, InterfaceDef, ValueDef, ValueBoxDef, TypedefDef, ExceptionDef, and ConstantDef that are contained immediately in the Repository object...." So, Repository is a Container. What do you think now, do the mentioned constraints have a chance to keep alive ? 2) There is a lot of utility in this profile independent of the presence or absence of an Interface Repository. An Interface Repository is not as useful as first thought, and most ORBs function without them. Yes, I agree, but we use (or have to use as a basis) already exiting in the formal/06-04-01 CCM metamodel. Victor, thank you for your comments and discussion... Best regards, Julia Victor Giddings mailto:victor.giddings@mail.ois.com Senior Scientist +1 703 295 6520 Objective Interface Systems Fax: +1 703 295 6501 -------------------------------------------------------------------------------- From: Julia Reznik [mailto:reznik@fokus.fraunhofer.de] Sent: Friday, May 11, 2007 5:52 AM To: victor.giddings@ois.com Cc: uml-corba-ccm-ftf@omg.org Subject: issue 10982 -- UML Profile for CORBA & CCM FTF Hello Victor, first of all many thanks for your submitted issues. I just want to discuss the Issue 10982: " The following constraints in 7.2.10 are incorrect: [1] A ConstantDef must be defined in a Container [2] A TypedefDef must be defined in a Container [6] An ExceptionDef must be defined in a Container [8] An InterfaceDef must be defined within a ModuleDef [9] A ValueDef must be defined within a ModuleDef Each of these can be defined as "global scope" (as is acknowledged in 7.2.3: "Modules can contain any definition that can appear at global scope (type, constant, exception, and interface definitions)". You are right, according to the OMG IDL Grammar (see below): (1) ::= * + (2) ::= .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. | .;. (3) ::= .module. .{. + .}. ch of mentioned in the Issue definition can be defined as .global scope., but it is related to the IDL Grammar definition. The BaseIDL metamodel is a description of the CORBA Interface Repository (see relevant document, page 5: .The BaseIDL package is a MOF-compliant description of the pre-existing CORBA Interface Repository. This metamodel has been standardized in formal/06-04-01..). The Interface Repository (CORBA/IIOP Specification, Chapter 10) is .the component of the ORB that provides persistent storage of interface definitions.it manages and provides access to a collection of object definitions specified in OMG IDL... So, we have to distinguish between both things: IDL Grammar and Interface Repository: the BaseIDL metamodel doesn.t describe the CORBA IDL Grammar, but provides concepts for object definitions specified in IDL. Therefore, I still think that the mentioned above constraints are correct. Do you agree with me? Could you accept my answer? Best regards, Julia Date: Tue, 15 May 2007 16:58:19 +0200 From: Julia Reznik User-Agent: Thunderbird 1.5.0.5 (Windows/20060719) To: victor.giddings@mail.ois.com Cc: uml-corba-ccm-ftf@omg.org Subject: Re: issue 10982 -- UML Profile for CORBA & CCM FTF X-OriginalArrivalTime: 15 May 2007 14:58:13.0595 (UTC) FILETIME=[76207AB0:01C79701] Hello Victor, Victor Giddings schrieb: Hello Julia, Thanks for your patience with me and your reasoned responses. I'm still having some problems with the existing set of constraints. First, in regards to constraints 1, 2, 6: I'm afraid there seems to be an attempt here to "have it both ways". 1) If "Repository" is a type of Container, then it should be part of the metamodel and these "constraints" are really tautologies (everything is in the Repository, so everything is in a Container) I completely agree with you, these constraints are redundant, so I think, the best solution is to delete constraints 1,2,6 from the specification. 2) If Repository is not modeled in the metamodel, then these constraints are not true. I would say, the whole BaseIDL metamodel is the metamodel of the Repository. These constraints are true (since they refer to the metaclasses Container, ConstantDef, TypedDef and ExceptionDef, which are in the model), but "really tautologies (everything is in the Repository, so everything is in a Container)" as you already said. Second, in regards to constraints 8 and 9, is there a similar "hack" that there always exists a distinguished "global" ModuleDef? If so, [7] would state that a Repository is a ModuleDef. Otherwise, these restrictions are not true. Yes, you are right, this constraint is not true, since constants, typedefs, exceptions, interfaces, valuetypes, value boxes and modules can be defined outside the scope of a module. In this case the Repository is a "global" Container, but not the "global" ModuleDef, I would say... Am I right? However, I believe these could have been an attempt to state the following valid constraints: [8] if an InterfaceDef is defined in a Container, this Container must be a ModuleDef [9] if a ValueDef must be defined in a Container, this Container must be a ModuleDef (These constraints would properly disallow a InterfaceDef with a ValueDef, and vice versa.) The question here is: do we really need this restriction for InterfaceDef and ValueDef metaclasses? You are right, and I do recognize that according to the Figure 10.2 InterfaceDef and ValueDef can be defined both: in the ModuleDef and as "global" as well. I do realize that I am contending that there are errors in formal/06-04-01. BTW, what is the intended relationship to the CORBA Components specification. Shouldn't this specification of the metamodel replace the metamodel in that specification? Yes, the metamodel in this specification should replace the metamodel in formal/06-04-01. Best regards, Julia Best regards, Victor Giddings mailto:victor.giddings@mail.ois.com Senior Scientist +1 703 295 6520 Objective Interface Systems Fax: +1 703 295 6501 -------------------------------------------------------------------------------- From: Julia Reznik [mailto:reznik@fokus.fraunhofer.de] Sent: Monday, May 14, 2007 12:59 PM To: victor.giddings@mail.ois.com Cc: uml-corba-ccm-ftf@omg.org Subject: Re: issue 10982 -- UML Profile for CORBA & CCM FTF Hello Victor, Victor Giddings schrieb: Hello Julia, Let me restate in case I misunderstand. I think you contend: 1) The Interface Repository restricts the definitions that it contains according to the constraints under question. (BTW I cannot find these constraints in formal/06-04-01) You can find these constraints in formal/06-04-01 on the page 182, figure 11.5 2) The UML Profile should reflect the constaints of the Interface Repository, not the full grammar of the OMG IDL language. Correct? The CCM metamodel reflects the constraints of the IR, but also indirectly the OMG IDL. The UML Profile defines how UML can be extended for representation of CCM concepts (based on the CORBA IDL), the CCM metamodel can be used for a CCM repository generation where CCM UML models can be stored. So, we have in the CCM metamodel abstract metaclasses Container and Contained, they are used to form a containment hierarchy in the Interface Repository. "A Container can contain any number of objects derived from the Contained interface. All Containers, except for Repository, are also derived from Contained." (Chapter 10.5.4 of the CORBA/IIOP spec) I'm afraid I do not agree with either of these. 1) I can find no restrictions in Chapter 10 of the CORBA/IIOP specification along the lines of these restrictions. In fact, there is Figure 10-2: Repository or ComponentIR::Repository ConstantDef TypedefDef ExceptionDef [Ext]InterfaceDef [Ext]ValueDef ValueBoxDef ModuleDef ComponentDef - only in ComponentIR::Repository HomeDef - only in ComponentIR::Repository Am I missing something? Yes, this is correct, but please refer to the chapter 10.5.6: "...Since Repository derives only from Container and not from Contained, it does not have a RepositoryId associated with it. By default it is deemed to have the RepositoryId "" (the empty string) for purposes of assigning a value to defined_in field of the description structure of ModuleDef, InterfaceDef, ValueDef, ValueBoxDef, TypedefDef, ExceptionDef, and ConstantDef that are contained immediately in the Repository object...." So, Repository is a Container. What do you think now, do the mentioned constraints have a chance to keep alive ? 2) There is a lot of utility in this profile independent of the presence or absence of an Interface Repository. An Interface Repository is not as useful as first thought, and most ORBs function without them. Yes, I agree, but we use (or have to use as a basis) already exiting in the formal/06-04-01 CCM metamodel. Victor, thank you for your comments and discussion... Best regards, Julia Victor Giddings mailto:victor.giddings@mail.ois.com Senior Scientist +1 703 295 6520 Objective Interface Systems Fax: +1 703 295 6501