Eclipse Con2009 Practical Process Orchestration

41
Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0 Practical Process Orchestration using Eclipse SOA Dr. Dietmar Wolz

description

The Business Process Execution Language for Web Services (BPEL) is frequently used to implement business processes on a technical level. BPEL allows describing long-running workflows using graphical editors to present workflows on human-friendly diagrams. Recently open source implementations like the Orchestration Director Engine (ODE) developed from the Apache Foundation and the Eclipse BPEL project have reached a maturity level which enables their use in a productive environment.Advanced integration features like dynamic endpoint resolution or policy driven configuration require a SOA runtime framework. We present the integration of ODE and the Eclipse BPEL editor with Eclipse Swordfish. Our extensions to the eclipse BPEL editor support the whole process development cycle including both visual and textual process design, deployment and testing. Web service meta data can be imported from the Swordfish service registry, orchestrated services can directly be registered as service providers and used by other services. Sample projects and wizards reduce the required familiarization effort.

Transcript of Eclipse Con2009 Practical Process Orchestration

Page 1: Eclipse Con2009 Practical Process Orchestration

Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Practical Process Orchestration using Eclipse SOA

Dr. Dietmar Wolz

Page 2: Eclipse Con2009 Practical Process Orchestration

2 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Agenda

Introduction

Process Orchestration in Swordfish

Sample scenario

Eclipse BPEL Editor

Demo

Page 3: Eclipse Con2009 Practical Process Orchestration

3 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Agenda

Introduction

Process Orchestration in Swordfish

Sample scenario

Eclipse BPEL Editor

Demo

Page 4: Eclipse Con2009 Practical Process Orchestration

4 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

What is Swordfish?

Swordfish is the codename of the Eclipse SOA Runtime Framework Project (under the Runtime top level project)

Mission: Create a flexible and modular SOA runtime framework that can be complemented by other components – both open source and commercial – to create a full-fledged Enterprise Service Bus.

Swordfish builds upon existing proven open source SOA technology and extends it with enterprise features such as service registry integration, remote configuration and monitoring capabilities.

Page 5: Eclipse Con2009 Practical Process Orchestration

5 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Swordfish builds upon proven open source ESB technology, extending it with enterprise features

.

Page 6: Eclipse Con2009 Practical Process Orchestration

6 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

How to implement Services in Swordfish?

Swordfish is a framework – there's no single way to implement services with Swordfish

The options currently available include: BPEL (requires the Apache ODE BPEL Engine to be installed as a plugin)

Java using JAX-WS (requires Apache CXF to be installed as a plugin)

Java using low-level JBI APIs

Swordfish is based on Equinox, so everything you deploy into Swordfish must be packaged into an OSGi bundle.

Page 7: Eclipse Con2009 Practical Process Orchestration

7 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Agenda

Introduction

Process Orchestration in Swordfish

Sample scenario

Eclipse BPEL Editor

Demo

Page 8: Eclipse Con2009 Practical Process Orchestration

8 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Composite Services in Swordfish

Page 9: Eclipse Con2009 Practical Process Orchestration

9 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Why to use BPEL?

Industry standard language for expressing business processes

Business services can be designed to be process-agnostic

The BPEL process manages and coordinates the state

Designed to fit naturally into the Web services stack

Uses and extends WSDL 1.1

Expressed entirely in XML

Provides and consumes Web services in an abstract way, using WSDL to define service interfaces

Page 10: Eclipse Con2009 Practical Process Orchestration

10 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

BPEL features

Parallel processing

Delayed execution - persisting process state

Concurrent/selective event processing

Asynchronous execution

Message correlation

Data manipulation - XPath based

Data validation

Scoped error handling / compensation handlers

Dynamic Endpoint Resolution

Extendable - for example XSLT transformations

Page 11: Eclipse Con2009 Practical Process Orchestration

11 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Swordfish features (will be extended)

Events / Monitoring The Swordfish Event API builds upon the OSGi EventAdmin Service

Configuration (local/remotely) The Configuration API builds upon the OSGi ConfigurationAdmin service

A ConfigurationAgent receives configurations from a ConfigurationSource (possibly a remote one) and provides them to other components through the OSGi Configuration Admin service

A component that implements ConfigurationConsumer receives updated configurations as they become available

Dynamic Endpoint Resolution / Service Discovery The Service Resolver API builds upon the general interceptor API

The ServiceResolverInterceptor is reponsible for translating the (logical) service interface name carried inside a message exchange into a physical endpoint

Page 12: Eclipse Con2009 Practical Process Orchestration

12 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Dynamic Service Discovery

Page 13: Eclipse Con2009 Practical Process Orchestration

13 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Process-Tooling

Eclipse BPELEditor

