<!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>Novel Opportunities for Tuple-based Coordination: XPath, the Blockchain, and Stream Processing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefano Mariani</string-name>
          <email>stefano.mariani@unimore.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrea Omicini</string-name>
          <email>andrea.omicini@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giovanni Ciatto</string-name>
          <email>giovanni.ciatto@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science and Engineering Universita` di Bologna Cesena</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Sciences and Methods for Engineering Universita` degli Studi di Modena e Reggio Emilia Reggio Emilia</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>61</fpage>
      <lpage>64</lpage>
      <abstract>
        <p>-The increasing maturity of some well-established technologies - such as XPath - along with the sharp rise of brand-new ones - i.e. the blockchain - presents new opportunities to researchers in the field of multi-agent coordination. In this position paper we briefly discuss a few technologies which, once suitably interpreted and integrated, have the potential to impact the very roots of tuple-based coordination as it stems from the archetypal LINDA model.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        In spite of their age – the original L INDA model dates back
to more than thirty years ago [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] – coordination models have
still to reach their full maturity and diffusion in real-world
applications. This is mostly due to their early emergence in
the literature: open distributed systems, where coordination is
a key issue, have become common practice in the software
engineering area only in the last decade [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Nevertheless,
coordination models and technologies are to become essential
in forthcoming scenarios such as the Internet of Things (IoT)
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], as well as in applications where the need for pervasive
intelligence [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] can be addressed effectively by multi-agent
systems (MAS) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Thus, the next decade is likely to determine the extent to
which coordination technologies may impact on real
applications. Their success is going to depend, on the one hand, on the
expressiveness of coordination models, since the complexity of
application scenarios is growing steadily; on the other hand, on
the ability of coordination middleware to integrate and exploit
the novel technologies emerging from the newest application
areas, since that would promote industry adoption.</p>
      <p>
        Accordingly, in this position paper we speculate on the
