|
|
Rationale |
Modularising Behaviour in Ambient-Oriented Programming |
The pervasive computing field envisions users surrounded by computers embedded in everyday devices. Such devices form dynamic networks which change topology as users move about. Software services are expected to maximise available computational capacities by seamlessly coordinating with each other. The services should also react to dynamic changes in the environment and adapt their behaviour accordingly. An increasingly popular solution to cope with such requirements is to represent environmental changes as events. Thus, pervasive computing software is often modelled as event-driven systems. However, such support typically comes at a price in the evolvability of programs. The more events a service has to be aware of, the more cumbersome its control flow becomes. The lack of adequate language abstractions to handle such events results in programs that are difficult to maintain and extend.
In our work, we study the effects of event-driven distribution on the modularity of programs. We focus on the modularity of two concerns: the capacity of services to adapt to environmental changes —a property known as context-dependent behaviour— and their capacity to coordinate with each other —a property known as group behaviour. We use the ambient-oriented programming (AmOP) paradigm as the basis of our research. This paradigm proposes an event-driven programming model which has been designed specifically for pervasive computing. We identify a list of requirements for a unified model for event-driven distribution, context dependency and group behaviour. In the study of the state of the art we demonstrate that no single approach fulfils these requirements so far. This observation has led us to the definition of a proof-of-concept programming language model, called Lambic. |
The Lambic Programming Language Model |
Lambic is an extension of the generic function-based object system of the Common Lisp programming language. Our model extends the multiple dispatch semantics of generic functions to allow for modularity in pervasive computing. For event-driven distribution, Lambic integrates the properties of the AmOP paradigm, in what we call futurised generic functions. In addition, we provide a novel mechanism to allow flexible selection and composition of behaviour, called predicated generic functions. This mechanism provides language abstractions to influence method dispatch based on the program's context. For group behaviour, we propose a third extension called group generic functions. The main idea of this feature is to encapsulate the coordination of group interactions in the definition of services. Finally, a common underlying execution process ensures that these three features can be effectively used in combination with one another. We validate our work by showing in a number of case studies how Lambic facilitates the natural integration and dynamic adaptation of pervasive computing services.
|
Lambic Publications |
- Predicated Generic Functions: Enabling Context-Dependent Method Dispatch.
J. Vallejos, S. González, P. Costanza, W. De Meuter, T. D'Hondt, K. Mens. International Conference on Software Composition (SC '10), Malaga, Spain. 2010
- Reconciling Generic Functions with Actors: Generic Function-driven Object Coordination in Mobile Computing.
J. Vallejos, P. Costanza, T. Van Cutsem, W. De Meuter, T. D'Hondt.
In proceedings of the International Lisp Conference (ILC 2009), Cambridge, Massachusetts, United States. 2009
- A Programming Language Approach for Context-Aware
Mashups.
J. Vallejos, J. Huang, P. Costanza, W. De Meuter, T. D'Hondt. Third International Workshop on Web APIs and Services Mashups (Mashups'09) at OOPSLA 2009 in Orlando, Florida, United States. 2009
|
Technical Reports |
|
Roots |
Lambic springs from two research paradigms known as Ambient-oriented Programming (AmOP) and Context-oriented Programming (COP). For further reading on these paradigms follow the links: |
|
|
|
|