Eclipse Con2009 Practical Process Orchestration
-
Upload
dietmar-schmidt -
Category
Technology
-
view
1.262 -
download
2
description
Transcript of 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
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
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
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.
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
.
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.
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
8 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Composite Services in Swordfish
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
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
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
12 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Dynamic Service Discovery
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
14 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Swordfish-Tooling
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
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
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
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
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
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
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
22 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Flight Reservation Service WSDLs
invokes
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
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
25 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The Reservation Process in the BPEL Editor
26 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The BPEL source view
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
28 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Import a WSDL
29 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Receive the Process Parameters
30 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The providerRequest Variable
31 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The providerResponse Variable
32 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The consumerRequest Variable
33 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The consumerResponse Variable
34 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The Inbound PartnerLink
35 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
The Outbound PartnerLink
36 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Assigning Data
37 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Invoke an External Web Service
38 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Deployment to Apache ODE
39 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
Customizing ODE log output
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
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