L Drumetz

J Chanussot

C Jutten

VARIABILITY OF THE ENDMEMBERS IN SPECTRAL UNMIXING: RECENT ADVANCES

Keywords: Spectral Unmixing, Endmember variability, Spectral Bundles, Extended Linear Mixing Model

come

Variability of the endmembers in spectral unmixing: recent advances

Lucas Drumetz, Jocelyn Chanussot, Christian Jutten

INTRODUCTION

Spectral Unmixing (SU) is one of the most important and most studied topics in hyperspectral imaging. As a matter of fact, the fine spectral resolution provided by these images allows the accurate identification and characterization of the materials found in the observed scene. However, the spatial resolution is conversely coarser than in standard RGB or multispectral images. Thus, many pixels are mixed, meaning that the acquired spectral signature results from the combination of the spectral signatures of the different materials present in the resolution cell during the acquisition. For a given image, SU aims at extracting the signatures of the different involved materials (called "endmembers"), and at estimating their relative proportions (called "fractional abundances") in each pixel of the image, allowing a refined understanding of the scene [START_REF] Bioucas-Dias | Hyperspectral unmixing overview: Geometrical, statistical, and sparse regression-based approaches[END_REF]. Over the last decades, many algorithms have been designed for this application. Most of these methods assume that the mixing process linking the signature of the pure materials and their proportions is linear. While this is very often a good approximation, nonlinear interactions are sometimes not negligible (for instance in the case of multiple reflections of the light in its path from the ground to the sensor, or indirect lighting, or intimate mixtures...). Many algorithms taking this type of phenomena into account have also been developed over the last few years [START_REF] Heylen | A review of nonlinear hyperspectral unmixing methods[END_REF]. However, another implicit hypothesis is often assumed when performing SU: each material is usually represented by one single spectral signature, that is used for the whole image. In practice, there often exists a non negligible intra-class variability, which can have many different causes. For example, the illumination conditions can vary along the observed scene, because of a nonflat topography or because of changes in the lightning conditions in the scene. The intrinsic variability of the materials (due to the variation of a hidden parameter, such as the concentration of chlorophyll or the hydric stress for green vegetation) can also considerably influence the spectral signature of the corresponding material, even if a pixel is pure. This issue was neglected for a long time, but has recently received a growing attention in the community, with milestone reviews on the subject [START_REF] Somers | Endmember variability in spectral mixture analysis: A review[END_REF][START_REF] Zare | Endmember variability in hyperspectral analysis: Addressing spectral variability during spectral unmixing[END_REF]. Taking the spectral variability into account has now become an important challenge in spectral unmixing.

In the remainder of this paper, we formalize the spectral variability problem in SU in its most general form, by considering variability inside an image (in the spatial domain). We also connect this general form with the multitemporal and the multiangular points of view regarding variability. Then we present and classify different existing methods. We eventually point at future research avenues.

A GENERAL FRAMEWORK FOR SPECTRAL VARIABILITY

In this section, we introduce the spectral variability problem in its most general form. Usually, once a mixing model (linear or not) has been chosen, the "blind" SU problem boils down to: 1) estimating the number of endmembers to consider, then 2) extracting the spectral signatures of these endmembers (usually by resorting to one of the many available algorithms [START_REF] Bioucas-Dias | Hyperspectral unmixing overview: Geometrical, statistical, and sparse regression-based approaches[END_REF]), before 3) estimating the corresponding relative abundances. Once the first two steps have been performed, the abundances have to be estimated from the following model:

X = f (S, A) + E (1)
where X ∈ R L×N is the data matrix (L is the number of spectral bands, N is the number of pixels), S ∈ R L×P is the endmember matrix (containing the P spectral signatures of the P endmembers considered in its columns), A ∈ R P ×N is the abundance matrix, and f is a function, linear or not and possibly parametrized, of the previous two variables, which represents the actual mixing model. E ∈ R L×N is an additive noise. The abundances are usually interpreted as percentages, which constrains them to be nonnegative and to sum to one. These properties of the abundances are fundamental since they constrain the data to lie inside a simplex spanned by the endmembers, providing a clear geometric interpretation to the problem (see Fig. 1 in the case of P = 3 endmembers). In the linear case, Eq. ( 1) becomes

X = SA + E (2)
In this case, once the endmembers' signatures have been estimated, the abundances (constrained in each pixel to lie in the unit simplex, which we denote by A ∈ splx) are extracted under the positivity and sum-to one constraints by:

 = argmin A∈splx ||X -SA|| 2 F (3)
Dealing with spectral variability can be seen as considering that the source matrix S is not constant in space, time or, more generally, between different datasets. Mathematically, let us consider a dataset, which is partitioned into K subsets indexed by k, and the corresponding endmember signatures:

X = {X k } and S = {S k } for k = 1, ..., K. (4)
The index k can denote a partition in the spatial domain (mostly at the pixel scale, but also possibly at the scale of larger spatial regions), or denote several datasets if we deal with a sequence of images acquired over the same scene at different time dates (temporal variability), or with different acquisition angles (angular variability), or, more generally, between distinct datasets (which are supposed to share at least one endmember).

In each subset, we have:

X k = f (S k , A k ) + E k (5)
Of course, the different subsets may not be independent: there are usually relationships and some sort of continuity between certain parameters, be it in time, space.... This advocates for a joint processing of the data rather than a totally separate processing of each subset [START_REF] Henrot | Dynamical spectral unmixing of multitemporal hyperspectral images[END_REF].

The remainder of this paper will focus (unless stated otherwise) on spectral variability in the spatial domain, but works dealing with temporal variability will also be reviewed, as well as other aspects in the perspectives. Note that most of the presented methods can be easily extended to other types of variability (temporal in particular). Likewise, most of the of methods below apply primarily in a linear mixing model framework.

DIFFERENT CLASSES OF METHODS

