<!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>Self-Configuring Mashup of Cloud Applications</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>A.Cavaleri</institution>
          ,
          <addr-line>M. Cossentino, C. Lodato, S. Lopes, L. Sabatucci ICAR-CNR, Palermo</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>68</fpage>
      <lpage>73</lpage>
      <abstract>
        <p>-This paper presents a general approach for automatic composing and orchestrating applications distributed over the cloud. The process is driven by user requirements that are made explicit though a goal specification language. The self-configuration module dynamically organizes a mashup application by composing existing cloud application as atomic brick to compose. Finally the orchestrator module is responsible of a seamless enacting of the selected cloud applications. A prototype has been implemented as a multi agent system for implementing the business process for a company working for fashion firms.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Cloud computing focuses on maximizing the effectiveness
of shared resources and information (that are provided to
users on-demand) and reducing the overall cost by using less
power, air conditioning, rack space, etc. Cloud applications
are currently developed as monolithic solutions tethered to
proprietary stack architectures in which the provider typically
runs all elements of the service [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. These architectures are a
barrier for third-part developers to mix and match services
freely from diverse cloud service tiers to configure them
dynamically to address application needs [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>The objective of Cloud Application Mashup is to enable
easy customization and composition of SaaS applications from
many providers by providing a cohesive solution that offers
improved functionality to the client. In this paper we report a
practical experience of Cloud Application Mashup that derives
from a background of research in self-configuring system and
dynamic workflow composition.</p>
      <p>
        We describe an architecture for closing the gap between
goal-oriented requirement engineering [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and autonomous
systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] with the aim of creating a highly customizable
orchestration of distributed services. The request for a mashup
is based on a technique we called goal-injection: a goal is the
high-level specification of the kind of service desired by the
user. Goal orientation is used for decoupling the specification
of what the system has to do from how it will be done. Service
compositions must not be programmed. Once a goal has been
introduced into the system, it becomes a stimulus for
selfconfiguring ad-hoc solutions in order to fulfill the request.
The basic assumption is to make available some wrappers for
existing services and cloud applications, namely capabilities. It
is a responsibility of the system to aggregate capabilities thus
to obtain composed behavior. Finally, orchestration is based
on establishing (temporary) collaborations between services
according to self-configured conditions. A prototype has been
developed as a multi-agent system for implementing a
customer service business process of the B2B process of a big
fashion firm 1.
      </p>
      <p>The paper is organized as follows: Section II presents
the concept of Cloud Application Mashup and provides a
real scenario emerged during a research project. Section III
introduces the goal-oriented language to specify user’s
requirements. Section IV describes a three layer architecture
for self-configuration that is the core for service mashup.
Section V presents the orchestrator module and describes the
ad hoc business process obtained at run-time. Related works
are discussed in Section VI whereas some Conclusions are
given in Section VII.</p>
    </sec>
    <sec id="sec-2">
      <title>II. CLOUD APPLICATION MASHUP</title>
      <p>The term mashup is a shortcoming for applications created
by integrating modular components. It originates in the context
of web applications for referring to a some kind of
collaboration between websites and/or webservices. In general a
webbased mashup is a resource that combines existing sources,
whether it is content, data or application functionality, from
more than one resource enabling end users to create and adapt
individual information centric and situational applications.</p>
      <p>So far, mashup is mainly intended as an instrument for
web developers for integrating content from more than one
source in a new single graphical interface. Enablers of web
mashup are i) popular standard-based interface/communication
technologies (such as WSDL, REST, and RSS) and ii) the
fact many Internet companies opened up their data to be used
through a set of APIs.</p>
      <p>Now, we are moving towards a variety of Web Applications
that run over the Cloud as SaaS, the new mashup trend is
mixing data but also processes.</p>
      <sec id="sec-2-1">
        <title>A. Cloud Application Mashup: The Enterprise Vision</title>
        <p>
          Cloud Applications are currently developed as monolithic
