Gartner Day - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Gartner Day

Description:

Error recovery undoing actions -- compensationHandlers ... /compensationHandlers ... Undo. Charge. Hold Fee. Compensation Handlers. in BPEL scope ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 42
Provided by: china9
Category:
Tags: day | gartner | undoing

less

Transcript and Presenter's Notes

Title: Gartner Day


1
(No Transcript)
2
BPEL Building Standards-Based Business Processes
with Web Services
Session id 40024
3
Web Services Meet Business Processes
Web Service 1
Web Service 4
Web Service 2
Web Service 5
Web Service 3
Web Service n
4
Example Problem Space
Credit Service
Consolidate Results
PO Service
Client
Inventory Service
5
Business Process Challenges
  • Coordinate asynchronous communication between
    services
  • Correlate message exchanges between parties
  • Implement parallel processing of activities
  • . . .
  • Manipulate/transform data between partner
    interactions
  • Support for long running business transactions
    and activities
  • Provide consistent exception handling
  • . . .

6
Recent History of Business Process Standards
BPML (Intallio et al)
BPSS (ebXML)
WS-Choreography (W3C)
WSCI (Sun et al)
2000/05
2001/03
2001/05
2001/06
2002/03
2002/06
2003/01
2003/04
2002/08
XLang (Microsoft)
WSFL (IBM)
BPEL4WS 1.0 (IBM, Microsoft)
BPEL4WS 1.1(OASIS)
WSCL (HP)
7
Orchestration vs Choreography
  • Orchestration
  • An executable business process describing a flow
    from the perspective and under control of a
    single endpoint (commonly Workflow)
  • Choreography
  • The observable public exchange of messages, rules
    of interaction and agreements between two or more
    business process endpoints

8
Sample Business Process Purchase Order
Sample Purchase Order
Purchase Order Request
Business A
Business B
Purchase Order Acknowledgement
Purchase Order Response
9
From a Choreography Perspective
Public Process
Business A
Business B
PO Request
PO Acknowledgement
PO Response
Choreography The observable public exchange of
messages
10
From an Orchestration Perspective
Private Process
Business A BPEL Workflow
Send PO
Transform
PO Request
From ERP
Receive PO Ack
PO Acknowledgement
To ERP
Receive PO Response
Transform
PO Response
Orchestration A private executable business
process
11
Orchestration and Choreography Together
Generate BPEL Template
Generate BPEL Template
Business B BPEL Workflow
Business A BPEL Workflow
Receive PO
Transform
Send PO
Transform
PO Request
Send PO Ack
Receive PO Ack
PO Acknowledgement
Receive PO Response
Transform
Receive PO Response
Transform
PO Response
Two BPEL workflow templates reflecting a business
agreement
12
Business Process Execution Language for Web
Services
  • Version 1.0 released by IBM, Microsoft and BEA in
    August 2002
  • Accompanied by WS-Coordination, WS-Transaction
    which remain unsubmitted to standards bodies
  • Version 1.1 submitted to OASIS April 2003
  • XML language for describing business processes
    based on Web services
  • Convergence of XLANG (Microsoft) and WSFL (IBM)
  • Unprecendented industry consensus
  • IBM, Microsoft, Oracle, Sun, BEA, SAP, Siebel

13
Value Proposition
  • Portable business processes
  • Built on top of an interoperable infrastructure
    of Web services
  • Industry wide language for business processes
  • Common skill set and language for developers
  • Choice of process engines
  • Standards lead to competitive offerings

