![Page 1: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/1.jpg)
1
A Flexible System for Visual Service Composition
Cesare PautassoInformation and Communication Systems Research Group
Department of Computer ScienceSwiss Federal Institute of Technology, Zurich (ETHZ)
[email protected]://www.iks.ethz.ch/jopera
30.4.4
![Page 2: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/2.jpg)
2
Context
Cluster/GridComputing Web Service
Orchestration
Bioinformaticse-Business
ProcessSupportSystems
ServiceOriented
Architectures
VisualProgramming
Languages
![Page 3: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/3.jpg)
3
Gio WiederholdPeter WegnerStefano CeriCommunicationsof the ACMVolume 35 Issue 11 November 1992Pages: 89 - 99
![Page 4: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/4.jpg)
4
Outline
1. A Language for Service Composition– Visual syntax– Process oriented
2. A System for Service Composition• Efficiency through compilation• Flexibility
![Page 5: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/5.jpg)
5
How to model compositionTime
Space
ServiceOriented
Architectures ComponentBased
SoftwareEngineering
![Page 6: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/6.jpg)
6
Web Servicesshould be composed with a
visualprogramming language
![Page 7: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/7.jpg)
7
Utilization
Jobs -Processors
Rejuvenation
Requests
Utilization
Jobs -Processors
Jobs -Processors
<!-- HelloWorld BPEL Process --><process name="HelloWorld"
targetNamespace="http://samples.cxdn.com" suppressJoinFailure="yes" xmlns:tns="http://samples.cxdn.com"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<!-- List of services participating in this BPEL process --> <partnerLinks>
<!--The 'client' role represents the requester of this service. It is used for callback. The location and correlation information associatedwith the client role are automatically set using WS-Addressing.--><partnerLink name="client"
partnerLinkType="tns:HelloWorld" myRole="HelloWorldService" partnerRole="HelloWorldRequester"
/></partnerLinks>
<!-- List of messages and XML documents used as part of this BPEL process -->
<variables><!-- Reference to the message passed as input during initiation --><variable name="input"
messageType="tns:initiateHelloWorldSoapRequest"/>
<!-- Reference to the message that will be sent back to the requestor during callback-->
<variable name="output"
print “hello world!”
![Page 8: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/8.jpg)
8
Utilization
Jobs -Processors
Rejuvenation
Requests
Utilization
Jobs -Processors
Jobs -Processors
Web Service Composition/XML• Many non visual standards (XML based)
for composition have been proposed:– BPEL4WS (XLANG/WSFL)– WS-Coordination/WSCL/WSCI– BPSS (ebXML)
• XML is great for interoperability between software systems, but not well suited for human programmers
• Most existing composition tools work directly or just above the XML
![Page 9: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/9.jpg)
9
How to program CompositionTraditional
ProgrammingLanguages(Java, C#)
XML-based(BPEL4WS+BPML)
Visual CompositionLanguages (JOpera)
Process Modeling Languages
(Workflow Systems)
Ad-hocLanguages
(XL)
Data Model-drivenLanguages
(WebML)
![Page 10: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/10.jpg)
10
Our Goals1. Glue language for Web Services
– Define an intuitive, graph-based, simplevisual composition language
– Use ad hoc constructs and extensions sparingly– Keep XML hidden at all times
2. Rapid, user-friendly development ofapplications composed of services
• Adapt mismatching service interfaces• Use (if possible) semantics to guide the user
![Page 11: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/11.jpg)
11
What is glue?
ServiceA
Interface
ServiceB
Adapter Wrapper
![Page 12: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/12.jpg)
12
Wrappers and Adapters• Extend an existing component
– Adapt the interface to a different protocol– Change the data representation format– Switch between synch/a-synch invocation– Increase Security (Access Control, Client
Authentication, Encryption)– Synchronize Access (Locking)
• In most cases, the original component is not modified when it is wrapped
![Page 13: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/13.jpg)
13
What is glue?
ServiceA
Interface A
ServiceB
Interface B
Glue
![Page 14: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/14.jpg)
14
What is glue?
ServiceA
ServiceB
T
ServiceServiceD
![Page 15: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/15.jpg)
15
Utilization
Jobs -Processors
Rejuvenation
Requests
Utilization
Jobs -Processors
Jobs -Processors
A Web service
n resultFactorial
Part of the Request Message
Part of the Response Message
ServiceOperation
• A Web service involves the execution of some operation which may require some input data parameters and may produce some output result
![Page 16: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/16.jpg)
16
QueryBookPrice
Utilization
Jobs -Processors
Rejuvenation
Requests
Utilization
Jobs -Processors
Jobs -Processors
JOpera Visual Composition Language
• Data Flow • Control Flow
• Web Services are composed using aProcess, defined by two separate graphs:
isbn
price
QueryBookPrice
amount
amountCurrencyConvert
CurrencyConvert
Exception Handler
![Page 17: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/17.jpg)
17
JOpera Visual Composition Language• Processes model service composition• Data flow based visual language• Explicit control flow (conditions, exceptions)• Nesting and recursion with sub-processes• Iteration and recursion
– Split/Merge operators for list-based loops(parallel or sequential)
• Reflection (dynamic late binding)• Visual adaptation of mismatching interfaces
![Page 18: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/18.jpg)
18
Process Development Life Cycle1. Select components from a library:
• (Legacy?) UNIX Applications• Web Services (Import a WSDL description)• Reuse other existing processes• Java scripts (more…)
2. Build a Process by visually connecting the parameters of the selected components
3. Run and Monitor the Process' execution4. Test, Debug, and Modify the Process5. Publish the Process as Web Service
![Page 19: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/19.jpg)
19
JOpera Visual Composition Example• Stock Quote Currency Conversion
StockQuotePrice
Service
CurrencyExchange
RateService
?
![Page 20: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/20.jpg)
20
Web services are good, butnot enough
Composition should be orthogonal
from the component types
![Page 21: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/21.jpg)
21
Benefits of Web services• W3C standards• Programming Language neutral• Platform independent• Distributed software components can
interoperate (.NET talks with Java)• The infrastructure provides a lot of
automatic support for basic tasks• Foundation of the Semantic Web
![Page 22: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/22.jpg)
22
Problems of composing only WS• Web Services are coarse-grained
– Try to multiply two numbers through a WS…• Existing components must be wrapped as
a Web Service– Wrapping imposes both a performance
penalty and additional development costs• Adaptation between mismatching services
is also a service?
![Page 23: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/23.jpg)
23
Service Type ClassificationWeb Services are one among many types of services that can be composed with JOpera
Invocation overhead
Feat
ures Coarse
grained
Finegrained
Web Services
![Page 24: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/24.jpg)
24
Types of Services• Web Services (WSDL/SOAP)• Java Classes (EJB, RMI) and scripts• UNIX/Windows Shell Commands (Pipes)• JOpera Processes• XML Transformations (X-Path, XSLT)• Asynchronous Messaging (JMS)• Database Queries (PL/SQL)• Grid Services and Cluster job submissions• CORBA, DCOM, .NET, CICS• Add your own…
![Page 25: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/25.jpg)
25
Why many service types?• The user can choose (or add) the most
appropriate type of component:– Access Protocols and Mechanisms,
Functionality, Performance, Reliability, Security, Convenience, Ease of use
• The composition language is simpler – Many constructs can be moved from the
language to the component model• The composition language can be
applied to many different domains
![Page 26: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/26.jpg)
26
Service Invocation Overhead
0 0.5 1 1.5 2 2.5 3 3.5
SOAP/WS
SOAP/A12
SOAP/A11
PYTHON
JVM
MSG
JAVA
OPERA
JS
Com
pone
nt ty
pe
Time (seconds)
![Page 27: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/27.jpg)
27
Service Invocation Overhead
0.001 0.01 0.1 1 10
SOAP/WS
SOAP/A12
SOAP/A11
PYTHON
JVM
MSG
JAVA
OPERA
JS
Com
pone
nt ty
pe
Time (seconds)
![Page 28: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/28.jpg)
28
How to model types of services• System Parameters
– Describe and control the service invocation and its result
• Control flow– Start, Finish, Suspend, Resume, Kill– Immediate, synchronous, asynchronous– Scheduling among alternative providers
• Data flow mapping• Failure detection
![Page 29: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/29.jpg)
29
Data flow mapping
System
User
OutputInputParameters
Input M
apping
Output
Mapping
Service call
![Page 30: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/30.jpg)
30
Example data flow mapping
soapoutwsdl = http://www…
service = NASDAQ
operation = getSymbol
port = SOAP/HTTP
soapin = <soap-body…<symbol>%symbol%</symbol>
System
resultsymbol
User
OutputInput
SOAP
![Page 31: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/31.jpg)
31
Example data flow mapping
tableconnection = jdbc://oracle/db…
query = SELECT PRICEFROM NASDAQ
WHERE SYMBOL=‘%symbol%’
System
resultsymbol
User
OutputInput
SQL
![Page 32: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/32.jpg)
32
Processes – models of service composition – should be
compiled before they are executed
![Page 33: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/33.jpg)
33
Process CompilationProcess based service composition tools will
not gain a widespread acceptance if they cannot deliver a level of performance
comparable to traditional programming languages.
InterpretedExecution
of Processes
Executionof Compiled
Processes
![Page 34: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/34.jpg)
34
Architecture
Flexible Process ExecutionKernel
Process Monitoring ServicesAPI
Visual Process Development Environment
GUI
JVCL to JavaCompiler
HTML/SOAPInterface
Web
Applications, Web Services, Components…Service Invocation Adapters
1
23
![Page 35: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/35.jpg)
35
Flexibility• Support for many types of services
– Open component model– Adapters can be plugged in
• The same kernel architecture can be deployed in different configurations:
– Adapt to required quality of service• Scalability• Reliability
– Embedded or stand-alone process engine
![Page 36: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/36.jpg)
36
Kernel Architecture (Centralized)
SOAP
UN
IX
JAVA
…
Kernel
Navigator DispatcherProcessTemplate
Plugin
ProcessTemplate
Plugin
StateInformation
Storage
Event Queues
TaskExecutionScheduler
JVCLtoJavaCompiler API
![Page 37: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/37.jpg)
37
Megaprogramming=~?
Service Composition
![Page 38: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/38.jpg)
38
Conclusions• (Web) services are composed using a
visual programming language• Web services are good, but not enough:
composition is done at the service interface level, across component models
• Processes modeling service composition are compiled before they are executed
![Page 39: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/39.jpg)
39
Available today
http://www.iks.ethz.ch/jopera
![Page 40: A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus Utilizaion Jobs-Prce J Web Service Composition/XML • Many non visual standards (XML based)](https://reader034.vdocuments.site/reader034/viewer/2022050405/5f8210076142a37d4d197495/html5/thumbnails/40.jpg)
40
References
• G. Alonso, W. Bausch, C. Pautasso, A. Kahn, M. Hallett. Dependable Computing in Virtual Laboratories In: Proc. of the 17th International Conference on Data Engineering (ICDE2001), Heidelberg, Germany, April 2001.
• W. Bausch, C. Pautasso, R. Schaeppi, G. Alonso. BioOpera: Cluster-Aware Computing In: Proc. of the 4th IEEE International Conference on Cluster Computing, Chicago, USA, September 2002.
• W. Bausch, C. Pautasso, G. Alonso Programming for Dependability in a service-Based Grid In: Proc. of the 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid), Tokyo, Japan, May 2003.
• C. Pautasso, G. Alonso Visual Composition of Web Services In: Proc of the 2003 Symposia on Human Centric Computing Languages and Environments (HCC 2003), Auckland, New Zealand, Oct 2003.
• http://www.iks.ethz.ch/jopera