<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Meta-Modeling Approach to Describe Internet of Things Architectures</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Abdessamad Saidi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mohamed Hadj Kacem</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Imen Tounsi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ahmed Hadj Kacem</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Sfax, ReDCAD Research Laboratory</institution>
          ,
          <addr-line>Sfax</addr-line>
          ,
          <country country="TN">Tunisia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Statistics say that there will be 25 billion devices interconnected to the Internet by the end of 2021. This explosive growth of connected objects has led us to the advent of a promising technology that can satisfy this need known as the Internet of Things (IoT). IoT enables digitalization around the world, but it also increases the challenges for implementing an IoT solution. Since there are no specific standards for the Internet of Things, there can be conflicts, ambiguities that can lead to poor implementation. The adequate software architecture that can be applied to Internet of Things is service-oriented architecture. SOA ofers flexibility and weak coupling and allows the reuse of IoT services in such an IoT system. Our main objective is to provide a formal description of the IoT software architecture. In this work, we propose a solution based on design models for the Internet of Things with semi-formal notation using OMG's (Object Management Group) standard, the UML modeling language.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;UML</kwd>
        <kwd>Internet of Things</kwd>
        <kwd>Design Pattern</kwd>
        <kwd>Model</kwd>
        <kwd>Meta-model</kwd>
        <kwd>Software Architecture</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        IoT systems. To face these challenges, a set of Design Patterns was proposed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] to solve
some problems. However, these models are represented with natural language and graphical
notations. This representation is classified as an informal modeling. On the other hand, the use
of informal language makes the modeling imprecise and sometimes ambiguous.
In this paper, we propose an approach that permit to describe IoT architecture in order to
develop IoT application by providing tool, meta-models and models.
      </p>
      <p>Our approach has a number of advantages: first, the approach aims to capitalize on the
expressiveness of UML 2.5 standard visual notations. Second, the proposed meta-models are defined
in a high level of abstraction that can be reused. Third, we have strengthened our approach
by using IoT oriented design patterns in order to have high-performance applications while
guaranteeing some quality attributes. Last but not least, an eclipse plug-in to assist architect in
the modeling phase.</p>
      <p>The remainder of the paper is structured as follows: we will present and discuss related works in
Section 2. In Section 3, we model the structural features of IoT architecture and the behavioral
features in Section 4. In Section 5, we will present an IoT application to a case study of our
proposed approach. We will give a part of source code that permit to implement our use case in
Section 6. Section 7 presents our tool, which implements the proposed approach. We conclude
and outline some future work in Section 8.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related works</title>
      <p>
        The arrival of the Internet of Things has raised many challenges for architects and designers
of complex systems. In order to assist and orient the architects, several modeling and design
solutions were proposed such as tools, UML (Unified Modeling Language) profiles and Design
Patterns. Several works have made specific UML extensions for the IoT [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ][
        <xref ref-type="bibr" rid="ref2">2</xref>
        ][
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Among these
profiles, there are those which models the security mechanisms [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the other allows modeling
the IoT applications [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In another work [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], authors have created a tool which ofers the
possibility of modeling the architecture of an IoT system using models as well as verifying these
models using a logic programming language.
      </p>
      <p>
        In this paper, we are interested in the Design Patterns since they ofer a reusable and flexible
design. There are several types of Design Patterns, such as Service Oriented Architecture
(SOA) patterns. The authors in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ][
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] propose a complete approach which makes it possible
to guide the architect from the phase of modeling SOA (semi-formal) patterns to the phase of
their composition via a step of transforming patterns in order to have formal semantics. The
approach uses the SoaML modeling language and the Event-B method based on transformation
rules for the specification of SOA Design Patterns.
      </p>
      <p>
        In this paper, we are interested in dedicated Design Patterns for the Internet of Things. Most
of the Internet of Things patterns that exist are at the Cloud level. In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], the authors help
IoT system architects to build Edge applications by proposing four IoT Design Patterns that
facilitate some tasks like deployment.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ][
        <xref ref-type="bibr" rid="ref11">11</xref>
        ][
        <xref ref-type="bibr" rid="ref12">12</xref>
        ][
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the authors cited 48 Internet of Things patterns, and then they listed it in 10
categories (Communication, Security, Bootstrapping, Registration, etc.). However, the problem
is that all of these IoT patterns are expressed informally. Our approach makes it possible to
model part of the IoT Design Patterns found in the communication category proposed in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
Another work, the authors in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] made a survey on existing both IoT Design and architecture
Pattern. These Design and architecture Pattern are classified in three levels (Architecture style,
Architecture pattern and design pattern) and applicable in three field (not dedicate for IoT, for
general IoT use case and for a particular domain). We notice that the majority of architectural
pattern are used in a specific IoT domain. Moreover, we find that most of the design patterns
oriented for IoT are appropriate for general IoT use case. In the other side, we don’t find a lot of
IoT architectural style. In another research, Hachicha et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] propose a UML profile that
extend UML diagram in order to model behavioral and structural aspects of MAPE (Monitoring,
Analysis, Planning, Execution) patterns. In a recent work [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], authors propose an approach for
self-adaptive IoT systems using formal specification and the composition of MAPE patterns. In
previous work, authors propose models and meta-models that combine IoT and SOA or IoT and
SoS domains, they did not take into consideration the quality attributes which are important
in complex systems, some works don’t mention the type of exchanged messages and do not
provide a modeling tool to help developers.
      </p>
      <p>In this paper, we provide an approach oriented IoT that take into consideration the quality
