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