<!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 and Executing Service Interactions using an Agent-oriented Modeling Language</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Christian Hahn</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ingo Zinnikus</string-name>
          <email>Ingo.Zinnikusg@dfki.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DFKI GmbH Stuhlsatzenhausweg 3 66123 SaarbruÄcken</institution>
        </aff>
      </contrib-group>
      <fpage>37</fpage>
      <lpage>40</lpage>
      <abstract>
        <p>Modern information systems are considered as collection of independent units called services that interact with each other through the exchange of messages. This paper focuses on interactions from a more centralized or global perspective (i.e. choreography), validates the underlying approach to model interactions, and discusses how choreographies can be executed with an established agent-oriented programming language basing on the principles of model-driven development.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Service-oriented architectures (SOAs) as an approach to design and implement
modern information systems (ISs) aim to support business process management
within an organization and across organizational borders. At this services are
employed to perform tasks within these processes and processes themselves can
be exposed as services. In these kinds of settings, service interactions are at the
center of attention where two complementary perspectives can be distinguished.</p>
      <p>
        Recently, several approaches have been proposed to describe the interaction
between entities either from a local (e.g. Business Process Execution Language)
or global perspective (e.g. Web Service Choreography Description Language). In
this paper, we propose an agent-based approach as agent systems provide several
built-in features and concepts that allow to execute SOAs in a nice manner (see
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for more details).
      </p>
      <p>
        A lot of e®ort has been undertaken to identify the most common
interaction scenarios from a business perspective, which have been published as service
interaction patterns by Barros et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. We take these patterns as a base and
demonstrate how a platform independent domain speci¯c modeling language for
multiagent systems called Dsml4Mas ful¯lls the proposed requirements.
Furthermore, we also aim at providing an agent-based model-driven methodology
that allows executing choreographies.
      </p>
      <p>In the remainder of this paper we discuss a selected interaction pattern and
demonstrate how choreographies can be transformed to executable code by
applying principles of model-driven development.</p>
    </sec>
    <sec id="sec-2">
      <title>A Platform Independent Modeling Language for</title>
    </sec>
    <sec id="sec-3">
      <title>Multiagent Systems</title>
      <p>Dsml4Mas de¯nes a graphical language that could be used to de¯ne agent
systems independent of any existing agent-oriented programming language (AOPL).
However, model transformations can be applied to generate code with respect
to selected AOPLs.</p>
      <p>Dsml4Mas is divided into several viewpoints (e.g. agent, organization,
behavior, etc,), however, in this paper we mainly focus on the interaction aspect
and demonstrate how to model the proposed service interaction patterns.</p>
      <p>In general, an Interaction refers to a set of Messages and Actors that make
use of these Message for the purpose of interaction. The Actor can again refer
to a set of Actors as subactors, meaning that the set of instances performing
the superactor is split into the several subactors. In general, the subactors are
determined at design time, but ¯lled with the particular instances that perform
this kind of role at run-time. Furthermore, a Protocol that should be considered
as a specialization of an Interaction refers to a set of MessageFlows that specify
how the exchange of Messages is proceed.</p>
      <p>The MessageFlows again refer to a set of Actors that are active in the current
state, i.e. those instances that send the particular Messages. Furthermore, it
speci¯es a join and fork operator which are both of the type MessageScope that
de¯nes the Messages and their order how these arrive. In particular, this means
that Messages are connected via a None, Parallel, Loop, Sequence, XOR, or OR
operator. Furthermore, the MessageFlow refers to a TimeOut that speci¯es the
latest point in time a Message should arrive. Beside Messages that are sent, the
MessageFlow may also refer to Protocols that are initiated at some speci¯c point
in time in the parent Protocol in order to execute nested protocols.</p>
    </sec>
    <sec id="sec-4">
      <title>Modeling Service Interaction Patterns using Dsml4Mas</title>
      <p>
        Barros et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] consolidate recurrent scenarios and abstract them in a way
that provides reusable knowledge. They distinguish between four groups of
patterns, however, we focus on the single-transmission patterns in which a party
involved may send or receive multiple messages but as part of di®erent interaction
threads dedicated to di®erent parties. A speci¯c case is pattern 7: One-to-many
send/receive. Here, a party X sends a request message to several other parties
Y1,...,Yn, which may all be identical or logically related. Responses are expected
within a given timeframe. However, some responses may not arrive within the
timeframe. The interaction may complete successfully or not depending on the
set of responses gathered. Fig. 1 depicts the one-to-many send/receive pattern
using Dsml4Mas. The parties are again modeled as Actors, where the atomic
entities Y1,...,Yn are bound to Actor Y. Sending a Message to an Actor means
that the particular Message is sent to each instance that is bound to the target
Actor. This means that Message M1 is sent to each of the Y1,...,Yn in parallel.
When receiving M1, each of these entities sends the corresponding answer
Message M2 to Actor X. A TimeOut ensures that the interaction does not end up
in a deadlock.
4
      </p>
    </sec>
    <sec id="sec-5">
      <title>Model-driven Methodology to Generate Executable</title>
    </sec>
    <sec id="sec-6">
      <title>Code</title>
      <p>
        In this section, the transformation from the local perspective to the agent-based