attributes, behavioural and structural views of the IoT System, a modelling tool to assists
architects and specify the types of messages.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Modeling the Structural View</title>
      <p>In this section, we give a solution to illustrate the Internet of Things architecture by employing
a visual notation supported by UML language to ofer comprehensible models.
As a first step, we define a Meta-model, and the next step is to instance conform models by
extending UML diagrams. UML grant to express structural and behavioral views of IoT system.
In our approach, we use a sequence diagram to represent behavioral aspects and the component
diagram for the structural aspects of IoT architecture. We use a case study to illustrate these
models.</p>
      <sec id="sec-3-1">
        <title>3.1. The Proposed approach</title>
        <p>Our approach is based on the Internet of Things architecture. Figure 1 illustrates the most
important components that we found in IoT architecture which are: Sensors that collect data
from the environment and actuators that receive commands from the Cloud in order to react, IoT
Gateway is the intermediate between other components. In the IoT cloud platform layer , we do
the necessary processing, analytic, storage, and device management to ofer users applications.
In our approach, we have proposed three meta-models:</p>
        <sec id="sec-3-1-1">
          <title>1. IoTStakeholder meta-model</title>
          <p>2. IoTCommunication meta-model
3. MessageType meta-model</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>In follows, we details each meta-motel.</title>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. IoTStakeholder meta-model</title>
        <p>The IoTStakeholder meta-model describes the major components of an IoT system. Blocks with
Cyan color in Figure 2 represents the proposed Meta-model in a high level of abstraction.</p>
        <p>Our meta-model is based on the UML component diagram. The basic elements of our
metamodel are:
• IoTComponent: The elements that form the architecture of an IoT system are: sensors,
actuators, gateways, cloud and user interface.
• Sensor: allows data to be collected and sent to IoT Cloud platform.
• Actuator: reacts according to the decisions taken after the processing done at the Cloud
level.
• IoTGateway: Sensors and Actuators are linked to Cloud by the IoTGateway.
• IoT Cloud Platform: The processing, storage, services and standards required for
connecting, managing, and protecting various IoT devices and applications are included
in an IoT cloud Platform.
• EndDevice: allows you to view the data collected by the Sensors as well as the state of
actuators.
• Port: Each IoT component has a port that represents the point of interaction with the
other components. There are two types of port:
1. A port which makes it possible to ofer a service &lt;&lt;service&gt;&gt;
2. A port that expresses the need for a service &lt;&lt;request&gt;&gt;
• PhysicalEntity: represents the object that we want to make it connected or intelligent.
• Interface: communications with the environment are made through both types of
interface. The Provided interface and the Required interface.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. IoTCommunication meta-model</title>
        <p>The Figure 2 shows the IoTCommunication meta-model. Based on the IoTStakeholder
metamodel, we added three elements which are colored with purple color.</p>
        <p>
          1. ServiceInterfaces: are used to explicitly model provided and required operations.
2. Operation: describes the operations provided by an interface.
3. Design Pattern: based on the work [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], we added the design patterns as interfaces to
implement, they allow us to improve the quality attributes in complex architecture such
as IoT system.
        </p>
        <p>For example, Delta Update which is a communication design pattern guarantee these qualities
