<!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>Semantic Model-Driven Development of Service-centric Software Architectures</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Claus Pahl</string-name>
          <email>cpahl@computing.dcu.ie</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ronan Barrett</string-name>
          <email>rbarrett@computing.dcu.ie</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dublin City University School of Computing Dublin 9</institution>
          ,
          <country country="IE">Ireland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Service-oriented architecture (SOA) is a recent architectural paradigm that has received much attention. The prevalent focus on platforms such as Web services, however, needs to be complemented by appropriate software engineering methods. We propose the model-driven development of service-centric software systems. We present in particular an investigation into the role of enriched semantic modelling for a modeldriven development framework for service-centric software systems. Ontologies as the foundations of semantic modelling and its enhancement through architectural pattern modelling are at the core of the proposed approach. We introduce foundations and discuss the benefits and also the challenges in this context.</p>
      </abstract>
      <kwd-group>
        <kwd>Service-oriented Architecture</kwd>
        <kwd>Service Processes</kwd>
        <kwd>Model-Driven Development</kwd>
        <kwd>Semantic Modelling</kwd>
        <kwd>Ontologies</kwd>
        <kwd>Architectural Patterns</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Service-oriented architecture (SOA) has been successfully deployed as an
architectural paradigm in recent years [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The dominance of the Web services
platform in distributed systems development and deployment has given a boost
to SOA as an approach to software architecture [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Current solutions to
description and collaboration languages and to platform technologies such as protocols
need to be embedded into an adequate software engineering methodology.
      </p>
      <p>
        The SOA approach creates some specific requirements for supporting
software engineering methods [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. Firstly, services are used ’as is’, with providers
and consumers often coming from different organisations. This requires detailed
descriptions of functional and non-functional aspects in an mutually agreed
format Secondly, service descriptions need to be based on rich modelling languages,
in order to support their automated discovery and composition. Thirdly, reuse
is a central aim of service technology that needs to be addressed on the level of
individual services as well as service compositions.
      </p>
      <p>
        Model-driven development (MDD) is an established and widely used
approach to software development that aims at cost-effective automation and
improved maintainability through abstract modelling. The recent standardisation
of the approach, Model-Driven Architecture (MDA), has emphasised the
importance of this approach for the software sector [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. MDA proposes abstract
modelling combined with the automatic generation of code from these models.
      </p>
      <p>
        We propose an MDD approach for SOA, aiming to support the development
of service-centric software systems. We will explore foundations (in form of
ontologies) and design methods (in form of architectural patterns). Specifically, we
deem two specific methods necessary to satisfy the specific requirements:
– semantic modelling supported through ontologies, i.e. logic-based knowledge
representation frameworks, in order to support rich modelling constructs,
reasoning, and formal semantics [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
– pattern-based modelling supported through architectural patterns in order to
add higher levels of abstraction and to enable the reuse of useful architectural
styles and designs.
      </p>
      <p>
        Our contribution is twofold. Firstly, a discussion of central techniques for MDD
for service-centric software systems. Secondly, an outline of an ontology-based
framework for MDD of service-centric software systems involving architectural
patterns as central design technique – these are patterns (or styles) of
architectures, typically different from design patterns [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Our investigation shall lead
towards an emerging service engineering discipline.
      </p>
      <p>We divide our discussion into three aspects. We start with modelling of
service functionality supported by ontologies in Section 2. Modelling of
nonfunctional aspects and the use of patterns is then the topic of Section 3. We
discuss ontologies and patterns in a wider context of service engineering in
Section 4. We end with a discussion of related work and some conclusions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Modelling of Service Functionality</title>
      <p>Modelling of software often focuses on functional aspects such as the software
architecture or behavioural aspects of a software system. This traditional focus
of software modelling shall also be discussed in this section and the specific
modelling needs for service-centric software systems shall be discussed.</p>
      <p>
        Abstraction and automated code generation are the pillars of model-driven
development [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. We investigate the role that ontologies can play for the support
of these pillars in the context of functional aspects of service-oriented
architecture. In terms of the OMG’s MDA framework, we are going to address modelling
at the platform-independent (PIM) layer and transformations form there into the
platform-specific layer (PSM).
2.1
      </p>
      <sec id="sec-2-1">
        <title>Semantic Service Modelling</title>
        <p>UML is the most widely used software modelling notation. An integration of the
proposed semantic modelling approach with UML is important for two reasons:
– UML provides a rich combination of individual visual modelling languages.</p>
        <p>These visual interfaces can be adapted to support service modelling.
– A vast amount of UML models for a broad range of application contexts
exist. Reusing and integrating these is almost a necessity.</p>
        <p>
          UML is limited in particular in terms of the constraints on software systems
that can be expressed. OCL, the Object Constraint Language, is a UML
extension that allows semantic constraints such as pre- and postconditions and
invariants for operations and classes to be expressed [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. While a wide range of
powerful logics have been available to support constraint formulation and
reasoning, the recent advent of the Semantic Web with its ontology-based foundations
have make ontologies a promising candidate for enhanced semantic modelling in
the context of the Web platform [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>
          – Ontologies provide a logical language, for instance based on description logic
[
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], with its reasoning support.
– Ontology languages, such as OWL, are the knowledge representation
languages of the Web [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] that enable XML-based syntactical interoperability
and knowledge sharing and exchange.
        </p>
        <p>
          For these reasons, the semantic modelling of Web services is ideally supported
by ontologies, as the research focus on semantic Web services shows [
          <xref ref-type="bibr" rid="ref12 ref7">7, 12</xref>
          ].
Besides providing a rich semantic modelling notation – which can, as proposed, be
augmented by a UML-style interface – ontologies can support design activities
such as composition, and act as formal semantics for the overall model-driven
development integrating modelling and transformations.
        </p>
        <p>
          WSMO [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] and OWL-S [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] are the two predominant examples of service
ontologies. Service ontologies are ontologies to describe Web services, aiming to
support their semantics-based discovery in Web service registries. The Web Service
Process Ontology WSPO [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] is also a service ontology, but its focus is the
support of description and reasoning about service composition and service-based
architectural configuration. An important current development is the Semantic
Web Services Framework (SWSF), consisting of a language and an underlying
ontology [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], which takes OWL-S work further. The FLOWS ontology in SWSF
comprises process modelling and is like WSPO suited to support semantic
service modelling within the MDA context. While the early service ontologies have
focused on individual services and their properties – OWL-S and WSMO – more
recent attention has been paid to service process ontologies – SWSF and WSPO
– which focus on the composition of services to form processes. A different type of
ontology, supporting composition activities and the formulation of collaborating
servcies as processes, is needed for the composition aspect [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Service Composition</title>
        <p>
          In order to support the development of service architectures, more than just
description notations are needed. Specific activities such as service discovery or
process composition need to be supported through anaysis and reasoning
techniques [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. We look here into ontology-based support for service composition.
{user,account}
&lt;&lt;postCondition&gt;&gt;
vaild(sessionID)
login
        </p>
        <p>{sessionID}
&lt;&lt;preCondition&gt;&gt;
valid(user,account)
&lt;&lt;preCondition&gt;&gt;
valid(sessionID)</p>
        <p>&lt;&lt;postCondition&gt;&gt;
result=balance(account)
{account}
{account,
destination,
amount}
balance
enquiry
money
transfer
{balance}
{void}
&lt;&lt;postCondition&gt;&gt;
not valid(sessionID)
{sessionID}</p>
        <p>{void}
logout
&lt;&lt;preCondition&gt;&gt;
true
&lt;&lt;decisionInput&gt;&gt;
choice
&lt;&lt;preCondition&gt;&gt;
vaild(sessionID) ∧
balance(account)&gt;0
&lt;&lt;postCondition&gt;&gt;</p>
        <p>balance =
balance@pre -amount</p>
        <p>
          Service composition is a logical composition where an abstract service process
based on individual services is assembled [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. We have developed the WSPO
composition ontology – Web Services Process Ontology – in order to support
the semantically correct composition of services [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>Ontologies in general consist of concepts that represent objects, process, etc.
and relationships between these concepts. Services (and processes) in the WSPO
ontology are not represented as concepts, but as relationships denoting
accessibility relations between states of a software system.</p>
        <p>– Ontology concepts in this approach are states (pre- and poststates),
parameters (in- and out-parameters), and conditions (pre- and postconditions).
– Two forms of relationships are provided in the ontology. The services or
processes themselves are called transitional relationships. Syntactical and
semantical descriptions here parameter objects (syntax) and conditions
(semantics) are associated through descriptional relationships.</p>
        <p>WSPO provides a standard template for service and service process description
– applied in Fig. 1 to express a composite bank account process consisting of
operations provided by services like ’balance enquiry’ or ’money transfer’. This
application is based on four individual services, each described in terms of input,
output, precondition, and postcondition. Syntactical parameter information in
relation to the individual activities – to be implemented through service
operations – and also semantical information such as pre-conditions are attached to
each activity as defined in the template. The following textual representation
summarises the syntactical aspects in a traditional IDL-style interface format:
application AccountProcess
services login (user:string, account:int) : ID
balance enquiry (account:int) : currency
money transfer (account:int, destination:int, amount:currency) : void
logout (sessionID:ID) : void
process login; !( balance enquiry + money transfer ); logout
The services are composed to a process, here using the combinators sequence (;),
iteration (!), and choice (+) in the textual representation above, which is also
visualised in UML notation in Fig. 1.</p>
        <p>
          WSPO can be distinguished from traditional service ontologies by two specific
properties. Firstly, based on an extension of description logics [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], it adds a
relationship-based process sublanguage enabling process expressions based on
iteration, sequential and parallel composition, and choice operators. Secondly,
it adds data to processes in form of parameters that are introduced as constant
process elements into the process sublanguage. This ontological representation
in WSPO is actually an encoding of a simple dynamic logic (a logic of programs)
in a description logic format [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], allowing us to avail of modal logic reasoning
about processes in this framework. For example, in order to implement a bank
account process, an implementation for a money transfer service with input
parameter amount (assumed to be always positive) needs to be integrated. For
any given state, the process developer might require (using the balance enquiry)
service:preCondition rdfConstr="balance() &gt; amount"
service:postCondition rdfConstr="balance() = balance()@pre - amount"
which would be satisfied by a provided service
service:preCondition rdfConstr="balance() &gt; 0"
service:postCondition rdfConstr="balance() = balance()@pre - amount
and lastActivity = ’transfer’"
The provided service would weaken the required precondition assuming that the
transfer amount is always positive and strengthen the required postcondition as
an additional result (lastActivity) is delivered by the provided service. This
matching notion, which is important for service discovery support, is
implemented in WSPO based on a refinement of the standard subsumption relation
of description logics towards a consequence inference rule from dynamic logic.
        </p>
        <p>We have chosen WSPO here instead of the SWSF. The more recent SWSF
is an equally suitable service process ontology, providing actually a wider range
of modelling feature, which would make it the better choice once sufficient tool
support is available. For the moment, WSPO as a more focused and decidable
ontology is the better choice in terms of tractability of the approach.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Transformation and Code Generation</title>
        <p>Automated code generation is one of the central objectives of MDD. Two types
of generation of code in service platform-specific languages are relevant here
– Executable code generation: in the context of SOA, code generation
essentially means the generation of exectuable service processes. WS-BPEL
{
{
(BPEL, 2004) has emerged as the most widely accepted process execution
language for Web services. Within MDD, code generation is usually specified
through transformation rules.
– Abstract description generation: a central element of SOA is service discovery
based on abstract service descriptions. OWL-S, WSMO, or SWSF would be
suitable ontology frameworks that support description and discovery.</p>
        <p>An overview of some of the transformation rules for a WSPO to WS-BPEL
transformation to generate executable code is presented below. WSPO defines a
simple process language that can be fully translated into WS-BPEL. BPEL
process partners are the consumers and the different service providers – the WSPO
specification is already partitioned accordingly. The WSPO process combinators
can also be mapped directly onto the BPEL flow combinators. The principles of
this transformation can be characterised as follows:
– The WSPO process relationships can be mapped to BPEL processes.
– For each process, a BPEL partner process (consumer and server) is created.
– Each process expression is converted into BPEL-invoke activities at the client
side and BPEL-receive and -reply activities at the server side.
– The process combinators ’;’, ’+’, ’ !’, and ’||’ are converted to the BPEL flow
combinators sequence, pick, while, and flow, respectively.</p>
        <p>A schematic example in the declarative transformation language QVT shall
illustrate these principles for WSPO-to-BPEL transformations1:
transformation WSPO_to_WS-BPEL (wspo : WSPO, bpel: WS-BPEL)
{
top relation TransRelationship_to_Process</p>
        <p>/* maps trans. relationships to processes */
checkonly domain wspo w:TransRel {name = pn}
enforce domain bpel b:Process {name = pn}
}
where {</p>
        <p>RelExpr_to_ProcessExpr(w);
relation RelExpr_to_ProcessExpr</p>
        <p>/* map each process expression recursively */
domain wspo r:Relationship {
e1 = e:LeftExpr {},
e2 = e:RightExpr {},
op = c:Combinator {}
1 Although its standardisation is not completed and no tool support is currently
available for the declarative specifications, QVT will be an essential tool for the
implementation of our approach in the near future.</p>
        <p>}
domain bpel p:Process {
process = p:Process {left=e1, pr=op, right=e2},
client = pe:ProcessExpr {invoke=op(e1,e2)},
server = pe:ProcessExpr {receive=(op,e1,e2), reply=op(e1,e2)}
}
when {</p>
        <p>CombinatorMapping(op) and ProcessPartnerCreation(p);
}
where {</p>
        <p>RelExpr_to_ProcessExpr(e1) and RelExpr_to_ProcessExpr(e2);
We do not present the WS-BPEL representation here, since with the exception of
some reformulations of operators and the additional verbosity of the XML-based
formulation, the process itself is similar to the WSPO representation.</p>
        <p>The second transformation and code generation context relates to service
description and discovery. The Web Services platform proposes a specific
architecture based on services, which can be located using abstract service information
provided in service registries. The description of services – or service processes
made available as a single service - ideally in semantical format is therefore of
central importance. Information represented in the process model and formalised
in the service process ontology can be mapped to a service ontology. This
transformation would only be a mapping into a subset of these ontologies, since they
capture a wide range of functional and non-functional properties, whereas we
have focussed on architecture-specific properties in WSPO.</p>
        <p>We chose WSMO as the target. An overview of the transformation rules
from WSPO to WSMO is outlined below. Some correspondences between the
two ontology frameworks guide this transformation. WSPO input and output
elements correspond to WSMO message-exchange patterns, which are used in
WSMO to express stimuli-response patterns of direct service invocations, and
WSPO pre- and postconditions correspond to their WSMO counterparts.
– WSPO process relationships are mapped to WSMO service concept and fill
messageExchange and pre- and postCondition properties accordingly.
– WSPO in/out-objects are mapped to WSMO messageExchange descriptions.
– WSPO pre- and postconditions are mapped onto their WSMO counterparts.
A QVT formulation would be similar to the WSPO-to-BPEL transformation.
2.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>Discussion</title>
        <p>This section has demonstrated the role that ontologies can play in model-driven
development of service-centric software systems. They can provide a semantic
modelling framework in particular for the Web platform due to the support of
ontologies through the Semantic Web initiative. They can act as a foundational
layer to define visual modelling languages, to support composition tasks, and to
enable automated transformations.</p>
        <p>While we have discussed the application of ontologies for functional aspects
of software systems specification such as pre- and postconditions, their scope
stretches further to also include non-functional aspects such as general
descriptions, cost models, security requirememts, etc. . Non-functional aspects shall be
addressed in depth in the next section.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Modelling of Non-Functional Service Aspects</title>
      <p>The deployment model of services in general and Web services in particular
is based on the idea of service provider and service consumer being business
partners. This constellation requires contracts to be set up, based on
servicelevel agreements (SLAs). While of course functional characteristic of services are
vital elements in these SLAs, non-functional aspects – ranging from availability
and performance guarantees to costing aspects – are equally important and need
to be captured in SLAs to clearly state the quality-of-service (QoS) obligations
and expectations of provider and consumer.</p>
      <p>
        This discussion will show that ontologies are an adequate modelling notation,
but that additional techniques are needed to address modelling, in particular if
functional and non-functional aspects are integrated. We will introduce
distribution patterns, again at the architectural level, to provide a framework for higher
levels of abstraction beyond the service process composition [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. These patterns
will add a widely used method centering around the notion of reuse of abstract
architectural designs and models to semantic modelling. A quality dimension is
added through quality attributes associated to these distribution patterns.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Distribution and Service Topology</title>
        <p>Ontologies, the focus of the previous section, can deal with the abstract
specification of QoS properties by providing an adequate vocabulary based on a variety
of relationships. A mere statement of required QoS properties is therefore often
not sufficient to actually guarantee these properties. However, there are links
between functionally-oriented models and QoS properties. We look at distribution
properties of service-centric software systems to illustrate this.</p>
        <p>Distribution, i.e. the consideration of the location of services in a complex
system, affects qualities of the software systems such as reliability, availability,
and performance. We use the term service topology to refer to the modelling of
service compositions as collaborating entities under explicit consideration of the
distribution characteristics.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Service Topology Modelling</title>
        <p>
          Based on experience with the design and implementation of service-centric
software systems, a number of standard architectural configurations have emerged
[
          <xref ref-type="bibr" rid="ref25 ref27 ref29 ref31">25, 27, 29, 31</xref>
          ]. These include centralised configurations such as the
Hub-andSpoke or decentralised ones such as Peer-to-Peer architectures. These standard
configurations can be abstracted into architecture-lavel distribution patterns for
the SOA platform.
        </p>
        <p>
          The goal is to enable the generation of architecturally flexible Web service
compositions, whose Quality of Service (QoS) characteristics can be evaluated
and altered at design time. Distribution pattern modelling expresses how the
composed system is to be deployed from the architectural perspective [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
Having the ability to model, and thus alter the distribution pattern, allows an
enterprise to configure its systems as they evolve, and to meet varying non-functional
requirements.
        </p>
        <p>There is a subtle difference between two of the modeling aspects within a
Web service composition, namely workflows and distribution patterns. Both
aspects refer to the high level cooperation of components, termed a collaboration,
to achieve some compound novel task. We consider workflows as compositional
orchestrations, whereby the internal and external messages to and from services
are modelled. In contrast, distribution patterns are considered compositional
choreographies, where only the external messages flow between services is
modelled. Consequently the control flow between services are considered orthogonal.
As such, a choreography can express how a system would be deployed. The
internal workflows of these services are not modelled here, as there are many
approaches to modelling the internals of such services.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Modelling Process and Transformation</title>
        <p>
          This component of our framework comprises a catalog of distribution patterns,
which may be applied by software architects to Web service compositions [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
Distribution patterns express how a composed system is to be assembled and
subsequently deployed. Each of the patterns in the catalog has associated
Quality of Service (QoS) characteristics, exhibited during execution of Web service
compositions. The catalog enumerates the QoS characteristics of each of the
patterns, enabling the architect to choose a pattern appropriate to the non
functional requirements of a given composition.
        </p>
        <p>The patterns are split into three categories, core patterns, auxiliary patterns
and complex patterns. Core patterns represent the simplest distribution patterns
most commonly observed in Web service compositions. Auxiliary patterns are
patterns which can be combined with core patterns to improve a given QoS
characteristic of a core pattern, the resultant pattern is a complex pattern. This
catalog assists software architects in choosing a distribution pattern for a given
application context. The catalog is outlined briefly below:</p>
        <p>We describe one pattern to illustrate distribution patterns and their QoS
relevance. The Centralised pattern, or Hub-and-Spoke pattern, manages the
composition from a single location, normally the participant initiating the composition.
Here is the service choreography:
application Centralised
services Hub ( in : inType) : outType</p>
        <p>Spoke1 ( . . . ) : . . .
. . .</p>
        <p>Spoken ( . . . ) : . . .</p>
        <p>process Hub ||D ( Spoke1 || . . . || Spoken )</p>
        <p>The composition controller (the hub) is located externally from the service
participants to be composed (the spokes), indicated through the distribution
annotation at the parallel composition operator. Spokes would internally invoke
the Hub using the given Hub interface. The external spoke interfaces are not
relevant here. This is the most popular and usually default distribution
configuration for service compositions. The advantages of the pattern in terms of QoS
aspects are:
– Composition is easily maintainable, as composition logic is all contained at
a single participant, the central hub.
– Low deployment overhead as only the hub manages the composition.
– Composition can consume participant services that are externally controlled.</p>
        <p>Web service technology enables the reuse of existing services.
– The spokes require no modifications to take part in the composition. Web
service technology enables interoperability.</p>
        <p>The main disadvantages are:
– A single point of failure at the hub provides for poor reliability/availability.
– A communication bottleneck at the hub restricts scalability. SOAP messages
have considerable overhead for message deserialisation and serialisation.
– The high number of messages between hub and spokes is sub-optimal. SOAP
messages are often verbose resulting in poor performance for Web services.
– Poor autonomy in that the input and output values of each participant can
be read by the central hub.</p>
        <p>A distribution pattern language DPL provides the constructs for the internal
representation of a distribution pattern. The DPL, which similarly to WSPO
has a UML interface based on activity diagrams, provides:
– control flow: information about the nodes and edges that define the control
flow structure, on which interactions between individual services take place.
– data flow: information about which data is flowing in which direction in an
interaction between services.</p>
        <p>DPL is a high-level service process modelling language that provides the
foundations for pattern-based service architecture.
While we have looked at architectural patterns to model the functional side
in the previous section, i.e. the structural and behavioural aspects of software,
we have focused here on their potential in the context of non-functional
properties. Distribution patterns imply non-functional properties of service-centric
software systems. The choice of these patterns in particular determines
performance, availability, and reliability charateristics of the software system itself.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>A Service Engineering Perspective</title>
      <p>Issues arising from the cooperation between organisations and the integration
of systems across organisations leads to another couple of issues relevant to our
discussion of ontologies and patterns for service-centric software engineering.
This discussion of a wider context helps us to determine the potential, but also
the challenges for the use of ontologies and patterns.
4.1</p>
      <sec id="sec-4-1">
        <title>Cooperation</title>
        <p>The cooperation between service providers and consumers is necessary for
serviceoriented computing. This requires at least interoperability of formats of all
artifacts involved, in particular for models. Contracts stating service-level
agreements are the actual documents, which might refer to additional documents and
models internally. Ontologies have the potential to provide a common
vocabulary that would allow the automated processing of these contracts. The wider
aim within a service-centric software engineering discipline is an integrated value
chain for software services that brings together all participants in the production
process – for instance through interoperable deployment infrastructures, but also
through contract and model exchange.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Trust</title>
        <p>Trust is a central problem for collaborating partners that are initially often
unknown to each other. In the context of automated service compositions, detailed
model-based contracts can capture the obligations and expectations in terms of
functional and QoS service properties, but do not suffice on their own.
Interoperability is an enabler of integrated value chains, but only trust will make this
business scenario work ultimately.</p>
        <p>At the core of trust mechanisms are composition and description techniques,
for instance our ontology-based modelling techniques. Quality-of-service and
other non-functional properties broaden the overall focus without losing the
composition activity at the core.</p>
        <p>The certification of services is the central trust mechanism. A certification
infrastructure needs to be added to allow in particular consumers to trust their
service providers. Certification needs to ensure in the service composition context
more than the authenticity of the provider; it needs to ensure service properties.
This is another potential use of, but also a technical challenge for ontology
technology. Models of the various aspects play a central role here as the foundations
of contracts, which can form the basis of a certificate. For instance, the proofs
of properties resulting from ontological reasoning about service properties and
service compositions can be included in these certificates.</p>
        <p>Trust is an important non-functional consideration that effects the business
context of service composition and provision. The richness of our ontological
modelling framework in terms of models and reliable patterns, however, makes
trust also an opportunity that might succeed for this context.
The activities by standardisation bodies in the software technology context,
such as the OMG or the W3C, indicate two directions for model-driven
service engineering. The OMG has proposed MDA to address code generation and
maintenance, which can act as a framework for a development approach for
service-centric software systems.</p>
        <p>
          The integration of models and descriptions is the first challenge. One
standard is expected to be central in this endeavour. The Ontology Definition
Metamodel ODM is a MOF-based integration format for ontologies and UML models,
currently standardised by the OMG [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. The ODM metamodel can support
semantic services, process composition, and UML model reuse. It allows the overall
integration of semantic descriptions and models. ODM is complemented by the
W3C’s proposal of OWL as the Semantic Web ontology language and ODA as
an ontology-based software development approach.
        </p>
        <p>A second challenge arises from the business perspective on services. This
would include in the services context in particular workflow and business
process modelling as part of a business process engineering stage and semantic
integration. Currently, this aspect with a focus on business modelling and analysis
is receiving some attention. The OMG-supported Business Process Modelling
Notation BPMN is an example. MDA, for instance, provides only a framework,
but not enough support for the consistent mapping of business processes onto
the platform layer. The use of ontologies for semantic integration and patterns
to provide an abstraction and design technique across the stages would improve
this endeavour.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>
        Some approaches have started exploiting the connection between ontologies –
in particular OWL – and MDA. In [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], an MDA-based ontology architecture
is defined. This architecture includes aspects of an ontology metamodel and a
UML profile for ontologies. The work by [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and the OMG [
        <xref ref-type="bibr" rid="ref1 ref11">1, 11</xref>
        ], however, needs
to be carried further to address the ontology-based modelling and reasoning of
service-based architectures. In particular, the Web Services architecture needs
to be addressed in the context of Web-based ontology technology.
      </p>
      <p>
        Grønmo et.al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] introduce – based on ideas from [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] – an approach similar
to ours. Starting with a UML profile based on activity diagrams, services are
modelled. These models are then translated into OWL-S. Although the paper
discusses process composition, this aspect is not detailed. We have built on [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
in this respect by considering process compositions in the UML profile and by
mapping into a service process ontology that focusses on providing explicit
support for service composition. In comparison to UML/OCL approaches, ontologies
enable full-scale logic support and also the possibilty to share representations
due to their grounding in OWL.
      </p>
      <p>
        Since software architecture is the overall context of our investigation,
architectural description languages (ADLs) shall briefly be discussed. For instance,
Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] is a π-calculus-based ADL. Darwin focuses on component-oriented
development, addressing behaviour and interfaces. Restrictions based on the
declarative nature of Darwin make it rather unsuitable for the design of
servicebased architectures, where both binding and unbinding on demand are required
features. With the support for composition and abstraction of architectural
configurations service composition ontologies and distribution patterns would
constitute an essential part of an ADL.
      </p>
      <p>
        The notion of patterns has recently been discussed in the context of Web
service architectures [
        <xref ref-type="bibr" rid="ref25 ref29">25, 29</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref27 ref29">29, 27</xref>
        ], collections of workflow patterns are
compiled. We have based our catalog on these collections. Grønmo et al. [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]
consider the modelling and building of compositions from existing Web services
using MDA, based on [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. The authors consider two modelling aspects, service
(interface and operations) and workflow models (control and data flow concerns).
Their modelling effort begins with the transformation of WSDL documents to
UML, followed by the creation of a workflow engine-independent UML activity
diagram, which drives the generation of an executable composition.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>A new architectural paradigm such as service-oriented architecture (SOA)
requires adequate methodological support for design and maintenance. While an
underlying deployment platform exists in the form of the Web services platform,
an engineering methodology and techniques are still largely missing. The
importance of modelling for SOA has been recognised – and has resulted in the
development of Model-Driven Architecture (MDA) as an approach to support
the design of service-centric software systems. We have focussed on pattern-based
semantic modelling of service architectures. These are two architectural aspects
– semantic service description and pattern- and process-based architectural
configuration – that can complement the MDA approach.</p>
      <p>Ontology and Semantic Web technologies provide semantic strength for the
modelling framework, necessary for a distributed and inter-organisational
environment. A central element of our modelling method is a service ontology
tailored to support service composition and transformation. An ontology-based
technique is here beneficial for the following reasons. Firstly, ontologies define a
rigourous, logic-based semantic modelling and reasoning framework thats
support architectural design activities for services. Secondly, ontologies provides a
knowledge integration and interoperability platform for multi-source semantic
service-based software systems. Our aim here was to demonstrate the suitability
of ontologies for this environment – for both WSPO to support architectural
issues but also for WSMO here to support service discovery. We have integrated
this service composition ontology with a pattern-based architecture modelling
technique integrating visual UML-based modelling, transformation,
ontologybased reasoning, and code generation.</p>
      <p>We see our investigation as a step towards a service engineering discipline.
Service engineering deals with process and integration issues. While we have
focused on service composition and integration, data integration is an equally
important that needs to be investigated further in this context. We interpret
here a notion of service engineering as a wider process, covering a number of
value chain stages. The software value chain that we have referred to earlier
structures service engineering. It is a classical top-down model that needs to
be augmented further. System evolution adds another dimension of importance
for a service engineering discipline. Re-engineering and migration need to be
integrated. Legacy systems can be integrated into service-oriented architectures
using software re-engineering and architecture transformation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Object Management Group.
          <source>MDA Model-Driven Architecture Guide V1.0.1. OMG</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          .
          <article-title>Software Architecture in Practice (2nd Edition)</article-title>
          .
          <source>SEI Series in Software Engineering. Addison-Wesley</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>G.</given-names>
            <surname>Alonso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Casati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kuno</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Machiraju</surname>
          </string-name>
          .
          <source>Web Services - Concepts</source>
          ,
          <source>Architectures and Applications</source>
          . Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          .
          <article-title>The Pragmatics of Model-Driven Development</article-title>
          , IEEE Software,
          <volume>20</volume>
          (
          <issue>5</issue>
          ):
          <fpage>19</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. World Wide Web Consortium. Web Services Architecture. http://www.w3.org/TR/ws-arch,
          <year>2006</year>
          . (visited
          <volume>28</volume>
          /02/
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>C.</given-names>
            <surname>Peltz</surname>
          </string-name>
          .
          <article-title>Web Service orchestration and choreography: a look at WSCI and BPEL4WS</article-title>
          .
          <source>Web Services Journal</source>
          ,
          <volume>3</volume>
          (
          <issue>7</issue>
          ),
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>McIlraith</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Martin</surname>
          </string-name>
          . Bringing Semantics to Web Services.
          <source>IEEE Intelligent Systems</source>
          ,
          <volume>18</volume>
          (
          <issue>1</issue>
          ):
          <fpage>90</fpage>
          -
          <lpage>93</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J.</given-names>
            <surname>Rao</surname>
          </string-name>
          , P. Ku¨ngas, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Matskin</surname>
          </string-name>
          .
          <article-title>Logic-Based Web Services Composition: From Service Description to Process Model</article-title>
          .
          <source>In International Conference on Web Services ICWS</source>
          <year>2004</year>
          , pages
          <fpage>446</fpage>
          -
          <lpage>453</lpage>
          . IEEE Press,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>DAML-S Coalition</surname>
          </string-name>
          .
          <article-title>DAML-S: Web Services Description for the Semantic Web</article-title>
          . In I. Horrocks and J. Hendler, editors,
          <source>Proc. First International Semantic Web Conference ISWC</source>
          <year>2002</year>
          , LNCS
          <volume>2342</volume>
          , pages
          <fpage>279</fpage>
          -
          <lpage>291</lpage>
          . Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>R.</given-names>
            <surname>Lara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stollberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polleres</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Feier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bussler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Fensel</surname>
          </string-name>
          .
          <source>Web Service Modeling Ontology. Applied Ontology</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>77</fpage>
          -
          <lpage>106</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Object Management Group.
          <article-title>Ontology Definition Metamodel - Request For Proposal (OMG Document: as/</article-title>
          <year>2003</year>
          -03-40). OMG,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Pahl. Layered Ontological Modelling for Web Service-oriented Model-Driven Architecture</article-title>
          .
          <source>In European Conference on Model-Driven Architecture ECMDA2005</source>
          . Springer LNCS Series,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>C.</given-names>
            <surname>Pahl</surname>
          </string-name>
          .
          <article-title>An Ontology for Software Component Matching</article-title>
          .
          <source>International Journal on Software Tools for Technology Transfer (STTT)</source>
          ,
          <source>Special Edition on Componentbased Systems Engineering, 7</source>
          ,
          <year>2007</year>
          (in press).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>F.</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>McGuiness</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nardi</surname>
          </string-name>
          , and P.P. Schneider, editors.
          <source>The Description Logic Handbook</source>
          . Cambridge University Press,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>M.C. Daconta</surname>
            ,
            <given-names>L.J.</given-names>
          </string-name>
          <string-name>
            <surname>Obrst</surname>
            , and
            <given-names>K.T.</given-names>
          </string-name>
          <string-name>
            <surname>Smith.</surname>
          </string-name>
          <article-title>The Semantic Web</article-title>
          . Wiley,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <article-title>W3C Semantic Web Activity</article-title>
          .
          <source>Semantic Web Activity Statement</source>
          ,
          <year>2004</year>
          . http://www.w3.org/2001/sw.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>J.B. Warmer</surname>
            and
            <given-names>A.G.</given-names>
          </string-name>
          <string-name>
            <surname>Kleppe. The Object Constraint Language - Precise Modeling With UML. Addison-Wesley</surname>
          </string-name>
          ,
          <year>2003</year>
          .
          <article-title>(2nd Edition)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>R.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Patcas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Murphy</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Pahl</surname>
          </string-name>
          .
          <article-title>Model Driven Distribution Pattern Design for Dynamic Web Service Compositions</article-title>
          . In International Conference on Web Engineering ICWE06. Palo Alto, US. ACM Press,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. D. Djuri´c.
          <article-title>MDA-based Ontology Infrastructure</article-title>
          .
          <source>Computer Science and Information Systems (ComSIS)</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>91</fpage>
          -
          <lpage>116</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>R.</given-names>
            <surname>Grønmo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.C.</given-names>
            <surname>Jaeger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Hoff</surname>
          </string-name>
          .
          <article-title>Transformations between UML and OWLS</article-title>
          . In A. Hartman and D. Kreische, editors,
          <source>Proc. Model-Driven Architecture - Foundations and Applications</source>
          , pages
          <fpage>269</fpage>
          -
          <lpage>283</lpage>
          . Springer-Verlag,
          <source>LNCS 3748</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Semantic Web Services Language (SWSL) Committee. Semantic Web Services</surname>
          </string-name>
          <article-title>Framework (SWSF)</article-title>
          . http://www.daml.org/services/swsf/1.0/,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. B.
          <string-name>
            <surname>-H. Schlingloff</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Martens</surname>
            and
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
          </string-name>
          .
          <source>Modeling and Model Checking Web Services. Electronic Notes in Theoretical Computer Science: Issue on Logic and Communication in Multi-Agent Systems</source>
          ,
          <volume>126</volume>
          :
          <fpage>3</fpage>
          -
          <lpage>26</lpage>
          .
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>R.</given-names>
            <surname>Dijkman</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Dumas</surname>
          </string-name>
          .
          <article-title>Service-oriented Design: A Multi-viewpoint Approach</article-title>
          . Intl.
          <source>Journal of Cooperative Information Systems</source>
          ,
          <volume>13</volume>
          (
          <issue>4</issue>
          ):
          <fpage>337</fpage>
          -
          <lpage>368</lpage>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. E. Gamma,
          <string-name>
            <given-names>R.</given-names>
            <surname>Helm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Vlissides</surname>
          </string-name>
          . Design Patterns:
          <article-title>Elements of Reusable Design</article-title>
          .
          <source>Addison Wesley</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>N.Y.</given-names>
            <surname>Topaloglu</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Capilla</surname>
          </string-name>
          .
          <article-title>Modeling the Variability of Web Services from a Pattern Point of View</article-title>
          . In L.J. Zhang and M. Jeckle, editors,
          <source>Proc. European Conf. on Web Services ECOWS'04</source>
          , pages
          <fpage>128</fpage>
          -
          <lpage>138</lpage>
          . Springer-Verlag,
          <source>LNCS 3250</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>C.</given-names>
            <surname>Pahl</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Barrett</surname>
          </string-name>
          .
          <article-title>Towards a Re-engineering Method for Web Services Architectures</article-title>
          .
          <source>In Proc. 3rd Nordic Conference on Web Services NCWS'04</source>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>W.M.P. van der Aalst</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Kiepuszewski A.H.M. ter Hofstede</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.P.</given-names>
            <surname>Barros</surname>
          </string-name>
          . Workflow Patterns.
          <source>Distributed and Parallel Databases</source>
          ,
          <volume>14</volume>
          :
          <fpage>5</fpage>
          -
          <lpage>51</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>J. Magee</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Dulay</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Eisenbach</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kramer</surname>
          </string-name>
          .
          <article-title>Specifying Distributed Software Architectures</article-title>
          . In W. Sch¨afer and P. Botella, editors,
          <source>Proc. 5th European Software Engineering Conf. (ESEC 95)</source>
          , Springer LNCS 989, pages
          <fpage>137</fpage>
          -
          <lpage>153</lpage>
          .
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>M.</given-names>
            <surname>Vasko</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Duskar</surname>
          </string-name>
          .
          <article-title>An Analysis of Web Services Flow Patterns in Collaxa</article-title>
          . In L.J. Zhang and M. Jeckle, editors,
          <source>Proc. European Conf. on Web Services ECOWS'04</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          . Springer LNCS 3250,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>D.</given-names>
            <surname>Skogan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grønmo</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Solheim.</surname>
          </string-name>
          <article-title>Web Service Composition in UML</article-title>
          .
          <source>In Proc. 8th International IEEE Enterprise Distributed Object Computing Conference (EDOC)</source>
          , pages
          <fpage>4757</fpage>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31. S. Th¨one,
          <string-name>
            <given-names>R.</given-names>
            <surname>Depke</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Engels.</surname>
          </string-name>
          Process-Oriented,
          <article-title>Flexible Composition of Web Services with UML</article-title>
          .
          <source>In Proc. Joint Workshop on Conceptual Modeling Approaches for e-Business (eCOMO</source>
          <year>2002</year>
          ).
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>