Technische Berichte Nr. 11 des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam
|
|
|
- Rodney Foster
- 10 years ago
- Views:
Transcription
1 HASSO - PLATTNER - INSTITUT für Softwaresystemtechnik an der Universität Potsdam Requirements for Service Composition Harald Meyer Dominik Kuropka Technische Berichte Nr. 11 des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam
2 Technische Berichte des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam Nr. 11 Requirements for Service Composition Harald Meyer Dominik Kuropka Potsdam 2005
3 Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Die Reihe Technische Berichte des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam erscheint aperiodisch. Herausgeber: Redaktion: Professoren des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam Harald Meye, Dominik Kuropka r harald.meyer; dominik.kuropka }@.hpi.uni-potsdam.de Vertrieb: Druck: Universitätsverlag Potsdam Postfach Potsdam Fon +49 (0) Fax +49 (0) [email protected] allprintmedia gmbh Blomberger Weg 6a Berlin [email protected] Hasso-Plattner-Institut für Softwaresystemtechnik an der Universität Potsdam, 2005 Dieses Manuskript ist urheberrechtlich geschützt. Es darf ohne vorherige Genehmigung der Herausgeber nicht vervielfältigt werden. Heft 11 (2005) ISBN ISSN
4 Requirements for Service Composition Harald Meyer and Dominik Kuropka November 1, 2005
5 Executive Summary This document describes the requirements analysis of the service composition component. 33 requirements are identified and categorised. A requirement is either mandatory or optional. The categorisation distinguishes between general, functional and non-functional requirements. In general requirements automated service composition is justified. Functional requirements include requirements regarding: Elements of Composition defines the building blocks of composition. Control Flow defines the order of the elements of composition inside a composition. Data Flow defines how data is exchanged between the elements of composition. Data Model defines how data elements are described. Quality of Service defines how optimisations for compositions are described. Non-functional requirements include the usage of WS-BPEL as the foundation for a service composition language, performance requirements, and the ability to flexibly react to unexpected events. Table 6 gives a summary of all identified requirements. 2
6 Contents 1 Introduction 1 2 Use Case Scenarios Attraction Booking Dynamic Supply Chain Management General Composition Requirements 7 4 Functional Requirements of Service Composition Requirements on the Elements of Composition Control Flow Requirements Data Flow Requirements Data Model Requirements Quality Of Service Requirements Non-Functional Requirements 21 6 Conclusion 24 Bibliography 26 3
7 1 Introduction To be successful, organisations cooperate on a global level. The key enabling cooperation is the integration of their software systems inside the organisation and beyond organisational borders. Service orientation proves to be a viable approach towards integration. Services are offered to requestors inside and outside the organisation. Descriptions of services are published in a registry. Service composition yields the possibility to aggregate existing services into new composed services. Processes are currently modelled manually. This leads to inflexible service compositions with no optimal quality as manual modelling prevents adjustments for individual service requests. Manually modelled service compositions must suit a lot of different service requests. Hence individual requests are possibly not served as well as possible. As services are registered and removed during run-time, service compositions may fail if necessary services are no longer available. When new services are registered they are not automatically used in previously modelled service compositions even though they may enhance them. Automated service composition allows the on-demand creation of new service compositions for requests. Therefore automated service composition increases flexibility and quality and reduces the probability of enactment failures because of missing services. Automated service composition represents a core concept of the Adaptive Services Grid (ASG) project. One of the goals to achieve in the ASG project is to develop of a prototypical implementation of a service composition component. It will enable us to compose individual service compositions for service requests directed towards the ASG platform. Requirements analysis builds the foundation for the development of this component. Requirements analysis is part of the ASG platform development process described in the deliverable D6.IV-1 ASG Platform Development Process. It leads to a set of unambiguous, correct, and testable requirements for the service composition component. This includes functional requirements on the input and output of service composition but also non-functional requirements like performance. The usage scenarios of the ASG platform developed by the working group C-7: Usability and Demonstration drive the requirements analysis. We will derive requirements from individual scenarios and demonstrate their importance through other scenarios and references to related work. Requirements analysis incorporate the collection and categorisation of requirements. Categorisation is performed on two dimensions: by importance and thematically. A requirement is either mandatory or optional. The thematical categorisation includes three main categories: general, functional and non-functional. General requirements are mainly requirements derived from the overall requirements regarding the ASG platform. This includes for example that service composition must be automated. While the general requirements can (and will) also be justified through the usage scenarios they precess the other requirements temporarily and logically. Following this introduction two scenarios are presented in the next chapter that form the basis for our requirements analysis. General requirements regarding the service composition component are covered in chapter 3. In chapter 4 we present the functional requirements. We show the nonfunctional requirements in chapter 5. Chapter 6 contains a summary of all presented requirements and an outlook on design and implementation of the service composition component. 1
8 2 Use [email protected].!=<!AC9!;=??=</+,A,92!>C!M=/+!,9!A=!,:<A,GI!,?E=.A/<A!;=??=<!/9E;A9B! Case Scenarios.+/A!AC?!A=!AC!9+;A,=<!;.,A.,/!/<:!?.M!AC?!,<A=!/!0.=/:.B!?=.!;=?E.C<9,-! 9;</.,=!P9!552#L2! Two scenarios are used to motivate the individual requirements. Figure 1 shows an evaluation of selected! scenarios. Based on this evaluation the selected scenarios are Telematics and Dynamic Supply Chain Management. From the Telematics scenario only a subset called Attraction Booking 5525!'+;A,=<!;.,A.,/!G=.!&'(40/9:!9;</.,=9! scenario is used here. It bases on the Tourist scenario presented in the deliverable D7-I.1 [13]. It plays 3<!/!AK=49AE!/EE.=/;C!K!,:<A,G,:!;.,A.,/!./<N:!AC?!0I!,?E=.A/<;!PK,MCAL!/<:! an important role in the ASG project as it is implemented for the prototype of the ASG platform. -/+@/A:!AC!,<:,-,:@/+!9;</.,=9!/;;=.:,<M!A=!AC,9!./<N,<M2!O!9@??/.,Q:!AC!R! The Dynamic Supply Chain scenario demonstrates service composition very well. Both scenarios 9;</.,=9!E.9<A:!,<!AC,9!:+,-./0+!,<A=!%!?/,<!9;</.,=!SG/?,+,9TU! are summarised in the following.!"#$%"#&' (%#)$' +,--./'!�' 1%.%2&$#34' 560#$6"#0)' %768'!"#$%#&'()"+),'+-$#)./) 012) 010).13) /14) 5$%$&6&'()#")7%89:;$+;) 31<).1=) 01.).1<).1=)!"#$%#&'()#")>$)&?@($?$%#$8) 3).1<) 01<) 01.) /12)!";;&>&(&#A)#")&?@+$;;)&%#$+%'() 5:;&%$;;)B%&#;) 21<).1=) 01/) 01.).1C) D%#$+$;#)#")E"+-)E&#F) 21<).1<).13).1<).12)!"#$%#&'()GHI)@F';$95)J'%8&8'#$;) 2).1=).1=).1<) 01.) K$?"%;#+'#&"%)5$%$&#;)"+)GHI) 2).1<).1L).10).1.) I+'8$)")D%%"M'#&"%) <1<) /1=) /1L) /1=) /14) ) ) ) ) ) ) GM$+'N$)O"#&%NP) ).13<).1=C).1<=).102) Q'%-P) ) 9:' 9;' 9<' 9='!!"#$%&'()&"+,-+.&"+/&%0"$1"2-3+&34&5%$%62%/&56%+"7-35& Figure 1: Evaluation of Scenarios [13] >C!.9@+A!,9!/!./<N:!+,9A!=G!.;=??<::!9;</.,=9B!KC,;C!;/<!0!9<!/9!/!.;=??<:/A,=<!=<!AC!=-./++!/AA./;A,-<99!=G!AC!,<:,-,:@/+!9;</.,=9!G=.!AC!&'(! 2.1E.=V;A2!3<!/!.=@<:!A/0+!:,9;@99,=<!AC!W41!9;</.,=!K=.N,<M!M.=@E!-=A:!G=.!AC! Attraction Booking,<:,-,:@/+!9;</.,=9!K,AC!/!./<M!0AK<!$!P0/:L!/<:!X!PM==:L2!>C!-=A,<M!=G!AC! The attraction,<:,-,:@/+!e=e+!k.!9@??:!@e!/<:!k,mca:!k,ac!ac!.9e;a,-!k,mca92!>c!.9@+a! booking scenario is a refinement of the Tourist scenario from the Telematics domain. Customers, K/9!/!;+/.!;=??,A?<A!A=K/.:9!AC!>+?/A,;9!/<:!'@EE+I!WC/,<!9;</.,=9!K,AC!/<! or as they are called in ASG end service consumers, can retrieve information about attractions /-./M!=G!5BRX!/<:!5B18!.9E;A,-+I!/<:!/!9A/A:!,<A.9A!G=.!0=AC!AC!'.-,;! in the immediate surrounding using a mobile device. Additionally customers may requestj=<,a=.,<m!p5b8r!e=,<a9l!/<:!ac!d4(=-.<?<a!9;</.,=!p5b#y!e=,<a9l2! directions to the attraction or book tickets for them. Figure 2 shows the dialogs of the client application 3<!WC/EA.!552#!K!:,9;@99!AC!,:/9!AC/A!+/:!A=!AC!:;,9,=<!=G!;=<;<A./A,<M!=<!AC9!%! on the mobile device. Based?/I=.!9;</.,=9B!KC,;C!,9!/+9=!/<!=@A+==N!=<!G@A@.!K=.N!P,22!AC!<ZA!:+,-./0+!!"# on the customer s current position and the specified query (dialog 1) the system compiles a list$$l2! of attractions (dialog 2). This list is displayed as it is or as a map showing the position of the customer and the attractions found. The customer can then request additional information for! specific locations. This includes the address of the attraction, opening hours or price (dialog 3). The customer can also request a route description to lead him to the attraction. If the attraction is bookable (e.g.: if it is an event), the customer can book a digital ticket. The route description consists of a map and a textual description (dialog 4). While the map shows streets and buildings, indicating 2 "!#$$%!&'(! )+,-./0+!)12345! 61!7!5$8!
9 Figure 2: Attraction Booking: client application 3
10 the path as a coloured line, the textual description includes street names and directions (e.g.: where to turn left or right). To book a specific attraction or event, the customer selects the number of people to attend the event (dialog 5). The system then offers the customer a number of tickets for a certain price category. If the customer decides to accept the offer, he is charged the specified amount of money (dialog 6). In return he receives the given number of digital tickets for the event (dialog 7). The Attraction Booking scenario encompasses three use cases: Find attractions Get route description Book attraction All three are fulfilled through the enactment of service compositions. Figure 3 shows an example composition for each use case. The process activities represent service invocations. The service!"#$%&'() +,-.$/"0 compositions result from service requests towards the service composition component. For example,!"#$!%&"'$(&)+') if the customer s location is already!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" specified in the service request, the invocation of a localisation 2(".4"23"8/)"89/2">46+2:" service is not necessary. A similar ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D flexibility applies to the booking of an attraction. No payment option is specified in the example. 1'23) Instead 4'5678)79( the user selects a payment -:6;'6option during payment. But the &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" customer may have already specified his preferred payment option in a profile. The client application!"#$%&'() 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: +,-.$/"0 %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." on the mobile device then transfers A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: the information about the preference and the customer does not!"#$!%&"'$(&)+') 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" have to select a payment option. If service providers register new attraction information services!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" 2(".4"23"8/)"89/2">46+2:" <1231/"23"89/2"I(/2J2: or remove old services, future queries for attraction information will incorporate these changes of ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" the service landscape. 1'23) In this4'5678)79( scenario automated service composition allows changes in the set <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" -:6;'6 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)"!"#$%&'() +,-.$/"0 $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" of available services and in the 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" client application (new use cases, additional information) without +,-.$/"0 $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: 1/9(+9)"1/"23";,./4.-21(/: %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("."!"#$!%&"'$(&)+') requiring manual adjustment I('A/4.21(/ of the service ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" compositions. A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: %&"'$(&)+') /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./"!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: 2(".4"23"8/)"89/2">46+2:" %&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" "23"8/)"89/2">46+2:" Find attractions: 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D <1231/"23"89/2"I(/2J2: $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," "?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 1'23) 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" 4'5678)79( Find attractions -:6;'6 I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" &(/.,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" 4'5678)79( -:6;'6 <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" ;,'1/.2 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: Consolidate 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" Locate $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" customer Find attractions % (6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." attractions 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: +,-.$/"0$,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." 1/9(+9)"1/"23";,./4.-21(/: (,"9/2"3./)+1/7: A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: I('A/4.21(/ %6+21A+;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" 8,,(, ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" Find attractions $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" %&"'$(&)+') /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <1231/"23"89/2"I(/2J2: %&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" "23"8/)"89/2">46+2:" <1231/"23"89/2"I(/2J2: $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" ;<=58>+?@:?98@);$#87 "?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" Get route description: ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G 4'5678)79( <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" -:6;'6 -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" ;,'1/.2 +,-.$/"0 $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" Create route 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" Locate customer Calculate 1/9(+9)"1/"23";,./4.-21(/: 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" route $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" description 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" 1/9(+9)"1/"23";,./4.-21(/: %&"'$(&)+') ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." (,"9/2"3./)+1/7: /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" 4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: %&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" "23"8/)"89/2">46+2:" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," "?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" Book attraction: <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" <1231/"23"89/2"I(/2J2: $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".,".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" phone Charge 4'5678)79( 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" -:6;'6 ;<=58>+?@:?98@);$#87 -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: bill phone bill ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2:!"#$#%&' Reserve ;,'1/.2 Confirm ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Order!"#$%&'()!+,,-./0123"%'4556&'()76878%98: payment Confirm 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" ticket reservation 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" tickets option? order 2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" (,"9/2"3./)+1/7: Charge %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" credit card (,"9/2"3./)+1/7: 1/9(+9)"1/"23";,./4.-21(/: credit $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" card 4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <1231/"23"89/2"I(/2J2: E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C:!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: ;<=58>+?@:?98@);$#87 ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," ;<=58>+?@:?98@);$#87 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/"!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" 2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" 1/9(+9)"1/"23";,./4.-21(/: 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" 4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" (,"9/2"3./)+1/7: /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23"!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: ;<=58>+?@:?98@);$#87!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: 2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44"!"#$%&'()!+,,-./0123"%'4556&'()76878%98: 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" (,"9/2"3./)+1/7: ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: ;<=58>+?@:?98@);$#87 Figure 3: Example compositions for attraction booking use cases 4
11 2.2 Dynamic Supply Chain Management To be successful, companies must be able to integrate services offered by their suppliers quickly. In the Dynamic Supply Chain Management scenario this integration should be achieved for the domain of Internet Service Providers (ISP). Nowadays ISPs not only provide broadband Internet access but bundle it with additional services like webspace provision or domain name registration. Bundling can be done in advance by a product manager or on-demand when the customer requests a product bundle. Bundled services may not be provided by the ISP itself but by one of its suppliers: While the ISP owns the infrastructure for!"#$%&'() +,-.$/"0 providing access to the Internet, it purchases the actual broadband lines connecting customers (e.g.: ADSL line over a regular!"#$!%&"'$(&)+') telephone line) from line carriers.!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" If a customer orders2(".4"23"8/)"89/2">46+2:" a bundled package, the online shop of the ISP creates a service request that is send to the ASG platform. ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D Based on this request a fitting service composition is created. The use case for this scenario is ordering 1'23) of a4'5678)79( broadband Internet access bundle. -:6;'6 Figure 4 displays a composition &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" example for this use case. The2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" customer requests a bundle containing broadband Internet access, 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: web space and the registration %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." of domain names. Service enactment can enact all three activities A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: in parallel. To provide Internet access the ISP not only orders a ADSL line from a carrier, but also 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" performs setup activities for its7/,.2):";314"8,,(,"<1++"="-.6732"=b"./"e/2,')1.2"89/2" internal infrastructure (e.g.: account to log in). While ordering an <1231/"23"89/2"I(/2J2: ADSL line and registering a domain name are displayed as activities, they are actually compositions!"#$%&'() +,-.$/"0 I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" themselves. Figure 5 shows the<1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" actual service invocations for ordering an ADSL line. An availability 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G check is performed for each!"#$!%&"'$(&)+') ADSL $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" provider. The provider is added to the list of possible providers,!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" if the check returns a positive result. +,-.$/"0 $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" 1/9(+9)"1/"23";,./4.-21(/: When the provider check is complete, the best offer (e.g.: least 2(".4"23"8/)"89/2">46+2:" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" cost)!"#$!%&"'$(&)+') is selected. ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D!"#$%&'() +,-.$/"0 &)+') /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./"!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: )+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" 2(".4"23"8/)"89/2">46+2:" 1'23) 4'5678)79( -:6;'6 K1/C &(/!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" )"89/2">46+2:" ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D Order $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" Setup internet ADSL line A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" access 1'23) 4'5678)79( 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: -:6;'6.,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" 4'5678)79( &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" %44.7 -:6;'6 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Provide 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: 8,,(, 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" webspace 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: (,"9/2"3./)+1/7: <1231/"23"89/2"I(/2J2: A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" Register 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" domains ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <1231/"23"89/2"I(/2J2: <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G <1231/"23"89/2"I(/2J2: $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" ;<=58>+?@:?98@);$#87 +,-.$/"0 $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" 1/9(+9)"1/"23";,./4.-21(/: <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" ') $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./"./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" 1/9(+9)"1/"23";,./4.-21(/: E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: 2">46+2:" 1/9(+9)"1/"23";,./4.-21(/: I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," for each ADSL provider "2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C:.,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" 5678)79( E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" -:6;'6 -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: available? '()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)"!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," Order from Check Add to (<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" least cost availability 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" provider list 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" yes 7(4"=.-C"2("124"$.,/2"$,(-44: %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" provider.,,191/7".2"k1/c"8/)"89/2"<1++"1'')1.2+b"n6'a"2("124" -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: no "2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." (,"9/2"3./)+1/7: -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44"!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: -1A./2".2"23"-(/-+641(/"(0"23"$,(-44: %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" "2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/",.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" (,"9/2"3./)+1/7: <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: /"23"89/2"I(/2J2: (,"9/2"3./)+1/7: %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" ;<=58>+?@:?98@);$#87 "2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" Figure 5: Sub process ADSL line ordering /)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B:,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: ;<=58>+?@:?98@);$#87 44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" -(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" ;<=58>+?@:?98@);$#87 9)"1/"23";,./4.-21(/: "2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" 44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" ')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" 44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" 1/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" 4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: Figure 4: Example composition for Dynamic Supply Chain Management Automated service composition allows customers to select individual bundles including only the desired products. The service composition component can flexibly compose the ordering service of!"#$#%&' "2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" +)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" 1GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/"!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: /2"3./)+1/7:!"#$%&'()!+,,-./0123"%'4556&'()76878%98: 5!"#$%&'()!+,,-./0123"%'4556&'()76878%98:
12 the ISP according to the requested bundle. Automated service composition also enables the ISP to have business relations with a lot of different suppliers. The best provider for a concrete product is then selected dynamically. New business relations can therefore be established on the fly and old ones can end. 6
13 3 General Composition Requirements This chapter gives an overview of general requirements towards service composition in ASG. Req. 1: Service Composition is automated (mandatory) Service composition can be performed manually, semi-automatically, or automatically. Systems following the paradigm of service orientation are open: Service requestors appear and disappear, and service providers register new services, and change or unregister existing services. Service requestors are the customers of the end service provider. In the Attraction Booking scenario the customer is somebody who wants to find and book an attraction. In the Dynamic Supply Chain Management scenario the customer wants to order bundled ISP services. The end service provider is the organisation that offers the actual service to this customer. He provides the client application, the server application and often also the ASG platform. End service providers may change their applications. New customers may have new demands. Handling these demands with manually modelled compositions can be inadequate or impossible. In Dynamic Supply Chain Management a lot of different services are available that can be bundled into even more packages 1. Manually modelled service compositions that handle all this different cases are complex. Complexity increases, if dependencies between services exist (e.g.: domain registration is only possible if web space is ordered, too) or if providers register or unregister services. Service providers register their services and offer them to customers. A provider of a route planning service is an example for a service provider in the Attraction Booking scenario. For Dynamic Supply Chain Management an example is the provider of ADSL lines. In both cases providers can register new services. This includes not only new route planning services or ADSL line ordering services but also new types of services. A provider of accounts may want to offer its services in the Dynamic Supply Chain Management. With manual or semi-automatic service composition the service provider asks the end service provider to adjust its service composition in order to allow customers to include an account in their package. If the end service provider uses automated service composition, new services will be used automatically. A service provider may also change or unregister its services. Again this will result in manual modelling if no automated service composition is used. Finally, the end service provider can change its application. Using automated service composition, he only needs to change the service requests. The service composition component automatically adjusts the service compositions. If the provider decides that the information about an attraction should include a live picture of the location, he only changes the goals of the service request. Without automated service composition, he would have to change the service compositions himself. Each situation presented above involves some change in the service compositions. For manual or semi-automatic service composition this means that a person has to change the compositions manually. This is time-consuming and costly. With automated service composition no service compositions to change exist. Adaptation to changes resulting from the above mentioned openness of 1 If five service are available and a bundle may include each service once, 32 packages are possible. 7
14 service oriented architectures is therefore easier. Req. 2: Service request describes the goal of composition (mandatory) A service request is the input for automated service composition. If service enactment executes the resulting service composition, its effect should be in line with the service request. To allow automated service composition a service request includes initial state, goal state and request data. The initial state describes the current situation before enacting the service composition. The goal state describes the state of the world that should be reached. Request data includes concrete data elements that are available in the initial state. In the Attraction Booking scenario this includes for example the customer s telephone number. Req. 3: Service Composition according to service request (mandatory) The service composition component creates compositions, that accord the service request: The service composition is enactable in the initial state with the given request data and enacting the service composition leads to a state that fulfils the criteria defined for the goal state. Req. 4: Information gathering services invocable during composition (optional) One can distinguish information-gathering and world-altering services [9]. Information-gathering services only fetch new information without changing the state of the world. In the Attraction Booking scenario the services to fetch information about attractions and to locate customers are only information gathering 2. In contrast, ticket booking leads to a change in the state of the world: Fewer tickets are available and money is transferred. Therefore the booking service is world-altering. In the classical view of automated service composition neither information-gathering nor worldaltering services are called during service composition. Instead the service composition component puts the selected service into the service composition. The service is therefore only invoked during service enactment, While this separation of concerns normally makes sense, it can lead to bloated service compositions. If a search for attractions is performed in the Attraction Booking scenario, all attraction information services regardless of the location of their attractions are used. This happens because the location is determined during enactment. If the service for locating the customer could be invoked during composition time, the number of applicable attraction information services is reduced dramatically. While some research on the enactment of information-gathering services during composition time exists [9] this interweaving of composition and enactment can be problematic: How should the service composition component decide whether to invoke a service itself or to let the service enactment component do this? Is an information-gathering service that costs money still information-gathering? Another problem is that only very few information gathering services are actually invocable during composition time as they depend on world-altering services [17]. 2 Only if they do not cost any money. 8
15 4 Functional Requirements of Service Composition In this chapter we elaborate the functional requirements towards the service composition component and the composition language. The composition language defines how service compositions in ASG look like. The requirements are ordered according to the following categorisation: Elements of Composition defines the building blocks of composition. Control Flow defines the order of the elements of composition inside a composition. Data Flow defines how data is exchanged between the elements of composition. Data Model defines how data elements are described. Quality of Service defines how optimisations for compositions are described. Following this model the requirements are described in the following. 4.1 Requirements on the Elements of Composition The elements of composition are the building blocks from which service compositions are composed. The service specification language defines their concrete format. Requirements toward the service specification language are defined the deliverable D1.I-1 Requirements Analysis on the ASG Service Specification Language [14]. Req. 5: Elements of composition are services interactions (mandatory) The elements of a composition are activities that perform a task. In ASG the only activities are service interactions. Besides invoking services, a composition can itself be invoked as a service. The result of composition includes service interactions only on the specification level without a binding to a concrete implementation. The Negotiation Manager later binds the specifications to concrete implementations. If an external service provides more than one method, each method is mapped to a distinct ASG service. Therefore no stateful interactions with services containing more than one method are supported. For the scenarios this means that every activity must be invocable as a service. This restriction includes all internal activities. For example in the Dynamic Supply Chain Management scenario the activities to create an account and to reserve disk space on a web server are services, too. 9
16 Req. 6: Elements of composition are service compositions (optional) Service interactions are the atomic elements of composition. To improve reusability existing service compositions are used as elements of composition as well. These existing service compositions can be manually modelled or stored results of previous automated service composition. Using manually modelled composition certain sequences of services can be prescribed to the composer. In the Attraction Booking scenario such a predefined fragment could be the charging process. Instead of recomposing it for each request, it could be predefined dictating a certain order in which the different charging services are used (e.g.: charging by money transfer only if no other payment options succeeds.). Reusing previous automated service compositions makes sense in most scenarios especially if often similar or equal requests are served. The amount of automated service composition is reduced and reply times are decreased. Req. 7: Services have input and output parameters (mandatory) Services perform a specified functionality. Often this functionality is parameterised with data provided in the service request. The localisation of a customer for example needs the customer s telephone number as input data. Services also return a result (e.g.: the customer s location). To allow the input and output of data, parameters are needed. A service has zero or more input and output parameters. Req. 8: Service functionality is described semantically (mandatory) Service functionality is described semantically to allow automated service composition. Besides input and output parameters, specifications of services include preconditions and effects. These four elements of a semantic service specification can be mapped to the WSMO constructs of assumption, precondition, effect, and post-condition. The terminology is derived from automated planning in Artifical Intelligence [7] and is in line with the current ASG terminology. Preconditions and effects are specified using function-free first-order logic. This allows semantically rich specifications while preserving decidability [7]. Preconditions and effects describe the state of the world and the state of available information. To do so, it is possible to define logical relations between input parameters, between output parameters and between input and output parameters. To describe functionality often additional variables that are not parameters are necessary. Req. 9: Services can have more than one precondition or effect (mandatory) It is common that a service has more than one precondition or effect. For example the service to provide web space in the Dynamic Supply Chain Management scenario has the preconditions that enough disk space is available and that the load on the machine is acceptable. It has the effects, that web space is reserved and that an account for the user is created. All of the preconditions must hold in order to execute the service and all effects of the service happen if the service is executed. Expression 1 Disjunction Conjunction 1 Figure 6: Composition of logical expressions 10
17 Expressions are defined in first-order logic. Therefore expressions can be conjunctions or disjunctions of other expressions (Fig. 6). Conceptually services have only one precondition and one effect. If more than one precondition or effect is needed, both can be conjunctions of other expressions. The logical expression for the precondition of the above-mentioned service could look like this: spaceavailable loadacceptable Req. 10: Services can have disjunctive preconditions (mandatory) Besides having multiple preconditions that all must be true in order to invoke the service, a service can have disjunctive preconditions. The service is invocable, if just one of the preconditions is true. An actual web space provisioning service could be responsible for multiple web servers. So it is sufficient that web space is available on just one web server. The precondition of the service managing web servers A and B then looks like this: (spaceavailable(a) loadacceptable(a)) (spaceavailable(b) loadacceptable(b)) Again, we can use just one expression from first-order logic to express disjunction. It is therefore sufficient that we still limit services to just one precondition. If disjunctive preconditions are not available, they can be simulated using several distinct services (e.g.: service for web server A, service for web server B). Req. 11: Services can have disjunctive effects (mandatory) Disjunctive effects are necessary to express services that can have several different effects. The web space provisioning service that is responsible for multiple web servers is an example for such a service. Depending on the selected web server, the web space will be provided on just one of the managed web servers. In the Attraction Booking scenario a service to determine the city in which a customer is located delivers different results according to the actual city. Implementation-wise disjunctive effects are more complicated. While missing disjunctive preconditions can be simulated, this is not possible for disjunctive effects. Disjunctive effects also increase the complexity of automated service composition [5, 7]. 4.2 Control Flow Requirements The control flow of a process or service compositions defines the order in which the elements of composition are enacted. This includes simple sequential ordering but also complex parallel or alternative control flows. In the usage scenarios we have already seen some examples for control flows. Figure 3 for the Attraction Booking scenario and Figures 4 and 5 for the Dynamic Supply Chain Management scenario included sequential, parallel, and alternative control flows. Requirements regarding control flow can be separated into two types of requirements: Requirements regarding the composition functionality and requirements regarding features of the composition language. With workflow patterns [18] a categorisation for different control flow constructs exists in workflow management. Requirements analysis regarding control flow will be performed according to these patterns. 11
18 !"#$%&'()!"#$%&'() +,-.$/"0 +,-.$/"0!"#$!%&"'$(&)+')!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)"!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" 2(".4"23"8/)"89/2">46+2:" 2(".4"23"8/)"89/2">46+2:" 1'23) 4'5678)79( 1'23) -:6;'6 4'5678)79( -:6;'6 &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" Req. 12: 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" Composition of sequential control 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" flow (mandatory) In a Sequence of activities 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: the activities are enacted one after another in a well-defined order. Figure 7 shows examples for the %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: usage of Sequence in both scenarios. In the Attraction Booking scenario the customer is located, then 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" a route7/,.2):";314"8,,(,"<1++"="-.6732"=b"./"e/2,')1.2"89/2" is calculated based on the location and finally 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" a description for the route is generated. In the <1231/"23"89/2"I(/2J2: <1231/"23"89/2"I(/2J2: Dynamic Supply Chain Management example only a small part of the process is actually performed ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" sequential. If an ADSL line is ordered by a customer, the actual line is ordered from the ADSL <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G line provider and then Internet access is activated for this line. In both scenarios sequentialisation is $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" necessary to ensure +,-.$/"0 $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" correct working. %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" I./-+!"#$%&'() +,-.$/"0 1/9(+9)"1/"23";,./4.-21(/: 1/9(+9)"1/"23";,./4.-21(/: I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14"!"#$!%&"'$(&)+') /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" Dynamic Supply E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: Attraction Booking: E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: /-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)"!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" Chain: K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/"!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" 2(".4"23"8/)"89/2">46+2:" Order $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," Setup internet ADSL line )"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" access.,,191/7".2"k1/c"8/)"89/2"<1++"1'')1.2+b"n6'a"2("124".,,191/7".2"k1/c"8/)"89/2"<1++"1'')1.2+b"n6'a"2("124" 1'23) -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: -:6;'6 4'5678)79( -:6;'6 -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: B"23"2BA"(0"89/2:"E2"14".+4("64)" ;,'1/.2&(/ ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Locate Calculate Create route Provide (-44"23.2"/)4H"<31-3"-.644"23" 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" customer route description 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" webspace $,(-44: %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/".2"."'44.7"14"4/2"2("." %44.7 (,"9/2"3./)+1/7: ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." (,"9/2"3./)+1/7: "(0"23"$,(-44:%6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" Register $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" domains.2"."/.')"8,,(,"43(6+)"=" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" "-.6732"=B"./"E/2,')1.2"89/2" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: <1231/"23"89/2"I(/2J2: ;<=58>+?@:?98@);$#87 Sequence ;<=58>+?@:?98@);$#87 1/".";,./4.-21(/"F6=G$,(-44:"E2" I./-+ 21(/"43(6+)"="-./-++)"./)"<1++" "89/2".22.-3)"2("23"F6=G ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++"!"#$%&'() 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G +,-.$/"0 /H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" (6+)"="4/2"2("./B"8/21214" $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" Figure!"#$!%&"'$(&)+') 7: Usage of Workflow Pattern: Sequence 1/9(+9)"1/"23";,./4.-21(/:!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" "23.2"."I('A/4.21(/"14" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" 2(".4"23"8/)"89/2">46+2:" (/"1)/2101,"<1++"2,177,"./" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" "$,(-44"14",(++1/7"=.-C: E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D //-21/7"23"/)"L>46+2M"(0"(/" K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" 1'23) 4'5678)79( -:6;'6 M"(0"./(23,:";BA1-.++BH"234".," $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," "4.'"A.,/2"$,(-44:"!";(C/" 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" 1++"1'')1.2+B"N6'A"2("124" the parallel invocation.,,191/7".2"k1/c"8/)"89/2"<1++"1'')1.2+b"n6'a"2("124" of activities. We have 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" seen an example for parallel control flow in the Dynamic,"E/2,')1.2"89/2:!"#$#%&' -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2:!"#$%&'()!+,,-./0123"%'4556&'()76878%98:!"#$#%&' 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44:!"#$%&'()!+,,-./0123"%'4556&'()76878%98:.2".++" "1/"23"$,(-44" ;,'1/.2 Supply ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Chain Management %44.7 scenario ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." in Figure 7. It is also used in the Attraction Booking ):";314"1/-+6)4".++"1/42./-4"(0" 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: 4"14"/))"<123(62"-('A/4.21(/" scenario. In%6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" general every usage of parallel control flows can be sequentialised. Instead of executing ADSL line ordering, web space provisioning 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" and domain registration in parallel, they could be (,"9/2"3./)+1/7: 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 6+21A+"-(/456/-4"(0"/)1/7"23" %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" <1231/"23"89/2"I(/2J2: 6,"L:7:H"23,"'1732"="'6+21A+" executed in $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" sequence. But sequentialisation can dramatically reduce process performance. For the 24"(0"23"8/)"89/2"<1++")01/" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" 46+24".AA+B: <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" application to real world scenarios it is therefore <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" mandatory. :?98@);$#87 ;<=58>+?@:?98@);$#87 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G Parallel control flow is realised by two$,(-44"=(6/).,b:"e/".))121(/h"12"<1++"1/)1-.2"23.2".";,./4.-21(/" different patterns: Parallel Split and Synchronization. A +,-.$/"0 $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" Parallel Split splits a single thread of control 1/9(+9)"1/"23";,./4.-21(/: into multiple threads. A Synchronization merges them +') "'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" 43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" <"7(4"=.-C"2("124"$.,/2"$,(-44:!"#$%&'()!+,,-./0123"%'4556&'()76878%98:!"#$#%&'!"#$!%&"'$(&)+') Req. 13: Composition of parallel control flow (mandatory) I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" later. Figure 8 identifies both patterns in an example from Attraction Booking. "-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" K1/C /2">46+2:" "23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 5678)79( -:6;'6 14"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2(".",21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: 14"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" /,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" 231/"23"89/2"I(/2J2: 14"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" ++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" 7,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G (-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" (2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" (+9)"1/"23";,./4.-21(/: 14"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" -44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./",')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" (-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," ("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" 191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124",,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: 14"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" (6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" +21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" 9/2"3./)+1/7: 14"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" (-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" Parallel Split!"#$#%&' /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C:!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" Find attractions.,,191/7".2"k1/c"8/)"89/2"<1++"1'')1.2+b"n6'a"2("124" -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Consolidate Locate customer 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" Find attractions attractions!"#$%&'()!+,,-./0123"%'4556&'()76878%98: %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" (,"9/2"3./)+1/7: %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" Find attractions $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: Synchronization ;<=58>+?@:?98@);$#87 Parallel control flow allows Figure 8: Usage of Workflow Patterns: Parallel Split and Synchronization 12!"#$%&'()!+,,-./0123"%'4556&'()76878%98:
19 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" Req. 14: Composition of alternative control flow (mandatory) Alternative control flows 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <1231/"23"89/2"I(/2J2: are parts in a process where depending on some condition one out of many possible control flows is selected. One example from thei./-+ Attraction;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" Booking scenario is displayed in Figure 9. It shows the <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" realisation of an alternative control flow using 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G the workflow patterns Exclusive Choice and Simple $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" Merge. Depending on+,-.$/"0 the preferred payment$,(2(-(+"i./-+"'44.7"43(6+)"="4/2"2("./b"8/21214" type, either the customer s phone bill or his credit card 1/9(+9)"1/"23";,./4.-21(/: is charged. Conditions are often either I('A/4.21(/ decided ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" by user provided data (like here) or by services with /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" disjunctive effects. E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: "23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" :" "(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D ( -:6;'6 )(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" /)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" -C"2("124"$.,/2"$,(-44: /)"1/)1-.24"23.2"."'44.7"14"4/2"2("." "23"-(/-+641(/"(0"23"$,(-44: /)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" /2"I(/2J2: /)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" 3.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" -+"E/2,')1.2"89/2".22.-3)"2("23"F6=G ).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" -+"'44.7"43(6+)"="4/2"2("./B"8/21214" ";,./4.-21(/: ;<=58>+?@:?98@);$#87 /)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" 3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" 89/2"<3/"23"$,(-44"14",(++1/7"=.-C: The patterns Exclusive Choice and Simple Merge constitute the simplest form of alternative control flow: Exactly one of the alternative control flows is selected. If a Multiple Choice is used instead, -3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" "42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" multiple alternative flows can be taken. To merge them three different patterns Synchronizing Merge, 7"2.,72"F2.,2"(,"E/2,')1.2"89/2:!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: Discriminator and Multiple Merge can be used. Only Synchronizing Merge performs synchronisa- /)"1/)1-.24"23.2".++" "1/"23"$,(-44" ')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" tion of control flows. In contrast to Multiple Merge, the Discriminator pattern executes subsequent 4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" +1/7: 3.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" 0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" /2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" (23,"2BA4"(0">46+24".AA+B: Reserve ticket Exclusive Choice!"#$!%&"'$(&)+')!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" 2(".4"23"8/)"89/2">46+2:" ;.=+"?@")14A+.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 1'23) 4'5678)79( -:6;'6 &(/ ;,'1/.2 Confirm reservation ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: K1/C %6+21A+!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" Charge phone bill -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: phone bill ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Order payment Confirm 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" tickets type? order %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" (,"9/2"3./)+1/7: Charge ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" credit card credit card $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: Simple Merge ;<=58>+?@:?98@);$#87 Figure 9: Usage of Workflow Patterns: Exclusive Choice and Simple Merge activities only once. In general the service composition component should support at least Multiple Choice as a splitting pattern. It can simulate Parallel Split and Exclusive Choice as special cases. Merging patterns are more complex. Of the synchronising pattern Synchronization, Simple Merge and Synchronizing Merge only the last one is necessary. Non-synchronising patterns are currently not possible with automated service composition algorithms. Req. 15: Composition of multiple instances of sub-compositions (optional) Sometimes it is necessary to execute certain tasks not only once, but multiple times. ADSL line ordering in the Dynamic Supply Chain Management scenario is one example (see Figure 5). Several providers for!"#$%&'()!+,,-./0123"%'4556&'()76878%98: ADSL lines exist. They differ in availability and price. So an availability check for each provider must be performed and the cheapest one is selected. The availability check for each provider is a realisation of one multiple instance pattern: Multiple Instances with a priori known design time knowledge. Of the four different multiple instance pattern it is the only one that can be composed automatically. As the number of providers is already known at design time (here: composition time) parallel branches for every provider are created (Figure 10). Other multiple instance workflow pattern capture situations were the number of instances is known only at runtime or not known at all. Composing this automatically is not possible. Nevertheless, situations where the number of instances is known at run time can be handled through the Negotiation manager of ASG. 13
20 %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44:!"#$%&'() <1231/"23"89/2"I(/2J2: +,-.$/"0 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" <1231/"23"89/2"I(/2J2: <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++"!"#$!%&"'$(&)+') 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" +,-.$/"0 2(".4"23"8/)"89/2">46+2:" $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" 1/9(+9)"1/"23";,./4.-21(/: 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" &)+') $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" 1'23) /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" 4'5678)79( -:6;'6 1/9(+9)"1/"23";,./4.-21(/: &(/ E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" +,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" "89/2">46+2:" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: for each ADSL provider +.B4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: %44.7 ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2(".".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" 4'5678)79( K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: -:6;'6 -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: available? $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" ;,'1/.2 8,,(, Order from Check;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" Add to 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" least cost availability 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" yes provider list 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" <1231/"23"89/2"I(/2J2: provider -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: no ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." (,"9/2"3./)+1/7: ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: %6+21A+ I./-+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G (,"9/2"3./)+1/7: 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" <1231/"23"89/2"I(/2J2: %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" +,-.$/"0 $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" 1/9(+9)"1/"23";,./4.-21(/: '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" available? /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: "-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" Check Add to $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" availability K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" provider list $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" yes $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 1/9(+9)"1/"23";,./4.-21(/: 46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D no 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" -:6;'6 available? -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: /(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: Order from Check ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Add to."f6=g$,(-44"23.2"/)4h"<31-3"-.644"23"!"k1/c"14"."'-3./14'"0(,"-(//-21/7"23"/)"l>46+2m"(0"(/" least cost availability 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" yes provider list 4"$.,/2"$,(-44: $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," provider %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" )1-.24"23.2"."'44.7"14"4/2"2("." 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" no (,"9/2"3./)+1/7: /-+641(/"(0"23"$,(-44:.,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2:!"#$#%&' %6+21A+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23"!"#$%&'()!+,,-./0123"%'4556&'()76878%98: available? $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" )1-.24"23.2"."/.')"8,,(,"43(6+)"=" ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" (,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" Check Add to 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: /2J2: availability %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" yes provider list!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: (,"9/2"3./)+1/7: no 64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" ";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+",')1.2"89/2".22.-3)"2("23"F6=G '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: Figure 10: Multiple Instance pattern example and its composition 44.7"43(6+)"="4/2"2("./B"8/21214" 4.-21(/: So far all control flow requirements were requirements regarding the functionality of the composition compo- ++"1/)1-.2"23.2"."I('A/4.21(/"14" 'A/4.21(/"1)/2101,"<1++"2,177,"./" "<3/"23"$,(-44"14",(++1/7"=.-C: Req. 16: Composition Language supports workflow patterns (mandatory) 14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" 2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," "<1231/"23"4.'"A.,/2"$,(-44:"!";(C/" "89/2"<1++"1'')1.2+B"N6'A"2("124" nent. The actual output as an instance of the composition language is important as well. 2"F2.,2"(,"E/2,')1.2"89/2:!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: )1-.24"23.2".++" "1/"23"$,(-44" 2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" above-mentioned required workflow pattern. This can be achieved through a graph-structured or a "$,(-44"14"/))"<123(62"-('A/4.21(/",".,"'6+21A+"-(/456/-4"(0"/)1/7"23"!"#$%&'()!+,,-./0123"%'4556&'()76878%98: "<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" ".22,1=624"(0"23"8/)"89/2"<1++")01/" BA4"(0">46+24".AA+B: <=58>+?@:?98@);$#87 The basic requirement on the composition language regarding control flow is the support of the block-structured approach. In a graph-structured approach activities are vertices that are connected through edges that symbolise ordering constraints. In a block-structured approach structured activities exist that contain other activities and determine their enactment order. While a graph-structured approach is more generic, is a block-structured approach easier to visualise and reason about. Reasoning on process structures is for example necessary during negotiation to adhere to quality of service properties. In general it is best to support both approaches like WS-BPEL [12] does. The composition language should also support the patterns that cannot be composed automatically. This makes sense as automated composition can reuse manually modelled process fragments. Req. 17: Composition is block-structured (optional) Supporting structured activities in!"#$%&'()!+,,-./0123"%'4556&'()76878%98: the composition language does not mean that the composer outputs a block-structured result. Actually, service composition generates a partially-ordered set of services that can be represented as a graph. As already mentioned block-structuring has its advantages and should be preferred when possible. To have block-structured compositions, either the composition algorithm could support them directly or post-processing could be performed. The first approach is a new research area, so it is unclear whether it can be successful. Hierarchical-Task-Network planners [15, 4, 11] generate block-structured plans. But they do not actually generate block structures, but rather reuse them. Post-processing rises the problem of complexity. As shown in [2] reordering compositions subsequently can be as complex as composition itself. 14
21 4.3 Data Flow Requirements The data flow of composition 2(".4"23"8/)"89/2">46+2:" defines how data is exchanged between the service. Services have input and output parameters. Output parameters of one service can be the input for other services. Data 1'23) 4'5678)79( -:6;'6 flow requirements include for example the ability to exchange data and the usage of process input &(/ ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" data. The following four requirements 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" regarding data flow are all defined over activities instead of 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: services. This is valid as%44.7 the activities ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." represent invocations of services and the actual data exchange A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: is done between the activities. Req. 18: Activities exchange data (mandatory) The fundamental data flow requirement is I./-+ ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" the ability to exchange data. Exchanging <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" data between activities and therefore data flow is supported 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G in nearly all process meta-models $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" [3, 10]. Activities have formal parameters that are replaced by +,-.$/"0$,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" actual data when invoked. This data 1/9(+9)"1/"23";,./4.-21(/: can either be process input data or output from other activities. 3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" ("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" +(<"7(4"=.-C"2("124"$.,/2"$,(-44: 314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2(".".,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: 314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" /,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" 1231/"23"89/2"I(/2J2: 314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" 1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++",177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/",(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" /9(+9)"1/"23";,./4.-21(/: 314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" -44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" /2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: Attraction Booking scenario. The green rectangles are data elements that are exchanged between "K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/",(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," the activities. An arrow leading to a data element means that it is created by the originating activity. <("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/",,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" The customer coordinates are for example created by the customer localisation service. An arrow (,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2:!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: 314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" 3(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" 6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" the activity. For example, the coordinates are input to the route calculation service.,"9/2"3./)+1/7: 314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23",(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" 44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" 31-3"(0"23"(23,"2BA4"(0">46+24".AA+B:!"#$%&'() +,-.$/"0!"#$!%&"'$(&)+')!"#$%&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <1231/"23"89/2"I(/2J2: I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" +') /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C:,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" K1/C :PhoneNumber!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" :Coordinates :Route /2">46+2:" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 4"23"2BA4"(0">46+24"./)"23"7,.A31-.+"'.,C,"23.2"<1++"="64)"0(,".-3D 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" '5678)79( -:6;'6 -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: ;,'1/.2 %6+21A+ :Attraction ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Create route Locate 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" customer Calculate route description %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" (,"9/2"3./)+1/7: ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: :RouteDescription ;<=58>+?@:?98@);$#87 Figure 11: Data flow in the Attraction Booking Scenario Data flow is used in both use case scenarios. Figure 11 illustrates it for one composition from the leading from a data element to an activity symbolises that this data element is an input parameter for In workflow management, two different approaches to model data flow are in use. With the first approach all data is stored on the process level. Input parameters of activities are read from this central storage. Output parameters are stored in this central storage or as it is called blackboard. With the second approach, data actually flows between activities. Explicit data flow connectors connect the outputs of one activity with the input of another one. So the main difference is that in the first approach all data exchange must be done through the central storage. If the output of one activity is used by two other activities, it is still written only once to the storage and read twice. In the second approach two distinct data connectors exist. WS-BPEL uses the blackboard approach through process variables [12]. In contrast, Leymann and Roller [10] propose a metamodel, used in IBM MQSeries Workflow, that facilitates explicit data connectors. The flexibility!"#$%&'()!+,,-./0123"%'4556&'()76878%98: gained by the blackboard approach, stands in contrast to its harder to follow implicit data flow. This requirement and service composition in general are agnostic to the actual approach selected. 15
22 Req. 19: Activities use process input data (mandatory) Figure 11 shows the data flow for an example composition of the Attraction Booking Service. Certain data elements, like PhoneNumber and Attraction, are not produced by any activity. These data elements are part of the process data and are inputs for the process. Processes must have such data, and activities must be able to use them. Req. 20: Data exchange implies control flow (mandatory) Control flow embeds an ordering constraint between two activities if one activity depends on another one. Dependencies are for example causal links (e.g.: an activities creates the precondition of another one) or the protection of causal links. Causal links do not only exist on the level of semantic service descriptions, but also for input and output parameters. If one activity uses the output of another activity as an input a causal link between the two activities exist. Therefore an ordering constraint between the two activities must be included. :Coordinates implied control flow Locate customer Calculate route Figure 12: Control flow implied by data flow For example see Figure 12: Even if the customer localisation service and the route calculation service are not linked through preconditions and effects, it is necessary to add an ordering constraint between them as the route calculation service uses the coordinates created by the localisation service. Req. 21: Activities create new variables (mandatory) While this requirement sounds trivial and self-evident, it actually is not for automated planning. Activities create new variables, means that activities do not just write data into already defined variables, but they create variables on the fly. With automated planning this is normally not possible. All the variables that are usable during composition must be defined in advance. This includes also intermediate variables that are neither used in the input nor in the output. When retrieving a route description in the Attraction Booking scenario, a coordinates variable must be defined. This coordinates variable is never used in the input or the output. It is also not obvious why such a variable could be necessary. Hence, by adding this variable we are encoding assumptions about automatically created service composition into the service request. This is bad as it hampers flexibility. Other service compositions are possible that do not need this variable. Figure 13 shows such an example. If a combined localisation and route calculation service exists, the customer s coordinates are not necessary. Defining all necessary variables requires a lot of information about the available services and at least a rough idea on how the composition could look like. Therefore it is required here that activities can create new variables and that the service composer takes these into account. Req. 22: Scoping of process data (optional) Scoping introduces the concept of local variables. The advantage is that sub-processes can define their own variables without fearing to clash 16
23 ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" +,-.$/"0 1/9(+9)"1/"23";,./4.-21(/: I('A/4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" %&"'$(&)+') /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: %&"'()+,"-./")01/"23"-(/456/-"(0",.-31/7"./"8/)"89/2:";314"<1++"=",0,,)" K1/C!"K1/C"14"."'-3./14'"0(,"-(//-21/7"23"/)"L>46+2M"(0"(/" :PhoneNumber :Route "23"8/)"89/2">46+2:" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" 4'5678)79( -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2: -:6;'6 ;3"'()+,")(4"/(2")14A+.B"23"2BA"(0"89/2:"E2"14".+4("64)" ;,'1/.2 ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" Locate customer & Create route 2("43(<"23"/)"(0"."F6=G$,(-44"23.2"/)4H"<31-3"-.644"23" 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" Calculate route description 0+(<"7(4"=.-C"2("124"$.,/2"$,(-44: %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" ;314"2BA"(0"8/)"1/)1-.24"23.2"."'44.7"14"4/2"2("." (,"9/2"3./)+1/7: A.,21-1A./2".2"23"-(/-+641(/"(0"23"$,(-44: %6+21A+ ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <1231/"23"89/2"I(/2J2: ;314"2BA"(0"8/)"14"64)"<1231/".";,./4.-21(/"F6=G$,(-44:"E2" <1++"1/)1-.2"23.2"23";,./4.-21(/"43(6+)"="-./-++)"./)"<1++" 2,177,"."I./-+"E/2,')1.2"89/2".22.-3)"2("23"F6=G $,(-44"=(6/).,B:"E/".))121(/H"12"<1++"1/)1-.2"23.2".";,./4.-21(/" $,(2(-(+"I./-+"'44.7"43(6+)"="4/2"2("./B"8/21214" 1/9(+9)"1/"23";,./4.-21(/: 8,,(, ;314"2BA"(0"8/)"1/)1-.24"23.2"."/.')"8,,(,"43(6+)"=" 7/,.2):";314"8,,(,"<1++"="-.6732"=B"./"E/2,')1.2"89/2" <1231/"23"89/2"I(/2J2: I./-+ ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" :Attraction <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: :RouteDescription Figure 13: Data flow using combined localisation and route calculation service with variables defined in other sub-processes or in its super-process. As mentioned, the output of 4.21(/ ;314"2BA"(0"8/)"<1++"1/)1-.2"23.2"."I('A/4.21(/"14" /-44.,B:";3"I('A/4.21(/"1)/2101,"<1++"2,177,"./" E/2,')1.2"89/2"<3/"23"$,(-44"14",(++1/7"=.-C: composition is normally is partially ordered set of service invocations. As such a service composition is flat, scoping is not required. If service composition composes structured activities, scoping!"k1/c"14"."'-3./14'"0(,"-(//-21/7"23"/)"l>46+2m"(0"(/" $,(-44"2("23"42.,2"L;,177,M"(0"./(23,:";BA1-.++BH"234".," 2<("F6=G$,(-444"<1231/"23"4.'"A.,/2"$,(-44:"!";(C/".,,191/7".2"K1/C"8/)"89/2"<1++"1'')1.2+B"N6'A"2("124" of process data must be supported. -(,,4A(/)1/7"2.,72"F2.,2"(,"E/2,')1.2"89/2:!"#$#%&'!"#$%&'()!+,,-./0123"%'4556&'()76878%98: ;314"2BA"(0"8/)"1/)1-.24"23.2".++" "1/"23"$,(-44" 43(6+)"="1'')1.2+B"/)):";314"1/-+6)4".++"1/42./-4"(0" %6+21GE/42./-4:";3"$,(-44"14"/))"<123(62"-('A/4.21(/" (,"9/2"3./)+1/7: 4.4 Data Model Requirements ;314"'./4"23.2"23,".,"'6+21A+"-(/456/-4"(0"/)1/7"23" $,(-44:"!++"(0"23'"<1++"(--6,"L:7:H"23,"'1732"="'6+21A+" '44.74"4/2M:";3".22,1=624"(0"23"8/)"89/2"<1++")01/" <31-3"(0"23"(23,"2BA4"(0">46+24".AA+B: The data model defines how data elements are described. The data model is of importance for the service ;<=58>+?@:?98@);$#87 composition component, as it has to use data elements to replace the formal parameters with actual parameters. Req. 23: Data elements are typed (mandatory) Data elements are exchanged between services as parameters. To ensure that only valid data elements are passed as parameters it makes sense to type them. Besides predefined types, user-defined types are necessary as well. In the previous section we have seen that in the Attraction Booking scenario types like PhoneNumber, Coordinates, and!"#$%&'()!+,,-./0123"%'4556&'()76878%98: Route exist. By typing parameters we know for example what the localisation service requires as an input: Neither a string nor a number, but a phone number. But type-safety not only prevents service enactment from invoking services with wrong parameters, it also eases planning. In the initial state of the Get Route Description use case of the Attraction Booking scenario a phone number and an attraction is known. With typed data elements and parameters the service composer knows that it can only use the phone number as a parameter for the localisation service. So the composer can already eliminate half of the potential compositions. Later, when more data is available this reduction is even more drastical. Optionally if types are not needed a generic type (e.g.: Object) can be used. Req. 24: Data element types are defined in an ontology (mandatory) Service specifications are annotated semantically to allow automated service composition. Service specifications therefore include preconditions and effects. Both are modelled as logical expressions. To use input parameters, output parameters and variables in these logical expressions, the types of data elements are described in an ontology. An ontology defines concepts and their relations. Figure 14 shows the ontology of the Attraction Booking scenario modelled using the Unified Modelling Language. A concept can be a sub-concept 17
24 Route steps Coordinates longitude: Float latitude: Float location PhoneNumber countrycode: String areacode: String number: String Attraction name: String description: String RouteDescription Visual RouteDescription map: Image Textual RouteDescription text: String Figure 14: Extract from the Attraction Booking ontology of another concept (inheritance). Aggregation and composition relations can also exist between concepts. As the example shows all these different relations are necessary. As no mediation is supported, all concepts used in one scenario have to be defined in one ontology. A service provide is therefore required to use only these concepts to describe his services. Req. 25: Composer is aware of data element structure (mandatory) Besides having data elements with ontology-based types it is also necessary that the composer is aware of the internal structure of data elements described using an ontology. In the Attraction Booking scenario the composer must be aware of the fact that an attraction has a coordinate. Only then it is possible to express that the use case Get Route Description delivers a route to the attraction. To do so the composer has to not only understand function-free first-order logic but also Frame Logic [8]. Frame logic is an enhancement of first-order logic as it adds object-oriented concepts like object identity, inheritance and complex objects. An expression to model that we want to have a route that leads to the location of a given attraction looks like the following in Frame Logic: Attraction[location ALoc] Route[endCoordinates REnd] ALoc = REnd Req. 26: Data elements can be used to evaluate control flow conditions (mandatory) Requirement 13 above stated that the composer can compose alternative control flows. An alternative control flow can be the result of an Exclusive Choice or a Multiple Choice. Both have one incoming and multiple outgoing control threads. To decide which control threads are actually executed, conditions are assigned to the individual threads. In the Attraction Booking scenario alternative control flows are used to determine the payment type. In the Dynamic Supply Chain Management alternative control flows are necessary when the list of ADSL providers is generated. Based on the result of the availability check the provider is added to the list or not. In both cases conditions are necessary. In the Attraction Booking scenario it is the payment type. In Dynamic Supply Chain Management the result of the availability check. The condition is expressed over data elements. So the composer must be able to model such conditions. 18
25 Req. 27: External application data exists (optional) The data we have seen in both scenarios until now always was structured and rather small. In other scenarios unstructured, huge amounts of binary data are exchanged between services. One example is the E-Government scenario introduced in the deliverable D7-I.1 [13]. The goal of this scenario is to give people access to information about legislation in progress. The law texts can be rather large documents stored in a central repository. Such documents tend to be several megabytes of data large. Often it does not make sense to model this data as implied by the previous requirements. Instead of transferring them as message parts, it makes more sense to just send references to them and tread their internals as a black box [1]. The implication of having such application data is that this data cannot be used as control flow data to evaluate conditions at for example a Multiple Choice. The service composer can also only handle the document through the reference. It cannot look at its internal structure and reuse parts of it. The support for external application data is an optional requirement as it is not necessary in the scenarios. In exchange for reduced performance, it is in most cases possible to work without external application data even if large documents are transferred. 4.5 Quality Of Service Requirements The quality of service (QOS) requirements here are part of the functional requirements. They describe functionality that is needed to ensure quality of service properties for service compositions defined in a service request. The requirements on the representation of quality of service properties for service requests and service specifications is out of scope of this requirements analysis. They were already defined in Requirements Analysis on the ASG Service Specification Language [14]. Req. 28: Composition uses static quality of service properties (optional) Services have static and dynamic quality of service parameters. Static QOS properties define ranges or enumerations of possible values. The actual values are negotiated during run-time by the Negotiation Manager. For example, ordering an ADSL line in the Dynamic Supply Chain Management scenario costs a setup fee of 10 to 20 e. The actual value depends on the selected provider and on negotiated service level agreements. As negotiation takes place after service composition, the negotiated values cannot be used during service composition. Hence, only static values can be used. Despite their fixed values, it makes sense to use them. The service composer can select service with equivalent functionality based on quality of service properties. Negotiation gets the best prerequisites to negotiate optimal service level agreements. This requirement is optional as the process of composition, negotiation and enactment works without it, too. Req. 29: Composition fulfils quality of service properties from service request (optional) To use the quality of service properties to select the best service compositions, it is important to describe the relevant quality of service properties and their desired values in the service request. A service request in the Attraction Booking scenario could state that finding attractions costs at most 0.10 e. Accordingly, all services invoked can only cost 0.10 e. Then the service composer selects and composes service compositions according to these quality of service parameters. If the composer is able to find a composition that cost a maximum of 0.05 e, it is ensured that the Negotiation Manager is able to negotiate a valid service level agreement. If costs range between 19
26 0.05 eand 0.15 e, the composer cannot ensure that negotiation is successful. Depending on negotiation skills and external events (e.g.: high load on service, that leads to higher prices), no valid service level agreement may be negotiable. Finally if minimum costs are 0.15 enegotiation is unnecessary as it will fail. Therefore it makes sense for ASG platform that the service composer tries to fulfil quality of service properties using static values, as we can decide after composition whether negotiation makes sense. 20
27 5 Non-Functional Requirements In the previous section the functional requirements for the service composer have been elaborated. Non-functional requirements exist as well. These non-functional requirements are only nonfunctional requirements regarding the service composer and not non-functional properties of the composition result. Req. 30: Service composition language bases on WS-BPEL (mandatory) WS-BPEL [12] is a language for the modelling of web service compositions. WS-BPEL processes can be enacted automatically using a workflow engine. While WS-BPEL originated like most other WS- standards from industry efforts, recently a technical committee was founded at the OASIS to standardise WS-BPEL. As one of the goals of the ASG project is the use and enhancement of existing standards it is sensible to use a standardised language as the composition language. A further advantage is the wide-spread availability of workflow engines supporting WS-BPEL. This includes not only open source developments but also mature products. To strengthen the interoperability and reusability of the service composer, WS-BPEL should be supported. Req. 31: Services are specified using the ASG Service Specification Language (mandatory) In the deliverables D1.1-1 Requirements Analysis on the ASG Service Specification Language requirements regarding the service specification language in ASG were captured. These requirements are the basis for deliverable D1.1-3 where the service specification language will be elaborated. The service composer will use service specifications in this language to perform automated service composition. Req. 32: Service composition time must not exceed advantages from automation (mandatory) Automated service composition has the advantage of gained flexibility and potentially better service compositions. Service compositions are better according to quality of service properties like cost and time. Automating service composition only makes sense if the cost for automation are justified by its advantages. Figure 15 displays three situations. In the first situation a manually modelled service composition is used. Compared to the two other situations enactment time is rather high. But as the composition is modelled manually in advance, no additional composition time is needed unless changes (e.g.: available services) occur. In the two other situations automatically composed service compositions are used. The compositions take less enactment time, as an adjustment to the exact service request has been performed. But despite lower enactment time, automated service composition only makes sense in the situation displayed in the middle. Combined composition and enactment time is less than the original enactment time. In the last situation displayed, the combined duration is higher than the original enactment time. Here automated service composition does not give advantages for the quality of service property execution time. 21
28 manually modelled automatically composed enactment time time composition time Figure 15: Possible advantage of automated service composition Similar assessments must be performed in regard to other quality of service properties. While automated service composition reduces the costs for the enactment of individual compositions, it yields preceding costs for modelling ontologies and semantic service specifications. To ensure this requirement two different approaches are used simoultaneously. Firstly, we must ensure that automated composition has as few drawbacks as possible. Composition time and modelling efforts should be as low as possible. Secondly, we must assess the usage of automated service composition individually for new scenarios. For this purpose the possible advantages (e.g.: flexibility, reduced enactment time / cost) and disadvantages (e.g.: modelling cost, composition time) must be reviewed in the context of these scenarios. It should only be applied were it gives advantages. Req. 33: Flexible reaction to unexpected events (mandatory) The final requirement for the service composer is about possible reactions to unexpected events. Unexpected events are for example errors in service invocation, violation of non-functional properties. From a more general perspective unexpected events are not always bad. The addition of a new service that reduces enactment time is an example of a positive, yet unexpected, event 1. In general failure handling in workflow management and service composition is done through exception handling [10, 1]. An exception handler defines activities to perform in case of specific failures. This approach has two drawbacks. Firstly, it is inflexible. Failure handling is only possible if an exception handler for this failure is provided. Secondly, all these failure handlers are modelled manually. This leads to complex and hard to understand service specifications. To solve this problem of inflexible, manually modelled exception handlers one could compose these exception handlers automatically, too. But this leads to complex service compositions and works only if all possible exceptions are defined and described semantically. In ASG another approach is used. During composition exceptions are not taken into account. Instead a composition is created that only works if no exceptions happen (optimistic approach). If an exception happens, 1 Of course ÃÂt is not unexpected that services are registered. But the registration of a specific service with distinct functionality cannot be expected. 22
29 service enactment terminates enactment. It then hands the current enactment status over to a component called Mediated Replanning. This component uses the enactment status to create a new service request for which the composer creates a new composition. The new service request has the same goal as the original request. The initial state of the request is adjusted according to already invoked services. It must be ensured that still running service invocations are reflected in the new service request and composition. Therefore the initial state of the new service request incorporates the effects of the running invocations and the new composition contains the running invocations[16, 6]. The composer must support this concept, called re-composition. 23
30 6 Conclusion In this document we presented the requirements on the service composer in the ASG project. The requirements were derived and justified using scenarios developed by the work component C-7 Usability and Demonstration. All together 33 distinct requirements have been identified. This includes four general requirements like the automation of composition, 25 functional requirements and 4 non-functional requirements. Functional requirements have been categorised according to a predefined schema. The next steps after requirements analysis are the development of the service composition algorithm and language according to the defined requirements. Table 6 gives a summary of these requirements. 24
31 General Composition Requirements 1 Service Composition is automated mandatory 2 Service request describes the goal of composition mandatory 3 Service Composition according to service request mandatory 4 Information gathering services invocable during composition optional Functional Requirements Elements of Composition Requirements 5 Elements of composition are services interactions mandatory 6 Elements of composition are service compositions mandatory 7 Services have input and output parameters mandatory 8 Service functionality is described semantically mandatory 9 Services can have more than one precondition or effect mandatory 10 Services can have disjunctive preconditions mandatory 11 Services can have disjunctive effects mandatory Control Flow Requirements 12 Composition of sequential control flow mandatory 13 Composition of parallel control flow mandatory 14 Composition of alternative control flow mandatory 15 Composition of multiple instances of sub-compositions optional 16 Composition Language supports workflow patterns mandatory 17 Composition is block-structured optional Data Flow Requirements 18 Activities exchange data mandatory 19 Activities use process input data mandatory 20 Data exchange implies control flow mandatory 21 Activities create new variables mandatory 22 Scoping of process data optional Data Model Requirements 23 Data elements are typed mandatory 24 Data element types are defined in an ontology mandatory 25 Composer is aware of data element structure mandatory 26 Data elements can be used to evaluate control flow conditions mandatory 27 External Application data exists optional Quality of Service Requirements 28 Composition uses static non-functional properties optional 29 Composition fulfils quality of service properties from service request optional Non-functional Requirements 30 Service composition language bases on WS-BPEL mandatory 31 Services are specified using the ASG Service Specification Language 32 Service composition time must not exceed advantages from automation mandatory 33 Flexible reaction to unexpected events mandatory Table 1: Summary of Requirements 25
32 Bibliography [1] Gustavo Alonso, Fabio Casati, Harumi Kuno, and Vijay Machiraju. Web Services Concepts, Architectures and Applications. Data-Centric Systems and Applications. Springer, [2] Christer Bäckström. Computational aspects of reordering plans. Journal Of Artificial Intelligence, 9:99 137, [3] Bill Curtis, Marc I. Keller, and Jim Over. Process modeling. Communications of the ACM, 35(9):75 90, [4] Kutluhan Erol, James Handler, and Dana S. Nau. Semantics for hierarchical task-network planning. Technical Report CS-TR-3239, UMIACS-TR-94-31, ISR-TR-95-9, University Of Maryland, [5] Kutluhan Erol, Dana S. Nau, and V.S. Subrahamnian. Complexity, decidability and undecidability results for domain-independent planning: A detailed analysis. Technical Report CS-TR-2797, UMIACS-TR , SRC-TR-91-96, University Of Maryland, [6] Michal Gajewski, Harald Meyer, Mariusz Momotko, Hilmar Schuschel, and Mathias Weske. Dynamic failure recovery of generated workflows. In Proceedings of the 16th International Conference and Workshop on Database and Expert Systems Applications. IEEE Computer Society Press, [7] Malik Ghallab, Dana Lau, and Paolo Traverso. Automated Planning - theory and practice. Morgan Kaufmann, [8] Michael Kifer, Georg Lausen, and James Wu. Logical foundations of object-oriented and frame-based languages. Journal of the Association for Computing Machinery, 42(4): , [9] Ugur Kuter, Evren Sirin, Dana Nau, Bijan Parsia, and James Hendler. Information gathering during planning for web service composition. In Proceedings of the Third International Semantic Web Conference (ISWC), number 3298 in Lecture Notes of Computer Science. Springer, [10] Frank Leymann and Dieter Roller. Production Workflow: Concepts and Techniques. Prentice Hall, [11] Dana Nau, Tsz-Chiu Au, Okhtay Ilghami, Ugur Kuter, William Murdock, Dan Wu, and Fusun Yaman. Shop2: An htn planning system. Journal on Artificial Intelligence Research, 20: ,
33 [12] Organization for the Advancement of Structured Information Standards (OASIS). Web Services Business Process Execution Language (WS-BPEL), org/committees/tc_home.php?wg_abbrev=wsbpel. [13] Bernhard Peissl et al. ASG Based Scenarios in Telecommunications, Telematics and Enhanced Enterprise IT. Deliverable D7.I-1, NIWA Web Solutions, [14] Dumitru Roman et al. Requirements Analysis on the ASG Service Specification Language. Deliverable D1.1-1, DERI Innsbruck, [15] Earl Sacerdoti. The nonlinear structure of plans. In Proceedings of the International Joint Conference on Artificial Intelligence, pages , [16] Hilmar Schuschel and Mathias Weske. Triggering replanning in an integrated workflow planning and enactment system. In Proceedings of 8th East-European Conference on Advances in Databases and Information Systems, volume 3255 of Lecture Notes in Computer Science, pages Springer, [17] Mithun Sheshagiri. Automatic composition and invocation of semantic web services. Master s thesis, University of Maryland, [18] W.M.P. van der Aalst, A.H.M. ter Hofstede, B. Kiepuszewski, and A.P. Barros. Workflow patterns. Distributed and Parallel Databases, 14(3):5 51,
34 ISBN ISSN
Modeling and Enacting Complex Data Dependencies in Business Processes
Modeling and Enacting Complex Data Dependencies in Business Processes Andreas Meyer, Luise Pufahl, Dirk Fahland, Mathias Weske Technische Berichte Nr. 74 des Hasso-Plattner-Instituts für Softwaresystemtechnik
Data in Business Processes
Data in Business Processes Andreas Meyer, Sergey Smirnov, Mathias Weske Technische Berichte Nr. 50 des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam Technische Berichte
Efficient and Scalable Graph View Maintenance for Deductive Graph Databases based on Generalized Discrimination Networks
Efficient and Scalable Graph View Maintenance for Deductive Graph Databases based on Generalized Discrimination Networks Thomas Beyhl, Holger Giese Technische Berichte Nr. 99 des Hasso-Plattner-Instituts
Services supply chain management and organisational performance
Services supply chain management and organisational performance Irène Kilubi Services supply chain management and organisational performance An exploratory mixed-method investigation of service and manufacturing
Demonstrating WSMX: Least Cost Supply Management
Demonstrating WSMX: Least Cost Supply Management Eyal Oren 2, Alexander Wahler 1, Bernhard Schreder 1, Aleksandar Balaban 1, Michal Zaremba 2, and Maciej Zaremba 2 1 NIWA Web Solutions, Vienna, Austria
Proceedings of the Fall 2006 Workshop of the HPI Research School on Service-Oriented Systems Engineering
Proceedings of the Fall 2006 Workshop of the HPI Research School on Service-Oriented Systems Engineering Benjamin Hagedorn, Michael Schöbel, Matthias Uflacker, Flavius Copaciu, Nikola Milanovic Technische
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
The Workflow Management Coalition Specification Workflow Management Coalition Terminology & Glossary
The Workflow Management Coalition Specification Workflow Management Coalition Terminology & Glossary Workflow The automation of a business process, in whole or part, during which documents, information
Technische Berichte des Hasso-Plattner-Instituts
HASSO - PLATTNER - INSTITUT für Softwaresystemtechnik an der Universität Potsdam The Apache Modeling Project Bernhard Gröne, Andreas Knöpfel, Rudolf Kugel und Oliver Schmidt Technische Berichte des Hasso-Plattner-Instituts
Enriching Raw Events to Enable Process Intelligence Research Challenges
Enriching Raw Events to Enable Process Intelligence Research Challenges Nico Herzberg, Mathias Weske Technische Berichte Nr. 73 des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität
Technische Berichte Nr. 16. Fundamentals of Service-Oriented Engineering
Fundamentals of Service-Oriented Engineering Stefan Hüttenrauch, Uwe Kylau, Martin Grund, Tobias Queck, Anna Ploskonos, Torben Schreiter, Martin Breest, Sören Haubrock, Paul Bouché Technische Berichte
CONTEMPORARY SEMANTIC WEB SERVICE FRAMEWORKS: AN OVERVIEW AND COMPARISONS
CONTEMPORARY SEMANTIC WEB SERVICE FRAMEWORKS: AN OVERVIEW AND COMPARISONS Keyvan Mohebbi 1, Suhaimi Ibrahim 2, Norbik Bashah Idris 3 1 Faculty of Computer Science and Information Systems, Universiti Teknologi
Bank- und finanzwirtschaftliche Forschungen Band 395
Bank- und finanzwirtschaftliche Forschungen Band 395 Institut für schweizerisches Bankwesen der Universität Zürich Schweizerisches Institut für Banken und Finanzen an der Universität St. Gallen Florentina
Six Strategies for Building High Performance SOA Applications
Six Strategies for Building High Performance SOA Applications Uwe Breitenbücher, Oliver Kopp, Frank Leymann, Michael Reiter, Dieter Roller, and Tobias Unger University of Stuttgart, Institute of Architecture
Industrial Case Study on the Integration of SysML and AUTOSAR with Triple Graph Grammars
Industrial Case Study on the Integration of SysML and AUTOSAR with Triple Graph Grammars Holger Giese, Stephan Hildebrandt, Stefan Neumann, Sebastian Wätzoldt Technische Berichte Nr. 57 des Hasso-Plattner-Instituts
Proceedings of the 8 th Euro-Asia Conference on Environment and CSR: Tourism, MICE, Hospitality Management and Education Session (Part II)
Proceedings of the 8 th Euro-Asia Conference on Environment and CSR: Tourism, MICE, Hospitality Management and Education Session (Part II) Yanling Zhang (Ed.) Proceedings of the 8 th Euro-Asia Conference
An Architecture for Autonomic Web Service Process Planning
An Architecture for Autonomic Web Service Process Planning Colm Moore and Ming Xue Wang and Claus Pahl Dublin City University, School of Computing, Dublin 9, Ireland [email protected], [mwang
Pattern Matching for an Object-oriented and Dynamically Typed Programming Language
Pattern Matching for an Object-oriented and Dynamically Typed Programming Language Felix Geller, Robert Hirschfeld, Gilad Bracha Technische Berichte Nr. 36 des Hasso-Plattner-Instituts für Softwaresystemtechnik
Scientific versus Business Workflows
2 Scientific versus Business Workflows Roger Barga and Dennis Gannon The formal concept of a workflow has existed in the business world for a long time. An entire industry of tools and technology devoted
Global Trade Law. von Ulrich Magnus. 1. Auflage. Global Trade Law Magnus schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG
Global Trade Law International Business Law of the United Nations and UNIDROIT. Collection of UNCITRAL's and UNIDROIT's Conventions, Model Acts, Guides and Principles von Ulrich Magnus 1. Auflage Global
The SPES Methodology Modeling- and Analysis Techniques
The SPES Methodology Modeling- and Analysis Techniques Dr. Wolfgang Böhm Technische Universität München [email protected] Agenda SPES_XT Project Overview Some Basic Notions The SPES Methodology SPES_XT
UML TUTORIALS THE USE CASE MODEL
UML TUTORIALS THE USE CASE MODEL www.sparxsystems.com.au Sparx Systems 2004 Page 1/5 describes the proposed functionality of the new system. A Use Case represents a discrete unit of interaction between
A Service Modeling Approach with Business-Level Reusability and Extensibility
A Service Modeling Approach with Business-Level Reusability and Extensibility Jianwu Wang 1,2, Jian Yu 1, Yanbo Han 1 1 Institute of Computing Technology, Chinese Academy of Sciences, 100080, Beijing,
Leitlinien- Clearingbericht "Depression
Schriftenreihe Band 12 Leitlinien- Clearingbericht "Depression Leitlinien-Clearingverfahren von Bundesärztekammer und Kassenärztlicher Bundesvereinigung in Kooperation mit Deutscher Krankenhausgesellschaft
Modeling Collaborations in Self-Adaptive Systems of Systems: Terms, Characteristics, Requirements, and Scenarios
Modeling Collaborations in Self-Adaptive Systems of Systems: Terms, Characteristics, Requirements, and Scenarios Sebastian Wätzoldt, Holger Giese Technische Berichte Nr. 96 des Hasso-Plattner-Instituts
Institut für Parallele und Verteilte Systeme. Abteilung Anwendersoftware. Universität Stuttgart Universitätsstraße 38 D-70569 Stuttgart
Institut für Parallele und Verteilte Systeme Abteilung Anwendersoftware Universität Stuttgart Universitätsstraße 38 D-70569 Stuttgart Diplomarbeit Nr. 3243 Development and Evaluation of a Framework for
Introduction to Web Services
Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies
Dominik Kuropka* and Mathias Weske
102 Int. J. Business Process Integration and Management, Vol. 2, No. 2, 2007 Towards a service composition and enactment platform Dominik Kuropka* and Mathias Weske Business Process Technology, Hasso Plattner
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
Semantic Business Process Management
Arbeitsgruppe Lecture Semantic Business Process Management Prof. Dr. Adrian Paschke Corporate Semantic Web (AG-CSW) Institute for Computer Science, Freie Universitaet Berlin [email protected] http://www.inf.fu-berlin.de/groups/ag-csw/
Service Computing: Basics Monica Scannapieco
Service Computing: Basics Monica Scannapieco Generalities: Defining a Service Services are self-describing, open components that support rapid, low-cost composition of distributed applications. Since services
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter
CREDENTIALS & CERTIFICATIONS 2015
THE COMMUNITY FOR TECHNOLOGY LEADERS www.computer.org CREDENTIALS & CERTIFICATIONS 2015 KEYS TO PROFESSIONAL SUCCESS CONTENTS SWEBOK KNOWLEDGE AREA CERTIFICATES Software Requirements 3 Software Design
Service-Oriented Architecture and Software Engineering
-Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based
Enterprise Integration: operational models of business processes and workflow systems *
Enterprise Integration: operational models of business processes and workflow systems. 1 Enterprise Integration: operational models of business processes and workflow systems * G.Bruno 1, C.Reyneri 2 and
An ARIS-based Transformation Approach to Semantic Web Service Development
An ARIS-based Transformation Approach to Semantic Web Development Cheng-Leong Ang ϕ, Yuan Gu, Olga Sourina, and Robert Kheng Leng Gay Nanyang Technological University, Singapore [email protected] ϕ Abstract
How to start up a software business within a cloud computing environment
Thomas Buchegger How to start up a software business within a cloud computing environment An evaluation of aspects from a business development perspective Anchor Academic Publishing disseminate knowledge
Opportunities and Challenges in Software Engineering for the Next Generation Automotive
Opportunities and Challenges in Software Engineering for the Next Generation Automotive Cyber Physical Systems Electro Mobility Technische Universität München Institut für Informatik Cyber Physical Systems
Overview of major concepts in the service oriented extended OeBTO
Modelling business policies and behaviour based on extended Open edi Business Transaction Ontology (OeBTO) Introduction Model Driven Development (MDD) provides a basis for the alignment between business
A Framework for Software Product Line Engineering
Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product
NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0
NASCIO EA Development Tool-Kit Solution Architecture Version 3.0 October 2004 TABLE OF CONTENTS SOLUTION ARCHITECTURE...1 Introduction...1 Benefits...3 Link to Implementation Planning...4 Definitions...5
A standards-based approach to application integration
A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist [email protected] Copyright IBM Corporation 2005. All rights
Service Oriented Architecture (SOA) An Introduction
Oriented Architecture (SOA) An Introduction Application Evolution Time Oriented Applications Monolithic Applications Mainframe Client / Server Distributed Applications DCE/RPC CORBA DCOM EJB s Messages
HWZ Schriftenreihe für Betriebs- und Bildungsökonomie. Herausgegeben von HWZ Hochschule für Wirtschaft Zürich. Band 9
HWZ Schriftenreihe für Betriebs- und Bildungsökonomie Herausgegeben von HWZ Hochschule für Wirtschaft Zürich Band 9 Isabelle Kern The Suitability of Topic Maps Tools for Knowledge Creation with Stakeholders
Service Level Agreements based on Business Process Modeling
Service Level Agreements based on Business Process Modeling Holger Schmidt Munich Network Management Team University of Munich, Dept. of CS Oettingenstr. 67, 80538 Munich, Germany Email: [email protected]
Verifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
An Event Processing Platform for Business Process Management
An Event Processing Platform for Business Process Management Nico Herzberg, Andreas Meyer, and Mathias Weske Business Process Technology Group Hasso Plattner Institute at the University of Potsdam Potsdam,
A refined architecture for DRM
A refined architecture for DRM Koen Buyens Sam Michiels Wouter Joosen Report CW 450, June 2006 nkatholieke Universiteit Leuven Department of Computer Science Celestijnenlaan 200A B-3001 Heverlee (Belgium)
Service Oriented Architecture
Service Oriented Architecture Charlie Abela Department of Artificial Intelligence [email protected] Last Lecture Web Ontology Language Problems? CSA 3210 Service Oriented Architecture 2 Lecture Outline
IAAS CLOUD EXCHANGE WHITEPAPER
IAAS CLOUD EXCHANGE WHITEPAPER Whitepaper, July 2013 TABLE OF CONTENTS Abstract... 2 Introduction... 2 Challenges... 2 Decoupled architecture... 3 Support for different consumer business models... 3 Support
Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations
Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations Steen Brahe 1 and Behzad Bordbar 2 1 Danske Bank and IT University
Nr.: Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg
Nr.: Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg Nr.: Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg Impressum ( 5 TMG) Herausgeber: Otto-von-Guericke-Universität Magdeburg
Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach
Reusable Knowledge-based Components for Building Software Applications: A Knowledge Modelling Approach Martin Molina, Jose L. Sierra, Jose Cuena Department of Artificial Intelligence, Technical University
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:
Challenges and Opportunities for formal specifications in Service Oriented Architectures
ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute
Permanent Establishments in International Tax Law
Schriftenreihe zum Internationalen Steuerrecht Herausgegeben von Univ.-Prof. Dr. Michael Lang Band 29 Permanent Establishments in International Tax Law herausgegeben von Hans-Jörgen Aigner Mario Züger
SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS
SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) VERSION 2.1 SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS 1 TABLE OF CONTENTS INTRODUCTION... 3 About The Service-Oriented Modeling Framework
A Framework for the Semantics of Behavioral Contracts
A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK [email protected] Abstract. Contracts have proved a powerful concept
Applying SOA to OSS. for Telecommunications. IBM Software Group
IBM Software Group Applying SOA to OSS for Telecommunications Kevin Twardus Manager of Industry Architecture and Standards IBM Software Group Communications Sector IBM Corporation The Details of SOA depends
Andreas Cseh. Quantum Fading. Strategies for Leveraged & Inverse ETFs. Anchor Academic Publishing. disseminate knowledge
Andreas Cseh Quantum Fading Strategies for Leveraged & Inverse ETFs Anchor Academic Publishing disseminate knowledge Cseh, Andreas: Quantum Fading : Strategies for Leveraged & Inverse ETFs, Hamburg, Anchor
Semantic Description of Distributed Business Processes
Semantic Description of Distributed Business Processes Authors: S. Agarwal, S. Rudolph, A. Abecker Presenter: Veli Bicer FZI Forschungszentrum Informatik, Karlsruhe Outline Motivation Formalism for Modeling
On-demand Provisioning of Workflow Middleware and Services An Overview
On-demand Provisioning of Workflow Middleware and s An Overview University of Stuttgart Universitätsstr. 8 70569 Stuttgart Germany Karolina Vukojevic-Haupt, Florian Haupt, and Frank Leymann Institute of
Journal of Information Technology Management SIGNS OF IT SOLUTIONS FAILURE: REASONS AND A PROPOSED SOLUTION ABSTRACT
Journal of Information Technology Management ISSN #1042-1319 A Publication of the Association of Management SIGNS OF IT SOLUTIONS FAILURE: REASONS AND A PROPOSED SOLUTION MAJED ABUSAFIYA NEW MEXICO TECH
Intelligent Log Analyzer. André Restivo <[email protected]>
Intelligent Log Analyzer André Restivo 9th January 2003 Abstract Server Administrators often have to analyze server logs to find if something is wrong with their machines.
The Service Revolution software engineering without programming languages
The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)
Spreadsheet Programming:
Spreadsheet Programming: The New Paradigm in Rapid Application Development Contact: [email protected] www.knowledgedynamics.com Spreadsheet Programming: The New Paradigm in Rapid Application Development
SigMo Platform based approach for automation of workflows in large scale IT-Landscape. Tarmo Ploom 2/21/2014
SigMo Platform based approach for automation of workflows in large scale IT-Landscape 2/21/2014 Agenda Starting situation Problem Solution variants Friction of project based approach Platform approach
A terminology model approach for defining and managing statistical metadata
A terminology model approach for defining and managing statistical metadata Comments to : R. Karge (49) 30-6576 2791 mail [email protected] Content 1 Introduction... 4 2 Knowledge presentation...
Ontologies for Enterprise Integration
Ontologies for Enterprise Integration Mark S. Fox and Michael Gruninger Department of Industrial Engineering,University of Toronto, 4 Taddle Creek Road, Toronto, Ontario M5S 1A4 tel:1-416-978-6823 fax:1-416-971-1373
Aerospace Software Engineering
16.35 Aerospace Software Engineering Software Architecture The 4+1 view Patterns Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT Why Care About Software Architecture? An architecture provides a vehicle
Partners. In collaboration with: With the financial support of: European Union ESCEM
Partners In collaboration with: With the financial support of: Freie Universität Berlin Sciences Po Paris Université Libre de Bruxelles ESC Dijon, Burgundy School of Business University of Bergamo European
Fourth generation techniques (4GT)
Fourth generation techniques (4GT) The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common. Each enables the software engineer to specify some
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence
Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence Service Oriented Architecture SOA and Web Services John O Brien President and Executive Architect Zukeran Technologies
WebSphere Business Modeler
Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration
CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping
Service Oriented Architectures Using DoDAF1
1 Service Oriented Architectures Using DoDAF1 Huei-Wan Ang, Fatma Dandashi, Michael McFarren The Mitre Corporation The MITRE Corp. 7515 Colshire Dr. McLean, VA 22102 hwang(at)mitre.org, dandashi(at)mitre.org,
E-Learning as a Web Service
E-Learning as a Web Service Peter Westerkamp University of Münster Institut für Wirtschaftsinformatik Leonardo-Campus 3 D-48149 Münster, Germany [email protected] Abstract E-learning platforms and
Business Process Management and IT Architecture Design. The T case study. Dr. Jana Koehler Olaf Zimmermann IBM Zurich Research Laboratory
Business Process Management and IT Architecture Design The T case study Dr. Jana Koehler Olaf Zimmermann IBM Zurich Research Laboratory ZRL BIT at a Glance IBM Zurich Research Lab (ZRL), Rüschlikon/ZH
Run-time Variability Issues in Software Product Lines
Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, [email protected] 2 Dep.
