SlideShare a Scribd company logo
Introduction and Advanced
Concepts of BPEL




        Denis Weerasiri & Waruna Ranasinghe
Overview

• What is BPEL
• WSO2 Business Process Server
• Introduction to BPEL
• HelloWorld Sample
• Advanced Concepts of BPEL
   • Fault Handling
   • Compensation Handling
   • Correlation and Async processes
• Extending WSO2 BPS
What is BPEL

• An OASIS standard executable language for
  business processes
• More or less a service composition language
• Enables composition of (business) services into
  business processes
• XML based language
Why Automate Business Processes

• Increase Efficiency
  •   No need to worry about the coordination of the
      process
• Improve Responsiveness
  •   Business processes are agile
      •   Improve the process
      •   Adapt to the change of business needs
Business Process wrt BPEL


Business Process is a collection of coordinated
service invocations and related activities that
produce a result, either within a single organization
or across several organizations
Why BPEL

• Agility
  •   No need to worry about low level programming stuff.
  •   Native support for long running processes
• Compose larger business processes out of smaller
  processes and services
• Handle message-related and time-related events
• Industry standard language for expressing
  business processes
• Leverage common skill set
Why BPEL

• Portability
• Managed execution
  •   Monitor the progress of the process
  •   Start, stop, suspend, resume process instance
WSO2 Business Process Server

• Executes business processes written using WS-
  BPEL standard
• Powered by Apache ODE
• Provide a web-based management console
  • Deploy processes
  • Manage and view business processes
  • Manage and view process instances
  • Configure QoS and many more…
Why WSO2 BPS

•   WSO2 Carbon Studio – BPEL Editor
    •   Drag and drop process modeler
    •   Native BPEL support
    •   XPath editor
    •   Deploy processes to WSO2 BPS
•   Support both BPEL4WS 1.1 and WS-BPEL 2.0
•   Graphical Management Console to:
    •   Deploy and manage business processes
    •   Manage and monitor process instances
    •   Configure QoS perameters
Why WSO2 BPS

• Process dehydration
• Process versioning
• Follow open standards – avoid vender lock-in
• Support XQuery and Xpath, XSLT
• Support BPEL Extensions
• Features from WSO2 Carbon
Want to implement Business Processes?

• What you should already know
  •   XML
  •   XML Namespaces
  •   XML Schema
  •   WSDL
  •   XPath
  •   XSLT and XQuery (optional)
Introduction to BPEL

• BPEL Concepts
• Activities
  •   Basic Activities
  •   Structured Activities
• HelloWorld sample process
BPEL Concepts
Partner Links
• Defines the “Contact channels” between
  external world (clients/partner services)
Partner Links




• Associates interfaces (WSDL ports) with roles,
  using PartnerLinkTypes
PartnerLinkType

• Characterizes the conversational relationship
  between two services
• Define the roles played by each of the services in
  the conversation

  <plnk:partnerLinkType name="BuyerSellerLink">
     <plnk:role name="Buyer" portType="buy:BuyerPortType" />
     <plnk:role name="Seller" portType="sell:SellerPortType" />
  </plnk:partnerLinkType>
PartnerLynkType


  Buyer                Seller    Buyer               Seller

          Invoke                           Invoke
          Seller                           Seller




         Send
         response to
         Buyer’s
 Process               Partner   Process             Partner
         Callback
                       Service                       Service

            Async                             Sync
Partner Link

• Associates with a partnerLinkType
  <partnerLinks>
     <partnerLink name=“BuyerSellerPL”
                    partnerLinkType=“BuyerSellerLink”
                    myRole=“Buyer”
                    partnerRole=“Seller”/>
  </partnerLinks>


• Defines which role should be played by the
  process itself and the partner service
Variables and Data Manipulation

• Variables
  •   Statically typed(via WSDL Messages, XSD elements
      and XSD types)


• Assigning values to variables
  •   When message is received from a partner
  •   Manipulate variables inside <assign> activity
  •   Require knowledge about XPath, XQuery, XSLT
Activities in BPEL


• Basic Activities
• Structured Activities
Basic Activities

• Receive          • Compensate
• Reply            • Catch
• Invoke           • Throw
• Assign           • Rethrow
• Wait             • Exit
• Empty
Receive

• Act as the entry point to the business process
• Receives messages from an external partner
• Associated with
  •   PartnerLink with myRole
  •   WSDL operation
  •   Variable for the incoming message
