Towards a Programming Model for Ubiquitous Computing

Towards a Programming Model for Ubiquitous Computing

Jorge Barbosa, Fabiane Dillenburg, Alex Garzão, Gustavo Lermen, Cristiano Costa
DOI: 10.4018/978-1-61350-456-7.ch709
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Mobile computing is been driven by the proliferation of portable devices and wireless communication. Potentially, in the mobile computing scenario, the users can move in different environments and the applications can automatically explore their surroundings. This kind of context-aware application is emerging, but is not yet widely disseminated. Based on perceived context, the application can modify its behavior. This process, in which software modifies itself according to sensed data, is named Adaptation. This constitutes the core of Ubiquitous Computing. The ubiquitous computing scenario brings many new problems such as coping with the limited processing power of mobile devices, frequent disconnections, the migration of code and tasks between heterogeneous devices, and others. Current practical approaches to the ubiquitous computing problem usually rely upon traditional computing paradigms conceived back when distributed applications where not a concern. Holoparadigm (in short Holo) was proposed as a model to support the development of distributed systems. Based on Holo concepts, a new programming language called HoloLanguage (in short, HoloL) was created. In this chapter, we propose the use of Holo for developing and executing ubiquitous applications. We explore the HoloL for ubiquitous programming and propose a full platform to develop and execute Holo programs. The language supports mobility, adaptation, and context awareness. The execution environment is based on a virtual machine that implements the concepts proposed by Holo. The environment supports distribution and strong code mobility.
Chapter Preview
Top

Background

Holoparadigm is based on an abstraction called being, which is used to support mobility. There are two kinds of beings: elementary being, which is an atomic being, without composition levels, and composed being, which is a being composed by other beings. An elementary being is organized in three parts: interface, behavior, and history. The interface describes the possible interactions between beings. The behavior contains actions, which implement the being’s functionality. The history is a shared tuple space in a being. A composed being (Figure 1a) has the same organization of an elementary one, but may also contain other beings (which are named component beings). Each being has its own encapsulated history.

Figure 1.

Being organization

978-1-61350-456-7.ch709.f01

Complete Chapter List

Search this Book:
Reset