14
Standards Building Blocks of BPEL
BusinessProcesses
Transactions
Quality ofService
Coordination
WS-Security
WS-Reliability
Context
Management
UDDI
Discovery
Description
WSDL
Description
SOAP
Message
XML
HTTP,IIOP, JMS, SMTP
Transport
15
BPEL Depends on WSDL and WSDL Extensions
Service Implementation Definition
Service
Port
Service Interface Definition
Binding
Port types define Operations
Message
Type
16
BPEL Scenario Structure
  • ltprocessgt
  • lt! Definition and roles of process
    participants --gt ltpartnerLinksgt ...
    lt/partnerLinksgt
  • lt!- Data/state used within the process --gt
  • ltvariablesgt ... lt/variablesgt
  • lt!- Properties that enable conversations --gt
  • ltcorrelationSetsgt ... lt/correlationSetsgt
  • lt!- Exception handling --gt
  • ltfaultHandlersgt ... lt/faultHandlersgt lt!-
    Error recovery undoing actions --gt
  • ltcompensationHandlersgt ... lt/compensationHandle
    rsgt
  • lt!- Concurrent events with process itself --gt
  • lteventHandlersgt ... lt/eventHandlersgt
  • lt!- Business process flow --gt
  • (activities)
  • lt/processgt

17
BPEL Activities
  • Primitive Activities
  • ltinvokegt
  • ltreceivegt
  • ltassigngt
  • ltreplygt
  • ltthrowgt
  • ltterminategt
  • ltwaitgt
  • Structured Activities
  • ltsequencegt
  • ltswitchgt
  • ltpickgt
  • ltflowgt
  • ltlinkgt
  • ltwhilegt
  • ltscopegt

18
Partners
  • Declare the Web services and roles used by the
    process
  • Tied to WSDL of the process itself and the
    participating Web services by service link types

Partner 1(the process)
Partner 2
Partner 3
InventoryService
CreditService
PurchaseService
19
Partners in BPEL
BPEL
ltpartnerLinksgt ltpartnerLink namecustomer"
serviceLinkTypelnspurchasePLT
myRolepurchaseService/gt ltpartnerLink
nameinventoryChecker serviceLinkTypelnsinven
toryPLT myRoleinventoryRequestor
partnerRoleinventoryService/gt ltpartnerLink
namecreditChecker serviceLinkTypelnscreditPL
T myRolecreditRequestor
partnerRolecreditService/gt lt/partnerLinksgt
Purchase Process WSDL
Purchase Process PortType
ltpltpartnerLinkType namepurchasePLTgt
ltpltrole namepurchaseServicegt ltpltportType
nametnspurchasePT/gt lt/pltrolegt lt/pltpartner
LinkTypegt
ltportType namepurchasePTgt ltoperation
name"sendPurchase"gt lt/operationgt lt/portTypegt
20
Variables
  • Messages sent and received from partners
  • Persisted for long running interactions
  • Defined in WSDL types and messages

Process
CustomerService
ltvariablegt
ltactivitygt
ltactivitygt
CustomerService
ltvariablegt
Persist/Retrieve
Persist/Retrieve
Persist/Retrieve
Persist
21
Variables in BPEL
BPEL
ltvariablesgt ltvariable namePO
messageTypelnsPOMessage/gt ltvariable
nameInvoice messageTypelnsInvMessage/gt
ltvariable namePOFault messageTypelnsorderFau
ltType/gt lt/variablesgt
Purchase Process WSDL
ltmessage namePOMessagegt ltpart
namecustomerInfo typesnscustomerInfo/gt
ltpart namepurchaseOrder typesnspurchaseOrder
/gt lt/messagegt ltmessage name"InvMessage"gt
ltpart nameIVC typesnsInvoice/gt lt/messagegt lt
message nameorderFaultTypegt ltpart
nameproblemInfo typexsdstring/gt lt/messagegt
22
How is Data Manipulation Done?
  • Using ltassigngt and ltcopygt, data can be copied and
    manipulated between variables
  • ltcopygt supports XPath queries to sub-select data

ltassigngt ltcopygt ltfrom variable"PO"
part"customerInfo"/gt ltto variablecreditReques
t part"customerInfo"/gt lt/copygt lt/assigngt
23
Simple Activities
  • Receive
  • Wait for a partner inbound message
  • Can be the instantiator of the business process
  • Reply
  • Synchronous response to a receive activity
  • Response to the inbound receive from a partner
  • Invoke
  • Issue a request synchronously or asynchronously
  • Pick
  • Specify an inbound set of messages
  • Can be the instantiator of the business process
  • Activity completes when one of the messages
    arrives

