Web Service Composition mit WS-BPEL und dem Open-Source-Orchester Tammo van Lessen  Daniel Lübke  Simon Moser
About us Tammo van Lessen SOA/BPM consultant Committer & PMC Member @ Apache ODE Member of the BPMN 2.0 FTF at OMG (representing Intalio, Inc.) Simon Moser Software Architect @ IBM Co-lead of the BPEL Designer Project  Member of the WS-BPEL Technical Committee at OASIS Daniel Lübke Senior Consultant @ innoQ Schweiz Architect in MDA & SOA Projects BPELUnit Maintainer
The Talk Today Motivation & Background WS-BPEL Concepts Extensions BPEL Open Source Orchestra Eclipse BPEL Designer BPELUnit Apache ODE Demo
BPEL Background & Motivation
The Base: Service Platform Messaging Quality  of Service Transport Description Transports Interface + Bindings Composite XML Non-XML Security Policy Discovery, Negotiation, Agreement Atomic Orchestration Protocols State Components Reliable Messaging Transactions
The Base: Web Services Messaging Quality  of Service Transport Description HTTP, SMTP, XMPP, TCP/IP, FTP, Tuple Spaces,… WSDL Composite SOAP, WS-A JMS, RMI/IIOP WS-Security* WS-Policy* UDDI, WS-A, WS-MEX, WSIL Atomic BPEL WS-C, WS-CDL,  BPEL4Chor WSRF Components WSRM WS-AT, WS-BA,…
Why Orchestration? ??? To achieve a business goal, you often need more than one service… Which to use, in which order, how to use them?
Web Service Orchestration BPEL!
What is BPEL? Business Process Execution Language, since  4/07 OASIS Standard High-level programming language Recursive Model BPEL has native support for Long running processes Scalability Concurrency Message and instance correlation Fault handling Compensation based recovery Phoenix behaviour Most important: BPEL is standard and supported by most important vendors. Defined Execution Semantics Abstract Processes (protocols, “views” on internal processes)
What is BPEL not? “ BPEL is block-structured only and therefore not usable for business users” “ BPEL does not support multiple transport protocols” Look at WSDL “ BPEL interactions are only synchronous” Look at WSDL “ Look at this ugly XML, business people won’t understand this cumbersome stuff” Not meant to be hand-written, use tools! BPEL is not a modeling notation
BPEL’s Foundation Web Services WSDL 1.1 – abstract part (concrete part    ESB) (SOAP) (WS-Addressing) Flow Control Block structured (nested blocks) Graph-based flows (using <flow>) Data Model W3C XML Schema 1.0 XML InfoSet XPath 1.0 XSLT 1.0
BPEL 2.0 Activities compensateScope compensate Basic Activities Structured Activities receive reply invoke assign validate throw rethrow exit wait empty extensionActivity forEach sequence 2. N. 1. … flow B C A while c repeatUntil c if-elseif-else c1 c2 … 2. N. 1. … pick … A M2 M1 scope
Partner Links / Partner Link Types process partner link partner link type Peer-to-peer conversational partner relationship “ I expect from my partner  an implementation of this!” Define “contract channels” between partners -  Key concept to enable asynchronous messaging! WSDL port type myRole Provided port type WSDL port type partnerRole Required port type receive Inbound request – service provided by the process invoke Outbound request – service required by the process
Properties and Correlation Sets How to identify stateful instances via stateless WS interfaces? A process instance is assigned one or more keys Business data is used as key, e.g., customerID A key can be compound, e.g., (customerID, orderNumber) WS-BPEL calls a key a correlation set – it is used to correlate an incoming message with a process instance Process 4 (0123,15) Process 3 (0815,42) Process 2 (4711,37) Process 1 (0815,12) 0815 42 Message 2 customerID orderNumber 4711 37 Message 1
Fault Handling & Compensation Fault Handling Like in Java, enables alternative execution paths Can trigger compensation Compensation ACID Transactions are not applicable when dealing with long running processes Compensation-based recovery Compensation Handler can reverse the work performed by an already completed scope Compensation Handler is “installed” after successful execution of a scope Compensation can only be triggered by fault/compensation/termination handler of the enclosing scope
Fault and Compensation Handling
Modelling Styles Block structured modelling Nesting of structured activities Use of  <flow>  activity for parallelism Graph based modelling <flow>  activity with links Transition conditions & join conditions Dead-Path-Elimination Acyclic graph to ensure sound execution semantics Loops can be realized with  <while>  /  <repeatUntil>  /  <forEach> Not supported by Sun & Oracle! t 1 t 2 j
Modeling Styles: Example
BPEL4People/WS-HT Support for Human Tasks Standardization Committed at OASIS currently being formed BPEL-SPE Support for sub-processes Autonomy is key BPELJ Use Java in BPEL Activities Use Java types in BPEL BPEL4SWS Support for Semantic Web Services (Service Discovery) Data Mediation BPEL light WSDL-less BPEL Is about message exchanges BPEL JS/E4X Use JavaScript/E4X for variable assignments BPEL Extensions
BPEL Open Source Orchestra
Eclipse BPEL Designer BPEL 2.0 Design Tool … …  all standard activities are supported  No full support of extensibility mechanisms  Partial support of abstract BPEL BPEL 2.0 Validator included Synchronized graphical & XML modelling mode Prototypical graphical process compare
BPELUnit BPELUnit is a test framework like JUnit is for Java http://www.bpelunit.net Supports BPEL specifics: Web service mocking Transparent (un-)deployment Test Coverage calculation Most functionality independent of BPEL Engine Front-ends for Eclipse, Ant, and command-line
Testing Testing is the  execution  of a program  with the  intend to find defects find defects also means: systematically in a repeatable way in our case: automate it! Simulation is  not  Testing Testing also includes the application server, JVM, BPEL Engine, Database configuration, ... Simulation uses another &quot;target engine&quot;
Test Structure BPEL BPELUnit Real Services deploy <soap> <soap> <soap> <soap> Client Mock A Mock B <soap> undeploy Eclipse Ant Command Line Deployer (optional)
BPEL Execution: Apache ODE BPEL 1.1 and 2.0 supported Fast and scalable process engine Modular design & embeddable 3 deployment targets supported Web container (Axis2) JBI (ServiceMix) SCA (Tuscany) Implicit Message Correlation XPath 1.0 & 2.0, XQuery Management and Auditing Backed by Intalio & Red Hat
Tammo van Lessen (IAAS, Uni Stuttgart) & Simon Moser (IBM) Demo
Demo schedule Open & Explain Fahrschulservice (v1) Run Tests (3 tests) Tests are green Verbal: New func required, create Testcase  Open pre-defined new Testcase (testcase 4) Run all 4 Tests against v1  One test is red Verbal: Analyse, find and eliminate problem Open & Explain prepared process (v2) Show Processes in Process Compare View Run tests again against v2  Tests are green
Is BPEL dead? Not really! BPMN 2.0 is still under development and not as mature as BPEL BPMN 2.0 adds even more abstraction and makes it more difficult to bring models to  execution It‘s a matter of time!
Q&A Thank you for your attention!

