<!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>
      <journal-title-group>
        <journal-title>Seminary of Computer Science Research at Feminine, March</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Quality-driven Formal Modelling of the Travel Planner Application</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fatma Kachi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chafia Bouanaka</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>LIRE Laboratory, University of Constantine 2-Abdelhamid Mehri</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>08</volume>
      <issue>2021</issue>
      <fpage>0000</fpage>
      <lpage>0001</lpage>
      <abstract>
        <p>Service-based systems (SBSs) have been widely used in recent years, however ensuring adequate service quality is a significant challenge. To that end, managing the properties of service-based systems through dynamic service selection is primordial. It is an important research problem in SBSs, which aims to select proper services to meet user requirements. However, the dynamics of these systems make their design extremely dificult and leading engineers to pursue new solutions and approaches to model and maintain their Quality of Services. Quality-driven self-adaptation is a promising strategy for managing such complexity while also allowing underlying software systems to accomplish functional and/or quality of service requirements by autonomously adapting their behavior at runtime. In this regard, we defined a formal approach for modeling quality-driven self-adaptive systems and ensuring that quality objectives are constantly met in a previous work. In this paper, we aim to apply the proposed approach to a concrete service-based system, the Travel Planner application, to assess the scalability and generality of our approach, and show its efectiveness.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Formal methods</kwd>
        <kwd>HLPNs and PPNs</kwd>
        <kwd>Quality-driven Self-adaptive systems</kwd>
        <kwd>Uncertainty</kwd>
        <kwd>Travel Planner application</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Service-based Systems [1] are highly dynamic software systems composed of several web