24
Simple Activities Combined with Structured
Activities
ltsequencegt
Receive ltPOgt
ltflowgt
Invoke ltInventoryServicegt
Invoke ltCreditServicegt
lt/sequencegt
Reply ltInvoicegt
25
Sample Activities in BPEL
ltsequencegt ltreceive partnerLinkcustomer
portTypelnspurchaseOrderPT"
operationsendPurchaseOrder variablePO
createInstance"yes" /gt ltflowgt ltinvoke
partnerLinkinventoryChecker portTypelnsinven
toryPT operation"checkINV"
inputVariable"inventoryRequest"
outputVariable"inventoryResponse" /gt ltinvoke
partnerLink"creditChecker" portTypelnscreditPT
" operation"checkCRED"
inputVariable"creditRequest"
outputVariable"creditResponse" /gt lt/flowgt ...
ltreply partnerLinkcustomer portTypelnspurcha
seOrderPT operationsendPurchaseOrder
variableinvoice"/gt lt/sequencegt
26
Links Control Flow
ltflowgt ltlinksgt ltlink name"XtoY"/gt ltlink
name"CtoD"/gt lt/linksgt ltsequence name"X"gt
ltsource linkName"XtoY"/gt ltinvoke name"A"
.../gt ltinvoke name"B" .../gt lt/sequencegt
ltsequence name"Y"gt lttarget linkName"XtoY"/gt
ltreceive name"C"/gt ltsource
linkName"CtoD"/gt lt/receivegt ltinvoke
name"E" .../gt lt/sequencegt ltinvoke
partnerLink"D"gt lttarget linkName"CtoD"/gt
lt/invokegt lt/flowgt
ltflowgt
ltXgt
ltlink XtoYgt
ltYgt
ltlink CtoDgt
lt/flowgt
27
Correlation
POCorrelationltPO_CustId 10gtltPO_OrdId
100gt
initiateyes
initiateyes
Customer
Seller
  • SendPurchase
  • ProcessPurchaseResponse
  • AsynchPurchase
  • AsynchPurchaseResponse

POResponseCorrelations ltPO_CustId
10gtltPO_OrdId 100gt ltInv_VendId
20gtltInv_InvId 200gt
initiateno patternout
initiateno
initiateyes patternout
initiateyes
28
Correlations in BPEL
ltcorrelationSetsgt ltcorrelationSet name"POCorr"
properties"corcustId corordId"/gt
ltcorrelationSet name"InvoiceCorr"
properties"corvendId corinvId"/gt lt/correlationS
etsgt ... ltreceive partnerLinkCustomer
portType"SPPurchaseOrderPT"
operation"AsynchPurchase" variable"PO"gt
ltcorrelationsgt ltcorrelation set"POCorr"
initiate"yes"gt lt/correlationsgt lt/receivegt
... ltinvoke partnerLinkCustomer
portType"SPCustomerPT" operationProcessPurch
aseResponse" inputVariable"POResponse"gt
ltcorrelationsgt ltcorrelation set"POCorr"
initiate"no" pattern"out"gt ltcorrelation
set"InvoiceCorr" initiate"yes" pattern"out"gt
lt/correlationsgt lt/invokegt ...
29
Scopes in BPEL
ltscopevariableAccessSerializable"yesno ...gt
ltvariablesgtlt/variablesgt ltcorrelationSetsgt?
... lt/correlationSetsgt ltfaultHandlersgtlt/faultHa
ndlersgt ltcompensationHandlergt? ...
lt/compensationHandlergt lteventHandlersgtlt/eventHa
ndlersgt (activities) lt/scopegt
  • Provide a shared context for subset of activities
  • Can contain
  • fault handlers
  • event handlers,
  • compensation handler variables
  • correlation sets
  • Can serialize concurrentaccess to variables

