<?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">A graphical user interface for service adaptation</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Christian</forename><surname>Gierds</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Institut für Informatik</orgName>
								<orgName type="institution">Humboldt-Universität zu Berlin</orgName>
								<address>
									<addrLine>Unter den Linden 6</addrLine>
									<postCode>10099</postCode>
									<settlement>Berlin</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Niels</forename><surname>Lohmann</surname></persName>
							<email>niels.lohmann@uni-rostock.de</email>
							<affiliation key="aff1">
								<orgName type="department">Institut für Informatik</orgName>
								<orgName type="institution">Universität Rostock</orgName>
								<address>
									<postCode>18051</postCode>
									<settlement>Rostock</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A graphical user interface for service adaptation</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">57CA5DA032FF05AB182D175F756BA895</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T08:23+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>Service-oriented computing aims at composing independent services to achieve a common goal. Although very flexible, this independence may result in incompatibilities. A pragmatic approach to overcome such incompatibilities offer adapters. An adapter is again a service which reorganizes the message exchange in a service composition to avoid incompatibilities. Given a set of domain-specific message transformation rules, adapters can be generated fully automatically. This paper presents a graphical user interface to support the systematic design of these transformation rules.</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>Service-oriented computing <ref type="bibr" target="#b9">[10]</ref> aims at replacing large monolithic systems by a composition of services. By abstracting from underlying technologies and implementations, it is possible to focus on the functionality of a service and to reuse it in other compositions. Consequently, services can be designed independently from the compositions they are used in, which in turn allows for faster production cycles at lower costs. A downside of this flexibility is the possible incompatibility of independently designed services. To avoid the redesign of incompatible services, an adapter (sometimes called mediator) can resolve incompatibilities by manipulating the communication protocol between the incompatible services. State-of-the-art techniques <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b4">5,</ref><ref type="bibr" target="#b8">9,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b5">6]</ref> allow to generate adapters automatically given a set of domain-specific message transformation rules.</p><p>So far, the design of such transformation rules was out of scope of most existing adapter generation approaches, and of course transformation rules can be formulated independently of a concrete service composition. However, it is likely that the design of such rules can be accelerated if the services to be adapted is taken into account. This paper follows this idea and presents an approach to iteratively create proposals for the designer of semantic message transformation rules. These proposals are derived by diagnosing behavioral incompatibilities. The approach is complete; that is, if services can be adapted using some rule set, then this set can be constructed.</p><p>The rest of this paper is organized as follows. The next section briefly sketches the automatic generation of adapters and introduces a running example. It further discusses how transformation rule proposals can be derived from diagnosed incompatibilities. Section 3 presents the main contribution of this paper, a Webbased graphical user interface for the iterative construction of transformation rules. Finally, Sect. 4 discusses possible future extensions and concludes the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Adapter generation</head><p>We shall briefly outline the basic concepts of an adapter generation algorithm and its meaning for finding transformation rules in this section.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Synthesis using message transformation rules rules</head><p>For adapting two services A and B several approaches agree on using message transformation rules (creating, removing, or changing messages) <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b4">5,</ref><ref type="bibr" target="#b8">9,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b5">6]</ref>, which handle semantical incompatibilities.</p><p>We concentrate on the approach of Gierds et al. <ref type="bibr" target="#b5">[6]</ref>, consisting of two: They model transformation rules as an artifact called engine E. Then they try to synthesize a controller C, such that the composition of A, B, E, and C behaves according to a certain correctness criterion (e. g., deadlock freedom). The composition of E and C thus yields an adapter for A and B and ensures semantical and behavioral correctness of the two services. The engine E implements the message transformation rules and thus ensures semantically correctness. The controller C ensures correct behavior; that is, the correct order of applying rules and sending messages to the services.</p><p>Figure <ref type="figure" target="#fig_1">2</ref> shows a small example based on open nets <ref type="bibr" target="#b6">[7]</ref>, an extension of classical Petri nets. Interface places are positioned on the dashed border of a net. As running example, the model of a beverage vending machine is depicted on the left (cf. Fig. <ref type="figure" target="#fig_1">2(a)</ref>). After receiving a Euro (MEuro), either the tea (MTeaButton) or the coffee button (MCoffeeButton) must be pressed. Afterward the appropriate beverage is delivered (MServedTea and MServedCoffee, resp.). On the right (2(c)), a coffee drinker provides a Euro (DEuro), then forgets to press a button, and waits for its coffee (DServedCoffee). Obviously, this service is not compatible to the vending machine. To overcome this incompatibility, the adapter in Fig. <ref type="figure" target="#fig_1">2(b</ref>) simply transforms a DEuro message to an MEuro message and MServedCoffee to DServedCoffee, which seems obvious concerning the names. Further it creates a MCoffeeButton message. Due to structural reduction, we may identify the controller part only by the initially marked places, allowing each rule to be applied exactly once.</p><p>To synthesize such an adapter automatically, the before-mentioned three rules must be provided as input to the synthesis algorithm.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Finding additional rules</head><p>As mentioned, one of the essential parts of the adapter approach is the set of message transformation rules. Although correct in isolation (in the example, there exist compatible drinker and vending machine services, resp.), two services may only be adaptable if a certain set of rules is provided. So whenever the synthesis algorithm fails to create an adapter, this is caused by missing rules.</p><p>Previous approaches almost totally rely on Semantic Web technologies for providing rules. We will briefly sketch an idea on how to extend the set of transformation rules by behavioral diagnosis. During controller synthesis deadlocks will be reached if no deadlock free controller exists. These deadlocks provide valuable information, how an additional rule might look like. The setting does not allow to change one of the services, but we are free to add as many new rules as we like. Let m be a deadlock marking, then we can analyze which messages remain in the engine, thus are pending and could be transformed. Further we check whether one of the services could continue if we provided a certain message, so we check which messages are required. A new rule then may transform pending into required messages. Consequently, m will no longer be a deadlock marking, because we can apply the newly added transformation rule now (which behaves like a transition added to a net, which is enabled by the pending messages). This step can be repeated until we find a controller and therefore an adapter, or until we are no longer able to add meaningful transformation rules.</p><p>For our example in Fig. <ref type="figure" target="#fig_1">2</ref>, starting with an empty set of transformation rules, our proposed algorithm will state that DEuro is pending (in Fig. <ref type="figure" target="#fig_1">2(c</ref>) the appropriate transition is activated and thus fired), MEuro is required, and thus we may add the rule transforming MEuro to DEuro. In the next step (as shown in Fig. <ref type="figure" target="#fig_2">3</ref>) we will see, that MTeaButton and MCoffeeButton are required. After providing a corresponding rule, we will see, that MServedCoffee is pending, and DServedCoffee is required. Finally the rule set is sufficient and we gain an adapter for our example.</p><p>In the given example the single steps are straightforward. For more complex examples, the number of deadlocks as well as the number of details for each deadlock grows significantly. Thus we need a good representation for this kind of information.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Using the Web as graphical user interface</head><p>Interactive approaches highly benefit from a concise way of presenting information. A user must be able to quickly access all relevant information. Graphical solutions with means to highlight or hide information based on a user's demands clearly excel console applications in this point. Marlene as single purpose tool has already been integrated into service-technology.org/live <ref type="bibr" target="#b7">[8]</ref>, which is our platform to demonstrate the functionality of our tools and allow a user to perform more complex tasks involving several of our tools by simply using a Web browser. The previously described interactive approach has also been integrated there and can be tested at the URL http://service-technology.org/live/marlene.</p><p>In an interactive approach, we do not only need to present the input and output artifacts, but also intermediate information which shall enable the user to make a next step. In our case, we have to list all possible suggestions for adding new transformation rules without showing all details at once and thus confusing the user.</p><p>Figure <ref type="figure" target="#fig_2">3</ref> shows the essential part for our approach: an editing field for transformation rules and below a table with information on all deadlocks, which may help in providing additional rules. Additionally, but not depicted here, the services are visualized. We divide the table in the following columns:</p><p>type might either be deadlock or a livelock (in case we want an adapter ensuring also livelock freedom); the pending messages, which can be used in a rule on the left side; the required messages, of which at least one must be provided for resolving a deadlock in one of the services the triangle button, for showing additional information on a deadlock or livelock The additional information might state, that one of the services is already in a final state thus needing no further attention, and which rules have been applied prior to reaching a certain deadlock.</p><p>We have decided to initially show only the first line for each deadlock (the line starting with deadlock, thus hiding all additional information at first). As we can see in Fig. <ref type="figure" target="#fig_2">3</ref>, providing all available information on a deadlock in a clear way requires a lot of space. Presenting a larger number of deadlock then would almost immediately require the user to scroll the page. This would clearly hamper deciding which deadlock to resolve, because a direct comparison of deadlocks would always depend on scrolling.</p><p>In our understanding, pending and required messages are the most important information for a certain deadlock. Thus showing only this piece of information should be sufficient in most case. By clicking the triangle at the end of a line the user gets additional information as described above.</p><p>The user is frfee to add and change the rules arbitrarily in the text field. By clicking Save Rules the page is updated and information based on the new rule set are provided. Finally, if a sufficient set of rules was added, the generated adapter is presented.</p><p>We have presented a first idea for the interactive retrieval of transformation rules in the setting of service adaptation. We have also focused on an appropriate visualization of information. First tests indicate that interaction as described here with the proposed degree of initial information offers easy access to the approach. This of course is only a first step.</p><p>First, the algorithm for finding new transformation rules has to be described in detail and we have to proof its feasibility in adapter generation (i. e., that when an adapter exists, the algorithm leads to a corresponding set of rules). Second, we have to evaluate acceptance of the Web site. Only feedback of real users playing through real-word examples will give us valuable hints on how to improve presentation of our tool.</p><p>Especially the order of different deadlocks might facilitate decision, which one to resolve -the higher the position of a deadlock, the more likely it will be considered. Here we have to find heuristics based on user behavior and its reason to prefer certain deadlocks. Also highlighting certain situations (e. g., both services are already in a final state, but superfluous messages must be removed) might help a user to pick more goal leading deadlocks.</p><p>Although not having finished the approach, yet, using a Web front-end for our prototype allows us to test our approach from the very beginning and distribute it easily, thus gaining valuable feedback from prospective users.</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. Two services A and B and an adapter (engine E and controller C) in the middle</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. The two services to be adapted with an adapter</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. Screenshot of interactive site</figDesc><graphic coords="5,134.77,115.83,345.83,285.48" type="bitmap" /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Developing adapters for web services integration</title>
		<author>
			<persName><forename type="first">B</forename><surname>Benatallah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Casati</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Grigori</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">R</forename><surname>Motahari Nezhad</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Toumani</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">CAiSE</title>
				<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="415" to="429" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">A formal approach to component adaptation</title>
		<author>
			<persName><forename type="first">A</forename><surname>Bracciali</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Brogi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Canal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Systems and Software</title>
		<imprint>
			<biblScope unit="volume">74</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="45" to="54" />
			<date type="published" when="2005-01">Jan 2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Formalizing web service choreographies</title>
		<author>
			<persName><forename type="first">A</forename><surname>Brogi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Canal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Pimentel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vallecillo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">WS-FM&apos;04</title>
				<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">105</biblScope>
			<biblScope unit="page" from="73" to="94" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Automated generation of BPEL adapters</title>
		<author>
			<persName><forename type="first">A</forename><surname>Brogi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Popescu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICSOC</title>
				<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="27" to="39" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Adapt or perish: Algebra and visual notation for service interface adaptation</title>
		<author>
			<persName><forename type="first">M</forename><surname>Dumas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Spork</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Wang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Business Process Management</title>
		<imprint>
			<biblScope unit="page" from="65" to="80" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Reducing adapter synthesis to controller synthesis</title>
		<author>
			<persName><forename type="first">C</forename><surname>Gierds</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">J</forename><surname>Mooij</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Wolf</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Transactions on Services Computing</title>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
	<note>accepted for publication</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A compositional partial order semantics for Petri net components</title>
		<author>
			<persName><forename type="first">E</forename><surname>Kindler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ATPN&apos;97. LNCS</title>
				<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="volume">1248</biblScope>
			<biblScope unit="page" from="235" to="252" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">service-technology.org/live -replaying tool experiments in a Web browser</title>
		<author>
			<persName><forename type="first">N</forename><surname>Lohmann</surname></persName>
		</author>
		<ptr target="CEUR-WS.org" />
	</analytic>
	<monogr>
		<title level="m">BPM 2010 Demonstration Track. CEUR Workshop Proceedings</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">615</biblScope>
			<biblScope unit="page" from="64" to="68" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Semi-automated adaptation of service interactions</title>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">R</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="j">WWW</title>
		<imprint>
			<biblScope unit="page" from="993" to="1002" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Web Services: Principles and Technology</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">P</forename><surname>Papazoglou</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007-07">Jul 2007</date>
			<publisher>Pearson -Prentice Hall</publisher>
			<pubPlace>Essex</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">The service adaptation machine</title>
		<author>
			<persName><forename type="first">K</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dumas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Ouyang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Vayssière</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ECOWS</title>
		<imprint>
			<biblScope unit="page" from="145" to="154" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

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