Kj. Sullivan et al., Analysis of a conflict between aggregation and interface negotiation in microsoft's component object model, IEEE SOFT E, 25(4), 1999, pp. 584-599
Many software projects today are based on the integration of independently
designed software components that are acquired on the market, rather than d
eveloped within the projects themselves. A component standard, or integrati
on architecture, is a set of design rules meant to ensure that such compone
nts can be integrated in defined ways without undue effort. The rules of a
component standard define, among other things, component interoperability a
nd composition mechanisms. Understanding the properties of such mechanisms
and interactions between them is important for the successful development a
nd integration of software components, as well as for the evolution of comp
onent standards. This paper presents a rigorous analysis of two such mechan
isms: component aggregation and dynamic interface negotiation, which were f
irst introduced in Microsoft's Component Object Model (COM). We show that i
nterface negotiation does not function properly within COM aggregation boun
daries. In particular, interface negotiation generally cannot be used to de
termine the identity and set of interfaces of aggregated components. This c
omplicates integration within aggregates. We provide a mediator-based examp
le, and show that the problem is in the sharing of interfaces inherent in C
OM aggregation.