<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Measuring similarity of service interfaces</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ali</forename><surname>Aït-Bachir</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">LIG (MRIM)</orgName>
								<orgName type="institution">University of Grenoble</orgName>
								<address>
									<addrLine>385 rue de la bibliotheque -B</addrLine>
									<postBox>P. 53</postBox>
									<postCode>38041</postCode>
									<settlement>Grenoble Cedex 9</settlement>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Marie-Christine</forename><surname>Fauvet</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">LIG (MRIM)</orgName>
								<orgName type="institution">University of Grenoble</orgName>
								<address>
									<addrLine>385 rue de la bibliotheque -B</addrLine>
									<postBox>P. 53</postBox>
									<postCode>38041</postCode>
									<settlement>Grenoble Cedex 9</settlement>
									<country key="FR">France</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Measuring similarity of service interfaces</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">563DD19E2685C38E3F0AA6B159C3D6F1</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T08:57+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In this paper, we present a similarity measure between behavioural interfaces of Web services. This measure computes the difference value of simulation between two service interfaces. In our previous work we implemented an algorithm to detect the exact location of differences between service interfaces in a tool namely BESERIAL <ref type="bibr" target="#b0">[1]</ref>. The similarity measure is based on the results of the detection algorithm. In our case study, this measure is used to select the most suitable service to substitute a previous one, which is no longer available at design time.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Web service interfaces can be described from two aspects: i) The structural aspect models the provided operations, and the schema of the messages that the service can send and receive. These operations can be described by using WSDL for instance. ii) The behavioural aspect refers to the control flow between the operations and establishes their inter-dependencies. In conversational services, such behavioural interfaces can be described using BPEL for instance. Nevertheless, Finite State Machines (FSM) is the formal model adapted in our work to describe behavioural interfaces <ref type="bibr" target="#b6">[7]</ref>. In this paper, we do not consider semantic aspects of operation definitions.</p><p>Client applications are meant to consume provided operations in a service interface. Conversations between a client application and a service are loosly coupled. Thus, if the service evolves and provides a new interface, then incompatibilities may arise as a client application does no longer match the new interface. The provided interface of a service evolves from a previous definition to a new one by means of basic differences (addition, deletion and modification of operations). The exact location of these differences can be detected and resolved instead of programing a new client application whose required interface is compatible with the new interface definition. However, if the service is no more available, there is no choice left to developers than to substitute this service by another one, at design time. If there exists no service whose interface simulates the old service interface, it is interesting to discover another service whose interface has a minimum number of differences with the previous one. This paper is structured as follows. First, Section 2 introduces the running example. Section 3 gives details on the quantitative simulation measure. Section 4 shows some experimental results. Then, Section 5 gives a panel of the related work on the diagnosis of differences in service interfaces. Finally, Section 6 concludes and sketches the future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Case study</head><p>As a running example, we consider a scenario where a car factory interacts with one of its provider of goods and services. The service provider describes its operations in WSDL and the control flow is established using BPEL process protocol. Figure <ref type="figure" target="#fig_0">1</ref> (a) illustrates the activity diagram of the provided interface of the provider service. This provider processes service and goods orders from the car factory. The provider receives a service order which can be updated by its client (the car factory) only if the invoice is not sent yet (see the flow which loops back to the ReceiveServiceOrder activity). Once the service invoice is sent, the provider waits for the transfer from the client to finally send him the ShipmentTrackingNumber (STN). On the other hand, when a GoodsOrder is received, a GoodsInvoice is immediately sent to the client. This former can either send his CreditCardDetails, to pay the invoice, or update his order by sending a new GoodsOrder (see the flow which loops back to the ReceiveGoodsOrder activity). The client pays the invoice, and then the provider sends him the STN.</p><p>If the service provider is no more available, the car factory will send an invitation to tender to substitute the old provider and all candidates will provide their behavioural interfaces. The selection criterion is that the provided interface of the new partner must conform as much as possible to the required interface by the car company. In other words, the new provider is such as there exists a minimum number of changes in the new provided interface in order to simulate the old provided interface. 3 Quantitative simulation FSM modeling: In our approach we model the behaviour of a Web service interface using Finite State Machines <ref type="bibr" target="#b5">[6]</ref>. Techniques exist to transform behavioral service interfaces defined in other languages (e.g. BPEL) into FSMs(see for example the WS-Engineer tool <ref type="bibr" target="#b2">[3]</ref>). In the FSMs considered in this paper, transitions are labelled with messages to be exchanged. When a message is sent or received, the corresponding transition is fired.</p><p>An FSM is a tuple (S, L, T, s 0 , F ) where: S is a finite set of states, L a set of events (actions), T the transition function (T : S × L −→ S). s 0 is the initial state such as s 0 ∈ S, and F the set of final states such as F ⊂ S. The transition function T associates a source state s 1 ∈ S and an event l 1 ∈ L to a target state s 2 ∈ S. In this model, a transition is defined as a tuple containing a source state, a label and a target state.</p><p>Figure <ref type="figure" target="#fig_0">1</ref> (b) illustrates the FSM of the running example which describes the behavioural interface of the service provider. We only consider the observable behaviour of a service, thus internal activities are hidden. Activities meant to send and to receive messages are modeled. The message m is denoted by &gt;m (respectively &lt;m) when it is sent (respectively received). Each conversation initiated by a client starts an execution of the corresponding FSM.</p><p>We use the following notations (examples refer to the FSM depicted in the right side of the Figure <ref type="figure" target="#fig_0">1</ref></p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>(b)):</head><p>s• is the set of outgoing transitions from s.</p><p>(e.g. GoodsInvoiced• = {(GoodsInvoiced,&lt;CreditCardDetails,Paid), (GoodsInvoiced, &lt;GoodsOrder,GoodsOrdered) }). -Label(t) is the label<ref type="foot" target="#foot_0">1</ref> of the transition t.</p><p>(e.g. Label((GoodsInvoiced,&lt;CreditCardDetails,Paid))=&lt;CreditCardDetails) -The Label operator is generalised to a set of transitions. For example, if</p><formula xml:id="formula_0">T = n i=1 {t i } then Label (T ) = n i=1 {Label (t i )}; where n = T . -</formula><p>X is the cardinality of the set X.</p><p>In our previous work, we implemented an algorithm which is meant to detect the exact location of changes while comparing two FSMs P and P (which respectively models the old provider and the new provider interfaces). A difference is detected if and only if the new interface does not simulate the behaviour of the previous interface. The outcome is a set Res of tuples (si, ti, sj, tj) where si and sj are states of P and P respectively, while ti and tj are either null values or outgoing transitions of si and sj respectively.</p><p>Figure <ref type="figure" target="#fig_1">2</ref> shows three differences between P and P . The first difference is a deletion of the operation &lt; ServiceOrder , which means that the new provider does not allow its client to update its service order. This difference causes an incompatibility with the required interface of the client as he can not use this operation any more. The second difference is an addition of the operation &lt; Transfer . However, this difference does not cause any incompatibility as the added operation provides a new option to its client. The third difference is the modification of the operation &gt; STN by the operation &gt; ASN (Advanced Shipment Notice). An incompatibility will arise because the client can not recognize this new operation. Quantitative simulation: In the detection algorithm, P and P are traversed in parallel. A set of reached pair of states Rps is built such as Rps ⊆ S × S , where S is a set of P 's states and S is a set of P 's states. For each pair of states (si, sj) ∈ Rps, we compute a quantitative simulation function Qs. This function returns a score of differences between si's outgoing transitions and sj's outgoing transitions. Qs : S × S → [0..1] is defined as follows:</p><formula xml:id="formula_1">Qs((si, sj)) = 1 if, si• = {} P Diff ((si,sj)) i=1 Weight(Di)+ Label(si•)∩Label(sj•) Diff ((si,sj)) + Label(si•)∩Label(sj•) otherwise<label>(1)</label></formula><p>Where: Diff ((si, sj)) is a set of differences pinpointed at the state pair (si, sj) such as Diff ((si, sj)) ⊆ Res, and D i ∈ Diff ((si, sj)) for i = 1.. Diff ((si, sj)) .</p><p>The function Weight returns a penalty value 2 for each type of difference, and 0 Weight(D i ) &lt; 1. The sum of all penalties in the state pair is added to the score of the common labels of the outgoing transitions. Common labels of the outgoing transitions of si and sj refer to the case where no difference is detected. Thus, a highest score is attributed (see <ref type="bibr" target="#b0">(1)</ref>: Label (si•) ∩ Label (sj•) ). To compute the quantitative simulation of the pair state, the sum of difference score and similarity score is divided by the number of these differences and similarities between the outgoing transitions of si and sj (see <ref type="bibr" target="#b0">(1)</ref>:</p><p>Diff ((si, sj)) + Label (si•) ∩ Label (sj•) ). For example, in Figure <ref type="figure" target="#fig_1">2</ref>, if the value of the deletion penalty is set to 0.5, then the quantitative simulation is: Qs((ServiceOrdered , ServiceOrdered )) = 0.5+1 1+1 = 0.75.</p><p>2 How penalty values are set is out of the scope of this paper.</p><p>Mean quantitative simulation: Once the quantitative simulation is computed to all state pairs, a mean quantitative simulation value of P and P can be defined as follows :</p><formula xml:id="formula_2">Mqs(P, P ) = Qs i=1 Qs(P S i ) Rps<label>(2)</label></formula><p>Where: P S i is a pair of states such as P S i ∈ Rps for i = 1.. Rps . In the running example, if all the penalty values are set to 0.5 then the mean quantitative simulation is: Mqs(P, P ) = 0.875.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Tests and results in BESERIAL</head><p>For validation purposes, we built a test collection consisting of 20 process scenarios from the xCBL<ref type="foot" target="#foot_1">3</ref> textual description of order management choreographies. These two-party choreographies describe possible document exchanges between trading partners in an Order Management business process. In BESERIAL <ref type="foot" target="#foot_2">4</ref> , one interface is compared to a collection of interfaces. In Figure <ref type="figure" target="#fig_2">3</ref>, the graph shows which interface yields less incompatibilities with respect to the interface given as reference. In this example, the interface which simulates as much as possible the given one yields a mean quantitative simulation value of 0.97. The worst result is 0.14. The interfaces in tests number 14, 15 and 16 are selected as candidates to substitute the old service.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Related work</head><p>Compatibility test of interfaces has been widely studied in the context of Web service conversations. Most of approaches, which focus on the behavioural dimension of interfaces, rely on similarity calculus to check, at design time, whether or not interfaces described for instance by automata are compatible <ref type="bibr" target="#b1">[2]</ref>. The behavioural interface describes the structured activities of a business process. Checking interface compatibility is thus based on bi-similarity algorithms <ref type="bibr" target="#b4">[5]</ref>. These approaches do not deal with the quantification of interface simulation.</p><p>In <ref type="bibr" target="#b5">[6]</ref>, authors introduced a technique to diagnosis message structure missmatches between service interfaces and to fix them with adapters. An extention of this technique is applied to reslove missmatches between service protocols. The proposed iterative algorithm builds a missmatch tree to help developers to choose the suitable adapter each time and incompatibility is detected. However, this technique can only be applied to protocols which describe a sequence of operations. More complex flow controls, such as loops and options, are not taken into consideration. Recent research has addressed interface similarity measures issues. In <ref type="bibr" target="#b3">[4]</ref>, authors present a similarity measure for labeled directed graphs inspired by the simulation and bi-simulation relations on labeled transition systems. The presented algorithm returns a value of a simulation measure but does not tell us more about the location of incompatibilities.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Future work</head><p>In this paper we focused on the calculus of the differences between two behavioural interfaces. Ongoing work aims at extending this work towards two directions: i) detecting complex incompatibilities including structural aspects, ii) guiding analysts in fixing detected incompatibilities. As we compare two different versions of a same service, we identify adequately the delta introduced by the new version. Nevertheless, if we compare two completely different services, the semantics of operations or data types must be considered.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Activity diagram and FSM of the provided interface.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Differences between the old and the new provider FSMs.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Graph results of the process order collection test.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">In deterministic FSMs, ∀t1 ∈ s•, t2 ∈ s• : Label (t1) = Label (t2).</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_1">XML Common Business Library (http://www.xcbl.org/).</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_2">http://www-clips.imag.fr/mrim/User/ali.ait-bachir/WebServices/WebServices.html</note>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This author is partially funded by the Web Intelligence project granted by the French Rhône-Alpes Region</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">BESERIAL: Behavioural service analyser</title>
		<author>
			<persName><forename type="first">A</forename><surname>Ait-Bachir</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dumas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M.-C</forename><surname>Fauvet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the BPM Int. Conf</title>
				<meeting>of the BPM Int. Conf</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="374" to="377" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">When are two web services compatible?</title>
		<author>
			<persName><forename type="first">L</forename><surname>Bordeaux</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Salan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Berardi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Mecella</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the TES Int. Conf</title>
				<meeting>of the TES Int. Conf</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="15" to="28" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">WS-Engineer: A tool for modelbased verification of web service compositions and choreography</title>
		<author>
			<persName><forename type="first">H</forename><surname>Foster</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Uchitel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Magee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kramer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the IEEE Int. Conf. on Software Engineering (ICSE)</title>
				<meeting>of the IEEE Int. Conf. on Software Engineering (ICSE)</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="771" to="774" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Correcting deadlocking service choreographies using a simulationbased graph edit distance</title>
		<author>
			<persName><forename type="first">N</forename><surname>Lohmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the BPM Int. Conf., number 5240 in LNCS</title>
				<meeting>of the BPM Int. Conf., number 5240 in LNCS</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="132" to="147" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Analyzing compatibility of bpel processes</title>
		<author>
			<persName><forename type="first">A</forename><surname>Martens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Moser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Gerhardt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Funk</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the Advanced Int. Conf. on Telecom. and Int. Conf. on Internet and Web Applications and Services</title>
				<meeting>of the Advanced Int. Conf. on Telecom. and Int. Conf. on Internet and Web Applications and Services</meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="147" to="156" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Semiautomated adaptation of service interactions</title>
		<author>
			<persName><forename type="first">H</forename><surname>Motahari-Nezhad</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Benatallah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Martens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Curbera</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Casati</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 16th International Conference on World Wide Web</title>
				<meeting>the 16th International Conference on World Wide Web</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="993" to="1002" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Modeling web service composition using symbolic transition systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Pathak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Basu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Honavar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 21st Conf. on Artificial Intelligence Workshop on AI-driven Technologies for Service-Oriented Computing</title>
				<meeting>of the 21st Conf. on Artificial Intelligence Workshop on AI-driven Technologies for Service-Oriented Computing</meeting>
		<imprint>
			<publisher>AAAI Press</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="65" to="80" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