The different methods dealing with spectral variability can be classified into three categories (c.f. Fig. 2 (a), where all three cases are represented in the case of a linear mixing model). The first category resorts to "spectral bundles", that is to say each material is represented by a finite number of signatures which hopefully capture most of its variability. The second class (Fig. 2 (b) uses reference sources and uses models to characterize and constrain possible local evolutions of the endmembers, typically using statistical descriptions. The In all three cases, the mathematical tools used range from machine learning to Bayesian estimation and mathematical optimization.

Spectral bundles and associated methods

The key idea in this category of methods consists in extracting several instances of each endmember in order to build a dictionary, which is then used for SU, offering more than one representative spectral signature per material (Fig. 2 (a)). The simplest method to build those bundles [START_REF] Somers | Automated extraction of image-based endmember bundles for improved spectral unmixing[END_REF] consists in extracting endmembers in randomly chosen subsets of the image. Many endmember extraction algorithms assume that there is at least one pure (abundance coefficient equal to 1) pixel per material in the image. Here, there has to be at least one pure pixel of each material in each subset. Once the extraction has been carried out, the signatures have to be grouped into classes through a clustering algorithm (e.g. k-means). Then, the dictionary is used to estimate the abundances. In order to get the total abundance of one given material, one has to sum the contributions of every representative of the corresponding class. As the dictionary may contain a lot of signatures, it can be useful to enforce different types of sparsity during the SU process, so as to select in each pixel the few signatures that actually best explain the variability. This sparsity can be global, or can be refined by taking into account the group structure of the dictionary [START_REF] Meyer | Hyperspectral unmixing with material variability using social sparsity[END_REF]. Other works use a slightly different but related approach, in which the whole unmixing is performed locally, in spatially correlated subsets (sliding windows or segmentations of the image). In this case, the abundances are estimated locally, based on the idea that in smaller regions, variability (and some nonlinear) effects are mitigated with respect to an entire image. An example using sliding windows can be found in [START_REF] Goenaga | Unmixing analysis of a time series of hyperion images over the guanica dry forest in puerto rico[END_REF], whereas the work of [START_REF] Veganzones | Hyperspectral image segmentation using a new spectral unmixing-based binary partition tree representation[END_REF] goes further by proposing to build a segmentation of the image which is optimal in terms of local spectral unmixing performance. Other types of methods are more machine learning-oriented (using for instance Support Vector Machines [START_REF] Mianji | Svm-based unmixing-toclassification conversion for hyperspectral abundance quantification[END_REF], or Gaussian Processes [START_REF] Uezato | A novel spectral unmixing method incorporating spectral variability within endmember classes[END_REF]). These algorithms allow to learn the function linking the endmembers available in the dictionary (or in a supervised fashion using an a priori available dictionary). The training can be performed for instance by simulating mixed pixels with endmembers from the dictionary in different proportions [START_REF] Mianji | Svm-based unmixing-toclassification conversion for hyperspectral abundance quantification[END_REF], or simply by assigning an abundance of 1 for the material corresponding to the entries of the dictionary [START_REF] Uezato | A novel spectral unmixing method incorporating spectral variability within endmember classes[END_REF]. These methods can relatively easily model spectral variability, but they have the drawbacks of not explicitly modeling the variability, and to be very dependent on the quality of the extracted bundle.

Computational Models

For this class of methods, the mixing model takes explicitly distinct sources into account for each pixel. Most of the times, the idea is to allow the sources to vary around a known (or extracted from the data) reference. These techniques are relatively powerful since they theoretically allow to capture all kinds of variabilities, but this also harms the interpretation of the obtained results. We can cite the Bayesian approaches such as the Normal Compositional Model (NCM) [START_REF] Eches | Bayesian estimation of linear mixtures using the normal compositional model. application to hyperspectral imagery[END_REF], or the Beta Compositional Model [START_REF] Xiaoxiao Du | Spatial and spectral unmixing using the beta compositional model[END_REF], which assume that the endmembers follow a Gaussian or Beta distribution (with the advantage of being defined between 0 and 1 per construction, which is physically sound for reflectance data). These distributions are centered at reference endmembers. However, more recent methods are capable of estimating both the means and variances of the distribution (e.g. [START_REF] Halimi | Unsupervised unmixing of hyperspectral images accounting for endmember variability[END_REF] which uses a generalized version of the NCM), increasing the robustness against the potential absence of pure pixels in the image. For instance, the model proposed in [START_REF] Halimi | Unsupervised unmixing of hyperspectral images accounting for endmember variability[END_REF] is written as follows:

x k = P p=1 a kp s kp + e k , with e k ∼ N (0, ν 2 n IL), s kp ∼ N (µ p , diag(σp)) (6)
where k = 1, ..., N is a pixel index, ν 2 n is the noise variance in the considered pixel, and diag(σp)) is a diagonal covariance matrix, whose elements are variances of each endmember for the considered material, in each spectral band. Moreover, in this version of the model, the means µ p of the endmembers follow a Gaussian distribution themselves (the mean of this Gaussian distribution is a reference), which allows to adjust the value of the mean with respect to the basic NCM. In a Bayesian framework, the a posteriori density of the parameters is generally complex and has to be sampled using Monte-Carlo methods in order to allow the use of the Maximum A Posteriori (MAP) and Minimum Mean Squared Error (MMSE) estimators.

Even more recently, the Perturbed Linear Mixing Model (PLMM) [START_REF] Thouvenin | Hyperspectral unmixing with spectral variability using a perturbed linear mixing model[END_REF] was proposed in order to explicitly model spectral variability using an additive term acting on the sources to perturb the endmembers:

x k = P p=1 (sp + ds kp )a kp + e k (7)
The term ds kp accounts for an additive perturbation for each endmember, in each pixel, and for each wavelength. The parameters of this mixing model are then estimated through an optimization problem, in which different constraints and regularizations (spatial regularization on the abundances, proximity of the sources to a reference, limitation of the norm of the additive perturbation...) are added in order to make this Nonnegative Matrix Factorization problem better posed and more suited to the expected properties of the solution. The algorithm iteratively updates the abundances, the endmembers and the perturbations to converge to a stationary point of the objective function (the problem is globally not convex, but each subproblem is). The numerous constraints and regularizations suggest the use of the now popular Alternating Direction Method of Multipliers (ADMM) [START_REF] Boyd | Distributed optimization and statistical learning via the alternating direction method of multipliers[END_REF]. This model was recently adapted to estimate temporal variability in the case of sequences of hyperspectral images [START_REF] Thouvenin | Online unmixing of multitemporal hyperspectral images accounting for spectral variability[END_REF]. A similar model is presented in [START_REF] Halimi | Hyperspectral unmixing in presence of endmember variability, nonlinearity or mismodelling effects[END_REF], but is this time derived in a Bayesian framework, with slightly different constraints. In particular, this model assumes that the additive perturbations are spectrally smooth. However, contrary to the other Bayesian algorithms presented above, the MAP estimator is here obtained through an optimization algorithm, which makes the algorithm significantly faster than standard Bayesian approaches, where the whole posterior distribution needs to be sampled. Finally, we can cite the recent approach based on tensor decomposition which has been successfully used in the case of multitemporal [START_REF] Veganzones | Nonnegative tensor cp decomposition of hyperspectral data[END_REF] and multiangular [START_REF] Veganzones | Multilinear spectral unmixing of hyperspectral multiangle images[END_REF] images, which allows to track the changes of the sources along the concerned modality.

