<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Modeling Trading Systems using Petri Net Extensions?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Julio C. Carrasquel</string-name>
          <email>jcarrasquel@hse.ru</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Irina A. Lomazova</string-name>
          <email>ilomazova@hse.ru</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrey Rivkin</string-name>
          <email>rivkin@inf.unibz.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of Bozen-Bolzano</institution>
          ,
          <addr-line>Piazza Domenicani 3, 39100 Bolzano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>National Research University Higher School of Economics</institution>
          ,
          <addr-line>Myasnitskaya ul. 20, 101000 Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University Higher School of Economics. Copyright © 2020 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International</institution>
          ,
          <addr-line>CC BY 4.0</addr-line>
        </aff>
      </contrib-group>
      <fpage>118</fpage>
      <lpage>137</lpage>
      <abstract>
        <p>Trading systems have become sophisticated multi-agent infrastructures with complex development cycles. This is why the nancial industry constantly seeks for novel approaches to design and validate these systems. We propose the use of models to support such tasks. On the one hand, these models need to describe how objects (e.g., orders to buy/sell securities) are shared by the system and traders. On the other hand, being a dynamic multi-agent system, models of trading systems should have a clear structure, describing how participants interact between each other. In this paper, we address these requirements, integrating notions of various Petri net extensions. In particular, we discuss modeling capabilities/limitations of each extension, and we propose to integrate them into a single approach, allowing for comprehensive modeling of di erent trading system components.</p>
      </abstract>
      <kwd-group>
        <kwd>trading systems</kwd>
        <kwd>nancial technology</kwd>
        <kwd>formal models</kwd>
        <kwd>Petri nets</kwd>
        <kwd>multi-agent systems</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Trading systems are software platforms used in nancial markets to support the
exchange of nancial instruments between market participants.The kind of such
instruments depends on the market type that a trading system works with. For
instance, in commodity markets, participants trade primary goods ranging from
cocoa to gold and oil. In foreign exchange markets, people trade currencies. We
consider trading systems in stock exchanges, where participants submit orders
to buy/sell securities (e.g., company shares) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Participants trade for di erent
reasons. For example, investors buy securities with promising returns. Companies
sell their shares to gain capital for growth. Given these reasons, trading systems
have been positioned as a crucial element of the global economy.
      </p>
      <p>
        Today market environment has become more demanding. On the one hand,