execution platform JACK is given. JACK is a process-centric agent-based
programming language that bases on principle of the belief-desire-intention theory
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. We ¯rstly introduce the core concepts of JACK. Due to space restrictions
this is a very rough summary, however, a detailed overview regarding the JACK
metamodel can be found in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The most relevant concept in JACK is the
concept of a Team, which can be either an atomic Agent, or a set of required Roles
(i.e. subteams) that all together form the Team. A Role speci¯es which Events
the role ¯llers are able to react to and send. How a Team actually reacts to an
incoming request is speci¯ed by a set of TeamPlans.
      </p>
      <p>
        The transformation to the JACK metamodel uses pattern 7 as an input
model. We generate a Team for each Actor that performs a particular role (e.g.
Role X for team X) and requires Roles (e.g. Role Y) to which the Messages
in the Dsml4Mas behavior model are sent (cf. Fig. 2). The Messages of the
Dsml4Mas model are mapped to Events in JACK (e.g. event M1 and M2). For
each Plan in the behavior model, we instantiate a TeamPlan that is used by the
particular Team (e.g. XSendM1 and XReceiveM2). The body of the TeamPlans
is mainly generated in an one-to-one manner from the Plans in Dsml4Mas.
For instance, the XSendM1 TeamPlan (Fig. 2 right-hand side) also includes a
parallel statement that iterates over the various role ¯llers and sends the event
instance m1 of M1 to the role ¯llers y. The parallel statement ends if the Event
has been sent to all role ¯llers. We refer to [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] for more detailed information
regarding the model transformation from Dsml4Mas to JACK.
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>This paper discusses an agent-based approach to describe choreography-based
interactions. Therefore, we proposed a modeling language for multiagent systems
called Dsml4Mas and demonstrated that Dsml4Mas supports modeling the
proposed service interaction patterns. The main result of this evaluation is that
each pattern|in contrast to other proposed standards|can nicely be described.</p>
      <p>Based on Dsml4Mas, we discussed a model-driven methodology to derive
code based on the choreography description. The Dsml4Mas model that
includes the particular generated behavior model is mapped to an agent-based
programming language JACK that ¯nally executes the choreography
description.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Zinnikus</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hahn</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fischer</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>An agent-based, model-driven approach for enabling interoperability in the area of multi-brand vehicle con¯guration</article-title>
          .
          <source>In: Proceedings of the 5th Conference on Service-Oriented Computing. Volume 4749 of Lecture Notes in Computer Science</source>
          ., Springer (
          <year>2007</year>
          )
          <volume>330</volume>
          {
          <fpage>341</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Barros</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ter Hofstede</surname>
            ,
            <given-names>A.H.M.:</given-names>
          </string-name>
          <article-title>Service interaction patterns</article-title>
          . In van der Aalst,
          <string-name>
            <given-names>W.M.P.</given-names>
            ,
            <surname>Benatallah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Casati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Curbera</surname>
          </string-name>
          , F., eds.: Business Process Management. Volume
          <volume>3649</volume>
          . (
          <year>2005</year>
          )
          <volume>302</volume>
          {
          <fpage>318</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Rao</surname>
            ,
            <given-names>A.S.</given-names>
          </string-name>
          , George®,
          <string-name>
            <surname>M.P.</surname>
          </string-name>
          :
          <article-title>Modeling agents within a BDI-architecture</article-title>
          . In Fikes, R.,
          <string-name>
            <surname>Sandewall</surname>
          </string-name>
          , E., eds.
          <source>: Proceedings of the 2rd International Conference on Principles of Knowledge Representation and Reasoning</source>
          , Morgan Kaufmann (
          <year>1991</year>
          )
          <volume>473</volume>
          {
          <fpage>484</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Hahn</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A domain speci¯c modeling language for multiagent systems</article-title>
          .
          <source>In: Proceedings of the Seventh International Conference on Autonomous Agents and Multiagent Systems (AAMAS)</source>
          .
          <article-title>(</article-title>
          <year>2008</year>
          )
          <article-title>(accepted).</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>