Parametric Models

In this category, the sources are also allowed to vary according to a specific model, but in a more constrained way than in the previous category. The variations of the sources are now only allowed along a limited number of free parameters (typically much less than the number of spectral bands). Fig. 2 (c) (resp. Fig. 2 (d)) shows an example of this type of model, where here one (resp. two) real parameter(s) delimit(s) the accessible domain of the sources, which is in fact a parametrized manifold (of dimension 1 (resp. 2) in this example). These models are usually physics driven.

In the physics community, the Hapke model [START_REF] Hapke | Theory of reflectance and emittance spectroscopy[END_REF] is used to model the relationship between albedo and reflectance, by taking into account the geometry of the acquisition (incidence angle of the light source and viewing angle of the sensor, which vary locally with the topography of the scene), and the photometric parameters specific to the materials. In the context of macroscopic mixtures, the mixing process remains linear. By assuming that the albedo is known (or extracted by inverting the model) for a material, the model defines a (rather complex) manifold in which the endmembers can live. The model is very complex and comprises many parameters in its most general form. It is hence cumbersome to use directly in a SU context. However, as a first approximation, it can be simplified to provide the following mixture model [START_REF] Veganzones | A new extended linear mixing model to address spectral variability[END_REF], the so-called Extended Linear Mixing Model (ELMM):

x k = S0ψ k a k + e k (8)
where ψ k is a diagonal matrix, comprising P scaling factors on its diagonal, which weigh each source in an identical way for all wavelengths, and S0 is a reference endmember matrix. This equation explicitly models the variation of the endmembers (allowed to vary in a one dimensional manifold), where scaling factors locally absorb contrast and illumination effects in the image. [START_REF] Veganzones | A new extended linear mixing model to address spectral variability[END_REF] shows that if the scaling factor is assumed identical for each material, it can be estimated from the result of Eq. ( 3), by only considering the positivity constraint of the abundances. Indeed, the estimated quantity can be written as the product of an abundance coefficient and a scaling factor (see [START_REF] Veganzones | A new extended linear mixing model to address spectral variability[END_REF] for details). The algorithm proposed in [START_REF] Drumetz | Blind hyperspectral unmixing using an extended linear mixing model to address spectral variability[END_REF][START_REF] Drumetz | Blind hyperspectral unmixing using an extended linear mixing model to address spectral variability[END_REF] is specifically designed to estimate the parameters of this model through a nonconvex optimization problem with various constraints and regularization terms, and was validated using synthetic data based on the full Hapke model. In its most simple version, the optimization problem writes:

( Â, Ŝ, ψ) = argmin A,S,ψ 1 2 N k=1 ||x k -S k a k || 2 2 + λS||S k -S0ψ k || 2 F (9)
In the version of [START_REF] Drumetz | Blind hyperspectral unmixing using an extended linear mixing model to address spectral variability[END_REF], spatial information is taken into account through spatial regularizations since abundances and geometric variability effects are known to be spatially correlated. Such regularizations also enforce a joint processing of the data rather than a pixelwise processing ignoring spatial relationships. This algorithm is actually a hybrid approach between the last two categories of methods, since there is an explicit parametric model to explain the variation of the endmembers (along straight lines linking the origin and the reference endmembers), but the estimated sources are actually free to drift away from this exact model, in order to explain other types of variability which are not explicitly modeled (for instance intrinsic variability). Nevertheless, the scaling factors are easily physically interpretable and vary with changes in the geometry of the scene. This model (in the case of identical scaling factors for all materials) was recently adapted to address a case where the mixing model is bilinear rather than linear, showing that it is possible to simultaneously estimate parameters related to both spectral variability and nonlinear mixtures [START_REF] Halimi | Hyperspectral unmixing in presence of endmember variability, nonlinearity or mismodelling effects[END_REF].

In [START_REF] Somers | A conceptual framework for the simultaneous extraction of subpixel spatial extent and spectral characteristics of crops[END_REF], two parametric models (one is affine, the other exponential) are proposed to explain the variations in the spectrum of soil under different moisture conditions. Wavelength-dependent parameters of these two models are estimated by linear regression on in-situ measurements for two wavelengths. By assuming these parameters have been estimated for every wavelength (or at least for different wavelength ranges), the relationship between moisture and reflectance defines in each case a one-dimensional manifold (parametrized in each pixel by a real value accounting for the moisture level), which enables the local estimation of this parameter in the image.

DISCUSSION

In this section we summarize the previous considerations and provide a critical discussion of the different strategies.

Spectral bundles are probably the easiest way to deal with spectral variability in SU. They allow to simply represent the intra class variations of a material by a set of signatures incorporating its variability. Even when the bundles are extracted randomly in the image data, the unmixing performance usually surpasses that of the conventional linear SU. Bundles can also serve as a training set for machine learning approaches which aim at learning the relationship between the bundles and the abundances. This approach is also very sound when a spectral library is available a priori. The main drawback is that the performance of these methods highly depend on the quality of the extracted bundles. Besides, if the used endmember extraction algorithms make use of the pure pixel assumption, it has to remain valid in each used subset, which can be too strong a hypothesis when dealing with small datasets. Also, there is no explicit modeling of the variability, which can make the interpretation of the results harder.

More advanced bundle extraction algorithms, in particular using spatial information (e.g. [START_REF] Xu | An image-based endmember bundle extraction algorithm using both spatial and spectral information[END_REF] and references therein) could be used in this framework in order to improve the quality of bundle-based SU.

Computational models go further than spectral bundles because spectral variability is explicitly modeled in the mixing model used. These models usually approximate variability as a deviation w.r.t. the Linear Mixing Model, and hence can theoretically explain any type of variability. They generally only require a reference endmember to be known or extracted beforehand, and are thus relatively robust to the absence of pure pixels. Nevertheless, their flexibility can also be a drawback since, once again, the results cannot always be interpreted in a more thorough way than to detect areas where a linear mixture is not sufficient to explain the data. It is probable that other phenomena such as nonlinearities and missing endmembers could be interpreted as spectral variability within the framework of these models. An a posteriori analysis of the extracted sources (e.g. to try to isolate "typical" sources for each material) could be a way to take advantage of the flexibility of these techniques.

