<!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>March</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Clounaq - Cloud-native architectural quality</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>(Tool Demonstration)</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Robin Lichtenthäler</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Distributed Systems Group, University of Bamberg</institution>
          ,
          <addr-line>An der Weberei 5, 96047 Bamberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2024</year>
      </pub-date>
      <volume>1</volume>
      <issue>2024</issue>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>Implementing cloud-native applications can be complex and challenging due to the breadth of the topic. A possibility to evaluate potential impacts from architectural characteristics on quality attributes could support the development and evolution of cloud-native applications. This work describes the Clounaq approach which aims to provide such a possibility. With the Clounaq tool software architectures can be modeled and evaluated based on a quality model which describes relationships between architectural characteristics and multiple quality aspects.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;cloud computing</kwd>
        <kwd>cloud-native</kwd>
        <kwd>quality evaluation</kwd>
        <kwd>architectural model</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Clounaq which is short for Cloud-native architectural quality. After a short overview of the
quality model, we specifically present the implementation in this work. While working on it,
several challenges had to be considered which we list here in a structured way:
C1 Choosing a modeling approach and a suitable level of abstraction
C2 Including support for the integration with other approaches and tools
C3 Presenting information on modeling options and evaluation results in a meaningful way
C4 Handling the complexity of both the quality model and the architectural models
C5 Ensuring modifiability and extensibility of the tool</p>
      <p>These challenges shaped the implementation of the approach and are the reasons for certain
design decisions. Throughout this work we refer back to theses challenges to highlight their
causes or how they influenced the implementation. In section 2 we present the idea behind and
the current state of the quality model. This serves as a foundation for the presentation of our
tool in section 3, before we conclude our work in section 4.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Cloud-native Quality Model</title>
      <p>
        The quality model for cloud-native software architectures2 provides the conceptual foundation
