mal framework based on type safety criteria and al-
gorithms which controls and delimits the evolution of
services. The framework extends and applies theo-
ries and methods of controlling evolution from object-
oriented programming languages like subtyping and
co- and contra-variance of input and output (Meyer,
1997).
Based on these principles a reasoning mechanism
is presented that allows deciding when a change to
the service interface leads to a compatible version of
the service for the consumers. More specifically, the
framework is based on a technology-agnostic notation
for the representation of service interfaces in the form
of Abstract Service Descriptions (ASDs).
In order to provide tooling support for such frame-
work, a DSL toolkit to model ASDs was introduced in
previous works (Vara et al., 2012). Nevertheless, de-
spite there are different initiatives for services repre-
sentation, most of existing services use WSDL (W3C,
2001) to provide a standard description of their inter-
face. Therefore, to widen the scope of the approach
the first task to address is the building of technologi-
cal bridges to extract the information gathered in any
existing WSDL document to express it in terms of the
DSL already introduced for ASD modeling. As a re-
sult, the level of abstraction at which reasoning about
the interface of any given set of services is made can
be raised.
The process to extract ASD models from WSDL
files is briefly illustrated in Figure 1.
• The starting point is one or more WSDL les de-
scribing different versions of the same service,
namely S
1
and S
2
. Being XML les, they conform
to the WSDL XML Schema (WSDL.xsd).
• In order to bring them to a model-engineering
context, a TCS (Jouault et al., 2006) text-to-model
transformation (XML2Ecore) is used to inject such
les into two XML models, which conform to the
XML metamodel (XML.ecore). The objects of
these models are basically XML elements and
attributes. This way this transformation allows
moving from grammarware to modelware (Wim-
mer and Kramler, 2006).
• Next, we map the XML models to WSDL
models conforming to the WSDL metamodel
(WSDL.ecore). To do so we use an ATL
(Jouault et al., 2008) model-to-model transforma-
tion (XML2WSDL).
• Another model-to-model transformation (WSDL2-
ASD) extracts the structural and non-functional in-
formation of the WSDL models to produce two
ASD models that conforms to the ASD meta-
model (ASD.ecore). Such models provide high-
level descriptions of the services interfaces, which
abstract completely of any technological detail.
It is worth mentioning that the development of
the inverse transformation chain will be addressed as
well. Thus, a WSDL document could be derived from
an ASD model. To that end, note that when moving
from WSDL to ASD all the non-structural data is lost.
Figure 2 shows the solution that will be adopted in or-
der to solve this issue.
To support the extraction of complete WSDL files,
such data will be collected into partial WSDL mod-
els. Then, the different reasoning will be performed
over the ASD by means of the MDE processing tech-
niques needed. Once the ASD desired is obtained, it
will be merged with the partial WSDL model (con-
taining the non-structural information). As a result
a WSDL model that can be directly serialized into a
WSDL document will be obtained.
3 TRACKING SERVICE
VERSIONS COMPATIBILITY
As mentioned before, a first version of the service ver-
sion comparer was introduced in previous works. In
particular, the Service Representation Modeler (SR-
Mod
1
) provides a textual report on the compatibility
of two given versions of the same service. Such as-
sessment is based on evaluating if sub-typing relation-
ships hold between the elements of both versions.
Next movement on the development of the MDE
framework to support service evolution is to extend
the use of MDE technologies to improve the han-
dling of the comparison process output. More specif-
ically, version comparison results will be expressed
in the shape of traces model (Santiago et al., 2012)
that relates the ASD models representing each ver-
sion of the service. This way, each element of the
trace model would inform of the level of compatibil-
ity between two given elements of the service versions
compared, together with a short description of the is-
sues related to the compatibility assessment. The use
of trace models to represent the output of compatibil-
ity assessment results in two main advantages:
• On the one hand, being persisted as models, such
results could be later processed by means of any
other MDE technique, such as model merging or
model checking (Bernstein, 2003).
• On the other hand, the nature of the informa-
tion gathered from the assessment process is em-
inently relational. It consist mainly of statements
1
http://srmod.wordpress.com/
SupportingServiceVersioning-MDEtotheRescue
213