More Related Content

PDF
Oracle Service Bus (OSB) for the Busy IT Professonial
PPTX
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
PPTX
SOA for PL/SQL Developer (OPP 2010)
PPT
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
PPT
eSobi Website Multilayered Architecture
PPT
Oracle SOA Suite in use – a practical experience report
PDF
Osb student guide
PDF
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
Oracle Service Bus (OSB) for the Busy IT Professonial
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
SOA for PL/SQL Developer (OPP 2010)
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
eSobi Website Multilayered Architecture
Oracle SOA Suite in use – a practical experience report
Osb student guide
InterConnect 2016 Java EE 7 Overview (PEJ-5296)

What's hot (17)

PDF
oracle-osb
PPTX
Mule esb basic introduction
PDF
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
PDF
Top 50 MuleSoft interview questions
PPTX
Neuro4j Workflow Overview
ODP
Gf University 27may09 Amersfoort
PPTX
Component bindings in mule
PPTX
Cloudy Open Source and DevOps
PPT
D2 8 Enhydra Shark
PPTX
Testing mule
PPTX
Connection management
PPTX
Java in Mule
PPT
OSGi patterns v1.0.11
PPT
Riding with camel
PPTX
Until successful component in mule
PPTX
Bindings of components in mule
PPT
What is Advance Java J2EE
oracle-osb
Mule esb basic introduction
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
Top 50 MuleSoft interview questions
Neuro4j Workflow Overview
Gf University 27may09 Amersfoort
Component bindings in mule
Cloudy Open Source and DevOps
D2 8 Enhydra Shark
Testing mule
Connection management
Java in Mule
OSGi patterns v1.0.11
Riding with camel
Until successful component in mule
Bindings of components in mule
What is Advance Java J2EE
Ad

