<?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">Service Composition at the Presentation Layer using Web Service Annotations</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Tobias</forename><surname>Nestler</surname></persName>
							<email>tobias.nestler@sap.com</email>
							<affiliation key="aff0">
								<orgName type="institution">SAP Research CEC Dresden</orgName>
								<address>
									<postCode>01187</postCode>
									<settlement>Dresden</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Marius</forename><surname>Feldmann</surname></persName>
							<email>marius.feldmann@tu-dresden.de</email>
							<affiliation key="aff1">
								<orgName type="department" key="dep1">Department of Computer Science</orgName>
								<orgName type="department" key="dep2">Institute for Systems Architecture</orgName>
								<orgName type="department" key="dep3">Computer Networks Group</orgName>
								<orgName type="institution">Technische Universität Dresden</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Andre</forename><surname>Preuÿner</surname></persName>
							<email>andre.preussner@sap.com</email>
							<affiliation key="aff0">
								<orgName type="institution">SAP Research CEC Dresden</orgName>
								<address>
									<postCode>01187</postCode>
									<settlement>Dresden</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alexander</forename><surname>Schill</surname></persName>
							<email>alexander.schill@tu-dresden.de</email>
							<affiliation key="aff1">
								<orgName type="department" key="dep1">Department of Computer Science</orgName>
								<orgName type="department" key="dep2">Institute for Systems Architecture</orgName>
								<orgName type="department" key="dep3">Computer Networks Group</orgName>
								<orgName type="institution">Technische Universität Dresden</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Service Composition at the Presentation Layer using Web Service Annotations</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">6C7CC5790F115F3C9DEE0A6DDFE187CA</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T04: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 the eld of Service-Oriented Architectures the implementation of business logic and business processes is well-understood and covered by existing development approaches, but concepts for a lightweight service consumption in order to build interactive service-based applications are still in a preliminary phase. This lack of service-consumerorientation prevents users with limited IT skills to get easy access to services and their oered functionalities. The paper presents an approach that follows the idea of integration at the presentation layer enhanced by user interface (UI) related service annotations. It describes the relationship of these ideas to already existing mashup approaches and gives an insight into how services can be composed to complex interactive applications in a visual manner without the need to write any code.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>1</head><p>Motivation and Background</p><p>Service-Oriented Architectures (SOA) promise to break former monolithic applications into loosely coupled services that can be distributed across several systems. These services are composed to implement business applications and processes. Even though service composition is well-understood and covered by existing approaches for technical developers using languages such as BPEL, tools and methodologies for enabling end-user service composition have been largely ignored <ref type="bibr" target="#b0">[1]</ref>. A promising approach for bridging this gap are mashups that focus on a user-centric and lightweight UI integration <ref type="bibr" target="#b1">[2]</ref> by combining the philosophy of SOA and approaches of End-User Development <ref type="bibr" target="#b2">[3]</ref>. The need for such situational applications to address individual and heterogeneous needs as well as the shift to more exible and dynamic business environments encourage the idea of integrating mashup concepts into the enterprise. Our approach shows a way of overcoming limitations of existing mashup approaches <ref type="bibr" target="#b3">[4]</ref> in order to build complex interactive service-based applications. Following our preliminary investigations and description of related work <ref type="bibr" target="#b4">[5]</ref>, this paper discusses the following contributions:</p><p>We propose the usage of UI related service annotations to ease service integration and composition. This limits the eort for the development of service-based applications to a purely model-driven, visual composition of annotated services that can even be done by end-users. Although existing approaches, such as Dynvoker <ref type="bibr" target="#b5">[6]</ref>, already cover the generation of user interfaces for single web services dynamically, no solution is available for service composition.</p><p>We adopt the idea of integration at the presentation layer <ref type="bibr" target="#b6">[7]</ref> to compose services by combining their presentation front-ends, rather then their application logic or data <ref type="bibr" target="#b1">[2]</ref>. Typically, web services are integrated into the application layer of a composite application via their well-dened service interfaces. The service annotations add the missing information about the UI of a single service to lift the integration to the presentation layer.</p><p>We propose a tool environment that allows the creation of interactive servicebased applications to nonprogrammers. Most of the existing lightweight composition approaches (overview provided by <ref type="bibr" target="#b7">[8]</ref>) support the user only in building complex data representations in form of widgets or feeds, but lack sophisticated concepts following the idea of process mashups <ref type="bibr" target="#b8">[9]</ref>. We propose a automatic Model-driven generation approach for the designed interactive service-based applications. The models used within the approach can be applied for representing applications for various target platforms and dierent sorts of application partitioning.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Towards Visual Service Composition</head><p>This section presents our idea of composing services in a visual manner to ease and speed up the development of interactive applications that goes beyond existing visual mashup solutions. These applications combine concepts like multi-page support, dynamic UI behavior (e.g. input suggestion functionality, client-side input validation). Therefore, we introduce the concept of UI related service annotations. These are reusable information fragments attached to the service description, which are typically not available for the application developer. They cover static UI aspects, the behavior of UI elements, and relations between services.</p><p>Annotations facilitate e.g. the grouping and ordering of UI elements, completion of forms, continuous eld updates, or data conversion (more examples in <ref type="bibr" target="#b4">[5]</ref>). UI development is usually a very time consuming task and cannot be done by the targeted end-user group. A trained application developer has to build the UI and integrate the services manually. The developer has to understand the oered interface to integrate the service in an application. This is not necessary anymore, since the integration at the presentation layer is done on a much higher level of abstraction. The user (in the role of the service composer) only works with the presentation front-end of a service instead of an abstract representation in form of a predened service widget. Therefore, UI fragments are automatically generated for the interaction with the services and represent the interfaces for service input and expected output. The fragments can be inferred from technical details such as the data types of parameters, and be further improved by leveraging the annotations attached to the service. UI fragments consist of freely arrangeable UI elements like input elds or buttons. A manual implementation of a service wrapper, as usually required in existing visual mashup environments, is not needed anymore.</p><p>Our approach facilitates the development of interactive single-and multipage applications. A page acts as a container for UI elements and represents a screen in the nal application. The integration of services (as described above) and the actual service composition can be done for each page separately. The service composer can dene data ows between the integrated service operations on a single page (intra-page ow) and between pages (inter-page ow). These data ows can be partially derived from service dependencies dened in the annotations or modeled manually by the service composer in a visual way. Different approaches to support this specic task are currently under investigation. One solution could be the selection of a specic output eld of service operation A and drawing a line to the input eld of the service operation B. Another way could be that each generated UI fragment oers all of its outputs and the user can select the associated service operation via a context menu or wizard. To transport the idea of multi-page applications to nonprogrammers we use a metaphor which most of the people are familiar with -Microsoft PowerPoint. Each page (or screen) in the nal application will be presented like a slide in PowerPoint. Furthermore, it is possible to dene a master layout that all pages will use. To build multi-page applications, the pages can be linked to each other by specifying a navigation path. <ref type="bibr" target="#b2">3</ref> End-User Centric Tool Support</p><p>Our visual composition editor which implements the concepts introduced in Sec.</p><p>2 is currently under development in the frame of the EU funded project ServFace <ref type="bibr" target="#b9">[10]</ref>. The main focus of the composition editor is the empowerment of end-users to develop interactive applications. Multiple design decisions were made based on this requirement. The tool is designed as a rich internet application (RIA) which runs in the web browser of the user and makes an installation dispensable. The annotations facilitate the understanding and simplify the composition of web services. Finally, the visual composition concepts guide the user through the development process by providing intuitive metaphors and hide the complexity of the actual programming task. Our user-centric implementation approach involves iterative evaluations with end-users. The composition editor is integrated into a three step methodology for the development of interactive applications as explained in <ref type="bibr" target="#b10">[11]</ref>. The annotations are created by an IT expert and stored in an annotation model based on a formally dened Meta-model. The visual service composition tool imports in a rst step the functional interface descriptions of the web services and their attached annotation models. The result is a platform-specic object model structure kept in the tool representing the complete designed application.</p><p>Figure <ref type="figure" target="#fig_0">1</ref> shows a mockup of the envisioned composition editor. The user can import annotated services that shall be used in the application. These services ComposableWeb'09 are displayed with their operations in the Service Operations palette. The user can drag service operations from the palette to the composition area. The editor displays the UI fragment inferred from the operation interface and the service annotations. The user can rene the layout, delete unwanted UI widgets or add additional ones from the Widgets palette, and dene intra-page data ows. Besides this basic mashup editor functionality our composition editor pro- After nishing the application development, the mentioned object structure is serialized to a model coined Composite Application Model (CAM). Its underlying Meta-model is reused for representing applications for various platforms. A serialized CAM is used as storage format for the composition tool and as input for generating executable application as described in the next section. <ref type="bibr" target="#b3">4</ref> Generating Applications</p><p>In regards of bringing the composed interactive application to execution, the decision has been made to use a code generation mechanism. In comparison to deploying the design-time outcome on a specic interpreter, code generation promises a higher eciency. The chosen approach is realized in a model-driven manner. In order to bring the instance of the CAM Meta-model closer to the executable application and to resolve the annotations that are explicitly represented within the CAM to runtime information, a Model-to-Model transformation is applied in a rst step. As it is the case for the CAM, the target Meta-model (named PROSAIC) can be reused for representing applications for a variety of platforms.</p><p>A major challenge in realizing this approach has been to dene a reference architecture for service-based interactive applications reected in this Meta-model that can be used as an abstraction from concrete platforms and frameworks. Figure <ref type="figure">2</ref> shows an example of the control and data ow within the reference ar-Fig. <ref type="figure">2</ref>. UI-to Service-interaction within the reference architecture chitecture developed for our approach. To support single page applications (e.g. RIAs) as well as multi-page applications, a dierentiation between a page ow controller and a behavior controller has been introduced. Both controllers are located within the Model-Control-Adapter (MCA). Its major task is to coordinate the interaction between the user interface and the service infrastructure. The page ow controller contains a set of states and transitions between states. On state activation the state registers a set of commands within the behavior controller. These commands are mapped to a set of activities where an activity can contain actions such as the invocation of a service or assigning values to global variables. The commands are used for realizing the behavior of the user interface of the page associated with the state. For example if a widget displaying stock information should be updated in regular intervals, it triggers a command in a loop and sends it to the MCA (e.g. via Ajax functionalities). The MCA calls the service that returns the stock data and sends a reply to the UI that includes the new stock values into the widget. This proposed reference architecture is reected within the PROSAIC Metamodel. During several tests it has been evaluated that instances of this Metamodel can be transformed via Model-to-Model and Model-to-Code transformation to several platform and framework specic source code. Besides transforming it to Web applications (Dojo toolkit and the Spring framework) it has been proven that it can be applied for generating fat clients e.g. for mobile devices (Google Android applications).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ComposableWeb'09</head><p>The generation of the resulting application is done completely automatically by using an automatic build script for Ant that is triggered by the composition editor and that starts the M2M transformation implemented in ATL and the M2C transformation implemented by using openArchitectureWare. Furthermore this script enables the packaging and deployment of web applications.</p><p>Yet an open issue is the formal denition of the relations between the service annotations kept explicitly within the CAM and the PROSAIC Meta-model. This formal denition promises a starting point for a simplication of the template creation for the M2M transformation. The concept of presentation integration can be seen as the next major step in the integration area <ref type="bibr" target="#b6">[7]</ref>. Our paper presented an approach to lift the service composition to the level of presentation integration via UI related service annotations. The presented visual composition concepts as well as the associated tool will empower nonprogrammers to create composite applications, which suit their requirements and individual needs. The active involvement of the actual service consumer in the integration and composition process can result in a more sucient usage of knowledge, specic for their domain, and raise their productivity.</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. Mockup of the Visual Composition Editor</figDesc><graphic coords="4,95.93,146.35,242.08,171.10" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>5</head><label></label><figDesc>Conclusion and Future Work</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">ComposableWeb'09</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Bill Organiser Portal: A Case Study on End-User Composition</title>
		<author>
			<persName><forename type="first">A</forename><surname>Ro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">S Y</forename><surname>Xia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">Y</forename><surname>Paik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">H</forename><surname>Chon</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<publisher>WISE</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Understanding UI Integration: A survey of problems, technologies, and opportunities</title>
		<author>
			<persName><forename type="first">F</forename><surname>Daniel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Yu</surname></persName>
		</author>
		<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">M</forename><surname>Matera</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Saint-Paul</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Internet Computing</title>
		<imprint>
			<date type="published" when="2007-06">May/June 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">The Changing Role of IT Departments in Enterprise Mashup Environments</title>
		<author>
			<persName><forename type="first">V</forename><surname>Hoyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Stanoevska-Slabeva</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">2nd International Workshop on &quot;Web APIs and Services Mashups</title>
				<imprint>
			<date type="published" when="2008">Mashups08. 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Towards a Mashup-driven End-User Programming of SOA-based Applications</title>
		<author>
			<persName><forename type="first">T</forename><surname>Nestler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">10th International Conference on Information Integration and Webbased Applications &amp; Services (iiWAS)</title>
				<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Design-Time support to create user Interfaces for service-based applications</title>
		<author>
			<persName><forename type="first">T</forename><surname>Nestler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Feldmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schill</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference WWW/Internet</title>
				<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Ad-hoc Usage of Web Services with Dynvoker</title>
		<author>
			<persName><forename type="first">J</forename><surname>Spillner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Feldmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Braun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Springer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schill</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Towards a Service-Based Internet, First European Conference</title>
				<meeting><address><addrLine>ServiceWave; Madrid, Spain</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">2008. 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A Framework for Rapid Integration of Presentation Components</title>
		<author>
			<persName><forename type="first">J</forename><surname>Yu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Benatallah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Saint-Paul</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Casati</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Daniel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Matera</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">WWW&apos;</title>
		<imprint>
			<biblScope unit="volume">07</biblScope>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Market Overview of Enterprise Mashup Tools</title>
		<author>
			<persName><forename type="first">V</forename><surname>Hoyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Fischer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ICSOC</title>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">The Mashup Opportunity</title>
		<author>
			<persName><forename type="first">O</forename><surname>Young</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Forrester Research Report</title>
				<imprint>
			<date type="published" when="2008-05">May 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<ptr target="http://www.servface.eu/" />
		<title level="m">ServFace Research Project</title>
				<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>ServFace Consortium</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">An Integrated Approach for Creating Service-Based Interactive Applications</title>
		<author>
			<persName><forename type="first">M</forename><surname>Feldmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Janeiro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Nestler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Hübsch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Jugel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Preussner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schill</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">INTERACT</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>to appear</note>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m">ComposableWeb&apos;09</title>
				<imprint/>
	</monogr>
</biblStruct>

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