<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Formal Specification and Validation of a Data-driven Software System for Fire Risk Prediction</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ruben</forename><forename type="middle">D</forename><surname>Strand</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Safety, Chemistry, and Biomedical laboratory sciences</orgName>
								<orgName type="institution">Western Norway University of Applied Sciences</orgName>
								<address>
									<settlement>Haugesund</settlement>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Laure</forename><surname>Petrucci</surname></persName>
							<affiliation key="aff1">
								<orgName type="laboratory" key="lab1">LIPN</orgName>
								<orgName type="laboratory" key="lab2">CNRS UMR 7030</orgName>
								<orgName type="institution">Université Sorbonne Paris Nord</orgName>
								<address>
									<settlement>Villetaneuse</settlement>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Lars</forename><forename type="middle">M</forename><surname>Kristensen</surname></persName>
							<affiliation key="aff2">
								<orgName type="department" key="dep1">Department of Computer science</orgName>
								<orgName type="department" key="dep2">Electrical engineering and Mathematical sciences</orgName>
								<orgName type="institution">Western Norway University of Applied Sciences</orgName>
								<address>
									<settlement>Bergen</settlement>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Formal Specification and Validation of a Data-driven Software System for Fire Risk Prediction</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">F1E2A1735D35E7D677BB45B2A1810477</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T15:27+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Coloured Petri nets</term>
					<term>modelling</term>
					<term>verification</term>
					<term>microservices and REST APIs</term>
					<term>software systems architecture</term>
					<term>fire risk prediction</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Long periods of dry and cold weather conditions significantly increase fire risks for wooden buildings. Recent advances in predictive fire risk models combined with publicly available cloud-based weather data services have enabled the development of smart software systems for location-oriented fire risk notification. We have developed a Coloured Petri Net (CPN) model specifying the software architecture of a microservice-based predictive fire risk notification system. The CPN model captures the set of micro-services provided via REST APIs and the interaction between the constituent services for location tracking and subscription, fire risk computation, and data harvesting. As part of the work, we present a general modelling approach and pattern for REST-based APIs. We apply simulation and state space exploration to validate and verify key behavioural properties of the predictive fire risk notification system.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>The pervasive presence of cloud-based data services provides access to a wide range of data sources that enable the development of data-driven applications supporting decision making and control. Prominent examples of such data sources includes weather data measurements and weather forecasts which can be used by authorities in the context of early warning systems, including smart systems for fire risk predictions.</p><p>The winter period in certain regions of Norway is characterised by longer periods with dry and cold weather conditions which combined with the high density of wooden houses poses a significant threat to many cities in Norway. An example of this was the incident on January 18th 2014, when at that date, the largest fire in Norway since World War II developed in the village of Laerdalsøyri at night-time <ref type="bibr" target="#b0">[1]</ref>. Forty buildings were lost, including four historic buildings, in a fire that only developed between houses <ref type="bibr" target="#b1">[2]</ref>.</p><p>It is generally known that the winter in cold climate regions brings along increased fire frequencies <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b2">3]</ref>. This was originally identified by Pirsko and Fons <ref type="bibr" target="#b3">[4]</ref> which suggested ambient dew point during the winter as an explanation for the increased fire frequency in buildings. More recently, Log <ref type="bibr" target="#b4">[5]</ref> proposed indoor relative humidity as a fire risk indicator and developed a mathematical model <ref type="bibr" target="#b5">[6]</ref> that predicts indoor fuel moisture content (FMC) for a wooden house. The model correlates the FMC with the time to flash-over (TTF) <ref type="bibr" target="#b6">[7]</ref>, resulting in the possibility of indicating fire development. Combined with forecast weather data, the TTF can be predicted for the upcoming days, enabling proactive emergency planning. Further, by combining the TTF with the influence of wind, a combined fire risk can be expressed, as presented in <ref type="bibr" target="#b7">[8]</ref>. The basic idea underlying the model of Log is to use outdoor temperature and relative humidity to estimate (compute) indoor relative humidity which in turn enables computation of the wooden fuel moisture content (FMC). In Norway, measured weather data and weather forecast data (including temperature and relative humidity) are available via cloud-based REST APIs of the Norwegian Meteorological Institute (MET) <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b9">10]</ref>.</p><p>The work presented in this paper is conducted in the context of the DYNAMIC research project <ref type="bibr" target="#b10">[11]</ref> which has as a main objective to develop a cloud-based predictive fire risk indication system based upon the fire risk prediction models developed within the project. In earlier work, we have validated the predictive fire risk indication model <ref type="bibr" target="#b11">[12]</ref> demonstrating that it can provide trustworthy fire risk indications, that a combination of measurements and forecast data can be used, and that the weather data available from MET <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b9">10]</ref> can be used to obtain fire risk indications of the correct order of magnitude (minutes). Furthermore, in earlier work <ref type="bibr" target="#b11">[12]</ref> we implemented a simple first version of the system, which served as a basis for the development of a prototype of the fire risk notification system based on a micro-service software architecture. This prototype was developed through an iterative process in parallel with developing a first version of the CPN model. However, the development of the CPN model was based on the prototype system, hence developed a bit behind the prototype. This resulted in a supportive development process, as the CPN modelling continuously revealed problems and identified possible pitfalls within the prototype. This assured a more robust and complete development of the system. The prototype system and the CPN model were developed by different people, which was considered to strengthen the development process. The prototype implementation was implemented using the Heroku <ref type="bibr" target="#b12">[13]</ref> and Amazon EC2 cloud platforms and the Spring Boot framework <ref type="bibr" target="#b13">[14]</ref> in combination with MongoDB noSQL databases to realise the micro-services. In addition, a web-based front-end application was prototyped using the React single-page web application framework, and a mobile front-end was prototyped using the Xamarin crossplatform application framework <ref type="bibr">[15]</ref>. The current paper reports on a second version of the CPN model, which took place after the supportive development process. The updated CPN model will serve as basis for the final system implementation.</p><p>Contribution. The contribution of this paper is three-fold: Firstly, to take a step back from the initial prototype implementation and develop a formal specification of the software system architecture and the constituent micro-services ; Secondly, to develop some general modelling patterns for REST-based micro-services ; and thirdly to verify the system services and the behavioural interaction between the micro-services. A main benefit of the constructed CPN model is that it provides an implementation independent specification of the fire risk notification system and because of the initial prototyping we ensure the implementability of the system.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Related work.</head><p>Several works in the recent literature have addressed formal modelling of (micro-) services. Most of these works do not benefit from the data handling offered by Coloured Petri Nets nor provide a structured hierarchical design.</p><p>In <ref type="bibr" target="#b14">[16]</ref>, services are modelled using Timed Petri Nets (TPNs), thus focusing on the process flow and discarding the data exchanges. An automatically generated TPN then allows for verifying properties of an input microservice specified in the CONDUCTOR orchestration language. A similar approach for self-adaptive systems using high-level Petri nets was conveyed in <ref type="bibr" target="#b15">[17]</ref>.</p><p>The Saga patterns are extended with concurrency features in <ref type="bibr" target="#b16">[18]</ref> via workflow nets. They are further translated into reference nets embedded in the RENEW tool which provides simulation features. It also suffers from the restricted data representation and analysis capabilities. Services are organised using simple Petri net patterns in <ref type="bibr" target="#b17">[19]</ref>. In <ref type="bibr" target="#b18">[20]</ref>, the authors propose a Coloured Petri net model for RESTful services, with a particular focus on composition issues. However, it does not exhibit a hierarchical model nor a general architecture for micro-services models.</p><p>A CPN-based case-study verification of a cloud-based information integration architecture was presented in <ref type="bibr" target="#b19">[21]</ref>. Although modelling the different layers of the cloud-based architecture and verifying specific model properties, emphasis was not given to the communication, data exchange, between the layers. However, <ref type="bibr" target="#b20">[22]</ref> presents a structuring of data and color sets which has similarities with the general communication between the REST-based micro-services presented in this paper. In their work, they considered the automatic generation of a CPN model for a distributed automation architecture.</p><p>Overview. The rest of this paper is organised as follows. Section 2 gives an overview of the fire risk notification system by presenting the top-level modules of the CPN model and exemplifying the basic interaction between the micro-services when the system is being executed. In Sections 3-5 we present how the three micro-services (business logic, fire risk computation, and data harvesting) have been modelled, as well as our general approach to modelling RESTbased APIs. In Section 6 we formulate key behavioural properties for the fire risk notification system and explain how they have been validated and verified using simulation and state space exploration. Finally, in Section 7, we sum up conclusions and discuss future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Fire Risk Notification System and CPN Model Overview</head><p>The top-level CPN module of the system is presented in Figure <ref type="figure" target="#fig_0">1</ref>. It consists of the substitution transitions Client Applications, Fire Risk Notification System (FRNS), External Weather Data Services and associated socket places. The Client Applications represent any front-end service used by the clients to communicate with the FRNS, i.e. a web browser or mobile application. The FRNS represents the main fire risk notification system, consisting of 22 submodules. The substitution transition External Weather Data Services is representing weather data sources providing historical and forecast weather data.</p><p>The services communicate by producing and consuming tokens on the connected socket places. The tokens represent data transferred between the services. Each place is associated with a specific color set, allowing only a certain type or combination of data to be present. Considering a request from the Client Applications, a token is produced onto the place Request, connecting this application with the FRNS. In turn, the FRNS consumes the token, processes the request and responds by producing a token onto the place Response. The response token is then consumed by the Client Applications. The FRNS either responds to a request from the Client Applications, as described, or it notifies clients through scheduled services. This latter service results in one or more tokens being produced at the place Notification. The remaining two places in Figure <ref type="figure" target="#fig_0">1</ref> are the Data Request and Data Response. These are the places connecting the Fire Risk Notification System and the External Weather Data Services. Tokens are produced at these places whenever the FRNS needs historical and forecast weather data for fire risk computations.</p><p>Expanding on the system, Figure <ref type="figure" target="#fig_1">2</ref> shows the Fire Risk Notification System submodule. The module consists of three substitution transitions and associated socket places. The substitution transitions represent the individual services of Business Logic Controller Service (BLCS), The Fire Risk Computation Service (FRCS) and The Data Harvesting Service (DHS). The services are modelled as loosely coupled micro-services, communicating through defined REST API endpoints, in accordance with the previously developed prototype <ref type="bibr" target="#b21">[23]</ref>. The BLCS and DHS micro-services are connected to the overall system in Figure <ref type="figure" target="#fig_0">1</ref> through the places with equal naming. Hence, the BLCS communicates with the Client Applications and the FRCS, while the DHS communicates with the external weather data sources and the FRCS. The services are only aware of the existence of directly connected services.</p><p>The BLCS is the middleware, separating the Client Applications and the FRCS. It processes and responds to requests from the clients by further requesting the FRCS. In addition to the RESTful services, it also handles the fixed interval process of notifying clients in case of high estimated fire risks. To receive a notification for a location, a client must be subscribed to that location. The subscription database, handled by the BLCS, keeps track of these subscriptions.</p><p>The FRCS is responsible for estimating the fire risks at considered (tracked) locations, which is primarily a scheduled service. Upon computing the fire risks, the FRCS requests weather data from the DHS. Then, if weather data is received, the FRCS predicts the upcoming fire risks and updates the local fire risk database. When requested by the BLCS, the FRCS can return estimated fire risks from the local database. Hence, the fire risk database is continuously updated. The DHS receives weather data requests from the FRCS. It handles a weather database containing locations and associated weather data. The database is subject to scheduled updates, so when the FRCS requests weather data, the DHS can respond with recently fetched forecasts and measurements for all the locations within the database. Hence, the DHS functions similarly to the FRCS, by means of scheduled updates of local databases. The existence of locations is synchronised between the databases.</p><p>Figure <ref type="figure" target="#fig_2">3</ref> presents a sequence diagram for the main functions of the system. In general, clients may: (1) start or stop tracking of a new location; (2) subscribe or unsubscribe to existing locations to handle personal notifications; or (3) request fire risk for locations existing within the system. In order to provide fire risk notifications, the system needs to continuously monitor the current and future fire risk. This is achieved by a scheduled update, running every six hours. It starts by an update of the weather database at DHS, then the FRCS requests the recently fetched weather data, recomputes all fire risks and updates the fire risk database. Then, the BLCS requests all recently computed fire risks and determine which clients to notify, if any, based on certain fire risk criteria and the subscriptions within the subscription database.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Abstraction of data.</head><p>Abstractions are made to the model to arrive at an appropriate level of detail. Although some details in data are useful for modelling in simulation purposes, they are not necessarily relevant when doing verification. The included data need only to correspond with the modelling objective. Further, abstraction of unnecessary data is important to reduce the size of the state space, ensuring a finite space and allowing a more exhaustive verification.</p><p>The abstractions made to the CPN model primarily relate to the payload of the messages. When the different services communicate, the purpose of the communication is more important than the content, e.g., the verification only requires to distinguish between the absence of a notification of fire risk or its sending, but not on the actual levels of risk. Hence, risk levels are abstracted and emphasis is given to properly capture the purpose of the interactions between the constituent services. A consequence of this is that we also abstract from the actual values related to weather data and only consider the absence or presence of weather data for locations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Business Logic Controller Service</head><p>The BLCS which is modelled by the submodule of the Business Logic Controller Service substitution transition (see Fig. <ref type="figure" target="#fig_1">2</ref>) consists of two substitution transitions and associated sub-modules, as well as the subscription database. The two modules represent (1) the processing of client requests and (2) the scheduled update and associated notifications. Figure <ref type="figure" target="#fig_3">4</ref> shows the module responsible for the processing of client requests, the BLCS Handle Request. It is connected to the FRNS module in Figure <ref type="figure" target="#fig_1">2</ref> through the places with similar naming. It contains three transitions representing the different incoming client requests, that is, tracking, subscription and single fire risk request. A request either results in an immediate response in the case of a subscription request, or the requesting of further information from the FRCS in the case of tracking or single fire risk request, as can be seen from Figure <ref type="figure" target="#fig_3">4</ref>. Considering a request from the Client Applications, a token is produced onto the place Request, connecting this application with the BLCS. The colour set associated with this place is ClientxFRNSRequest, which is a product colour set combining the index colour set Client  with the record colour set FRNSRequest, as can be seen from Figure <ref type="figure" target="#fig_4">5</ref>. Within the model, a request includes the specification of a HTTP method as well as the resources needed to handle the request. The resources are modelled through a union colour set, defining the REST API endpoints (constructors) and the associated data (arguments). The resources are service specific, defined for all interactions associated with the service. Hence, requests and responses use the same resource within respective services. With respect to the place Request, the resource is modelled by FRNSResource, and depending on the type of request and associated endpoint, the carried data is either a location or a combination of a location and a client identifier.</p><p>The colour set ClientxFRNSResponse associated with place Response is similar to ClientxFRN-SRequest, but instead makes use of the colour set FRNSResponse. Within the model, a response is defined as a record set and includes a response and a body, associated with the colour sets StatusCode and the aforementioned FRNSResource respectively. The response is used to indicate the status post processing the request, while the body embeds response data, if any. At the place Response, depending on the request, the resource is either a client and a location or a location and a fire risk. For any request not specifically asking for a fire risk, the response (StatusCode) represents the data needed by the client.</p><p>If the BLCS needs to request the FRCS, a token is produced at the place FRCSRequest, while in response, a token will be received at FRCSResponse. The colour sets associated with these places have similar names as the places themselves, hence FRCSRequest and FRCSResponse. These colour sets follow the same general structure as previously described for request and response colour sets. However, distinguishing these union sets from the previously described colour sets, is the inclusion of a Component. The Component identifies the type of request and from where it originates. This can be used within the model to distinguish the different ongoing interactions, as well as being useful when performing single-step and interactive simulations. Then, the defined colour set becomes a union of the Component and the record set FRCSReq or FRCSResp, as can be seen in Figure <ref type="figure" target="#fig_4">5</ref>. The colour sets FRCSReq and FRCSResp follow the previously presented design of requests and responses. The FRCSReq consists of a HTTP method and the associated resource FRCSResource, while FRCSResp contains a response described by the StatusCode and an associated body containing the explicitly stated FireRisks colour set.</p><p>To consider how a specific request is handled, Figure <ref type="figure" target="#fig_5">6</ref> presents the sub-module of Process Tracking Request from Figure <ref type="figure" target="#fig_3">4</ref>. At the top left, the familiar place Request can be seen, as well as the other recently considered places at the remaining corners. Any client request, regardless of its type, will occur at the top left. However, only the POST requests associated with resource (endpoint) FRNSLocation will be considered within this module, hence the arc inscriptions. POST requests are associated with clients requesting tracking of new locations. A requested location tracking may either contain an unconsidered location or an existing location. Hence, guards at the transitions connecting to the place Request consider whether the requested location already exists. If the function hasLoc (has location) evaluates to true, it means the requested location already exists within the subscription database and only the transition Request Location Exist becomes enabled. If this is the case, a token is produced at the place Response, containing an ACCEPTED response and the location in question. Similarly, the transition Process New Location only becomes enabled if hasLoc is not true and there is an available token at place Idle. The Idle tokens are introduced to ensure the full consideration of a request or process, before engaging the next. This is in accordance with the prototyped system as well as contributing to a reduced state space. When fired, the transition produces a token at FRCSRequest in accordance with its associated colour set. As can be seen from the arc inscription, the token consists of the component BLCSTracking, as well as the specified POST method and FRCSLocation resource.</p><p>When a tracking response is received at place FRCSResponse it contains the response CRE-ATED, a body with the specific location and a FireRisk corresponding to NA (not available). Together with the wait-token produced upon the firing of Process New Location, the FRCSResponse token enables the transition Process Response, which in turn may update the subscription database through the function AddLocation, as well as producing a response to the place Response. Note that it is evident from the component that the response originates from a tracking request, hence the NA within the body of the response.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">FireRisk Computation Service</head><p>The FRCS is responsible for the computation of fire risks and the handling of the FireRisk DataBase. Fire risks are computed by use of weather data received from the DHS and computed values are stored within the risk database, for later retrieval. The FRCS either responds to requests from the BLCS or performs scheduled recomputations of the fire risks within the database. Figure <ref type="figure" target="#fig_6">7</ref> presents the FRCS submodule, where the two substitution transitions FRC-SProcessRequest and RecomputeFireRisks represent the processing of requests and scheduled recomputations, respectively. The place FireRisk DataBase is associated with the colour set FireRiskDB, which is a list of entries consisting of the combination of location and FireRisk. The places DHSRequest and DHSResponse are constructed in accordance with the general design of requests and responses. The associated resource is modelled by DHSResource, which based on the endpoint (constructor), is either a location, a list of locations or a list of combinations of location and weather data, as can be seen from Figure <ref type="figure" target="#fig_8">8</ref>. Expanding the substitution transition FRCSProcessRequest gives the sub-module presented in Figure <ref type="figure" target="#fig_9">9</ref>. The module consists of two substitution transitions, representing the processing of tracking requests (Process Tracking Request) and single fire risk requests (Process GET Request). These are the only two types of requests processed by the FRCS, as the subscription requests were limited to within the BLCS. If the recently considered tracking request from Section 3 is considered, it would appear at the place FRCSRequest to be processed within the substitution transition Process Tracking Request, which is similar to what was previously presented related to Figure <ref type="figure" target="#fig_5">6</ref>.   The handling of the scheduled update of the FireRisk DataBase is presented in Figure <ref type="figure" target="#fig_10">10</ref> and is the sub-module of the transition Recompute FireRisks from Figure <ref type="figure" target="#fig_6">7</ref>. When firing, transition Send Request requests weather data from the DHS, for all locations kept within the fire risk database. The response received is a status OK and a list of locations and associated risks. The latter resource is represented by the DHSWD endpoint (constructor) and the variable wd, as can be seen from the arc inscription and declarations in Figure <ref type="figure" target="#fig_8">8</ref>. The received response results in the update of the FireRisk DataBase through the updateFRDB function. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Data Harvesting Service</head><p>The DHS is responsible for retrieving weather data from external sources and handling the Weather Data DataBase. The DHS either responds to requests from the FRCS or performs scheduled updates of the weather data in the database by requesting external services. The data fetched by the DHS is both historic and predicted weather data, requested from the FROST and MET APIs of the Norwegian Meteorological Institute, respectively. Figure <ref type="figure" target="#fig_11">11</ref> presents the DHS sub-module for processing requests. The three substitution transitions are Process POST Request, Process GET Request and Process Delete Request. The POST request is related to the initiation of location tracking and involves updating the local database, as previously described. The GET request is a request for service specific data, in this case weather data needed by the FRCS to perform fire risk computations. Yet unaddressed, is the delete request. Any subscription or tracking of a location can be terminated, which involves deleting clients or locations from the databases. Within the DHS, the delete request is only related to the termination of a tracking, hence the deletion of a location within the weather database.</p><p>The DHS is responsible for harvesting weather data from the external services. Figure <ref type="figure" target="#fig_12">12</ref> presents the modelling of the weather data harvesting, through a single harvesting module. The requesting of weather data from the two external services of FROST and MET, is modelled through a single combined weather data request. In turn, this means that the weather data response is a combined response, containing both historical and forecast weather data. The   and follow the aforementioned request and response structure. The request contains a HTTP method and a resource, while the response contains a status and a body. The resource is WSResource and represent both forecast and historic weather data for one or more locations, as can be seen from Figure <ref type="figure" target="#fig_13">13</ref>. At last, a weather data response results in the update of weather data within the database, which in turn can be requested by the FRCS.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">Model Validation and Verification</head><p>To validate the constructed CPN model, we initially performed single-step execution combined with interactive and automatic simulation. The aim of using simulation was to confirm that the basic behaviour of the CPN model was as intended, including the interaction between microservices. Testing the CPN model using simulation identified a number of smaller modelling errors which could easily be corrected.</p><p>To perform a more exhaustive verification of the CPN model, we report in this section on how we have used the state space exploration facilities of CPN Tools in conjunction with the stateand action-oriented ASK-CTL library <ref type="bibr" target="#b22">[24,</ref><ref type="bibr" target="#b23">25]</ref> to verify key behavioral properties of the fire risk notification system using temporal logic. We adopted an incremental verification approach similar to the one developed in <ref type="bibr" target="#b24">[26]</ref>, where we gradually verified the services of the fire risk notification system. In particular, we started with the verification of the location tracking service and then incrementally enabled subscription, fire risk computation, and data harvesting until we finally considered the verification of some system-wide behavioural properties. In the following paragraphs we present the behavioural properties considered for the different services. We assume that the reader is familiar with the basic CTL temporal operators AG (always/globally) and EF (reachable/exists future). In the specification of the CTL properties, we use 𝐿 to denote the set of locations and 𝐶 to denote the set of clients.</p><p>Tracking properties. Clients send requests to start and stop the tracking of locations which in turn determines the locations for which weather data is being harvested and for which fire risks are being computed. For tracking we consider the following properties.</p><p>T-P1 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG EF (𝑐 requests tracking of 𝑙). This property states that it is always possible for any client to initiate the tracking of any location. The proposition 𝑐 requests tracking of 𝑙 can be implemented by considering the binding of the transition in the Client module corresponding to the event of requesting a location to be tracked.</p><p>T-P2 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG ((𝑐 requests tracking of 𝑙) ⇒ EF (𝑙 is being tracked)). This property states that if a client requests tracking of a location, then there exists a future state in which this location is being tracked. Checking the location can be implemented by considering the tokens present on the places representing the databases of the three micro-services.</p><p>T-P3 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG EF (𝑐 stops tracking of 𝑙). This is the dual property of T-P1 for stopping the tracking of locations.</p><p>T-P4 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG (𝑐 stops tracking of 𝑙) ⇒ EF (𝑙 is not being tracked). This is the dual property of T-P2 for stopping the tracking of locations.</p><p>Since some components in the CPN model are not synchronised, we consider the EF operator in the properties rather than the stronger AF (always eventually) operator. Extending our work to verify the stronger always eventually properties would require the application of fairness assumptions. This could be achieved by e.g. using linear temporal logic (LTL) and encoding the exclusion of non-fair executions in the formulae being verified. However, there is currently no support for LTL modelling in CPN Tools.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Subscription properties.</head><p>Clients subscribe to a location in order to receive fire risk notifications for that location. For subscription we consider the following properties. S-P1 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG EF (𝑐 requests subscription to 𝑙). This property states that it is always possible for any client to request subscription to any location. The proposition 𝑐 requests subscription to 𝑙 can be implemented by considering the binding of the transition in the Client module corresponding to the event of requesting a subscription.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>S-P2</head><p>∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG ((𝑐 requests subscription to 𝑙) ⇒ EF (𝑐 is subscribed to 𝑙)). This property states that if a client requests subscription to a location, then there exists a future state in which the client is subscribed to that location. Checking the client subscription to the location can be implemented by considering the tokens present on the Subscription Database place (see Figure <ref type="figure" target="#fig_1">2</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>S-P3</head><p>∀𝑐 ∈ 𝐶, 𝑙𝑜𝑐𝑠 ⊆ 𝐿 : AG EF (𝑐 is subscribed to all locations in 𝑙𝑜𝑐𝑠). This property states that it is always possible for a client to be subscribed to any subset of locations.</p><p>S-P4 ∀𝑐 ∈ 𝐶 : AG (𝑐 is subscribed to a subset of 𝐿). This property ensures that a client cannot have multiple subscriptions to the same location.</p><p>S-P5 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG EF (𝑐 unsubscribes to 𝑙). This is the dual property of S-P1 but for unsubscribing to a location.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>S-P6</head><p>∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG ((𝑐 unsubscribes to 𝑙) ⇒ EF (𝑐 is not subscribed to 𝑙)). This is the dual property of S-P2 but for unsubscribing to a location.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fire risk properties.</head><p>Fire risk is to be computed by the fire risk computation service for a given location when this location is being tracked. For the fire risk computation service, we consider the following properties.</p><p>F-P1 ∀𝑙 ∈ 𝐿 : AG EF (firerisk is computed for 𝑙). This property states that for any location it is always possible to compute the fire risk. The fire risk being computed for a given location can be checked from the Firerisk Database place.</p><p>F-P2 ∀𝑙 ∈ 𝑙 : AG EF (firerisk recompute). This property states that it is always possible to recompute the fire risk for any given location, and hence that fire risk can be periodically recomputed. Re-computation of fire risks corresponds to the occurrence of the Recompute FireRisks transition in Figure <ref type="figure" target="#fig_10">10</ref>.</p><p>F-P3 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG (c requests firerisk for 𝑙 ⇒ EF (c receives firerisk response for 𝑙)). This property states that if a client 𝑐 requests a fire risk for a given location 𝑙, then it is possible for 𝑐 to obtain the response.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Data harvesting properties.</head><p>The data harvesting service is to retrieve weather data periodically for the currently tracked locations in order for the fire risk computation service to be able to compute fire risks. For data harvesting we consider the following properties.</p><p>W-P1 ∀𝑙 ∈ 𝐿 : AG EF (weather data is stored for 𝑙). This property states that for any location it is always possible to store weather data. That the weather data has been stored for a given location can be checked from the Weatherdata Database place.</p><p>W-P2 ∀𝑙 ∈ 𝐿 : AG EF (weather data requested for 𝑙). This property states that it is always possible to harvest data for a given location. The harvesting of data for a location corresponds to an occurrence of the SendWeatherDataRequests transition in Figure <ref type="figure" target="#fig_12">12</ref>.</p><p>Inter-service properties. In addition to the properties related to specific services above, we also consider the following properties which rely on the collaboration between all micro-services in the system.</p><p>A-P1 AG (no pending client requests ⇒ consistent data bases). This property states that if no client is currently executing requests against the service, then the databases of the micro-services are consistent in terms of storing information for the same set of locations. That the databases are consistent can be checked by considering the markings of the three places representing information stored in the databases (see Figure <ref type="figure" target="#fig_1">2</ref>).</p><p>A-P2 ∀𝑐 ∈ 𝐶, 𝑙 ∈ 𝐿 : AG (𝑐 is subscribed to 𝑙) ⇒ EF (𝑐 receives fire risk notification for 𝑙). This property states that if a client is subscribed to a location, then it is possible for the client to receive fire risks for that location. That a client is subscribed to a location can be retrieved from the place representing the subscription database while the reception of a notification is represented by the occurrence of the corresponding transition in the Client module.</p><p>Experimental results. We verified the properties presented above for selected configurations of the CPN model in terms of locations, clients, tracked locations, and subscriptions. Table <ref type="table" target="#tab_1">1</ref> summarises the statistics for the state space exploration and verification of properties. The States and Arcs columns give the number of states and edges, respectively, in the state space. The G-Time column provides the time (in seconds) used to generate the state space for the given configuration while the V-Time column lists the time (in seconds) used for verification of properties. The verification was undertaken on i5-PC 2.4 GHz PC with a 16Gb memory.</p><p>We use 𝐶𝑥 − 𝐿𝑦 to denote a configuration with 𝑥 clients and 𝑦 locations. A * indicates that we have fixed the tracking and subscription such that all locations are tracked and all clients subscribe to all locations. We use Request to specify configurations where we only consider single requests from clients and Notify to specify configurations where we consider only the system initiated notifications (and not individual client requests). It can be observed that for configurations with only notification, the size of the state space does not grow when increasing the number of locations. This is due to the subscriptions being fixed and the fact that a client is notified about all subscribed locations in one single message. The verification of the model revealed an error related to the notification of clients with respect to fire risks which was not identified during simulation. This demonstrates the added value of undertaken state space exploration of the CPN model, in order to perform more exhaustive verification of properties.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">Conclusion</head><p>In this paper we have presented a formal specification of the micro-service based architecture for the fire risk notification system being developed in the DYNAMIC research project. Our modelling patterns represent a general approach to modelling REST APIs using CPNs. In addition, we have formally validated the system services and the interaction between the micro-services using state space exploration and model checking.</p><p>The design of the fire risk notification system has been following an implementation-first approach where two prototypes were implemented and tested. The purpose has been to first validate the fire risk model itself, as to better understand the functional requirements and software technology capabilities in the technical solution space. The final step has then been to specify the software architecture and micro-services in an implementation-independent manner using a CPN model. The CPN model presented in this paper will then serve as basis for implementing a final version of the fire risk notification system.</p><p>In the present work we have considered only a limited number of system configurations. Future work includes verification of a more complete set of system configurations using the incremental methodology presented in <ref type="bibr" target="#b24">[26]</ref>. As part of this, we may also investigate the use of fairness assumptions in the verification to be able to verify eventual-type properties and hence strengthen the properties being verified from the system. Furthermore, the constructed CPN model may potentially be used to generate test-cases for the implementation using the model-based approach presented in <ref type="bibr" target="#b25">[27]</ref>.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: The top-level module of the CPN model, with the front-end client applications at the left, the main software component FRNS in the middle, and the external weather data services at the right.</figDesc><graphic coords="4,78.77,84.19,437.74,140.74" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: The FRNS submodule, with the BLCS at the left, the FRCS in the middle and the DHS at the right. The far left and right places correspond to the places in Figure 1.</figDesc><graphic coords="5,70.24,84.19,454.80,201.30" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: A sequence diagram for selected requests and processes, herein tracking, subscription and risk requests, as well as the scheduled update of databases and associated notification.</figDesc><graphic coords="6,74.66,84.19,445.95,491.85" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Presenting the sub-module responsible for handling requests within the BLCS, the BLCS Handle Request. Represented through respective substitution transitions, from the top, the handling of tracking, subscription and single fire risk requests.</figDesc><graphic coords="7,94.39,317.34,406.50,243.90" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Colour sets definitions used to model the state of the BLCS.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: The Process POST Request submodule. Presenting the BLCS handling of a tracking (POST) request.</figDesc><graphic coords="9,65.44,446.94,464.40,146.40" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 7 :</head><label>7</label><figDesc>Figure 7: The FireRisk Computation Service submodule and associated substitution transitions and database.</figDesc><graphic coords="10,76.75,439.29,441.79,188.66" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Figure 8 :</head><label>8</label><figDesc>Figure 8: Colour set definitions used to model the state of the FRCS.</figDesc><graphic coords="11,100.36,349.12,394.56,216.00" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Figure 9 :</head><label>9</label><figDesc>Figure 9: The sub-module of FRCS Process Request. It can be seen that the FRCS handles tracking (POST) and single fire risk (GET) requests only.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_10"><head>Figure 10 :</head><label>10</label><figDesc>Figure 10: The sub-module Recompute FireRisks responsible for the scheduled update of the FireRisk DataBase.</figDesc><graphic coords="12,98.14,136.78,399.00,187.13" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_11"><head>Figure 11 :</head><label>11</label><figDesc>Figure 11: The sub-module responsible for handling requests within the DHS. The DHS either POST or DELETE a location from its database, or fetches weather data from the Weather Data DataBase (GET).</figDesc><graphic coords="13,115.58,84.19,364.13,199.13" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_12"><head>Figure 12 :</head><label>12</label><figDesc>Figure 12: The sub-module Harvest Weather Data, within the DHS, responsible for the harvesting of weather data from external services. The modelling combines the requesting from two external services into a single combined request.</figDesc><graphic coords="13,73.95,344.68,447.38,226.50" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_13"><head>Figure 13 :</head><label>13</label><figDesc>Figure 13: Colour set definitions used to model the state of the DHS.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1</head><label>1</label><figDesc>State space and verification statistics for configurations considered in the verification.</figDesc><table><row><cell>Configuration</cell><cell>States</cell><cell cols="3">Arcs G-Time V-Time</cell></row><row><cell>C1-L1</cell><cell>3,435</cell><cell>11,901</cell><cell>&lt; 1 s</cell><cell>&lt; 1 s</cell></row><row><cell>C1-L2</cell><cell>215,181</cell><cell>739,797</cell><cell>2,093 s</cell><cell>555 s</cell></row><row><cell>C2-L1</cell><cell cols="2">274,581 1,238,395</cell><cell cols="2">9,100 s 1,404 s</cell></row><row><cell>C2-L2-*</cell><cell>14,556</cell><cell>62,535</cell><cell>27.7 s</cell><cell>26.6 s</cell></row><row><cell>C2-L3-*-Request</cell><cell>5,151</cell><cell>21,138</cell><cell>4 s</cell><cell>10.5 s</cell></row><row><cell>C2-L3-*-Notify</cell><cell>216</cell><cell>687</cell><cell>&lt; 1 s</cell><cell>&lt; 1 s</cell></row><row><cell>C3-L2-*-Request</cell><cell>18,654</cell><cell>91,596</cell><cell>49.5 s</cell><cell>67.0 s</cell></row><row><cell>C3-L2-*-Notify</cell><cell>372</cell><cell>1,311</cell><cell>&lt; 1 s</cell><cell>&lt; 1 s</cell></row><row><cell>C3-L3-*-Request</cell><cell>54,894</cell><cell>276,378</cell><cell cols="2">480.9 s 339.8 s</cell></row><row><cell>C3-L3-*-Notify</cell><cell>372</cell><cell>1,311</cell><cell>&lt; 1 s</cell><cell>&lt; 1 s</cell></row></table></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><p>This study was partly funded by the Research Council of Norway, grant no 298993, Reducing fire disaster risk through dynamic risk assessment and management (DYNAMIC). The study was also supported by Haugaland Kraft Nett, Norwegian Directorate for Cultural Heritage and Stavanger municipality. Part of this work was achieved while Lars M. Kristensen was visiting Université Sorbonne Paris Nord as invited professor.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Cold climate fire risk; a case study of the Laerdalsøyri fire</title>
		<author>
			<persName><forename type="first">T</forename><surname>Log</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Fire Technology</title>
		<imprint>
			<biblScope unit="volume">52</biblScope>
			<biblScope unit="page" from="1815" to="1843" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">Brannene</forename><surname>Dsb</surname></persName>
		</author>
		<title level="m">Flatanger og på Frøya Vinteren 2014 (The fires at Laerdal, Flatanger and Frøya</title>
				<meeting><address><addrLine>winter</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2014">2014. 2014</date>
		</imprint>
		<respStmt>
			<orgName>Norwegian Directorate for Civil Protection</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report</note>
	<note>In Norwegian</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Major burn injuries associated with christmas celebrations: a 41-year experience from switzerland</title>
		<author>
			<persName><forename type="first">S</forename><surname>Rohrer-Mirtschink</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Forster</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Giovanoli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Guggenheim</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Annals of burns and fire disasters</title>
		<imprint>
			<biblScope unit="volume">28</biblScope>
			<biblScope unit="page" from="71" to="75" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Frequency of Urban Building Fires as Related to Daily Weather Conditions</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">R</forename><surname>Pirsko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">L</forename><surname>Fons</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1956">1956</date>
			<publisher>US Dep. of Agriculture</publisher>
			<biblScope unit="volume">866</biblScope>
		</imprint>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Indoor relative humidity as a fire risk indicator</title>
		<author>
			<persName><forename type="first">T</forename><surname>Log</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.buildenv.2016.11.002</idno>
		<idno>doi:</idno>
		<ptr target="https://doi.org/10.1016/j.buildenv.2016.11.002" />
	</analytic>
	<monogr>
		<title level="j">Building and Environment</title>
		<imprint>
			<biblScope unit="volume">111</biblScope>
			<biblScope unit="page" from="238" to="248" />
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Modeling indoor relative humidity and wood moisture content as a proxy for wooden home fire risk</title>
		<author>
			<persName><forename type="first">T</forename><surname>Log</surname></persName>
		</author>
		<idno type="DOI">10.3390/s19225050</idno>
	</analytic>
	<monogr>
		<title level="j">Sensors</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Burning rate and time to flashover in wooden 1/4 scale compartments as a function of fuel moisture content</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kraaijeveld</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Gunnarshaug</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Schei</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Log</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 14th Int. Fire Science and Eng. Conf, Interflam</title>
				<meeting>the 14th Int. Fire Science and Eng. Conf, Interflam<address><addrLine>Windsor, UK</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016-07">July, 2016</date>
			<biblScope unit="page" from="4" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Cold Climate Structural Fire Danger Rating System?</title>
		<author>
			<persName><forename type="first">M</forename><surname>Metallinou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Log</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Challenges</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page">12</biblScope>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<ptr target="https://frost.met.no/index.html" />
		<title level="m">Frost api</title>
				<imprint>
			<date type="published" when="2022-03-27">2022. 27.03.2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<ptr target="https://api.met.no/" />
		<title level="m">Met norway weather api</title>
				<imprint>
			<date type="published" when="2022-03-27">2022. 27.03.2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<ptr target="https://www.hvl.no/en/project/2495578/" />
		<title level="m">Reducing fire disaster risk through dynamic risk assessment and management (dynamic</title>
				<imprint>
			<date type="published" when="2022-03-27">2022. 27.03.2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Fire risk prediction using cloud-based weather data services</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">D</forename><surname>Strand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Stokkenes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Kristensen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Log</surname></persName>
		</author>
		<idno type="DOI">10.5383/JUSPN.16.01.005</idno>
	</analytic>
	<monogr>
		<title level="j">Journal of Ubiquitous Systems &amp; Pervasive Networks</title>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title/>
		<author>
			<persName><surname>Heroku</surname></persName>
		</author>
		<ptr target="https://devcenter.heroku.com/articles/heroku-cli" />
		<imprint>
			<date type="published" when="2022-03-28">2022. 28.03.2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<ptr target="https://spring.io/projects/spring-boot" />
		<title level="m">Spring boot framework</title>
				<imprint>
			<date type="published" when="2022-03-28">2022. 28.03.2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">A formal framework for specifying and verifying microservices based process flows</title>
		<author>
			<persName><forename type="first">M</forename><surname>Camilli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bellettini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Capra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Monga</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-319-74781-1_14</idno>
		<idno>doi:</idno>
		<ptr target="10.1007/978-3-319-74781-1\_14" />
	</analytic>
	<monogr>
		<title level="m">Software Engineering and Formal Methods -SEFM 2017 Collocated Workshops: DataMod, FAACS, MSE, CoSim-CPS, and FOCLASA</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="volume">10729</biblScope>
			<biblScope unit="page" from="187" to="202" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">A high-level petri net-based formal model of distributed self-adaptive systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Camilli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bellettini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Capra</surname></persName>
		</author>
		<idno type="DOI">10.1145/3241403.3241445</idno>
		<idno>doi:10.1145/3241403.3241445</idno>
		<ptr target="https://doi.org/10.1145/3241403.3241445" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 12th European Conference on Software Architecture: Companion Proceedings, ECSA, ACM</title>
				<meeting>the 12th European Conference on Software Architecture: Companion Proceedings, ECSA, ACM</meeting>
		<imprint>
			<date type="published" when="2018">2018</date>
			<biblScope unit="volume">40</biblScope>
			<biblScope unit="page">7</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Petri net sagas</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">H</forename><surname>Röwekamp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Buchholz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Moldt</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/Vol-2907/paper4.pdf" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Workshop on Petri Nets and Software Engineering 2021 co-located with the 42nd International Conference on Application and Theory of Petri Nets and Concurrency (PETRI NETS</title>
		<title level="s">CEUR Workshop Proceedings</title>
		<meeting>the International Workshop on Petri Nets and Software Engineering 2021 co-located with the 42nd International Conference on Application and Theory of Petri Nets and Concurrency (PETRI NETS</meeting>
		<imprint>
			<date type="published" when="2021">2907. 2021</date>
			<biblScope unit="page" from="65" to="84" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Method of constructing petri net service model using distributed trace data of microservices</title>
		<author>
			<persName><forename type="first">M</forename><surname>Sakai</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Takahashi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kondoh</surname></persName>
		</author>
		<idno type="DOI">10.23919/APNOMS52696.2021.9562589</idno>
		<ptr target="https://doi.org/10.23919/APNOMS52696.2021.9562589.doi:10.23919/APNOMS52696.2021.9562589" />
	</analytic>
	<monogr>
		<title level="m">22nd Asia-Pacific Network Operations and Management Symposium, APNOMS, IEEE</title>
				<imprint>
			<date type="published" when="2021">2021</date>
			<biblScope unit="page" from="214" to="217" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Using colored petri nets for verifying restful service composition</title>
		<author>
			<persName><forename type="first">L</forename><surname>Kallab</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Mrissa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Chbeir</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Bourreau</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-319-69462-7_32</idno>
		<idno>doi:</idno>
		<ptr target="10.1007/978-3-319-69462-7\_32" />
	</analytic>
	<monogr>
		<title level="m">OTM 2017 Conferences -Confederated International Conferences: CoopIS, C&amp;TC, and ODBASE</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="volume">10573</biblScope>
			<biblScope unit="page" from="505" to="523" />
		</imprint>
	</monogr>
	<note>On the Move to Meaningful Internet Systems</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Verification of cloud based information integration architecture using colored petri nets</title>
		<author>
			<persName><forename type="first">M</forename><surname>Narayanan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">K</forename><surname>Cherukuri</surname></persName>
		</author>
		<idno type="DOI">10.5815/ijcnis</idno>
	</analytic>
	<monogr>
		<title level="j">International journal of computer network and information security</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="page" from="1" to="11" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Practical use of coloured petri nets for the design and performance assessment of distributed automation architectures</title>
		<author>
			<persName><forename type="first">M</forename><surname>Ndiaye</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J.-F</forename><surname>Pétin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J.-P</forename><surname>Georges</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Camerini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Workshop on Petri Nets and Software Engineering 2016</title>
				<editor>
			<persName><forename type="first">L</forename><surname>Cabac</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Kristensen</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Rölke</surname></persName>
		</editor>
		<meeting>the International Workshop on Petri Nets and Software Engineering 2016</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="113" to="131" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<title level="m" type="main">Development and evaluation of a software system for fire risk prediction</title>
		<author>
			<persName><forename type="first">A</forename><surname>Evjenth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Halderaker</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
		<respStmt>
			<orgName>Western Norway University of Applied Sciences</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Master&apos;s thesis</note>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Model checking coloured petri nets -exploiting strongly connected components</title>
		<author>
			<persName><forename type="first">A</forename><surname>Cheng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Christensen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">H</forename><surname>Mortensen</surname></persName>
		</author>
		<idno type="DOI">10.7146/dpb.v26i519.7048</idno>
		<ptr target="https://tidsskrift.dk/daimipb/article/view/7048.doi:10.7146/dpb.v26i519.7048" />
	</analytic>
	<monogr>
		<title level="j">DAIMI Report Series</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<author>
			<persName><forename type="first">S</forename><surname>Christensen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">H</forename><surname>Mortensen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Design/CPN ASK-CTL Manual</title>
				<imprint>
			<date type="published" when="1996">1996</date>
			<biblScope unit="volume">0</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Formal modelling and incremental verification of the mqtt iot protocol</title>
		<author>
			<persName><forename type="first">A</forename><surname>Rodríguez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Kristensen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rutle</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Trans. Petri Nets Other Model. Concurr</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="page" from="126" to="145" />
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">MBT/CPN: A tool for model-based software testing of distributed systems protocols using coloured petri nets</title>
		<author>
			<persName><forename type="first">R</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Kristensen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Stolz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Verification and Evaluation of Computer and Communication Systems -12th International Conference</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>VECoS</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2018">2018. 2018</date>
			<biblScope unit="volume">11181</biblScope>
			<biblScope unit="page" from="97" to="113" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
