MEDUSA: Middleware for End-User Composition of Ubiquitous Applications

MEDUSA: Middleware for End-User Composition of Ubiquitous Applications

Oleg Davidyuk, Valérie Issarny, Jukka Riekki
DOI: 10.4018/978-1-61692-857-5.ch011
(Individual Chapters)
No Current Special Offers


Activity-oriented computing (AOC) is a paradigm promoting the run-time realization of applications by composing ubiquitous services in the user’s surroundings according to abstract specifications of user activities. The paradigm is particularly well-suited for enacting ubiquitous applications. However, there is still a need for end-users to create and control the ubiquitous applications because they are better aware of their own needs and activities than any existing context-aware system could ever be. In this chapter, we give an overview of state of the art ubiquitous application composition, present the architecture of the MEDUSA middleware and demonstrate its realization, which is based on existing open-source solutions. On the basis of our discussion on state of the art ubiquitous application composition, we argue that current implementations of the AOC paradigm are lacking in end-user support. Our solution, the MEDUSA middleware, allows end-users to explicitly compose applications from networked services, while building on an activity-oriented computing infrastructure to dynamically realize the composition.
Chapter Preview


Ubiquitous computing as envisioned by Mark Weiser (1991) emphasizes the interaction of users with smart spaces composed of humans and multiple networked computing devices. This vision has been empowered by continuing progress in various relevant fields of research, such as wireless communication, mobile computing, mobile sensing and human-computer interaction (HCI). Firstly, wireless communication standards (e.g., WiFi and Bluetooth) have enabled users to access smart spaces using their mobile terminals and portable devices. Secondly, efficient low-powered CPUs make mobile terminals capable of running software platforms which support advanced interoperability between different devices. In addition, mobile sensing technologies, like RFID and GPS, make ubiquitous applications context-aware and they also enable alternative HCI interfaces based on, e.g., physical contact (Nokia, 2009). However, despite all these technical developments, the user-centric nature of ubiquitous computing should not be neglected.

An important new trend in ubiquitous computing research is activity-oriented computing (AOC) (Masuoka, Parsia & Labrou, 2003; Ben Mokhtar, Georgantas & Issarny, 2007; Sousa, Schmerl, Steenkiste & Garlan, 2008a). This paradigm adopts a user-centric perspective and assumes that smart spaces are aware of user needs and activities and reactively, or even proactively, satisfy user demands by composing and deploying the appropriate services and resources. User activities consist of the users’ everyday tasks and they can be abstractly described in terms of (i) the situation (context) where the tasks take place, (ii) the system functionalities required for accomplishing the activities, and (iii) user preferences relating to QoS, privacy, security or other non-functional requirements. The system then dynamically realizes the activities by composing the applications according to the activity descriptions.

Under the AOC paradigm, the research community concentrates on introducing autonomic systems, which are self-manageable, self-configurable and adaptive, and therefore do not require user involvement. However, as pointed out by Hardian, Indulska & Henricksen (2008) and confirmed through user evaluation and usability tests (Davidyuk, Sánches, Duran & Riekki, 2008a; Vastenburg, Keyson & de Ridder, 2007), involving users in application control is essential for ensuring the user acceptance of autonomous products, especially in home or office automation domains. The AOC approach also has another drawback which limits its applicability. Application composition in AOC systems is performed by matching user activity descriptions with the networked services and resources discovered in the vicinity of the user according to the chosen criteria. Although some prototypes allow end-users to adjust the criteria at run-time (Davidyuk, Selek, Duran & Riekki, 2008b; Sousa et al, 2008a), the composition is limited to predefined activity descriptions (i.e. templates), which are complex structures and are not supposed to be understood or modified by end-users. Thus, users are neither able to customize the existing applications nor able to create their own smart space applications.

To address the aforementioned limitations of AOC systems, we present MEDUSA, a middleware solution which enables user-driven application composition in smart spaces. MEDUSA enables end-users to create simple applications from available ubiquitous resources discovered in the vicinity of the users. The applications are composed on the users’ handheld devices. MEDUSA employs an end-user approach to programming applying it to the Ambient Intelligence (AmI) and ubiquitous computing domains (Kawsar, Nakajima & Fujinami, 2008; Mavrommati & Darzentas, 2007; Mavrommati & Kameas, 2003; Sousa, Schmerl, Steenkiste & Garlan, 2008b). The design of the MEDUSA middleware builds on our years of experience in developing middleware interoperability solutions, e.g., Amigo (2009) and PLASTIC (2009) as well as RFID-based user interfaces for smart spaces (Davidyuk et al, 2008a; Davidyuk, Sanches, Duran & Riekki, 2009; Riekki, 2007).

Key Terms in this Chapter

Physical user interface design: A discipline that studies user interfaces in which users interact with the digital would using real (i.e. physical) objects.

Interaction Design: A discipline that studies the relationship between humans and interactive products (i.e. devices) they use.

Activity-oriented computing: Promotes the idea of supporting everyday user activities through composing and deploying appropriate services and resources.

Service-oriented computing: A paradigm that promotes building applications by assembling together independent networking services.

Ambient Intelligence (AmI): Refers to computer environments that are populated with tiny networking devices which support people in carrying out their everyday tasks using non-intrusive intelligent technology.

End-user application development: Studies tools and programming environments that allow end-users, instead of professional developers, customizing existing or even creating their own applications according to users’ needs and knowledge.

Complete Chapter List

Search this Book: