More Related Content Similar to Eclipse Con2009 Practical Process Orchestration (20) Eclipse Con2009 Practical Process Orchestration1. Practical Process Orchestration using
Eclipse SOA
Dr. Dietmar Wolz
Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
2. Agenda
Introduction
Process Orchestration in Swordfish
Sample scenario
Eclipse BPEL Editor
Demo
2 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
3. 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
4. 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.
4 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
5. Swordfish builds upon proven open
source ESB technology, extending it
with enterprise features
.
5 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
6. 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.
6 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
7. Agenda
Introduction
Process Orchestration in Swordfish
Sample scenario
Eclipse BPEL Editor
Demo
7 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
8. Composite Services in Swordfish
8 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
9. 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
9 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
10. 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
10 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
11. 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
11 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
13. Process-Tooling
Service
Registry/
Service Discovery/
File System
WSDL Import
Eclipse BPEL
Editor
Deployment
Apache ODE
JBI Service Unit
13 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
14. Swordfish-Tooling
14 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
15. BPEL Editor for Ganymede/Gallileo
- check the Swordfish Wiki
http://wiki.eclipse.org/Swordfish_Documentation:_Installing_BPEL_Editor_in_Ganymede
15 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
16. BPEL – WSDL - PartnerLinks
BPEL-Process
Partner Partner
Service
Process
Link Link Provider
Consumer invokes
inbound outbound
calls
import
abstract abstract
WSDL WSDL
inbound outbound
16 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
17. Process Execution
Process
BPEL-Process
Execution
calls
Process
Consumer
invokes
Service
Provider
replies
17 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
18. Standard JBI deployment
Inbound
Swordfish/ http-binding
SMIX 4 JBI Service Unit
Apache ODE NMR
external internal
JBI Service Unit
endpoints endpoints
Outbound
http-binding
JBI Service Unit
18 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
19. Alternative deployment
Inbound
http-binding
Swordfish/
JBI Service Unit
SMIX 4
Apache ODE NMR
external internal
JBI Service Unit
endpoints endpoints
Swordfish
ServiceResolverInterceptor
19 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
20. Agenda
Introduction
Process Orchestration in Swordfish
Sample scenario
Eclipse BPEL Editor
Demo
20 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
21. Flight Reservation Service Process
Reservation Service
BPEL-Process
Partner Partner Reservation
Reservation
Storage
Link Link
Service
Service
invokes
Reservation Storage
Consumer calls
Provider
import
WSDL WSDL
Reservation Storage
21 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
22. Flight Reservation Service WSDLs
invokes
22 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
23. 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
23 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
24. Agenda
Introduction
Process Orchestration in Swordfish
Sample scenario
Eclipse BPEL Editor
Demo
24 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
25. The Reservation Process in the
BPEL Editor
25 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
26. The BPEL source view
26 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
27. 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
27 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
28. Import a WSDL
28 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
29. Receive the Process Parameters
29 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
34. The Inbound PartnerLink
34 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
35. The Outbound PartnerLink
35 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
36. Assigning Data
36 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
37. Invoke an External Web Service
37 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
38. Deployment to Apache ODE
38 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
39. Customizing ODE log output
39 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
40. Debugging / Tracing service calls
Tracing outgoing service calls using httptracer
40 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0
41. Agenda
Introduction
Process Orchestration in Swordfish
Sample scenario
Eclipse BPEL Editor
Demo
41 Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the EPL v1.0