1. OMG Issue

DEPL — Semantics of IDL generated from Deployment & Configuration Specification

  • Key: DEPL-67
  • Legacy Issue Number: 7278
  • Status: closed  
  • Source: Vanderbilt University ( Krishnakumar Balasubramanian)
  • Summary:

    see the following definition in the IDL generated from the Target Data
    Model using UML Profile for CORBA, and have some issues with semantics when
    interpreting the following generated IDL mapping from the model:

    struct SharedResource

    { string name; ::CORBA::StringSeq resourceType; ::CORBA::ULongSeq nodeRef; SatisfierProperties property; }


    typedef sequence < SharedResource > SharedResources;

    struct Resource

    { string name; ::CORBA::StringSeq resourceType; SatisfierProperties property; }


    typedef sequence < Resource > Resources;

    struct Node

    { string name; string label; ::CORBA::ULongSeq sharedResourceRef; ::CORBA::ULongSeq connectionRef; Resources resource; }


    struct Domain

    { string UUID; string label; SharedResources sharedResource; Nodes node; Interconnects interconnect; Bridges bridge; }


    The idea of the above IDL is to represent the following semantics:

    A Domain is composed of Nodes (among other things). A Domain can also
    contain a list of the resources that are shared among the different nodes
    in the domain. There is also an association between the Nodes of the domain
    and the SharedResources in a domain. Basically, the nodes of the domain
    contain a list of the resources that they share with other nodes, and the
    each shared resource keep track of the nodes that share it.

    Please refer to Fig 6-4 Target Data Model Overview, in the document:

    Ideally one should be able to represent this in IDL like this:

    struct Node;

    typedef Sequence<Node> Nodes;

    struct SharedResource

    { string name; ::CORBA::StringSeq resourceType; Nodes nodeRef; SatisfierProperties property; }


    except that this is invalid IDL. The alternative mapping that is generated
    doesn't seem to make sense. What should I fill in as values for the
    ::CORBA::ULongSeq in struct SharedResource? Why did it get mapped to an
    CORBA::ULongSeq? Is it intended that these unsigned longs will refer to the
    gasp pointers of the actual nodes in my parsed DOM tree with Domain as
    root? If so, it will not work with 64-bit machines. How is one supposed to
    refer a IDL struct member i.e, node inside a Domain using unsigned long?
    The only identifier that is unique among all nodes in a Domain is it's
    name. But unsigned long just doesn't make sense to me.

    The above illegal IDL definition which directly includes Nodes after just
    forward declaring node would work if Node was mapped to a valuetype. But I
    don't know if that is a feasible solution.

    Any clarifications on this would be really helpful.

  • Reported: DEPL 1.0b1 — Sun, 30 Apr 2000 04:00 GMT
  • Disposition: Resolved — DEPL 1.0
  • Disposition Summary:

    No Data Available

  • Updated: Fri, 6 Mar 2015 20:58 GMT