solutions in which the SaaS layer is tethered to proprietary
cloud stack architecture. The cloud provider runs all elements
of the service and presents a complete application to the
client [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. This architecture hinders third-part developers to
mix and match services freely from diverse cloud service
tiers to configure them dynamically to address application
needs [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>Cloud Application Mashup objective is to surpass vendor
lock-in (i.e. the situation in which customers are dependent
1The research was partially funded by the Autonomous Region of Sicily,
Project OCCP (Open Cloud Computing Platform), within the Regional
Operative Plans (PO-FESR) of the EU Community.
on a single manufacturer or supplier for some product) in
order to customize and combine SaaS applications from many
providers. It provides ways to orchestrate a cohesive solution
that assembles virtual services in order to offer improved
functionality to the client.</p>
        <p>We refined the current vision of Cloud Application Mashup
as follows:
• Cloud services will be available via a cloud
marketplace in which providers store their offerings. Clients
can discover and buy the needed services for
thirdparty cloud applications that they can use for their own
mashup. Cloud services will be available through an
adhoc description language that provides all the relevant
aspects for their integration and usage.
• Mashups are created for the consuming user, often
directly by the users themselves, so that they can take
advantage of software licensing and billing model based on
the pay-per-use concept. Therefore users will establish or
modify situational collaborations for integrating services
from a variety of cloud providers.
• There will be a mashup engine, offered as SaaS to clients.</p>
        <p>It will act as a mediator for atomic cloud services in order
to realize user’s mashup application.</p>
        <p>
          This vision may have substantial value for IT in this
approach by improving the return-on-assets of the existing
systems since Mashup enables fast and flexible B2B collaboration
(short development cycles, cheap development) whereas
existing B2B collaboration solutions focus on long-term business
relationships [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Short and cheap development cycles make
B2B solutions available for small and medium enterprises.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Preliminary Definitions</title>
        <p>
          In this subsection we introduce some concepts that are used
along the paper. For the sake of clarity the definitions are
provided in informal way, however, for the formal counterpart
please refer to [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>
          The concept of goal is often used in the context of business
process. A Goal is “a desired change in the state of the world
an actor wants to achieve”. Goals represent enterprise strategic
interests that motivate the execution of business processes [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
A Goal Model is a requirement engineering conceptual model
used to depict the strategic rationale of a business process
in the form of a hierarchy of goals. It basically provides a
hierarchical decomposition of goals into sub-goals through
AND/OR operators. In our approach goal-models are used to
specify the business logic of the desired service composition
in terms of which outcome the user will receive.
        </p>
        <p>A Capability is a wrapper for cloud applications and
services that introduces a semantic description layer. It allows
the developer to specify i) how to invoke the specified
functionality (which data must be passed and which data will be
returned) and ii) which effect is expected by executing the
encapsulated application or service. The capability also has
the advantage of being automatically composable in order to
address a complex result.</p>
      </sec>
      <sec id="sec-2-3">
        <title>C. A B2B Cloud Application for Fashion Firms</title>
        <p>A big manufacturer company who works in fashion
(FashionFirm 2) uses a legacy system to manage its
information system (IBM AS/400) . They decided to improve their
commercial network and designated Company.com, a small
software house, to handle their B2B processes. The resulting
system is built as a set of services running on a cloud stack: a
set of scalable backend services (VPN) capable of interacting
with the legacy system and a SaaS eCommerce platform
(OrderPortal). The provided solution scales up very well for
increasing the volume of requests by deploying clustered
VPNs on the need.</p>
        <p>Given this existing scenario, the Company.com is demanded
to extend the FashionFirm’s business process by adding new
services for customer management. In order to improve
costeffects these new services are conceived as cloud application
mashups. This allows to fast prototype the solution by reusing
existing third part cloud applications (Cloud Calendar, File
Storage and Voicemail).</p>
        <p>The mashup application that will be used as a running
example in this paper is intended to support customer relationships
during the order management process. ManyFirmsShop is a
retailer of FashionFirm’s products. When the ManyFirmsShop
agent requests a stock of products (through the OrderPortal),
the system merges VPN (used as usual to interact with
the legacy system) with external cloud applications existing
in the market: a Cloud Storage system to deliver receipts
to ManyFirmsShop, Voicemail to communicate the delivery
status and, finally, a Cloud Calendar service for annotating
the delivery date.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. THE REQUIREMENT AWARENESS</title>
      <p>The primary driver of this work is allowing the end-user to
build her own mashup over the SaaS infrastructure according
to personal requirements. At first analysis the easier choice was
to use BPEL, the de facto standard language for orchestrating
web-services. However BPEL is a static model, whereas
selfconfiguration allows:
• integrating dynamic user’s preferences into the flow of
activities;
• introducing new services without revising the whole
workflow model;
• service failures may be discovered at run-time.</p>
      <p>
        We used self-configuration in order to configure a Cloud
Application Mashup. The most important requisite it demands
is the system be requirements-aware. A requirements-aware
system should be able to introspect about its requirements in
the same way that reflective middleware-based systems permit
introspection about their architectural configuration [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In a
requirement aware system, requirements are at the same time:
i) first class abstractions of the modeling language and ii)
runtime entities over which the system can assess and reason
about.
      </p>
    </sec>
    <sec id="sec-4">
      <title>2Names in this scenario are obfuscated for privacy reasons.</title>
      <p>
        In our approach, the GoalSPEC language [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] has been
selected for implementing requirement awareness because it
uses goals for representing user’s requirements and it provides
the necessary characteristics for enabling goal injection and
reasoning. It represents the first step in the direction of making
end-user able to autonomously sketch up her requirements. It
is based on structured English and it adopts a core grammar
in which a domain vocabulary of terms can be plugged on.
      </p>
      <p>
        In GoalSPEC a goal is composed of three main
compartments: a triggering condition (introduced by the ‘when’
keyword) that states when the goal starts to be interesting for
the system, a list of actors that are involved in, and a desired
final state (introduced by the ‘address’ keyword) that describes
what is expected in terms of states of the world. For more
details about GoalSPEC see [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>Listing 1. Set of GoalSPEC goals for the B2B scenario
GOAL t o w a i t o r d e r : WHEN MESSAGE o r d e r RECEIVED FROM</p>
      <p>THE u s e r ROLE
THE SYSTEM SHALL ADDRESS a v a i l a b l e ( Order )
GOAL t o r e t r i e v e u s e r d a t a : WHEN a v a i l a b l e ( Order )
THE SYSTEM SHALL ADDRESS a v a i l a b l e ( User )
GOAL t o c h e c k o r d e r : WHEN a v a i l a b l e ( Order ) AND</p>
      <p>a v a i l a b l e ( User )
THE SYSTEM SHALL ADDRESS a c c e p t e d ( Order ) OR r e f u s e d (</p>
      <p>Order )
GOAL t o p r o d u c e r e c e i p t : WHEN a c c e p t e d ( Order )
THE SYSTEM SHALL ADDRESS a v a i l a b l e ( R e c e i p t )
GOAL t o n o t i f y r e c e i p t : WHEN a v a i l a b l e ( User ) AND
a v a i l a b l e ( R e c e i p t )
THE SYSTEM SHALL ADDRESS
MESSAGE r e c e i p t SENT TO THE u s e r ROLE
GOAL t o d e l i v e r o r d e r : WHEN MESSAGE r e c e i p t SENT TO THE
u s e r ROLE
THE SYSTEM SHALL ADDRESS
MESSAGE d e l i v e r y o r d e r SENT TO THE s t o r e h o u s e m a n a g e r</p>
      <p>ROLE
GOAL t o n o t i f y f a i l u r e : WHEN a v a i l a b l e ( User ) AND
r e f u s e d ( Order )
THE SYSTEM SHALL ADDRESS</p>
      <p>MESSAGE f a i l u r e SENT TO THE u s e r ROLE</p>
      <p>An example of goal-model for the FashionFirm scenario is
reported in Figure 1, where goals are described in Listing 1.
It is worth noting that such a goal model does not provide
a logical ordering of the goals to address. It is up to the
orchestrator module to deduct the best ordering that applies
to the current context.</p>
      <p>Fashion</p>
      <p>Order
Management</p>
      <p>AND
MaInnavgoeicmeent</p>
      <p>AND</p>
      <p>Delivery
Management</p>
      <p>OR</p>
      <p>
        One of the prominent features of autonomic system is
selfconfiguration i.e. the ability to automatically configure its own
components thus to ensure the correct global functioning with
respect to defined requirements [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        In a previous work [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] we have introduced the Proactive
Means-End Reasoning as the problem of automatically
associating system capabilities to user’s goals thus to achieve the
desired functions. We have called PMR Ability the procedure
for solving the proactive means-end reasoning problem. By
reasoning at the knowledge level the procedure returns 0..n
alternative Configurations for a given goal-model. It works
by composing capabilities in order to match the final state
specified by goals thus to solve the user’s request.
      </p>
      <p>This section illustrates domain-independent architecture for
goal injection and self-configuring of cloud applications.</p>
      <sec id="sec-4-1">
        <title>A. Goal Injection</title>
        <p>
          The proposed architecture handles run-time addition of new
requirements [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] moving a step forward traditional
systems defined for satisfying a fixed set of hard-coded
requirements.
        </p>
        <p>The users may specify new requirements (in the form of
goal-models) to inject into the system at run-time thus they
become a stimulus for modifying the overall system behavior.
It is responsibility of the middleware, via the PMR Ability, to
configure itself to the new needs.</p>
        <p>On one hand, the system activates a goal injection monitor
that waits for goals from the user. On the other hand,
usergoals are run-time entities, as well as other environment
properties. The system acquires goals from the user and
maintains knowledge of them thus to be able of reasoning on
expected results and finally conditioning its global behavior.
Of course, existing goals may be retreated as well.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Goal injection enables user-requirements to evolve over time</title>
        <p>without either user-management or restarting the system. This
could be fundamental for some categories of domain in which
continuity of service is central (financial, service providing
and so on).</p>
      </sec>
      <sec id="sec-4-3">
        <title>In addition it is possible to increase or enhance the functions</title>
        <p>of the system just injecting a new set of requirements and
updating the repository with new domain-specific capabilities.
Given that connections between goals and capabilities are
discovered on demand, the architecture is robust to capability
evolution and may be used for different problem domains
without any other specific customization.</p>
      </sec>
      <sec id="sec-4-4">
        <title>B. A Three-Layered Architecture for Self-Configuration</title>
        <p>The operative hypothesis for self-configuration is the system
owns a repository with a redundant set of capabilities, thus
being able solve the same problem by exploiting different
combinations of capabilities.</p>
        <p>The proposed architecture is made of three layers: the goal
layer, the capability layer and the business layer.</p>
        <p>The uppermost layer of this architecture is the Goal Layer
in which the user may specify the expected behavior of the
system in terms of high-level goals. Goals are no hard-coded in
a static goal-model defined at design time. The goal injection
phase allows the introduction of user-goals defined at run-time.
Goals are interpreted and analyzed and therefore trigger the
need of the system to generate a new configuration.</p>
        <p>
          The second layer is the Capability Layer, based on solving
at run-time the problem of Proactive Means-End
Reasoning [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. It aims at selecting the capabilities (and configuring
them) as a response to requests defined at the top layer.
This corresponds to a strategic deliberation phase in which
decisions are made according to the (often incomplete) system
knowledge about the environment. The output is the selection
of a set of capabilities that will form a concrete business
process. This is obtained by instantiating system capabilities
into business task and associating capability parameters with
data objects. In this phase the procedure also specifies
dependencies among tasks and how data items are connected to task
input/output ports.
        </p>
        <p>The third layer is the Business Layer manages and
interconnects autonomous blocks of computation thus generating a
seamless integration for addressing the desired result specified
at the first layer. Section V describes the run-time orchestrator
that executes the business process generated at the second layer
by interacting with the corresponding cloud applications and
web-services.</p>
      </sec>
      <sec id="sec-4-5">
        <title>C. Describing Capabilities for Self-Configuration</title>
        <p>Capabilities play a central role in the aforementioned
architecture: to compose and execute capabilities the system must
know what the service is and that executing the capability
would result in a state of the world in which the goal being
satisfied. In this approach each capability is a wrapper for a
specific service or a cloud application. For instance Upload on
Cloud Storage is a wrapper for a generic Cloud File Storage
HTTP endpoint that creates a new file in a remote path. Each
capability is bound to a block of code for authenticating and
invoke the specified endpoint.</p>
        <p>
          We adopted a language to specify the ‘self-configuration’
part of a capability with the same the same kind of abstraction
used for user’s goals (the knowledge level [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]). The following
language, inspired to LARKS [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]) responds to the need to
implement reasoning directed towards capabilities [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
        <p>The ‘self-configuration’ description is made of the following
compartments:
Name is the unique label used to refer to the capability
Input is the definition of the input Data Objects necessary
for the execution. The existence of the specified DataObject
is mandatory for enabling the capability execution
Output is the definition of the output Data Objects produced
as result.</p>
        <p>Params is an optional list of Variables that must be assigned
to a value (grounded) in order to enable the execution.
Pre-Condition is a run-time logical condition that must hold
in the current state of the world in order to trigger the
capability execution.</p>
        <p>Post-Condition is a run-time logical condition that must hold
after the capability execution for asserting either success or
failure.</p>
        <p>
          Evolution is a function that describes at knowledge level the
possible impact of the capability for addressing a final state.
This function is used in conjunction with grounded params
for simNualmateing the useCHoECfKc_SaTpOaRbEiHliOtiUeSsE for self-configuration
purposeIsnp[u1t0], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Order: Order
        </p>
        <p>FigurOeut2putshows an steaxtuasm:epnluem(oafccecpatpeda,breifluitsyed)used by
Company.coPmre:-CUonpdliotiaond OnavCaillaobuled(OrSdteorr)age is a wrapper for the
DropboPxosut-pCloonadditioenndpaocicnetptaeds(Odridsecr)uOsRserdefubseedf(oOrrede.r)It receives a
document to upload as input, and it requests a token and
path asEvpoaluratimoneters toevcoo=n{afigdudr(eacceptedw(oorrdkeri)n)g,. The output is
for
add( refused(order) )}
the identification of the remote file.</p>
        <p>Name
Input
Output
Params
Pre-Condition</p>
        <p>UPLOAD_ON_CLOUD_STORAGE
Invoice: Document
Remote_id: RxFile
Token: String
Dest_path: String
available(Invoice)
Post-Condition uploaded_on_cloud(Invoice)
Evolution</p>
        <p>evo={add(uploaded_on_cloud(document))}
Fig. 2. Example of capability for interfacing with a Cloud File Storage.</p>
        <p>Name</p>
        <p>SHARE_LINK_FILE
FigurIenp3utshow a couInpvloeicoef:Dsoocluumtieonnt s for the FashionFirm
sce</p>
        <p>UserMail : Email
nario. CPaarpaambsilities areTorkeepn:reStsreinngted in capital letters, followed
by assignments for thReeimroptea_riadm:RextFeilres.</p>
        <p>User: UserId
In thePrfires-tCosnodliutitoionn (oupnloadedl_eofnt_)cltohuedr(eInvisoicae)coincidental direct
the
correspondence between goals and capabilities obtained as the
result oPfosset-lCfo-ncdointifigonuramtiaoinle.d_Ipnertmhaenecnats_leinkth(Ienvcoiucse,toUsmereMradil)oAeNsDnot
grant thEevolaucticoenss to tsehevenot=(c{Inalvdoodui(cdme,aUsislteeodr)r_paegremasneernvt_ilcinek,(dtohceumpernot,aecmtiavile)),
means-end reasoningaeddla( bseonrta(itnevsoicae,udsiefrf)e)r}ent configuration (on
the right) where the goal to notify receipt is addressed by
uploading the file in a Company.com’s private cloud storage
and then by sharing the URL via email.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>V. THE RUN-TIME ORCHESTRATOR</title>
      <p>This section describes the bottom layer of the proposed
architecture, in which a set of capabilities is harmonized thus to
make the overall behavior consistent with user’s requirements.</p>
      <p>The input of this phase is a set of associations hcap, goali
generated through the proactive means-end reasoning. The
desired output is a workflow model that addresses the root
goal of the goal-model.</p>
      <p>
        The orchestrator module works according two principles:
• Principle 1: Dynamic Association between Capability
and Goals. Each capability selected for addressing a goal
is executed according to a specific schema 3.
• Principle 2: Distributed Control. All the goals start in
parallel and are coordinated by conditions over the state
of the world and through exchange of data objects.
3More details can be found in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
a)
b)
      </p>
      <p>The Principle 1 arises from the fact that each capability is
executed because it contributes to address one of the goals of
the goal-model. As stated in Section III a goal is described
by a triggering-condition (TC) that specifies when it becomes
interesting for the system. This is the first condition that
must hold for executing the capability. However also the
capability has a precondition to verify and some data objects
are necessary in order to execute it. At the same way, after
the capability is executed, the post-condition reveals whether
there is a failure. In addition, by comparing the achieved state
of the world with the goal’s final state the orchestrator reveals
when the goal is addressed.</p>
      <p>There is an additional motivation behind the way a
capability lifecycle is structure. It already contains all the coordination
information for synchronizing the execution of a capability
with respect to all the others. Therefore the Principle 2 has
been introduced to allow capabilities are deployed in a
distributed and scalable system. By executing all the capabilities
in parallel generates a distributed BPMN in which each branch
represents the instance of a different lifecycles. Different
branches interact by two different synchronization approaches:
i) passive mode: a branch waits a condition of the state of the
world is true, whereas this is generated as final state of another
capability of the workflow; ii) active mode: a branch needs a
data object as input parameter for the corresponding capability,
therefore a Query Interaction Protocol is employed to allows
the exchange of data.</p>
      <p>
        It is worth noting the orchestrator may raise signals for
selfconfiguration (capability failure or unexpected state). Please
refer to [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] for details about re-configuration.
      </p>
      <sec id="sec-5-1">
        <title>A. MUSA: a Middleware for User-driven Service Adaptation</title>
        <p>The Cloud Application Mashup has been realized through
MUSA (Middleware for User-driven Service Adaptation) a
multi-agent system for the composition and orchestration of
services in a distributed and open environment. MUSA aims at
providing run-time modification of the flow of events, dynamic
hierarchies of services and integration of user preferences
together with a system for run-time monitoring of activities that
is also able to deal with unexpected failures and optimization.</p>
        <p>
          MUSA4, has been implemented by using JASON [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], an
agent oriented platform and programming language based
events and actions. It implements a distributed version of
4Available at https://github.com/icar-aose/MUSA/archive/v0.2.zip (Jason
1.3.8 or higher is required).
the proactive means-end reasoning in which the result is a
set of capabilities for addressing goals, and also a contract
among the agents for working in collaboration. Therefore,
service composition is obtained at run-time, as the result of
a self-organization phenomenon. More details of the MUSA
architecture are reported in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>Figure 4 shows some screenshots captured during the
execution of the FashionFirm scenario.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>VI. RELATED WORK</title>
      <p>
        Some initiatives have been launched in last years for the