The last category also resorts to parametric models to extract variability, but the key difference here is that a limited number of parameters provide rules for the spectral variation of the endmembers. Besides, these parameters are usually physics-based. Thus this type of models usually has an immediate physical interpretation. This has been recently validated in particular for illumination-based models [START_REF] Drumetz | Blind hyperspectral unmixing using an extended linear mixing model to address spectral variability[END_REF]. Illumination conditions effects are correlated between materials, and hence the same model can as a first approximation be used for each of them. However, by definition, intrinsic variability is material specific, and modeling the variability of a material must be done through ad hoc models, limiting their applicability. Besides, physical modeling can lead to complex models which can be impossible to use in practice for SU, therefore requiring simplifying hypotheses.

Finally, most methods focus on considering varying endmembers in the spatial domain. However, modern hyperspectral sensors make more and more multimodal datasets available. The typical additional modalities are multitemporal and multiangular datasets. A majority of the methods listed here could be easily adapted to a different variability framework, be it temporal, angular, spatial, or any combination of those, as explained in Section 2. The works of [START_REF] Henrot | Dynamical spectral unmixing of multitemporal hyperspectral images[END_REF], [START_REF] Thouvenin | Online unmixing of multitemporal hyperspectral images accounting for spectral variability[END_REF], and [START_REF] Veganzones | Nonnegative tensor cp decomposition of hyperspectral data[END_REF] are examples of algorithms for multitemporal spectral variability extraction in a joint way, rather than an independent analysis of each time frame [START_REF] Goenaga | Unmixing analysis of a time series of hyperion images over the guanica dry forest in puerto rico[END_REF].

CONCLUSION

We have presented a review of the most recent methods to take spectral variability into account for spectral unmixing. We have categorized these methods in three main types of approaches and described their specificities, before suggesting some research avenues for each of them. We believe that extending some of these methods to a nonlinear mixture model is possible (an encouraging step in this direction was recently made in [START_REF] Halimi | Hyperspectral unmixing in presence of endmember variability, nonlinearity or mismodelling effects[END_REF]) and would definitely enrich the analysis of remote sensing images through spectral unmixing. We think that the design of models and algorithms to further refine the existing models dealing with illumination, as well as the design of new models taking into account various material specific physical phenomena is a promising research avenue for the community.

Fig. 1 .

 1 Fig. 1. Linear Mixing Model in the case of three endmembers. The endmembers are the red dots, and the data lie inside the simplex spanned by those dots. The abundances of a data point are its barycentric coordinates in the simplex.

Fig. 2 .

 2 Fig. 2. Different approaches to handle spectral variability during linear SU (in the case of three endmembers).

This work has been partially supported by the European Research Council under the European Community's Seventh Framework Programme FP7/2007-2013, under Grant Agreement no.320684 (CHESS project).


Valérie Issarny

Georgios Bouloukakis

Nikolaos Georgantas

Benjamin Billet

Revisiting Service-oriented Architecture for the IoT: A Middleware Perspective

Keywords: Internet of things, Interoperability, Middleware, Serviceoriented Architecture, Scalability

By bridging the physical and the virtual worlds, the Internet of Things (IoT) impacts a multitude of application domains, among which smart cities, smart factories, resource management, intelligent transportation, health and well-being to name a few. However, leveraging the IoT within software applications raises tremendous challenges from the networking up to the application layers, in particular due to the ultra-large scale, the extreme heterogeneity and the dynamics of the IoT. This paper more specifically explores how the service-oriented architecture paradigm may be revisited to address challenges posed by the IoT for the development of distributed applications. Drawing from our past and ongoing work within the MiMove team at Inria Paris, the paper discusses the evolution of the supporting middleware solutions spanning the introduction of: probabilistic protocols to face scale, cross-paradigm interactions to face heterogeneity, and streaming-based interactions to support the inherent sensing functionality brought in by the IoT.

Introduction

The Internet of Things promises the easy integration of the physical world into computer-based systems. In effect, real-world objects become connected to the virtual world, which allows for the remote sensing of as well as the remote acting upon the physical world by computing systems. Improved efficiency and accuracy are expected from this paradigm shift. However, although the vision emerged about 2 decades ago, enacting IoT based systems is still raising tremendous challenges for the supporting infrastructure from the networking up to the programming abstractions. Key challenges relate to ( [START_REF] Teixeira | Service oriented middleware for the internet of things: A perspective[END_REF]): scale as we are dealing with systems that may have to coordinate millions of devices; deep heterogeneity since the IoT brings together sensor and actuator networks with cloud-based systems and thus the very small and the very large; high dynamics in relation with the unknown topology of the network and further presence of mobile things as well as uncertainty about the features of the networked things.

The challenges that the IoT is raising in the development of computing systems along with perspectives on how to address them have been the focus of numerous papers over the last decade, such as in: [START_REF] Atzori | The internet of things: A survey[END_REF][START_REF] Teixeira | Service oriented middleware for the internet of things: A perspective[END_REF][START_REF] Gubbi | Internet of things (iot): A vision, architectural elements, and future directions[END_REF][START_REF] Razzaque | Middleware for internet of things: A survey[END_REF]. Among the software architecture paradigms envisioned for IoT-based systems, the literature suggests that service-orientation is promising due to its inherent support for interoperability and composability [START_REF] Guinard | Interacting with the soa-based internet of things: Discovery, query, selection, and on-demand provisioning of web services[END_REF]. A large number of Service-oriented Middleware (SOM) platforms have then been proposed for the IoT, which subsumes revisiting the core elements of the service-oriented architecture paradigm starting with the service abstraction itself.

