Engineering Spatial Services: Concepts, Architecture, and Execution Models

Engineering Spatial Services: Concepts, Architecture, and Execution Models

Giovanna Di Marzo Serugendo, Jose Luis Fernandez-Marquez, Francesco Luca De Angelis
DOI: 10.4018/978-1-4666-6178-3.ch006
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

A new category of services based on data propagation among mobile devices is evolving. Traditionally, distributed applications are engineered on top of a mobile infrastructure in an ad hoc manner that does not conform to standard software engineering practices, such as modularization and reuse. Furthermore, current service-oriented approaches are not suited to this new generation of services that are dispersed on diffused Clouds, are subjected to dynamicity in the underlying mobile and computing infrastructures, and are required to handle time-related and space-related data. This chapter describes the notion of Spatial Services and delineates the design of these services and applications using self-organizing services that implement the active tuple space model inspired by chemical reactions. It explores the spontaneous self-composition of services, self-management of non-functional aspects, and separation of concerns to guarantee specified quality of service. The chapter presents an architectural style and describes execution models to implement such services.
Chapter Preview
Top

Introduction

Mobile phones, laptops, and tablets locally connected to each other form a large computing and storage infrastructure - currently under-exploited - but available on motorways, city-centers, inside buildings, etc. These infrastructures pave the way for a new category of services based on data propagation among devices, such as car traffic control through propagation of data from one car to another, information dissemination in a crowd to better steer the crowd towards points of interest or emergency exits, and alternative communication in case of environmental disasters. Such services are time-related, i.e., they may last just for a very short time for a specific purpose exploiting current contextual data; as well as space-related, because the data they rely on or the data they disseminate is spatially distributed over a geographic area.

Traditional service-oriented approaches allow developers to combine together diverse functionalities provided by different services into a new service. Typical approaches involve Web services or API mashups. Composition of services is generally foreseen at design-time; adaptation happens by choosing the actual services at runtime. Current service-oriented approaches are not suited for the new generation of services that are dispersed on diffused Clouds, enable smart environments, or exploit Internet of Things (IoT) scenarios. They do not cope with the dynamicity demanded by the underlying mobile and changing computing infrastructures, the spatiality of the considered data, or time-related issues. There is a need for

  • 1.

    Spatial Distribution of Services: The functionality of the service is provided as the result of the interactions among multiple entities, possibly distributed across several computational nodes.

  • 2.

    Services Built On-Demand by Collaboration: Services are built dynamically through collaboration with other services. For example, when users query to retrieve the closest vacant parking place in a smart city, sensors, IoT, and services spontaneously collaborate to query the diffused data Clouds to provide the answer.

We call such services Spatial Services. The development of these spatial services faces multiple challenges. One challenge is their engineering: from the physical ad hoc connection of devices, to the reliability and real-time adaptation of services and applications hosted on those mobile and dynamic infrastructures, to availability at a large scale to thousands of users simultaneously.

Self-organization, as exhibited by natural systems, provides an appealing approach to engineer spatial services where the functionality and coordination arises from the interactions among several autonomous entities; no central control is required; and robustness properties and adaptation in dynamic large-scale environments are naturally provided. Self-organization is achieved by the use of self-organizing mechanisms, i.e., rules that autonomous entities employ to coordinate their behavior, usually following information gathered from their local environment.

Current proposals for engineering systems using self-organizing principles rely on ad hoc techniques which are far from standard software engineering practices, where applications are developed in a modular and systematic way by using (and reusing) libraries and lower-level services. Our proposal is to engineer spatial services and applications, as discussed above, using services that we call self-organizing services that provide self-organizing mechanisms which abstract away the implementation of low-level operations from the developer and favor the reuse of code. Self-organizing services implement self-organizing mechanisms which higher-level spatial services and applications can reuse. We complete our proposal with the specification of a layered architectural style organized around the notion of a blackboard, supporting exchange of information among spatial and self-organizing services as well as enabling implicit invocation of services.

Key Terms in this Chapter

Spatial Services: Services that exploit or spread data spatially distributed over stationary or mobile devices in a given geographic area. Spatial services use self-organizing services to retrieve, spread, or aggregate data.

Self-Managing Services: Services that through the dynamic adaptation of parameters or the switching of algorithms ensure non-functional requirements, such as bandwidth optimization, accuracy, or availability.

Core Self-Organizing Services: Low-level self-organizing services that provide core functionality such as spreading, aggregation, evaporation, or repulsion.

Spatial Structure: Geographically situated structure made of data disseminated in mobile or stationary devices. A typical example is given by a gradient disseminated across multiple devices.

Self-Organizing Mechanisms: Rules that agents employ to coordinate their behavior, usually following information gathered from their local environment. Typical mechanisms inspired by nature are spreading, stigmergy, digital pheromone, evaporation, gossip, etc.

Self-Organizing Services: Services which implement self-organizing mechanisms that the higher-level applications can reuse.

Architectural Style: Reusable solution that defines the common architectural traits of a family of software systems by describing a structural organization.

Self-Composition of Services: Spontaneous composition of services, either through chaining or parallel execution of services, arising in response to a query for a value or for a computation.

Complete Chapter List

Search this Book:
Reset