Information Technology Reference
In-Depth Information
parameters in the initial composite web service,
a
x
,
a
y
. All the previous steps are
repeated for the altered composite web service
C
until no common part exists between
its' parameters. Then,
C
is returned, as was formed from the procedure and represents
a composition having
sequence
,
split
and
split-join
control constructs that functionally
represents the data flow among the participating simple web services.
After the completion of
Join
, the null parameters of the functional representation
created so far are cleared and the pointless control constructs are removed, e.g. the
expression
split
(
A
) becomes
A
. Finally, the duplicate references to control constructs
are eliminated This means, that the expression
seq
(
seq
(
A
,
B
),
C
) is transformed to the
equivalent one
seq
(
A
,
B
,
C
).
Fig. 3.
Composition example
A short example of the whole procedure is given to clarify its workings. In
Fig. 3
a
web services composition plan is depicted in a graphical way. The clear service is
only the service
A
, so the result of the
Basic
algorithm, before calling the algorithm
Join
, will be
seq
(
A
,
split
(
seq
(
B
,
D
),
seq
(
C
,
D
))). The
Join
algorithm will notice that the
parameters
seq
(
B
,
D
) and
seq
(
C
,
D
) have the service
D
as a common part, so the
split
control construct can be replaced by a
split-join
one. By removing the common part
from each parameter, the results are the representations
seq
(
B
,
null
) and
seq
(
C
,
null
)
and they are added as parameters in a new
split-join
control. Since the common part is
not in a
split
expression in none of the two parameters, the resulting common part is
just the service
D
and the new
sequence
representation is constructed as follows:
seq
(
split-join
(
seq
(
B
,
null
),
seq
(
C
,
null
)),
D
). This representation replaces the
split
of the
initial expression and the result is the representation
seq
(
A
,
seq
(
split-
join
(
seq
(
B
,
null
),
seq
(
C
,
null
)),
D
)).
After the completion of the clearing algorithm the functional representation is
transformed to
seq
(
A
,
seq
(
split-join
(
B
,
C
),
D
)) which finally becomes
seq
(
A
,
split-
join
(
B
,
C
),
D
) at the last step, which is an accurate functional representation of the
composition.
3.2
Creating OWL-S Descriptions
Up to this point, a functional representation has been constructed that supplies suffi-
cient information on the data flow of the composition. But, for the procedure to be
complete so as to provide the user with a new semantic web service ready for execu-
tion, the OWL-S description has to be constructed. This is done based on this repre-
sentation. The descriptions that are constructed by the algorithm are the process and
the profile descriptions. The OWL-S API, which can be found at [11], was used for
their creation. This OWL-S API is a JAVA library providing functions that facilitate
the creation of OWL-S descriptions.
First, the process file is created by the algorithm 4,
OWLSProcess
. The algorithm
takes as input parameter the composite web service representation
C
, as formed by the