there has been an increase of the number and the variety of participants, each of
which concurrently interacts with a platform according to some trading strategy.
On the other hand, in trading platforms, a plethora of market services and rules
a ecting, for example, order serving and trade execution policies, have to be
implemented. Thus, trading systems have turned into large and sophisticated
multi-agent infrastructures with complex development cycles, which are more
prone to various aws. Reducing or even eliminating the number of such aws
becomes a crucial task. However, within these systems, common alternatives to
analyze implementation aws such as active testing are sacri ced to minimize
latency and overhead, pushing software quality experts to search for clever and
less expensive/intrusive solutions [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Thus, the nancial technology industry
constantly seeks for novel approaches to design and validate trading systems.
In this regard, one of the recently proposed approaches suggests to analyze the
behavior of the platform and its participants using system logs [
        <xref ref-type="bibr" rid="ref15 ref9">15, 9</xref>
        ].
(re)design
phase
planning/control
formal specification
diagnosis/
requirements
trading system
formal models
trading system operating
in a stock exchange
system logs
validation phase
simulation
verification
conformance checking
implementation
execution
      </p>
      <p>In this work, we focus on developing a formalism to support the design and
validation phases of trading systems, as illustrated in Fig. 1. To fully support
these phases, models constructed with the devised formalism need to provide a
holistic view, capturing di erent aspects of trading systems in a convenient level
of abstraction. First, similar to business processes, trading system models need
to describe the control- ow of system entities, i.e., activities that participants
and a trading platform execute as well as their causal order. Second, as in
dataaware models, the formalism should allow to describe how objects of the domain
(e.g., orders, trades) can be consumed, produced and ultimately shared by the
system and processes representing routines executed by the system participants.
Finally, being a dynamic multi-agent system by nature, models of trading
systems should have a consistent representation, describing how participants (also
called agents) asynchronously interact with each other and with the trading
platform. Moreover, the number of objects and participants in a model should
be able to change dynamically without a ecting the model structure. A
formalism meeting all such requirements can lay the basis for further development of
comprehensive formal speci cations of trading systems, and it can be used for
running multi-perspective validation methods such as simulation, veri cation
and conformance checking.</p>
      <p>
        In this paper, we delineate key modeling requirements for trading systems,
integrating notions of di erent Petri net extensions. Petri nets are a well-known
formalism for modeling and analyzing concurrent distributed systems [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], that
provides a graphical notation for visualization and formal semantics allowing to
conduct model-based analysis. Moreover, Petri nets represent one of the
reference formalisms for conformance checking [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] { an approach allowing to assess
correctness of system behavior by comparing its model against concrete
executions extracted from system logs. Besides, several extensions of Petri nets have
been developed, answering the increasing demand to model di erent
perspectives of distributed systems. To address the modeling requirements of trading
systems, we consider the following extensions: (i) colored Petri nets [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], where
tokens carry data values of di erent domains, (ii) nested Petri nets [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], where
tokens can be Petri nets themselves, allowing to model multi-agent systems, and
(iii) db-nets [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], where non-adjacent net components can share data using a
database.
      </p>
      <p>As we show with several examples in this paper, none of these extensions can
solely provide a holistic view that could fully cover the modeling requirements
of trading systems. Thus, we discuss a possible extension that builds on top
of di erent Petri net classes, and we demonstrate how it can be used to
comprehensively model various trading system components. We point out that this
solution is not a mere combination of existing Petri net extensions. For example,
in contrast with db-nets, where queries are attached to places, we incorporate
the concept of reference tokens with attached queries. The latter allows to model
dynamic lists such as order books independently from the model structure.</p>
      <p>The remainder of this paper is structured as follows. In Section 2, we provide
an introduction to trading systems. In Section 3, we describe Petri net extensions
and we discuss modeling capabilities and limitations using examples of trading
system models. In Section 4, we informally present our integrated extension,
and we demonstrate how to use it for modeling di erent components of trading
systems. In Section 5, we present the related work. Finally, Section 6 provides
some conclusions and future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Trading Systems</title>
      <p>When referring to trading systems, we consider a trading platform and a group
of market participants. The former is a software infrastructure supporting the
automatic exchange of securities between participants. Fig. 2 depicts a
simplied view of the general architecture of trading systems. Communication between
participants and a trading platform is typically handled through di erent
network interfaces. For instance, a trading interface allows participants to log in
the platform and to send/receive trading-related messages. A market
information interface disseminates market information to users via a real-time protocol
(RTP) channel. A downstream interface exchanges data with external systems:
it sends reports to surveillance authorities, and it forwards executed trades to
settlement and clearing systems performing the actual exchange of money and
securities.
market participants</p>
      <p>trading platform
agent 1</p>
      <p>...
agent N</p>
      <p>trading
Interface (FIX)
session
component
market information
interface (RTP)
system
repository
downstream
interface
application
component
order books
management
matching engine
(trade execution)
...</p>
      <p>surveillance, settlement
and clearing
downstream
systems</p>
      <p>
        In this work, we focus on the services provided through the trading interface.
This interface is implemented according to a nance-oriented communication
standard. We consider as a reference the Financial Information Exchange (FIX)
protocol [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], implemented nowadays in most trading platforms. This protocol
is organized in two layers: a session and an application layer. At the session
layer, the connection between each participant and the platform is managed. On
the platform side, the management of user connections is handled by a session
component. At the application layer, after establishing a connection, agents send
trading-related messages to the platform. There can be a large set of
tradingrelated message types according to the services provided by application
components of a platform. We focus on the application component that manages
incoming participant orders to buy/sell securities. As an initial example, Fig.
3 depicts a common message exchange between two participants and a
trading platform. The agents initiate (terminate) the communication by exchanging
login(logout)-type messages with the session component. Once online, each
agent sends an order to trade a certain number of stocks of securities, and
receive trade noti cations in case of a trade.
Fig. 3: Message sequence chart describing a typical communication ow between
two market participants and components of a trading platform.
      </p>
      <p>In the following, we describe how trading platforms internally manage orders
and execute trades. Incoming orders of participants are received and processed
sequentially by the corresponding application component, and then they get
inserted into order books. Order books are lists where orders trading the same
security are placed to be matched. Hence, in a trading platform, there can be
an order book for each individual security that can be traded in that system.
Each order book has a buy side and a sell side, where buy and sell orders are
placed. Orders are placed in order books based on a precedence rule. In our
work, we consider the price-time precedence rule, typically employed in most
trading systems. This rule places rst buy orders (sell orders) whose prices are
the highest (lowest ) in the buy (sell) side; if two orders in the same side have
the same price, then the one that arrived earlier is getting placed rst. Table
1 displays an order book, whose orders are placed according to the price-time
scheme.</p>
      <p>Within a trading platform, there is also a matching engine that executes
trades between orders. For a given order book, this engine takes as input the
rst orders from the buy side and the sell side. Then, a trade can be executed i
the price of the rst buy order is greater or equal than the price of the rst sell
order (in other words, the best buyer is willing to pay at least as much as the
best seller wants). This situation is exempli ed by the order book in Table 1,
where the price of order O1 is greater than the price of order O6. When a trade
is executed between a buy order o1 and a sell order o2, which respectively have
q1 and q2 stocks, min(q1; q2) stocks are taken from each order (min returns the
minimum of two numbers). The quantities of o1 and o2 are decreased according
to what they traded, e.g., q10 = q1 min(q1; q2). For each of the two orders, if
its remainder goes to zero, then the order is discarded from the order book (that
is, the agent successfully sold/bought what she wanted through that order).
Otherwise, the order remains in the order book (still as the rst one in its side)
waiting to trade its remainder against the next best order of the other side. In
Table 1, a trade of 1 stock will be executed with orders O1 and O6. Order O1
will be partially lled, keeping a remainder of 3 stocks, whereas order O6 will be
lled and consequently discarded from the order book.</p>
    </sec>
    <sec id="sec-3">
      <title>Petri Net Extensions</title>
      <p>Petri nets. A Petri net consists of two kinds of nodes: places and transitions.
Places (drawn as circles) represent conditions or resource bu ers, whereas
transitions (drawn as boxes) denote system activities. Places store tokens (drawn as
black dots), and they model resources, local threads, etc. Distribution of tokens
across places represents a state of a Petri net, which is called a marking. A
transition is enabled to re i each of its input places contains at least one token.
Firing of an enabled transition consumes a token from each input place and
produces a new token in each output place. Fig. 4(a) depicts a small example, where
two net components denote agents, whereas a central component consumes
orders and produces trades. Whilst we focus on modeling trading platforms and
participants, in other cases it might be of interest to analyze atomic elements,
i.e., evolution of orders across their lifetime within a platform. The latter can be
modeled as a Petri net (see Fig. 4(b)) in which places account for order states
and transitions denote activities over orders.</p>
      <p>agent 1
buy orders
a2
cancel
a1</p>
      <p>submit
receive a3
c1</p>
      <p>c2
c3
trade
agent 2
sell orders
submit
b1</p>
      <p>b2
cancel
b3 receive
order
submitted
t0
new
t3
t1
t2
canceled</p>
      <p>t1
partially
filled
t3
t2
filled
(a) Interaction of two agents and a
middleware receiving orders and producing trades.
(b) Handling process of orders.
Colored Petri nets. When constructing trading system models, it is needed
to describe how domain objects such as orders are handled. For example, one
may need to design how the application component of a platform inserts orders
in an order book or how order attributes are modi ed. For this task we consider
colored Petri nets (CPNs). In CPNs, tokens carry values of di erent data types.
Fig. 5 presents a CPN modeling the application component of a trading platform.
It models the reception of orders, how these orders are placed in order books
according to an employed priority scheme, and how trades are produced. Orders
are de ned as tuples o1 = (id,sec,q,p,s,st) where id is an order identi er,
sec is the security that the order trades, q and p denote respectively the stock
quantity and price per unit, s is the order side (buy or sell), and st is the order
state. Place O is the entry point where orders are received.</p>
      <p>ob buy_rank (id,sec,q,p,s,active) ob
[#5(o1)=buy]</p>
      <p>o1
t1 submit</p>
      <p>buy order
buy_rank ab
o1 ab
arriving 1`[]
buy orders 1AB ORDER_QUEUE
(id,sec,q,p,s,st) :: ab ab</p>
      <p>new
[sec = #2(hd ob)] t3 buy order</p>
      <p>ORDER</p>
      <p>O
o1 [#5(o1)=sell]
sseulblmoritder t2
sell_rank sb
o1 sb</p>
      <p>1`[]</p>
      <p>ORDER_QUEUE 1AS abruryivoinrgders
(id,sec,q,p,s,st) :: sb sb
u1y`,[a(1ct,i1v,e4),,2(220,1,b,3u,y2,0a0c,tbivuey),,a(4ct,i1v,e2),,2(0311,1`,b,[] buy sides of
2,200,buy,active),(5,1,7,198,buy,activ 1 OB order books
e)] ORDER_QUEUE
if q &gt; q2 then
(id, sec, q - q2, p, s, st) (id, sec, q, p, s, st)
:: ob :: ob
else ob
[p &gt;= p2 andalso sec = sec2]
(tid, id, id2, Int.min(q,q2))
trade
t5</p>
      <p>When there is an order in place O, either transition t1 (submit buy order)
or t2 (submit sell order) can re, depending on the order side s. When t1 or
t2 res, an order is inserted in place AB (resp., AS) for arriving buy (resp., sell)
orders. Two list tokens represent an order book, i.e., the two tokens in places OB
and OS model the order book in Table 1. More pairs of list tokens may be added
to include more order books. Insertion of orders in an order book is modeled as
follows. When transition t3 res, an order in place AB is transferred to a list token
in place OB. The same principle holds on the sell side. The matching between
rst buy and sell orders is done as follows. For two list tokens representing an
order book, transition t5 takes the rst elements of each list { the rst buy order
and the rst sell order. The ring of t5 is possible if the price p of the rst buy
order is greater or equal than the price p2 of the rst sell order. Then, when t5
res, it is produced a token in place T denoting a trade. The remainder (if any)
of each rst order is placed back as the rst element of its list.</p>
      <p>CPNs provide a language for declaring expressions, formed by variables,
constants and functions. In CPN Tools, this language is CPN ML { an
implementation of the Standard Meta Language (SML). For example, to insert a buy
order in an order book side, a function buy rank is used. The function performs
a priority insertion of the order in the list. Thus, precedence rules such as the
price-time scheme can be easily implemented. CPNs also provide boolean guards,
extending the de nition of transition enabling. For example, transition t5 res
only after the order price values have been checked against the guard assigned
to t5.</p>
      <p>λ1
t1
login
agents
start</p>
      <p>Albeit CPNs meet various requirements to describe data aspects of trading
systems, this extension falls short for modeling large multi-agent systems. As we
have discussed before, one of the important requirements concerns the ability of
having a clear representation of participants, describing how they interact with
a trading platform. It is true that subnets denoting participants may be added
in a CPN, and such subnets may be connected with the trading platform model
using channels (e.g., place O in Fig. 5). However, the latter leads to the increasing
complexity of net models that, in most cases, may be unreadable and impractical
for analysis, especially in the presence of a large number of participants. Hence,
we proceed to present another Petri net extension, where participants can be
modeled as dynamic objects with explicitly speci ed behavior.</p>
      <p>x
x
x
x
Nested Petri nets. Nested Petri nets (NP-nets) represent an extension of
classical Petri nets where tokens can be Petri nets themselves. These tokens, called
net tokens, account for agents whose behavior is described using Petri nets. Net
tokens reside in a Petri net called the system net, denoting the environment
in which agents interact. Thus, NP-nets allow to model multi-agent systems.
Fig. 6 depicts a NP-net modeling a fragment of a platform session component.
The system net models the platform side, whereas net tokens represent market
participants. Places in the system net model connection states between agents
and a trading platform. It provides a clear visualization, displaying which agents
are at a given connection state, and how they move to other states in
synchronization with the system. The way net tokens progress through this component
depends on their inner states. For instance, transition t1 (activity login) res,
if a transition u2 is enabled in an agent work ow (as these transitions are linked
by a synchronization label 1). When u2 and t1 are enabled, both transitions
re simultaneously, updating the session component and the agent involved: the
net token is transferred to the place online agents, whereas her inner state is
updated to online. This synchronization mechanism provides a way to model
the communication ow at the session layer, depicted in Fig. 3. In general,
NPnets have di erent ring steps: (i) an autonomous step, which is the ring of
a transition in a net token, (ii) a transfer step, in which net tokens are
consumed/produced in the system net without a ecting their inner states, (iii) a
vertical synchronization step, which is the simultaneous ring of a transition in
the system net and transitions in net tokens, as it was shown for t1 and u2, and
(iv) a horizontal synchronization step, which is the simultaneous ring of two
transitions in two net tokens residing in the same place of a system net. The
main limitation of NP-nets lies in their inability to describe how net tokens and
a system net share data. As explained before, when modeling trading systems,
it is required to model how participants can send orders and receive trades from
the trading platform. In this sense, we proceed with a Petri net extension where
non-adjacent net components send/receive data through a shared database.
new buy order • PARAMS = (o_id, a_id, sec_id, q, p)
new buy order • DEL = { order(o_id, a_id, sec_id, q, p, 'buy', 'submitted')}
new buy order • ADD = { order(o_id, a_id, sec_id, q, p, 'buy', 'active') }
arriving buy orders
for order book 'sec1'</p>
      <p>(o_id, a_id, sec_id, q, p, s, st)
order(o_id, a_id, 'sec1', q, p, 'buy', 'submitted')
new buy order</p>
      <p>t 3
order('O4','A4', 'sec1', 2, 20.1 $, 'buy', 'submitted')
order('O1','A1', 'sec1', 4, 22.0 $, 'buy', 'submitted')</p>
      <p>...
DB-nets. This extension combines CPNs and relational databases into a single
formalism. A db-net is structured in three layers: (i) a persistence layer
consisting of a relational database. A database stores a nite set of facts (hereafter
referred to as records), such that the structures of records are de ned by
relation schemas ; (ii) a data logic layer which consists of a set of queries and actions
used to read/update records in the database, and nally (iii) a control layer,
consisting of a Petri net incorporating several features of CPNs. Fig. 7 describes
buy order insertions in an order book, where a security sec1 is traded, using
db-nets. The database stores, among other records, two orders. For instance,
the record order('01','A1','sec1', 4, 22.0$, 'buy','submitted') models an
order sent by the participant A1, to buy 4 stocks of sec1 at 22.0$ per stock.
To access records in the database, db-nets employ special places called view
places that work akin to views in relational databases. More speci cally, every
view place is having a query assigned to it that populates the place's content
with tokens extracted from the query answer. Let us come back to the
dbnet in Fig. 7. The query order (o id,a id,'sec1',q,p,'buy','submitted') is
equivalent to the SQL query SELECT o id, a id, sec id, q, p, s, st FROM
order WHERE sec id='sec1' AND s='buy' AND st ='submitted', returning
all orders planning to buy 'sec1' and whose state is 'submitted'. In Fig. 7,
this query returns two records highlighted in the database, resulting in the view
place being marked with two tokens that represent such records in the net. Every
view place can be connected to transitions only via read arcs. This implicitly
results in creating tokens that are \copies" of extracted records.</p>
      <p>In db-nets, transitions are equipped with actions that allow to update the
database. For example, upon ring, transition t3 invokes an action new buy
order assigned to it. Assume that t3 has red and read the token ('O1','A1',
'sec1',4,22.0$,'buy','submitted') from the view place. The action assigned
to t3 updates the database by rst deleting a record corresponding to order O1,
and then adding to the database the same order, but now with its state value
changed to submitted. In this way, manipulation of orders within the order
books can be simulated.</p>
      <p>In trading systems, the number of securities that are traded may change
dynamically. Thus, there can be a variable amount of order books in the
system. To deal with this variability, order books need to be independent from the
model structure, and to be conceived as dynamic objects, like participants. Fig.
7 shows why db-nets cannot satisfy such requirement. The query to a collection
of orders, representing an order book section, is attached to view places. Under
this static modeling strategy, the size of the model structure increases
according to the number of order books. This issue does not allow to conceptualize a
clever management of order books, being created or closed upon demand. We
aim to model order books as a combination of dynamic list tokens (e.g., as in
the CPN of Fig. 5). In such model, participants should be able to manipulate
remotely elements of such lists. This approach can be implemented if queries are
attached to tokens (and not to places). Thus, the number of order books can be
variable in the model. Such approach is explained in the following section, where
we integrate notions of the introduced Petri net extensions into a single solution,
addressing all the aforementioned requirements for modeling trading systems.
4</p>
    </sec>
    <sec id="sec-4">
      <title>An Integrated Extension for Modeling Trading Systems</title>
      <p>In this section, we propose the integration of the considered Petri net extensions
into a single formalism for modeling trading systems. We conceive a Petri net
combining the characteristics of CPNs and NP-nets. In addition, following the
approach of db-nets, we include in our extension a relational database and queries
to consume database records. However, in contrast with db-nets, these queries
are going to be directly assigned to reference tokens. Such tokens are carrying
direct links to records extracted from the underlying database using such queries.
Moreover, any manipulation done with these tokens are mirrored on the records
they are pointing at. For example, a token that is consumed by a transition will
have its data deleted from the database.
('O2','A2', 'sec1', 3, 20.0 $, 'buy', 'submitted')
p1
o</p>
      <p>t 3
Using our proposal, a trading system is modeled as a multi-agent system,
consisting of a system net and net tokens. The system net models the session and
application components of a trading platform as two disjoint components. Net
tokens, denoting participants, reside within the session component (as in Fig. 6).
Fig. 9 shows a top view of the trading system model. The application component
models order insertion in order books and trade executions. Agents interact with
the application component via a database. Database records are orders, trades,
or agent data, based on a schema derived from the entity-relationship diagram
of Fig. 10. For example, trade('T1', 1, 20.0$, 'A1','A6','O1','O6') models a
trade between a buyer A1 and a seller A6. Participants and the application
component consume/produce records from/to the database using reference tokens.
Records in the database are non ordered, so the application component
manages orders using reference tokens, whose queries are equipped with sort clauses.
Table 2 shows how four reference tokens can model sections of an order book.</p>
      <p>System Net
.....</p>
      <p>Fig. 10: Entity-relationship diagram of the database model.
4.2</p>
      <p>Modeling Market Participants
Participants can be modeled as net tokens, nested within the session component
of the system net. Each net token has an inner Petri net work ow (see Fig.
11) composed by di erent aspects of an agent trading process (control- ow,
references to data, and local resources). We describe these aspects, as well as the
activities of order submission and trade reception.</p>
      <p>Agent control- ow. The control- ow is the agent process backbone. It consists
of a set of activities that an agent executes, and it establishes a causal ordering,
e.g., activity submit buy order executes i the login activity was executed
before. As we resort to the same synchronization steps of nested Petri nets, some
transitions in the work ow are linked with transitions in the session component
using synchronization labels. In this way, we model the connection management
between a participant and the session component of a trading platform.
References to shared data. An agent may have references to shared data, for
example, to orders that the agent submitted or to upcoming trades. In Fig. 11,
reference tokens are created upon the ring of transitions u1 and u2. When u1
res, it creates a reference to a record agent('A1'), as speci ed by the inscription
agent( ) on the arc (u1; r1) ( is a unique f resh agent identi er). Other agents
subsequently ring u1 would insert agent ('A2'), agent('A3'), etc. After u2
res, references to agent's orders and future trades are created. The queries of
these references use the identi er A1.</p>
      <sec id="sec-4-1">
        <title>Local data resources</title>
      </sec>
      <sec id="sec-4-2">
        <title>Agent control-flow References to global data</title>
        <p>stock (10,'sec1')
portfolio (40,'sec2')
λ1</p>
        <p>u2
ready
login</p>
        <p>d 1
start
agent(ν)
u1
init</p>
        <p>a_id
r1
reference to
agent identifier agent('A1')
r 2
...</p>
        <p>u6
online logout end
trade(o1, o2, o3, a_id, o5, o6, o7, o8)
order(o1, a_id, o3, o4, o5, o6, o7)</p>
        <p>r3
reference to reference to
agent’s orders agent’s buy trades</p>
        <p>trade(o1, o2, o3, 'A1', o5, o6, o7, o8)
order(o1, 'A1', o3, o4, o5, o6, o7)
d</p>
        <p>Agent local resources. Agent local resources (non visible by other agents or
the system net) are modeled as places storing tokens with data values. In Fig.
11, places d1 and d2 represent the agent's stock portfolio and capital.
The stock portfolio is a set of pairs denoting stock quantities of securities that
an agent trades, whereas the capital is the available balance to buy more stocks.
Creation and submission of orders. An agent can use her local resources,
for instance, to create and submit buy orders. In Fig. 12, the ring of transition
u3 produces an order (yet a local data token) in place order created. When
transition u4 res, the order is consumed, and it is produced as a record in the
database. The latter is accomplished using the reference token to agent's orders
in the shared database.</p>
        <p>
          d 1
stock
portfolio
Reception of trade noti cations. Fig. 13 depicts the reception of a trade
noti cation in which an agent was involved as a buyer. The buyer updates her
trade portfolio based on the purchased quantity of stocks informed in the record.
d 1
stock
portfolio
receive
buy trade
a_btrades
(10,'sec1')
(40,'sec2')
(qt,sec_id)
(qt + hd(a_btrades)[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], sec_id)
        </p>
        <p>Fig. 13: Agent model fragment describing the reception of trades for a buyer.</p>
        <p>Modeling the Application Component of a Trading System
The application component processes orders submitted by agents. As explained
before, all orders in the database trading the same security are organized using
four di erent reference tokens, representing thereby the di erent sections of an
order book. As depicted in Fig. 9, these reference tokens are located in di erent
places of the application component: two tokens for arriving buy/sell orders, and
other two tokens for the buy/sell side of the order book. Using this design, we
explain the insertion of an order into an order book side and the execution of
trades.</p>
        <p>Order insertion in an order book side. The insertion of an arriving order
into an order book is managed by changing the state attribute of an order from
submitted to active. In this case, the order will be referenced by the reference
token which acts as the buy or sell side of an order book. This procedure is
exempli ed in Fig. 14. When transition t3 res, it accesses the list of orders
referenced by the token at place references to arriving buy orders, removes the
rst record of this list (that is O1, which is the next arriving buy order to be
served), resulting in the simultaneous deletion of the same record in the database,
and then inserts this record in the list carried by the reference token at place
references to buy sides of order books. Note that the newly generated token is
going to reference a new record as its state is set to active.</p>
        <p>order(o1, o2,'sec1', o4, o5, o6, 'buy', 'submitted')
sort(o5,o1) desc
order('O2','A2', 'sec1', 3, 20.0 $, 'buy', 'submitted')
order('O3','A3', 'sec1', 2, 20.0 $, 'buy', 'submitted')
order('O1','A1', 'sec1', 4, 22.0 $, 'buy', 'active')
order(o1, o2,'sec1', o4, o5, o6, 'buy', 'active')
sort(o5, o1) desc
references to
arriving buy orders
ab</p>
        <p>
          ab \ hd(ab)
t3
new
buy order
[hd(ab)[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] == hd(ob)[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]]
references to
buy sides of order
books
ob
ob :: (hd(ab)[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], …, hd(ab)[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ],'active')
        </p>
        <p>
          Fig. 14: Model fragment regarding insertion of orders into an order book.
Trade execution. As explained before, if the rst two orders of each side of
an order book can be matched, then they can produce a trade. We recall that a
trade execution is possible i the price of the rst buy order is greater or equal
than the price of the rst sell order. Fig. 15 presents a fragment of the application
component modeling this situation. The guard in transition t4 (activity trade)
models the inequality condition between the fth attributes (the price) of the
rst records in each side. Then, when transition t4 res, it consumes these rst
orders, it produces a trade record with the stock quantity traded, and nally it
places back these rst orders to their sides in case they have any stock remainder.
ob
os
references to sell sides
of order books
The increasing amount and heterogeneity of participants and market rules has
driven the nancial industry to look for novel approaches to design and
validate trading systems. In this regard, passive testing techniques have drawn the
attention of practitioners [
          <xref ref-type="bibr" rid="ref12 ref16">12, 16</xref>
          ]. These techniques meet industrial demands
of minimizing latency and overhead as they explore system behavior based on
output logs, avoiding to inject intrusive control in online systems. On this
subject, di erent authors advocate the use of formal models (see, for example, [
          <xref ref-type="bibr" rid="ref4 ref5">4,
5</xref>
          ]), sometimes even in conjunction with traditional data science techniques or
process mining [
          <xref ref-type="bibr" rid="ref15 ref19 ref20 ref24 ref30">15, 19, 20, 24, 30</xref>
          ]. This shows that formal models for validating
concurrent end-to-end system processes are highly relevant in the industrial
context. For instance, formal models can be compared against recorded behavior of
trading systems to detect system deviations.
        </p>
        <p>
          However, to detect deviations that occur due to agent or data corruption,
integrated formalisms modeling agent and data aspects become essential. As it
has been proposed in [
          <xref ref-type="bibr" rid="ref10 ref22">10, 22</xref>
          ], extended conformance checking techniques, may be
applied between integrated models and event logs that focus on the information
about participants within some multi-agent system. While both studies focus
on nested Petri nets, [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] o ers a preliminary investigation on the feasibility of
conformance checking in the case of trading systems, whereas [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] presents a
formal approach for checking perfect tness of a nested Petri net w.r.t a log of a
multi-agent system. This paper proposes a possible formalism for constructing
such integrated models. Notably, there is already an approach suggesting how
to obtain event logs of trading systems from sets of FIX messages, which are
captured from network interfaces of trading platforms [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Also, this work can
be seen as a development of an earlier study based on nested and colored Petri
nets for formal modeling of order-driven trading systems [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>To model trading systems, we are interested in using Petri-net based
techniques that can describe persistent data storage with all the complexity of an
underlying data model to capture data manipulation, as well as to represent
autonomous agents together with a logic that allows them to interact with each
other and the environment. As we have already demonstrated before, existing
Petri net formalisms do not fully capture all the requirements needed to
faithfully model trading systems. We brie y discuss formalisms used in this work and
other Petri net classes related to them.</p>
        <p>
          In order to model autonomous agents that interact with each other and the
environment, we considered nested Petri nets [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Tokens in NP-nets can be
Petri nets themselves (referred to as net tokens). As described in Section 3, there
are di erent synchronization steps in NP-nets, allowing to model several
interaction patterns between agents and the environment. NP-nets belong to a family
of Petri nets called nets-within-nets. From this class of nets, it is noteworthy to
mention object Petri nets (OPN), introduced in [31], and adopted in various
applied frameworks for modeling and analysis of multi-agent systems (see, e.g., [
          <xref ref-type="bibr" rid="ref6 ref7">6,
7</xref>
          ]). In contrast with NP-nets, OPNs also support reference semantics. In this
type of semantics, a remote object can be referenced by multiple tokens (using
special identi ers) stored in di erent places, resembling the concept of pointers
in programming languages. This is a clear di erence with respect to NP-nets,
which support value semantics, where every single net token is represented as a
di erent object (e.g., a market participant) locally assigned to a speci c place.
        </p>
        <p>
          In Section 3, we showed that colored Petri nets could be used for describing
processes that manipulate complex data objects. In CPNs, colors abstractly
account for data types, and the control threads (i.e., tokens), traversing the
net, carry data conforming to colors. However, when it comes to the analysis of
CPN models, one needs to severely restrict the contribution of data by requiring
colors to have a nite domain [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. This, in turn, led to the de facto adoption
of the CPN formalism with bounded color domains only. Di erent approaches
have been studied in order to overcome this limitation. For example, -Petri
nets [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ] allow to model processes running on top of an abstract object domain.
Single values from this domain are assigned to tokens, whereas transitions can
compare these tokens only for equality, but can also generate tokens with values,
that are distinct from all those in the current marking. The last feature makes
the formalism of -Petri nets very appealing to model cases when one needs to
secure possibly in nite provision of fresh data objects (for example, generation of
a new identi er) into the process. It is worth mentioning an approach studied in
[
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] that essentially extends the -PN formalisms along two dimensions. First,
the authors use Petri nets with identi ers that do not deal only with single
values, but allow tokens to carry vectors of identi ers from the same abstract
object domain. Second, the formalism allows to capture information aspects
of the modeled data-aware process by introducing a sophisticated information
model allowing to express relations between objects as well as constraints on top
of them and CRUD (create, read, update, and delete) operations to manipulate
such objects.
        </p>
        <p>
          There are still other data-aware Petri net classes in which tokens are
associated to more complex data structures such as nested relations [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] or XML
documents [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Even though all these approaches o er di erent ways for
modeling and manipulating data, there is a common limitation that all of them (apart
from [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]) share: data elements are \locally" attached to tokens, while no native
support for global, persistent relational data is provided.
        </p>
        <p>
          Given that the data representation and manipulation are crucial for
modeling trading systems, in this paper we opted for db-nets [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. Similarly to the
formalism studied in [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ], db-nets provide a way for modeling complex dynamic
systems by realizing the clear separation of concerns between control ow and
data-related aspects. As we demonstrated in Section 3, the persistent data in
db-nets are represented using a single relational database. Nevertheless, the
approach can be seamlessly extended towards the support of multiple data storages.
In addition, a variant of db-nets has been applied for model-based simulation
of software systems. More speci cally, in [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] the authors demonstrated how to
model and test (via simulation) enterprise integration patterns using bounded
db-nets and their temporal extensions.
6
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>In this work, we primarily focused on formal modeling of trading systems in the
context of Petri net theory so as to provide a basis for testing their correctness
using trading system logs. To this end, we identi ed and presented a number of
crucial design requirements that would allow to capture a holistic view over the
systems under consideration. Then, it has been shown how such requirements
could be addressed using currently existing formalisms of Petri nets. We argued
that each of such formalisms can be suitable for representing only a certain
type of the trading system abstraction (and supported our observations with
concrete examples), and that currently there is no approach that could fully
address all the requirements. Therefore, we informally proposed a new framework
that combines relevant features of the discussed Petri net formalisms, and we
demonstrated using detailed examples how it can be employed for modeling
di erent components of trading systems.</p>
      <p>
        A next step is to thoroughly formalize the proposed approach by
combining already existing theories of CPNs, db-nets and NP-nets, and to develop a
prototype supporting modeling and simulation. We also plan to study how to
analyze the models of the devised formalism. Indeed, given such a rich setting,
performing formal analysis can be a complex task. In this case, one can proceed
independently following two directions. First, it is possible to focus only on the
simulation task supported by the prototypical implementation of the proposed
approach. This can be further applied to perform model-based passive testing.
More speci cally, one would need to develop a conformance checking technique
that accounts both for data and agents interacting with the system net, and that
uses execution traces of the trading system software. Notably, the latter can be
extracted from trading system logs following the approach presented in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
Second, we are planning to investigate how various available theoretical results on
the veri cation of NP-nets and db-nets can be adopted in the context of the
new formalism. We are particularly interested in studying a notion of
soundness (a property that guarantees the absence of livelocks, deadlocks, and other
domain-related anomalies) that is speci c for the scenario of trading systems,
and a corresponding compositional veri cation approach that would allow to
check the soundness property separately on every trading agent net.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>CPN</given-names>
            <surname>Tools -</surname>
          </string-name>
          <article-title>A tool for editing, simulating, and analyzing Colored Petri nets</article-title>
          . https://www.cpntools.org
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>FIX</given-names>
            <surname>Standards - FIX Trading</surname>
          </string-name>
          <article-title>Community</article-title>
          . https://www.fixtrading.org/ standards/
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Badouel</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helou</surname>
          </string-name>
          et, L.,
          <string-name>
            <surname>Morvan</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Petri nets with structured data</article-title>
          .
          <source>Fundam. Inform</source>
          .
          <volume>146</volume>
          (
          <issue>1</issue>
          ),
          <volume>35</volume>
          {
          <fpage>82</fpage>
          (
          <year>2016</year>
          ). https://doi.org/10.3233/FI-2016-1375
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Bohmer,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Rinderle-Ma</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.:</surname>
          </string-name>
          <article-title>A systematic literature review on process model testing: Approaches, challenges</article-title>
          , and research directions.
          <source>CoRR abs/1509</source>
          .04076 (
          <year>2015</year>
          ), http://arxiv.org/abs/1509.04076
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Broy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Seamless model driven systems engineering based on formal models</article-title>
          .
          <source>In: Formal Methods and Software Engineering</source>
          . pp.
          <volume>1</volume>
          {
          <fpage>19</fpage>
          . Springer Berlin Heidelberg (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Cabac</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Modeling Petri net-based multi-agent applications</article-title>
          .
          <source>Ph.D. thesis</source>
          , University of Hamburg (
          <year>2010</year>
          ), http://www.sub.uni-hamburg.de/opus/volltexte/ 2010/4666/index.html
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Cabac</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haustermann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mosteller</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Software development with petri nets and agents: Approach, frameworks and tool set</article-title>
          .
          <source>Sci. Comput</source>
          . Program.
          <volume>157</volume>
          ,
          <issue>56</issue>
          {
          <fpage>70</fpage>
          (
          <year>2018</year>
          ). https://doi.org/10.1016/j.scico.
          <year>2017</year>
          .
          <volume>12</volume>
          .003
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Carmona</surname>
            , J., van Dongen,
            <given-names>B.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Solti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weidlich</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Conformance Checking - Relating Processes</surname>
          </string-name>
          and Models. Springer (
          <year>2018</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -99414-7
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Carrasquel</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chuburov</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lomazova</surname>
            ,
            <given-names>I.A.</given-names>
          </string-name>
          :
          <article-title>Pre-Processing Network Messages of Trading Systems into Event Logs for Process Mining (</article-title>
          <year>2019</year>
          ), to appear
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Carrasquel</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lomazova</surname>
            ,
            <given-names>I.A.</given-names>
          </string-name>
          :
          <article-title>Modelling and Validation of Trading and MultiAgent Systems: An Approach Based on Process Mining and Petri Nets</article-title>
          .
          <source>In: Proc. of the ICPM Doctoral Consortium. CEUR Workshop Proceedings</source>
          , vol.
          <volume>2432</volume>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Carrasquel</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lomazova</surname>
            ,
            <given-names>I.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Itkin</surname>
            ,
            <given-names>I.L.</given-names>
          </string-name>
          :
          <article-title>Towards a Formal Modelling of Orderdriven Trading Systems using Petri Nets: A Multi-Agent Approach</article-title>
          . In: Lomazova,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Kalenkova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Yavorsky</surname>
          </string-name>
          ,
          <string-name>
            <surname>R</surname>
          </string-name>
          . (eds.)
          <article-title>Modeling and Analysis of Complex Systems and Processes (MACSPro)</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>2478</volume>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Cavalli</surname>
            ,
            <given-names>A.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Higashino</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Nun~ez,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A survey on formal active and passive testing with applications to the cloud</article-title>
          .
          <source>Annales des Telecommunications</source>
          <volume>70</volume>
          (
          <issue>3-4</issue>
          ),
          <volume>85</volume>
          {
          <fpage>93</fpage>
          (
          <year>2015</year>
          ). https://doi.org/10.1007/s12243-015-0457-8
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Harris</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Trading and Exchanges: Market Microstructure for Practitioners</article-title>
          . Oxford University Press (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Hidders</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kwasnikowska</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sroka</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tyszkiewicz</surname>
          </string-name>
          , J., Van den Bussche, J.: D :
          <article-title>A data ow language based on petri nets and nested relational calculus</article-title>
          .
          <source>Inf. Syst</source>
          .
          <volume>33</volume>
          (
          <issue>3</issue>
          ),
          <volume>261</volume>
          {
          <fpage>284</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Itkin</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gromova</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sitnikov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Legchikov</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tsymbalov</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yavorskiy</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Novikov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudakov</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>User-assisted log analysis for quality control of distributed ntech applications</article-title>
          .
          <source>In: Proc. of AITest</source>
          <year>2019</year>
          ,. pp.
          <volume>45</volume>
          {
          <fpage>51</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2019</year>
          ). https://doi.org/10.1109/AITest.
          <year>2019</year>
          .
          <volume>000</volume>
          -
          <fpage>9</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Itkin</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yavorskiy</surname>
          </string-name>
          , R.:
          <article-title>Overview of Applications of Passive Testing Techniques</article-title>
          . In: Lomazova,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Kalenkova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Yavorsky</surname>
          </string-name>
          ,
          <string-name>
            <surname>R</surname>
          </string-name>
          . (eds.)
          <article-title>Modeling and Analysis of Complex Systems and Processes (MACSPro)</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>2478</volume>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Coloured Petri Nets - Basic Concepts</surname>
          </string-name>
          ,
          <source>Analysis Methods and Practical Use - Volume</source>
          <volume>1</volume>
          ,
          <string-name>
            <given-names>Second</given-names>
            <surname>Edition</surname>
          </string-name>
          .
          <source>Monographs in Theoretical Computer Science. An EATCS Series</source>
          , Springer (
          <year>1996</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>662</fpage>
          -03241-1
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kristensen</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          :
          <source>Coloured Petri Nets: Modelling and Validation of Concurrent Systems</source>
          . Springer, 1st edn. (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Keith</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vega</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Process mining applications in software engineering</article-title>
          .
          <source>In: Trends and Applications in Software Engineering</source>
          . pp.
          <volume>47</volume>
          {
          <fpage>56</fpage>
          . Springer International Publishing,
          <string-name>
            <surname>Cham</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Liu</surname>
          </string-name>
          , C.,
          <string-name>
            <surname>van Dongen</surname>
            ,
            <given-names>B.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Assy</surname>
          </string-name>
          , N.,
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>A general framework to identify software components from execution data</article-title>
          .
          <source>In: Proc. of ENASE</source>
          . pp.
          <volume>234</volume>
          {
          <fpage>241</fpage>
          .
          <string-name>
            <surname>SciTePress</surname>
          </string-name>
          (
          <year>2019</year>
          ). https://doi.org/10.5220/0007655902340241
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Lomazova</surname>
            ,
            <given-names>I.A.</given-names>
          </string-name>
          :
          <article-title>Nested Petri Nets - a Formalism for Speci cation and Veri cation of Multi-Agent Distributed Systems</article-title>
          .
          <source>Fundamenta Informaticae</source>
          <volume>43</volume>
          ,
          <issue>195</issue>
          {
          <fpage>214</fpage>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Mecheraoui</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carrasquel</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lomazova</surname>
            ,
            <given-names>I.A.</given-names>
          </string-name>
          :
          <article-title>Compositional conformance checking of nested petri nets and event logs of multi-agent systems</article-title>
          . CoRR abs/
          <year>2003</year>
          .07291 (
          <year>2020</year>
          ), https://arxiv.org/abs/
          <year>2003</year>
          .07291
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Montali</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rivkin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>DB-Nets: On the Marriage of Colored Petri Nets and Relational Databases"</article-title>
          . In: Koutny,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Kleijn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Penczek</surname>
          </string-name>
          , W. (eds.)
          <source>Transactions on Petri Nets and Other Models of Concurrency XII. LNCS</source>
          , vol.
          <volume>10470</volume>
          , pp.
          <volume>91</volume>
          {
          <fpage>118</fpage>
          . Springer (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Mull</surname>
          </string-name>
          , J.:
          <article-title>Mind the gap between testing and production: applying process mining to test the resilience of exchange platforms (</article-title>
          <year>2019</year>
          ) (
          <year>October 2019</year>
          ), https://tinyurl. com/y55sndcv
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Murata</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Petri nets: Properties, analysis and applications</article-title>
          .
          <source>Proceedings of the IEEE</source>
          <volume>77</volume>
          (
          <issue>4</issue>
          ),
          <volume>541</volume>
          {
          <fpage>580</fpage>
          (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Polyvyanyy</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van der Werf</surname>
            ,
            <given-names>J.M.E.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Overbeek</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brouwers</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Information systems modeling: Language, veri cation, and tool support</article-title>
          .
          <source>In: Proc. of CAiSE 2019. Lecture Notes in Computer Science</source>
          , vol.
          <volume>11483</volume>
          , pp.
          <volume>194</volume>
          {
          <fpage>212</fpage>
          . Springer (
          <year>2019</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -21290-2 13
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Protsenko</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khristenok</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lukina</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alexeenko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pavlyuk</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Itkin</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Trading Day Logs Replay Limitations and Test Tools Applicability</article-title>
          .
          <source>In: Proceedings. International Conference on Tools and Methods of Program Analysis (TMPA</source>
          <year>2014</year>
          ) pp.
          <volume>46</volume>
          {
          <issue>53</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Ritter</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , Rinderle-Ma,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Montali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rivkin</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Formal foundations for responsible application integration</article-title>
          .
          <source>Information Systems</source>
          (
          <year>2019</year>
          ). https://doi.org/10.1016/j.is.
          <year>2019</year>
          .
          <volume>101439</volume>
          , to appear
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Rosa-Velardo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Frutos-Escrig</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Name creation vs. replication in petri net systems</article-title>
          .
          <source>Fundam. Inform</source>
          .
          <volume>88</volume>
          (
          <issue>3</issue>
          ),
          <volume>329</volume>
          {
          <fpage>356</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Saint-Pierre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cifuentes</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bustos-Jimenez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Detecting anomalies in DNS protocol traces via passive testing and process mining</article-title>
          .
          <source>In: Proc. of CNS</source>
          . pp.
          <volume>520</volume>
          {
          <fpage>521</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2014</year>
          ). https://doi.org/10.1109/CNS.
          <year>2014</year>
          .
          <volume>6997534</volume>
          31. Valk, R.:
          <article-title>Petri nets as token objects: An introduction to elementary object nets</article-title>
          .
          <source>In: Proc. of ICATPN 1998</source>
          . pp.
          <volume>1</volume>
          {
          <issue>25</issue>
          (
          <year>1998</year>
          ). https://doi.org/10.1007/3-540
          <source>-69108-1 1</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>