Service-Oriented Architectures for Pervasive Computing

Service-Oriented Architectures for Pervasive Computing

Elias S. Manolakos (University of Athens, Greece) and Demetris G. Galatopoullos (Northeastern University, USA)
DOI: 10.4018/ijapuc.2010100103


The vision of pervasive computing is to create and manage computational spaces where large numbers of heterogeneous devices collaborate transparently to serve the user tasks all the time, anywhere. The original utility of a computer is now changing from a stand-alone tool that runs software applications to an environmentaware, context-aware tool that can enhance the user experience by executing services and carrying out his/ her tasks in an efficient manner. However, the heterogeneity of devices and the user’s mobility are among the many issues that make developing pervasive computing applications a very challenging task. A solution to the programmability of pervasive spaces is adopting the service-oriented architecture (SOA) paradigm. In the SOA model, device capabilities are exposed as software services thus providing the programmer with a convenient abstraction level that can help to deal with the dynamicity of pervasive spaces. In this chapter the authors review the state of the art in SOA-based pervasive computing, identify existing open problems, and contribute ideas for future research.
Article Preview


Although at times we may not realize it, networked devices of varying computational power are everywhere around us and heavily involved in our daily lives. From embedded sensors in the foundations of a bridge that communicate data about its structural integrity, to set-top boxes and game consoles providing entertainment at home, to large-scale servers offering access to specialized services over the Internet, the vision of pervasive computing as narrated by Mark Weiser (1991) is in fact becoming a reality. Distributed computing can now reach a wide-range of heterogeneous devices that may disappear in the background while still offering their capabilities as services through the network “all the time, everywhere” (Saha & Mukherjee, 2003; Satyanarayanan, 2001).

Pervasive computing is a multidisciplinary field that evolved from distributed and mobile computing (da Costa, Yamin, & Geyer, 2008; Saha et al., 2003). It differs from traditional computing in terms of how the computational devices are perceived and utilized in applications. We live in an era where computing gradually moves from stand-alone software programs running on a single machine to orchestrated composite services running across distributed interconnected cyberspaces. A pervasive environment evolves from a virtual environment of interconnected computers into a collaborative information-rich physical space. The diverse and distributed services that devices immersed in a pervasive environment offer to the developer of pervasive applications or to the end-user are called pervasive services. Pervasive devices become an integral part of a pervasive environment and unlike traditional computers they collectively offer location and context awareness as core services to user applications in a seamless and continuous manner (Gupta, Lee, Purakayastha, & Srimani, 2001; Saha et al., 2003). Pervasive computing principles have already been utilized in several application domains such as smart homes, where intelligent appliances may expose their capabilities as services and can be combined with sensors to provide a comfortable, safe or rehabilitative living environment. Another example is the smart cars that promise an enhanced driving experience for a safer and more enjoyable ride. Health care, manufacturing, and social networks are also areas where pervasive computing is currently exploited.

Since pervasive computing evolved from distributed and subsequently mobile computing, it is only natural that it inherited a set of their problems (da Costa et al., 2008). Developing software applications that engage pervasive devices is not easy and requires new application development paradigms. The high degrees of device heterogeneity and dynamicity call for device interoperability models and protocols. Moreover, current standard Integrated Development Environments (IDEs) are not suitable for developing pervasive applications (Helal, 2005). This is largely due to the fact that using pervasive devices introduces a set of unique issues not present in traditional software development, such as the integration of large numbers of heterogeneous entities, ubiquitous connectivity etc., that so far are only performed at small scale and in an ad-hoc manner. These difficulties generate the need for new middleware technologies and software engineering methodologies that will allow developers to integrate available devices from a pervasive-enabled space into their applications easily and at a large scale without the need of using a specialized API for each new device type. Middleware is generally defined as a set of services that lie between the application layer and the connectivity layer (Vinoski, 2002). The middleware layer hides the complexity details of the lower layers so that developers can implement portable and interoperable applications. Middleware does not deal with the underlying hardware of the device it is executing on, something that the Operating Systems (OS) does, but it rather mediates between software layers. In Pervasive computing, middleware architectures provide a set of core services that hide the heterogeneity of devices in ambient environments and enable their services to be exposed at the application layer (Saha et al., 2003). Examples of these services include service discovery and execution, context-awareness, trust and security and semantic matching. Currently middleware technologies such as the Universal Plug and Play (UPnP) (Presser et al., 2008) and the Open Services Gateway initiative (OSGi) (OSGi Alliance, 2008; Marples & Kriens, 2001) contribute towards this objective but only at the local area network level.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 11: 4 Issues (2019)
Volume 10: 4 Issues (2018)
Volume 9: 4 Issues (2017)
Volume 8: 4 Issues (2016)
Volume 7: 4 Issues (2015)
Volume 6: 4 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing