Program
Day 1 - 29. March 2008
| 09:00-10:30 | Session I - Keynote Session Chairs: Cesare Pautasso, Éric Tanter |
|
|
Invited Speaker: Mehmet Aksit Keynote: Software composition: from inheritance to aspect-orientation Slides - Abstract
The concept of software composition dates back to the introduction of
the notion of software modularization. This talk will first give a brief
overview of various behavioral composition mechanisms such as function
invocation, delegation, inheritance, reflection and meta-object
protocols, and aspect-orientation. Secondly, the talk will outline
various design dimensions of composition such as static vs. dynamic,
symmetric vs. asymmetric, local vs. systemic, black-box vs. white-box,
general-purpose vs. domain-specific, and explicit vs. oblivious
composition. Further, the talk will focus on message interception-based
composition mechanisms with a special emphasis on composition-filters.
Along this line, various new research results will be illustrated in
providing language independence, and semantic interference detection and
avoidance. Finally, the talk will end by presenting our new research
results in specifying and automatically measuring and verifying the
composibility characteristics of software.
|
||
| 10:30-11:00 | Coffee Break | |
| 11:00-12:30 | Session II - Composition Languages Session Chair: Welf Löwe |
|
| 11:00-11:30 | Growing a Language: The GLoo Perspective Markus Lumpe Slides - Abstract
The design of programming languages is, in general, geared towards
accumulation rather than composition of features. However, by adding an everincreasing
number of built-in abstractions, any programming language is eventually
at risk to reach a critical mass at which it may become increasingly difficult
for designers to maintain and for developers to use an evolving language appropriately.
To tackle this language design paradox, we have developed GLOO, a
small open-ended dynamic language, whose design philosophy aims at a unified
approach in which program and language evolution result directly from the definition
of extensible domain sub-languages. Surprisingly, these extensible domain
sub-languages not only provide a framework to capture domain expertise, but also
give rise to a powerful compositional model for language extension. To demonstrate
the effectiveness of this approach, we develop the Language of Namespaces
and Traits in this paper. We define this extensible domain sub-language as an
aggregate of various forms of object-oriented language support. Using the Language
of Namespaces and Traits as example, we show that GLOO’s extension
model plays a crucial role in achieving a flexible compositional approach for the
design of readily-available and extensible programming abstractions.
|
|
| 11:30-12:00 | Language Support for Managing Variability in Architectural Models
Neil Loughran, Pablo Sanchez, Alessandro Garcia and Lidia Fuentes Slides - Abstract
The effective management and composition of architectural
variabilities has long been of importance to product line architects. Ar-
chitects need to describe how conceptual variabilities are composed and
realised through architectural decompositions of a product line. Archi-
tecture variabilities need to be described in terms of the chosen design de-
compositions, which do not often correspond naturally to feature model
decompositions. Also, the fine-grained nature of certain architectural
variabilities makes it di±cult to represent them in a modular fashion,
and describe how they are composed across different views. In order
to address these issues, this paper presents a variability modelling lan-
guage (VML), which supports first-class representation of heterogeneous
forms of architectural variabilities. The language complements existing
architectural modelling approaches for product lines by providing mech-
anisms to: (i) explicitly reference variation points in multiple architec-
tural views, and (ii) support compositions involving both fine-grained
and coarse-grained variabilities in an orthogonal fashion. The complete-
ness and simplicity of VML is assessed through four case studies from
different domains.
|
|
| 12:00-12:30 | Superimposition: A Language-Independent Approach to Software Composition Sven Apel and Christian Lengauer Slides - Abstract
Superimposition is a composition technique that has been
applied successfully in several areas of software development. In order
to unify several languages and tools that rely on superimposition, we
present an underlying language-independent model that is based on feature
structure trees (FSTs). Furthermore, we offer a tool, called FSTComposer,
that composes software components represented by FSTs.
Currently, the tool supports the composition of components written in
Java, Jak, XML, and plain text. Three nontrivial case studies demonstrate
the practicality of our approach.
|
|
| 12:30-14:00 | Lunch | |
| 14:00-16:00 | Session III - Performance Optimizations Session Chair: Markus Lumpe |
|
| 14:00-14:30 | OptBPEL: A Tool for Performance Optimization of BPEL Process Sheng Chen, Liang Bao and Ping Chen Slides - Abstract
The Business Process Execution Language (BPEL) is now a
de facto standard for specifying and executing business process for web
service composition and orchestration. As more and more web services
are composed using BPEL, tuning these compositions and gain better
performance becomes increasingly important. This paper presents our
approach for optimizing the BPEL process and introduces OptBPEL, a
tool for performance optimization of BPEL process. The approach starts
from the optimization of synchronization structure concerning link in
BPEL. After that, some concurrency analysis techniques are applied to
obtain further performance improvement. Finally, we give some experiments
and prove the efficiency of these optimization algorithms used in
OptBPEL.
|
|
| 14:30-15:00 | Controlling the Performance Overhead of Component-Based Systems Olivier Lobry and Juraj Polakovic Slides - Abstract
Flexibility can significantly impact performance. Some component-based frameworks
come with a near to zero overhead but provide only build-time configurability.
Other solutions provide a high degree of flexibility but with an uncontrollable
and a possibly unacceptable impact on performance. We believe that no flexible
systems give programmers a means to control the inherent overhead introduced
by flexibility. This prevents from reaching acceptable tradeoffs between performance
and flexibility, according to the applications needs or hardware targets.
This paper presents an ongoing work that aims to redesign the existing Think
component framework. Once revisited, the framework makes possible to finely
adjust the flexibility to the actually desired needs and thus better control the induced
performance overhead. A categorization of the dimensions of flexibility is
also introduced in order to articulate our proposition.
|
|
| 15:00-15:30 | Profile-guided Composition Jesper Andersson, Morgan Ericsson, Christoph Kessler and Welf Löwe Slides - Abstract
We present an approach that generates context-aware, optimized
libraries of algorithms and data structures. The search space
contains all combinations of implementation variants of algorithms and
data structures including dynamically switching and converting between
them. Based on profiling, the best implementation for a certain context
is precomputed at deployment time and selected at runtime. In our
experiments, the profile-guided composition outperforms the individual
variants in almost all cases.
|
|
| 15:30-16:00 | Loose Compositions for Autonomic Systems Luciano Baresi and Giordano Tamburrelli Slides - Abstract
Autonomic computing is one of the most promising techniques for managing the complexity of modern software applications. It fosters the idea of systems able to autonomously detect anomalies and react accordingly. Supervision and actual business logic are intertwined and work together to supply the autonomic features.
The paper presents our ongoing work on loose compositions for autonomic systems and introduces the first ideas of a framework based on Java, aspect oriented programming, and rules. The paper also sketches a first prototype implementation, based on the DIET agent framework.
|
|
| 16:00-16:30 | Coffee Break | |
| 16:30-18:00 | Session IV - Composition Middleware Session Chair: Eric Wohlstadter |
|
| 16:30-17:00 | Composing Components and Services using a Planning-based Adaptation Middleware Romain Rouvoy, Frank Eliassen, Jacqueline Floch, Svein Hallsteinsen and Erlend Stav Slides - Abstract
Self-adaptive component-based architectures provide methods and
mechanisms to support the dynamic adaptation of their structure under evolving
execution context. Dynamic adaptation is particularly relevant in the domain of
ubiquitous computing, which is subject to numerous unexpected changes of the
execution context. In this paper, we focus on changes in the service provider
landscape: business services may dynamically come and go, and their quality of
service may vary. We introduce an extension of the MADAM component-based
planning framework that optimizes the overall utility of applications when such
changes occur. MADAM planning is based on dynamic configuration of
component frameworks. The extended planning framework supports seamless
configuration of component frameworks based on both local and remote
components and services. In particular, components and services can be
plugged in interchangeably to provide functionalities defined by the component
framework. The extended planning framework is illustrated and validated on a
use case scenario.
|
|
| 17:00-17:30 | Component-based Access Control: Secure Software Composition through Static Analysis Pierre Parrend and Stéphane Frenot Slides - Abstract
Extensible Component Platforms support the discovery, installation, starting, uninstallation of components at runtime. Since they are often targeted at mobile resource-constrained devices, they have both strong performance and security requirements. The current security model for Java systems – Permissions – is based on call stack analysis.
This is very time-consuming, which makes it difficult to use in production environments.
We therefore define the Component-Based Access Control (CBAC) Security Model, which emulates Java Permissions through static analysis at the installation phase of the components. CBAC is based on a fully declarative approach that makes it possible to tag arbitrary methods as sensitive. A formal model is defined to guarantee that a given component have sufficient access rights, and that dependencies between components
are taken into account.
A first implementation of the model is provided for the OSGi Platform, using the ASM library for code analysis. Performance tests show that the cost of CBAC at install time is negligible, since it is executed together with digital signature verification which is much more costly. Moreover, unlike Java Permissions, the CBAC security model does not have any runtime overhead.
|
|
| 17:30-17:50 | Adding Support for Dynamics Patterns to Static Business Process Management Systems René Wörzberger, Nicolas Ehses and Thomas Heer Slides - Abstract
Many companies use business process management systems (BPMS) for modeling and execution support of their business processes. Many processes are highly dynamic and require changes even during execution. Common commercial BPMS fail to support such processes
appropriately since they work in a rather static manner, i.e. they demand that the structure of a process is fixed before execution. Our research group cooperates with an industry partner who uses a static BPMS. This paper describes an approach that posteriorly extends this static BPMS inasmuch as dynamic changes of processes during execution are supported. The benefit of this approach is that our partner in
industry gains support of dynamic processes but still use the existing BPMS and save investments related to it.
|
|
Day 2 - 30. March 2008
| 9:00-10:30 | Session V - Service Composition Session Chair: Thomas Gschwind |
|
| 9:00-9:30 | Interface Composition for Web Service Intermediaries Sara Forghanizadeh and Eric Wohlstadter Slides - Abstract
The use of XML as a format for message exchange makes Web services
well suited for composition of heterogeneous components. However, since
clients must manage differences in message schemas between services, interoperability
is still a significant problem. Interoperability currently can be supported
through the use of transformations provided by a Web service intermediary.
However, intermediary technologies do not provide a way for clients to
reason about the composition of services and intermediaries. We propose an approach
to provide clients with an interface composed of schema information from
a Web service and an intermediary. Composition is performed by applying rewriting
rules, defined by the intermediary, to the server interface schema. This new
interface takes into account what transformations are available at an intermediary.
The advantage of the approach is that clients can continue to benefit from code generation
and static type-checking offered by interface definition languages such
as WSDL; while still making use of the flexibility offered by intermediary transformations.
We provide the algorithmic details of composition, including a proof
of correctness and an upper bound on complexity. We demonstrate the approach
in the context of a Web service composition of three publicly available Web services.
|
|
| 9:30-10:00 | Goal-oriented Composition of Services Sebastian Nanz and Terkel K. Tolstrup Slides - Abstract
One fundamental issue in service-oriented computing concerns
the question whether services can be composed in a manner that
allows them to achieve their individual goals. In this paper we use a
variant of interface automata as an abstraction of the input/output behaviour
of services, which are themselves represented as terms in the
pi-calculus extended with an action for expressing service collaboration.
In this setting, the question whether two or more services can meaningfully
compose is then reduced to checking a simple property of the
product automaton of the involved interfaces.
|
|
| 10:00-10:30 | Composing Components with Shared Services in the Kmelia Model Pascal André, Gilles Ardourel and Christian Attiogbé Slides - Abstract
The Kmelia abstract component model is extended to allow
the description of component compositions with multipart interactions
leading to simultaneous communications between more than two services.
Shared services are defined to explicitly control multipart interactions.
Accordingly the communication actions of Kmelia are extended. The for-
mal definitions of the Kmelia model, the composition of components via
their services and their analysis are revisited to integrate the extension
of the model. An example illustrates the need and the usage of shared
services.
|
|
| 10:30-11:00 | Coffee Break | |
| 11:00-12:30 | Session VI - Applications Session Chair: Cesare Pautasso |
|
| 11:00-11:30 | Multidisciplinary software composition for interactive applications Stéphane Chatty Slides - Abstract
Producing interactive applications is a multidisciplinary software
composition activity. This, and the nature of user interface code,
puts particular requirements on component composition frameworks. We
describe a component model that relies on a hierarchical tree of
heterogeneous elements communicating through events and data
flows. This model allows to assemble, reuse and apply late
binding techniques to components as diverse as data management,
algorithms, interaction widgets, graphical objects, or speech
recognition rules at all levels of granularity. We describe
implementations of the model and example uses. Finally, we outline
research directions for making the model more complete and
compatible with mainstream software models.
|
|
| 11:30-12:00 | Compositional Modeling for Data Centric Business Applications Ethan Jackson and Wolfram Schulte Slides - Abstract
Data-centric business applications comprise an important
class of distributed systems that includes on-line stores, document management
systems, and patient portals. However, their complexity makes
it difficult to design and implement them. We address these issues from
a model-driven perspective by developing a formal, compositional, and
domain-specic set of abstractions for the specication and analysis of
data-centric business applications. Our technique allows us to formally
analyze the specied system at design time; in particular we can analyze
whether the system is resilient to abnormal conditions, i.e. that key
system invariants can always be re-established.
|
|
| 12:00-12:30 | A Composition-based Approach to the Construction and Dynamic
Reconfiguration of Wireless Sensor Network Applications Dharini Balasubramaniam, Alan Dearle and Ron Morrison Slides - Abstract
Wireless sensor network (WSN) applications are often characterised
by close coupling between their software and hardware components, which may
result in ad-hoc, platform-specific software, together with the loss of portability
and evolvability. We introduce a fractal composition-based approach for
constructing and dynamically reconfiguring WSN applications. The approach
uses pi-calculus semantics to unify the models of interaction for both software
and hardware components, on both local and remote nodes. Applications are
constructed by forming compositions of interacting components, and can be
decomposed and reconfigured into different topologies. The advantages of the
approach are that it reduces the complexity of WSN programming; results in
portable and evolvable software; and allows changes to be managed during
execution without having to take the system off-line. We present an outline of
the approach, and illustrate it with an example specified in the Insense
language.
|
|
| 12:30-14:00 | Lunch | |
| 14:00-15:30 | Session VII - Aspect-Oriented Programing Session Chair: Éric Tanter |
|
| 14:00-14:30 | A Reflective Framework for Fine-Grained Adaptation of Aspect-Oriented Compositions Paul Grace, Bert Lagaisse, Eddy Truyen and Wouter Joosen Slides - Abstract
Dynamic Aspect Oriented Programming (AOP) technologies
typically provide coarse-grained mechanisms for adapting aspects that
cross-cut a system deployment; i.e. whole aspect modules can be added
and removed at runtime. However, in this paper we demonstrate that
adaptation of the finer-grained elements of individual aspect modules is
required in highly dynamic systems and applications. We present AspectOpenCOM, a principled, reflection-based component framework that
provides a meta object protocol capable of fine-grained adaptation of
deployed aspects. We then evaluate this solution by eliciting a set of
requirements for dynamic fine-grained adaptation from a series of case
studies, and illustrate how the framework successfully meets these crite-
ria. We also investigate the performance gains of fine-grained adaptation
versus a coarse-grained approach.
|
|
| 14:30-15:00 | Composing Safely --- A Type System for Aspects Florian Kammueller and Henry Sudhof Slides - Abstract
In this paper we present an approach towards safe software
composition based on aspect-orientation. Aspects enable the systematic
addition of code into existing programs but often they also introduce errors.
In order to provide safe aspects for software composition we address
the verification of the aspect-oriented language paradigm. We construct
a basic calculus for aspects with types and prove formally type safety.
More precisely, this paper presents the following contributions (a) a fully
formalized type system for the Theory of Objects including the proof
of type safety, (b) a theory of aspects based on the Theory of Objects
including a type system for aspects, and (c) the definition of a notion of
type safety for aspects including its proof. The entire theory and proofs
are carried out in the theorem prover Isabelle/HOL.
|
|
| 15:00-15:30 | Practical Conflict Resolution for the Composition of Program Transformations Andreas I. Schmied and Franz J. Hauck Slides - Abstract
The composition of separate concerns is a cornerstone for the
construction of complex software. By now, aspect-oriented techniques
have been established as the sine qua non in several application areas.
However, their abilities to cope with composition conflicts are mostly
limited to the linear ordering of aspects. This paper describes a more
general and practical approach for the resolution of composition conflicts
as it is realised in our general-purpose transformation system LLTS.
Our system divides a composition into two phases. In the expansion
phase separate transformations add concern code within their isolated
copies of the base code. In the subsequent contraction phase the manipulations
of the first phase are compared and merged wherever possible.
A hinting mechanism guides the semi-automatic merging on three levels:
Conflicts are detected using compatibility relations between operators,
by reconciling annotations of complex transformation tasks, and based
on semantic predicates of the base code language. Conflicts are reported
to the user with a comprehensive explanation and can be resolved with
manual by-case deviations from the original transformation code. As a
result, conflicts can be remedied on a finer granularity, e.g., by revising
only parts of a transformation in a certain context.
|
|
| evening | Joint Workshops Pre-Conference Dinner | |




