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

More Related Content

What's hot

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
 
Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2Freddy 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 patternLap 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
 
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
 

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
 
Oracle OSB Tutorial 2
Oracle OSB Tutorial 2Oracle OSB Tutorial 2
Oracle OSB Tutorial 2
 
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)
 
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
 
Service Oriented Architecture Design Pattern
Service Oriented Architecture Design PatternService Oriented Architecture Design Pattern
Service Oriented Architecture Design Pattern
 
Principles of Service Orientation
Principles of Service OrientationPrinciples of Service Orientation
Principles of Service Orientation
 
Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2Icsoc Mehandjiev Lecue Wajid Presentationv2
Icsoc Mehandjiev Lecue Wajid Presentationv2
 
oracle-osb
oracle-osboracle-osb
oracle-osb
 
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
 
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)
 
Soa design pattern
Soa design patternSoa design pattern
Soa design pattern
 
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)
 
Where to use OSB
Where to use OSBWhere to use OSB
Where to use OSB
 
SOA Design Patterns
SOA Design PatternsSOA Design Patterns
SOA Design Patterns
 
1. soa design pattern introduction
1. soa design pattern introduction1. soa design pattern introduction
1. soa design pattern introduction
 
Osbsoa1
Osbsoa1Osbsoa1
Osbsoa1
 
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...
 
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
 

Similar to Introduction and Advanced Concepts of BPEL

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 U2008elliando 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 workflowNorikkon, 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 Conferencechoreos
 
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
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
Qualitest
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
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 ChefChef 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 EasyWSO2
 
Event Driven Architectures
Event Driven ArchitecturesEvent Driven Architectures
Event Driven ArchitecturesAvinash Ramineni
 

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
 
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
 
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
 
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
 
The cornerstones of SAP workflow
The cornerstones of SAP workflowThe cornerstones of SAP workflow
The cornerstones of SAP workflow
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
 
Real World Event Sourcing and CQRS
Real World Event Sourcing and CQRSReal World Event Sourcing and CQRS
Real World Event Sourcing and CQRS
 
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
 
USP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference
 
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
 
Introduction to Business Processes 3.7
Introduction to Business Processes 3.7Introduction to Business Processes 3.7
Introduction to Business Processes 3.7
 
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
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
 
Introduction to SoapUI day 1
Introduction to SoapUI day 1Introduction to SoapUI day 1
Introduction to SoapUI day 1
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
 
Web flowpresentation
Web flowpresentationWeb flowpresentation
Web flowpresentation
 
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
 
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
 
Event Driven Architectures
Event Driven ArchitecturesEvent Driven Architectures
Event Driven Architectures
 
Webservice Testing
Webservice TestingWebservice Testing
Webservice Testing
 

Recently uploaded

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

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