Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
2
Context
Cluster/GridComputing Web Service
Orchestration
Bioinformaticse-Business
ProcessSupportSystems
ServiceOriented
Architectures
VisualProgramming
Languages
3
Gio WiederholdPeter WegnerStefano CeriCommunicationsof the ACMVolume 35 Issue 11 November 1992Pages: 89 - 99
4
Outline
1. A Language for Service Composition– Visual syntax– Process oriented
2. A System for Service Composition• Efficiency through compilation• Flexibility
5
How to model compositionTime
Space
ServiceOriented
Architectures ComponentBased
SoftwareEngineering
6
Web Servicesshould be composed with a
visualprogramming language
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!”
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
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)
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
11
What is glue?
ServiceA
Interface
ServiceB
Adapter Wrapper
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
13
What is glue?
ServiceA
Interface A
ServiceB
Interface B
Glue
14
What is glue?
ServiceA
ServiceB
T
ServiceServiceD
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
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
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
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
19
JOpera Visual Composition Example• Stock Quote Currency Conversion
StockQuotePrice
Service
CurrencyExchange
RateService
?
20
Web services are good, butnot enough
Composition should be orthogonal
from the component types
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
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?
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
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…
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
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)
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)
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
29
Data flow mapping
System
User
OutputInputParameters
Input M
apping
Output
Mapping
Service call
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
31
Example data flow mapping
tableconnection = jdbc://oracle/db…
query = SELECT PRICEFROM NASDAQ
WHERE SYMBOL=‘%symbol%’
System
resultsymbol
User
OutputInput
SQL
32
Processes – models of service composition – should be
compiled before they are executed
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
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
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
36
Kernel Architecture (Centralized)
SOAP
UN
IX
JAVA
…
Kernel
Navigator DispatcherProcessTemplate
Plugin
ProcessTemplate
Plugin
StateInformation
Storage
Event Queues
TaskExecutionScheduler
JVCLtoJavaCompiler API
37
Megaprogramming=~?
Service Composition
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
39
Available today
http://www.iks.ethz.ch/jopera
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