Towards building a SOM platform for the IoT, the starting point is to abstract Things or their measurements as services [START_REF] Eisenhauer | Hydra: A development platform for integrating wireless devices and sensors into ambient intelligence systems[END_REF][START_REF] Fok | Servilla: a flexible service provisioning middleware for heterogeneous sensor networks[END_REF][START_REF] Corredor | Knowledge-aware and service-oriented middleware for deploying pervasive services[END_REF][START_REF] Aberer | Infrastructure for data processing in largescale interconnected sensor networks[END_REF][START_REF] Meling | Sensewrap: A service oriented middleware with sensor virtualization and self-configuration[END_REF][START_REF] Perera | Mosden: An internet of things middleware for resource constrained mobile devices[END_REF]. Compared to the classical Business services, Thing-based services must encompass highly heterogeneous software entities among which resource-constrained ones [START_REF] Athanasopoulos | An Architectural Style for the Development of Choreographies in the Future Internet[END_REF]. An early attempt in that direction is illustrated by the SenseWrap middleware, which features virtual sensors that deal with the transparent discovery of the supporting resources using ZeroConf protocols [START_REF] Meling | Sensewrap: A service oriented middleware with sensor virtualization and self-configuration[END_REF]. The discovery of resourceconstrained resources is also the main focus of Hydra [START_REF] Eisenhauer | Hydra: A development platform for integrating wireless devices and sensors into ambient intelligence systems[END_REF], aka LinkSmart (https: //linksmart.eu). Hydra further provides interoperability at a semantic level by leveraging semantic Web services technologies for the description of the capabilities of thing-based services. SOCRADES is another one of the early IoT-based SOMs [START_REF] Guinard | Interacting with the soa-based internet of things: Discovery, query, selection, and on-demand provisioning of web services[END_REF], which aims at easing the integration of physical devices into existing enterprise information systems. SOCRADES builds upon the DPWS (Devices Profile for Web Services) standard so that physical Things may expose their resources and may communicate through the Internet as standardized Web services. EQoSystem (Emergent QoS System) [START_REF] Newman | A resource-aware framework for resource-constrained service-oriented systems[END_REF] goes one step further by dealing with the quality of the services delivered by resource-constrained Things. EQoSystem monitors the resources of the underlying devices and triggers resource management strategies (e.g., adapting the service workflow) at runtime for providing acceptable QoS. Similarly in [START_REF] Li | Efficient allocation of resources in multiple heterogeneous wireless sensor networks[END_REF], authors investigate a heuristic task allocation algorithm, named SACHSEN, which constitutes the core component of their SOM. The algorithm aims to distribute WSN applications to sensor nodes by dealing with the applications' performance requirements and the nodes' energy resources.

In addition to coping with the abstraction of resource-constrained Things as services, the access to the related services also requires special care in IoT-based SOA. We identify two approaches to access a resource-constrained node (typically a sensor or actuator): either i) using a proxy/gateway; or ii) deploying the middleware component on the sensor/actuator node itself. The former approach was initially favored. However, with the technological evolution of sensor nodes and of SOM, the latter approach is now deserving much attention. Indeed, it provides greater flexibility for managing the physical network infrastructure. The authors in [START_REF] Kyusakov | Integration of wireless sensor and actuator nodes with it infrastructure using service-oriented architecture[END_REF] undertake this approach by deploying SOAP-based Web services (DPWS) directly on the nodes without using gateways. Nevertheless, deploying the middleware component directly on the device might cause several issues, such as message delays, limited supported interactions, limited computational capacity, high energy consumption, etc. Taking into account these problems, the authors in [START_REF] Sheng | Lightweight management of resource-constrained sensor devices in internet of things[END_REF] leverage the lightweight CoAP protocol (Constrained Application Protocol, http://coap.technology/) on sensor devices and evaluate the tradeoff between response times and delivery success rates. Despite the fact that CoAP supports extremely low-resource interactions, it is more suitable for synchronous interactions. Several other protocols have been developed to address the above issues, along with standardization efforts that will guarantee interoperability. The authors in [START_REF] Fysarakis | Which iot protocol? comparing standardized approaches over a common m2m application[END_REF] compare the most promising IoT protocols: DPWS for largescale enterprise deployments, CoAP for lightweight interactions, and MQTT for high reliability. Therefore, it is essential to combine one or more protocols in a WSN application to better exploit the physical network infrastructure.

As briefly outlined above, revisiting SOA and the supporting SOM for the IoT has undergone various steps, as a direct consequence of the technological evolution of the IoT. Obviously, the fact that a growing a number of application domains sees the benefits of leveraging the IoT has also encouraged the development of the enabling hardware and software technologies. This is for instance illustrated by the large literature on middleware solutions for the IoT, as surveyed in [START_REF] Razzaque | Middleware for internet of things: A survey[END_REF]. The present paper focuses on the complementary SOM solutions that we have been developing within the MiMove team at Inria Paris to face the scale, dynamics and heterogeneity of the IoT with a special emphasis on enabling resource-constrained Things to become first-class service providers. The next section then outlines our vision of a Thing-based SOA, and is followed by an overview of the supporting SOM solutions in Sections 3 to 5. Section 6 concludes with our perspective for future work.

Thing-based SOA

Traditional SOA involves three main actors that interact directly with one another: a Service Provider, a Service Consumer, and a Registry for services. Any service-oriented middleware adopting this architecture supports three core functionalities: Discovery, Composition of, and Access to services. More specifically, Discovery is used to publish (register) services in registries that hold service metadata and to look up services that can satisfy a specific request. Composition of services is used when discovered services are unable to individually fulfill the request. In such case, existing services are combined to provide a new convenient functionality. The composed services can further be used for more complex compositions. Finally, Access enables interaction with the discovered services. This basic SOA architecture is shown in Figure 1.

The IoT brings new requirements and calls for substantially different approaches to the above traditional SOA. Regarding discovery, the principal new challenge is scale when having to deal with millions of Things that produce data of interest, typically sensors that provide real-world measurements. In traditional SOA, even if millions of services are registered, one (or few for backup) is finally selected to fulfill a specific request. On the other hand, discovery in the IoT means selecting from a potentially very big number of Things a sufficient subset that will provide, in combination, quality data for a pending query, while limiting unnecessary redundancy for the sake of the scarce resources. Furthermore, a considerable portion of the networked Things that connect with the physical world are endowed with the ability to change their location either autonomously or, for instance, with human involvement (e.g., mobile phones, vehicles, etc.). These mobile Things are now within everyone's reach. For instance, all mobile phones nowadays host at least two sensors, a camera and a microphone. As of 2011, there were 5.3 billion phones users, of whom more than 1 billion owned a smartphone1 with additional sensors, such as gyroscopes and barometers. Another example is the increasing integration of sensors and actuators in vehicles. We look into the problem of scalable discovery of Things -both fixed and mobile -in Section 3 and report on our related research results.

Concerning composition, the key challenge is resource saving, especially when it comes to dealing with continuous complex processing of data streams produced by numerous Things that are resource constrained. While, in traditional SOA, a composite service typically involves an exchange (direct or indirect) of a few discrete messages between the constituent services, in IoT data streaming, big volumes of data need to be collected from sensors, processed, composed and finally stored or delivered to actuators. Even if relying on the cloud is a widely adopted solution to this challenge, this incurs high communication and energy cost for Things and networks. We discuss this issue along with our in-network solution approach in Section 4.

Finally, access is essential for any IoT deployment, whether there is direct communication among Things or through the cloud. The hard challenge here is heterogeneity, which is particularly acute in the highly fragmented IoT world and concerns all hardware and software aspects of Things. In traditional SOA, standardization has been particularly effective, with WS-* and REST web services being the two dominant technologies. Regarding the same aspect in the IoT, i.e., public service description and middleware-level service access, where we assume Things sufficiently powerful to support IP protocol stacks, there is much bigger diversity. Message-, event-and data-based interaction styles are all widely used in the IoT with various protocol realizations. We analyze this issue and provide an overview of our current related research in Section 5.

Discovery in the Ultra-large Scale IoT

Real-world measurements in the IoT require a large number of Things, since it is unlikely for a single or even a few Things to be sufficient. Applying the proposed traditional approaches of SOA to discover Things (i.e, discover all the appropriate devices that are reachable), will return a large set of accessible Things, many of which provide redundant functionalities. Moreover, mobility in the IoT constitutes an additional challenge regarding the discovery of sensors embedded in mobile devices. More specifically, the application of SOA to the IoT results in some apparent problems. On the one hand, all the tasks in SOA revolve around some business logic that can be satisfied by one or several services. On the other hand, in the IoT, all the tasks and interactions revolve around what we refer to as a Thingbased query that senses/actuates some real world phenomenon. An example of a Thing-based query would be "What is the air pollution level on highways in Paris?". Thus, with such queries it is unlikely to have only one or just a few services that can provide accurate answers to represent a real-world feature. Hence, expecting the service consumer to interact with the numerous relevant service providers individually to access their services and acquire their measurements, then know how to treat each and every value (with different possible formats, types, units, etc.), in addition to the aggregation logic to apply, requires high communication and computation capabilities that the consumer will most likely not possess. As an alternative, our approach revisits the SOA and renders most interactions and heavy computations transparent to the consumer, who is only expected to know the sought after measurements. Figure 2 depicts the Thing-based SOA that is to be contrasted with the traditional SOA of Figure 1. This has further led us to introduce the supporting MobIoT service-oriented middleware [START_REF] Hachem | Service-oriented middleware for large-scale mobile participatory sensing[END_REF]. As depicted in Figure 3, MobIoT supports the core functionalities of SOA (discovery, composition and access), while enabling Thing-based queries. In particular, Mo-bIoT features a novel probabilistic discovery protocol. In MobIoT, the Discovery component wraps Registration and Look-up functionalities as follows:

-Probabilistic Registration: the registration of a provider's service is probabilistic. The goal is to allow only a subset of willing providers to register their services, depending on whether the already registered ones are sufficient. More precisely, in MobIoT, the Registration component generates the decision to allow or prevent a Thing from registering its services. The component estimates whether or not the mobility path to be followed by this Thing can be covered by other, already registered, mobile Things with similar sensing/actuating services. To that end, the component computes the probability that any of the latter Things be present at each of the future locations on the path of the former Thing when the former Thing crosses them. Then, the component compares the resulting probability value to a required sensing coverage. We consider that the coverage requirement (threshold) depends on the sensor and can be specified in its metadata. Only if the resulting probability is lower than the threshold, the Thing registers its service. We use the Truncated Lévy Walk mobility model [START_REF] Rhee | On the levy-walk nature of human mobility[END_REF] to estimate the mobility of registered Things and compute the probabilities above. The Registration component can use any other mobility model as long as the corresponding mathematical formulas to compute the probabilities are provided. As shown in [START_REF] Hachem | Probabilistic registration for large-scale mobile participatory sensing[END_REF], our registration solution successfully limits the registration of redundant services. -Probabilistic Look-up: the look-up is also probabilistic and returns only a subset of sensing services based on the total area coverage they can pro-vide [START_REF] Hachem | Service-Oriented middleware for the large-scale mobile Internet of Things[END_REF]. We adopt the same logic as in intrusion detection solutions [START_REF] Wang | Gaussian versus uniform distribution for intrusion detection in wireless sensor networks[END_REF],

where the spatial distribution of sensors has a major effect on the performance of the sensing system. Based on those solutions, when measuring a feature over some area (e.g., Air quality level), we sample sensors from a Uniform distribution in space, so that sensors from all over that area have the same likelihood of being selected. However, when the concept of interest is at a specific point in space, a better distribution would be Normal, as it selects more sensors around that point and less as we move farther. More specifically, in MobIoT, the Look-up component is in charge of returning a subset of services to access that can satisfy the Thing-based query. Based on the requested measurement and the location of interest, the component determines the most adequate probability distribution and the number of needed services. This number is computed based on the coverage requirement, expressed as a percentage of the area of interest to be sensed/acted upon by the selected subset. The result is then forwarded to the Registry to determine the actual Things to sample.

Composition in the Dynamic Resource-constrained IoT

A major feature of a SOA is supporting the composition of the operations of existing services in order to create composite services [START_REF] Papazoglou | Service-oriented computing: Concepts, characteristics and directions[END_REF]. Contracts describe the inputs and the outputs of service operations and enable the specification of a workflow of service invocations that represents the logic of a new more complex operation. In practice, composite services execute in a centralized or a distributed fashion. The former approach, called service orchestration, introduces an orchestrator to manage the invocations of the underlying services. The latter approach, called service choreography, leverages negotiation and routing mechanisms to let the service providers manage the composite services autonomously. Applying a similar approach in the IoT is not a trivial procedure. We are, in particular, interested in the composition of Things that collaboratively produce, process and consume IoT data streams. Our emphasis is on in-network continuous processing of sensed data streams, as opposed to delegating all of the computation to the cloud, aiming to reduce the energy cost of communication over computation incurred by the massive scale of the IoT. Additionally, the IoT is characterized by a network topology that may be unknown and highly dynamic, due to the mobility of Things or their short life span. As a consequence, services required by an IoT application may suddenly become unavailable, because the host ran out of battery or just changed its location abruptly. To deal with all the above issues, the traditional composition of SOA must be extended in order to infer which service providers have to be used for executing the services, according to a set of scenario-dependent properties (e.g., throughput, energy consumption). This problem is a variation of the task mapping problem, where a set of communicating tasks with several properties (constraints, resource consumption, etc.) must be mapped to a set of connected nodes given their characteristics (location, hardware capabilities, etc.). Both centralized and distributed approaches have been studied to solve the above problem. The centralized approach computes and executes an allocation plan on a single machine (similar to service orchestration). The distributed approach lets the nodes compute parts of the allocation plan based on the knowledge they have about their peers (similar to service choreography). In MiMove, we have studied this problem and have introduced Dioptase, a distributed data streaming middleware for the Web of Things [START_REF] Billet | Dioptase: a distributed data streaming middleware for the future web of things[END_REF]. Dioptase makes it possible to: i) integrate the Things with today's Web by exposing sensors and actuators as Web services, ii) manage physical data as streams, and iii) use any Thing as a generic pool of resources that can process streams by running tasks that are provided by developers over time.

