<!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>Service Substitution Analysis in Protocols Evolution Context</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ali Khebizi</string-name>
          <email>ali.khebizi@gmail.com</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hassina Seridi-Bouchelaghem</string-name>
          <email>seridi@labged.net</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Imed Chemakhi</string-name>
          <email>Chemakhi.imed@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hychem Bekakria</string-name>
          <email>hychem.bekakria@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer science Institute</institution>
          ,
          <addr-line>08</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>LABGED Laboratory, University Badji Mokhtar Annaba</institution>
          ,
          <addr-line>Po-Box 12, 23000</addr-line>
          ,
          <country country="DZ">Algeria</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>LabStic Laboratory</institution>
          ,
          <addr-line>08</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2012</year>
      </pub-date>
      <fpage>12</fpage>
      <lpage>21</lpage>
      <abstract>
        <p>As Web services become the dominant technology for integrating distributed information systems, enterprises are more interested by these environments. However, enterprises socio-economic environments are more and more subject to changes which impact directly business processes published as Web services. In parallel, if at change time some instances are running, the business process evolution will impact the equivalence and substitution classes of the actual service. In this paper, we present an equivalence and substitution analysis in dynamic evolution context. We suggest an approach to identify residual services that can substitute a modi ed one, where ongoing instances are pending. Our analysis is based on protocol schema matching and on real execution traces. The proposed approach has been implemented in a software tool which provides some useful functionalities for protocol managers.</p>
      </abstract>
      <kwd-group>
        <kwd>Service protocol</kwd>
        <kwd>Protocol equivalence</kwd>
        <kwd>Protocol substitution</kwd>
        <kwd>Dynamic evolution</kwd>
        <kwd>Execution path</kwd>
        <kwd>Execution trace</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Web services are the new generation of distributed software components. They