automated orchestration of Cloud applications. A couple of
representative examples are OpenCloudware and FIWARE.
OpenCloudware [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] aims at building an open software
engineering platform, for the collaborative development of
distributed applications to be deployed on multiple Cloud
infrastructures (mainly concerned with IaaS and PaaS). FIWARE
is an open architecture and a reference implementation of a
novel service infrastructure [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] whose mission is: “to build
an open sustainable ecosystem around public, royalty-free
and implementation-driven software platform standards that
will ease the development of new Smart Applications in
multiple sectors”. It offers an application mashup platform
aimed at integrating heterogeneous data, application logic, and
UI components (widgets) sourced from the Web.
      </p>
      <p>
        The presented approach can be classified among the
alternative approaches to classic workflow models for describing
service compositions, for instance semantic type matching
approach for creating or updating a workflow [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or planning
based for composing a choreography [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Blanchet et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] view service orchestration as a
conversation among intelligent agents, each one responsible for
delivering the services of a participating organization. An
agent also recognizes mismatches between its own workflow
model and the models of other agents.
      </p>
      <p>
        OSIRIS [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is an Open Service Infrastructure for Reliable
and Integrated process Support that consists of a peer-to-peer
decentralized service execution engine and organizes services
into a self-organizing ring topology.
      </p>
    </sec>
    <sec id="sec-7">
      <title>VII. CONCLUSIONS</title>
      <p>This paper has described the practical experience of Cloud
Application Mashup, made in the context of a research project.
We adopted MUSA as the middleware for service composition
and adaptation. This allowed defining the business logic of</p>
      <sec id="sec-7-1">
        <title>Cloud Calendar</title>
      </sec>
      <sec id="sec-7-2">
        <title>Share Link by Mail</title>
        <p>the mashup in the form of goal model plus a set of
GoalSPEC specifications. On the other side the involved Cloud
applications have been decomposed in a set of components to
wrap into capabilities and to describe through a template based
on descriptive logic. The middleware offers a three
layerarchitecture for monitoring goal injections, self-configuring
ad-hoc solutions and finally to orchestrate Cloud components.
The approach has been employed in the context of a B2B
process for customer management of a big company working
in fashion.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Aubonnet</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Simoni</surname>
          </string-name>
          .
          <article-title>Self-control cloud services</article-title>
          .
          <source>In Network Computing and Applications (NCA)</source>
          ,
          <source>2014 IEEE 13th International Symposium on</source>
          , pages
          <fpage>282</fpage>
          -
          <lpage>286</lpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>W.</given-names>
            <surname>Blanchet</surname>
          </string-name>
          , E. Stroulia, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Elio</surname>
          </string-name>
          .
          <article-title>Supporting adaptive web-service orchestration with an agent conversation framework</article-title>
          .
          <source>In Web Services</source>
          ,
          <year>2005</year>
          .
          <source>ICWS 2005. Proceedings. 2005 IEEE International Conference on. IEEE</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R.</given-names>
            <surname>Bordini</surname>
          </string-name>
          , J. Hu¨bner, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          .
          <article-title>Programming multi-agent systems in AgentSpeak using Jason</article-title>
          , volume
          <volume>8</volume>
          . Wiley-Interscience,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Carman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Serafini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Traverso</surname>
          </string-name>
          .
          <article-title>Web service composition as planning</article-title>
          .
          <source>In ICAPS 2003 workshop on planning for web services</source>
          , pages
          <fpage>1636</fpage>
          -
          <lpage>1642</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ferber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Gutknecht</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Michel</surname>
          </string-name>
          .
          <article-title>From agents to organizations: An organizational view of multi-agent systems</article-title>
          .
          <source>In Agent-Oriented Software Engineering IV</source>
          , pages
          <fpage>214</fpage>
          -
          <lpage>230</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Glikson</surname>
          </string-name>
          .
          <article-title>Fi-ware: Core platform for future internet applications</article-title>
          .
          <source>In Proceedings of the 4th Annual International Conference on Systems and Storage</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Laukkanen</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Helin</surname>
          </string-name>
          .
          <article-title>Composing workflows of semantic web services</article-title>
          .
          <source>In Extending Web Services Technologies</source>
          , pages
          <fpage>209</fpage>
          -
          <lpage>228</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Newell</surname>
          </string-name>
          .
          <article-title>The knowledge level</article-title>
          .
          <source>Artificial intelligence</source>
          ,
          <volume>18</volume>
          (
          <issue>1</issue>
          ):
          <fpage>87</fpage>
          -
          <lpage>127</lpage>
          ,
          <year>1982</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Papazoglou</surname>
          </string-name>
          and W.-J. van den Heuvel.
          <article-title>Blueprinting the cloud</article-title>
          .
          <source>IEEE Internet Computing</source>
          ,
          <volume>6</volume>
          :
          <fpage>74</fpage>
          -
          <lpage>79</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>L.</given-names>
            <surname>Sabatucci</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          .
          <article-title>From Means-End Analysis to Proactive Means-End Reasoning</article-title>
          .
          <source>In Proceedings of 10th International Symposium on Software Engineering for Adaptive</source>
          and
          <string-name>
            <surname>Self-Managing</surname>
            <given-names>Systems</given-names>
          </string-name>
          , Florence, Italy, May
          <volume>18</volume>
          -19
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>L.</given-names>
            <surname>Sabatucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          .
          <article-title>Towards selfadaptation and evolution in business process</article-title>
          .
          <source>In AIBP@ AI* IA</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          . Citeseer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>L.</given-names>
            <surname>Sabatucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          .
          <article-title>Highly customizable service composition and orchestration</article-title>
          . In S. Dustdar,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          , and M. Villari, editors,
          <source>Service Oriented and Cloud Computing</source>
          , volume
          <volume>9306</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>156</fpage>
          -
          <lpage>170</lpage>
          . Springer International Publishing,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Sabatucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ribino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          . Goalspec:
          <article-title>A goal specification language supporting adaptivity and evolution</article-title>
          .
          <source>In Engineering Multi-Agent Systems</source>
          , pages
          <fpage>235</fpage>
          -
          <lpage>254</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Sawyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          , E. Letier,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          .
          <article-title>Requirements-aware systems: A research agenda for re for self-adaptive systems</article-title>
          . In Requirements Engineering Conference (RE),
          <year>2010</year>
          18th IEEE International, pages
          <fpage>95</fpage>
          -
          <lpage>103</lpage>
          . IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R.</given-names>
            <surname>Siebeck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Janner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Schroth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Hoyer</surname>
          </string-name>
          , W. Wo¨rndl, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Urmetzer</surname>
          </string-name>
          .
          <article-title>Cloud-based enterprise mashup integration services for b2b scenarios</article-title>
          .
          <source>In Proceedings of the 2nd workshop on mashups, enterprise mashups and lightweight composition on the web, Madrid</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>N.</given-names>
            <surname>Stojnic</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schuldt</surname>
          </string-name>
          .
          <article-title>Osiris-sr: A safety ring for self-healing distributed composite service execution</article-title>
          .
          <source>In Software Engineering for Adaptive and Self-Managing Systems (SEAMS)</source>
          ,
          <source>2012 ICSE Workshop on</source>
          , pages
          <fpage>21</fpage>
          -
          <lpage>26</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>K.</given-names>
            <surname>Sycara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Widoff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Klusch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Lu</surname>
          </string-name>
          . Larks:
          <article-title>Dynamic matchmaking among heterogeneous software agents in cyberspace</article-title>
          .
          <source>Autonomous agents and multi-agent systems</source>
          ,
          <volume>5</volume>
          (
          <issue>2</issue>
          ):
          <fpage>173</fpage>
          -
          <lpage>203</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D.</given-names>
            <surname>Sykes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Heaven</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Magee</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Kramer</surname>
          </string-name>
          .
          <article-title>From goals to components: a combined approach to self-management</article-title>
          .
          <source>In Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . ACM,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          .
          <article-title>Reasoning about rational agents</article-title>
          . MIT press,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>E.</given-names>
            <surname>Yu</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          .
          <article-title>Why goal-oriented requirements engineering</article-title>
          .
          <source>Proceedings of the 4th International Workshop on Requirements Engineering: Foundations of Software Quality</source>
          ,
          <volume>15</volume>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tanniru</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.-J.</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <article-title>Services computing as the foundation of enterprise agility: Overview of recent advances and introduction to the special issue</article-title>
          .
          <source>Information Systems Frontiers</source>
          ,
          <volume>9</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>