<?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">Maestro for Let&apos;s Dance: An Environment for Modeling Service Interactions</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Gero</forename><surname>Decker</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">SAP Research Centre</orgName>
								<address>
									<settlement>Brisbane</settlement>
									<country key="AU">Australia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Margarit</forename><surname>Kirov</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">SAP Research Centre</orgName>
								<address>
									<settlement>Brisbane</settlement>
									<country key="AU">Australia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Johannes</forename><forename type="middle">Maria</forename><surname>Zaha</surname></persName>
							<email>j.zaha@qut.edu.au</email>
							<affiliation key="aff1">
								<orgName type="institution">Queensland University of Technology</orgName>
								<address>
									<settlement>Brisbane</settlement>
									<country key="AU">Australia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Marlon</forename><surname>Dumas</surname></persName>
							<email>m.dumas@qut.edu.au</email>
							<affiliation key="aff1">
								<orgName type="institution">Queensland University of Technology</orgName>
								<address>
									<settlement>Brisbane</settlement>
									<country key="AU">Australia</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Maestro for Let&apos;s Dance: An Environment for Modeling Service Interactions</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">AEB758F653711E68C0779E5F64DD3110</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T23:15+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 emerging web service development approaches, the description of interactions both from a global and from a local perspective plays an increasingly important role. In earlier work we presented a visual language (namely Let's Dance) for modeling service interactions at different levels of abstraction. In this paper we present a modeling tool for Let's Dance. The tool supports the static analysis of global models, the generation of local models from global ones, and the interactive simulation of both local and global models.</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>As the first generation of web service technology based on XML, SOAP, and WSDL gains maturity, a second generation targeting collaborative business processes is gestating. Development methods associated to this second generation of web services generally rely on the explicit representation of service interaction behavior from two complementary perspectives: one where interactions are seen from the perspective of each participating service, and the other where they are seen from a global perspective. This leads to two types of models: In a global model (also called a choreography) interactions and their dependencies are captured from the viewpoint of an ideal observer who oversees all interactions between a set of services. Meanwhile, a local model focuses on the perspective of a given service, capturing only those interactions that directly involve it. Local models are suitable for implementing individual services while choreographies are instrumental during the early phases of analysis and design, when domain analysts need a global picture of the system.</p><p>In previous work <ref type="bibr" target="#b3">[4]</ref> we have identified requirements for a service interaction modeling language and argued that existing languages, e.g. WS-CDL <ref type="bibr" target="#b1">[2]</ref>, fail to fulfill these requirements. Indeed, existing languages are targeted at application developers rather than at domain analysts who play a key role in the construction of these models. Accordingly, we have designed a language, namely Let's Dance, intended to support analysts in capturing both global and local service interaction models. This paper introduces a tool that enables analysts to capture and to analyze Let's Dance choreographies. After analysis, the local models for the parties involved in the choreography can be generated and the execution of both global and local models can be interactively simulated.</p><p>The paper is structured as follows. Section 2 gives an overview of the Let's Dance language. The architecture and the features of the tool are presented in Section 3. Section 4 discusses future extensions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Let's Dance Choreographies</head><p>A choreography consists of a set of interrelated service interactions corresponding to message exchanges. At the lowest level of abstraction, an interaction is composed of a message sending action and a message receipt action (referred to as communication actions). Communication actions are represented by nonregular pentagons (symbol for send and for receive) that are juxtaposed to form a rectangle denoting an elementary interaction. As illustrated in Figure <ref type="figure" target="#fig_0">1</ref>, a communication action is performed by an actor playing a role, specified at the top corner of a communication action. Roles are written in uppercase and the actor playing this role (the "actor reference") is written in lowercase between brackets. The name of the message type for the receive actions can be omitted (since the same type applies for both send and receive). Interactions can be inter-related using the constructs depicted in Figure <ref type="figure" target="#fig_0">1</ref>. The relationship on the left-hand side is called "precedes" and is depicted by a directed edge: the source interaction can only occur after the target interaction has occurred. That is, after the receipt of a message "M1" by "B", "B" is able to send a message "M2" to "C". The rectangle surrounding these two interactions denotes a composite interaction, which can be related with other interactions with any type of relationship. The relationship at the center of the figure is called "inhibits", depicted by a crossed directed edge. It denotes that after the source interaction has occurred, the target interaction can no longer occur. That is, after "B" has received a message "M1" from "A", it may not send a message "M2" to "C". The latter interaction can be repeated until "x" messages have been sent, which is indicated by the header on top of the interaction. The actor executing the repetition instruction is noted in brackets. Finally, the relationship on the right-hand side of the figure, called "weak-precedes", denotes that "B" is not able to send a message "M2" until "A" has sent a message "M1" or until this interaction has been inhibited. That is, the target interaction can only occur after the source interaction has reached a final status, which may be "completed" or "skipped" (i.e. "inhibited"). In the example, the upper interaction has a guard assigned, which is denoted by the header on top of the interaction. This interaction is only executed if the guard evaluates to true. The actor who evaluates the guard is noted in brackets.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Tool Overview</head><p>Figure <ref type="figure" target="#fig_1">2</ref> shows a screen shot of Maestro for Let's Dance. The palette on the lefthand side contains the diagram elements. Below this palette, layout options are accessible. The main drawing area in the middle. On the right, there is a pane for editing the properties of the selected element as well as a navigator that provides an overview over the diagram. The analysis and simulation functionality can be accessed via the "Let's Dance" menu item in the menu bar at the top. Analysis results and simulation status are shown within the editing area.  Tensegrity and Maestro can be compared to eclipse GMF<ref type="foot" target="#foot_1">4</ref> (Graphical Modeling Framework). Shape descriptions define what diagrams consist of and how they look like. Anchor points, resizing behavior, color schemes, line widths and line decorations can be defined for diagram elements. Furthermore, the palette is configured. A strong point about GMF is that it very clearly separates the data model from its graphical representation. However, GMF was not chosen because at the time of development releases were still in a pre-1.0 state and significant changes in the API from release to release caused major refactorings. It would have been an option to use eclipse GEF<ref type="foot" target="#foot_2">5</ref> (Graphical Editing Framework), the foundation of GMF, without using GMF itself. The fact that GEF does not include layouting functionality like it is the case for Tensegrity and the possibility of integrating the tool with Maestro for BPMN and Maestro for BPEL in the future were the final arguments for choosing Maestro.</p><p>Choreographies are described using two different data structures in the tool. The diagram data structure is optimized for the usage within the editor. E.g. entities in the data structure directly relate to edges and nodes in the diagram and layout information is attached to the entities. The choreography model data structure does not contain any layout information and follows the Let's Dance meta-model introduced in <ref type="bibr" target="#b3">[4]</ref>. The choreography model is then used as input for the analysis plugins and the simulation engine. A model transformation takes place every time a check is triggered or a simulation is started. A reverse mapping from entities in the choreography model to the entities in the diagram model is later on used for displaying output of the checkers or the simulation engine. Since EMF<ref type="foot" target="#foot_3">6</ref> (Eclipse Modeling Framework) includes functionality to produce XMI<ref type="foot" target="#foot_4">7</ref> (XML Metadata Interchange)-compliant files and since there is a good integration of EMF with the UML modeling environment Rationale Rose<ref type="foot" target="#foot_5">8</ref> , EMF was used for implementing the choreography data model.</p><p>A precondition for analyzing a choreography model is that it complies to the well-formedness criteria defined in <ref type="bibr" target="#b4">[5]</ref>. Therefore, a well-formedness check precedes every analysis as well as the generation of local models. Examples for ill-formedness could be e.g. an unspecified actor for a send or receive action or a cycle of precedes and weak-precedes relationships.</p><p>Cardinality checker. Maestro for Let's Dance provides a cardinality checker that is able to identify how many times an interaction can occur, at least and at most, within one execution of a choreography. The cardinality checker takes as input a choreography and classifies its interactions into five groups: (0,0): interactions that will never be executed (i.e. unreachable); (0,1): interactions that may be executed once or skipped altogether (i.e. conditional); <ref type="bibr" target="#b0">(1,</ref><ref type="bibr" target="#b0">1)</ref>: interactions that will be executed exactly once; (0,n): interactions that may be executed any number of times; and (1,n): interactions that will be executed at least one.</p><p>The cardinality checker can help modelers to detect semantical errors, such as unreachable interactions or interactions that may be skipped against the modeler's intent. It can also be used to determine characteristics required from the communication channels. For example, if an interaction can be executed multiple times, the corresponding channel may be required to guarantee orderly delivery.</p><p>Cardinality analysis is largely based on reachability analysis for which we have presented two alternatives in previous work: In <ref type="bibr" target="#b0">[1]</ref> the algorithm is based on π-calculus bi-simulation whereas in <ref type="bibr" target="#b4">[5]</ref> an ad-hoc algorithm is introduced. It turned out that because of the computational complexity of bi-simulation analysis only very small choreographies could be processed in a reasonable time.</p><p>The second algorithm has low polynomial complexity and scales up to real-world choreographies. Therefore, it was chosen for the tool. Enforceability checker. It has been shown that there might be relations between interactions in a choreography model that cannot be enforced locally. I.e. It turns out that not all global models can be mapped into local ones in such a way that the resulting local models only contain interactions explicitly captured in the choreography model and they collectively enforce all the constraints expressed in the global model. A counter-example is given in Figure <ref type="figure" target="#fig_3">4</ref>. In this choreography it is not possible to enforce the "precedes" constraint between the two interactions without introducing additional interactions. Indeed, how can actors 'c' and/or 'd' know that the interaction between 'a' and 'b' has taken place in the absence of any interaction between actors 'a' and 'b' on the one hand, and actors 'c and 'd' on the other? Thus, either the model needs to be enhanced with an interaction between a/b and c/d, or the sequential execution constraint will not be enforced (i.e. the interactions can occur in the opposite order from the perspective of an ideal observer). Since domain analysts are supposed to sign off on a choreography model it is undesirable to automatically introduce implicit interactions to ensure the fulfilment of constraints. Instead, the modeler should be warned of such issues, so that (s)he can refine the model as needed. Accordingly, Maestro for Let's Dance incorporates an enforceability checker that identifies non-enforceable constraints in a choreography model and reports them to the modeler. The algorithm used for this purpose is described in <ref type="bibr" target="#b4">[5]</ref>.</p><p>Simulation In order to give choreography modelers a better idea of the semantics of their models, the tool offers the possibility to simulate choreography instances. The formalization of the execution semantics of Let's Dance were presented in <ref type="bibr" target="#b0">[1]</ref>. It was used as a blueprint for the implementation of the simulation engine.</p><p>An interaction can be in one of the four states initialized (visualized as yellow), enabled (green), skipped (red) and completed (gray). Each instance starts in the state initialized. The instance can now be skipped or it can be enabled. Therefore, the transitions to the states skipped and enabled are possible. If an instance is in state skipped nothing can happen to it any more. If an instance is in state enabled the interaction can execute. During the execution the instance can be skipped. Otherwise, it will eventually complete execution and move to state completed. In the case of guarded interactions the user can decide whether the interaction should be executed or if it should be skipped. In the case of repeated interactions the user can decide whether the interaction should be executed once more or if the repetition is terminated.</p><p>Local model generator. In <ref type="bibr" target="#b4">[5]</ref> we have presented an algorithm for generating local models. This algorithm is implemented in Maestro for Let's Dance. A new diagram containing all the interactions where a specific actor is involved is generated and the layout functionality is applied to it.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Outlook</head><p>The next step in the development of "Maestro for Let's Dance" is the refinement of the generation of local models. The generation of local models with implementation configurations will be an important step towards the generation of executable models, where BPEL will be the first target language. Other analysis functions will be added. Conformance checking between local models and choreography models will be one of the focus areas.</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. Constructs of Let's Dance</figDesc><graphic coords="2,149.46,381.42,316.44,105.41" type="bitmap" /></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. Screen shot of Maestro for Let's Dance Maestro for Let's Dance is built on top of the Maestro visual language framework developed at SAP. It is the foundation for various modeling environments including: Maestro for BPMN, an editor for the Business Process Modeling Notation, Maestro for BPEL, a modeling environment for the Business Process Execution Language, and Maestro for SAM (Status-and-Action Management), a modeling and simulation environment for business object lifecycles.</figDesc><graphic coords="3,134.77,367.89,345.83,192.38" type="bitmap" /></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. Architecture overview</figDesc><graphic coords="4,145.14,115.83,325.06,173.40" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Example of a non-locally enforceable choreography</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">See http://www.tensegrity-software.com/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_1">See http://www.eclipse.org/gmf/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_2">See http://www.eclipse.org/gef/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_3">See http://www.eclipse.org/emf/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_4">See http://www.omg.org/technology/documents/formal/xmi.htm</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_5">See http://www.ibm.com/software/rational</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Execution Semantics for Service Choreographies</title>
		<author>
			<persName><forename type="first">G</forename><surname>Decker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Zaha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dumas</surname></persName>
		</author>
		<ptr target="http://eprints.qut.edu.au/archive/00004329" />
		<imprint>
			<date type="published" when="2006-05">May 2006</date>
		</imprint>
		<respStmt>
			<orgName>Faculty of IT, Queensland University of Technology</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Preprint # 4329</note>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Web Services Choreography Description Language Version 1.0, W3C Candidate Recommendation</title>
		<author>
			<persName><forename type="first">N</forename><surname>Kavantzas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Burdett</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Ritzinger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Lafon</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/ws-cdl-10" />
		<imprint>
			<date type="published" when="2005-11">November 2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Fundamental Modeling Concepts: Effective Communication of IT Systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Knopfel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Grone</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Tabeling</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006-05">May 2006</date>
			<publisher>Wiley</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Lets Dance: A Language for Service Behavior Modeling</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Zaha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Barros</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dumas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hofstede</surname></persName>
		</author>
		<idno># 4468</idno>
		<ptr target="http://eprints.qut.edu.au/archive/00004468" />
		<imprint>
			<date type="published" when="2006-02">February 2006</date>
		</imprint>
		<respStmt>
			<orgName>Faculty of IT, Queensland University of Technology</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Preprint</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Service Interaction Modeling: Bridging Global and Local Views</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Zaha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dumas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hofstede</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Barros</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Decker</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 10th International EDOC Conference</title>
				<meeting>the 10th International EDOC Conference<address><addrLine>Hong Kong</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

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