generate a lot of enthusiasm among different socio-economic operators’s which
favourite these environments to deploy applications at a large scale.
Standardization is a key concept, so actors uses standards like WSDL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], UDDI [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and
SOAP [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to publish, discover, invoke and compose distributed software. In this
context, intra and inter enterprises applications integration is more flexible, easy
and transparent. Moreover, integration process is accelerated among internet
stakeholders.
      </p>
      <p>
        In Web services technology, two elements are fundamental for providing a high
interactivity level between service providers and service requesters. The first
one is service interface, described via the standard WSDL. The second element
is service protocol (Business Protocol), which describes the provider’s business
process logic. A Business process consists of a group of business activities
undertaken by one or more organizations in pursuit of some particular goal [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
For example, booking flight tickets and B2B transactions. In addition,
Business process specifies the service external behaviour by providing constraints on
operations order, temporal constraints [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and transactional constraints [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], in
order to promote correct conversations, as service operations can’t be invoked
in an aleatory order. However, if a service protocol is published in the Web
(its interface and its protocol), at a moment during its life cycle, it can be
invoked by some clients. Furthermore, in large public applications (e-commerce,
e-government, electronic library, . . . ), thousand of clients are invoking the
service at the same time and every one has reached a particular execution level. In
parallel, as enterprises are open systems, changes are permanent and inevitable.
Consequently, business processes may evolve to adapt to environment changes
that affect real word. In this case, related service protocols must be updated,
otherwise services execution may produce incoherences when they are invoked.
      </p>
    </sec>
    <sec id="sec-2">
      <title>This context is called dynamic protocol evolution.</title>
      <p>
        In dynamic protocol evolution, the evolved service protocol may not be able to
satisfy initial customer requirements. Furthermore, some services may fails and
clients must find new services that can replace actual one. Services substitution
analysis deal with checking if two services satisfy the same functionalities; if
they support the same conversation messages [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This concept is very useful
in case of service failure, in order to search an other one to replace it. In some
cases, this analysis can serve to search and locate a new service with the same
functionalities but with a higher quality of service (Qos). It can also be used to
test whether a new proposed version, that expresses evolution or maintenance
requirements, is yet, equivalent to an obsolete one and for finding new services
that can support conversations required by standards like ebXML [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], Rosetanet
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and xCBL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Service evolution is expressed through the creation and
decommission of its different versions during its lifetime. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
Service protocol update induces challenges for filtering which services, already
identified and compared to old version, remain equivalents or can replace the
evolved one. The major constraint is related to active instances that have
already executed some operations based on old version. In this context, we must
deal with historical executions in substitution analysis process.
      </p>
      <p>In this paper we are interested to dynamic evolution and we focus on change
impact analysis on service protocol substitution. A set of methods are exposed
to check if new service version, can be yet substituted by the hole (or partially)
set of services that were discovered corresponding to the obsolete version.
The remainder of the paper is structured as follow. We start by describing the
problem and exposing our motivations, in section 2. In section 3, we propose
our formal approach and algorithms for managing substitution aspects in
dynamic evolution context. Section 4, describes system architecture and software
tool implementation. We expose related works in section 5 and conclude with a
summary and directions for future works in section 6.</p>
      <sec id="sec-2-1">
        <title>Problem and Motivations</title>
        <p>Every organisation (enterprises, administrations, banks, ...etc.) is an open
system which is, eventually, impacted by environment changes. In order to
survive, organization must adapt there business processes. Today’s organizations
information systems -reflecting business processes- are exposed on the Web as
services (interfaces and protocols) and every business process changes induce,
immediately, these two descriptions update. The challenge in dynamic protocol
evolution context is to identify, among the set of already identified class
substitution services, the subset of those that can, yet, replace an actual service after its
specification changes, with respect to past interactions. Addressing service
protocols substitution analysis, after protocol evolution, responds to the following
motivations:
1. Ensuring service execution continuation for active instances.
2. Ensuring correct interactions between customers and providers by specifying
the new service substitution class.
3. In dynamic environments, like Web services, transactions are long
duration and resources consumer. It’s not conceivable to restart execution from
scratch because loss of work is catastrophic for customers.
4. In real time systems and critical applications (aeronautics, e-commerce,
medical systems, control systems, manufacture,. . . ), brutal service stop is
catastrophic for organizations. It is imperative to treat with precision and
accuracy services that can substitute an evolved or failed one.
5. In large public applications (e-libraries, e-government, e-learning. . . ), a large
number of active instances are pending, at a time. Manual management
of these instances is cumbersome and an automatic support is required to
ensure that only pertinent services are proposed for substitution process.
The main issue is to manage protocol substitution with respect to historical
traces. Starting a new search query for locating new services, based on the new
version, is expensive and in addition, returned services that can be inconsistent
with old version.</p>
        <p>To illustrate our motivations, we present in Fig.1 a real world scenario.
In this scenario, service protocol P have some equivalent services (P1, P2, . . . , Pn)
and other services (P3, P4, . . . Pm) can substitute it. However, service P has
evolved to a new version P ′ (for different reasons). Evolution operations added
a new message cancelOrder and removed the message Order validated. At
evolution time, active instances (instance 1, instance 2,. . . ), are running and have
reached a particular execution level. In order to be able to substitute service P in
case of problems, protocol manager want to know: Which protocols remain
in conformance with the new protocol speci cation and can replace it ?
3</p>
        <p>
          Analysing Substitution in Dynamic Protocol Evolution
One of the most challenging issues in dynamic protocol evolution context is to
find potential protocols for substitution, where instances are running
according to old protocol. To address this analysis, we introduce three fundamental
concepts: service protocol model, execution path and execution trace.
{ A service protocol: We use finite state machine to represent service
protocols. In this model states represent different phases that a service may
go through during its interaction with a requester. Transitions are triggered
by messages sent by the requester to the provider or vice versa [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. A
message corresponds to operation invocation or to its reply, as shown in Fig
1. A finite state machine is described by the tuple: P = (S, s0, F, M, R),
consisting of:
        </p>
        <p>S : A finite set of states;
s0 2 S: is the protocol initial state;
F : Set of final states machine, with F S;
M : Finite set of messages;
R (S S M ): Transitions set. Each one involves a source state to a
target state following the message receipt.
{ Execution trace: Service behaviour traces is a finite sequence of
operations (a, b, c, d, e, ...). It represents events that service have invoked, from its
beginning to the actual state. We note : trace(P, i) to express the execution
trace performed by an active instance i in a protocol P .
{ Complete Execution path: Represents the sequence of states and
messages from an initial state to a final one. We note : expath(P ).
3.1</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Structural approach based protocol schema</title>
      <p>Let P and P ′ respectively, old and new service versions, after operating changes.
EP = fPi (i = 1 . . . n)g: Is the services set equivalent to P . We note Equi(Pi, P ),
the equivalence relationship between services.</p>
      <p>Two service are equivalent if they can be used interchangeably and they provide
the same functionalities in every context. Every service P i 2 EP can replace P .
Equi(Pi, P ) , 8(i = 1 . . . n)(expath(Pi) expath(P ))^(expath(P ) expath(Pi)).
(^ is the logic and operator). (1)
Let SP = fPj (j = 1 . . . m)g: The services set that can substitute P . We note
Subst(Pj, P ), the substitution relationship.</p>
      <p>
        A service can substitute an other one if it provides, at least, all the conversations
that P supports [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] (complete execution paths).
      </p>
      <p>Subst(Pi, P ) , 8(i = 1 . . . m)(expath(P ) expath(Pi) (2).</p>
      <p>Based on this formalization we notice that if protocol P has evolved to a new
version P ′, equations (1) does not remain valid. So we want to identify the
protocols subset that satisfy equation (2), in order to provide services that can
replace the evolved protocol.</p>
      <p>From equation (2):Subst(Pi, P ′) , 8(i = 1 . . . m) (expath(P ′) expath(Pi).
(3) . We conclude:
Lemma 1:: If the changes related to protocol evolution are reductionist, all
protocols (Pi) that can substitute P , can substitute the new reduced version P ′.
Reducing Protocol description is an application of change operations including:
{ Loops removal.
{ Final sub-paths removal.
{ Operations and messages removal.</p>
      <p>{ Complete paths removal and sub-protocols removal.</p>
      <p>
        This change operation goals are motivated by procedures cancellation,
reducing tasks, business processes alignment, and so one. However, when changes are
additive, substitution analysis must consider the protocol difference. Protocol
difference between two protocols P ′ and P describe the set of all complete
execution paths of P ′ that are not common with P [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We note P ′/P this difference.
Substitution analysis consists to examine each protocol in the class SP , with the
aim to identify possible protocols that can substitute P ′. Because equation (1)
no longer holds, we must comply with equation (2).
      </p>
      <p>In order to replace P ′, each protocol Pi 2 SP must be able to replace the new
requirements (the difference P ′/P ).</p>
      <p>Subst(Pi, P ′) ) Subst(Pi, P ′/P ) , 8(i = 1 . . . m) (expath(P ′/P ) expath(Pi)
(4). We conclude:
Lemma 2: If changes are additive, protocols subset SP which are
containing the difference P ′/P can substitute the new extended version P ′. Additive
changes are operations performing:
{ Adding loops.
{ Adding sub-paths
{ Adding messages and operations .</p>
      <p>{ Adding new complete paths and sub-protocols.</p>
    </sec>
    <sec id="sec-4">
      <title>Execution traces based analysis</title>
      <p>Protocol schema based analysis is rigid and does not take into account the actual
execution for active instances. Really, it’s possible that a protocol Pi 2 SP
can’t substitute an evolved one in general, but by taking into account execution
traces, it can do that for specific instances. As an example, let a protocol P
and its active instances i1, i2, . . . , in, as mentioned in Fig.1. In parallel, protocol
changes have added new states and messages to a particular path: part-path.
After analysing active instances execution traces, we see that all instances have’t
executed this unexpected path part-path. In this case, even if we can’t replace P ′
with a protocol Pi 2 SP , basing on protocol schema analysis, we can substitute it
basing on real execution traces, because changes do not impact real instances. We
notice that execution traces may inform protocol managers on how to proceed
with substitution analysis. We propose two substitution analysis based execution
traces: Historical execution paths and state execution paths.</p>
    </sec>
    <sec id="sec-5">
      <title>Historical execution paths substitution analysis:</title>
      <p>Let histpath a protocol p historical execution path executed by an active
instance i, during its execution, instance i has invoked an operations sequence :
a, b, c, d, e, . . .. And, let futurpath: future paths not yet executed by this instance.
If P ′ is the new version of P , after changes and SP is the protocol set that can
substitute P . We are interested by filtering instances that are not concerned
with changes. We consider protocol changes as the difference between P ′ and
P : P ′/P . In this situation, if protocol Pi 2 SP can’t substitute P ′, contrarily, it
can substitute it for the instances subset that have not executed this difference.
We note: Subst(Pi, P ′)/Occurj: The substitution of P ′ by Pi for occurrence j.
Subst(Pi, P ′)/Occurj(i = 1 . . . n), j = 1 . . . m)is is possible if :
(histpath(occurj) 2/ allpaths(P ′/P ) .(5),where Allpaths(P ′/P ) is the hole
possible paths set generated by protocol difference P ′/P . This means that,
substitution is possible if actual instance i had executed an old path not affected by
changes.</p>
    </sec>
    <sec id="sec-6">
      <title>State Based Substitution Analysis:</title>
      <p>Historical execution path analysis is more general and based on the hole
historical execution paths. Although, protocols P ′ 2 SP can’t replace P in the general
case, substitution is possible for some states. We need to compute which states
are not affected by changes. Substitution analysis must deal with this kind of
traces by selecting protocol services that substitute active service by considering
actual state and future execution path.</p>
      <p>As an example, consider the execution path from Fig. 1: If a subset of actual
instances are in the state: Order made, so their execution trace are : begin.order
made. A service Pi 2 SP can substitute P ′ if it can replace it from the actual
state and future execution paths. We don’t consider past execution paths
because changes occurs after the state (Order made). We formalize this analysis
as follows:
Let futurpaths the future execution path set of an active instance (all future
paths), and s the actual instance i state.</p>
      <p>Subst(Pi, P ′)/state(s) : (i = 1 . . . n) if :
(f uturpaths(state(s)) allpaths(P ′/P )) ^ (trace(P, i) 2 histpath(P i)) .(6)
3.3</p>
    </sec>
    <sec id="sec-7">
      <title>Algorithms</title>
      <p>
        System Architecture and Software tool presentation
We have implemented the software performing substitution analysis in
JavaEclipse environment. Service protocols are implemented as automata and saved
in XML files. The software performs some operational functions useful for
protocol manager like protocol description and correctness specification. Furthermore,
it allows final users performing different changes operations. The system kernel
provides checking static equivalence and substitution. Fig. 3. Based on schema
definitions or on execution traces, the system strength is dynamic analysis. This
analysis allows user to select a particular protocol, operate changes and then
proceed to change impact analysis on protocol substitution. The system filters
the protocol database, analysis logs directory and searches for the remaining
service protocols which can substitute the evolved version Fig. 4. We visualize,
below some screen-shots of the the software tool.
Protocol management and analysis had benefited for a lot off contributions, from
protocol schema matching to static evolution. But, dynamic protocol analysis did
not receive all the interest it deserves. In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] authors presents a general
framework for representing, analysing and managing Web service protocols, however
this analysis is restricted to static context. In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], protocol description is
enriched with temporal constraints and the same static analysis was performed.
In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], authors had proposed some change operators and patterns specification
for changes, but change impact analysis was not presented. In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], dynamic
replaceabilty analysis had been presented in therms of compatibility only.
Authors studies the compatibility between old and new protocol version only. No
comparison with other services was made. Our work responds in a consistent
manner to the previous deficiencies.
6
      </p>
      <sec id="sec-7-1">
        <title>Conclusion and future Work</title>
        <p>In this article we have formalized substitution problem inherent to dynamic
protocol evolution. We have proposed an approach and a software tool for providing
service protocols that can, yet replace an evolved one.</p>
        <p>As future work, we plan to address protocol substitution analysis for richer
protocols descriptions, such as timed and transactional constraints automata. In
addition, we aim to specify protocol changes more formally by identifying
evolution patterns and by their classification with respect to induced impact on
protocol substitution and compatibility.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>R.</given-names>
            <surname>Chinnici</surname>
          </string-name>
          and al.
          <source>Web Services description Language (WSDL) version 2</source>
          .0 June 2007. http://www.w3.org/TR/wsdl20/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>T.</given-names>
            <surname>Bellwood</surname>
          </string-name>
          and al.
          <source>UDDI Version 3.0.2 UDDI Spec Technical Committee Draft</source>
          ,
          <year>2004</year>
          . http: uddi.org/pubs/uddi-v3.htm/
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Gudgin</surname>
          </string-name>
          and al.
          <source>SOAP version 1</source>
          .2,
          <string-name>
            <surname>July</surname>
          </string-name>
          <year>2001</year>
          . http://www.w3.org/TR/2001/WDsoap12-20010709/
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>B.</given-names>
            <surname>Benatallah</surname>
          </string-name>
          and al :
          <article-title>Web Service Conversation Modeling A cornerstone for EBusiness automation</article-title>
          ,
          <source>IEEE Internet computing 8 (1)</source>
          (
          <year>2004</year>
          )
          <fpage>46</fpage>
          -
          <lpage>545</lpage>
          WSC
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>B.</given-names>
            <surname>Benatallah</surname>
          </string-name>
          and al : Representing,
          <article-title>Analysing and Managing Web Service Protocols</article-title>
          .
          <source>Data Knowledge Ingineering</source>
          .
          <volume>58</volume>
          (
          <issue>3</issue>
          ):
          <fpage>327</fpage>
          -
          <lpage>357</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Ponge</surname>
          </string-name>
          and al:
          <string-name>
            <surname>Fine-Grained Compatibility</surname>
          </string-name>
          and
          <article-title>Replaceability Analysis of Timed Web Service Protocols</article-title>
          .
          <source>ER</source>
          <year>2007</year>
          :
          <fpage>599</fpage>
          -
          <lpage>614</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Khebizi</surname>
          </string-name>
          <article-title>: External Behavior Modeling Enrichment of Web Services by Transactional Constraints</article-title>
          ,
          <source>ICSOC PhD Symposium</source>
          ,
          <year>December 2008</year>
          . http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol421/paper12.pdf
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <source>Technical Architecture Speci cation v1.0.4 February</source>
          <year>2001</year>
          http://ebxml.org/specs/ebTA.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>9. Rosetanet; http://www.rosettanet.org/.</mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>10. xCBL; http://www.xcbl.org/.</mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gustavo</surname>
            <given-names>Alonso</given-names>
          </string-name>
          , Fabio Casati, Hurumi Kuno,Vijay Machiraju :
          <article-title>Web services concepts Architectures and applications</article-title>
          , Edition Springer Verlag Berlin
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Barbara</given-names>
            <surname>Weber</surname>
          </string-name>
          and al :
          <source>Change Patterns and Change Support Features - Enhancing Flexibility in Process-Aware Information Systems</source>
          ,
          <year>2008</year>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ryu</surname>
            ,
            <given-names>S. H.</given-names>
          </string-name>
          and al,
          <year>2008</year>
          .
          <article-title>Supporting the dynamic evolution of Web service protocols in service-oriented architectures</article-title>
          .
          <source>ACM Trans. Web</source>
          <volume>2</volume>
          ,
          <issue>2</issue>
          , Article 13, 46 pages.
          <source>DOI = 10.1145/1346237</source>
          .1346241 http://doi.acm.
          <source>org/10</source>
          .1145/1346237.1346241.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>