<!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>On Modelling Cloud Native Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Kent Inge Fagerland Simonsen</string-name>
          <email>kent.simonsen@tietoevry.com</email>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Cloud Native Applications (CNAs) have become a popular class of applications intended to run on cloud platforms. In this poster we will explore using a sub-class of Coloured Petri Nets to model CNAs. Introduction Cloud Native Applications (CNAs) are quickly becomming one of the major application patterns for internet based applications. Although there is no generally accepted de nition of CNAs, they do share some common properties [3]. Furthermore, most CNAs are comprised of a limited, albeit evolving, set of component types. Among the components types mentioned in [1] are: Microservices, Severless Applications, Event Hubs, Data Stores, and various Hosted Services. Our goal to use these elements as building blocks in order to model a large portion of CNAs. In previous works, we have presented a sub-class of Coloured Petri Nets (CPNs) [2] called Pragmatics Annotated CPNs (PA-CPNs) [4].PA-CPNs have been used to model and generate code for network protocols. This is achieved by annotating models with so-called pragmatics that informs the code generator what code to generate for a given element. Furthermore, by restricting the modelling language to a set of clearly de ned structures on each level of hierarchical models, the code generator is able to put the pragmatics in the right context. Modelling Cloud Native Applications When modelling CNAs, we propose that the top level should include the major components of the CNA. Figure 1 shows how the top level of a simple CNA model might look. Each component is represented by a substitution transition and annotated with pragmatics that describes the service. In the gure we can see a serverless application represented by the Serverless App substitution transition. The serverless application is triggered by an http trigger (http requests) or by an event trigger (events). The serverless application has two outputs, one to a database Database, and one to an event engine Event engine. The events emitted from Serverless App are processed by the Event engine component which is annotated with event engine. The processed events are used to trigger the MicroService App component, which represents a microservice. Finally, the microservice writes to a second persistence components File Store which represents a le system.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>&lt;&lt;pDerastiasbteanscee&gt;&gt;
DB1
e1
&lt;&lt;event_queue&gt;&gt;</p>
    </sec>
    <sec id="sec-2">
      <title>EventEngine &lt;&lt;event_engine&gt;&gt;</title>
    </sec>
    <sec id="sec-3">
      <title>EventEngine</title>
      <p>I&lt;n&lt;htttopp_itco1pic&gt;&gt;</p>
      <sec id="sec-3-1">
        <title>Func</title>
      </sec>
      <sec id="sec-3-2">
        <title>Func &lt;&lt;httpTrigger&gt;&gt; &lt;&lt;function&gt;&gt;</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>MicroService</title>
      <p>App
&lt;&lt;microservice_app&gt;&gt;</p>
    </sec>
    <sec id="sec-5">
      <title>MicroService App file buffer</title>
    </sec>
    <sec id="sec-6">
      <title>File Store &lt;&lt;file_store&gt;&gt;</title>
    </sec>
    <sec id="sec-7">
      <title>File Store</title>
      <p>db buffer
Out</p>
      <p>e1
Ou&lt;t&lt;event_queue&gt;&gt;</p>
      <p>Discussion We believe that we can create a subclass of CPNs that allow us
to model CNAs by using the ideas and techniques from PA-CPNs applied to
CNAs. Furthermore, the models could, similarly to PA-CPNs, be used to
generate infrastructure and application code for CNAs without imposing restrictions
on the languages and technologies used in the implementation and operation of
the CNAs. Finally, the models should also be amenable to formal veri cation.</p>
      <p>In the future, we plan to precisely de ne the CPN subclass for CNAs, create
tools for code generation for both infrastructure and application code and explore
possibilities for veri cation of CNAs using these models. Further on, we hope
to be able create tools that are useful for industry to both model and generate
application and infrastructure code for CNAs.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Gannon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Barga</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Sundaresan</surname>
          </string-name>
          .
          <article-title>Cloud-native applications</article-title>
          .
          <source>IEEE Cloud Computing</source>
          ,
          <volume>4</volume>
          (
          <issue>5</issue>
          ):
          <volume>16</volume>
          {
          <fpage>21</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>K.</given-names>
            <surname>Jensen</surname>
          </string-name>
          and
          <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>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>N.</given-names>
            <surname>Kratzke</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.C.</given-names>
            <surname>Quint</surname>
          </string-name>
          .
          <article-title>Understanding cloud-native applications after 10 years of cloud computing-a systematic mapping study</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>126</volume>
          :1{
          <fpage>16</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>K.I.F.</given-names>
            <surname>Simonsen</surname>
          </string-name>
          .
          <article-title>Code Generation from Pragmatics Annotated Coloured Petri Nets</article-title>
          .
          <source>PhD thesis</source>
          , Technical University of Denmark,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>