Model-driven Web Service Development 1, 2

advertisement
Copyright © 2004, Idea Group Inc. International Journal of Web Services Research, 1(4), Oct-Dec 2004
Model-driven Web Service
Development1, 2
Roy Grønmo, SINTEF, Norway
David Skogan, SINTEF, Norway
Ida Solheim, SINTEF, Norway
Jon Oldevik, SINTEF, Norway
ABSTRACT
Web service technologies are becoming increasingly important for integrating systems and services. There is much activity and interest around standardization and
usage of web service technologies. Contemporary web services are described in the
Web Service Description Language (WSDL). However, WSDL documents can be
difficult to understand for service developers. This paper recommends a modeldriven process for web service development combining the graphical modeling language UML with WSDL. The Unified Modeling Language (UML) is developed by
Object Management Group. In the proposed process, web service descriptions (in
WDSL) are converted to UML; their UML models are integrated to form composite
web services; and then the new web service descriptions are exported. The main contribution of this paper is a “pure UML” modeling strategy supported by implementation of two-way conversion rules between the UML models and the WSDL documents.
Keywords: MDA, WSDL, UML
INTRODUCTION
Web services are functional
components, available over the Internet, and described in the Web Service
Definition
Language
(WDSL)
(Christensen et al., 2001). WSDL descriptions are often complex in nature
and are usually automatically generated by web service development
tools such as Apache Axis or .NET.
To humans, WSDL descriptions can
be more or less incomprehensible,
which makes it difficult to decide if
an existing web service is applicable
to a selected task. Comprehension is a
problem, not only regarding the semantics of the operations and their
parameters, but also when it comes to
understanding what the web service
really does.
This paper investigates the use of
the Unified Modeling Language
(UML) to express the content and be-
havior of web services in a more understandable way than WSDL. This
approach is motivated by the Modeldriven Architecture (MDA) initiative
of the Object Management Group
(OMG) (OMG, 2002b). The UML is
a central component of the MDA.
The UML provides different kinds of
model constructs and diagrams with
roots in object-oriented programming.
In model-driven development, models
are used to describe business concerns, user requirements, activities,
information structures, components
and component interactions of a system. Most important are the class
diagrams, which are used to describe
interfaces and classes with their operations and attributes. Such models
govern the system development in
that they can be transformed to program code. In the case of web service
development, the models are transformed into the Web Service Description Language.
UML modeling for automatic
generation of CORBA IDL, Java
code, EJB etc. has been successfully
tried out, e.g. (SINTEF, 2004). When
it comes to web services, two different UML approaches are reported in
the literature (Provost, 2003; Thöne
et al., 2002). Provost (2003) presents
a WSDL-dependent approach by extending UML with WSDL-specific
constructs. On the other hand, Thöne
et al. (2002) presents a WSDLindependent approach with only pure
UML constructs such as classes and
interfaces. This paper questions the
need for WSDL-dependent UML
modeling approaches and investigates
the usefulness of WSDL-independent
UML models for web service specification. The following two questions
are addressed:
(a) Are WSDL-specific UML
constructs necessary to understand
what the web service does? Or does
pure UML provide even better understanding?
(b) Are WSDL-specific UML
constructs necessary for forward
and/or reverse engineering of web
services? Or can pure UML be used
successfully for the same conversions?
Extending UML with platformspecific constructs is quite popular.
An example from code generation is
the UML profile for the Business
Process
Execution
Language
(BPEL4WS), which can be used to
automatically generate BPEL4WS
documents (Gardner, 2003). The Hypermodel tool of Carlson (2003) has
the ability to import XML Schema
into UML, but the resulting UML
model has extensions specific to
XML Schema. Kollman et al. (2002)
give an overview of state of the art in
reverse engineering, in which none of
the referred tools uses platformindependent models. Nevertheless,
we are of the opinion that the pure
UML modeling approach advocated
in this paper, supported by adequate
conversion rules between UML and
WSDL, both aids the comprehension
and suffices for reverse and forward
engineering of web services.
The paper continues with a description of the model-driven web
service development process, followed by the distinction of interface
modeling from workflow modeling.
Then, conversion rules between UML
and WSDL are presented, followed
by a description of a tool used to implement these conversions. Finally,
the approach is evaluated and the
work is concluded.
MODEL-DRIVEN WEB
SERVICE DEVELOPMENT
As the number of web services
available is increasing, it seems natural to reuse existing web services and
thus aim at creating composite web
services. A model-driven web service
development process is depicted in
Figure 1. It shows a UML activity
diagram indicating the steps of
model-driven development of composite web services. In the first step
(Discover Web Services) the developer uses a web-browser, a registry
client (typically UDDI) to search and
discover candidate web services that
may be used in the composite service.
The output of this activity is a list of
web service descriptions, represented
as WSDL documents. The web service descriptions are then converted
into UML by a reverse engineering
transformation (Import Web Service
Descriptions). The output of this step
is one or more UML models of the
discovered web services, e.g. as depicted in Figure 3. It will be easier for
the developer to comprehend the
UML models of the web service interface than to understand the WSDL
documents.
The developer then uses a UML
tool to review and integrate the imported models to form a model of a
composite web service (Model Composite Web Service). This activity
consists of two sub-activities, interface modeling and workflow modeling. The interface modeling specifies
the service's interface and its operations, whereas the workflow modeling specifies the service's internal
processes. The output is a new UML
model representing the new composite web service with its interfaces and
its workflow. This model can now be
used to generate the WSDL description of the composite service (Export
Web Service Descriptions) and to
generate its executable workflow description. The latter is suitable for
implementing the service (Implement
Composite Web Service), for example by means of an execution engine
Figure 1. Model-Driven Web Service Development
MODEL COMPOSITE WEB SERVICE
WSDL
UML
Interface Modeling
Discover
Web Services
Import Web Service
Descriptions
GENERATION TOOL
Export Web Service
Descriptions
CompositeWebServiceWSDL
Workflow Modeling
Implement Composite Web
Service in Workflow Engine
Publish Composite
Web Service
Export Execution
Code
Execution document
BPELWS,
WSCI, BPML etc
(Gardner, 2003). An execution engine
executes the different activities,
specified in a workflow execution
document, in the correct order and
with the required data inputs and outputs. Finally, the service is published
in an appropriate registry, making it
available for use (Publish Composite
Web Service). This paper concentrates on the three activities Import
Web Service Descriptions, Interface
Modeling and Export Web Service
Descriptions.
The next two sections focus on
the core of the model-driven web services development, which is the UML
modeling part. We will concentrate
on capturing the conceptual models
without introducing all the complexity provided by WSDL and other web
service specifications.
INTERFACE MODELING
A web service basically provides
a set of operations. We have developed a metamodel for interface modeling of a web service (Figure 2). A
web service is modeled as a BusinessService. The BusinessService realizes a set of Interfaces. An Interface
has a set of operations with input parameters and return type. The parameter types are defined by a class.
The behavior of the operation is defined by a workflow model. Instances
of this metamodel may be modeled as
UML class models.
UML has two extension mechanisms that allow developers to specify user- defined constructs. The first
extension mechanism is stereotypes
and the second is tagged values. New
stereotypes can be defined and used
to model special types of classes.
Tagged values are name-value pairs
that can be associated with classes,
operations or attributes to signify a
special treatment in transformations
and/or code generation.
Figure 3 shows a possible instance of the metamodel. The BusinessService is mapped to a UML
class with stereotype <<BusinessService>>. The service MyWebService
realizes two interfaces. These two
Figure 2. Metamodel for Interface Modeling of Web Services
BusinessService
1..*
Workflow
Model
0..1
+realizes
Interface
1..*
+behaviour
Operation
+publicOperations
0..*
+inputParameters
Class
1
+type
0..1 +returnType
Parameter
Figure 3. A Web Service Interface Model
BasicWFS
+DescribeFeatureType()
+getCapabilities()
+GetFeature()
CreditCard
-expires : date
-number : string
TransactionWFS
+lockFeature()
+transaction()
Payment
+validate( card : CreditCard ) : boolean
<<BusinessService>>
MyWebService
interfaces have a total of six operations (including the inherited operations) which are provided by MyWebService. The operation validate takes
an input parameter further defined by
the class CreditCard.
WORKFLOW MODELING
We will use the term workflow
even though several other terms are
used in the literature, e.g. composition, business process, orchestration
and choreography. Workflow modeling identifies the internal behavior of
a web service operation, for instance
how existing web services are used
together in order to produce a composite web service. Workflow modeling is about identifying the activities
of the operation and specifying the
order in which they are performed.
Furthermore, each activity may have
input and output data objects. The
activities and data objects will need
to refer to elements already defined in
existing web services. This relationship is illustrated and explained in the
following example.
The left-hand side of Figure 4
expresses a workflow model in a
UML activity diagram. This model
refers to elements used in the reverseengineered UML model of a WSDLdescribed web service (right-hand
side of Figure 4). The workflow reuses three other web services in order
to produce a new composite web service. Each activity is stereotyped
WebService to indicate that it invokes
an operation of a web service. Activity number two, ValidateCreditCard,
takes a credit card object as input and
gives a boolean response indicating if
the credit card is valid or not. The
input data object is of type CreditCard, which refers to a class in the
imported WSDL specification. The
ValidateCreditCard has a set of
tagged values that identifies the exact
web service operation to invoke. The
WSDL value identifies the imported
Figure 4. Imported WSDL Model used in the Workflow Model
Imported
WSDL
WSDL1
<<WebService>>
Activity1
input1 : type1
output1 : type2
MyWebService
<<WebService>>
ValidateCreditCard
{Interface=Paym ent,
WSDL=MyWebService.wsdl,
Operation=validate,
BusinessService=MyWebService}
CreditCard
card : CreditCard
Payment
+validate()
validateResponse : boolean
<<Busines s Service>>
MyWebService
input3 : type5
<<WebService>>
Activity3
output3 : type6
WSDL package, and the tagged values BusinessService, Interface and
Operation provide a unique reference
to the operation. The names of these
tagged values refer to UML elements
in the reverse-engineered UML
model, and are equal to names given
in the corresponding WSDL file.
The example in Figure 4 underlines the need to reverse-engineer
web services so that their elements
are available in the UML environment. The alternative is for the UML
modeler to look into the WSDL files
through an XML viewer and manually create the necessary UML models.
This kind of workflow modeling
is further elaborated in e.g. (Dumas &
Hofstede, 2001; Grønmo & Solheim,
2004; Thöne et al., 2002).
WSDL3
FROM WSDL TO UML
The previous section identified
the need to import the WSDL files
into the UML environment when creating composite web services. We
have defined and implemented conversion rules from WSDL to UML to
automate this import process. We will
investigate how to produce UML
from WSDL by looking at an example web service with WSDL representation. The well-known web
search engine Google provides a web
service that allows developers to use
services related to web searching.
This section identifies two approaches to modeling the WSDL content within UML: WSDL-dependent
and WSDL-independent interface
modeling. These two approaches are
here applied to the Google web ser-
Figure 5. WSDL-dependent UML Model of Google Service
<<wsdl:portType>>
GoogleSearchPortType
+doGetCachedPage( doGetCachedPage : doGetCachedPage ) : doGetCachedPageResponse
+doGoogleSearch( doGoogleSearch : doGoogleSearch ) : doGoogleSearchResponse
+doSpellingSuggestion( doSpellingSuggestion : doSpellingSuggestion ) : doSpellingSuggestionResponse
<<wsdl:port>>
GoogleSearchPort
{URI=http://api.google.com/search/beta2}
<<wsdl:service>>
GoogleSearchService
<<wsdl:message>>
doGetCachedPage
<<wsdl:message>>
doGetCachedPageResponse
-key : string
-url : string
-return : base64Binary
<<wsdl:message>>
doSpellingSuggestion
<<wsdl:message>>
doSpellingSuggestionResponse
-key : string
-phrase : string
-return : string
1
-binding
<<wsdl:binding>>
GoogleSearchBinding
{binding=soap:binding,
style=rpc,
transport=http://schemas.xmlsoap.org/soap/http}
<<wsdl:message>>
doGoogleSearch
<<wsdl:message>>
doGoogleSearchResponse
-filter : boolean
-ie : string
-key : string
-lr : string
-maxResults : int
-oe : string
-q : string
-restrict : strict
-safeSearch : boolean
-start : int
-return : GoogleSearchResult
<<xs:complexType>>
GoogleSearchResult
<<xs:complexType>>
DirectoryCategory
<<xs:complexType>>
ResultElement
-directoryCategories : DirectoryCategoryArray
-documentFiltering : boolean
-endIndex : int
-estimatedTotalResultsCount : int
-estimateIsExact : boolean
-resultElements : resultElementArray
-searchComments : string
-searchQuery : string
-searchTime : double
-searchTips : string
-startIndex : int
-fullViewableName : string
-specialEncoding : string
-cachedSize : string
-directoryCategory : DirectoryCategory
-directoryTitle : string
-hostName : string
-relatedInformationPresent : boolean
-snippet : string
-summary : string
-title : string
-URL : string
vice so that one can compare the results.
A closer look into a WSDLoriented UML profile (Provost, 2003)
shows how UML extension mechanisms may be used to define:
• stereotypes for the specific
WSDL and XML Schema types
such as <<wsdl:portType>>,
<<wsdl:service>>
and
<<xs:complexType>>; and
• tagged values for representing
bindings, access URLs, etc. (Note
that Provost suggests that the
binding information may be left
out at the modeling level.)
According to this profile, a web service should be modeled using the
specified UML stereotypes and
tagged values, resulting in a WSDLdependent model. Figure 5 shows a
WSDL-dependent UML model of the
Google service. The GoogleSearchService represents the web service. It
contains a GoogleSearchPort with
access URL, which in turn refers to
the concrete binding represented by
GoogleSearchBinding.
GoogleSearchBinding defines the transport
protocol to be used with its associated
tagged values (binding, style and
transport) and realizes the GoogleSearchPortType. The GoogleSearchPortType defines the three available
operations. Note that each of these
operations has exactly one input parameter and one output parameter that
directly reflect the WSDL programming model of sending an input message and receiving an output message
as answer. To retrieve the actual details of these messages, it is necessary
to look at the <<wsdl:message>>
stereotyped classes.
The Google service has been remodeled according to the WSDLindependent approach advocated in
this paper. The result is presented in
Figure 6, which is thus an instance of
the metamodel presented in Figure 2.
The UML model in Figure 6 is obviously much simpler than the one in
Figure 5. For the comprehension, it is
a major improvement that the operation signatures now reflect the logical
input and output parameters. The operation doGoogleSearch retrieves a
complete array of results based on a
query string and a set of other configuration parameters. The operation
doGetCachedPage retrieves a cached
web page for a given URL as input.
The last operation, doSpellingSuggestion, provides spelling aid given a
phrase string. Furthermore, no
WSDL or XML Schema stereotypes
have been included, and the information about the access URLs, bindings
and transport protocols are not part of
the model.
We conclude this section by
briefly explaining the main conver-
sion rules for transforming a WSDL
file into WSDL-independent UML. A
WSDL service is converted to a BusinessService. Each WSDL port within
service is converted to a realize relationship of the BusinessService. Each
portType is converted to a UML interface. Finally, all XML Schema defined types in the WSDL file are converted to UML classes.
FROM UML TO WSDL
This section presents conversion
rules from WSDL-independent UML
models to WSDL documents. The
WSDL-independent UML models do
not contain any information about
binding, transport protocol and access
URLs. In order to produce complete
WSDL files, these additional details
are added. The user configures the
proper choices within an XML configuration file. The user may choose
between SOAP RPC, HTTP Get and
HTTP Post as the binding transport
protocol.
The conversion rules are explained by an example. Figure 7 revisits MyWebService that is modeled
Figure 6. WSDL-independent UML Model of Google Service
GoogleSearchPort
+doGetCachedPage( key : string, url : string ) : base64Binary
+doGoogleSearch( key : string, q : string, start : int, maxResults : int, filter : boolean, restrict : string, safeSearch : boolean, lr : string, ie : string, oe : string ) : GoogleSearchResult
+doSpellingSuggestion( key : string, phrase : string ) : string
GoogleSearchResult
-directoryCategories : DirectoryCategoryArray
-documentFiltering : boolean
-endIndex : int
-estimatedTotalResultsCount : int
-estimateIsExact : boolean
-resultElements : ResultElementArray
-searchComments : string
-searchQuery : string
-searchTime : double
-searchTips : string
-startIndex : int
<<BusinessService>>
GoogleSearchService
DirectoryCategory
-fullViewableName : string
-specialEncoding : string
ResultElement
-cachedSize : string
-directoryCategory : DirectoryCategory
-directoryTitle : string
-hostName : string
-relatedInformationPresent : boolean
-snippet : string
-summary : string
-title : string
-URL : string
Figure 7. Conversions from a UML Model to a WSDL Document
Interf
a ce
<types> <schema>
<complexType name="CreditCard">...
<element name="number" type="string"/>
<element name="expires" type="date"/>...
<<Interface>>
</types>
ss
BasicWFS
Cla
<message name="validateRequest">
<part name="card" type="CreditCard"/></message>...
getCapabilities()
CreditCard
<portType name="Payment">
describeFeatureType()
<operation name="validate">
number : string
getFeature()
expires : date
<input message="validateRequest"/>
<output message="validateResponse"/>
C opy
-down
</operation></portType>
Inheri
<portType name="TransactionWFS">
ta nce
<operation name="getCapabilities">...
<operation name="describeFeatureType">...
<operation name="getFeature">...
<<Interface>>
<operation name="lockFeature">...
<<Interface>>
TransactionWFS
<operation name="transaction">...
Payment
ace
rf
te
In
<binding name="PaymentSOAPBinding" type="Payment">
lockFeature()
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" ...>
validate(card : CreditCard) : boolean
transaction()
<operation name="validate">...</binding>
<binding name="TransactionWFSSOAPBinding" type="Payment">
Re
<operation name="getCapabilities">...
ali z
e
<operation name="describeFeatureType">...
<operation name="getFeature">...
<operation name="lockFeature">...
<operation name="transaction">...</binding>
ice
<service name="myWebService">
BusinessServ
<<BusinessService>>
<port name="Payment_Port”
MyWebService
binding="PaymentSOAPBinding">
<soap:address location=”..www.myWebService.com"/>...
<port name="TransactionWFS_Port”
binding="TransactionWFSSOAPBinding">…
WSDL-independently according to
the metamodel in Figure 2. The righthand side of the figure shows the corresponding WSDL document. The
WSDL document is simplified for
clarity by leaving out a few elements
and attributes as well as removing all
the XML namespace information.
MyWebService realizes a web feature
service interface (OGC, 2002) and a
payment interface. The CreditCard
class with the number and expires
attributes, corresponds to a complexType in the type section of the WSDL
file with the same name as the class,
and part elements with the same
names as the UML attributes. The
Payment interface with the validate
operation corresponds to both a
WSDL portType and a WSDL binding. The Payment portType contains
one WSDL operation for each inter-
face operation. For each portType
there must be at least one WSDL
binding with type name equal to the
portType name. Furthermore, the
binding contains one WSDL operation for each operation of the interface.
The TransactionWFS interface
provides operations for delivering
geographic data and possibly updating the data. This interface offers the
operations of the OpenGIS consortium Web Feature Service Specification (WFS) (OGC, 2002). TransactionWFS inherits three operations
from the BasicWFS interface. UML
interface inheritance results in copydown of operations in WSDL, since
WSDL does not support inheritance
of portTypes or bindings. Class inheritance (not shown in the figure) is
handled by XML Schema inheritance.
This means that in a conversion from
a WSDL document to UML, there
will not be any resulting interface inheritance. A possible improvement in
future versions of WSDL will allow
for operation inheritance by enabling
portTypes to inherit from other portTypes.
IMPLEMENTATION
In this paper we have described
conversion rules for two different
transformations, from WSDL to
UML and back. These conversions
have been implemented in the UML
model transformation tool (UMT)
(SINTEF, 2004). UMT is a general
purpose UML transformation tool
that is designed to do different kinds
of transformations: UML model to
UML model, UML model to code
and reverse-engineering of code to
UML model. These kinds of transformations are also identified by the
Object Management Groups Query
View Transformation (QVT) activity
(OMG, 2002a), that aims to establish
standards for model driven development transformations.
Figure 8 shows the high-level
process of UMT and its current support for model-driven web service
development. UMT has an open architecture based on XML Metadata
Interchange (XMI) (OMG, 2002c),
which is the de-facto standard for representation of UML. The developer
needs a UML tool that supports XMI
import or export, since XMI is used
as an input or output format in the
transformation process of UMT. Internally, UMT works with a simplified XMI, called XMI Light, which
eliminates unnecessary complexity
from the XMI representation. In future versions, XMI 2.0 may be used
as the governing representation. XMI
Light is a simplification of XMI and a
common denominator for a set of
XMI versions. Transformers that implement transformations are implemented in either XSLT or Java and
they have XMI Light as input or output depending on the kind of transformations.
XSLT has been used to implement conversions both ways between
WSDL and UML class diagrams.
UMT also has support for the conversions, one way, from UML to the
execution
languages
such
as
BPEL4WS. UMT has a graphical
user interface implemented in Java
where the developer can configure
and run the desired transformations.
Figure 8. Web Service Tool Support
Web Service Specifications
Transformers
C2
WSDL
UMT
UML model
C1
C3
Execution languages
C4
A1
XMI
obj
A3
XMI
Light
Execute
transformer
BPEL4WS
A2
WorkSco
There exist other transformers for
non-web services specifications such
as Java, and SQL. The graphical user
interface of UMT and some of its
transformers, including the web service transformers, are available at
SourceForge with a GNU Lesser open
source
license
(http://umtqvt.sourceforge.net).
EVALUATION
This section evaluates the three
main topics of this paper: The "pure
UML" approach, the WSDL-to-UML
conversion rules, and the UML-toWDSL conversion rules.
The "pure UML" approach.
The use of UML to model web service interfaces has been promoted by
others (Provost, 2003; Carlsson,
2003). However, UML profiles for
this purpose produce WSDLdependent UML models. Such models contain a number of WSDL details being irrelevant for understanding the semantics of the service.
Rather, there is a risk of getting lost
in implementation details.
On the other hand, using pure
UML for web service modeling is
very helpful to the modeler's comprehension, especially when the models
are complex. However, former attempts of WSDL-independent UML
models (Thöne et al., 2002) have not
resulted in automatic generation of
the new WSDL file. The work presented in this paper has provided tool
support all the way from the existing
WDSL files through the modeling
phase and to the automatic generation
of the new WSDL file. The generality
of pure UML models also allows for
conversion to more than one target
platform (WSDL, IDL, Java, etc.), or
to later versions of the same platform.
The conversion rules between
UML and WSDL have been implemented in the UMT tool. This has
enabled testing and practical experience of the conversion rules.
From WSDL to UML. Several
WSDL documents found on the Web
have been reverse-engineered. However, even if the generated UML
models are simple, the quality of the
models is not always good. The reason is that many WSDL documents
do not have proper element names.
Another finding is that the WSDL
documents that are generated from
Java or .NET oriented WSDL-tools
have different naming conventions.
One example is a WSDL document
where all operations have exactly one
input parameter which is always
named "parameters". This input parameter is then of a type consisting of
parts representing each actual parameter. This problem is illustrated
by an example of a UML model generated from a WSDL file provided by
CapeScience (Figure 9). The service
provides several operations, but only
one operation is showed in the figure
to illustrate the point. The getWind
operation takes an arg0 named parameter of type string as input and
produces an output which is a string.
The semantics of the input and output
is unclear. The arg0 input parameter
requires a four character international
airport code, while the output returns
a natural language string describing
the wind condition. It is obvious that
the semantics of the reversegenerated UML model is dependent
on the semantics included in the
WSDL document. Quite often there
are no semantic definitions associated
with the WSDL file, since the way to
do this has not been standardized.
Figure 9. Simplified UML Model
generated from non-informative
WSDL
Station
+getWind( arg0 : string ) : string
From UML to WSDL. Based
on a simple UML model with a class
which realizes some interface one
may quickly come up with a WSDL
document using the conversion rules.
The transport protocol and encoding
styles can be chosen at generation
time and the protocols generated
should follow recommendations of
the Web Services Interoperability Organization (WS-I, 2003). The generation tool provides a good starting
point and the resulting WSDL document can be further improved by a
few manual insertions or corrections,
e.g. by specifying necessary XML
namespaces.
CONCLUSIONS
This paper recommends developers to model web services as conceptual UML models without using
WSDL-specific constructs. Further, it
presents a two-way mapping between
a WSDL-independent interface model
in UML and the corresponding ser-
vice description in WSDL. On the
basis of practical tests, we claim that
WSDL-independent UML models are
better for understanding what a web
service does; and that WSDLindependent UML models are sufficient for forward and/or reverse engineering of web services. The findings
lead to the following conclusions:
(1) A WSDL-independent UML
model of a web service explains that
service better than a WSDLdependent model or pure WSDL does.
This because WSDL-specific UML
constructs obscure rather than clarify
the content and behavior of the web
service. On the contrary, models ignoring the WDSL-specific information contain fewer technical details
and are therefore easier to understand
for humans.
(2) WSDL-independent UML
models simplify building of web services, especially when the services
are complex. This assertion is based
on the fact that it is easier to integrate
existing web services at the abstract
level. The choice of protocols and
bindings can be left to the underlying
infrastructure.
(3) Reverse engineering of
WDSL specifications to WDSLindependent UML models works for
all kinds of services. The nature of
the transformation rules allows us to
reverse engineer any WSDL document. However, it does not always
provide semantically useful models,
due to the low semantic content of
some WSDL documents.
(4) Forward engineering (code
generation) of WDSL-independent
UML models into WSDL service de-
scriptions works for all kinds of services. The transformation rules generate valid WSDL documents based
on the choice of transport protocols
and bindings. Hence, we can in principle produce a web service specification for any UML class that has operations specified.
The recommended approach facilitates the inclusion of existing web
services into a model-driven environment. It also allows the developer
to be more efficient in interpreting
and reusing existing services in new
settings.
ENDNOTES
1. A short version of this paper
was presented at The 2004 IEEE International
Conference
on
eTechnology, e-Commerce and eService (EEE-04), Taipei, Taiwan.
2. This paper has been partially
funded by the European Union project IST-2001-37724, Adaptable and
Composable E-commerce and Geographic Information Services (ACEGIS).
REFERENCES
Carlson, D. (2003). Hypermodel
Tool, from www.ontogenics.com.
Christensen, E., Curbera, F.,
Meredith, G., & Weerawarana, S.
(2001). Web Services Description
Language (WSDL) 1.1, W3C Note,
from www.w3.org/TR/wsdl
Dumas, M., & Hofstede, A. H.
M. t. (2001). UML Activity Diagrams
as a Workflow Specification Language. Paper presented at the The
Fourth International Conference on
the Unified Modeling Language,
UML 2001, Toronto, Ontario, Canada.
Gardner, T. (2003). UML Modelling of Automated Business Processes
with a Mapping to BPEL4WS. Paper
presented at the 17th European Conference on Object-Oriented Programming (ECOOP), Darmstadt,
Germany.
Grønmo, R., & Solheim, I.
(2004). Towards Modeling Web Service Composition in UML. Paper presented at The 2nd International
Workshop on Web Services: Modeling, Architecture and Infrastructure
(WSMAI-2004), Porto, Portugal.
Kollman, R., Selonen, P.,
Stroulia, E., Systä, T., & Zundorf, A.
(2002). A Study on the Current State
of the Art in Tool-Supported UMLBased Static Reverse Engineering.
Paper presented at the Ninth Working
Conference on Reverse Engineering
(WCRE'02), Richmond, Virginia.
OGC. (2002). Web Feature Service Implementation Specification
Version 1.0.0 (OpenGIS Implementation Specification No. OGC 02-058):
Open GIS Consortium Inc.
OMG. (2002a). MOF 2.0
Query/View/Transformation
RFP,
from www.omg.org
OMG. (2002b). Object Management Group's Model Driven Architecture, from www.omg.org/mda
OMG. (2002c). XML Metadata
Interchange (XMI). www.omg.org
Provost, W. (2003). UML for
Web Services. XML.com, from
http://www.xml.com/lpt/a/ws/2003/0
8/05/uml.html.
SINTEF. (2004). UML Model
Transformation tool (UMT), from
http://umt-qvt.sourceforge.net/
Thöne, S., Depke, R., & Engels,
G. (2002). Process-Oriented, Flexible
Composition of Web Services with
UML. Paper presented at the International Workshop on Conceptual
Modeling Approaches for e-Business:
A Web Service Perspective (eCOMO
2002), Tampere, Finland.
WS-I. (2003). Web Services Interoperability Organization, from
http://www.ws-i.org/
ABOUT THE AUTHORS
Roy Grønmo has been working
as a research scientist at SINTEF
since 1998. He holds a master in
computer science from the University
of Oslo, Norway from 1995. During
his time at SINTEF, he has been involved in European and Norwegian
research and industrial projects, focusing on model-driven development,
XML-based technology, The Unified
Modeling Language and geographical information systems.
David Skogan has a Masters degree in computer science from the
Norwegian Technical University in
Trondheim and has been working as
a research scientist at SINTEF since
1994. His fields of interest are geographic information science, objectoriented modeling, interoperability
standards and web service technologies. Hi is working on a PhD at the
University of Oslo on the subject of
multi-resolution geographic information. Currently he is technical coor-
dinator of the European Union project ACE-GIS (IST-2001-37724).
Ida Solheim has been working as
a research scientist at SINTEF since
1997. She has a Master degree from
the University of Oslo (1993) in the
application of computer science to
geography. She has wide experience
in data modeling, systems development and project management, both
from IT industry and applied research. Her research interests are in
the area of data modeling, objectoriented modeling, and interoperability, mainly involving geographic information.
Jon Oldevik has been working as
a research scientist at SINTEF since
1996. He holds a master in computer
science from the University of Oslo,
Norway from 1996. During his time
at SINTEF, he has been involved in
European and Norwegian research
and industrial projects, focusing on
distributed, component-based, and
service-oriented system engineering,
methodologies, integration and interoperability, architecture analysis,
and model driven development. He
has earlier been involved in standardisation efforts towards OMG and
ISO. Currently, he is a task leader in
the European EUREKA project
‘Families’.
Download