attributes:
1. Message Size: As a result, messages are now smaller and don’t contain any extraneous
data. They only exclude information that hasn’t changed since the previous time they
communicated.
2. Bandwidth: With a smaller message, less bandwidth is used.
3. Energy Consumption: Communication consumes most energy. Due to the fact that
updates are smaller, devices may deliver them more quickly. It also means that devices
may turn of their connectivity modules for longer duration’s, which reduces their energy
usage.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4. MessageType meta-model</title>
        <p>In any system, there are a lot of messages going around. For that we must define the type of each
message in order to be able to diferentiate between the messages exchanged by the diferent
entities of the system. The MessageType meta-model contains the elements that support data
modeling. It describes the type of messages exchanged between the diferent entities of IoT
architecture. Its structure is described by the Figure 3. The &lt;&lt;MessageType&gt;&gt; is used to
explicitly identify the data elements exchanged between the components of the system. It
extends the DataType metaclass. An &lt;&lt;Attachment&gt;&gt; is a part attached to the message. It
extends the Property metaclass.</p>
        <p>Property
&lt;&lt;metaInformation&gt;&gt;
0..*</p>
        <p>DataType
&lt;&lt;MessageType&gt;&gt;</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Modeling the Behavioral View</title>
      <p>In this section, in order to model the behavioral properties of the IoT system we use the part of
the meta-model of the sequence diagram of the UML 2.5 version. This diagram allows us to
illustrate the diferent reciprocal actions between the diferent components of an IoT system.
Figure 4 illustrates a sequence diagram of our case study, it shows the exchanged messages
between the major components of IoT architecture. The use case consist on collecting the
temperature of the room with a Sensor and sending it to the IoT Cloud Platform through the
IoT Gateway. In the IoT Cloud Platform, we process the temperature value in order to decide
how to react using the Actuator. In the other side, we have a mobile application that permit to
see the temperature of the room and the status of the cooling fan in real-time.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Use Case: A Smart room service: an automatic ventilation system</title>
      <p>We choose a smart house as IoT domain application. The Internet of Things has made the world
utterly digital by interconnecting the physical world with the digital world. The smart house is
a representation of this technology, and these houses are equipped with sensors and actuators
to control everything that exists in the house. The cooperation of these components makes it
possible to ofer services. In our case, we took a part of the smart house system which is smart
room to make experimentation in order to validate our approach. The system is composed
by four layers witch is compatible with the general IoT architecture with the aim of having a
scalable smart environment that sustain a variety of services.</p>
      <p>The used software and hardware components:
• The physical layer: of the application is composed by a temperature sensor, it permits
to sense the temperature of the room and it is attached to a wall and a relay that plays the
role of an actuator and it is linked to the cooling fan, the actuator can turn on and of the
cooling fan. Both Sensor and Actuator are connected to an ESP8266 and it is programmed
with embedded C language and support Wi-Fi technology.
• The processing layer: contain the IoT Cloud platform, it permits to do the necessary
processing, storage and management. If the temperature value is greater than a predefined
value (T_MAX) we turn the cooling fan ON else OFF. We choose Firebase as IoT cloud
Data Exchange
&lt;&lt;Sensor&gt;&gt;
Temperature
platform because it ofers a real-time database, free with big community and ofer APIs
that help in the implementation.
• The network layer: is a gateway that it is an intermediary between the physical layer
and the processing layer. We opt for Wi-Fi as communication technology because it is
supported by a lot of devices. In our system, we have an Orange router.
• The application layer: through this layer, we can visualize the data collected by the
sensor and the state of the actuator. In our use case, we develop an Android application.
Now, we will instantiate models from the proposed meta-models in order to model our case
study. As shown in the Figure 5, we have specified the type of port for each component of
the system as well as the operations ofered by each interface. Next, we will instance the
MessageType diagram, it is used to model the messages exchanged between the diferent entities
of the system. The diagram of MessageType is shown in Figure 6. There are five MessagesType
which are used to define all the information exchanged. Our implemented system respects the
three dimensions of IoT:
1. Any time connection: We can visualize the data in real-time at any time (night, daytime
...)
2. Any place connection: We can see the data in any place in the world.
3. Anything connection: We are able to make the Cooling Fan as a connected thing.
&lt;&lt;Interface&gt;&gt;</p>
      <p>requestfA