opportunities provided by a few technologies – some
wellestablished, some brand-new – once they are integrated within
the most expressive and developed coordination models, that
is, tuple-based ones [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Thus, in the remainder of this paper
we first (Section II) briefly introduce the enabling technologies
– namely, XPath, the blockchain, and stream processing –
then (Section III) we foresee their impact on tuple-based
coordination models and technologies, finally we provide the
reader with some conclusive remarks along with an outlook
on future research (Section IV).
      </p>
    </sec>
    <sec id="sec-2">
      <title>II. ENABLING TECHNOLOGIES</title>
      <p>Our elaboration on the novel opportunities for tuple-based
coordination models takes its move from three promising
technologies: XPath, a well-established technology whose
potential impact on observability of tuples and pattern matching
(Subsection II-A) has been largely overlooked; the blockchain,
which has recently got momentum amongst both industry
practitioners and research teams in academia (Subsection II-B);
and stream processing, which has been around for a while but
is now more affordable and pervasive than ever before,
especially if in-stream processing is concerned (Subsection II-C).</p>
      <sec id="sec-2-1">
        <title>A. XPath</title>
        <p>
          XPath [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] is a major element in the XSLT standard, aimed
at enabling easy navigation through elements and attributes of
an XML document.
        </p>
        <p>XPath provides developers with path expressions, making
it possible to select nodes (or sets of nodes) in an XML
document: element, attribute, text, namespace,
processinginstruction, comment, and document nodes, organised in a
tree-like structure—whose root is, indeed, the XML document
root element. Nodes have relationships – namely, parent,
children, siblings, ancestors, and descendants – that XPath
allows to be easily navigated by exploiting path expressions,
which are combinations of the name of an XML node/attribute,
selection symbols (i.e. // enabling to match nodes
wherever they are in current XML document), predicates (i.e.
position() enabling to precisely match nodes among
siblings), and wildcard symbols (i.e. @* to match any attribute
node). As an example, path expression</p>
        <p>/bookstore/book[position()&lt;3]
matches the first two book nodes children of the bookstore
element, whereas
matches all title elements which have at least one attribute
(regardless of its kind).</p>
        <p>XPath path expressions can be even more expressive by
exploiting XPath axes, which define sets of nodes relative
to the current one, such as ancestor (to match parents,
grandparents, etc. of the current node), descendant (to
match children, grandchildren, etc.), following-sibling
to match all the siblings after the current element—and many
others1. A complete path expression is thus made up of an
axis, a node selection instruction, and optionally a predicate
for further filtering. As an example, path expression
child::*/child::price
matches all price grandchildren of the current node.</p>
        <p>
          By combining all the above XPath language constructs,
many interesting and novel forms of pattern matching for
tuple-based coordination can be conceived, thus providing a
new dimension for associative access, a typical feature of such
a models [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. For instance, it is possible to select an XML
element (tuple argument) regardless of its location within the
XML document (tuple), that is, with no clue on the structure
of the XML document itself (i.e. depth and breadth of the tree
or a given sub-tree)—as further commented in Section III.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Blockchain</title>
        <p>
          The blockchain is a shared ledger distributed across a
network [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] where transactions are verified against programmed
rules of the blockchain itself, and persistently tracked in
append-only blocks within the ledger itself. Permissionless
blockchains are open: any participant can view transactions,
even anonymously—as in Bitcoin blockchain [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Instead,
permissioned blockchains allow participants to inspect solely
those transactions relevant to them—as in the Hyperledger
Project [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>Transactions are asset transfers onto or off of a ledger,
whose blocks are synchronised with all other ledgers in the
same network. Consensus among nodes (copies of the ledger)
about transactions verification occurs through programmed
rules called smart contracts, and ensures that ledgers are
exact copies, lowering the risk of fraudulent operations—
statistically, because tampering would have to involve many
nodes simultaneously. Smart contracts are programs directly
executing on the blockchain network, which encode the
business rules that transactions must abide to so as that all
participants can enforce verification consistently. Cryptographic
hashes and asymmetric key encryption complete the picture
by guaranteeing blocks’ integrity and identification of
participants, respectively, with no need for a secure communication
channel.</p>
        <p>
          Whether it is used within its most famous business domain
– that is, supporting cryptocurrencies such as Bitcoin [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
– or in other areas such as supply chain management and
medical records tracking [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], the blockchain is explicitly
conceived to tackle all the problems of business transactions
1See https://www.w3schools.com/xml/xpath axes.asp
in open networks, at once. As a result, with the blockchain (i)
establishing trust between parties is no longer necessary, since
they only have to trust the technology—the blockchain; (ii)
transparency comes for free, as the ledger is distributed and
all peers involved in a transaction perceive the same state of
the blockchain; (iii) accountability, too, is naturally supported
as for transparency.
        </p>
        <p>
          As it will be further elaborated in Section III, the blockchain
technology could play a fundamental role in expanding the
business domains suitable for tuple-based coordination while
also improving infrastructural support. For instance, (i) nodes
synchronisation and consensus may well support
implementation of distributed tuple spaces – traditionally based on
distributed hash tables techniques [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] –; (ii) smart contracts
may be exploited as a means to consistently enforce global
coordination rules [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]; (iii) transactions may play the role of
tuple space primitives in privacy/security demanding
application domains.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>C. Stream Processing</title>
        <p>
          In its very essence, a stream processing engine is just a
sort of data processing engine that is designed to deal with
infinite data sets [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Many other definitions exist, typically
focussing on specific issues of stream processing, such as
whether they process data in (near) real-time or in batch mode,
whether they fetch and post data to databases or devices (in
the former case they are often called query engines), etc. With
the aim of being as much inclusive as possible w.r.t. actual
streaming technologies – many of which are maintained by
the Apache Foundation2 – we prefer to stick with the more
essential definition provided.
        </p>
        <p>
          Stream processing engines are a de facto standard for
implementing the big data infrastructures underlying many
IoT applications [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], where they are often merely exploited
as gateway components pushing data to centralised
cloudbased analytics platforms—thus, they are mostly used in
batch processing mode, on finite slices of data. Our focus
here is instead on in-stream processing, that is, actually, on
unbounded streams of data which are continuously processed
in order to keep the rest of the system up-to-date with the
most recent information.
        </p>
        <p>In-stream processing engines are usually composed by a
front-end of fault-tolerant data buffers for storing incoming
streams, a back-end of stream filters and processors
coordinating to split the computational load and re-assemble results, and
a storage layer for both processing state and output data. The
front-end takes care of some crucial services such as stream
replay, that is, the possibility to rollback a stream to fetch older
data, possibly already processed, in case of failures of any
kind. The back-end of processing nodes is obviously mostly
concerned with providing the functionalities regarding data
2To name the most famous ones, Apache Storm (http://storm.apache.org/),
Apache Spark (https://spark.apache.org/), and Apache Kafka (https://kafka.
apache.org/). A less-known and relatively recent but promising stream
processing engine specifically conceived for on-board processing in IoT scenarios
worth mentioning is Apache Edgent (http://edgent.apache.org/docs/overview).
aggregation required by the application at hand, but may also
be in charge of providing ancillary services such as lineage
tracking, that is, correlation of streaming and processing events
stemming from the same lineage of descendants for monitoring
and debugging purpose.</p>
        <p>In Section III we discuss how stream processing techniques
may fruitfully integrate with tuple-based coordination as well
as with the other technologies mentioned in this section. For
instance, if a data stream in mapped onto a (set of)
XMLtuple(s), continuously updated and observed through XPath
queries, a slew of novel opportunities arise. On the one
hand, stream processing may bring to tuple-based coordination
(near) real-time efficiency; on the other hand, it may benefit
of tuple spaces as a form of buffering for stream replay, and
of blockchain transactions and smart contracts to guarantee
lineage tracking.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. IMPACT ON TUPLE-BASED COORDINATION</title>
      <p>
        Tuple-based coordination constitutes the most relevant and
suitable class of models and technologies for managing the
interaction space in complex software systems such as mas
and pervasive intelligent applications [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In the remainder
of this section, we foresee the potential impact of the
technologies briefly presented in Section II on the coordination of
complex software systems via tuple spaces.
      </p>
      <sec id="sec-3-1">
        <title>A. Novel Application Domains</title>
        <p>
          Privacy demanding application domains, for instance and
most notably healthcare-related ones, may in principle be
troublesome for tuple-based coordination, mostly because the
shared space approach requires extra-linguistic – usually,
infrastructural – means to address the issue of “ who may get
access to what” [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]—typically, the infrastructure is patched
with some support to role-based access control [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>
          Here, the kind of partial and obscure pattern matching
enabled by XPath queries comes handy to prevent interacting
agents to discover the whole structure of an information item
(i.e. an XML tuple representing a medical record from a
patient’s personal health folder) from a portion of it. In fact, on
the one hand the interacting agents are not required to know
in advance the whole tuple structure in order to be able to
perform queries – as in L INDA [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] inspired models typically
is – while, on the other hand, the behaviour of the tuple
space storing the information may be programmed to return
only the most specific piece of information which satisfies
the query—i.e. the list of the matching nodes without their
position (aka path) within the XML tuple (aka document). In
this way, privacy of sensitive information is straightforwardly
preserved by linguistic means—possibly complemented by the
usual extra-linguistic ones.
        </p>
        <p>The blockchain technology further strengthens suitability
of the novel tuple-based models here envisioned in the
aforementioned business domains by adding features such as
accountability, traceability, and transparency of interactions.
In fact, asymmetric encryption (to authenticate interacting
agents), transactions (as tuple space primitives) along with
smart contracts (as coordination laws), and the shared ledger
concept itself (as the shared tuple space) straightforwardly
enable, respectively, to: (i) univocally and securely identify
who is interacting with whom (accountability); (ii) consistently
manage distributed interactions and enforce coordination laws
while seamlessly supporting dynamic construction of
interaction traces (traceability); (iii) greatly enhancing observability
of the whole coordination process (transparency). For instance,
a blockchain-based distributed tuple space may conveniently
track medical records exchange and manipulation. In fact,
it would be naturally capable of relating interaction events
through transactions, providing for free a sort of book-keeping
of the history of interactions occurred within the system – who
accessed what, due to which previous events, leading to which
state of affairs – which is an invaluable information for, i.e.,
accountability purpose.</p>
        <p>Finally, stream processing could extend the reach of
tuplebased coordination towards IoT-related scenarios, where, on
the one hand, the pace at which data and events are generated
demands indeed for stream processing techniques, while, on
the other hand, the amount of loosely-coupled interactions
among distributed components that need to be fruitfully
governed according to a system goal requires decentralised
coordination mechanisms. There, for instance, sensor and actuator
devices may produce and consume, respectively, streams of
data in the form of tuples, and the role of streaming buffers
may be efficiently played by tuple spaces. Then, stream
filtering and processing components may coordinate to
selforganise in pipelines by relying on tuple-based coordination
to split incoming data and aggregate partial results. Moreover,
if also the blockchain enters the picture, lineage tracking
would straightforwardly be supported by transactions and
smart contracts, and fault tolerance would be greatly improved
thanks to blockchain nodes’ synchronisation.</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Increased Expressiveness</title>
        <p>Adopting XPath as the pattern matching language in a
XML-tuples setting would straightforwardly enable novel
forms of partial and obscure pattern matching: not only the
actual information content may be not known to the agent
looking for matching tuples through a suitable tuple template
– as it typically stems from L INDA’s associative access – but
also the overall structure of the information chunks possibly
matching is unknown – not the position within a tuple, nor its
depth in case of nesting tuples – and even more it cannot be
discovered as a side-effect of pattern matching itself—namely,
not the whole tuple is returned, but only a suitable portion.</p>
        <p>Such a novel form of matching mechanism would enable
fine-grained tuning of observability of information – and
interactions – directly at the language level. Furthermore,
the blockchain could complement this feature by offering the
required infrastructural support, also expanding observability
beyond tuples, towards interactions and coordination rules.</p>
        <p>
          In fact, the blockchain straightforwardly supports a form
of event correlation, by ensuring that distributed
transactions are totally ordered and consistent. Then, if transactions
represent interactions, event correlation actually translates to
coordination of interactions. The policies according to which
such a coordination process would occur are actually the
smart contracts enforced by blockchain’s nodes. Since they
are programs, expressiveness would naturally lean towards the
Turing-equivalent expressiveness of coordination languages
such as ReSpecT [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
        </p>
        <p>Then, in-stream processing techniques bring along novel
forms of (near) real-time event correlation: in particular,
lineage tracking in a tuple-based coordination setting may
enable to build not only interaction histories, but also causal
relations between interaction events occurring in the same
“interaction pipeline”—intended, for instance, as the sequence
of interactions where different components get access to the
same data, or perform the same operations on different data.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. CONCLUSION &amp; OUTLOOK</title>
      <p>
        The future of software systems is dealing with complexity,
and complexity in software systems typically comes from
interaction [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Coordination models and technologies are
naturally born to deal with that sort of complexity, by
providing software engineers with the means for harnessing the
space of interaction [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>Novel application scenarios such as pervasive intelligence
and the IoT mandate for new abstractions and tools for agent
coordination, so as to properly adapt to the specific application
requirements. In this position paper we explore the
perspectives of integrating a few novel technologies within tuple-based
coordination models – namely, XPath, the blockchain, and
stream processing – and provide some insight of their potential
impact on multi-agent coordination.</p>
      <p>
        In the next step of our research agenda we will likely
proceed either with the integration of the aforementioned
technologies within an existing coordination framework,
presumably TuCSoN [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], or with the conception and design of
a brand-new model and lightweight coordination middleware
featuring XML tuples, XPath-based coordination primitives, a
blockchain-based backbone implementing a distributed tuple
space, smart contracts and transactions as coordination rules,
and stream-processing oriented interaction paradigm for the
coordinating agents.
      </p>
    </sec>
    <sec id="sec-5">
      <title>ACKNOWLEDGMENT</title>
      <p>This work was partially supported by the CONNECARE
(Personalised Connected Care for Complex Chronic Patients)
project (EU H2020-RIA, Contract No. 689802).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Gelernter</surname>
          </string-name>
          , “Generative communication in Linda,
          <source>” ACM Transactions on Programming Languages and Systems</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>80</fpage>
          -
          <lpage>112</lpage>
          ,
          <year>1985</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <fpage>2433</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Nature-inspired coordination for complex distributed systems,” in Intelligent Distributed Computing VI, ser</article-title>
          . Studies in Computational Intelligence, G. Fortino, C. Ba˘dica˘,
          <string-name>
            <given-names>M.</given-names>
            <surname>Malgeri</surname>
          </string-name>
          , and R. Unland, Eds., vol.
          <volume>446</volume>
          . Springer,
          <year>2013</year>
          , pp.
          <fpage>1</fpage>
          -
          <issue>6</issue>
          , 6th
          <source>International Symposium on Intelligent Distributed Computing (IDC</source>
          <year>2012</year>
          ), Calabria, Italy,
          <fpage>24</fpage>
          -
          <lpage>26</lpage>
          Sep.
          <year>2012</year>
          . Proceedings. Invited paper. [Online]. Available: http://link.springer.
          <source>com/10.1007/978-3-642-32524-3 1</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gubbi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Buyya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Marusic</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Palaniswami</surname>
          </string-name>
          , “
          <article-title>Internet of Things (IoT): A vision, architectural elements, and future directions,” Future Generation Computer Systems</article-title>
          , vol.
          <volume>29</volume>
          , no.
          <issue>7</issue>
          , pp.
          <fpage>1645</fpage>
          -
          <lpage>1660</lpage>
          ,
          <year>2013</year>
          . [Online]. Available: http://www.sciencedirect.com/science/article/ pii/S0167739X13000241
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Calegari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Denti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mariani</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Logic Programming as a Service (LPaaS): Intelligence for the IoT</article-title>
          ,” in
          <source>2017 IEEE 14th International Conference on Networking, Sensing and Control (ICNSC</source>
          <year>2017</year>
          ), G. Fortino,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Lukszo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Vasilakos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Basile</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Palau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Liotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Fanti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Guerrieri</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Vinci, Eds. IEEE, May
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Mariani</surname>
          </string-name>
          ,
          <article-title>A“gents &amp; multiagent systems: En route towards complex intelligent systems,” Intelligenza Artificiale</article-title>
          , vol.
          <volume>7</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>153</fpage>
          -
          <lpage>164</lpage>
          , Nov.
          <year>2013</year>
          ,
          <article-title>Special Issue Celebrating 25 years of the Italian Association for Artificial Intelligence</article-title>
          . [Online]. Available: http://content.iospress.com/articles/intelligenza-artificiale/
          <year>ia056</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Rossi</surname>
          </string-name>
          , G. Cabri, and E. Denti, “
          <article-title>Tuple-based technologies for coordination,” in Coordination of Internet Agents: Models, Technologies, and</article-title>
          <string-name>
            <surname>Applications</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Omicini</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Zambonelli</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Klusch</surname>
          </string-name>
          , and R. Tolksdorf, Eds. Springer, Jan.
          <year>2001</year>
          , ch. 4, pp.
          <fpage>83</fpage>
          -
          <lpage>109</lpage>
          . [Online]. Available: http://link.springer.
          <source>com/10.1007/978-3-662-04401-8 4</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>“</surname>
            <given-names>XML</given-names>
          </string-name>
          <string-name>
            <surname>Path</surname>
          </string-name>
          <article-title>Language (XPath) 3</article-title>
          .1,”
          <fpage>W3C</fpage>
          . [Online]. Available: http://www.w3.org/TR/xpath-3/
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Underwood</surname>
          </string-name>
          , “Blockchain beyond Bitcoin,”
          <source>Communications of the ACM</source>
          , vol.
          <volume>59</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>17</lpage>
          , Nov.
          <year>2016</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <volume>3013530</volume>
          .
          <fpage>2994581</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>“</given-names>
            <surname>Bitcoin</surname>
          </string-name>
          .” [Online]. Available: http://bitcoin.org/
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10] “Hyperledger,”
          <article-title>The Linux Foundation</article-title>
          . [Online]. Available: http: //www.hyperledger.org/
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Xue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>You</surname>
          </string-name>
          , “
          <article-title>DTuples: A distributed hash table based tuple space service for distributed coordination</article-title>
          ,
          <source>” in 5th International Conference on Grid and Cooperative Computing (GCC</source>
          <year>2006</year>
          ), Oct.
          <year>2006</year>
          , pp.
          <fpage>101</fpage>
          -
          <lpage>106</lpage>
          . [Online]. Available: http: //ieeexplore.ieee.org/document/4031440/
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciancarini</surname>
          </string-name>
          , “
          <article-title>Coordination models and languages as software integrators,” ACM Computing Surveys</article-title>
          , vol.
          <volume>28</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>300</fpage>
          -
          <lpage>302</lpage>
          , Jun.
          <year>1996</year>
          . [Online]. Available: http://dl.acm.org/citation.cfm?doid=
          <fpage>234732</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Marz</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Warren</surname>
          </string-name>
          ,
          <article-title>Big Data: Principles and best practices of scalable realtime data systems</article-title>
          .
          <source>Manning Publications Co.</source>
          ,
          <year>2015</year>
          . [Online]. Available: http://www.manning.com/books/big-data
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          , “
          <article-title>Coordination models and languages: From parallel computing to self-organisation,” The Knowledge Engineering Review</article-title>
          , vol.
          <volume>26</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>59</lpage>
          , Mar.
          <year>2011</year>
          , Special Issue
          <volume>01</volume>
          (
          <issue>25th Anniversary Issue</issue>
          ). [Online]. Available: http://journals.cambridge.org/abstract S026988891000041X
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>N.</given-names>
            <surname>Busi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gorrieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lucchi</surname>
          </string-name>
          , , and G. Zavattaro, “
          <article-title>Secspaces: a datadriven coordination model for environments open to untrusted agent</article-title>
          ,
          <source>” Electronic Notes in Theoretical Computer Science</source>
          , vol.
          <volume>68</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>310</fpage>
          -
          <lpage>327</lpage>
          ,
          <year>2003</year>
          . [Online]. Available: http://www.sciencedirect.com/ science/article/pii/S1571066105803755
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          , “
          <article-title>Infrastructure for RBAC-MAS: An approach based on Agent Coordination Contexts</article-title>
          ,
          <source>” Applied Artificial Intelligence</source>
          , vol.
          <volume>21</volume>
          , no.
          <issue>4-5</issue>
          , pp.
          <fpage>443</fpage>
          -
          <lpage>467</lpage>
          , Apr.
          <year>2007</year>
          . [Online]. Available: http://www.tandfonline.com/doi/abs/10.1080/08839510701253674
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>Formal ReSpecT in the A&amp;A perspective,”</article-title>
          <source>Electronic Notes in Theoretical Computer Science</source>
          , vol.
          <volume>175</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>97</fpage>
          -
          <lpage>117</lpage>
          , Jun.
          <year>2007</year>
          . [Online]. Available: http://www.sciencedirect.com/science/ article/pii/S1571066107003519
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Wegner</surname>
          </string-name>
          , “
          <article-title>Why interaction is more powerful than algorithms</article-title>
          ,
          <source>” Communications of the ACM</source>
          , vol.
          <volume>40</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>80</fpage>
          -
          <lpage>91</lpage>
          , May
          <year>1997</year>
          . [Online]. Available: http://portal.acm.org/citation.cfm?id=
          <fpage>253801</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>-</surname>
          </string-name>
          , “
          <article-title>Coordination as constrained interaction,” in Coordination Languages and Models</article-title>
          . First International Conference, COORDINATION '96 Cesena, Italy,
          <source>April 15-17</source>
          ,
          <year>1996</year>
          . Proceedings , ser. Lecture Notes in Computer Science, P. Ciancarini and C. Hankin, Eds. Springer Berlin Heidelberg, Apr.
          <year>1996</year>
          , vol.
          <volume>1061</volume>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>33</lpage>
          . [Online]. Available: http://link.springer.
          <source>com/10.1007/3-540-61052-9 37</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          , “
          <article-title>Coordination for Internet application development</article-title>
          ,” Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , vol.
          <volume>2</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>251</fpage>
          -
          <lpage>269</lpage>
          , Sep.
          <year>1999</year>
          , Special Issue:
          <article-title>Coordination Mechanisms for Web Agents</article-title>
          . [Online]. Available: http://link.springer.com/10.1023/A: 1010060322135
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>