Mobile and embedded devices like PDAs, mobile phones, and all kinds of consumer hardware populate the world we live in. Despite
the vision of ubiquitous computing and its idea of spontaneous interaction among these devices more than fifteen years ago,
most of them are still isolated and restricted in their interaction capabilities. One reason for this limitation is the poor
support for dynamic adaptation and evolution of software in distributed environments.
This paper proposes AOCI, an Aspect-Oriented Component Infrastructure that takes the core ideas of AOP, the separation of
concerns and system modularization to make them more adaptable and evolvable, to the domain of component systems. Components
are usually considered as black boxes that can be combined to a complex system using their outer interfaces. In the context
of our infrastructure, components export possible adaptation points, which are enriched by ontological information. This enables
the application of AOP techniques without detailed knowledge about the component’s internals, enabling dynamic and distributed
adaptation.
Our prototype is based on OSGi and provides a complete infrastructure to weave local as well as remote components. We demonstrate
the feasibility of our approach by adapting the RUBiS infrastructure (a web-based bidding system) to support dynamic user-centric
error detection.