Apache ODEJBI Service Unit

ServiceRegistry/

File SystemService Discovery/

WSDL Import

Deployment

Page 14: Eclipse Con2009 Practical Process Orchestration

14 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Swordfish-Tooling

Page 15: Eclipse Con2009 Practical Process Orchestration

15 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

BPEL Editor for Ganymede/Gallileo- check the Swordfish Wiki

http://wiki.eclipse.org/Swordfish_Documentation:_Installing_BPEL_Editor_in_Ganymede

Page 16: Eclipse Con2009 Practical Process Orchestration

16 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

BPEL – WSDL - PartnerLinks

BPEL-Process

abstractWSDLinbound

abstractWSDLoutbound

PartnerLinkinbound

PartnerLinkoutbound

import

ProcessConsumer

ServiceProviderinvokescalls

Page 17: Eclipse Con2009 Practical Process Orchestration

17 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Process Execution

ProcessConsumer

ServiceProvider

invokes

calls

BPEL-Process

replies

ProcessExecution

Page 18: Eclipse Con2009 Practical Process Orchestration

18 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Standard JBI deployment

Inboundhttp-binding

JBI Service Unit

NMRinternal

endpoints

Apache ODEJBI Service Unit

Outboundhttp-binding

JBI Service Unit

externalendpoints

Swordfish/SMIX 4

Page 19: Eclipse Con2009 Practical Process Orchestration

19 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Alternative deployment

Inboundhttp-binding

JBI Service Unit

NMRinternal

endpoints

Apache ODEJBI Service Unit

SwordfishServiceResolverInterceptor

externalendpoints

Swordfish/SMIX 4

Page 20: Eclipse Con2009 Practical Process Orchestration

20 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Agenda

Introduction

Process Orchestration in Swordfish

Sample scenario

Eclipse BPEL Editor

Demo

Page 21: Eclipse Con2009 Practical Process Orchestration

21 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Flight Reservation Service Process

Reservation ServiceBPEL-Process

WSDLReservation

WSDLStorage

PartnerLinkReservation

PartnerLinkStorage

import

ReservationServiceConsumer

ReservationStorageServiceProvider

invokescalls

Page 22: Eclipse Con2009 Practical Process Orchestration

22 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Flight Reservation Service WSDLs

invokes

Page 23: Eclipse Con2009 Practical Process Orchestration

23 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Physical Endpoints are not specified in the Process Description

Physical Endpoints are either defined in the http-binding SU or are provided dynamically by the

Swordfish Service Resolver Interceptor

Page 24: Eclipse Con2009 Practical Process Orchestration

24 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Agenda

Introduction

Process Orchestration in Swordfish

Sample scenario

Eclipse BPEL Editor

Demo

Page 25: Eclipse Con2009 Practical Process Orchestration

25 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The Reservation Process in the BPEL Editor

Page 26: Eclipse Con2009 Practical Process Orchestration

26 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The BPEL source view

Page 27: Eclipse Con2009 Practical Process Orchestration

27 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The missing view

missing: a (really) human readable process DSL

Intalio developed such a DSL called SimPEL

a SimPEL compiler translates SimPEL code into BPEL

Disadvantage: textual representation is not standardized

Page 28: Eclipse Con2009 Practical Process Orchestration

28 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Import a WSDL

Page 29: Eclipse Con2009 Practical Process Orchestration

29 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Receive the Process Parameters

Page 30: Eclipse Con2009 Practical Process Orchestration

30 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The providerRequest Variable

Page 31: Eclipse Con2009 Practical Process Orchestration

31 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The providerResponse Variable

Page 32: Eclipse Con2009 Practical Process Orchestration

32 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The consumerRequest Variable

Page 33: Eclipse Con2009 Practical Process Orchestration

33 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The consumerResponse Variable

Page 34: Eclipse Con2009 Practical Process Orchestration

34 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The Inbound PartnerLink

Page 35: Eclipse Con2009 Practical Process Orchestration

35 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

The Outbound PartnerLink

Page 36: Eclipse Con2009 Practical Process Orchestration

36 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Assigning Data

Page 37: Eclipse Con2009 Practical Process Orchestration

37 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Invoke an External Web Service

Page 38: Eclipse Con2009 Practical Process Orchestration

38 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Deployment to Apache ODE

Page 39: Eclipse Con2009 Practical Process Orchestration

39 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Customizing ODE log output

Page 40: Eclipse Con2009 Practical Process Orchestration

40 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Debugging / Tracing service calls

Tracing outgoing service calls using httptracer

Page 41: Eclipse Con2009 Practical Process Orchestration

41 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0

Agenda

Introduction

Process Orchestration in Swordfish

Sample scenario

Eclipse BPEL Editor

Demo