-
Key: CORBA26-58
-
Legacy Issue Number: 4077
-
Status: closed
-
Source: Iconixx ( Thomas Hawker)
-
Summary:
I have noticed that assemblies do not follow the composition pattern.
Thus, assemblies cannot themselves be used as building blocks for other
assemblies. I think part of this comes from the fact that installation
and management of assemblies is mostly "magic" done behind the scenes by
various installation and support utilities. In order to "reuse" an
existing assembly, one must copy an existing assembly definition (I
guess constructed completely by hand) to a new definition, which must
then be tailored to incorporate the new strategy and pieces. This seems
counter-intuitive, besides being manually intensive, for if an assembly
does useful work, why would I want to expose its internal details just
to take advantage of that usefulness? As pointed out by Mr. Dubois in
issue 3939, because all of that "magic" is not specified by various
formal interfaces, it is highly likely approaching certainty that
assemblies will only work for the particular vendor on which they were
built. Since I believe the intention was to promote interoperability in
general and as much code automation as possible for components in
particular, it would seem that we want to restrict the "magic" by taking
the formalisms behind assemblies to another level.<p>I suggest that, just as a <i>composition</i> exists to tie a component,
its home, and various configuration properties together, we can create
for the CIDL grammar productions for an <i>assembly</i> to tie multiple
compositions together. Subsequently, an assembly could be treated as a
composition, to be used by other assemblies, only exposing selected
facets or events from its constituent entities. I think there are a
number of advantages to this approach: (1) It solves certain semantic
ambiguities with assemblies, for instance whether facets, receptacles,
and events are private or public to the assembly. (2) The assembly
implementation, its XML, and its relation to its constituents and home,
can be generated automatically from the CIDL description [we have been
working on this extensively]. Our approach is to use an assembly
exactly like a composition, as the realization of a component and home
definition. Our research efforts imply that all of the assembly
component and home code can be automatically generated - no user
tailoring will be needed. (3) Because the assembly now acts as a
component (composition), it can be reused by other assemblies without
knowledge of its internal structure. (4) Activation of an assembly
appears the same as for any other component; it merely requires formal
specification of previously undefined interfaces to accomplish it, thus
promoting portability and interoperability. (5) The assembly
"deployment magic" becomes exposed through the interfaces above, thus
removing several of the deployment tools and servers/services identified
in the specification. The only real drawbacks I see are the complexity of the assembly
productions (we can really get out of control with this) and that
assemblies now have an actual code base rather than being "magical
creatures" managed by the deployment tools. I guess these are both
two-edged swords. There might be a run-time footprint change for all of
these extra interfaces, but those had to be lying around in other places
anyway. -
Reported: CORBA 2.4.1 — Fri, 24 Nov 2000 05:00 GMT
-
Disposition: Resolved — CORBA 2.6.1
-
Disposition Summary:
rejected
-
Updated: Fri, 6 Mar 2015 20:58 GMT
CORBA26 — Component assemblies do not follow composition pattern
- Key: CORBA26-58
- OMG Task Force: Core RTF