for our approach. Its initial formulation is based on literature [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and parts have been validated
empirically based on a survey [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In essence, the quality model includes quality aspects
which represent higher level quality attributes, product factors which represent architectural
characteristics whose prevalence in an architecture can be measured, and impacts which describe
how the presence of a product factor impacts diferent quality aspects. An exemplary factor
is Service replication which captures the characteristic of replicating service instances across
infrastructure entities. A replication of service instances is considered to have a positive impact
on Time-behaviour, because requests can be served from replicas closest to the respective client.
And it is considered to have a positive impact on Availability, because even if one instance
becomes unavailable, another replica can still serve requests.
      </p>
      <p>
        To now evaluate an application based on this product factor, the extent of replication needs
to be measurable. Therefore measures are used which can quantify characteristics of an
application at a specified level of abstraction ( C1). The values of measures are interpreted through
evaluations. For the example of service replication service replication level (based on [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]) is a
measure that quantifies the average level of service replication. A possible evaluation for this
could be that a value of 1 means no replication and therefore no impact on availability and
time-behaviour. And a value between 1 and 3 could mean a low replication and thus a slightly
positive impact on availability and time-behavior.
      </p>
      <p>This is merely one example from the quality model. Because it tries to cover the breath of
the topic of cloud-native applications and multiple quality aspects in combination, the quality
model itself has a certain complexity (C4). Furthermore, the quality model is not completely
specified yet regarding the quantitative measures and evaluations. The aim is to develop the
model further together with the tool based on the application of our approach to diferent use
cases.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Clounaq Tool</title>
      <p>The Clounaq tool3 is the implementation of our quality evaluation approach. An overview of its
main parts is provided in fig. 1 which is discussed more in detail in the following subsections.</p>
      <p>Import/</p>
      <p>Export
model
clounaq.de
core</p>
      <p>qualitymodel
- model specification
- measure implementation</p>
      <p>entities
- dynamic properties
- relationships
mapping
visualizes
uses
uses
tosca-adapter represent based on
tosca extension</p>
      <p>TOSCA
qualitymodel
evaluation
modeling</p>
      <sec id="sec-3-1">
        <title>3.1. Functionality</title>
        <p>The three main parts of the tool are accessible through diferent tabs (see right side of fig. 1):</p>
        <p>Quality Model Tab This tab shows the quality model as described in section 2 with all product
factors and quality aspects. Because of the complexity of the model (C4), it is possible to filter
the shown quality aspects by their common high-level aspects or by diferent implementation
aspects. Furthermore, to tackle C3, when a factor is selected, additional information is presented
in a details section and related literature is linked.</p>
        <p>
          Modeling Tab(s) For each created or imported software architecture model a new modeling
tab is added. Therefore it is possible to work on multiple models at the same time. The
initial modeling prototype which is now integrated in this tab was presented by Dürr and
Lichtenthäler [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. In that work, we also considered diferent modeling options ( C1) and decided
to build on the TOSCA standard [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] because of its extensibility. Therefore we created a TOSCA
profile that defines the diferent entity types required to model architectures of cloud-native
applications and to evaluate them. With the decision for TOSCA it is in general possible to
import models created with our tool also in other tools (C2) which support the TOSCA standard
(e.g. Winery [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]). Currently, only an import and export for our TOSCA extension and for a
custom JSON format is supported, but a mapping to formats of Infrastructure as Code (IaC)
tools could also be implemented. The modeling itself uses a graphical notation taking into
account principles [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] for clarity and understandability (tackling C3). Additionally, also for the
architectural models filters are available for temporarily focusing only on certain entities ( C4).
        </p>
        <p>Evaluation Tab In this tab, an architectural model can be selected for evaluation. For the
product factors the values of specified measures are calculated and interpreted based on specified
evaluations. With these evaluations, in turn, the quality aspects are evaluated and the results
are presented with details so the user can comprehend their calculation (C3). Furthermore,
either the perspective of product factors or of quality aspects can be selected (C4).</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Implementation</title>
        <p>The tool is implemented as a Single Page Application (SPA) using Typescript and Vue.js. It
runs entirely in the browser of the user and does not have an additional backend. This design
is intentional to simplify hosting (it is currently hosted using Github Pages) and support the
reproducibility of our approach. Accordingly, it is open source and available at Github4, meaning
that it can also be modified according to own needs ( C5). Internally, the application is structured
in four main parts represented by folders underneath src (see also fig. 1): In core, the entities
are implemented as plain classes, but with a flexible properties attribute that is filled based on the
underlying TOSCA extension. Therefore, properties can be specified only in TOSCA and the tool
automatically adopts them. Furthermore, the quality model is specified in plain JSON and can be
modified as such ( C5) with changes being reflected in the tool. In qualitymodel, the quality
model tab is implemented, solely depending on the specification of the model in core. Similarly,
evaluation includes the code for the evaluation tab, depending solely on the code in core to
evaluate a System entity based on the specified quality model and implemented measures and
evaluations. Finally, modeling provides the modeling tab implementation based on JointJS. For
each entity, a diagramming shape is specified and the properties editor dynamically includes
the properties of each entity type.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Development Roadmap</title>
        <p>The tool is in active development. While the modeling functionality and the visualization of the
quality model are considered done, the evaluation functionality is being worked on: Specifically,
additional measure calculations need to be defined and implemented. Where applicable, this
also means additional properties need to be added to entities so that measures can be calculated.
Finally, the evaluation tab should display all such relevant information in a structured way (C3).</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>This work presents the current state of the tool. However, it is refined in parallel with the
overall approach. The tool enables the practical application of the approach, so that it can be
tested and improved. Through quality evaluation results, useful features or required changes
for the tool are uncovered. We therefore expect an ongoing development of both the approach
and the tool when applying them to use cases, as we plan to do in future work.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kratzke</surname>
          </string-name>
          , P.-C.
          <article-title>Quint, 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>
          (
          <year>2017</year>
          )
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jss.
          <year>2017</year>
          .
          <volume>01</volume>
          .001.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Gannon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Barga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sundaresan</surname>
          </string-name>
          ,
          <string-name>
            <surname>Cloud-Native</surname>
            <given-names>Applications</given-names>
          </string-name>
          ,
          <source>IEEE Cloud Computing</source>
          <volume>4</volume>
          (
          <year>2017</year>
          )
          <fpage>16</fpage>
          -
          <lpage>21</lpage>
          . doi:
          <volume>10</volume>
          .1109/
          <string-name>
            <surname>mcc</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <volume>4250939</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R.</given-names>
            <surname>Lichtenthäler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fritzsch</surname>
          </string-name>
          , G. Wirtz,
          <article-title>Cloud-Native Architectural Characteristics and their Impacts on Software Quality: A Validation Survey</article-title>
          , in: 2023
          <source>IEEE International Conference on Service-Oriented System Engineering (SOSE)</source>
          ,
          <source>IEEE Computer Society</source>
          , Los Alamitos, CA, USA,
          <year>2023</year>
          . doi:
          <volume>10</volume>
          .1109/SOSE58276.
          <year>2023</year>
          .
          <volume>00008</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>T.</given-names>
            <surname>Cerny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Svacina</surname>
          </string-name>
          ,
          <string-name>
            <surname>D. Das</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Bushong</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Bures</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Tisnovsky</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Frajtak</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Huang</surname>
          </string-name>
          ,
          <article-title>On Code Analysis Opportunities and Challenges for Enterprise Systems</article-title>
          and Microservices, IEEE Access 8
          <article-title>(</article-title>
          <year>2020</year>
          )
          <fpage>159449</fpage>
          -
          <lpage>159470</lpage>
          . doi:
          <volume>10</volume>
          .1109/access.
          <year>2020</year>
          .
          <volume>3019985</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Lichtenthäler</surname>
          </string-name>
          , G. Wirtz,
          <article-title>Towards a Quality Model for Cloud-native Applications</article-title>
          ,
          <source>in: Service-Oriented and Cloud Computing</source>
          , Springer,
          <year>2022</year>
          , pp.
          <fpage>109</fpage>
          -
          <lpage>117</lpage>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>031</fpage>
          -04718-
          <issue>3</issue>
          _
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>R. H. de Souza</surname>
            ,
            <given-names>P. A.</given-names>
          </string-name>
          <string-name>
            <surname>Flores</surname>
            ,
            <given-names>M. A. R.</given-names>
          </string-name>
          <string-name>
            <surname>Dantas</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Siqueira</surname>
          </string-name>
          ,
          <article-title>Architectural recovering model for distributed databases: A reliability, availability and serviceability approach</article-title>
          ,
          <source>in: Symposium on Computers and Communication (ISCC)</source>
          , IEEE,
          <year>2016</year>
          . doi:
          <volume>10</volume>
          .1109/iscc.
          <year>2016</year>
          .
          <volume>7543799</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>K.</given-names>
            <surname>Dürr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lichtenthäler</surname>
          </string-name>
          ,
          <article-title>An evaluation of modeling options for cloud-native application architectures to enable quality investigations</article-title>
          ,
          <source>in: 2022 IEEE/ACM 15th International Conference on Utility and Cloud Computing (UCC)</source>
          , IEEE,
          <year>2022</year>
          . doi:
          <volume>10</volume>
          .1109/ucc56403.
          <year>2022</year>
          .
          <volume>00053</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>OASIS</surname>
          </string-name>
          ,
          <source>TOSCA Simple Profile in YAML Version 1.3</source>
          ,
          <year>2020</year>
          . URL: https://docs.oasis-open. org/tosca/TOSCA-Simple-Profile-YAML/
          <year>v1</year>
          .3/, oASIS Standard.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>O.</given-names>
            <surname>Kopp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Binz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <article-title>Winery - A Modeling Tool for TOSCABased Cloud Applications</article-title>
          , Springer Berlin Heidelberg,
          <year>2013</year>
          , pp.
          <fpage>700</fpage>
          -
          <lpage>704</lpage>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>642</fpage>
          -45005-1_
          <fpage>64</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10] D. Moody, The “physics”
          <article-title>of notations: Toward a scientific basis for constructing visual notations in software engineering</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>35</volume>
          (
          <year>2009</year>
          )
          <fpage>756</fpage>
          -
          <lpage>779</lpage>
          . doi:
          <volume>10</volume>
          .1109/tse.
          <year>2009</year>
          .
          <volume>67</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>