• createInstance="yes" to create a new process
  instance, otherwise the incoming message will be
  consumed by the (already running) process
  instance
Reply

• Sends the response back to the client
• Always relates to a “receive” activity
• Associated with
  •   Same PartnerLink for the “receive”
  •   Same operation for the “receive”
  •   Variable for the output message
Invoke

• Used to consume partner services
• Associated with
  •   PartnerLink with at least a “partnerRole”
  •   WSDL operation of the partner service
  •   Input variable
  •   Output variable, if the operation is request-
      response
Assign

• Used to manipulate variables
Initializing Variables

• Variables contain a piece of XML
• Manipulated using Xpath
• XPath is evaluated on XML
• The variable should be initialized before copying
  values to the internal elements.
What we want


myProfile =
        <profile>
         <name>Waruna</name>
        </profile>
What we got

• String variable “name” – “Waruna”
• Variable “myProfile” – “”


• “myProfile” variable should be initialized before
  copying the “name” variable into the “name”
  element of “myProfile” variable
• $myProfile/profile/name
Initialization

• myProfile =
       <profile>
          <name></name>
       </profile>


• Then copy the “name” into “name” element of
  the “myProfile” variable.
• $myProfile/profile/name
Activities in BPEL


• Basic Activities
• Structured Activities
Structured Activities

•   Sequence
•   Flow
•   While
•   RepeatUntil
•   ForEach
•   If
•   Pick
•   Scope
Sequence

• Contained activities will be executed in an
  ordered manner
Flow

• Execute contained activities in parallel
Looping

• While, RepeatUntil, ForEach
• Provides repeated execution of the contained
  activity
If

• Provides conditional behavior
Pick

•    Waits for the occurrence of exactly one event
    from a set of events.
    •   OnMessage
    •   OnAlarm
Scope

•       Group activities into logical scopes
    •    Variables
    •    Partner Links
    •    Fault Handlers and Compensation Handlers
HelloWorld Sample
HelloWorld Sample
Advanced Concepts

• Fault Handling
• Compensation
• Correlation and Async processes
• Extending WSO2 BPS
Fault Handling

• Exceptional condition that can alter the normal
  processing of a business process.
• Fault need not result in an immediate process
  ending.
• If a fault is not handled, it will lead to
  unexpected conditions and outcomes.
• Handle faults, so that failures lead to predictable
  outcomes.
Activities for Handling Faults

• Catch
• CatchAll
• Rethrow
• Throw
Catch/CatchAll

• BPEL specific runtime faults
• SOAP faults
  •   Standard SOAP faults
  •   Application specific SOAP faults
• After catching a fault
  •   Try to correct
  •   Throw a new fault
  •   Rethrow the fault
  •   Reply with a fault message
Catch/CatchAll

• Handle different types of faults in different ways.
• Multiple catch statements to catch different
  types of faults.
• CatchAll activity to handle any type of Fault.
Rethrow

• If the current fault handler cannot handle the
  fault
• Propagate the fault to an outer-scoped fault
  handler
• Available only within a fault handler
Throw

• Indicates a problem that a business process flow
  cannot handle
• Can be used any where within the process
• Can be thrown
  •   Standard BPEL faults
  •   Custom faults
• Variable can be associated to send fault
  information
Fault Handlers Attached to Invoke Activity

• Handle faults specific to Invoke activity
  •   SOAP faults
Fault Handlers attached to Scope

• Catches faults resulting from activities within a
  scope.
Global Fault Handler

• Last place for a fault to be captured.
• Faults propagate from the inner scopes to the
  outer scopes
Fault Types in Invoke Activity

• Faults
  •   BPEL standard faults
  •   SOAP faults
• Failures
  •   Connection refused
  •   Service not found
Fault Handling Sample
Compensation

• Undoing the steps in business process that have
  been already completed
Activities for Compensation Handling

• compensationHandler – defines the compensation
  logic per each scope
• compensateScope and compensate - used to
  trigger the compensationHandler.
Compensation Handling Sample
Asynchronous Invocation

• What Asynchrony is.
• Different asynchronous transport protocols
  eg – JMS, SMTP, XMPP
• Modeling asynchronous behavior in WSDLs
  eg – by two one-way operations
Asynchronous Invocations in BPELs

• Invoke activity to invoke the partner-service
• Receive activity to act as the call-back handler