More concretely, we introduce in [START_REF] Billet | From task graphs to concrete actions: a new task mapping algorithm for the future internet of things[END_REF] a dedicated centralized solver (Dioptase component) to allocate tasks on resource-constrained Things that produce data as streams. Depending on the available resources, each Thing may play one (or more in combination) of the identified four high-level roles (Figure 4): i) a production role where the Thing presents sensor data as streams, ii) a processing role where the Thing continuously processes streams, iii) a consumption role where the Thing acquires streams and drives actuators, and iv) a storage role where the Thing saves data extracted from streams (in its memory, or persistently).

Subsequently, a Dioptase mashup is composed of distributed components, called atomic components, derived from the above roles. These components interact (are connected) by continuously exchanging data as streams. Each component defines input ports for the consumption of streams, depending on the component type, and output ports where new stream items are produced. Pro- 1 Producer Reads the P M10 sensor every x seconds.

2 Producer Reads the N O2 sensor every x seconds.

3 Processor Every y minutes, computes the average of the P M10 measurements between min (P M10) and max (P M10). 4 Processor Every y minutes, computes the average of the N O2 measurements between min (N O2) and max (N O2). 5 Processor Aggregates geographically the values of 3 and 4 . Produces two streams: i) a stream of events decrease-speed or increase-speed, depending on the aggregated results (s5) and ii) a stream containing the aggregated results (s6). 6 Consumer Increases or decreases the displayed speed limit, according to the events received from 5 . 7 Storage Stores the results of 5 . 6 Consumer Asks for data stored in 7 and presents it to the application. vided the data types specified for the input and output streams match, any output port can be connected to any input port through a one-to-one connection. We represent the above components as services of SOA. The ports provided by a service define its interface, while the contract specifies the schemas of i) the streams readable by each input port and ii) the streams produced by each output port. Given a contract, the service consumer can reason about the operations of the service and the streams that each operation processes and produces.

