Im Bereich der Informationstechnik ist die Adaption von Software an veränderte Gegebenheiten und Umgebungen ein wichtiges Thema. Dabei bestimmen vor allem die konkret verwendete ...Software-Programmiersprache, die benutzten Entwurfsmuster und die der Applikation zugrundeliegende Software-Architektur, mit welchem Aufwand eine Anwendung auf neue Anforderungen eingehen kann. Darüber hinaus war und ist es interessant, Mechanismen zu entwickeln, mit denen Applikationen selbst auf spontane Änderungen in der Umgebung mittels einer Adaption reagieren können. Diese Technik, auch als Kontextadaption bezeichnet, kann die Struktur, die Funktionalität oder das Verhalten der Software zur Laufzeit ändern.Dies ist besonders im Bereich des ubiquitären Rechnens wichtig, in dem immer kleinere Computer wie z.B. Smartphones den Menschen bei ihren Aktivitäten unterstützen. Kontextadaptive Systeme haben es sich zur Aufgabe gemacht, die Software situationsgerecht je nach Nutzung durch den Benutzer interaktiv anzupassen.Bei einer möglichen Umsetzung solcher Funktionalitäten ergeben sich jedoch eine Reihe von technischen Hürden. Da die meisten Änderungen spontan erfolgen und nicht antizipierbar sind, ist es schwierig, diese während des Softwareentwurfs zu berücksichtigen. Darüber hinaus sollten die Änderungen für den Nutzer möglichst transparent durchgeführt werden. Auch sollten Mittel und Wege gefunden werden, dass Adaptionsentwickler ohne genaues internes Wissen über die Applikation Adaptionen bereitstellen können.In dieser Dissertation wird mit dem Aspect-Oriented Component Infrastructure (AOCI)-Framework ein Ansatz vorgestellt, um in ubiquitären Umgebungen Kontextadaption bereitzustellen. AOCI verfolgt den Ansatz, die Umgebung, Applikationen und Adaptionen mittels definierten Ausdrücken genauer zu beschreiben. Diese Information wird in einem Modell gespeichert, folgt einer definierten Semantik und dient zur Laufzeit als Art erweiterter Vertrag, um situationsgerecht entscheiden zu können, ob eine Adaption angewendet werden kann und soll. Dieses Modell wurde mittels Ontologien umgesetzt. Neben diesem Ontologiemodell bedient sich AOCI verschiedener Adaptionstechniken, um dann die eigentliche Adaption zur Laufzeit durchzuführen.Die zentralen Aspekte dieser Dissertation sind daher das ontologische Modell und die Umsetzung und Integration von Adaptionstechniken, die in oben skizzierter Weise eine gezielte und automatisierte Kontextadaption zur Laufzeit ermöglichen.
Providing context-aware adaptations based on a semantic model Söldner, Guido; Kapitza, Rüdiger; Meier, René
Proceedings of the 11th IFIP WG 6.1 international conference on Distributed applications and interoperable systems,
06/2011
Conference Proceeding
Recenzirano
Smartphones and tablet PCs are on the verge of revolutionizing the information society by offering high quality applications and almost permanent connectivity to the Internet in a mobile world. They ...naturally support new applications that take advantage of context information like location, time and other environmental conditions. However, developing these novel context-aware applications is challenging as it is difficult to a priori anticipate their execution context and the adaptations that might be necessary to use new context information. This issue is reinforced by the semantic gap between the low-level technical realization of adaptation mechanisms and the demand to describe adaptations in abstract and comprehensible business terms.
This paper presents programming support for context-aware adaptations based on a semantic model that builds on the AOCI framework. Using such a model, applications and adaptations can be described by means of easy to comprehend business terms. Thereby the model enables the AOCI framework to store and publish both context and domain-specific run-time information and provides a basis for high-level and tailored programming support. This enables to transparently select adaptations based on various criteria and integrate them into applications at run-time. At the level of adaptation mechanisms our approach supports integration for permanent changes using Aspect-Oriented Programming and more importantly for spontaneous and short-time integration of web services by means of interceptors.
Smartphones and tablet PCs are on the verge of revolutionizing the information society by offering high quality applications and almost permanent connectivity to the Internet in a mobile world. They ...naturally support new applications that take advantage of context information like location, time and other environmental conditions. However, developing these novel context-aware applications is challenging as it is difficult to a priori anticipate their execution context and the adaptations that might be necessary to use new context information. This issue is reinforced by the semantic gap between the low-level technical realization of adaptation mechanisms and the demand to describe adaptations in abstract and comprehensible business terms.
This paper presents programming support for context-aware adaptations based on a semantic model that builds on the AOCI framework. Using such a model, applications and adaptations can be described by means of easy to comprehend business terms. Thereby the model enables the AOCI framework to store and publish both context and domain-specific run-time information and provides a basis for high-level and tailored programming support. This enables to transparently select adaptations based on various criteria and integrate them into applications at run-time. At the level of adaptation mechanisms our approach supports integration for permanent changes using Aspect-Oriented Programming and more importantly for spontaneous and short-time integration of web services by means of interceptors.
The majority of object migration systems do not support heterogeneous environments. Few systems solve this challenge by specifying a platform and language independent state transfer format, requiring ...a compatible implementation for every target language. However, fields of research like Ubiquitous and Pervasive Computing with mobile users and applications demand an even more platform-independent, flexible and adaptive approach.
This paper presents a novel approach for adaptive object and agent migration in heterogeneous environments based on our former work enabling language- and platform-independent object mobility in CORBA. By providing flexible mechanisms to reduce, expand and transform an object’s state and functionality during migration, we support adaptation to the context and application-specific demands at the target system.
This is achieved by introducing a separation of state, functionality and implementation code instead of mapping particular state on particular code. Our prototype system supports object migration from Java to C++ and vice versa. In principle, our concept can be transferred to any CORBA-supported programming language.
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.
AOCI Söldner, Guido; Kapitza, Rüdiger; Schober, Sven
Proceedings of the 8th workshop on Aspects, components, and patterns for infrastructure software,
03/2009
Conference Proceeding
In this paper, we propose ontology-based pointcuts, a novel mechanism based on the ideas of AOP, the separation of concerns and system modularization, to enhance components, thus making them more ...adaptable and evolvable. The core idea of ontologybased pointcuts is to specify pointcuts in terms of ontological concepts instead of patterns that are matched against source code. 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 are extended by exporting possible adaptation points, which are enriched by ontological information. This ontological metadata represents concepts from a domain model, defined by a domain expert. The ontology is implemented within an intermediate layer that decouples the matching pointcuts from the concrete source level within the components.
This enables the application of AOP techniques without detailed knowledge about the component's internals, enabling dynamic and distributed adaptation and reducing the fragile pointcut problem to the component scope. This paper presents the design and the expressiveness of the ontology-based pointcuts. We show several practical examples how to use joinpoint model and the pointcut specification followed by a short discussion.
In ubiquitous computing, dynamic adaptation and the evolvability of software become increasingly important. This paper proposes AOCI, an aspect-oriented component infrastructure that combines the ...core ideas of aspect-oriented programming (AOP) and component based systems. Components are usually considered as black boxes that can be combined to form complex systems. In the context of our infrastructure, components export possible points of adaptation, which are tagged with ontological information. This information enables the use of AOP techniques without detailed knowledge about the component's internals, enabling distributed and dynamic adaptation.