Title: Gartner Day
1(No Transcript)
2BPEL Building Standards-Based Business Processes
with Web Services
Session id 40024
- Nickolas KavantzasPrincipal Member, Technical
Staff - Oracle Application Server 10g, Orchestration
- Mike LehmannPrincipal Product Manager,
- Oracle Application Server 10g, Orchestration
3BPEL?
B E E P L E?B E E P E L L?B I P P L E?
4Web Services Meet Business Processes
Web Service 1
Web Service 4
Web Service 2
Web Service 5
Web Service 3
Web Service n
5Example Problem Space
Credit Service
Consolidate Results
PO Service
Client
Inventory Service
6Business 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
- . . .
7Recent 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)
8Orchestration vs. Choreography
- Orchestration
- Private process
- Steps of an executable workflow
- Process controlled by one party
- Choreography
- Public (abstract) process
- Sequence of observable messages
- Conversation made up of equals
1. CheckInv
Business Process
2. Available
3. Place Order
Derivation from Chris Peltz of HP JavaOne 2003
presentation
9Business 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)
- Amazing industry consensus in the last 6 months
- IBM, Microsoft, Oracle, Sun, BEA, SAP, Siebel
10Value 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
11Standards Building Blocks of BPEL
Processes
BPEL4WS
Reliable Messaging
Security
Qualityof Service
Transactions
Coordination
UDDI
Discovery
WSDL
Description
SOAP
Messaging
XML,Encoding
HTTP,IIOP, JMS, SMTP
Transport
12BPEL Depends on WSDL and WSDL Extensions
Service Implementation Definition
Service
Port
Service Interface Definition
Binding
Port types define Operations
Message
Type
13BPEL Scenario Structure
- ltprocessgt
- lt! Definition and roles of process
participants --gt ltpartnersgt ... lt/partnersgt - 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
14BPEL Activities
- Primitive Activities
- ltinvokegt
- ltreceivegt
- ltassigngt
- ltreplygt
- ltthrowgt
- ltterminategt
- ltwaitgt
- Structured Activities
- ltsequencegt
- ltswitchgt
- ltpickgt
- ltflowgt
- ltlinkgt
- ltwhilegt
- ltscopegt
15Partners
- 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
16Partners in BPEL
BPEL
ltpartnersgt ltpartner namecustomer"
serviceLinkTypelnspurchaseSLT
myRolepurchaseService/gt ltpartner
nameinventoryChecker serviceLinkTypelnsinven
torySLT myRoleinventoryRequestor
partnerRoleinventoryService/gt ltpartner
namecreditChecker serviceLinkTypelnscreditSL
T myRolecreditRequestor
partnerRolecreditService/gt lt/partnersgt
Purchase Process WSDL
Purchase Process PortType
ltsltserviceLinkType namepurchaseSLTgt
ltsltrole namepurchaseServicegt ltsltportType
nametnspurchasePT/gt lt/sltrolegt lt/sltservice
LinkTypegt
ltportType namepurchasePTgt ltoperation
name"sendPurchase"gt lt/operationgt lt/portTypegt
17Variables
- 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
18Variables 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
19How 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
20Simple 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
21Simple Activities Combined with Structured
Activities
ltsequencegt
Receive ltPOgt
ltflowgt
Invoke ltInventoryServicegt
Invoke ltCreditServicegt
lt/sequencegt
Reply ltInvoicegt
22Sample Activities in BPEL
ltsequencegt ltreceive partnercustomer
portTypelnspurchaseOrderPT"
operationsendPurchaseOrder variablePO
createInstance"yes" /gt ltflowgt ltinvoke
partnerinventoryChecker portTypelnsinventory
PT operation"checkINV"
inputVariable"inventoryRequest"
outputVariable"inventoryResponse" /gt ltinvoke
partner"creditChecker" portTypelnscreditPT"
operation"checkCRED" inputVariable"credi
tRequest" outputVariable"creditResponse
" /gt lt/flowgt ... ltreply partnercustomer
portTypelnspurchaseOrderPT
operationsendPurchaseOrder variableinvoice"/gt
lt/sequencegt
23Links 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
partner"D"gt lttarget linkName"CtoD"/gt
lt/invokegt lt/flowgt
ltflowgt
ltXgt
ltlink XtoYgt
ltYgt
ltlink CtoDgt
lt/flowgt
24Correlation
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
25Correlations in BPEL
ltcorrelationSetsgt ltcorrelationSet name"POCorr"
properties"corcustId corordId"/gt
ltcorrelationSet name"InvoiceCorr"
properties"corvendId corinvId"/gt lt/correlationS
etsgt ... ltreceive partnerCustomer
portType"SPPurchaseOrderPT"
operation"AsynchPurchase" variable"PO"gt
ltcorrelationsgt ltcorrelation set"POCorr"
initiate"yes"gt lt/correlationsgt lt/receivegt
... ltinvoke partnerCustomer
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 ...
26Scopes 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
27Long Running Transactions and Compensation
CreditService
ltscopegt
- CheckCredit
- ChargeHoldFee
- CancelHoldFee
InventoryService
- ReserveInventory
- CancelReserveInv
lt/scopegt
28Compensation Handlers in BPEL
ltscopegt ltcompensationHandlergt ltinvoke
partner"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 partner"Seller" portType"SPPurchasin
g" operation"SyncPurchase"
inputVariable"sendPO"
outputVariable"getResponse"gt ltcorrelationsgt
ltcorrelation set"PurchaseOrder" initiateyes
pattern"out"/gt lt/correlationsgt
lt/invokegt lt/scopegt
29Exception 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 partner"customer"
- portType"lnspurchaseOrderPT"
- operation"sendPurchaseOrder"
- variable"POFault"
- faultName"cannotCompleteOrder"/gt
- lt/catchgt
- lt/faultHandlersgt
30Just Show Me How to Do it!
. . .
31Tooling 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
32D E M O N S T R A T I O N
Building a BPEL Scenario
33What 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
34What 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
35Oracles Strategy
- Oracle Application Server Containers for J2EE
- BPEL runtime
- Oracle JDeveloper
- BPEL design time
- Oracle Application Server Integration
- Web service, B2B and EAI integration
36Remember 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) - . . .
37But 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
38Parting Thoughts
- Business process portability?
- Java/J2EE is portable across application servers
- BPEL is portable independent of Java
- Programming language in XML?
- Does this hurt?
- Vendors, big and small, are busy building
modellers - Is BPEL in 2003/2004 J2EE in 1998?
- Much missing but compelling foundation
39Next Steps.
- Recommended sessions
- 36811 - Application Integration using Web
Services - 40053 - Develop, Deploy, and Manage Web Services
with Oracle Application Server 10g - Recommended demos and/or hands-on labs
- DemoGrounds See the Web Services Booth
- Hands On Developing and Deploying Enterprise Web
Services with Oracle Application Server 10g - See Your Business in Our Software
- Visit the DEMOgrounds for a customized
architectural review, see a customized demo with
Solutions Factory, or receive a personalized
proposal. Visit the DEMOgrounds for more
information. - Relevant web sites to visit for more information
- http//otn.oracle.com/tech/webservices
40Reminder please complete the OracleWorld
session surveySession Id 40024Thank you.
41otn.oracle.com
Join Over 3,000,000 Developers!
Free Technical Advice
Free Software Downloads
http//otn.oracle.com
42FREE
- Develop your career with Oracles experts
- Web services, Forms Upgrade to the Web, TopLink,
Business Intelligence, Integration, J2EE, Linux - Connect with your peers
- Sign up at http//otn.oracle.com/events/otnworksho
p
43A
44(No Transcript)