<!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>Authors listed in alphabetical order by surname
" rh@hvl.no (R. Heldal); lmkr@hvl.no (L. M. Kristensen); keli@hvl.no (K. Lima); tdoy@hvl.no (T. Oyetoyan);
ntng@hvl.no (N. T. Nguyen)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Towards a Formal and Executable Software Architecture Specification of the Smart Ocean Data Service Platform</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>R. Heldal</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>L. M. Kristensen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>K. Lima</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>T. Oyetoyan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N. T. Nguyen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, Electrical Engineering and Mathematical Sciences, Western Norway University of Applied Sciences</institution>
          ,
          <addr-line>Bergen</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>PNSE'23: Workshop on Petri Nets and Software Engineering</institution>
          ,
          <addr-line>June, 2023, Lisboa</addr-line>
          ,
          <country country="PT">Portugal</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>We present the Coloured Petri Nets (CPNs) modelling of the SmartOcean platform currently under development and aimed at providing cloud-based services for data-driven software systems and applications relying on marine data. The CPN model captures the systems-of-system architecture and the platform services, and is intended to evolve as a formal foundation along-side the implementation of the platform and its services. The CPN model encompass data-, messaging-, security-, and edge integration services with a focus on providing an abstract modelling of the service and system interaction. As part of the modelling work, we provide some general CPN patterns for system-of-systems modelling and service provision, consumption, and interaction.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Coloured Petri Nets</kwd>
        <kwd>Smart Software Systems</kwd>
        <kwd>Software Architecture</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Smart systems driven by the Internet-of-things (IoT), sensor- and actuator technology, and data
analytics are becoming pervasive across all domains including energy, transportation, buildings,
and homes [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Typical aims of smart systems are improved management, monitoring, situation
awareness and decision support, and eficient- and cost-efective operation aimed at providing
competitive services. An emerging domain for smart systems is the ocean space which is critical
to climate and eco-systems, food- and energy production, and transportation. A recent analysis
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] shows that the ocean industries have the potential to double their economic growth in the
next ten years. To realise this potential, there is a need to develop enabling technology for
fact-based ocean management through ocean monitoring, sensor systems, and data services
with a view towards supporting sustainable industrial operation and ocean research.
      </p>
      <p>
        Obtaining marine- and ocean data of suficient quality for use in smart systems represents
significant challenges due to the enormous geographical areas, the hostility of the ocean
environment, accessibility for deployment and service of equipment, severe limitations in
communication capabilities and availability of power. While ocean- and marine data services
are now emerging, there is a huge gap in data coverage and there are currently substantial
technology challenges related to interoperability, data- and meta-data standards, and APIs [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        SFI Smart Ocean [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a centre for research-based innovation funded by the Norwegian
Research Council involving research and industry partners focussing on key challenges in
developing smart ocean systems. The three main focus areas of the centre are: underwater
sensor and measurement technology; underwater wireless sensor networks based on acoustic
communication; and the Smart Ocean Platform for cloud-based data- and application services.
Figure 1 sketches the system for which enabling technology is to be developed by the consortium
partners in the course of the life-time of the centre. The system consists of an information
acquisition layer comprised of an underwater wireless sensor network based on acoustic
communication. The information delivery layer is comprised of sensor network communication
gateways for transporting data from sub-sea to top-side and into the cloud-based data and
application service layer. Control information may also flow from the cloud-services to the
nodes in the sensor network.
      </p>
      <p>
        The focus of this paper is on the Smart Ocean platform which constitute the data and
application service layer. The platform is envisioned as an integration platform for the systems
that constitute the Smart Ocean digital ecosystem, and will be based on software components,
APIs, cloud platform services and containers for developing and deploying applications and
services. As a first step towards development of the platform, we have undertaken an extensive
study based on stakeholder- and focus-group interviews with the aim of identifying requirements
and challenges pertinent to the development of the platform. The results from the study were
published in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and resulted in a first sketch of the platform and its constituent systems and
internal services. The platform is a complex distributed system which has motivated us to
apply Coloured Petri Nets (CPNs) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] modelling as a means to obtain a formal executable model
DataProviders
DataProviders
DataConsumers
DataConsumers
      </p>
      <p>DP
DP_MSG</p>
      <p>DS
DC_MSG</p>
      <p>SmartOcean
Platform
SOPlatform</p>
      <p>EDS
EDS_MSG</p>
      <p>GW
GW_MSG</p>
      <p>External</p>
      <p>DataServices
ExternalDataServices</p>
      <p>Underwater</p>
      <p>WSNs
UWSNs
that can serve as an evolving sound foundation during our research and development work
on implementation of the platform. CPNs are suitable for this purpose as: 1) the hierarchical
organisation into modules allows us to capture the system architecture at diferent levels of
abstraction; and 2) the executability of the models allows us to capture the behavioral aspects
related to the interactions between its constituent subsystems and services. The contribution
of this paper is to present the constructed CPN model focussing on system architecture and
service interaction, and how it constitutes an abstract conceptualisation of the platform.</p>
      <p>The rest of this paper is organised as follows. Section 2 presents the CPN model of the system
