Progress in the field of wireless technology has resulted in a growing body of research that deals with mobile ad hoc networks (MANETs): networks composed of mobile devices that are connected by wireless communication links with a limited commu- nication range. The limited communication range of devices combined with the fact that devices move about renders applications subject to higher rates of partial failures than in traditional, stationary networks. This dissertation investigates programming language support to deal with the effects engendered by partial failures in the software development process. In particular, we investigate support for handling partial failures in MANET applications, from the programming language design to tool support. In order to support distributed programming in such a dynamically changing en- vironment, it is worth to investigate software engineering techniques where network disconnections are not treated as the exception but the rule. This observation motivated the development of the ambient-oriented programming paradigm in which this work is rooted. Within the context of this paradigm, we propose expressive abstractions that aid developers to detect, reason about, and handle partial failures. Our survey of related work will reveal that leasing provides a solution for a failure handling model in MANETs. However, to date no leasing model has been designed specifically for MANETs. In this context, leasing needs to be reconciled with computational mod- els that deal with transient failures, and provide a well-defined high-level interface to allow developers to handle failures in a modular and reusable way, while accom- modating the various application needs. This work studies a failure handling model which combines leasing with ambient-oriented programming, leading to the concept of ambient-oriented leasing. We investigate ambient-oriented leasing in the two distinct distributed computing models. First, we integrate our leasing model in a distributed object-oriented model as a novel referencing abstraction, called leased object references. Second, we explore the applicability of ambient-oriented leasing to tuple spaces, resulting in a novel adaptation of the tuple space model for MANETs called TOTAM (Tuples on the Ambient). We design and implement both incarnations of ambient-oriented leasing in AmbientTalk/M, an ambient-oriented language which provides a unified meta model on which both language abstractions as well as tool support is built. To support the development of MANET applications, we study tool support in the form of an ambient-oriented debugger that helps programmers to achieve a bet- ter understanding of the dynamic behaviour of a MANET application. As a proof-of- concept tool we provide an online ambient-oriented debugger integrated into Ambient- Talk Eclipse IDE called REME-D (Reflective Epidemic MEssage-oriented Debugger). Together, the programming language abstractions and the debugging support pre- sented in this dissertation provide an innovative toolbox that allows MANET applica- tion developers to deal with partial failures in an anticipated and controllable way.
|Place of Publication||Brussels|
|Publication status||Published - 2012|
- language design