The mashup can then be easily described as an acyclic directed graph where the nodes are producers (sources), processors, consumers (sinks) and storages, and the edges of the graph, are streams that link services together through the input and output ports. We call this graph a logical mashup graph because it describes the tasks that the network has to perform. This graph is provided by the developer either directly or expressed as a query that is translated into a mashup graph. As an illustration, Figure 5a presents an example of a simple mashup that analyzes air pollution based on the level of nitrogen dioxide (N O 2 ) and particulate matter (P M 10 ), in order to control the digital speed limiters located along city highways. In this mashup, two producers ( 1 and 2 ) read the P M 10 and N O 2 values from available sensors. Those data are acquired by two processors ( 3 and 4 ) that aggregate the values on a 10 minute basis (time window). Processors 3 and 4 send these aggregated results to the processor 5 that will produce an event stream for the speed limiters 6 . At the same time, the measurements are saved by a storage 7 and consumed by the air pollution control application 8 , which presents historical values or alerts to an administrator.

Subsequently, the logical mashup graph is executed through its conversion into a physical mashup graph, as depicted in Figure 5b. The execution of a logical graph is done through: i) instantiating the services (i.e., maps a service onto a host device) and ii) connecting their ports according to the graph edges. Regarding the latter, the data exchanged between two services is pull-based (where a consumer requests a producer to send the data stream), and Dioptase connects the services' ports (input or output) that are specified in each contract. After executing the logical graph, the services are hosted on the following devices (Figure 5b): a P M 10 sensor (Sensor 1), a P M 10 + N O 2 sensor (Sensor 2), a speed limiter embedding an N O 2 sensor (Speed Limiter 1), a speed limiter embedding no sensors (Speed Limiter 2), and the control center computer. According to this physical deployment, an instance of Processor 3 will execute on the same device that hosts Producer 1 , thus reducing network traffic. Moreover, processor 5 , which controls the speed limiters, will run on the control center computer together with the history database 7 and the air pollution control application 8 .

To instantiate the services as illustrated in the example, we use information about Things' locations and available resources. Then, depending on its capabilities, a Thing can be assigned either a single component or an entire subgraph by using the task mapping algorithm that we have proposed in [START_REF] Billet | From task graphs to concrete actions: a new task mapping algorithm for the future internet of things[END_REF]. In brief, we formalize therein the task mapping problem in the specific context of the IoT, which results in a binary programming problem. We provide a heuristic algorithm to solve it and demonstrate experimentally the efficiency, sufficient optimality, and reasonable resource requirement of our solution. Consequently, the mapping can be performed directly within the network, without requiring any centralized infrastructure.

Access in the Heterogeneous IoT

The access mechanism of traditional SOA enables the interaction between service consumers and service providers. In particular, services interact in a unified way following specific data formats on top of common overlay infrastructures across different system platforms. Web services constitute the dominant technology in SOA, with well known protocols such as SOAP or REST as the overlay infrastructure. The research community and many businesses have adopted these protocols and their standards in order to describe and implement their services (i.e., the supported operations, data formats, etc.). Also regarding the interconnection of these protocols, the existence of standards facilitates the development of frameworks for interoperability.

On the other hand, the (mobile) IoT comprises sensors and actuators that are heterogeneous with different operating (e.g., operating platforms) and hardware (e.g., sensor chip types) characteristics, hosted on diverse Things (e.g., mobile phones, vehicles, clothing, etc.). To support the deployment of such devices, major tech industry actors have introduced their own APIs and protocols, which deal with: i) the limited energy resources of Things; ii) several data formats found in the IoT; iii) specific guarantees regarding response times and data delivery success rates; iv) the efficient transfer of small data payloads which are common in the IoT; etc. The resulting APIs and protocols are highly heterogeneous. In particular, protocols differ significantly in terms of interaction styles and data formats. For instance, protocols such as CoAP relying on client-service interactions, MQTT based on the publish-subscribe interaction paradigm, SemiSpace offering a lightweight shared tuple space, or Websockets based on streaming interactions, are among the most widely employed ones.

