Title :
Analysis of a conflict between aggregation and interface negotiation in Microsoft´s Component Object Model
Author :
Sullivan, Kevin J. ; Marchukov, Mark ; Socha, John
Author_Institution :
Dept. of Comput. Sci., Virginia Univ., Charlottesville, VA, USA
Abstract :
Many software projects today are based on the integration of independently designed software components that are acquired on the market, rather than developed within the projects themselves. A component standard, or integration architecture, is a set of design rules meant to ensure that such components can be integrated in defined ways without undue effort. The rules of a component standard define, among other things, component interoperability and composition mechanisms. Understanding the properties of such mechanisms and interactions between them is important for the successful development and integration of software components, as well as for the evolution of component standards. The paper presents a rigorous analysis of two such mechanisms: component aggregation and dynamic interface negotiation, which were first introduced in Microsoft´s Component Object Model (COM). We show that interface negotiation does not function properly within COM aggregation boundaries. In particular, interface negotiation generally cannot be used to determine the identity and set of interfaces of aggregated components. This complicates integration within aggregates. We provide a mediator-based example, and show that the problem is in the sharing of interfaces inherent in COM aggregation
Keywords :
application program interfaces; distributed object management; open systems; project management; COM aggregation; COM aggregation boundaries; Microsoft Component Object Model; component aggregation; component interoperability; component standard; component standards; composition mechanisms; design rules; dynamic interface negotiation; independently designed software components; integration architecture; interface negotiation; mediator-based example; rigorous analysis; software projects; Aggregates; Computer architecture; Costs; Independent component analysis; Interference; Java; Mechanical factors; Software design; Software standards; Standards development;
Journal_Title :
Software Engineering, IEEE Transactions on