• So how these two messages get correlated?
Message Correlation

• Building block for stateful conversations in BPELs
• Determine to which conversation a message
  belongs
Message Correlation Sets

• correlationSet - defines the element(s) in
  message to act as a unique-id for each message
• correlation - handles the message correlation
  between each conversation
Correlation sample
Extending WSO2 BPS

• BPEL extensions
  •   Enable to define new BPEL activities
  •   peopleActivity for BPEL4People
• BPEL event listeners
  •   Enables to listen to events fired by BPEL engine
  •   Gather information for BAM
• Message exchange interceptors
  •   Enables to intercept through the message exchanges
• XPath extensions
Q&A
Ad

More Related Content

What's hot (18)

Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsIntroducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Lucas Jellema
 
Oracle OSB Tutorial 2
Oracle OSB Tutorial 2Oracle OSB Tutorial 2
Oracle OSB Tutorial 2
Rakesh Gujjarlapudi
 
SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)
Lucas Jellema
 
Service Oriented Architecture [3/5] : Business Process Management using BPEL
Service Oriented Architecture [3/5] : Business Process Management using BPELService Oriented Architecture [3/5] : Business Process Management using BPEL
Service Oriented Architecture [3/5] : Business Process Management using BPEL
IMC Institute
 
Service Oriented Architecture Design Pattern
Service Oriented Architecture Design PatternService Oriented Architecture Design Pattern
Service Oriented Architecture Design Pattern
Shanto Rahman
 
Principles of Service Orientation
Principles of Service OrientationPrinciples of Service Orientation
Principles of Service Orientation
Paulo Gandra de Sousa
 
Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2
Freddy Lecue
 
oracle-osb
oracle-osboracle-osb
oracle-osb
AbrarMoiz
 
Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial
Frank Munz
 
SOA (hands-on exercise w.r.t Oracle included)
SOA (hands-on exercise w.r.t Oracle included)SOA (hands-on exercise w.r.t Oracle included)
SOA (hands-on exercise w.r.t Oracle included)
santosh_c_s
 
Soa design pattern
Soa design patternSoa design pattern
Soa design pattern
Lap Doan
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)
Guido Schmutz
 
Where to use OSB
Where to use OSBWhere to use OSB
Where to use OSB
Edwin Biemond
 
SOA Design Patterns
SOA Design PatternsSOA Design Patterns
SOA Design Patterns
Mohamed Zakarya Abdelgawad
 
1. soa design pattern introduction
1. soa design pattern introduction1. soa design pattern introduction
1. soa design pattern introduction
Mohamed Zakarya Abdelgawad
 
Osbsoa1
Osbsoa1Osbsoa1
Osbsoa1
xavier john
 
Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...
raniakhalaf
 
A Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End MashupsA Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End Mashups
raniakhalaf
 
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database ProfessionalsIntroducing SOA and Oracle SOA Suite 11g for Database Professionals
Introducing SOA and Oracle SOA Suite 11g for Database Professionals
Lucas Jellema
 
SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)
Lucas Jellema
 
Service Oriented Architecture [3/5] : Business Process Management using BPEL
Service Oriented Architecture [3/5] : Business Process Management using BPELService Oriented Architecture [3/5] : Business Process Management using BPEL
Service Oriented Architecture [3/5] : Business Process Management using BPEL
IMC Institute
 
Service Oriented Architecture Design Pattern
Service Oriented Architecture Design PatternService Oriented Architecture Design Pattern
Service Oriented Architecture Design Pattern
Shanto Rahman
 
Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2
Freddy Lecue
 
Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial Oracle Service Bus (OSB) for the Busy IT Professonial
Oracle Service Bus (OSB) for the Busy IT Professonial
Frank Munz
 
SOA (hands-on exercise w.r.t Oracle included)
SOA (hands-on exercise w.r.t Oracle included)SOA (hands-on exercise w.r.t Oracle included)
SOA (hands-on exercise w.r.t Oracle included)
santosh_c_s
 
Soa design pattern
Soa design patternSoa design pattern
Soa design pattern
Lap Doan
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)
Guido Schmutz
 
Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...Designing a Language and System for REST-oriented service composition,as a se...
Designing a Language and System for REST-oriented service composition,as a se...
raniakhalaf
 
A Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End MashupsA Flow Based Approach for End to End Mashups
A Flow Based Approach for End to End Mashups
raniakhalaf
 

