A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus...

40
1 A Flexible System for Visual Service Composition Cesare Pautasso Information and Communication Systems Research Group Department of Computer Science Swiss Federal Institute of Technology, Zurich (ETHZ) [email protected] http://www.iks.ethz.ch/jopera 30.4.4

Transcript of A Flexible System for Visual Service Composition · 8 Utilizaion Jobs-Prce Rejuvnatio Rqus...

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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