Language Engineering for Mobile Software

Language Engineering for Mobile Software

Engineer Bainomugisha (Vrije Universiteit Brussel, Belgium), Alfredo Cádiz (Université Catholique de Louvain, Belgium), Pascal Costanza (Vrije Universiteit Brussel, Belgium), Wolfgang De Meuter (Vrije Universiteit Brussel, Belgium), Sebastián González (Université Catholique de Louvain, Belgium), Kim Mens (Université Catholique de Louvain, Belgium), Jorge Vallejos (Vrije Universiteit Brussel, Belgium) and Tom Van Cutsem (Vrije Universiteit Brussel, Belgium)
DOI: 10.4018/978-1-61520-655-1.ch010
OnDemand PDF Download:


Mobile systems offer the possibility of delivering software services that tightly match user needs, thanks to their availability right at the moment and place where they are needed, and their ability to take advantage of local resources and self-adapt to their environment of use. Alas, writing software for mobile systems is not an easy endeavour. Mobile software construction imposes a number challenges that render existing programming technology insufficient to write such software conveniently. To improve this situation, the authors have taken a language engineering approach. In this chapter they identify the main challenges encountered in mobile software construction and the requirements that rise in the design of programming languages. By way of illustration, the authors present the result of their language engineering experiments —four programming models to ease the construction of software that can cope gracefully with the challenges brought about by mobility.
Chapter Preview

Challenges In Mobile Language Engineering

The hardware properties of the devices constituting a mobile network engender a number of phenomena that have to be dealt with when constructing mobile software. Next we summarise these phenomena, which are inherent to mobile networks and which shape the design space of mobile programming languages.

Volatile Connections

Mobile devices featuring wireless connectivity possess only a limited communication range, such that two communicating devices may move out of earshot unannounced. The resulting disconnections are not always permanent: the two devices may meet again, requiring their connection to be re-established. Quite often, such transient network partitions should not affect an application, allowing both parties to continue their collaboration where they left off. These more frequent transient disconnections expose applications to a much higher rate of partial failure than that for which most distributed languages have been designed. In mobile networks, disconnections become so omnipresent that they should be considered the rule, rather than an exceptional case.

Key Terms in this Chapter

Scope: The dynamic extent in which behavioural variations are simultaneously active or inactive within a running application. The scope delimits the execution time span in which variations are effectively applied.

Ambient Acquaintance Management: the discovery and management of nearby devices and their hosted services.

Ambient-Oriented Programming (AmOP): An emerging programming model aimed at easing the construction of software deployed in mobile ad hoc networks, by means of dedicated language features that help the programmer in dealing with the hardware characteristics inherent to those networks.

Layers: Grouping of related behavioural variations. Layers are first-class entities that can be referred to explicitly at runtime, and whose composition can be dynamically controlled on demand. Layers are composed in reaction to contextual information.

Mobile Ad Hoc Network (MANET): A self-configuring open network. Self configuration means that there is no centralised infrastructure. Openness means that hosts freely enter and leave the network at any point in time. Generally, hosts are mobile and thus use wireless network links.

Context: All computationally accessible information that describes the current situation, such as device location, user activities, people and objects in the vicinity, environmental properties such as lighting and noise, device status such as battery charge and network signal strength, available network peers and the services they offer, and so on.

Behavioural Variation: Modularised definition of new, modified and removed behaviour, by means of the underlying programming model’s constructs, such as procedures or classes. A variation is therefore expressed as a group of partial definitions, with complete definitions being a particular case.

Non-Blocking Communication: Communication that requires neither sender or receiver to be suspended while data is being transmitted, using asynchronous send and receive operations.

Context-Oriented Programming (COP): An emerging programming model aimed at easing the construction of adaptive applications by providing features to support context-dependent behavioural variations. COP treats context explicitly, and provides mechanisms to dynamically adapt application behaviour in reaction to context changes.

Complete Chapter List

Search this Book: