<!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>Towards Resource-Oriented BPEL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Towards Resource-Oriented BPEL</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Research School Hasso Plattner Institute for IT Systems Engineering at the University of Potsdam D-14482 Potsdam</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Service orientation is the de-facto architectural style, today. But, what actually is a service and how should service boundaries be chosen? Resource orientation, once seen as a ”light-weight” approach to Web services, is reshaping itself as a modeling strategy to service orientation. Along comes the realization that resources are in-fact complex state machines. Currently, there is no accepted standard for modeling the internal state of resources. In this paper, BPEL is proposed as a modeling language for resources and necessary extensions to BPEL are outlined.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        There has been a lot of discussion about service-oriented architectures (SOA) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
lately. A service is a mechanism to enable access to one or more capabilities. The
eventual consumers of the service may not be known to the service provider and
may demonstrate uses of the service beyond the scope originally conceived by the
provider [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. If a provider may not know the actual use of a service, what makes
a service a service? What minimum level of functionality must a service provide
to be called a service? Furthermore, according to recent studies [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], about
twothirds of all services deployed today are data-centric. Is a memory cell already
a service? Resource orientation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] solves this dilemma by making every entity
explicit, not just services. Such explicit entity is called a resource. If one can find
a noun for an entity, it qualifies as a potential resource. All properties of services
still hold true for resources, i.e. they have an independent life- cycle, a globally
unique reference, and their interaction style is stateless message exchange.
      </p>
      <p>
        Resource orientation is the dominant architectural style on the Internet, as it
is the scientific foundation of the World Wide Web [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Resources have a globally
shared request message classification system, confusingly called uniform
interface. The idea is, that even without semantic understanding of the messages
exchanged, the classification provides additional benefits to the overall
architecture. However, up to now, the World Wide Web favors an informal, ad-hoc
description of complex resource behaviors. Roy Fielding coined the term
”hypertext as the engine of application state” [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], upgrading this ad-hoc fashion from
bug to feature; quite a successful feature indeed measured by the success of the
World Wide Web itself.
      </p>
      <p>
        Enterprises and research on the other hand are very much interested in the
description of complex behaviors. Out of this need, Web Services [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] were
created as an additional layer on top of resource orientation, including the Web
Service Definition Language (WSDL) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to describe service interfaces and the
Business Process Execution Language (BPEL) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] for behavioral descriptions.
Recently, resource orientation is rediscovered as a viable subset of service
orientation [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. This also raises the question, if complex resource behavior can
be expressed formally. With the introduction of the Web Application Definition
Language (WADL) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], a candidate for the description of interfaces is given.
This paper outlines how BPEL can be adapted to describing process aspects of
resources.
      </p>
      <p>The remainder of this paper is structured as follows: In chapter 2, an
introduction to resource orientation is given. In chapter 3, an example of a complex
resource behavior is shown to illustrate the requirements of a resource-oriented
process language. In chapter 4, BPEL is introduced as a viable candidate for
such a language and the necessary extensions are outlined. Chapter 5 discusses
related work and chapter 6 concludes this paper with a summary and outlook.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Resource Orientation</title>
      <p>
        Resource orientation is a subset of service orientation. As such, it can be regarded
as a modeling strategy for services. Instead of a few ”gateway” services, with
carefully crafted custom interfaces, all entities of the modelled system expose a
uniform interface. To illustrate this, let us look at an example of such uniform
interface. The Hypertext Transfer Protocol (HTTP) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] defines its uniform
interface for requests as:
GET : Messages labeled as GET have an empty service request and are
guaranteed to have no substancial effect within the receiver of such request, i.e. they are
safe to call. GET responses are expected to be a description of the current state
of the targeted resource. These attributes allow GET to act as a universal
reflection mechanism, it can be issued without any prior knowledge of the resource.
Also, as GET does not alter the state of the targeted resource, the response can
be cached. This has great benefits to a distributed architecture and both aspects
can be seized without prior semantic knowledge of the targeted resources. In the
physical world, GET request can be correlated to looking.
      </p>
      <p>PUT : Messages labeled as PUT do cause an effect in the targeted resource,
but do so in an idempotent fashion. An idempotent interaction is defined as
replayable, i.e. the effect of N messages is the same as that of 1. In a distributed
system, where transactions may not be available, this is a great help for error
recovery as idempotent messages can be delivered at least once without any
effort, just retry until acknowledged. Again, thanks to the uniform interface, the
assumption of idempotency can be made without any prior semantic knowledge
of the resource involved. In the physical world, this correlates to physical
interaction, although replaying the exact same ”message” is only a theoretical mind
exercise.</p>
      <p>DELETE : Messages labeled as DELETE do cause an effect in the targeted
resource, where that effect is expected to be a termination. Just as PUT, DELETE
is defined as idempotent. However, as with all messages, the interpretation is
solely the responsibility of the receiver, i.e. a DELETE has to be regarded as
”please terminate”. In the physical world, this correlates to sending a notice of
cancelation.</p>
      <p>POST : All other types of messages are labeled as POST, i.e. they cause an
effect in the receiver and they are not safe to replay. This is a catch all mechanism
for all messages that can not be described by the prior verbs. Without a uniform
interface, all messages would be treated like this, loosing context free reflection,
caching and replayability.</p>
      <p>The uniform interface tries to lower the barrier of entry to a client and it
also includes a characterization of response messages. Thus, interaction with a
resource can start purely on the basis of semantic understanding of the uniform
interface. If one obtains a resource identifier, the uniform interface provides a
minimum level of shared semantics to start with. However, this set of semantics
is not restricted. A uniform interface simply enforces that any label (or verb as
HTTP calles them) may be applied to all resources. To increase the likelihood
of understanding, both client and resource perform content type negotiation on
each request. Content type negotiation honors the fact that there are many ways
of encoding information.</p>
      <p>Client
Resource</p>
      <p>Resource
Behavior</p>
      <p>Uniform
Interface</p>
      <p>URI</p>
      <p>
        Conceptually, a resource is beyond the communication system, i.e. a client
can only communicate with it via the uniform interface it addresses by a globally
unique identifier, e.g. a URI [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The relationship between a resource and a URI
may change over time. Yet, resource orientation today spends very little effort
on describing the underlying process defining the relationship between a resource
and its URIs. While a URI is bound to a resource, it exposes a certain resource
behavior. In figure 1 the relationship between these concepts described is shown.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Example of a complex resource behavior</title>
      <p>As an illustration, let us now introduce a complex resource most people should
be familiar with: an online ordering process. In figure 2, a very simple version
is illustrated. A shopping cart is created by the user by adding an initial item.
Adding items can be repeated as many times as the user likes. If the user simply
stops interacting with the shopping cart, it may time out or the user decided to
check out by choosing a payment method. At this point the user is presented
with the content of the shopping cart, the chosen payment method, and the total
bill to confirm before actually committing the order.</p>
      <p>r
e
s
U
r
e
d
r
O</p>
      <p>Add Items</p>
      <p>Receive
Choice of
Payment</p>
      <p>Receive
Order</p>
      <p>Commit</p>
      <p>The first step towards a good resource-oriented design is to identify the
relevant resources. Is a shopping cart actually a resource on its own, or just a state
of an order? By modeling the later—the shopping cart to be just a state of an
order resource—we can uniquely identify the order in all stages, e.g. shopping
cart, check-out, assembly, in-delivery, and post-delivery. The user is given a
single URI, something to bookmark in a browser. Clicking on such a bookmark
will issue a GET request. A GET request in a resource-oriented view is
nothing else than introspecting the current state of a resource. In the true spirit
of hypermedia as the engine of application state the returned representation of
the current resource should include all relevant links and possible interactions.
By doing so, the client is never forced to understand the process as such, being
able to browse and post is the only requirement to participate as a client. This
simplicity is the true strength of a resource-oriented design and the foundation
of the World Wide Web’s success story. At the same time, this motivates the
resistance against formal descriptions of interfaces and processes as practiced in
a Web services environment. While resource orientation does not conflict with
formal interface descriptions and in fact would benefit from it, any attempt to
introduce such formalism to resource orientation must honor the fact that resource
orientation can and will work without such formalism.</p>
      <p>
        Nevertheless, it should have become apparent that resources are indeed
complex state machine and that such state machines can be expressed as processes,
matching the business concepts used to motivate the system in the first place. We
already identified a shopping cart to be just a state or dependent sub-resource
of an order. However, this opens the question of how to choose resource
boundaries. Is the order a resource in itself or is it a sub-resource of the store? In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
a very pragmatic answer is given: Breaking down an application into as many
resources as possible benefits scalability and flexibility, but at the same time the
resource is the scope of serializability, i.e. there may not be transactions across
resource boundaries. I.e. the order is not dependent on the store (at least in a
transactional view), but the order items probably are dependent on the order, as
an order item may only be changed as long as the order has not been committed.
      </p>
      <p>Before we outline a process notation in the next chapter, let us summarize
our findings: A resource may consist of several complex states, each able to
expose a set of URIs. Each of these URIs expose a certain behavior of the
resource. Interaction with any of the resource’s URIs is classified into safe (one
interaction has the same effect as zero interactions), idempotent (one interaction
has the same effect as n interactions), or unrestricted, i.e. such interaction is
able to produce an uncontrollable side-effect and/or change the internal state of
the resource. Also, a resource must be able to extract URIs from representations
received via interaction and be able to then interact with the extracted URIs,
as this is a fundamental aspect of resource orientation.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Resource-oriented BPEL</title>
      <p>In this section, BPEL is introduced and extensions for modeling complex
resources are outlined.
4.1</p>
      <sec id="sec-4-1">
        <title>BPEL</title>
        <p>BPEL is arguably the de facto standard for specifying processes in a Web services
environment. BPEL provides structured activities that allow the description of
the control flow between the interaction activities. BPEL does not support
explicit data flow, but rather relies on shared variables referenced and accessed
by interaction activities and manipulation activities. The control flow between
activities can be structured either block-based by nesting structured activities
like &lt; sequence &gt; and &lt; f low &gt;, or graph-based by defining directed edges
(called &lt; links &gt;) between activities inside &lt; f low &gt; activities. Both styles can
be used as the same time, making BPEL a hybrid language.</p>
        <p>
          Beyond control flow and data manipulation, BPEL also supports the notion
of scopes and allow for compensation handlers and fault handlers to be defined
for specific scopes. Hence, scopes represent units of works with
compensationbased recovery semantics. Fault handlers define how to proceed when faults
occur, compensation handlers define how to compensate already completed
activities, as processes not transactional and consequently must be rolled back
explicitly. Further more, scopes allow for event handlers which can be regarded
as repeatable, attached sub-processes [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] triggered by events.
4.2
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>BPEL without Web Services</title>
        <p>
          The wide-spread acceptance and the sophistication of the control flow constructs,
make BPEL a strong candidate when trying to formally express the process
governing the relationship between a resource and its URIs. Both the interaction
activities and the grouping mechanism that allows modeling complex message
exchanges depend on WSDL. However, in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] BPEL light is introduced, a
WSDLless version of BPEL. While BPEL light itself still is not a good match for
resource orientation, a clear path on how to remove the dependency on WSDL from
BPEL and adding new interaction models in a compatible way is shown clearly.
In essence, the elements &lt; receive &gt;, &lt; reply &gt;, &lt; invoke &gt;, &lt; onM essage &gt;
within a &lt; pick &gt;, as well as &lt; onEvent &gt; within an &lt; eventHandler &gt; need
to be replaced by constructs not relying on WSDL.
4.3
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Using BPEL to model resource states</title>
        <p>BPEL does not have an explicit state modeling, but an implicit via the &lt; scope &gt;
construct. Generally speaking, a POST message or an event may cause a state
transition. However, while in a state, as many GET, PUT, and/or DELETE
messages may arrive, as they are safe and/or idempotent.</p>
        <p>As shown in figure 3, BPEL provides the concept of event handlers to model
GET, PUT, and DELETE interaction as attached, repeatable subprocesses.
Enforcing safe and idempotent characteristics of those interactions is beyond the
scope of this paper. However, a straight forward solution may be disallowing
write access to any variable during a GET interaction to ensure safeness. PUT
and DELETE can be enforced idempotent by disallowing write access to any
variable read, i.e. overwriting a variable is ok, computing a new value based
on the old one is not. Such interaction may be executed several times and in
parallel, while POST interaction or events move the BPEL process into a new
scope.
4.4</p>
      </sec>
      <sec id="sec-4-4">
        <title>Resource interaction in BPEL</title>
        <p>Web services try to abstract from the communication protocol, providing
support for a wide range of interaction models, such as asynchronous or one-way
POST</p>
        <p>POST receiver</p>
        <p>Scope
(= current State)</p>
        <p>Scope
(= new State)
GET</p>
        <p>PUT</p>
        <p>DELETE
Environment</p>
        <p>Event Handler
interaction. Resource orientation on the other hand puts much effort into the
core protocol as the lowest level of shared semantics. The dominate
resourceoriented protocol is HTTP. Consequently there is no point in abstracting away
from it when modeling interaction in BPEL. In fact many proponents of
resource orientation have major concerns with any attempt to hide the protocol
layer behind an abstraction.</p>
        <p>
          All interaction in HTTP is based on synchronous request-response.
Asynchronous communication is supported by identifying either the asynchronous
sender or receiver by an explicit URI and sending it along in the initial request.
I.e. at the protocol level, there will be a synchronous request and then an
independent synchronous response push or pull. This design makes the interaction
much simpler, but requires a simple mechanism to construct URIs. There is
currently one attempt to standardized URI templating [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] applicable to creation,
matching, and selection of URIs. Within WADL, URI templates are already
used for matching and selection of URIs. To a resource itself, creation of URIs
must be available, too. Coming back to our example process, upon receiving a
shopping item, it must be added to the shopping cart, in turn generating one or
more URIs for the newly created item.
        </p>
        <p>The easiest way to provide such functionality is to offer an XPath function.
Figure 4 shows how the regular &lt; assign &gt; construct is used to create a new
URI using such XPath function. URIs themselves do not need a special construct
and can be kept in normal variables.</p>
        <p>With URIs introduced to BPEL, let us look at URI interaction again, as
shown in figure 5. Any URI interaction is synchronous and the tuple of request
and response is grouped into a message exchange. Both request and response
contain a header and a body, where the header includes the content type of the
body. The response also includes a status, which is part of the uniform interface
of HTTP and encodes a general indication of how the request was processed.</p>
        <p>Remember, a message exchange is always synchronous. This reduces the
possible interaction patterns to send-receive and receive-reply. While it is tempting
to simplify the BPEL constructs into &lt; send &gt; and &lt; receive &gt; elements with
the complete handling of the request as child elements, the BPEL specification
does not appear to allow extension activities with child elements, hence we
refrain from doing so and stick with the tradtional &lt; send &gt;, &lt; receive &gt;, and
&lt; reply &gt; constructs without children. However, the newly introduced activities
all have a messageExchange attribute by which the required data structures—as
shown in figure 5 are referenced.</p>
        <p>
          In figure 6 the fragment from figure 4 is completed to a complete &lt; onM essage &gt;