Similar to Introduction and Advanced Concepts of BPEL (20)

Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7
StephenKardian
 
Introduction to Long Running Workflows 3.7
Introduction to Long Running Workflows 3.7Introduction to Long Running Workflows 3.7
Introduction to Long Running Workflows 3.7
StephenKardian
 
Apache O D E Apache Con E U2008
Apache O D E  Apache Con E U2008Apache O D E  Apache Con E U2008
Apache O D E Apache Con E U2008
elliando dias
 
Standards-Based Low-Code Business Automation.pptx
Standards-Based Low-Code Business Automation.pptxStandards-Based Low-Code Business Automation.pptx
Standards-Based Low-Code Business Automation.pptx
Denis Gagné
 
The cornerstones of SAP workflow
The cornerstones of SAP workflowThe cornerstones of SAP workflow
The cornerstones of SAP workflow
Norikkon, LLC.
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
Orkhan Gasimov
 
Real World Event Sourcing and CQRS
Real World Event Sourcing and CQRSReal World Event Sourcing and CQRS
Real World Event Sourcing and CQRS
Matthew Hawkins
 
Implementing advanced integration patterns with WSO2 ESB
Implementing advanced integration patterns with WSO2 ESBImplementing advanced integration patterns with WSO2 ESB
Implementing advanced integration patterns with WSO2 ESB
WSO2
 
USP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference
choreos
 
Process Orchestration with Flowable and Spring Boot
Process Orchestration with Flowable and Spring BootProcess Orchestration with Flowable and Spring Boot
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
Introduction to Business Processes 3.7
Introduction to Business Processes 3.7Introduction to Business Processes 3.7
Introduction to Business Processes 3.7
StephenKardian
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
GlobalLogic Ukraine
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
Qualitest
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
Qualitest
 
Web flowpresentation
Web flowpresentationWeb flowpresentation
Web flowpresentation
Roman Brovko
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Software, Inc.
 
Delivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made EasyDelivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made Easy
WSO2
 
Event Driven Architectures
Event Driven ArchitecturesEvent Driven Architectures
Event Driven Architectures
Avinash Ramineni
 
Webservice Testing
Webservice TestingWebservice Testing
Webservice Testing
Rachana Khedekar
 
Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7
StephenKardian
 
Introduction to Long Running Workflows 3.7
Introduction to Long Running Workflows 3.7Introduction to Long Running Workflows 3.7
Introduction to Long Running Workflows 3.7
StephenKardian
 
Apache O D E Apache Con E U2008
Apache O D E  Apache Con E U2008Apache O D E  Apache Con E U2008
Apache O D E Apache Con E U2008
elliando dias
 
Standards-Based Low-Code Business Automation.pptx
Standards-Based Low-Code Business Automation.pptxStandards-Based Low-Code Business Automation.pptx
Standards-Based Low-Code Business Automation.pptx
Denis Gagné
 
The cornerstones of SAP workflow
The cornerstones of SAP workflowThe cornerstones of SAP workflow
The cornerstones of SAP workflow
Norikkon, LLC.
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
Orkhan Gasimov
 
Real World Event Sourcing and CQRS
Real World Event Sourcing and CQRSReal World Event Sourcing and CQRS
Real World Event Sourcing and CQRS
Matthew Hawkins
 
Implementing advanced integration patterns with WSO2 ESB
Implementing advanced integration patterns with WSO2 ESBImplementing advanced integration patterns with WSO2 ESB
Implementing advanced integration patterns with WSO2 ESB
WSO2
 
USP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference
choreos
 
Process Orchestration with Flowable and Spring Boot
Process Orchestration with Flowable and Spring BootProcess Orchestration with Flowable and Spring Boot
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
Introduction to Business Processes 3.7
Introduction to Business Processes 3.7Introduction to Business Processes 3.7
Introduction to Business Processes 3.7
StephenKardian
 
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release PipelinesWinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf 2016 - Michael Greene - Release Pipelines
WinOps Conf
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
GlobalLogic Ukraine
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
Qualitest
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
Qualitest
 
Web flowpresentation
Web flowpresentationWeb flowpresentation
Web flowpresentation
Roman Brovko
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Software, Inc.
 
Delivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made EasyDelivering the Promise of SOA - Enterprise Integration Made Easy
Delivering the Promise of SOA - Enterprise Integration Made Easy
WSO2
 