architecture and the platform services while Section 3 presents the modelling of the data services
which are at the core of the platform. The modelling of data providers and consumers are
presented in Section 4. Section 5 concentrates on the modelling of the (external) data consumers
and providers. Sections 6 and 7 present the edge integration service and the security services,
respectively. Finally, in Section 8 we sum up the conclusions and present direction for future
work. The reader is assumed to be familiar with the basic concept of high-level Petri nets and
the CPN modelling language.</p>
    </sec>
    <sec id="sec-2">
      <title>2. System Architecture and Platform Services</title>
      <p>1`(DataService,DP_DATA(DP(2)))++
1`(MessageService,DP_PUB(Topic(1))
)
2
In DP</p>
      <p>DP_MSG
Out DC 1</p>
      <p>DC_MSG
1`(MessageService,DC_SUB((Topic(3)
,DC(2))))</p>
      <p>DataService</p>
      <p>Data
Service
1`(SecurityService,SS_REQ([SS_AUTH
EN_REQ]))</p>
      <p>EIS
1
SS</p>
      <p>SS_MSG
Security</p>
      <p>Service
SecurityService</p>
      <p>EIS_MSG</p>
      <p>EdgeIntegrationService</p>
      <p>Edge
Integration
Service
1`(DataService,EDS_DATA)
1
EDS In</p>
      <p>EDS_MSG
1`WSN_DATA(SENSOR(2))++
1`WSN_DATA(SENSOR(3))
2
GW In/Out</p>
      <p>
        GW_MSG
Kognifai [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and NORCE Enlighten [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Systems and applications (e.g., external data filtering
and data fusion application) may simultaneously take the role as both consumer and producer.
      </p>
      <p>Figure 3 shows the submodule of the SmartOceanPlatform substitution transition in Figure 2.
The port places in Figure 3 are associated with the accordingly named socket places in Figure 2.
The security service is an internal service providing authentication and authorisation services
to the data- and edge integration service as represented by the SS (security services) place. The
edge integration services (EISs) constitute the service for interaction with the UWSNs via the
GW (gateway) place, and is able to provide data to the data service as modelled by the EIS place.
The edge integration service (EIS) is a distinct service of the platform and provides data and
control integration with underwater sensor networks to support edge computing on smart
sensors and sensor communication hubs. The need for edge computing and smart sensors is
grounded in the use of acoustic communication where low communication bandwidth induces
the need for local processing and fine-grained control on the sensor data being communicated.
The data service has interaction points with the external data systems (EDSs) (place EDS) and
the smart ocean data providers (place DP), and the data consumers (place DC).</p>
      <p>The port places in Figures 2 and 3 all represent points of service interaction in the platform,
and tokens present on these places are then representing request and response messages sent
to and from the services. The colour sets used in the places representing points of service
interaction is given in Figure 4. A central aim of our modelling approach has been to develop
a CPN model which in a compact manner can represent the subsystems and the services
constituting the platform, and which is parameterised wrt. to the number of data producers,
data consumers, and sensors. The Component colour set is an enumeration colour set with a
value for each of the kinds of subsystems on the platform. This colour set is used as the first
component in all the _MSG product colour sets of the port places in Figures 2 and 3. The first
colset Component = with DataService | SecurityService | MessageService
| DataConsumer | DataProvider | ExternalDataService;
(* --- data producers --- *)
colset ID_DP = int with 1..DP_N;
colset DP = union DP : ID_DP;
colset DP_Message = union DP_DATA : DP + DP_PUB : TOPIC;
colset DP_MSG = product Component * DP_Message;
(* --- data consumers --- *)
colset ID_DC = int with 1..DC_N;
colset DC = union DC: ID_DC;
colset DC_Message = union DC_DATA : DC + DS_DATA_REQ : DC +</p>
      <p>DC_SUB : TopicxDC + DC_UNSUB : TopicxDC;
colset DC_MSG = product Component * DC_Message;
(* --- external data services --- *)
colset EDS_Message = union EDS_DATA + EDS_DATAREQ : DC + EDS_DATARESP : DC;
colset EDS_MSG = product Component * EDS_Message;
colset GW_MSG = union WSN_DATA : Sensor
(* --- edge integration service and gateway --- *)
colset ID_SENSOR = int with 1.. SN_N;
colset Sensor = union SENSOR : ID_SENSOR;
(* --- edge integration service --- *)
colset EIS_Message = union EIS_DATA : Sensor + EIS_PUB : TOPIC;
colset EIS_MSG = product Component * EIS_Message;
(* --- security service --- *)
colset SS_REQUEST = with SS_AUTHEN_REQ | SS_AUTHOR_REQ ;
colset SS_REQUESTS = list SS_REQUEST;
colset SS_Message = union SS_REQ : SS_REQUESTS + SS_Response;
colset SS_MSG = product Component * SS_Message;
component of a token of these colour sets is used to model where the corresponding message is
situated. The general modelling pattern applied here is that colour sets ending in _Message
are used to model the messages that can be interchanged with the service in question, and this
colour set is then used in the _MSG colour set where the component part is added.</p>
      <p>The marking shown in Figure 3 corresponds to a state in which there are two messages sent
from the data providers to the data service providing data to the data service and publication of
data on topic 2 in the messaging service. A data consumer has sent a request to subscribe to
topic 3 in the messaging service. In addition, the external data service is providing data, and
there are two data messages coming to the edge integration service from sensors 2 and 3. A
request message has also been sent to the security service for authentication.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Data Services</title>
      <p>
        Data services are services that performs computation on data ingested on the platform. Its
subcomponents (e.g. microservices), can have diferent functional requirements such as cleaning,
validation, or curation of data. Such sub-components can be found in typical big data processing
architectures as the one proposed by NIST [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and are placed in between data acquisition
and ingestion and the end user application of data (data consumers systems and applications).
In terms of operations, these services can perform transformations on data or retain data
preventing further propagation on the pipeline.
      </p>
      <p>The platform provides two fundamental data services as shown in Figure 5 where the port
places are linked to the accordingly named socket places in Figure 3. The DataSpaceService
substitution transition represents a service for data intended for long-term storage which can then
be provided to consumers that have a need for accessing historical data. The MessagingService
is a data service for real-time provision of data streams. It should be noted that in the present
version of the platform, data from external systems is only provided via the data space service.
We present modelling of the two data services in further detail in the following subsections.</p>
      <p>DP In</p>
      <p>DP_MSG</p>
      <p>DC Out</p>
      <p>DC_MSG</p>
      <p>SS In/Out</p>
      <p>SS_MSG</p>
      <p>EIS In</p>
      <p>EIS_MSG</p>
      <p>EDS In</p>
      <p>EDS_MSG
DataSpaceService</p>
      <p>Data Space
Service
Messaging</p>
      <p>Service
MessagingService</p>
      <sec id="sec-3-1">
        <title>3.1. Data Space Service</title>
        <p>ProcessProviderData is a service concerned with processing of incoming data from a data
provider.</p>
        <p>EDSProcessData is a service concerned with processing of incoming data from an external
data service.</p>
        <p>ConsumerProcessRequest is a service handling data requests from data consumers. This
substitution transition is connected to the EDS place as handling a data request may
involve fetching the data from an external data service for which the data space service is
acting as a proxy.</p>
        <p>EIDProcessData is a service handling data coming via the edge integration service. This
service is not connected to the SS as the authentication and authorisation related to the
edge integration service is handled within the edge integration service.</p>
        <p>We do not go into detail with the modelling of all four subservices of the data space service,
but consider only the most complex one which is the ConsumerProcessRequest module in
Figure 7.
In EIS</p>
        <p>EIS_MSG
(DDaS[t_aaDuSteAhrTevAico_erRe,ElsQe(dacu)t)hr]AuthSReenqdues(SStSe(_cDuRDraESittQ_ayD(SSSeAeSrrTvv_AiiRcc_eeeR,q,EuQe(sdt(ca))uthe,aWuAatSuhitStrih)n)g)InD/CO(DD_uSMat_tSaDGSAeTrAvi_cRe,EQ(dc)) AutRheRcees(ipSvSoeeSnc_sueRrietyspSoenrvsiec)e,</p>
        <p>SS_MSG
In/Out DC
(ExternalDataService,</p>
        <p>EDS_DATAREQ(dc))
EDS In/Out</p>
        <p>EDS_MSG
(ExternalDataService,
EDS_DATARESP(dc))</p>
        <p>The processing of a data consumer request will first proceed with authentication and/or
authorisation as modelled by the SendAuthRequest and ReceiveAuthResponse transition which
invokes the security service via the SS place in order to perform this part of the operation. If
the data space service stores the data itself, the request will be handled directly and a response
sent back as modelled by the SendDataResponse transition. If the data request is to be handled
via an external data service, then the request will be forwarded by the data space service as
modelled by the EDSDataRequest transition. In that case, the data space service will be Waiting
for a response from the external data service before a response to the request is being sent back
to the consumer as modelled by the EDSDataResponse transition. The marking shows a state
in which a request is being processed from data consumer 1 and there is now a choice as to
whether this request will be handled internally by directly sending a data response or whether
it will be handled by sending a request to the external data services.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Messaging Service</title>
        <p>DP</p>
        <p>IDnP_MSG
Out DC
subs
EIS In</p>
        <p>EIS_MSG
EIS
Publish
(MessageService,</p>
        <p>EIS_PUB(topic))</p>
        <p>InitSubscriptions()
Subscriptions 1 ]1)`,([(TTooppicic((31),)[,][)D,C(T(o1p),iDc(C4()2,[)]]))],(Topic(2),[</p>
        <p>Subscriptions
(MessageService, DC_UNSUB(topic,dc))</p>
        <p>Process subs</p>
        <p>Unsubscribe Unsubscribe (subs,topic,dc)
unsubscribe to topics and efectively consists of removing the subscribing data consumer from
the list of subscribers on the topic. The processing of a subscribe request is more complex and
it requires interaction with the security service in order to check, for instance, that the data
consumer are authorized to subscribe the topic and in that way received data published on the
topic. This is modelled by the ProcessPublish module shown in Figure 9 which is the submodule
of the ProcessSubscribe substitution transition in Figure 8.</p>
        <p>It is important to note that the messaging system provides a highly flexible scheme and can
be used to implement many diferent data processing pipelines. As example, subscribers may
process and transform the data and republish it again (possibly on other topics) or a subscriber
may store the data in the data space service by acting both as a data consumer and data provider.
colset ID_TOPIC = int with 1..TOPIC_N;
colset TOPIC = union Topic : ID_TOPIC;
colset TopicxDCs = product TOPIC * DCs;
colset Subscriptions = list TopicxDCs;
colset TopicxDC = product TOPIC * DC;
fun InitSubscriptions () = List.map (fn t =&gt; (t,[])) (TOPIC.all());
fun Subscribe (subs, topic, dc) =</p>
        <p>List.map
(fn (t,subscriptions) =&gt;
if (t = topic) andalso not (List.exists (fn dc’ =&gt; dc = dc’) subscriptions)
then (t,dc::subscriptions)
else (t,subscriptions))
val consumers =
case (List.find (fn (t,_) =&gt; t = topic)) subs of</p>
        <p>NONE =&gt; []
| SOME (_,subscribers) =&gt;</p>
        <p>List.map (fn dc =&gt; (DataConsumer,DC_DATA(dc))) subscribers
fun Publish (subs, topic) =
let
subs
subs
in
end;</p>
        <p>consumers
fun Unsubscribe (subs, topic, dc) =</p>
        <p>List.map
(fn (t,subscriptions) =&gt;
if (t = topic)
then (t,List.filter (fn dc’ =&gt; dc &lt;&gt; dc’) subscriptions)
else (t,subscriptions))</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Data Consumers and Providers</title>
      <p>Consumers</p>
      <p>DC.all() dc
DC
Data
Providers
dc
dc</p>
      <p>dp
DP.all()
DP
dp</p>
      <p>Receive</p>
      <p>Data
Subscribe
Unsubscribe</p>
      <p>When it comes to the data consumers then they may receive data as modelled by the
ReceiveData transitions either via the data space service or the messaging service. In addition, the data
consumers may subscribe and unsubscribe to topics in the messaging service as modelled by
the Subscribe and Ubsubscribe transitions, respectively.</p>
    </sec>
    <sec id="sec-5">
      <title>5. External Data Service</title>
      <p>For the platform to serve as an integration point for applications and composite data services,
there is a need to also provide access to external data services and possibly fetch data from
external data services. Figure 13 shows the modelling of the external data services and is
the submodule of the ExternalDataServices substitution transition in Figure 2. The transition
EDSProvideData models that external data services may provide data into the platform, by the
platform acting as a client towards the external data service. At the current abstraction level of
modelling, we do not model how the data may be provided. As discussed in the modelling of
the data space service, the platform may also act as a proxy for access to external data services
and the EDSDataRequest models the processing of a data request from the data space service
and the sending back of a data response. The marking shows a state in which there is a data
message having been sent to the data service.
Provide
Data
(DataService, EDS_DATA)</p>
      <p>(ExternalDataService, EDS_DATAREQ(dc))
Out</p>
      <p>EDS 1 1`(DataService,EDS_DATA)</p>
      <p>EDS_MSG</p>
      <p>Process</p>
      <p>DataRequest
(DataService, EDS_DATARESP(dc))</p>
    </sec>
    <sec id="sec-6">
      <title>6. Edge Integration Service and UWSNs</title>
      <p>The primary purpose of the edge integration service is to support the delivery of data from the
underwater wireless sensor networks (UWSNs) into the data services of the platform. Hence, it
facilitates the transfer of data from the information acquisition layer into the data and application
service layer (see Figure 1). The integration point is needed since the UWSNs operate with
highly specialised communication protocols intended for acoustic communication and the data
will have be provided to a gateway service via, e.g., 5G, WiFI, cabling or satellite communication.
Figure 14 shows the modelling of the edge integration service and is a submodule of the Edge
Integration Service substitution transition in Figure 3 while Figure 15 shows the modelling of the
underwater wireless sensor network and is the submodule of the UnderwaterWSN substitution
transition in Figure 14. The substitution transitions EISProvideData and EISPublishData model
that data from the sensor may be sent to the data service and/or published on the messaging
service. The marking shows a state in which a data message from sensor 3 has arrived via
the gateway and one data message from sensor 2 is in the process of being published. The
ProvideData transition in Figure 15 abstractly models that the underwater wireless sensor
EISProvideData</p>
      <p>ProvEidIeSData
network will send data to the gateway (represented by the GW) port place for delivery into the
platform by the edge integration service.</p>
    </sec>
    <sec id="sec-7">
      <title>7. Security Service</title>
      <p>SS
In SS_MSG
(SecurityService, SS_REQ ss_requests)
(SecurityService, SS_Response)
Receive
Requests
ss_requests
Idle</p>
      <p>1
Processing 1 1`()
SS_AUTHOR_REQ</p>
      <p>SS_AUTHEN_REQ
Requests
2 11``SSSS__AAUUTTHHEONR__RREEQQ++
SS_REQUEST</p>
      <p>Process
Authorizaiton</p>
      <p>Process
Authentication</p>
      <p>Completed</p>
    </sec>
    <sec id="sec-8">
      <title>8. Conclusion and Future Work</title>
      <p>
        Marine data presents a range of challenges, including diverse formats, inconsistent quality
control methods, and varied potential uses. In a previous study, we identified that marine data
can be represented in diferent formats, and data producers are the ones who decide which
format to use, making data interoperability a significant challenge [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Additionally, there is
currently no universally accepted standard for conducting data quality control in the marine
data community [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. This lack of standardisation is compounded by the fact that data quality
assessment in the marine field typically requires specialised domain knowledge [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], making
automated quality control dificult. The quality of marine data remains imperfect and diverse in
quality. Given these challenges, a data-centric infrastructure to integrate multiple sources of
marine data from diferent producers may not be feasible [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Instead, we propose a platform
that acts as an intermediary, consuming and providing respective data to the relevant parties.
      </p>
      <p>We have presented our initial CPN model of the smart ocean data and application platform
based upon our recent work in identifying challenges and requirements for marine data services.
The present model focussed on service interaction, and as a consequence we have chosen a
high-level of abstraction in the modelling as our main purpose has been to make explicit the
services that constitute the platform and the systems that can interact with the services. The
CPN model presented in this paper is based upon a series of workshops involving consortium
stakeholders from both industry and research. The aim of these workshop has been to define
the components that constitute the platform and these have now been specified in the form
of a CPN model. Our long-term goal is to use the CPN modelling as a conceptualisation and
implementation independent specification of the platform.</p>
      <p>
        The modelling approach presented in this paper has many similarities with the CPN modelling
of a fire risk notification system presented in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] which was also concerned with software
architecture and services. In particular, we use the same modelling pattern for identifying
components and for creating a parameterized CPN model. On other hand, the modelling
presented [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] has a detailed modelling of the service endpoints in the form of REST APIs,
whereas we model the service interaction at a higher level of abstraction considering messages.
In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], the authors are also concerned with detailed service endpoint modelling, but do not
consider the software architectural aspects. The work in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] concerns a cloud-based information
integration architecture, but emphasis in the modelling is not concerned with communication
and data exchange between the layers in the architecture.
      </p>
      <p>
        We are currently prototyping the platform component and as of now we have initial
implementations of the messaging service based on the MQTT protocol and the data space service
based on REST APIs. The implementation of the data space service has also involved the
application of external data services. In terms of data providers, we have data source originating
from a test-site involving an underwater cabled sensor network and an underwater acoustic
sensor network. As we are moving forward with the implementation of the services of the
platform, we intend to evolve the CPN model alongside the implementation work based upon
the iterative methodology that was proposed [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In this way, we will be able to obtain a
feedback cycle between the CPN model and the platform implementation. This is important in
order to integrate the CPN modelling into the development work in an agile manner.
      </p>
      <p>As part of our ongoing work with implementation of the platform, we have also introduced a
monitoring service aimed at providing key performance indicators in real-time on the platform
itself. The key performance indicators include measures such as time delays data delivery, data
format validation, and status of the services. Once the concept of the monitoring service is
better understud, this will be added as a service to the CPN model. The current CPN model is
primarily aimed at reflecting the platform architecture and using simulation to visualise the
service interaction. As the implementation of the platform progresses, we anticipate to increase
the level of detail in the modelling which may in turn allow for validation and verification of
behavioral properties using model checking. This in particular applies to the data space service
which is currently being further developed to include data source discovery and meta-data
support which in turn in results in more complex data service interactions.</p>
    </sec>
    <sec id="sec-9">
      <title>Acknowledgments References</title>
      <p>The work presented in this paper was supported by SFI Smart Ocean NFR Project 309612/F40.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Raggett</surname>
          </string-name>
          ,
          <article-title>The web of things: Challenges and opportunities</article-title>
          ,
          <source>Computer</source>
          <volume>48</volume>
          (
          <year>2015</year>
          )
          <fpage>26</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] The ocean economy in 2030</article-title>
          , OECD Publishing,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>K.</given-names>
            <surname>Lima</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Heldal</surname>
          </string-name>
          , E. Knauss,
          <string-name>
            <given-names>T. D.</given-names>
            <surname>Oyetoyan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pelliccione</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Kristensen</surname>
          </string-name>
          ,
          <article-title>Marine data sharing: Challenges, technology drivers and quality attributes</article-title>
          ,
          <source>in: ProductFocused Software Process Improvement - 23rd International Conference, PROFES</source>
          <year>2022</year>
          , volume
          <volume>13709</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2022</year>
          , pp.
          <fpage>124</fpage>
          -
          <lpage>140</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>031</fpage>
          -21388-
          <issue>5</issue>
          _9. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          -21388-5\_9.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>SFI</given-names>
            <surname>Smart Ocean</surname>
          </string-name>
          , https://sfismartocean.no/,
          <year>2020</year>
          . Accessed:
          <fpage>2023</fpage>
          -30-03.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>K.</given-names>
            <surname>Jensen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Kristensen</surname>
          </string-name>
          ,
          <source>Coloured Petri Nets - Modelling and Validation of Concurrent Systems</source>
          , Springer,
          <year>2009</year>
          . URL: https://doi.org/10.1007/b95112. doi:
          <volume>10</volume>
          .1007/b95112.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6] AquaCloud, https://aquacloud.ai/,
          <year>2023</year>
          . Accessed:
          <fpage>2023</fpage>
          -30-03.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Havvarsel</surname>
          </string-name>
          , https://havvarsel.no/,
          <year>2023</year>
          . Accessed:
          <fpage>2023</fpage>
          -30-03.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8] BarentsWatch, https://www.barentswatch.no/
          <issue>en</issue>
          ,
          <year>2023</year>
          . Accessed:
          <fpage>2023</fpage>
          -30-03.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Kognifai</given-names>
            <surname>Platform</surname>
          </string-name>
          , https://kognifai.com/,
          <year>2023</year>
          . Accessed:
          <fpage>2023</fpage>
          -30-03.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Norwegian</given-names>
            <surname>Marine Data Centre</surname>
          </string-name>
          , https://www.nmdc.no/
          <issue>nmdc</issue>
          ,
          <year>2023</year>
          . Accessed:
          <fpage>2023</fpage>
          -30-03.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Enlighten</surname>
            <given-names>Web</given-names>
          </string-name>
          , https://www.norceresearch.no/forskningstema/enlighten-web,
          <year>2023</year>
          . Accessed:
          <fpage>2023</fpage>
          -30-03.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>W. L.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>von Laszewski, NIST big data interoperability framework: volume 8, reference architecture interfaces (</article-title>
          <year>2019</year>
          ). doi:https://doi.org/10.6028/NIST.SP. 1500-
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dong</surname>
          </string-name>
          , L. Cheng,
          <article-title>Quality control for ocean observations: From present to future</article-title>
          ,
          <source>Science China Earth Sciences</source>
          (
          <year>2022</year>
          )
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Mieruch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Demirel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Simoncelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Schlitzer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Seitz</surname>
          </string-name>
          ,
          <article-title>Salaciaml: A deep learning approach for supporting ocean data quality control</article-title>
          ,
          <source>Frontiers in Marine Science</source>
          <volume>8</volume>
          , (
          <year>2021</year>
          )
          <fpage>611742</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Qiu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <article-title>Big data challenges in ocean observation: a survey</article-title>
          ,
          <source>Personal and Ubiquitous Computing</source>
          <volume>21</volume>
          (
          <year>2017</year>
          )
          <fpage>55</fpage>
          -
          <lpage>65</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R. D.</given-names>
            <surname>Strand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Kristensen</surname>
          </string-name>
          , L. Petrucci,
          <article-title>Formal specification and validation of a datadriven software system for fire risk prediction</article-title>
          ,
          <source>in: Petri Nets and Software Engineering</source>
          <year>2022</year>
          co
          <article-title>-located with the 43rd International Conference on Application and Theory of Petri Nets and Concurrency (PETRI NETS</article-title>
          <year>2022</year>
          ), Bergen, Norway, June 20th,
          <year>2022</year>
          , volume
          <volume>3170</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3170</volume>
          /paper1.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>L.</given-names>
            <surname>Kallab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mrissa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Chbeir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bourreau</surname>
          </string-name>
          ,
          <article-title>Using colored petri nets for verifying restful service composition, in: On the Move to Meaningful Internet Systems</article-title>
          .
          <source>OTM 2017</source>
          Conferences - Confederated International Conferences: CoopIS,
          <string-name>
            <given-names>C</given-names>
            &amp;TC,
            <surname>and</surname>
          </string-name>
          <string-name>
            <surname>ODBASE</surname>
          </string-name>
          , volume
          <volume>10573</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2017</year>
          , pp.
          <fpage>505</fpage>
          -
          <lpage>523</lpage>
          . URL: https: //doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -69462-7_
          <fpage>32</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -69462-7\_
          <fpage>32</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Narayanan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. K.</given-names>
            <surname>Cherukuri</surname>
          </string-name>
          ,
          <article-title>Verification of cloud based information integration architecture using colored petri nets</article-title>
          ,
          <source>International journal of computer network and information security 2</source>
          (
          <year>2018</year>
          )
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          . doi:
          <volume>10</volume>
          .5815/ijcnis.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>