send ( actionX)
~fActionX
&lt;&lt;Actuator&gt;&gt;</p>
      <p>Relay
&lt;&lt;Sensor&gt;&gt;
Temperature
Temperaturevalue send Temperature</p>
      <p>value
requestfA
forwardfA
&lt;&lt;Interface&gt;&gt;</p>
      <p>forwardfA
send ( ON OR OFF)
&lt;&lt;ServiceInterface&gt;&gt;</p>
      <p>fActionA
fActionX</p>
    </sec>
    <sec id="sec-6">
      <title>6. Implementation</title>
      <p>In this Section, we present some important lines of the source code of the Embedded part. In
Listing 1, line 1 indicates the library of Firebase Cloud Platform, it contains functions that
permit to connect to the Database, to read and write the data. Line 2 represents a library to use
the WiFi module of the Micro-controller (NODE MCU) and the library of DHT 11 sensor in
line 3 which ofers two functions to capture the temperature and humidity of the environment.
In lines 4 and 5, we have the link of the Database and the authentication key. The Service Set
IDentifier (SSID) and the password of the router in lines 6 and 7 respectively.</p>
      <p>Listing 1: Sketch of source code 1
1 #include "FirebaseESP8266.h"
2 #include &lt;ESP8266WiFi.h&gt;
3 #include &lt;DHT.h&gt;
4 #define FIREBASE_HOST "smartroom −ee16e−default−rtdb.firebaseio.com"
5 #define FIREBASE_AUTH "W2C5EfElHzgbGIauyznQBu0A9XhJBSd6Pr4VdBMZ"
6 #define WIFI_SSID "Fixbox_01"
7 #define WIFI_PASSWORD "IoT"
Listing 2 represents the initialisation of temperature sensor. We define the type of DHT sensor
(DHT 11 or DHT 22) in line 1 and we start the sensor with the instruction mentioned in line 2.
Finally, we collect the temperature value of the room with the instruction in line 3.</p>
      <sec id="sec-6-1">
        <title>Listing 2: Sketch of source code 2 1 DHT dht(DHTPIN, DHTTYPE); 2 dht.begin(); 3 h = dht.readTemperature();</title>
        <p>Now, we give the implementation of the actuator and how to interact with the Database. The
line 1 of Listing 3 permits to store the temperature value and the second line permits to read
the temperature value from the Database.</p>
        <p>From line 3 to 9 of Listing 3, we compare the temperature value with a constant, if it is hot we
turn the cooling Fan ON and make its status ON in the Cloud Platform otherwise the cooling
Fan turns OFF and the status will be updated to OFF in the Cloud Platform.</p>
        <p>Listing 3: Sketch of source code 3
1 Firebase.setFloat(firebaseData, "Room/Temperature", t);
2 float T1 = Firebase.getFloat(fbdo, "Room/Temperature") ? fbdo.floatData():0.0;
3 if (T1 &gt;= T_MAX ){
4 digitalWrite(DCMPIN, 0);
5 Firebase.setString(fbdo,"Room/Status", "ON");
6 }
7 else {
8 digitalWrite(DCMPIN, 1);
9 Firebase.setString(fbdo,"Room/Status", "OFF");
10 }
In the processing layer, Figure 7 shows the real time database of Firebase Cloud Platform. It
contains two parts: the first one contains the collected data (the temperature of the room) as
well as the state of Cooling Fan and the second part shows the users who have access to the
database.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>7. Tool Modeling</title>
      <p>In order to create a graphical editor with Eclipse IDE, we need to use Eclipse Modeling
Framework (to create the mete-model) and Graphical Modeling Framework (to generate the
graphical editor) frameworks. Our Eclipse plug-in supports our methodology and allows users
to model in a simple and eficient manner. By using the Eclipse plug-in that we recommend, the
architect can model the architecture of the IoT system with a drag-and-drop way. Based on the
proposed IoTStakeholder meta-model, we present in Figure 8 the instantiated diagram which
describes our system using our tool.</p>
    </sec>
    <sec id="sec-8">
      <title>8. Conclusion</title>
      <p>In this paper, we propose an approach that permits the modeling of the Internet of Things