services. SBSs are widely used in e-commerce, online banking, e-health and many other
applications. In these systems, services ofered by third-party providers are dynamically composed into
workflows delivering complex functionality [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Unlike other types of systems, service-based
systems rely on service providers to ensure that their web services meet the agreed quality of
service. Providing adequate service quality is a crucial challenge and must be monitored in the
various activities of the service-based system lifecycle. An exemplar of these SBSs is the Travel
Planner Application (TPA) [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ] that provides services to search for flights, tourist attractions,
accommodation arrangements, and rental cars or bicycles. All these services are interdependent,
as the user cannot benefit from a service without having successfully benefited from the service
that precedes it, with the exception of the attraction information service that is independent of
the rest of the services. Due to this close interdependence between services, the failure of one
service leads to the suspension of the whole system. For example, a failure in the flight booking
service systematically leads to the impossibility of benefiting from the remaining services, as
hotel reservations and car rentals.
      </p>
      <p>
        In order to satisfy the user demands and to obtain an optimal functioning of the system, it
is necessary to ensure a continuous satisfaction of the quality of service, i.e., at least service
availability. Quality of service (QoS) refers to the non-functional characteristics of a service,
such as price, response time, reliability and availability [
        <xref ref-type="bibr" rid="ref5 ref7 ref8">5, 6, 7, 8</xref>
        ]. Besides, users of the Travel
Planner Application may have diferent budget limits and diferent response time requirements
for accessing the service. As such, the service needs to ensure that the demands of diferent users
are properly met. In other words, if a service fails, it needs to be replicated quickly. Therefore,
quality-driven self-adaptation dynamically changes the system behaviour.
      </p>
      <p>
        In a previous work [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], we have defined a formal model for quality-driven decision-making
in Self-Adaptive Systems (SASs). We mainly leveraged a MAPE-K [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] loop-based model,
combining high-level Petri nets (HLPNs) and plausible Petri nets (PPNs), for the design of
quality-driven self-adaptive systems under uncertainty. In this model, the adaptation logic is
achieved through the adaptation actions that change the system configuration by updating its
properties. In the case of SBS, the adaption logic is limited to a simple action, which consists of
replicating the failed service.
      </p>
      <p>Our aim in the present paper is twofold: to show the efectiveness of the proposed model
for guaranteeing a continuous satisfaction of the quality objectives of the Travel Planner
Application, and to establish the genericity of the model through its application in various
ifelds. The model allows achieving self-adaptation and ensuring the optimal functioning of the
Travel Planner Application. It uses HLPNs to define the data flows and quantify the quality
criteria considered for each service, and adopts PPNs to determine which service will replace the
faulty one through the concept of decision plausibility with respect to the adaptation strategy
envisaged for this system.</p>
      <p>The remainder of the paper is structured as follows. Section 2 introduces the Travel Planner
Application (TPA), and its expected qualities. Section 3 briefly recalls the main concepts used in
this work. Section 4 formally describes the TPA modelling. Section 5 discusses and compares
the proposed TPA model regarding the existing ones. Finally, Section 6 concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>2. TRAVEL PLANNER APPLICATION RUNNING EXAMPLE</title>
      <p>
        The TPA is composed of the following five services [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]:
• Attraction information service, which searches for tourist attractions.
• Flight booking service, which searches for available flights.
• Hotel booking service, which seeks hotels and makes reservations.
• Bicycle rental service, for renting bikes.
      </p>
      <p>• Car rental service, which allows renting cars.</p>
      <p>
        In this example, searching for attractions may be done in parallel with a flight and an
accommodation booking. Once the search and booking process is completed, the car or bicycle
rental service will be invoked. The quality criteria considered for each service are: cost, reliability,
and availability [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        • Price: the execution price is the amount of money that a service requester has to pay to
execute it.
• Reliability: is the probability that a request is correctly responded within the maximum
expected time frame. The reliability value is computed from historical data concerning
past invocations using the expression () = ()/, where () is the number of
times that the service s has been successfully delivered within the maximum expected
time frame, and K is the total number of invocations [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
• Availability: is the probability that the service is accessible. the availability value of a
service s is computed using the following expression () = ()/ , where  is the
total amount of time in which service s is available during the last  seconds [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. BACKGROUND</title>
      <p>
        Petri nets have been initially proposed to model the behavior of a dynamic system with
discrete events [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]; they have then undergone several extensions and variants [
        <xref ref-type="bibr" rid="ref13 ref14 ref15 ref6">13, 14, 15, 16</xref>
        ]
to cover more concerns in system modelling and analysis. In what follows, first, we present two
types of Petri nets to be used in this work, high-level Petri nets (HLPNs) and plausible Petri
nets (PPNs). Then, we define the concept of uncertainty.
      </p>
      <sec id="sec-3-1">
        <title>3.1. High-Level Petri Nets (HLPNs)</title>
        <p>HLPNs are a well-defined semi-graphical technique for the specification, design and analysis
of systems. An HLPN is made up on a set of nodes (i.e. places and transitions) and a set of arcs
connecting places to transitions and vice-versa as in an ordinary Petri net but is extended in
the following way:
• each place is associated with a place type and can contain a collection of tokens
corresponding to that place type.
• Transitions are dotted with boolean expressions called guards.
• Additionally, arcs are inscribed with expressions called arc annotations. Whenever an
expression evaluates to true, a multiset of tokens is produced in the output places of the
corresponding transition according to arc’s weights and types.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Plausible Petri Nets (PPNs)</title>
        <p>
          The combination of the principles of Petri nets with the foundations of information theory
resulted in a new model for Petri nets, called plausible Petri nets (PPNs) [
          <xref ref-type="bibr" rid="ref14">14, 17</xref>
          ]; which are a
hybrid variant of Petri nets composed of two types of places and transitions, namely, symbolic
and numerical, in order to describe both discrete and continuous behaviours of a system. In the
symbolic subnet, the discrete behavior is described using regular tokens, while in the numerical
subnet, continuous or numerical behavior is described with tokens that carry information about
the states of variables. A state of information about a given variable x ∈  is the probability
density function (PDF) of x over  [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], where  is the state space of a stochastic variable x. For
more details on PPNs, the reader is referred to [19].
        </p>
        <p>
          The main feature of PPNs resides in their eficiency to jointly consider the evolution of a
discrete event system together with uncertain information about the system state using states
of information [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. They provide a mapping between the possible numerical values of a state
variable and their relative plausibility, hence giving greater versatility for representing uncertain
knowledge using a more principled approach [19].
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Uncertainty</title>
        <p>
          Uncertainty in a software system is defined as the circumstances in which the behavior of the
system deviates from expectations due to the dynamics and unpredictability of various factors
within these systems [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Unpredictable changes and missing knowledge about the
environmental changes during system deployment refers to epistemic uncertainty. Researchers link
uncertainty in SASs to decision making. Therefore, it means the lack of suficient information
or knowledge to make certain adaptation decisions.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. TRAVEL PLANNER APPLICATION MODELLING</title>
      <p>
        This section is dedicated to TPA formal modeling. First, we briefly describe the SAS formal
model [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Then, we present the necessary parameters to be identified to apply the model.
Finally, we present the resulting TPA formal model and illustrate it through an execution
scenario.
      </p>
      <sec id="sec-4-1">
        <title>4.1. A Petri Net-based formal model for SASs</title>
        <p>We defined a formal model that is a combination of HLPNs and PPNs with the goal of
mitigating uncertainties to ensure the continuous satisfaction of SAS QoSs and assisting the
decision-making process while selecting the proper adaptation plans (PPNs). It is made up of
two layers: the monitored one, which is modeled by HLPN, and the control one, composed of the
emulator for encoding and emulating the monitored layer to interact with the API and modeled
as a HLPN. The API is made up of a set of read/write primitives represented by the HLPN
transitions, and the managing system, which is a MAPE-K loop-based model that combines
HLPN and PPN. HLPNs contribute in the definition of data flows by using expression and
annotation principles to quantify the observed qualities among the model’s various components.
They allow the model to express more sophisticated data structures in a dynamic system.
PPNs are used to help and improve the decision-making process in presence of uncertainty,
allowing for the most appropriate adaption plans to be determined using the principle of decision
plausibility.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Model parameters</title>
        <p>
          The Petri Net-based formal model proposed in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] is generic and can be applied in several
areas and on diferent cases. However, to achieve our objectives and be able to model a
qualitydriven SAS, we need to identify the necessary parameters of the control layer by performing
the following steps (see Figure 1):
1. Identify the overall qualities of the system;
2. Determine characteristics that allow quantifying system qualities as well as the contextual
uncertainties afecting the system behavior;
3. Model the managed system with the use of HLPN;
4. Parameterize the MAPE-K loop used in the control layer. This later is generic and
parameterized by: the functional system or layer, the quality objectives and the adaptation
actions.
        </p>
        <p>The monitored layer represents the model of the managed system, it is defined in step 3.
Generally, this modelling describes the overall functioning of the system.</p>
        <p>The quality objectives define requirements that the system aims to maintain and ensure, such as
reliability, availability, security and performance. These qualities are quantified using properties
already defined in step 2. The adaptation actions are the possible solutions and configurations
that restore the system quality and ensure the continuous satisfaction of the quality objectives.</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. The TPA formal model</title>
        <p>
          The running example is a service-based system, which means that its quality depends on
the services it provides. Kotler [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] suggested that a service is any activity or benefit that one
party can give to another that is essentially intangible and does not result in the ownership of
anything. According to this definition and the functioning of the TPA, we model a service as a
HLPN place where tokens represent service instances. A service-QoS is determined regarding
its cost, reliability value and availability rate. In this example, we adapt the TPA by selecting the
more plausible service on the basis of a comparison of the QoS values of all services, since the
quality objectives are defined via thresholds in our approach. Besides, we focus on modelling
the system states/context elements and actions to be performed by the system, but in this case,
we are more interested with the system functioning process. The TPA architecture is given in
Figure 2.
        </p>
        <p>The monitored layer model is organised in 4 phases: flight reservation, hotel reservation,
tourist attractions search, and rental phase. These phases enclose all services provided by the
TPA with the rental phase containing two services: car rental service and bike rental service.
The control layer monitors the service failures and adapts the system using the API primitives,
which are used inside the MAPE-K control loop to simulate the sensing and actuating actions
upon the monitored layer. All services are represented in the knowledge zone and used by the
MAPE elements. For readability raisons, we present the model of each layer separately.</p>
        <sec id="sec-4-3-1">
          <title>4.3.1. Monitored layer</title>
          <p>Figure 3 represents the monitored layer model of the TPA, which is organised in 4 phases:
lfight reservation, hotel reservation, tourist attractions search , and rental phase. Places
represent the states of user requests; transitions represent user actions and services failure (ex:
ifaledSearchFlight, failedSearchAttraction, failedSearchHotel . . . ). The user may initiate the flight
reservation phase, tourist attractions search phase, or both. Whenever he requests the flight
reservation service his request may be treated successfully by firing the transition
flightReservation producing a token that contains the flight information in the place flightReserved , this
will enable him to move to the next phase; or the service may fail and its identifier is passed to
serFailed place. This place contains the identifier of the failed services ( flight, hotel and attraction
service). Service functioning is supervised by the monitor through the rentFailed place, which
contains the identifier of the failed car rental service and bike rental service, in order to perform
adaptation. After a successful flight reservation phase, the user can start the 2 phase by
requesting the hotel reservation service, which may also fail or be successfully executed. The
tourist attractions search phase allows users to consult tourist attractions; finishing this phase
successfully produces a token containing information about the searched tourist attraction in
the rentingService place. This place also contains tokens representing the reserved hotel
information. At the end, the user may execute the rental phase to rent a car or a bicycle whenever
the accommodation arrangements have been made through the hotel service. In addition, he
can rent them after requesting the attraction service directly.</p>
        </sec>
        <sec id="sec-4-3-2">
          <title>4.3.2. Control layer</title>
          <p>In this section, we detail the TPA adaptation logic represented by the managing system of
Figure 2; whose model is given in Figure 4 where the black transitions represent the
crosszone ones, and the blue places and transitions represent the plausible ones. We are limited in
this example to the following adaptation strategies: if the flight booking service or the hotel
reservation service fails, the corresponding service will be replaced by the service with a higher
reliability value; if the attraction information service fails, it will be replaced by the service with
the lower cost value.</p>
          <p>1. Knowledge
Since TPA is a service-based system, its services are represented by places in the knowledge
base (HotelSrvices, FlightServices, AttreactionServices. . . ). Each service instance is represented
as a token in the corresponding place. Each token is a tuple containing the necessary data to
identify the service, which are the service identifier s, its cost, the number of times that the
service s has been successfully delivered (), the number of invocations (K), and the total
amount of time in which it is available during the last  seconds ().</p>
          <p>2. Monitor
Since a service may fail at any time while treating a user request, the monitor element is
responsible of the recovering of the failed service information by monitoring the place serFailed
using the transition getFailedService, which is a read primitive of the API. Then, it filters the
result to determine the failed service data and passes them to the analyser element.</p>
          <p>3. Analyser
4. Planner
5. Executor
It calculates the reliability of the service in the case of the flight reservation/hotel reservation
services failure, by firing transitions getFlightSerReliability and getHotelSeReliability, respectively,
and calculates service cost in the case of attraction information service failure; these values are
calculated using formulas presented in Section 2. The calculated values are transmitted to the
planner element.</p>
          <p>Its task is to select the proper service instance from the existing ones with regard to adaptation
strategy requirements. It uses the concept of plausibility to select the most appropriate service.
For example, the transition getGreaterReliabilitySerF allows determining the flight service with
the greatest reliability value. When the planner task selects the best service, the executor is
triggered.</p>
          <p>It updates the failed service with the selected one by firing transition according to the service
(setFlightService, setAttractionService, or setHotelService), representing the write primitive of the
API. In fact, it updates the corresponding place marking.</p>
        </sec>
      </sec>
      <sec id="sec-4-4">
        <title>4.4. Execution Scenario</title>
        <p>The proposed model is simulated and validated using the extended PNemu1 framework;
where we defined a new class "HLPN" to model the managed system and its environment by an
HLPN; we have modified the emulator class to be able to emulate models specified as HLPN;
then we have redefined some primitives of the API to capture the HLPN concepts, such as
getTokens and setTokens primitives.</p>
        <p>1PNemu has been released as an open source software, available at https://github.com/SELab-unimi/pnemu.</p>
        <p>
          We assume an initial configuration of the system containing 4 instances of each service,
which are attraction information service, flight reservation service, hotel reservation service,
bicycle rental service, and car rental service. We specify each instance by a token of type tuple
containing service instance information; see Table 1. We have considered the same parameters
as presented in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], which are service identifier, cost, the amount of times that the service has
been successfully delivered (), the number of invocations (K), and the total amount of time in
which it is available during the last  seconds ();  is defined by system administrator. Table 1
is limited to services that are modelled in Figure 4; some values are retrieved from the files
used in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] and others are randomly chosen; we assume that  = 300 seconds. A part of the
HLPN instance representing the monitored layer is given in Figure 5; it corresponds to the flight
reservation phase, the presence of a token in place searchFlightRes means that the list of flights
displayed in the user interface are given by this service (FS4).
        </p>
        <p>We assume that the a user requests the flight reservation service, but unfortunately the later
fails (FS4). To maintain and ensure a continuous satisfaction of the quality objectives, the system
tries to replace it by another service with the higher reliability value, thus the analyser element
calculates the reliability value for each instance of the flight reservation service. Then, it sends
the results to the planner element in order to select the plausible service, which is the service
with the higher reliability value, service FS2 for instance. The selected service is resumed by the
executor using the write primitive of the API; it updates the place marking by the new token
representing the selected service. Simulation results are illustrated in Figure 6.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. DISCUSSION</title>
      <p>
        In recent years, some studies have modelled the TPA using diferent methods and tools.
In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], TPA is modelled by Agent Flow’s where authors are interested with cost analysis,
execution duration, reliability and reputation quality; they developed a non-formal framework
to execute the proposed model, which is specific to SBSs and doesn’t deals with uncertainty.
In [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], a formal model of TPA is proposed, it is based on parameterized Discrete-Time Markov
Chains (DTMC). In this model, authors are interested with analyzing cost and reliability qualities.
The developed framework for model execution is also specific to SBSs and doesn’t deal with
uncertainty. The model is also used in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and implemented with lotus@runtime, which is
dedicated to SAS, but its applicability has been demonstrated by SBSs. The models proposed
in these works do not separate the system from its adaptation logic, this makes the models
application-specific and not applicable to other systems, contrary to our model. These
shortcomings lead to the limitations of these model applicability and the dificulty of generalizing
them to study diferent cases and in diferent fields.
      </p>
      <p>
        In this paper, we applied our formal model to TPA; it combines HLPNs with PPNs to model
both self-adaptation and manage uncertainties. The generality of our model is confirmed by
this case study; all we have to do is to specify the parameters of the control layer. The model
is used to represent several applications in various fields, such as SBSs and aircraft planning
in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Furthermore, it takes charge of uncertainty and manages it at diferent levels of the
decision-making process. The above discussion is summarized in Table 2.
6. CONCLUSION
      </p>
      <p>We proposed a formal approach for modeling and analyzing quality-driven self-adaptive
systems that evolve under uncertainty while still preserving and assuring the continuous
satisfaction of an acceptable quality of service. In this paper, we demonstrate the generality
and efectiveness of our approach. The Travel Planner Application case study is a real-world
problem that has been modelled with our approach. The findings show how HLPN can be
used to model and gather the monitored data to facilitate the autonomous and adaptive service
replication decision-making. This example demonstrates how service-based systems can be
adapted using a new formalism such as our Petri net-based approach. As a result, our approach
is generic and adaptable to any system.</p>
      <p>As future work, in the short term we plan to verify some properties of the TPA model. In
the middle term, we intend to create a model generator that converts HLPN model to Markov
chains model so that we can use model checkers in conjunction with AI techniques to verify
system properties and avoid the combinatorial explosion problem.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>Marc</given-names>
            <surname>Oriol</surname>
          </string-name>
          , Xavier Franch, and Jordi Marco.
          <article-title>“Monitoring the service-based system lifecycle with SALMon”</article-title>
          .
          <source>In: Expert Systems with Applications</source>
          <volume>42</volume>
          .19 (
          <year>2015</year>
          ), pp.
          <fpage>6507</fpage>
          -
          <lpage>6521</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.eswa.
          <year>2015</year>
          .
          <volume>03</volume>
          .027.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Danny</given-names>
            <surname>Weyns</surname>
          </string-name>
          and
          <string-name>
            <given-names>Radu</given-names>
            <surname>Calinescu</surname>
          </string-name>
          . “
          <article-title>Tele assistance: A self-adaptive service-based system exemplar”</article-title>
          .
          <source>In: 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. IEEE</source>
          .
          <year>2015</year>
          , pp.
          <fpage>88</fpage>
          -
          <lpage>92</lpage>
          . doi:
          <volume>10</volume>
          .1109/SEAMS.
          <year>2015</year>
          .
          <volume>27</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Liangzhao</given-names>
            <surname>Zeng</surname>
          </string-name>
          et al. “
          <article-title>QoS-aware middleware for web services composition”</article-title>
          .
          <source>In: IEEE Transactions on software engineering 30</source>
          .5 (
          <issue>2004</issue>
          ), pp.
          <fpage>311</fpage>
          -
          <lpage>327</lpage>
          . doi:
          <volume>10</volume>
          .1109/TSE.
          <year>2004</year>
          .
          <volume>11</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Liangzhao</given-names>
            <surname>Zeng</surname>
          </string-name>
          et al. “
          <article-title>An agent-based approach for supporting cross-enterprise worklfows”</article-title>
          .
          <source>In: Proceedings 12th Australasian Database Conference. ADC</source>
          <year>2001</year>
          . IEEE.
          <year>2001</year>
          , pp.
          <fpage>123</fpage>
          -
          <lpage>130</lpage>
          . doi:
          <volume>10</volume>
          .1109/ADC.
          <year>2001</year>
          .
          <volume>904473</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Angus</surname>
            <given-names>FM Huang</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ci-Wei</surname>
            <given-names>Lan</given-names>
          </string-name>
          , and
          <article-title>Stephen JH Yang. “An optimal QoS-based Web service selection scheme”</article-title>
          .
          <source>In: Information Sciences 179.19</source>
          (
          <year>2009</year>
          ), pp.
          <fpage>3309</fpage>
          -
          <lpage>3322</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.ins.
          <year>2009</year>
          .
          <volume>05</volume>
          .018.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [16] [17] [19] [6]
          <string-name>
            <surname>Daniel</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Menasce</surname>
          </string-name>
          . “
          <article-title>QoS issues in web services”</article-title>
          .
          <source>In: IEEE internet computing 6</source>
          .6 (
          <issue>2002</issue>
          ), pp.
          <fpage>72</fpage>
          -
          <lpage>75</lpage>
          . doi:
          <volume>10</volume>
          .1109/MIC.
          <year>2002</year>
          .
          <volume>1067740</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Justin O'Sullivan</surname>
            ,
            <given-names>David</given-names>
          </string-name>
          <string-name>
            <surname>Edmond</surname>
          </string-name>
          , and Arthur Ter Hofstede. “
          <article-title>What's in a Service?”</article-title>
          <source>In: Distributed and Parallel Databases 12.2</source>
          (
          <issue>2002</issue>
          ), pp.
          <fpage>117</fpage>
          -
          <lpage>133</lpage>
          . doi:
          <volume>10</volume>
          .1023/A:
          <fpage>1016547000822</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Liangzhao</given-names>
            <surname>Zeng</surname>
          </string-name>
          et al. “
          <article-title>Quality driven web services composition”</article-title>
          .
          <source>In: Proceedings of the 12th international conference on World Wide Web</source>
          .
          <year>2003</year>
          , pp.
          <fpage>411</fpage>
          -
          <lpage>421</lpage>
          . doi:
          <volume>10</volume>
          .1145/775152. 775211.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Fatma</given-names>
            <surname>Kachi</surname>
          </string-name>
          , Chafia Bouanaka, and Souheir Merkouche.
          <article-title>“A Formal Model for QualityDriven Decision Making in Self-Adaptive Systems”</article-title>
          . In: arXiv preprint arXiv:
          <year>2012</year>
          .
          <volume>01651</volume>
          (
          <year>2020</year>
          ). doi:
          <volume>10</volume>
          .4204/eptcs.329.5.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Autonomic</given-names>
            <surname>Computing</surname>
          </string-name>
          et al. “
          <article-title>An architectural blueprint for autonomic computing”</article-title>
          .
          <source>In: IBM White Paper 31</source>
          .
          <year>2006</year>
          (
          <year>2006</year>
          ), pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . doi:
          <volume>10</volume>
          .1021/am900608j.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Davi</given-names>
            <surname>Monteiro</surname>
          </string-name>
          Barbosa et al. “
          <article-title>Lotus@ runtime: A tool for runtime monitoring and verification of self-adaptive systems”</article-title>
          .
          <source>In: 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS)</source>
          .
          <source>IEEE</source>
          .
          <year>2017</year>
          , pp.
          <fpage>24</fpage>
          -
          <lpage>30</lpage>
          . doi:
          <volume>10</volume>
          .1109/SEAMS.
          <year>2017</year>
          .
          <volume>18</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Carl</surname>
            <given-names>Adam Petri.</given-names>
          </string-name>
          “Kommunikation mit automaten”. In: (
          <year>1962</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>International</given-names>
            <surname>Standard</surname>
          </string-name>
          <string-name>
            <surname>ISO</surname>
          </string-name>
          /IEC 15909.
          <article-title>“High-level Petri Nets - Concepts, Definitions and Graphical Notation”</article-title>
          .
          <source>In: Final Draft International Standard ISO/IEC 15909.4</source>
          (
          <issue>2002</issue>
          ), pp.
          <fpage>1</fpage>
          -
          <lpage>43</lpage>
          . issn:
          <volume>14324350</volume>
          . doi:
          <volume>10</volume>
          .1007/BF02679450.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Chiachıo</surname>
          </string-name>
          et al. “
          <article-title>A new paradigm for uncertain knowledge representation by Plausible Petri nets”</article-title>
          .
          <source>In: Information Sciences</source>
          <volume>453</volume>
          (
          <year>2018</year>
          ), pp.
          <fpage>323</fpage>
          -
          <lpage>345</lpage>
          . issn:
          <volume>00200255</volume>
          . doi:
          <volume>10</volume>
          .1016/j.ins.
          <year>2018</year>
          .
          <volume>04</volume>
          .029.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>John</surname>
            <given-names>C Baez</given-names>
          </string-name>
          and
          <string-name>
            <given-names>Jade</given-names>
            <surname>Master</surname>
          </string-name>
          . “
          <article-title>Open petri nets”</article-title>
          .
          <source>In: Mathematical Structures in Computer Science 30.3</source>
          (
          <issue>2020</issue>
          ), pp.
          <fpage>314</fpage>
          -
          <lpage>341</lpage>
          . doi:
          <volume>10</volume>
          .1017/S0960129520000043..
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <given-names>Mohammed</given-names>
            <surname>Taleb-Berrouane</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Faisal</given-names>
            <surname>Khan</surname>
          </string-name>
          , and Paul Amyotte. “
          <string-name>
            <surname>Bayesian Stochastic Petri Nets (BSPN</surname>
          </string-name>
          )
          <article-title>- A new modelling tool for dynamic safety and reliability analysis”</article-title>
          .
          <source>In: Reliability Engineering and System Safety</source>
          <volume>193</volume>
          (
          <year>2020</year>
          ), p.
          <fpage>106587</fpage>
          . issn:
          <volume>09518320</volume>
          . doi:
          <volume>10</volume>
          .1016/j.ress.
          <year>2019</year>
          .
          <volume>106587</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Chiachıo</surname>
          </string-name>
          et al. “
          <article-title>An information theoretic approach for knowledge representation using Petri nets”</article-title>
          .
          <source>In: FTC 2016 - Proceedings of Future Technologies Conference. IEEE</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>165</fpage>
          -
          <lpage>172</lpage>
          . isbn:
          <volume>9781509041718</volume>
          . doi:
          <volume>10</volume>
          .1109/FTC.
          <year>2016</year>
          .
          <volume>7821606</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Guillermo</surname>
            <given-names>Rus</given-names>
          </string-name>
          , Juan Chiachıo, and Manuel Chiachıo. “
          <article-title>Logical inference for inverse problems”</article-title>
          .
          <source>In: Inverse Problems in Science and Engineering 24.3</source>
          (
          <issue>2016</issue>
          ), pp.
          <fpage>448</fpage>
          -
          <lpage>464</lpage>
          . doi:
          <volume>10</volume>
          .1080/17415977.
          <year>2015</year>
          .
          <volume>1047361</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Chiachıo</surname>
          </string-name>
          et al. “
          <article-title>Plausible Petri nets as self-adaptive expert systems: A tool for infrastructure asset monitoring”</article-title>
          .
          <source>In: Computer-Aided Civil and Infrastructure Engineering</source>
          <volume>34</volume>
          .4 (
          <issue>2019</issue>
          ), pp.
          <fpage>281</fpage>
          -
          <lpage>298</lpage>
          . doi:
          <volume>10</volume>
          .1111/mice.12427.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>Sara</given-names>
            <surname>Mahdavi-Hezavehi</surname>
          </string-name>
          , Paris Avgeriou, and Danny Weyns.
          <article-title>“A classification framework of uncertainty in architecture-based self-adaptive systems with multiple quality requirements”</article-title>
          .
          <source>In: Managing Trade-Ofs in Adaptable Software Architectures . Elsevier</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>77</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Deepak</surname>
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Kanthiah</surname>
          </string-name>
          <article-title>Alias and Jeyakumar S. Marketing management</article-title>
          .
          <source>Educreation Publishing</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>Radu</given-names>
            <surname>Calinescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Kenneth</given-names>
            <surname>Johnson</surname>
          </string-name>
          , and Yasmin Rafiq. “
          <article-title>Developing self-verifying servicebased systems”</article-title>
          .
          <source>In: 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE)</source>
          .
          <source>IEEE</source>
          .
          <year>2013</year>
          , pp.
          <fpage>734</fpage>
          -
          <lpage>737</lpage>
          . doi:
          <volume>10</volume>
          .1109/ASE.
          <year>2013</year>
          .
          <volume>6693145</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>