block. Notice the path attribute containing a relative URI template. The given
template is relative to the BPEL process, as each instance of the process is
assigned a URI itself. The exact details of the message the &lt; onM essage &gt; activity
is waiting for is described by reusing the &lt; method &gt; element of WADL [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
Here, the only criteria is that the message is send as a POST. WADL itself
is quite descriptive and this descriptive power can be used to model pattern
matching on request, i.e. several &lt; onM essage &gt; activities waiting on the same
URIs with the same verb but different contents. The &lt; reply &gt; activity again
references the messageExchange data structure by attribute. Here, some
con&lt;rbpel:onMessage path="./item/new" messageExchange="createItem"&gt;
&lt;wadl:method name="POST" /&gt;
&lt;sequence&gt;
&lt;assign&gt;
&lt;copy&gt;
&lt;from&gt;rbpel:generate-uri("./item/{itemNumber}")&lt;/from&gt;
&lt;to variable="newItemURI" /&gt;
&lt;/copy&gt;
&lt;/assign&gt;
&lt;rbpel:reply messageExchange="createItem"&gt;
&lt;rbpel:status&gt;201&lt;/rbpel:status&gt;
&lt;rbpel:param name="Location" style="header"&gt;$newItemURI&lt;/rbpel:param&gt;
&lt;/rbpel:reply&gt;
&lt;/sequence&gt;
&lt;/rbpel:onMessage&gt;
venience elements are shown (&lt; status &gt; and &lt; param &gt;), their functionality
could be simply mapped to &lt; assign &gt; working on the data structure. However,
this fragment shows how a new URI is generated by template and returned to
the requester in the Location Header as outlined in the HTTP specification.
        </p>
        <p>The complete BPEL for all functionality hidden in the Add Items activity of
figure 2 is shown in figure 7.</p>
        <p>The loop—depicted by a curved arrow on the ”Add Items” activity in
figure 2–is mapped to a &lt; repeatU ntil &gt; block. Upon receive a POST to the
checkout URI the loop is left by settint the commitRequest variable to true.
Also, the new internal state of the resource modeled by BPEL process outlined
has a URI by itself. The requesting client is redirect to that URI by issuing a
303 status, again as outlined by the HTTP specification.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Related work</title>
      <p>
        There are many other language available as a foundation to modeling resource
behavior, such as Web Service Choreography Interface (WSCI) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] or the Web
Service Conversation Language (WSCL) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. However, mind share is vital to
language selection and BPEL seems to be able to form a common ground for
various interest groups. Also, even though some constructs my be expressed
more elegantly, BPEL is designed as an open, extensible language laying a clear
track of how to integrate the required functionality, as shown in the course of
this paper. Describing static resource interfaces, the author is unaware of any
alternative to the Web Application Description Language. On the other hand,
WADL can be seen as a mashup of HTTP, RelaxNG [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], and XML Schema [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ],
so these standards should be mentioned here as well.
&lt;repeatUntil&gt;
&lt;scope
xmlns:rbpel="http://bpt.hpi.uni-potsdam.de/ns/rbpel"
xmlns:wadl="http://research.sun.com/wadl/2006/10"&gt;
&lt;eventHandlers&gt;
&lt;rbpel:onMessage path="./item/{itemNumber}" messageExchange="itemShow"&gt;
&lt;wadl:method name="GET" /&gt;
&lt;!-- return representation of item $itemShow.itemNumber --&gt;
&lt;/rbpel:onMessage&gt;
&lt;rbpel:onMessage path="./item/{itemNumber}" messageExchange="itemUpdate"&gt;
&lt;wadl:method name="PUT" /&gt;
&lt;!-- update and return item $itemUpdate.itemNumber --&gt;
&lt;/rbpel:onMessage&gt;
&lt;rbpel:onMessage path="./item/{itemNumber}" messageExchange="itemDelete"&gt;
&lt;!-- delete item $itemDelete.itemNumber --&gt;
&lt;/rbpel:onMessage&gt;
&lt;rbpel:onMessage path="./item/new" messageExchange="createItem"&gt;
&lt;wadl:method name="POST" /&gt;
&lt;sequence&gt;
&lt;assign&gt;
&lt;copy&gt;
&lt;from&gt;rbpel:generate-uri("./item/{itemNumber}")&lt;/from&gt;
&lt;to variable="newItemURI" /&gt;
&lt;/copy&gt;
&lt;/assign&gt;
&lt;rbpel:reply messageExchange="createItem"&gt;
&lt;rbpel:status&gt;201&lt;/rbpel:status&gt;
&lt;rbpel:param name="Location" style="header"&gt;$newItemURI&lt;/rbpel:param&gt;
&lt;/rbpel:reply&gt;
&lt;/sequence&gt;
&lt;/rbpel:onMessage&gt;
&lt;/eventHandlers&gt;
&lt;pick&gt;
&lt;rbpel:onMessage path="./checkout" messageExchange="transfer_to_payment"&gt;
&lt;wadl:method href="/wadl/post/method/definition" /&gt;
&lt;sequence&gt;
&lt;assign&gt;
&lt;copy&gt;
&lt;from&gt;true&lt;/from&gt;
&lt;to&gt;$commitRequest&lt;/to&gt;
&lt;/copy&gt;
&lt;/assign&gt;
&lt;rbpel:reply messageExchange="transfer_to_payment"&gt;
&lt;rbpel:status&gt;303&lt;/rbpel:status&gt;
&lt;rbpel:param name="Location" style="header"&gt;"./checkout"&lt;/rbpel:param&gt;
&lt;/rbpel:reply&gt;
&lt;/sequence&gt;
&lt;/rbpel:onMessage&gt;
&lt;onAlarm&gt;
&lt;for&gt;’2h’&lt;/for&gt;
&lt;exit/&gt;
&lt;/onAlarm&gt;
&lt;/pick&gt;
&lt;/scope&gt;
&lt;condition&gt;$commitRequest&lt;/condition&gt;
&lt;/repeatUntil&gt;
      </p>
    </sec>
    <sec id="sec-6">
      <title>Summary and Outlook</title>
      <p>In the course of this paper, resource orientation was introduced as a viable subset