30
Long Running Transactions and Compensation
CreditService
ltscopegt
  • CheckCredit
  • ChargeHoldFee
  • CancelHoldFee

InventoryService
  • ReserveInventory
  • CancelReserveInv

lt/scopegt
31
Compensation Handlers in BPEL
ltscopegt ltcompensationHandlergt ltinvoke
partnerLink"Seller" portType"SPPurchasing"
operation"CancelPurchase"
inputVariable"getResponse"
outputVariable"getConfirmation"gt
ltcorrelationsgt ltcorrelation
set"PurchaseOrder" pattern"out"/gt
lt/correlationsgt lt/invokegt lt/compensationHandler
gt ltinvoke partnerLink"Seller"
portType"SPPurchasing"
operation"SyncPurchase"
inputVariable"sendPO"
outputVariable"getResponse"gt ltcorrelationsgt
ltcorrelation set"PurchaseOrder" initiateyes
pattern"out"/gt lt/correlationsgt
lt/invokegt lt/scopegt
32
Exception Handling in BPEL
  • ltfaultHandlersgt catch exception
  • Based on WSDL port defining fault
  • ltfaultHandlersgt can perform activities upon
    invocation
  • ltfaultHandlersgt ltcatch faultName"lnscannotCompl
    eteOrder"
  • faultVariable"POFault"gt
  • ltreply partnerLink"customer"
  • portType"lnspurchaseOrderPT"
  • operation"sendPurchaseOrder"
  • variable"POFault"
  • faultName"cannotCompleteOrder"/gt
  • lt/catchgt
  • lt/faultHandlersgt

33
Just Show Me How to Do it!
  • Compile
  • Package
  • Deploy

. . .
34
Tooling Requirements
  • IDE build your Web services
  • WSDL authoring model your interfaces
  • Schema authoring model your messages
  • Process modeling model your orchestration
  • Packaging and deployment
  • Debugging
  • Monitoring
  • Analyzing

35
What Happened to Java?
  • JSR 207 - Process Definition Language for Java
  • Make business processes natural for Java
    programmers

Servlet
EJB
Application Server
Based on JSR 207 Session at JavaOne 2003
36
What Happened to J2EE?
  • JSR 208 Java Business Integration
  • Make business processes a first class citizen in
    J2EE containers

JSR 208Machine SPI
Routing Engine
Transform Engine
BPEL Engine
. . .
Normalized Message Bus
Binding Framework
JSR 208Binding SPI
. . .
Based on JSR 208 Session at JavaOne 2003
37
Oracles Strategy
  • Oracle Application Server Containers for J2EE 10g
  • BPEL runtime
  • Oracle JDeveloper 10g
  • BPEL design time
  • Oracle Application Server ProcessConnect 10g
  • Web service, B2B and EAI integration

38
Remember BPEL Does Not Solve World Hunger
  • No data transformation
  • No data translation (EDI, binary formats )
  • No human workflow
  • No trading partner agreements
  • Silent on existing business protocols (ebXML,
    RosettaNet )
  • Silent on non Web service interactions (e.g. java
    to java)
  • . . .

39
But Remember People Are Trying to Solve World
Hunger
  • W3C WS-Choreography
  • Spec WS-Transaction
  • Spec WS-Coordination
  • Spec WS-Composite Application Framework
  • OASIS WS-Reliability
  • Spec ReliableMessaging
  • Spec WS-Addressing
  • OASIS WS-Security

40
Parting Thoughts
  • Business process portability?
  • Java/J2EE is portable across application servers
  • BPEL is portable independent of Java
  • Programming language in XML?
  • Vendors, big and small, are busy building design
    times and modelers
  • Is BPEL in 2003/2004 J2EE in 1998?
  • Much missing but compelling foundation

41
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com