Event Driven Architectures
Event Driven ArchitecturesEvent Driven Architectures
Event Driven Architectures
Avinash Ramineni
 
Ad

Recently uploaded (20)

Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Ad

Introduction and Advanced Concepts of BPEL

  • 1. Introduction and Advanced Concepts of BPEL Denis Weerasiri & Waruna Ranasinghe
  • 2. Overview • What is BPEL • WSO2 Business Process Server • Introduction to BPEL • HelloWorld Sample • Advanced Concepts of BPEL • Fault Handling • Compensation Handling • Correlation and Async processes • Extending WSO2 BPS
  • 3. What is BPEL • An OASIS standard executable language for business processes • More or less a service composition language • Enables composition of (business) services into business processes • XML based language
  • 4. Why Automate Business Processes • Increase Efficiency • No need to worry about the coordination of the process • Improve Responsiveness • Business processes are agile • Improve the process • Adapt to the change of business needs
  • 5. Business Process wrt BPEL Business Process is a collection of coordinated service invocations and related activities that produce a result, either within a single organization or across several organizations
  • 6. Why BPEL • Agility • No need to worry about low level programming stuff. • Native support for long running processes • Compose larger business processes out of smaller processes and services • Handle message-related and time-related events • Industry standard language for expressing business processes • Leverage common skill set
  • 7. Why BPEL • Portability • Managed execution • Monitor the progress of the process • Start, stop, suspend, resume process instance
  • 8. WSO2 Business Process Server • Executes business processes written using WS- BPEL standard • Powered by Apache ODE • Provide a web-based management console • Deploy processes • Manage and view business processes • Manage and view process instances • Configure QoS and many more…
  • 9. Why WSO2 BPS • WSO2 Carbon Studio – BPEL Editor • Drag and drop process modeler • Native BPEL support • XPath editor • Deploy processes to WSO2 BPS • Support both BPEL4WS 1.1 and WS-BPEL 2.0 • Graphical Management Console to: • Deploy and manage business processes • Manage and monitor process instances • Configure QoS perameters
  • 10. Why WSO2 BPS • Process dehydration • Process versioning • Follow open standards – avoid vender lock-in • Support XQuery and Xpath, XSLT • Support BPEL Extensions • Features from WSO2 Carbon
  • 11. Want to implement Business Processes? • What you should already know • XML • XML Namespaces • XML Schema • WSDL • XPath • XSLT and XQuery (optional)
  • 12. Introduction to BPEL • BPEL Concepts • Activities • Basic Activities • Structured Activities • HelloWorld sample process
  • 14. Partner Links • Defines the “Contact channels” between external world (clients/partner services)
  • 15. Partner Links • Associates interfaces (WSDL ports) with roles, using PartnerLinkTypes
  • 16. PartnerLinkType • Characterizes the conversational relationship between two services • Define the roles played by each of the services in the conversation <plnk:partnerLinkType name="BuyerSellerLink"> <plnk:role name="Buyer" portType="buy:BuyerPortType" /> <plnk:role name="Seller" portType="sell:SellerPortType" /> </plnk:partnerLinkType>
  • 17. PartnerLynkType Buyer Seller Buyer Seller Invoke Invoke Seller Seller Send response to Buyer’s Process Partner Process Partner Callback Service Service Async Sync
  • 18. Partner Link • Associates with a partnerLinkType <partnerLinks> <partnerLink name=“BuyerSellerPL” partnerLinkType=“BuyerSellerLink” myRole=“Buyer” partnerRole=“Seller”/> </partnerLinks> • Defines which role should be played by the process itself and the partner service
  • 19. Variables and Data Manipulation • Variables • Statically typed(via WSDL Messages, XSD elements and XSD types) • Assigning values to variables • When message is received from a partner • Manipulate variables inside <assign> activity • Require knowledge about XPath, XQuery, XSLT
  • 20. Activities in BPEL • Basic Activities • Structured Activities
  • 21. Basic Activities • Receive • Compensate • Reply • Catch • Invoke • Throw • Assign • Rethrow • Wait • Exit • Empty
  • 22. Receive • Act as the entry point to the business process • Receives messages from an external partner • Associated with • PartnerLink with myRole • WSDL operation • Variable for the incoming message • createInstance="yes" to create a new process instance, otherwise the incoming message will be consumed by the (already running) process instance
  • 23. Reply • Sends the response back to the client • Always relates to a “receive” activity • Associated with • Same PartnerLink for the “receive” • Same operation for the “receive” • Variable for the output message
  • 24. Invoke • Used to consume partner services • Associated with • PartnerLink with at least a “partnerRole” • WSDL operation of the partner service • Input variable • Output variable, if the operation is request- response
  • 25. Assign • Used to manipulate variables
  • 26. Initializing Variables • Variables contain a piece of XML • Manipulated using Xpath • XPath is evaluated on XML • The variable should be initialized before copying values to the internal elements.
  • 27. What we want myProfile = <profile> <name>Waruna</name> </profile>
  • 28. What we got • String variable “name” – “Waruna” • Variable “myProfile” – “” • “myProfile” variable should be initialized before copying the “name” variable into the “name” element of “myProfile” variable • $myProfile/profile/name
  • 29. Initialization • myProfile = <profile> <name></name> </profile> • Then copy the “name” into “name” element of the “myProfile” variable. • $myProfile/profile/name
  • 30. Activities in BPEL • Basic Activities • Structured Activities
  • 31. Structured Activities • Sequence • Flow • While • RepeatUntil • ForEach • If • Pick • Scope
  • 32. Sequence • Contained activities will be executed in an ordered manner
  • 33. Flow • Execute contained activities in parallel
  • 34. Looping • While, RepeatUntil, ForEach • Provides repeated execution of the contained activity
  • 36. Pick • Waits for the occurrence of exactly one event from a set of events. • OnMessage • OnAlarm
  • 37. Scope • Group activities into logical scopes • Variables • Partner Links • Fault Handlers and Compensation Handlers
  • 40. Advanced Concepts • Fault Handling • Compensation • Correlation and Async processes • Extending WSO2 BPS
  • 41. Fault Handling • Exceptional condition that can alter the normal processing of a business process. • Fault need not result in an immediate process ending. • If a fault is not handled, it will lead to unexpected conditions and outcomes. • Handle faults, so that failures lead to predictable outcomes.
  • 42. Activities for Handling Faults • Catch • CatchAll • Rethrow • Throw
  • 43. Catch/CatchAll • BPEL specific runtime faults • SOAP faults • Standard SOAP faults • Application specific SOAP faults • After catching a fault • Try to correct • Throw a new fault • Rethrow the fault • Reply with a fault message
  • 44. Catch/CatchAll • Handle different types of faults in different ways. • Multiple catch statements to catch different types of faults. • CatchAll activity to handle any type of Fault.
  • 45. Rethrow • If the current fault handler cannot handle the fault • Propagate the fault to an outer-scoped fault handler • Available only within a fault handler
  • 46. Throw • Indicates a problem that a business process flow cannot handle • Can be used any where within the process • Can be thrown • Standard BPEL faults • Custom faults • Variable can be associated to send fault information
  • 47. Fault Handlers Attached to Invoke Activity • Handle faults specific to Invoke activity • SOAP faults
  • 48. Fault Handlers attached to Scope • Catches faults resulting from activities within a scope.
  • 49. Global Fault Handler • Last place for a fault to be captured. • Faults propagate from the inner scopes to the outer scopes
  • 50. Fault Types in Invoke Activity • Faults • BPEL standard faults • SOAP faults • Failures • Connection refused • Service not found
  • 52. Compensation • Undoing the steps in business process that have been already completed
  • 53. Activities for Compensation Handling • compensationHandler – defines the compensation logic per each scope • compensateScope and compensate - used to trigger the compensationHandler.
  • 55. Asynchronous Invocation • What Asynchrony is. • Different asynchronous transport protocols eg – JMS, SMTP, XMPP • Modeling asynchronous behavior in WSDLs eg – by two one-way operations
  • 56. Asynchronous Invocations in BPELs • Invoke activity to invoke the partner-service • Receive activity to act as the call-back handler • So how these two messages get correlated?
  • 57. Message Correlation • Building block for stateful conversations in BPELs • Determine to which conversation a message belongs
  • 58. Message Correlation Sets • correlationSet - defines the element(s) in message to act as a unique-id for each message • correlation - handles the message correlation between each conversation
  • 60. Extending WSO2 BPS • BPEL extensions • Enable to define new BPEL activities • peopleActivity for BPEL4People • BPEL event listeners • Enables to listen to events fired by BPEL engine • Gather information for BAM • Message exchange interceptors • Enables to intercept through the message exchanges • XPath extensions
  • 61. Q&A