=Paper= {{Paper |id=Vol-1664/w1 |storemode=property |title=Towards a Discipline of IoT-Oriented Software Engineering |pdfUrl=https://ceur-ws.org/Vol-1664/w1.pdf |volume=Vol-1664 |authors=Franco Zambonelli |dblpUrl=https://dblp.org/rec/conf/woa/Zambonelli16 }} ==Towards a Discipline of IoT-Oriented Software Engineering== https://ceur-ws.org/Vol-1664/w1.pdf
                   Towards a Discipline of IoT-Oriented
                          Software Engineering
                                                       Franco Zambonelli
                                        Dipartimento di Scienze e Metodi dell’Ingegneria
                                            Universitá di Modena e Reggio Emilia
                                                     Reggio Emilia, Italia
                                                franco.zambonelli@unimore.it


   Abstract—Despite the rapid progresses in IoT research, a gen-        revolve, and via which to organize a set of guidelines towards
eral principled software engineering approach for the systematic        a general IoT-oriented software engineering discipline.
development of IoT systems and applications is still missing.
                                                                           To exemplify the analysis, we refer a specific case study,
In this article, by synthesizing form the state of the art in the
area, we attempt at framing the key concepts and abstractions           representative of a larger class of IoT scenarios: an IoT
that revolve around the design and development of IoT systems           enabled hotel with conference center. We assume the hotel
and applications, and that could represent the ground on which          infrastructures (e.g., lightening, heating, etc.) and its facil-
to start shaping the guidelines of a new IoT-oriented software          ities (guest rooms, conference rooms, and their associated
engineering discipline.
                                                                        appliances) are densely enriched with connected sensors and
                                                                        actuators. There, different actors (from hotel managers to
                      I. I NTRODUCTION                                  hotel/conference guests) can contribute to set up a variety of
   The dramatic future impact of IoT in society, industry,              IoT services to support both the hotel management and the
and commerce is already widely recognized [14]. However,                activities of its guests.
despite the great deal of worldwide researches in the area, the
technologies to make IoT a systematic reality are far form                                    II. BACKGROUND
being assessed. Early researchers in the IoT area have mostly
                                                                          The definition of general software engineering principles
focussed on communication issues and on enabling interop-
                                                                        requires identifying the general features and issues that char-
erability [3]. More recently, great efforts has been devoted
                                                                        acterize most current approaches to IoT systems design and
at promoting means to facilitate the integration of resources
                                                                        development.
and services towards the provisioning of software-defined
distributed services for the IoT. For instance, as in the “Web
                                                                        A. Things
of Things” (WoT) vision [13], by promoting the provisioning
of resources in an IoT network in term of Web Services, and                The “things” in the IoT vision may encompass a large
thus making it possible to develop distributed and coordinated          number of physical objects, and also include places and
IoT services by using standard Web technologies.                        persons.
   WoT is definitely promising and will most likely represent              Physical objects and places can be made trackable and
a keystone technology in the future of IoT. Indeed, along the           controllable by connecting them to low-cost wireless electronic
WoT lines, a number of different approaches (in terms of,               devices. At the lower end of the spectrum, RFID tags or
e.g., supporting middleware [29], [17] and programming ap-              bluetooth beacons, based on low-cost and short-range com-
proaches [5], [16]) are being proposed to support the develop-          munication protocols, can be attached to any kind of objects
ment of IoT systems and applications. Yet, a common unifying            to enable tracking their positions and status, and possibly to
approach supporting their design and development, grounded              associate some digital information with them. More advanced
on a common set of abstractions, models, and methodologies,             devices integrating environmental or motion sensors (i.e., ac-
is still missing. This undermines the possibility of promoting          celerometers) can detect the present and the past activities as-
a systematic and disciplined approach for the development               sociated with objects or with some place. In addition, one can
of complex IoT systems, and thus limits unfolding the full              make objects actuable – enabling the remote control of their
potentials of the IoT vision.                                           configuration/status via proper digitally-controller actuators –
   Against this background, this article attempts at framing            and possibly autonomous – delegating them of autonomously
some key general characteristics related to the engineering of          direct their activities.
complex IoT systems and applications, by synthesizing the                  To exemplify, in the hotel scenario: attach RFID tags to
common features of existing proposals and application sce-              objects in rooms, such as to a remote control in order to detect
narios. Such common characteristics are then used to identify           its presence and location in the room; integrate some kind of
the key software engineering abstractions around which the              Arduino-link controller to a roll-up board in the conference
process of developing IoT systems and applications could                room, in order to enable controlling via, e.g., a mobile phone




                                                                    1
its rolling-unrolling; have the window obscuring systems au-                  hotel conference centre can come and go, can be moved
tonomously regulate lightening conditions depending on the                    around, and can be placed in corners without wireless
kind of activities detected in the conference room, and possibly              connections) makes it impossible to anticipate which
actuable walls that can dynamically change the shape and                      things will be available and for how long during their
dimensions of meeting rooms depending on needs [21]. In                       exploitation. This requires mechanisms for discovery,
this perspective, autonomous robots (or robotified objects [1])               group formation, and coordination are that are capable of
can be somehow considered the highest end of the spectrum                     dynamically self-adapting to the general context in which
in the world of smart “things”.                                               they act, or possibly even self-organize in a context-aware
   Concerning persons, other than simply users of the tech-                   way [31].
nology, they can also be perceived at first-class entities of the          Concerning the “access” to the functionalities and capa-
overall IoT vision. Simply for the fact of having a mobile              bilities of individual things by users, the scene is currently
phone, they can be sensed in their activities and positions,            dominate by the so called “Web of Things” (WoT) vision [13].
and they can be asked to act in the environment or supply               The idea is to expose services and functionalities of individual
sensing. In the hotel scenario, one may think continuously              things in terms of REST services, enabling the adoption of
detecting the position and activities of people, in order to get        assessed web technologies as far as discovery of things and
ready to manage any possible emergency situation in the most            provisioning of coordinated group services are concerned.
efficient way.                                                          Concerning middleware infrastructures, a variety of proposal
                                                                        to support the provisioning of IoT services and applications
B. Software Infrastructures
                                                                        have appeared [29], [5], [16], [22]. Beside their specificities,
   To make “things” usable and capable of serving purposes,             most of these proposals rely on: some basic infrastructure to
there is need of software infrastructures (that is, of IoT              support the WoT approach (i.e., to expose things in terms of
middleware [22]) capable both of supporting the “gluing” of             simple services); some means to support, in according to a
different things and of providing some means for stakeholders           specific coordination model, the discovery of things (and of
and users to access the IoT system and take advantage of its            their associated services), and the coordinated activities of
functionalities.                                                        groups of things; and some solutions to make services and
   Concerning the “glue”, this involves a variety of technical          applications capable of self-adapting and self-organizing in a
issues:                                                                 context-aware and unsupervised way.
   • Interoperability. To enable a variety of very heteroge-
     neous things to interact with each other, a set of shared          C. Services and Applications
     tele-communication protocols and data representation                  With the term “IoT System” we generally refer to the
     schemes must be put in place [20], other than means to             overall set of IoT devices and to the associated middleware
     identify things [24]. The study of these issues dates to the       infrastructure devoted to manage their networking and their
     very early stages of IoT researches, a number of different         context-aware interactions. Logically above an IoT system,
     proposals exists, and the way towards assessed standards           specific software can be deployed to orchestrate the activities
     in well paved.                                                     of the system so as to provide:
   • Semantics. Beyond mere interoperability, a common se-                 • A number of specific services. That is, means to enable
     mantics for concepts must be defined to enable co-                      stakeholders and users to access and exploit individual
     operation and integration of things [4]. Also for this                  things and direct/activate their sensing/actuating capabil-
     issue, a number of proposals grounded on standard Web                   ities, but also coordinated services that access groups of
     technologies, and ontologies and schemas specifically                   things and coordinate their sensing/actuating capabilities.
     suited for the physically and socially embedded nature                  For instance, in a conference room of the hotel, other than
     of the , exists [20].                                                   to services to access and control individual appliances,
   • Discovery, Group Formation, and Coordination. IoT sys-                  one can think at providing a coordinated service that, by
     tems’ functionalities derive from the orchestrated ex-                  accessing and directing the lightening system, the light
     ploitation of a variety of things, possibly involving a                 sensors, and the windows obscuring system, can modify
     variety of users and stakeholders. In the hotel scenario,               the overall situation of the room from “presentation state”
     configuring a conference rooms for slide presentation                   to ”discussion state” and viceversa.
     requires involving the beam projector, the lightening                 • A number of more general-purpose applications or suites,
     system, other than the conference organizers and the                    intended as more comprehensive software systems in-
     speakers. This requires means to discovery and establish                tended to both regulate the overall functioning of an IoT
     relations between things, between things and humans,                    system (or of some of its parts), so as to ensure specific
     and coordinating their activities also accounting for their             overall behaviour of the system, as well as to provide
     social relations [2].                                                   an harmonized set of services to access the system and
   • Context-awareness and self-adaptation. The inherent                     (possibly) its configuration. In the hotel scenario, one
     ephemerality, unreliability, and mobility of system com-                can think at applications to control the overall heating
     ponents (e.g., things such as chairs or flipboards in the               systems and lightening systems, and giving to hotel clerks




                                                                    2
                                                                               of the IoT system, empowered to enforce local control
                                                                               and policies for that portion of the system. In the hotel
                                                                               scenario, these could correspond to hotel guests, empow-
                                                                               ered to control the IoT system in their room, and tune
                                                                               the local parameters and exploit its services according to
                                                                               own specific needs. Or they can be conference organizers
                                                                               in charge of managing and configuring the services of the
                                                                               rented conference rooms.
                                                                            • Users: These are persons or groups that have limited
                                                                               access to the overall configuration of the IoT applications
                                                                               and services, i.e., cannot impose policies on them, but are
                                                                               nevertheless entitled to exploit its services. In the hotel
                                                                               scenario, these include conference delegates authorized to
                                                                               access the conference facilities (e.g., uploading presenta-
                                                                               tions in the projector), but are not entitled to modify the
      Fig. 1.   Key concepts and abstractions for IoT engineering.
                                                                               configuration of the conference rooms.
                                                                            The three identified classes of actors are of a very general
     the access to services to change the configuration of the           nature, beside the hotel scenario. For example, in a scenario
     associated parameter.                                               of energy management in a smart city, they could correspond
   Clearly, depending on the specific scenario, one can think at         to, respectively: city managers, house/shop owners, private
IoT systems in which services may exist only confined within             citizens and tourists. In the area of urban mobility, they
the context of some general application, but also at scenarios           could correspond to, respectively: mobility managers, parking
in which there are services that can be deployed as stand-alone          owners or car sharing companies, private drivers.
software.                                                                B. Functionalities
   III. K EY S OFTWARE E NGINEERING C ONCEPTS AND                           Once the key actors are identified, the analysis preceding
                    A BSTRACTIONS                                        design and implementation cannot – for IoT systems and
   Based on the above overview of IoT issues, we now try to              applications – simply reduce to elicit from them the function-
synthesize the central concepts and abstractions around which            alities (i.e., the specific services) that things or group of things
the development of IoT systems (spanning analysis, design,               has to provide, but has to account for a more comprehensive
and implementation) should be centered. Figure 1 graphically             approach. In fact:
frames such concepts in a logical stack.                                    • Beside things provided with basic sensing/actuating func-
                                                                               tionalities, one should consider the presence of smarter
A. Stakeholders and Users                                                      things that can be activated to perform in autonomy some
   The first activity in the analysis of a system-to-be concern                long-term activities associated with their nature and with
identifying the stakeholders and users of the system, aka the                  their role in the socio/physical environment in which they
“actors”. That is, those persons/organizations who will own,                   situates. These can range from simply cleaning robots to
manage, and/or use the system and its functionalities, and from                more sophisticated autonomous personal assistants [1].
which requirements should be elicited.                                      • IoT applications are not simply concerned with providing

   In the case of IoT systems, the distinction between IoT                     a suite of coordinated functionalities, but they should also
services and applications, and the presence of an IoT mid-                     globally regulate the activities of the IoT systems on a
dleware to support them and to manage individual things,                       continuous basis, according to the policies established by
naturally leads to the identification of three main abstract                   its stakeholders and to their objectives.
classes of“actors”:                                                         As a consequence, other than analyzing the specific func-
   • Global Managers: These are the owners of an overall                 tionalities to deliver, one also has to identify the policies and
     IoT system and infrastructure, or delegates empowered to            goals to be associated with services and applications [28], i.e.,
     exert control and establishing policies over the configura-         the desirable “state of the affairs” to strive for in the context
     tion, structure, and overall functioning of its applications        of the socio-cyber-physical system where IoT applications and
     and services. In the hotel scenario, the global manager             services operate.
     corresponds the system manager devoted to control the                  In this perspective, the general classes of functionalities
     overall IoT system of the hotel according to the directives         to be identified for the development of IoT applications and
     of the hotel management, e.g., for deciding heating levels          services include:
     or for surveillance strategies.                                        • Policies express desirable permanent configurations or
   • Local Managers: These are owners/delegates (whether                       states of functioning of an overall IoT system (global
     permanently or on a temporary basis) of a limited portion                 policies) or portions of it (local policies), and have the




                                                                     3
  aims of regulating the overall underlying IoT system.
  In the hotel scenarios, global policies can be defined,
  e.g., to specify the maximum occupancy levels in each
  room and have this monitored by local cameras in order
  to invite people to move in different rooms whenever
  needed. Policies are meant to be alway active and actively
  enforced. Although, from the software engineering view-
  point, the focus is mostly on application-level policies,
  policies can also account for the proper configuration
  of the underlying hardware and network infrastructures.
  The definition of global and local policies is generally in
  charge of the global managers, although local managers
  can be also entitled to enforce temporary local policies
  on local portions of the system (provided they do not
  contrast with the ones imposed by the global managers).
• Goals express desirable situations or state of the affairs
  that, in specific cases, can/should be achieved. The ac-
                                                                             Fig. 2.   IoT actors and the functionalities of IoT systems.
  tivation of a goal may rely on specific pre-conditions
  (i.e., the occurrence of specific events or the recognition
  of some specific configurations in the IoT system) or               and exploiting the above framed functionalities.
  may also be specifically activated upon user action (e.g.,
  the activation of a goal is invokable “as a service”).              C. Avatars and Coalitions
  The typical post-condition (deactivating the pursuing of                Moving from analysis to design, one should consider that
  a goal) is the achievement of the goal itself. In the hotel         the “things” to be involved in the implementation of the iden-
  scenario, the clearer example could be that of activating           tified functionalities can correspond to a variety of different
  an evacuation procedure upon detection of fire by some              objects and devices, other than to places and humans, each
  sensors (pre-condition), whose goal (and post-condition)            relying on a pletora of different technologies and capabilities.
  is to achieve a quick evacuation of all people inside the           Accordingly, from both the gluing software infrastructure and
  building. To this end, the activation of a goal can trigger         the software engineering viewpoints, it is necessary to define
  the activities of digital signages and controllable doors in        higher-level abstractions to practically and conceptually handle
  order to rationally guide people towards the exits. As it           the design and development of application and services, and
  was the case for policies, the definition of global and local       to harmonically exploit all the components of the IoT system.
  goals is generally in charge of global, and sometimes of                Most of the proposal for programming models and mid-
  local, managers, whereas users can be sometimes entitled            dleware acknowledge this need, by virtualizing individual
  to activate simple local goals (or goals associated to              things in some sort of software abstraction [13]. The WoT
  individual things) “as a service”.                                  perspective abstracts things and their functionalities in terms of
• Functions define the sensing/computing/actuating capa-              generic resources, to be accessed via RESTful calls, possibly
  bilities of individual things or of group of things, or             associating external software HTTP “gateways” to individual
  the specific resources that are to be made available                things if they cannot directly support HTTP interfacing [6].
  to managers and users in the context of specific IoT                Other approaches suggest adopting a more standard SOA or
  application and services. Functions are typically made              object-oriented approach [23]. Also, some proposals consider
  accessible in the form of services, and can sometime                associating autonomous software agents to individual things
  involve the coordinated access to the functions of a                [27], which we think well suits the fact that goals to be pursued
  multitude of individual things. In the hotel scenario, one          in autonomy may be associated to things.
  can think at the individual functionalities of the appli-               In addition, as already stated, some “things” make no sense
  ances in a conference room (e.g., open/close a curtain,             as individual entities as far as the provisioning of specific ser-
  display slide / change slide in a projector), as well as            vices and applications is concerned, and are to be considered
  more complex functionalities that can be achieved by                part of a group and be capable of providing their services as
  orchestrating things (e.g., set up room for presentation by         a coordinated group. This applies both to the cases in which a
  closing all curtains and switching off all lights). Functions       multitude of equivalent devices must be collectively exploited
  and the associated services are typically defined by global         abstracting from the presence of the individuals [5], and to the
  and possibly local managers, but are exploited also by the          cases in which the functionalities of the group complement
  everyday users of the IoT systems (e.g., the hotel guests           with each other and needs to be orchestrated [27].
  and the conference attendees).                                          With these considerations in mind, in an effort of synthe-
                                                                      sizing from a variety of different proposals, we suggest the
Figure 2 shows the different roles of IoT actors in defining          unifying abstractions of avatars and coalitions (See Figure 3).




                                                                  4
Avatars. Borrowing the term from [17], we define an avatar
as the general abstraction for individual things and also for
group of things (and possibly other avatars) that contribute
to define a unique functionality/service. Avatars abstract away
form the specific physical/social/technological characteristics
of the things their represent, and are defined by means of:
   • Identity. An avatar has a unique identity and is address-
      able. An avatar representing a group does not necessarily
      hides the identities of inner avatars, but it has its own
      identity.
   • Services. These represent access point for exploiting the
      peculiar capabilities of avatars. That is, depending on the
      kinds of things and functionalities a service abstracts:
      triggering and directing the sensing/computing/actuating
      capabilities, or accessing some managed resources.
   • Goals. Goals, in the sense of desired state of the affairs,
      can be associated to avatars. A goals have may a pre-
      condition for autonomous activation, or may be explicitly                        Fig. 3.   Avatars, groups, and coalitions.
      activated by a user or by another avatar.
   • Events. Events represent specific state of the affairs that
      can be detected by an avatar, and that may be of interests              which an avatar should/could enter a coalitions. From
      to other avatars or to users. Other avatars or users can                the viewpoint of individual avatars, the act of entering a
      subscribe to events of interest.                                        coalition can be represented by the activation of a specific
                                                                              goal based on pre-conditions that correspond to the rules
   Clearly, for group of avatars, an internal orchestra-
                                                                              for membership.
tion scheme must be defined for coordinating the activi-
                                                                           • Coordination pattern, to define the pattern (interaction
ties/functionalities of the things (or of the other avatars) it
                                                                              protocol and shared strategy) by which the members of
includes. In general terms, an orchestration scheme defines the
                                                                              the coalition have to interact. The coordination pattern
internal workflow of activities among the composing thungs
                                                                              may include an explicit representation of the goal by
and avatars, and the constrains/conditions they are subjected
                                                                              which the coalition has been activated. However, such
to. Orchestration scheme may also account for contextual in-
                                                                              goal can also be implicit in the definition of the protocol
formation, to make the activities of the group of context-aware.
                                                                              and of the strategy.
The need of defining orchestrations schemes and constraints
                                                                           • Coordination law, to express constraints that must be
to rules the access and usage of (group of) things is generally
                                                                              enforced in the way the avatars involved in the coalition
attributed – with specific characteristics and terminologies – in
                                                                              should act and interact.
most middleware and programming approaches for IoT [23],
[29], [5].                                                                 In addition, one can consider the possibility to subscribe to
   More in general, the avatar abstraction is in line, and              events occurring within the coalition.
account for all the typical characteristics, of most existing              The view of avatar coalitions can be of use to realize
IoT approaches. Although the idea is not fully in line with             policies, or to aggregate groups of avatar based on similarity,
that of RESTful WoT approaches, because of the stateful                 so as to make them work collectively in a mission-oriented
concepts of goals and events, most of them recognize the                way without forcing them to specific identity-centered orches-
need to somehow incorporate similar concepts within RESTful             tration scheme. This is coherent with the idea of aggregate
architectures [13], to suit the dynamic and contextual nature           programming in sensor networks and in spatial computing
of IoT systems and applications.                                        systems [5], to realize nature-inspired coordination schemes
                                                                        [31], to enable the dynamic formation of service ensembles
Coalitions. Borrowing the term from the area of multiagent              focused on short-term goals or sharing specific attributes [9].
systems [7], we define a coalition as a group of avatars that
coordinate each other’s activities in order to reach specific           D. From Design to Implementation
goals, or enact specific policies. Accordingly, coalitions may             The identification of avatars, avatar groups, and coali-
be of a temporary or permanent nature. Unlike avatar groups,            tions, abstracts away from implementation issues. However,
coalitions does not necessarily have an identity, and does not          the implementation of individual avatars associated to actual
necessarily provide services.                                           “things” and of the necessary software for supporting for the
  To define and bring a coalition in action, the abstraction of         orchestration schemes of avatar groups and the coordination
coalition must be defined (at least) in terms of a coordination         patterns of coalitions, has to eventually follow.
scheme that should include:                                                In our perspective, and comparing against the state of the art
  • Rules for membership, to specify the conditions upon                in the area, avatars, groups and coalitions are abstract enough




                                                                    5
concepts to tolerate implementation above most existing sys-                        V. C ONCLUSIONS AND F UTURE W ORK
tems and infrastructures. If not, this article at least contributes
proposing a starting point from where to reason further on                   Despite the large number of research works that attack
the expressiveness and necessity of the identified abstractions,          specific problems related to the design and development of
and on the desirable features of IoT programming systems and              IoT applications and services, a general software engineering
middleware.                                                               approach is still missing. This paper, by having proposed and
                                                                          framed some key conceptual abstractions revolving about the
                                                                          IoT universe, can represent a first small step towards a general
                     IV. R ELATED W ORK                                   discipline for engineering IoT systems and applications.
                                                                             As IoT technologies mature, and real-world experiences
    In the past few years, research in the area of IoT has                accumulate, more research in the area of software engineering
exploded. Nevertheless, a few research work has explicitly                for IoT systems will be needed, possibly exploiting con-
attacked the problem of defining new software engineering                 taminations with the related areas of agent-oriented software
approaches specifically conceived for the IoT.                            engineering [32] and software engineering for self-adaptive
    Some proposals for development frameworks for the IoT                 and self-organizing systems [8], and eventually leading to the
or for the WoT (whether middleware architecture [17] or                   identification of a widely accepted general methodology – and
programming models [5], [16]), are also accompanied by                    associated tools – for the IoT-oriented software engineering.
guidelines towards the development of applications. However,
such guidelines are not grounded on general abstractions and
haven’t a general applicability beside the specific framework                                     R EFERENCES
in which they are conceived. Similar considerations apply to               [1] Harshit Agrawal, Sang-won Leigh, and Pattie Maes.
the area of smart cities and urban computing [30], where                       L’evolved: Autonomous and ubiquitous utilities as smart
middleware and programming approaches are being proposed                       agents. In ACM International Joint Conference on
– mostly of a special-purpose nature and focussed on specific                  Pervasive and Ubiquitous Computing, pages 487–491,
application scenarios such as participatory sensing [11], [12]                 New York, NY, USA, 2015. ACM.
or mobility management [25] – but without accounting for the               [2] Luigi Atzori, Davide Carboni, and Antonio Iera. Smart
issue of defining general design and development methodolo-                    things in the social loop: Paradigms, technologies, and
gies.                                                                          potentials. Ad Hoc Networks, 18:121–132, 2014.
    Agent-oriented software engineering research is strictly               [3] Luigi Atzori, Antonio Iera, and Giacomo Morabito.
related to IoT engineering [32]. Indeed, AOSE tackles the                      The internet of things: A survey. Computer Networks,
problem of engineering large-scale systems, goal-oriented en-                  54(15):2787–2805, 2010.
tities, possibly including robots [26] and humans [15] with                [4] Payam Barnaghi, Wei Wang, Cory Henson, and Kerry
conflicting goals and a multitude of stakeholders. This is                     Taylor. Semantics for the internet of things: early
somehow related to the IoT problems of accommodating                           progress and back to the future. International Journal
services and a multitude of goals [27]. Indeed, the idea of                    on Semantic Web and Information Systems, 8(1):1–21,
goal-oriented groups we have introduce somehow borrow from                     2012.
the agent-oriented software engineering area. However, IoT                 [5] Jacob Beal, Danilo Pianini, and Mirko Viroli. Aggregate
requires the introduction of specific concepts and abstractions                programming for the internet of things. IEEE Computer,
that AOSE, in general terms, do not address.                                   48(9):22–30, 2015.
    General approaches for the engineering of self-organizing              [6] Gérôme Bovet and Jean Hennebert. Offering web-
computing systems have been proposed [19], [33], [18], [31],                   of-things connectivity to building networks. In ACM
[10]. There, the key issue is to engineering complex distributed               Conference on Pervasive and Ubiquitous Computing -
behaviours in large-scale systems lacking centralized control.                 Adjunct Publication, pages 1555–1564, New York, NY,
These two characteristics are mostly shared by IoT systems,                    USA, 2013. ACM.
and indeed the problems of enabling self-organization of                   [7] Yongcan Cao, Wenwu Yu, Wei Ren, and Guanrong Chen.
specific behaviors have been outlined in the previous sections.                An overview of recent progress in the study of distributed
    Mainstream software engineering researches have recently                   multi-agent coordination. Industrial Informatics, IEEE
put great attention to the problem of promoting self-adaptive                  Transactions on, 9(1):427–438, 2013.
features in software [8], to attack the problem of increased               [8] B. H. C. Cheng and al. Software engineering for self-
dynamically and impredictability of operational environments.                  adaptive systems: A research roadmap. In Software
Such dynamics also affects IoT systems, in which the problem                   Engineering for Self-Adaptive Systems, volume 5525
of ensuring continuity in functionalities requires the embed-                  of Lecture Notes in Computer Science, pages 1–26.
ding of close control loops (along similar lines of those                      Springer, 2009.
promoted in self-adaptive systems researches) to continuously              [9] Rocco De Nicola, Diego Latella, Alberto Lluch-Lafuente,
monitor the activities of the system and its environment, and                  Michele Loreti, Andrea Margheri, Mieke Massink, An-
eventually plan corrective actions.                                            drea Morichetta, Rosario Pugliese, Francesco Tiezzi, and




                                                                      6
     Andrea Vandin. The SCEL language: Design, imple-                      infrastructures for future smart social mobility services.
     mentation, verification. In Software Engineering for                  IEEE Intelligent Systems, 29(5):78–82, 2014.
     Collective Autonomic Systems - The ASCENS Approach,              [26] Nathan Schurr, Janusz Marecki, Milind Tambe, and Paul
     pages 3–71. Springer Verlag, 2015.                                    Scerri. Towards flexible coordination of human-agent
[10] J.L Fernandez-Marquez, G. Di Marzo Serugendo,                         teams. Multiagent and Grid Systems, 1(1):3–16, 2005.
     S. Montagna, M. Viroli, and J. Arcos. Description and            [27] N. Spanoudakis and P. Moraitis. Engineering ambient
     composition of bio-inspired design patterns: a complete               intelligence systems using agent technology. Intelligent
     overview. Natural Computing, 12(1):43 – 67, 2013.                     Systems, IEEE, 30(3):60–67, May 2015.
[11] Sara Hachem, Animesh Pathak, and Valérie Issarny.               [28] Axel Van Lamsweerde. Goal-oriented requirements en-
     Service-oriented middleware for large-scale mobile par-               gineering: A guided tour. In Fifth IEEE International
     ticipatory sensing. Pervasive and Mobile Computing,                   Symposium on Requirements Engineering, pages 249–
     10:66–82, 2014.                                                       262. IEEE, 2001.
[12] Dries Harnie, Theo D’Hondt, Elisa Gonzalez Boix, and             [29] Lina Yao, Q.Z. Sheng, and S. Dustdar. Web-based man-
     Wolfgang De Meuter. Programming urban-area appli-                     agement of the internet of things. Internet Computing,
     cations for mobility services. ACM Transactions on                    IEEE, 19(4):60–67, July 2015.
     Autonomous and Adaptive Systems, 9(2), 2014.                     [30] Franco Zambonelli. Toward sociotechnical urban super-
[13] J. Heuer, J. Hund, and O. Pfaff. Toward the web of                    organisms. IEEE Computer, 45(8):76–78, 2012.
     things: Applying web technologies to the physical world.         [31] Franco Zambonelli and et al. Developing pervasive
     Computer, 48(5):34–42, May 2015.                                      multi-agent systems with nature-inspired coordination.
[14] Marco Iansiti and Karin Lakhani. Digital ubiquity:                    Pervasive and Mobile Computing, 37, 2015.
     How connections, sensors, and data, are revolutionizing          [32] Franco Zambonelli and Andrea Omicini. Challenges
     business. Harvard Business Review, 2014.                              and research directions in agent-oriented software engi-
[15] N. R. Jennings, L. Moreau, D. Nicholson, S. Ramchurn,                 neering. Autonomous Agents and Multi-Agent Systems,
     S. Roberts, T. Rodden, and A. Rogers. Human-agent col-                9(3):253–283, November 2004.
     lectives. Commun. ACM ACM, 57(12):80–88, December                [33] Franco Zambonelli and Mirko Viroli. A survey on nature-
     2014.                                                                 inspired metaphors for pervasive service ecosystems.
[16] E. Latronico, E.A. Lee, M. Lohstroh, C. Shaver, A. Wa-                Journal of Pervasive Computing and Communications,
     sicek, and M. Weber. A vision of swarmlets. Internet                  7:186–204, 2011.
     Computing, IEEE, 19(2):20–28, Mar 2015.
[17] M. Mrissa, L. Medini, J.-P. Jamont, N. Le Sommer, and
     J. Laplace. An avatar architecture for the web of things.
     Internet Computing, IEEE, 19(2):30–38, Mar 2015.
[18] Andrea Omicini and Mirko Viroli. Coordination mod-
     els and languages: From parallel computing to self-
     organisation.     The Knowledge Engineering Review,
     26(1):53–59, March 2011.
[19] Van Parunak. Go to the ant: Engineering principles
     from natural multi-agent systems. Annals of Operations
     Research, 75:69–101, 1997.
[20] C. Perera, A. Zaslavsky, P. Christen, and D. Geor-
     gakopoulos. Context aware computing for the internet
     of things: A survey. Communications Surveys Tutorials,
     IEEE, 16(1):414–454, First 2014.
[21] M. Phillips.      The slothbot moving wall projects,
     http://arch-os.com/projects/slothbot/.
[22] M. A. Razzaque, M. Milojevic-Jevric, A. Palade, and
     S. Clarke. Middleware for internet of things: A survey.
     IEEE Internet of Things Journal, 3(1):70–95, Feb 2016.
[23] C. Sarkar, S.N.A.U. Nambi, R.V. Prasad, and A. Rahim.
     A scalable distributed architecture towards unifying iot
     applications. In IEEE World Forum on Internet of Things,
     pages 508–513, March 2014.
[24] Amardeo C Sarma and João Girão. Identities in the future
     internet of things. Wireless personal communications,
     49(3):353–363, 2009.
[25] Andrea Sassi and Franco Zambonelli. Coordination




                                                                  7