Similar to Web Service Composition mit WS-BPEL und dem Open-Source-Orchester (20)

PPT
SOA-based Business Integration with Eclipse BPEL and Apache ODE
PPT
Oracle
PPT
Eclipse BPEL Designer
PPT
Eclipse BPEL Designer
PDF
Business Process Management using BPEL
PPTX
BPEL, BPEL vs ESB (Integration)
PDF
Service Oriented Architecture [3/5] : Business Process Management using BPEL
PPT
Soa & Bpel
PPT
Soa & Bpel
PPT
Soa bpel-123
PPTX
Introduction to business process execution language
PDF
Introduction and Advanced Concepts of BPEL
PPT
Ssbpm
PPTX
Introduction to business process execution language
PPTX
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
PPT
Composing REST Services
PPT
Intalio BPP 6.0のビジョン
PPT
Intention Oriented Model Interaction
PDF
Formalizing Message Exchange Patterns using BPEL light
PDF
Oracle BPA Suite to BPEL: A case study
SOA-based Business Integration with Eclipse BPEL and Apache ODE
Oracle
Eclipse BPEL Designer
Eclipse BPEL Designer
Business Process Management using BPEL
BPEL, BPEL vs ESB (Integration)
Service Oriented Architecture [3/5] : Business Process Management using BPEL
Soa & Bpel
Soa & Bpel
Soa bpel-123
Introduction to business process execution language
Introduction and Advanced Concepts of BPEL
Ssbpm
Introduction to business process execution language
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
Composing REST Services
Intalio BPP 6.0のビジョン
Intention Oriented Model Interaction
Formalizing Message Exchange Patterns using BPEL light
Oracle BPA Suite to BPEL: A case study
Ad

More from Tammo van Lessen (11)

PDF
Behavior-driven Business Process Development with BPMN
PDF
Vorsicht Schuldenfalle - Was die IT aus der Finanzwelt lernen kann
PDF
Logging & Metrics
PDF
Quality Assurance and Testing of Automated Business Processes
PDF
Business Process Management with BPMN & BPEL
PDF
BPM meets Semantic Web
PDF
Virtualizing Services and Resources with ProBus: The WS-Policy-Aware Service...
PDF
Facilitating Rich Data Manipulation in BPEL using E4X
PDF
BPM meets Semantic Web
PDF
An Execution Engine For Semantic Business Processes
PDF
Web Services Orchestration with BPEL 2.0
Behavior-driven Business Process Development with BPMN
Vorsicht Schuldenfalle - Was die IT aus der Finanzwelt lernen kann
Logging & Metrics
Quality Assurance and Testing of Automated Business Processes
Business Process Management with BPMN & BPEL
BPM meets Semantic Web
Virtualizing Services and Resources with ProBus: The WS-Policy-Aware Service...
Facilitating Rich Data Manipulation in BPEL using E4X
BPM meets Semantic Web
An Execution Engine For Semantic Business Processes
Web Services Orchestration with BPEL 2.0

Recently uploaded (20)

PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
Configure Apache Mutual Authentication
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PPTX
The various Industrial Revolutions .pptx
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PPTX
Benefits of Physical activity for teenagers.pptx
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
STKI Israel Market Study 2025 version august
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
2018-HIPAA-Renewal-Training for executives
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Getting started with AI Agents and Multi-Agent Systems
Configure Apache Mutual Authentication
Taming the Chaos: How to Turn Unstructured Data into Decisions
Zenith AI: Advanced Artificial Intelligence
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Credit Without Borders: AI and Financial Inclusion in Bangladesh
The various Industrial Revolutions .pptx
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
Benefits of Physical activity for teenagers.pptx
Module 1.ppt Iot fundamentals and Architecture
Abstractive summarization using multilingual text-to-text transfer transforme...
STKI Israel Market Study 2025 version august
NewMind AI Weekly Chronicles – August ’25 Week III
2018-HIPAA-Renewal-Training for executives
Microsoft Excel 365/2024 Beginner's training
Developing a website for English-speaking practice to English as a foreign la...
Enhancing emotion recognition model for a student engagement use case through...
Final SEM Unit 1 for mit wpu at pune .pptx

Web Service Composition mit WS-BPEL und dem Open-Source-Orchester

  • 1. Web Service Composition mit WS-BPEL und dem Open-Source-Orchester Tammo van Lessen Daniel Lübke Simon Moser
  • 2. About us Tammo van Lessen SOA/BPM consultant Committer & PMC Member @ Apache ODE Member of the BPMN 2.0 FTF at OMG (representing Intalio, Inc.) Simon Moser Software Architect @ IBM Co-lead of the BPEL Designer Project Member of the WS-BPEL Technical Committee at OASIS Daniel Lübke Senior Consultant @ innoQ Schweiz Architect in MDA & SOA Projects BPELUnit Maintainer
  • 3. The Talk Today Motivation & Background WS-BPEL Concepts Extensions BPEL Open Source Orchestra Eclipse BPEL Designer BPELUnit Apache ODE Demo
  • 4. BPEL Background & Motivation
  • 5. The Base: Service Platform Messaging Quality of Service Transport Description Transports Interface + Bindings Composite XML Non-XML Security Policy Discovery, Negotiation, Agreement Atomic Orchestration Protocols State Components Reliable Messaging Transactions
  • 6. The Base: Web Services Messaging Quality of Service Transport Description HTTP, SMTP, XMPP, TCP/IP, FTP, Tuple Spaces,… WSDL Composite SOAP, WS-A JMS, RMI/IIOP WS-Security* WS-Policy* UDDI, WS-A, WS-MEX, WSIL Atomic BPEL WS-C, WS-CDL, BPEL4Chor WSRF Components WSRM WS-AT, WS-BA,…
  • 7. Why Orchestration? ??? To achieve a business goal, you often need more than one service… Which to use, in which order, how to use them?
  • 9. What is BPEL? Business Process Execution Language, since 4/07 OASIS Standard High-level programming language Recursive Model BPEL has native support for Long running processes Scalability Concurrency Message and instance correlation Fault handling Compensation based recovery Phoenix behaviour Most important: BPEL is standard and supported by most important vendors. Defined Execution Semantics Abstract Processes (protocols, “views” on internal processes)
  • 10. What is BPEL not? “ BPEL is block-structured only and therefore not usable for business users” “ BPEL does not support multiple transport protocols” Look at WSDL “ BPEL interactions are only synchronous” Look at WSDL “ Look at this ugly XML, business people won’t understand this cumbersome stuff” Not meant to be hand-written, use tools! BPEL is not a modeling notation
  • 11. BPEL’s Foundation Web Services WSDL 1.1 – abstract part (concrete part  ESB) (SOAP) (WS-Addressing) Flow Control Block structured (nested blocks) Graph-based flows (using <flow>) Data Model W3C XML Schema 1.0 XML InfoSet XPath 1.0 XSLT 1.0
  • 12. BPEL 2.0 Activities compensateScope compensate Basic Activities Structured Activities receive reply invoke assign validate throw rethrow exit wait empty extensionActivity forEach sequence 2. N. 1. … flow B C A while c repeatUntil c if-elseif-else c1 c2 … 2. N. 1. … pick … A M2 M1 scope
  • 13. Partner Links / Partner Link Types process partner link partner link type Peer-to-peer conversational partner relationship “ I expect from my partner an implementation of this!” Define “contract channels” between partners - Key concept to enable asynchronous messaging! WSDL port type myRole Provided port type WSDL port type partnerRole Required port type receive Inbound request – service provided by the process invoke Outbound request – service required by the process
  • 14. Properties and Correlation Sets How to identify stateful instances via stateless WS interfaces? A process instance is assigned one or more keys Business data is used as key, e.g., customerID A key can be compound, e.g., (customerID, orderNumber) WS-BPEL calls a key a correlation set – it is used to correlate an incoming message with a process instance Process 4 (0123,15) Process 3 (0815,42) Process 2 (4711,37) Process 1 (0815,12) 0815 42 Message 2 customerID orderNumber 4711 37 Message 1
  • 15. Fault Handling & Compensation Fault Handling Like in Java, enables alternative execution paths Can trigger compensation Compensation ACID Transactions are not applicable when dealing with long running processes Compensation-based recovery Compensation Handler can reverse the work performed by an already completed scope Compensation Handler is “installed” after successful execution of a scope Compensation can only be triggered by fault/compensation/termination handler of the enclosing scope
  • 17. Modelling Styles Block structured modelling Nesting of structured activities Use of <flow> activity for parallelism Graph based modelling <flow> activity with links Transition conditions & join conditions Dead-Path-Elimination Acyclic graph to ensure sound execution semantics Loops can be realized with <while> / <repeatUntil> / <forEach> Not supported by Sun & Oracle! t 1 t 2 j
  • 19. BPEL4People/WS-HT Support for Human Tasks Standardization Committed at OASIS currently being formed BPEL-SPE Support for sub-processes Autonomy is key BPELJ Use Java in BPEL Activities Use Java types in BPEL BPEL4SWS Support for Semantic Web Services (Service Discovery) Data Mediation BPEL light WSDL-less BPEL Is about message exchanges BPEL JS/E4X Use JavaScript/E4X for variable assignments BPEL Extensions
  • 20. BPEL Open Source Orchestra
  • 21. Eclipse BPEL Designer BPEL 2.0 Design Tool … … all standard activities are supported No full support of extensibility mechanisms Partial support of abstract BPEL BPEL 2.0 Validator included Synchronized graphical & XML modelling mode Prototypical graphical process compare
  • 22. BPELUnit BPELUnit is a test framework like JUnit is for Java http://www.bpelunit.net Supports BPEL specifics: Web service mocking Transparent (un-)deployment Test Coverage calculation Most functionality independent of BPEL Engine Front-ends for Eclipse, Ant, and command-line
  • 23. Testing Testing is the execution of a program with the intend to find defects find defects also means: systematically in a repeatable way in our case: automate it! Simulation is not Testing Testing also includes the application server, JVM, BPEL Engine, Database configuration, ... Simulation uses another &quot;target engine&quot;
  • 24. Test Structure BPEL BPELUnit Real Services deploy <soap> <soap> <soap> <soap> Client Mock A Mock B <soap> undeploy Eclipse Ant Command Line Deployer (optional)
  • 25. BPEL Execution: Apache ODE BPEL 1.1 and 2.0 supported Fast and scalable process engine Modular design & embeddable 3 deployment targets supported Web container (Axis2) JBI (ServiceMix) SCA (Tuscany) Implicit Message Correlation XPath 1.0 & 2.0, XQuery Management and Auditing Backed by Intalio & Red Hat
  • 26. Tammo van Lessen (IAAS, Uni Stuttgart) & Simon Moser (IBM) Demo
  • 27. Demo schedule Open & Explain Fahrschulservice (v1) Run Tests (3 tests) Tests are green Verbal: New func required, create Testcase Open pre-defined new Testcase (testcase 4) Run all 4 Tests against v1 One test is red Verbal: Analyse, find and eliminate problem Open & Explain prepared process (v2) Show Processes in Process Compare View Run tests again against v2 Tests are green
  • 28. Is BPEL dead? Not really! BPMN 2.0 is still under development and not as mature as BPEL BPMN 2.0 adds even more abstraction and makes it more difficult to bring models to execution It‘s a matter of time!
  • 29. Q&A Thank you for your attention!