Practical Process Orchestration using
Eclipse SOA



      Dr. Dietmar Wolz



       Practical Process Orchestration usin...
Agenda




          Introduction
          Process Orchestration in Swordfish
          Sample scenario
          Ecl...
Agenda




          Introduction
          Process Orchestration in Swordfish
          Sample scenario
          Ecl...
What is Swordfish?



     Swordfish is the codename of the Eclipse SOA Runtime
      Framework Project (under the Runtim...
Swordfish builds upon proven open
source ESB technology, extending it
with enterprise features




                       ...
How to implement Services in
Swordfish?

     Swordfish is a framework – there's no single way to implement
      service...
Agenda




          Introduction
          Process Orchestration in Swordfish
          Sample scenario
          Ecl...
Composite Services in Swordfish




8             Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; m...
Why to use BPEL?


     Industry standard language for expressing business processes

     Business services can be desi...
BPEL features

  Parallel processing

  Delayed execution - persisting process state

  Concurrent/selective event proc...
Swordfish features (will be extended)

  Events / Monitoring
      The Swordfish Event API builds upon the OSGi EventAdm...
Dynamic Service Discovery




12           Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made ava...
Process-Tooling

                                                                            Service
                     ...
Swordfish-Tooling




14         Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available und...
BPEL Editor for Ganymede/Gallileo
- check the Swordfish Wiki
     http://wiki.eclipse.org/Swordfish_Documentation:_Installi...
BPEL – WSDL - PartnerLinks




                                       BPEL-Process
                            Partner    ...
Process Execution



                                                                                                     ...
Standard JBI deployment

                                             Inbound
        Swordfish/                         h...
Alternative deployment

                                         Inbound
                                       http-bindi...
Agenda




          Introduction
          Process Orchestration in Swordfish
          Sample scenario
          Ecl...
Flight Reservation Service Process




                              Reservation Service
                              BPE...
Flight Reservation Service WSDLs




                       invokes




22            Practical Process Orchestration usin...
Physical Endpoints are not specified
    in the Process Description




       Physical Endpoints are either
           ...
Agenda




          Introduction
          Process Orchestration in Swordfish
          Sample scenario
          Ecl...
The Reservation Process in the
             BPEL Editor




25              Practical Process Orchestration using Eclipse ...
The BPEL source view




26           Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made availabl...
The missing view


   missing: a (really) human
    readable process DSL

   Intalio developed such a
    DSL called Sim...
Import a WSDL




28      Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the ...
Receive the Process Parameters




29           Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; mad...
The providerRequest Variable




30            Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made...
The providerResponse Variable




31           Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made...
The consumerRequest Variable




32           Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made ...
The consumerResponse Variable




33           Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made...
The Inbound PartnerLink




34            Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made avai...
The Outbound PartnerLink




35           Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made avai...
Assigning Data




36      Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made available under the...
Invoke an External Web Service




37            Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; ma...
Deployment to Apache ODE




38          Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made avail...
Customizing ODE log output




39            Practical Process Orchestration using Eclipse SOA | © 2009 by SOPERA ; made a...
Debugging / Tracing service calls


         Tracing outgoing service calls using httptracer




40               Practic...
Agenda




          Introduction
          Process Orchestration in Swordfish
          Sample scenario
          Ecl...
Upcoming SlideShare
Loading in …5
×

Eclipse Con2009 Practical Process Orchestration

1,545 views

Published on

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.

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,545
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
77
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Eclipse Con2009 Practical Process Orchestration

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

×