Search:       RSS, Atom

Site navigation:

Checking Component Compatibility in Context

Unlike the standard type-based compatibility which ensures „anytime-anywhere“ safe component update and binding, in contextual compatibility we leverage the knowledge of deployed component’s context – the „environment“ consisting of other components running in the same framework and their actual links to the updated component. The key theoretical improvement is the definition of conditions for safe substitution in cases where the update version is not subtype-compatible (contravariant) with the deployed version. This effectively extends the number of cases when an update can be approved, with clear practical advantages.

The context of the deployed component is the “inverse” of the component in a deployment environment. It is represented as a „pseudo component“ which comprises as imports the union of all features exported by all other components deployed in the same framework, and as exports the client counterpart features of components bound to the current component’s exports. This context is then subject to subtype comparison with the update version of the component. Contrary to the standard notion of contravariance (which forms the base of subtyping rules) this has the effect that a component with fewer exports or more dependencies can be declared as type-compatible in the given context.

The details of the core approach are described in the PhD thesis Brada, P. Specification-Based Component Substitutability and Revision Identification, Charles University in Prague, 2003.

OSGi Bundle Contextual Compatibility Checker (BCxC)

Contextual compatibility checking has been implemented for the OSGi technology. The tool combines two functionalities, the extraction of a given bundle’s context using standard framework interface and registries, and the type-based comparison which works the same as in the OBCC tool. The implementation consists of a context-representation bundle and a main bundle driving the compatibility checks.

  • To obtain the BCxC tool (result of diploma thesis project by T.Ptacnik, 2009), contact the project members