architecture. Our approach consists of ofering a three Meta-models which represent a high
level of abstraction. Then, we instantiate models that are conformed to the proposed
metamodels to describe both structural and behavioral view of the Internet of Things architecture.
Moreover, we implement the proposed use case. Also, we develop a tool that can help architects
in modeling of the IoT system using Eclipse modeling frameworks.</p>
      <p>Future work will include the Event-B method to specify both structural and behavioral features
to have valid and correct models. Also, we will specify formally the quality attributes ofered
by Design Patterns.</p>
    </sec>
    <sec id="sec-9">
      <title>Acknowledgments</title>
      <p>This work was partially supported by the LABEX-TA project MeFoGL:"Méhodes Formelles pour
le Génie Logiciel".</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Morin</surname>
          </string-name>
          ,
          <article-title>Thingml: A generative approach to engineer heterogeneous and distributed systems</article-title>
          ,
          <source>in: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW)</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>188</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>K.</given-names>
            <surname>Thramboulidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Christoulakis</surname>
          </string-name>
          ,
          <article-title>Uml4iot-a uml-based approach to exploit iot in cyberphysical manufacturing systems</article-title>
          ,
          <source>Comput. Ind</source>
          .
          <volume>82</volume>
          (
          <year>2016</year>
          )
          <fpage>259</fpage>
          -
          <lpage>272</lpage>
          . URL: https://doi.org/10. 1016/j.compind.
          <year>2016</year>
          .
          <volume>05</volume>
          .010. doi:
          <volume>10</volume>
          .1016/j.compind.
          <year>2016</year>
          .
          <volume>05</volume>
          .010.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Costa</surname>
          </string-name>
          , Bruno and Pires, Paulo F. and
          <string-name>
            <surname>Delicato</surname>
          </string-name>
          ,
          <string-name>
            <surname>Flávia</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Modeling</surname>
            <given-names>SOA</given-names>
          </string-name>
          -
          <article-title>Based IoT Applications with SoaML4IoT</article-title>
          ,
          <source>in: 2019 IEEE 5th World Forum on Internet of Things (WF-IoT)</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>496</fpage>
          -
          <lpage>501</lpage>
          . doi:
          <volume>10</volume>
          .1109/WF-IoT.
          <year>2019</year>
          .
          <volume>8767218</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Robles-Ramirez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Escamilla-Ambrosio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Tryfonas</surname>
          </string-name>
          , Iotsec:
          <article-title>Uml extension for internet of things systems security modelling</article-title>
          , in: 2017 International Conference on Mechatronics,
          <source>Electronics and Automotive Engineering (ICMEAE)</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>151</fpage>
          -
          <lpage>156</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Costa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Pires</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. C.</given-names>
            <surname>Delicato</surname>
          </string-name>
          ,
          <article-title>Modeling IoT Applications with SysML4IoT</article-title>
          ,
          <source>in: 2016 42th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>157</fpage>
          -
          <lpage>164</lpage>
          . doi:
          <volume>10</volume>
          .1109/SEAA.
          <year>2016</year>
          .
          <volume>19</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ogata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Nakagawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Aoki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kobayashi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Fukushima</surname>
          </string-name>
          ,
          <article-title>A tool to edit and verify iot system architecture model</article-title>
          ,
          <source>in: MODELS</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Imen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Hadj</given-names>
            <surname>Kacem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Hadj</given-names>
            <surname>Kacem</surname>
          </string-name>
          ,
          <article-title>An approach for modeling and formalizing soa design patterns</article-title>
          ,
          <source>in: 2013 Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>330</fpage>
          -
          <lpage>335</lpage>
          . doi:
          <volume>10</volume>
          .1109/WETICE.
          <year>2013</year>
          .
          <volume>26</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>I.</given-names>
            <surname>Tounsi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Hadj</given-names>
            <surname>Kacem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Hadj</given-names>
            <surname>Kacem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Drira</surname>
          </string-name>
          ,
          <article-title>A refinement-based approach for building valid SOA design patterns</article-title>
          ,
          <source>IJCC</source>
          <volume>4</volume>
          (
          <year>2015</year>
          )
          <fpage>78</fpage>
          -
          <lpage>104</lpage>
          . URL: https://doi.org/10.1504/ IJCC.
          <year>2015</year>
          .
          <volume>067705</volume>
          . doi:
          <volume>10</volume>
          .1504/IJCC.
          <year>2015</year>
          .
          <volume>067705</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Qanbari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Pezeshki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Raisi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mahdizadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rahimzadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Behinaein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mahmoudi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ayoubzadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fazlali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Roshani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yaghini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Amiri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Farivarmoheb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zamani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dustdar</surname>
          </string-name>
          ,
          <article-title>Iot design patterns: Computational constructs to design, build and engineer edge applications</article-title>
          ,
          <source>in: 2016 IEEE First International Conference on Internet-of-Things Design and Implementation (IoTDI)</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>282</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>L.</given-names>
            <surname>Reinfurt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Falkenthal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Riegg</surname>
          </string-name>
          ,
          <article-title>Internet of things patterns</article-title>
          ,
          <source>in: Proceedings of the 21st European Conference on Pattern Languages of Programs (EuroPLoP)</source>
          , ACM,
          <year>2016</year>
          . doi:
          <volume>10</volume>
          .1145/3011784.3011789.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>L.</given-names>
            <surname>Reinfurt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Falkenthal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Riegg</surname>
          </string-name>
          ,
          <article-title>Internet of things patterns for device bootstrapping and registration</article-title>
          ,
          <source>in: Proceedings of the 22nd European Conference on Pattern Languages of Programs</source>
          , EuroPLoP '17,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2017</year>
          . URL: https://doi.org/10.1145/3147704.3147721. doi:
          <volume>10</volume>
          .1145/3147704.3147721.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>L.</given-names>
            <surname>Reinfurt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbüucher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Falkenthal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Riegg</surname>
          </string-name>
          ,
          <article-title>Internet of things patterns for devices: Powering, operating, and sensing</article-title>
          ,
          <source>International Journal on Advances in Internet Technology</source>
          (
          <year>2017</year>
          )
          <fpage>106</fpage>
          -
          <lpage>123</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Reinfurt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Falkenthal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fremantle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <article-title>Internet of things security patterns</article-title>
          ,
          <source>in: Proceedings of the 24th Conference on Pattern Languages of Programs</source>
          , The Hillside Group,
          <year>2017</year>
          . URL: http://dl.acm.org/citation.cfm?id=
          <volume>3290281</volume>
          .
          <fpage>3290305</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>L.</given-names>
            <surname>Reinfurt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Falkenthal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Riegg</surname>
          </string-name>
          ,
          <article-title>Internet of things patterns for communication and management</article-title>
          ,
          <source>Transactions on Pattern Languages of Programming</source>
          <volume>4</volume>
          (
          <year>2019</year>
          )
          <fpage>139</fpage>
          -
          <lpage>182</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -14291-
          <issue>9</issue>
          _5. doi:
          <volume>10</volume>
          . 1007/978-3-
          <fpage>030</fpage>
          -14291-9\_5.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>H.</given-names>
            <surname>Washizaki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ogata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hazeyama</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Okubo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. B.</given-names>
            <surname>Fernandez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Yoshioka</surname>
          </string-name>
          ,
          <article-title>Landscape of Architecture and Design Patterns for IoT Systems</article-title>
          ,
          <source>IEEE Internet of Things Journal</source>
          <volume>7</volume>
          (
          <year>2020</year>
          )
          <fpage>10091</fpage>
          -
          <lpage>10101</lpage>
          . doi:
          <volume>10</volume>
          .1109/JIOT.
          <year>2020</year>
          .
          <volume>3003528</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hachicha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Ben</given-names>
            <surname>Halima</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hadj</surname>
          </string-name>
          <string-name>
            <surname>Kacem</surname>
          </string-name>
          ,
          <article-title>Modelling, specifying and verifying selfadaptive systems instantiating mape patterns</article-title>
          ,
          <source>International Journal of Computer Applications in Technology</source>
          <volume>57</volume>
          (
          <year>2018</year>
          )
          <fpage>28</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hachicha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Ben</given-names>
            <surname>Halima</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Hadj</given-names>
            <surname>Kacem</surname>
          </string-name>
          ,
          <article-title>Modeling and specifying formally compound MAPE pattern for self-adaptive IoT systems</article-title>
          ,
          <source>Innovations in Systems and Software Engineering</source>
          (
          <year>2021</year>
          ). URL: https://doi.org/10.1007/s11334-021-00409-3. doi:
          <volume>10</volume>
          .1007/ s11334-021-00409-3.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>