of service orientation. Resource as such are complex state machines, exposing
one or more uniform interfaces over time. This can be formally expressed as
a complex state machine. The main contribution of this paper is to identify
BPEL as a suited candidate for modeling such state machines and the necessary
modifications to BPEL were outlined. All of these modifications are in the scope
of the extension mechanisms of the BPEL specification.</p>
      <p>The next steps will involve a exact specification of the extensions outlined and
a reference implementation, possibly building upon an existing BPEL engine.
This possibility is one of the strong arguments for using BPEL along with the
already strong mind share of the BPEL community.</p>
      <p>At the same time, a resource-oriented BPEL can be the foundation for a
nextgeneration web framework centering around process models as the core artefact
of application design.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Burbeck</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The tao of e-business services (</article-title>
          <year>2000</year>
          ) http://www-128.ibm.com/ developerworks/library/ws-tao/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Matthew</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laskey</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McCabe</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brown</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Metz</surname>
          </string-name>
          , R.:
          <source>Reference Model for Service Oriented Architecture 1.0. Technical Report Committee Specification 1</source>
          ,
          <string-name>
            <given-names>OASIS</given-names>
            <surname>Open</surname>
          </string-name>
          (
          <year>2006</year>
          ) http://www.oasis-open.org/committees/tc home.
          <article-title>php? wg abbrev=soa-rm.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Gardner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Soa wikis, soa for saas, and the future of business applications</article-title>
          .
          <source>Technical report, Interarbor Solutions</source>
          (
          <year>2007</year>
          ) http://blogs.zdnet.com/Gardner/ ?p=
          <fpage>2395</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Fielding</surname>
          </string-name>
          , R.T.:
          <article-title>Architectural styles and the design of network-based software architectures</article-title>
          .
          <source>PhD thesis</source>
          , University of California, Irvine (
          <year>2000</year>
          )
          <string-name>
            <surname>Chair-Richard N</surname>
          </string-name>
          . Taylor, http://www.ics.uci.edu/∼fielding/pubs/dissertation/top.htm.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Www: Past, present, and future</article-title>
          .
          <source>IEEE Computer</source>
          <volume>29</volume>
          (
          <year>1996</year>
          )
          <fpage>69</fpage>
          -
          <lpage>77</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. IBM:
          <article-title>Web services architecture overview (</article-title>
          <year>2000</year>
          ) http://www-128.ibm.com/ developerworks/webservices/library/w-ovr/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Christensen</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Curbera</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meredith</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weerawarana</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Web services description language (wsdl) 1.1</article-title>
          .
          <source>Technical report, W3C</source>
          (
          <year>2001</year>
          ) http://www.w3.org/ TR/wsdl.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Jordan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Evdemon</surname>
          </string-name>
          , J.:
          <article-title>Oasis web services business process execution language (wsbpel) (</article-title>
          <year>2007</year>
          ) http://docs.oasis-open.
          <source>org/wsbpel/2</source>
          .0/OS/ wsbpel-v2.
          <fpage>0</fpage>
          -OS.html.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Overdick</surname>
          </string-name>
          , H.:
          <article-title>The resource-oriented architecture</article-title>
          .
          <source>In: 2007 IEEE Congress on Services (Services</source>
          <year>2007</year>
          ).
          <article-title>(</article-title>
          <year>2007</year>
          )
          <fpage>340</fpage>
          -
          <lpage>347</lpage>
          http://doi.ieeecomputersociety.
          <source>org/ 10</source>
          .1109/SERVICES.
          <year>2007</year>
          .
          <volume>66</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hadley</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Web application description language (</article-title>
          <year>2006</year>
          ) https://wadl.dev. java.net/.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Fielding</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gettys</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mogul</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frystyk</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masinter</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leach</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , BernersLee, T.:
          <article-title>Hypertext transfer protocol - http/1.1</article-title>
          .
          <string-name>
            <surname>Technical</surname>
            <given-names>report</given-names>
          </string-name>
          , The Internet Engineering Task Force (
          <year>1999</year>
          ) http://www.ietf.org/rfc/rfc2616.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>T.</surname>
            Berners-Lee,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Fielding</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Uniform resource identifiers (uri): Generic syntax</article-title>
          .
          <source>Technical report, The Internet Engineering Task Force</source>
          (
          <year>1998</year>
          ) http://www.ietf. org/rfc/rfc2396.txt.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Helland</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Life beyond distributed transactions: an apostate's opinion</article-title>
          .
          <source>In: Third Biennial Conference on Innovative Data Systems Research</source>
          . (
          <year>2007</year>
          ) http://www-db. cs.wisc.edu/cidr/cidr2007/papers/cidr07p15.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Großkopf</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>: xbpmn. formal control flow specification of a bpmn-based process execution language</article-title>
          .
          <source>Master's thesis</source>
          ,
          <source>Hasso Plattner Institut and SAP Research</source>
          Brisbane (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Nitzsche</surname>
            , J., van Lessen,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karastoyanova</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Bpel light</article-title>
          .
          <source>In: 5th International Conference on Business Process Management (BPM</source>
          <year>2007</year>
          ), Springer (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Gregorio</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hadley</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nottingham</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orchard</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Uri template</article-title>
          .
          <source>Technical report, IETF</source>
          (
          <year>2008</year>
          ) http://bitworking.org/projects/URI-Templates/.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Arkin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Askary</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fordin</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jekeli</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kawaguchi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orchard</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pogliani</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riemer</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Struble</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Takacsi-Nagy</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trickovic</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zimek</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Web service choreography interface (wsci)</article-title>
          .
          <source>Technical report, W3C</source>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Banerji</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bartolini</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beringer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chopella</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Govindarajan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karp</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuno</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lemon</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pogossiants</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sharma</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Web services conversation language (wscl)</article-title>
          .
          <source>Technical report, W3C</source>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Clark</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Makoto</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Relax ng specification</article-title>
          .
          <source>Technical report</source>
          , OASIS Open (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Thompson</surname>
            ,
            <given-names>H.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sperberg-McQueen</surname>
            ,
            <given-names>C.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gao</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mendelsohn</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beech</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maloney</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <source>Xml schema 1.1. Technical report, W3C</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>