Hence, providing access to Things establishes a new challenge with respect to traditional SOA. To deal with this challenge, we have introduced the eVolution Service Bus (VSB). VSB is a development and runtime environment dedicated to complex distributed applications. Its objective is to seamlessly interconnect, Things that employ heterogeneous interaction protocols at the middleware level (e.g., DPWS, CoAP, MQTT, Dioptase, etc.). This is based on runtime conversions between such protocols, with respect to their primitives and data type systems, while properly mapping between their semantics. This also includes mapping between the public service interfaces of Things, regarding their operations and data, from the viewpoint of the middleware: the latter means that operations and data are converted based on their middleware-level semantics, while their business semantics remains transparent to the conversion. VSB follows the wellknown Enterprise Service Bus (ESB) paradigm [START_REF] Chappell | Enterprise Service Bus[END_REF]. In this paradigm, a common intermediate bus protocol is used to facilitate interconnection between multiple heterogeneous middleware protocols: instead of implementing all possible conversions between the protocols, we only need to implement the conversion of each protocol to the common bus protocol, thus considerably reducing the development effort. This conversion is done by a component associated to the Thing in question and its middleware, called a Binding Component (BC), as it enables the interaction between the Thing and the common bus protocol. VSB follows a fully distributed architecture implemented by a number of Binding Components (BCs) that interact among themselves through the VSB common bus protocol.

A view of the VSB architecture is depicted in Figure 6, showing the interconnection of Sensor 2 and the Control Center of the physical mashup in Figure 5b. Within every mashup, there are streams of data exchanged using the Dioptase middleware. However, Sensor 2 publishes data through an MQTT middleware component and the Control Center accepts data through a CoAP component. Thus, using VSB we enable the interconnection of heterogeneous protocols. Particularly, BC 1 is associated to Sensor 2, while BC 2 is associated to the Control Center. Implementation-wise, a BC employs the same (or symmetric, e.g., client vs. server) middleware protocol library as its associated Thing, and all BCs use a library implementing the bus protocol, which in our case is the Dioptase middleware. MQTT, CoAP and Dioptase are treated in the same way within the VSB architecture. More specifically, each end-to-end interaction using the same middleware-layer protocol is modeled and abstracted by the Generic Middleware (GM) connector, as indicated in Figure 6.

The GM connector abstracts interactions among peer components that employ the same middleware protocol in a unifying fashion for any middleware protocol. We propose an API (application programming interface) for GM and a related interface description, which we call GIDL (Generic Interface Description Language), for application components that (abstractly) employ GM. Concrete middleware protocols and related interface descriptions of application components that employ these middleware protocols can be mapped to GM API and GIDL, respectively. Based on these abstractions, we elaborate a generic architecture for BCs (which we call Generic BC ), an Implementations' Pool, which contains implementations of the GM API for concrete middleware or bus protocols, as well as a related method for BC Synthesis.

We provide more details concerning the GM connector, GIDL, and BC synthesis in the following:

-Generic Middleware (GM) Connector : based on our experience with middleware protocols/paradigms and their modeling in [START_REF] Georgantas | Service-oriented Distributed Applications in the Future Internet: The Case for Interaction Paradigm Interoperability[END_REF], we introduce a detailed API for GM. The GM API identifies and supports basic interaction styles found in most middleware protocols: one-way interaction, two-way asynchronous interaction, two-way synchronous interaction, and stream interaction. It also distinguishes between the two roles involved in an interaction, such as: provider and consumer. Essentially, the API relies on two main actions: a post action for sending a piece of data and a get action for receiving a piece of data. -Generic Interface Description Language (GIDL): by relying on the GM API, we elicit a generic interface description (GIDL) for a Thing that employs a middleware protocol abstracted by GM. GIDL enables the definition of operations provided or required by a Thing and that follow the interaction styles and roles identified in the GM API. Besides an operation's type, the names and data types of its parameters are also specified. The description is complemented by the physical address of the Thing. -BC Synthesis: the functioning of BC Synthesis for the generation of a BC intended to serve a specific Thing is illustrated in Figure 7, which depicts VSB's development and runtime environments. BC synthesis receives as input the GIDL description of the Thing and the information of the bus protocol in use. Based on this input, BC synthesis refines the Generic BC in two steps:

(1) by selecting appropriate GM API implementations from the Implementation's Pool that correspond to the Thing's middleware protocol and bus protocol; and (2) by inserting specific information about the Thing's operations and data from its GIDL description. The outcome of BC synthesis is a BC that will be deployed to serve the Thing.

VSB enables access to heterogeneous Things, while taking into account the current diversity but also the future evolution of IoT protocols. Hence, as shown in Figure 7, a Thing may participate in more than one runtime topologies, which can be readily supported by multiple BCs and buses. Additionally, depending on the constraints found in an application scenario (e.g., devices with limited energy resources), any new protocol can be introduced as the VSB's common bus protocol. Accordingly, BCs are built and deployed as necessary: no BC is needed when a Thing employs the same middleware protocol as the bus protocol. Finally, there is no need for relying on and/or providing a full-fledged ESB platform (e.g., a cloud-based platform), which makes the VSB solution particularly flexible and lightweight.

Conclusion

IoT-based SOA holds the promise of easing the development of rich applications integrating the physical with the virtual worlds in a multitude of domains. This paper has presented our perspective on the definition of a supporting Serviceoriented Middleware, which primarily revolves around enabling the provision of services by resource-constrained Things, typically sensors and actuators. Chal-lenges then relate to: dealing with the ultra-large number of Things that are expected to be deployed in most environments, composing the services offered by the Things while coping with their inherent resource limitations and dynamics, and accessing the various networked things despite their high heterogeneity, including in terms of supported communication protocols. We have been studying solutions to these issues, which has led us to revisit the core functions of a SOM: service discovery becomes probabilistic to filter out redundant Things, especially accounting for the possible mobility of the service clients and/or providers; service composition aggregates data streams within the network so as to reduce the network load; and service access enables the interconnection of Things that adhere to different interaction styles (spanning client-server, event-based and data sharing communication). While those middleware solutions have led to the development of different SOM instances, we are now studying their integration so as to support the development of application toward smarter cities, in particular in the area of urban pollution monitoring.

Fig. 1 :

 1 Fig. 1: Traditional Service-Oriented Architecture (SOA).

Fig. 2 :

 2 Fig. 2: Thing-based SOA.

Fig. 3 :

 3 Fig. 3: MobIoT architecture.

Fig. 4 :

 4 Fig. 4: The four-roles model.

Fig. 5 :

 5 Fig. 5: Logical and physical mashup graphs for air control pollution.

Fig. 6 :

 6 Fig. 6: VSB architecture.

Fig. 7 :

 7 Fig. 7: VSB development and runtime environments.

US Strategy Analytics: www.strategyanalytics.com.

The work is supported by the Inria Project Lab CityLab (citylab.inria.fr) and the EU-funded H2020 projects CHOReVOLUTION (chorevolution.eu) and Fiesta-IoT (fiesta-iot.eu).