</service>
</definitions>
The listing above shows all first-level elements
1
that
are related to the ItemSearch operation of the Ama-
zon Electronic Commerce Service 4.0
2
. From the list-
ing one can see that to invoke the ItemSearch opera-
tion RequestMsg message must be sent to the service
(see portType element). The message protocol must
be SOAP and the transport must be HTTP (see bind-
ing element). The message must contain at least one
part that consists of an element of Request type. Re-
quest is a self-defined type and described inside types
element. If ItemSearch operation completes success-
fully the result will be sent back to the client inside
ResponseMsg message. The payload of the message
is defined by Response element.
2.3.2 Changes of Web Service Description
Both parts of a .wsdl file can change over time. This
subsection presents the analysis of possible changes
of WS description and their effect on communication
between a service and its client.
The change of the service element implies the
change of endpoints to which messages are sent. The
change affects neither the contents nor the format of
messages. Storing endpoints in a configuration file
will help to safeguard clients from this kind of change.
A change of the binding element implies changing
either message protocol (SOAP, HTTP-POST, HTTP-
GET, etc.) or parameter encoding if SOAP over
HTTP is chosen. Such a change alters the structure
of the messages, but their content stays the same.
The portType element defines the signature of
each operation of the Web service. This part of the
description is most likely to change over time. The
change might happen to either the name of an opera-
tion or the message attribute of the input/output ele-
ments of an operation. Changing the attribute means
that another message will be used to communicate
with the service. In addition existing operations may
be removed and new ones added.
A change of the message element means either
changing the type or element that is referenced by any
of the message parts or adding/removing a message
part. In practice most messages consist of one part,
therefore the second type of change is rare.
The last element to consider is types. The element
includes the definitions of data types used in mes-
1
For the ease of reading and comprehending all names-
pace attributes and URLs have been omitted.
2
ItemSearch operation searches the Amazon.com prod-
uct catalog for items that meet a user-specified criterion
(e.g. have certain title, manufacturer, etc.).
sages. This element represents the payload of mes-
sages. The types element is very likely to change:
new type definitions can be added and existing ones
can be removed or altered. A change of the types el-
ement most probably implies the semantic change of
message payload.
Generally speaking, a change of the abstract part
implies a change of service’s functionality, whereas a
change of the concrete part alters the way this func-
tionality is invoked. If changing the interface or im-
plementation of a service breaks ongoing client ap-
plications the new version of the service should be
created (Lublinsky, 2007). The most notable version-
ing approaches for WS are described in (Lublinsky,
2007). According to Lublinsky versioning may take
place at three levels: message level, method level and
service level. On the message level versioning is ap-
plied by placing message elements in a unique names-
pace that is related to the specific version of a service.
This is done by appending a version identifier or a
date stamp to the namespace attribute of message el-
ements. On the method and service levels versioning
is applied by assigning different endpoints to the ver-
sions of a method and a service respectively.
3 MESSAGE CONVERSION
3.1 The Approach
Web services use XML to represent messages flow-
ing between a service and its clients. A client con-
structs a message encapsulating a function call and
sends the message to the service. The service pro-
cesses the message and constructs an output message
if required and sends the message to back to the client.
An important detail is that after request and response
messages have been sent, they become independent
of the client and the service. As shown in the subsec-
tion 2.2 the reason of incompatibility is the discrep-
ancy between the service’s and the client’s commu-
nication protocols resulted in incompatible messages.
To reconcile this incompatibility message conversion
can be used. The main idea of the solution is to trans-
form XML messages using XSL transformation be-
fore they reach their destination. Figure 3 shows how
the solution fits into the existing interaction process.
Note that there is no necessity to use converters on
the service and the client sides for each communica-
tion direction at the same time.
The solution is based on the translator pattern
that in turn derives from the pipes-and-filters pattern
(Hohpe and Woolf, 2004). In their work Hohpe and
Woolf introduced the translator as a part of messag-
ICSOFT 2008 - International Conference on Software and Data Technologies
154