SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 
Soa design pattern
Soa design patternSoa design pattern
Soa design pattern
Lap Doan
 

La actualidad más candente (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 a Introduction and Advanced Concepts of BPEL

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
 
The cornerstones of SAP workflow
The cornerstones of SAP workflowThe cornerstones of SAP workflow
The cornerstones of SAP workflow
Norikkon, LLC.
 
USP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference
choreos
 
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
 

Similar a 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
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

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