1 / 44

BPEL: Building Standards-Based Business Processes with Web Services

Session id: 40024. BPEL: Building Standards-Based Business Processes with Web Services. Nickolas Kavantzas Principal Member, Technical Staff Oracle Application Server 10 g , Orchestration Mike Lehmann Principal Product Manager, Oracle Application Server 10 g , Orchestration. BPEL?.

shelby
Download Presentation

BPEL: Building Standards-Based Business Processes with Web Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Session id: 40024 BPEL: Building Standards-Based Business Processes with Web Services Nickolas KavantzasPrincipal Member, Technical Staff Oracle Application Server 10g, Orchestration Mike LehmannPrincipal Product Manager, Oracle Application Server 10g, Orchestration

  2. BPEL? “B E E P L E”?“B E E – P E L L”?“B I P P L E”?

  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. CreditResponse InventoryResponse CreditCheck Purchase Order ReserveInventory Invoice Example Problem Space Credit Service Consolidate Results PO Service Client Inventory Service

  5. 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 . . . Business Process Challenges

  6. Recent History of Business Process Standards BPML (Intallio et al) BPSS (ebXML) WSCI (Sun et al) WS-Choreography (W3C) 2000/05 2001/03 2001/05 2001/06 2002/03 2002/06 2002/08 2003/01 2003/04 XLang (Microsoft) WSFL (IBM) WSCL (HP) BPEL4WS 1.0(IBM, Microsoft) BPEL4WS 1.1(OASIS)

  7. 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 Business Process 1 Business Process 2 ? ? Orchestration vs. Choreography 1. CheckInv Business Process 2. Available 3. Place Order Derivation from Chris Peltz of HP JavaOne 2003 presentation

  8. 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) • Amazing industry “consensus” in the last 6 months • IBM, Microsoft, Oracle, Sun, BEA, SAP, Siebel …

  9. 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

  10. Standards Building Blocks of BPEL Processes BPEL4WS Reliable Messaging Security Transactions Qualityof Service Coordination UDDI Discovery WSDL Description SOAP Messaging XML,Encoding HTTP,IIOP, JMS, SMTP Transport

  11. BPEL Depends on WSDL and WSDL Extensions Service Implementation Definition Service Port Service Interface Definition Binding Port types define Operations Message Type

  12. BPEL Scenario Structure <process> <!– Definition and roles of process participants --> <partners> ... </partners> <!- Data/state used within the process --> <variables> ... </variables> <!- Properties that enable conversations --> <correlationSets> ... </correlationSets> <!- Exception handling --> <faultHandlers> ... </faultHandlers> <!- Error recovery – undoing actions --> <compensationHandlers> ... </compensationHandlers> <!- Concurrent events with process itself --> <eventHandlers> ... </eventHandlers> <!- Business process flow --> (activities)* </process>

  13. Primitive Activities <invoke> <receive> <assign> <reply> <throw> <terminate> <wait> Structured Activities <sequence> <switch> <pick> <flow> <link> <while> <scope> BPEL Activities

  14. 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

  15. Partners in BPEL BPEL: <partners> <partner name=“customer" serviceLinkType=“lns:purchaseSLT” myRole=“purchaseService”/> <partner name=“inventoryChecker” serviceLinkType=“lns:inventorySLT”myRole=“inventoryRequestor” partnerRole=“inventoryService”/> <partner name=“creditChecker” serviceLinkType=“lns:creditSLT” myRole=“creditRequestor” partnerRole=“creditService”/> </partners> Purchase Process WSDL: Purchase Process PortType: <slt:serviceLinkType name=“purchaseSLT”> <slt:role name=“purchaseService”> <slt:portType name=“tns:purchasePT”/> </slt:role> </slt:serviceLinkType> <portType name=“purchasePT”> <operationname="sendPurchase"> </operation> </portType>

  16. <A> <B> Variables • Messages sent and received from partners • Persisted for long running interactions • Defined in WSDL types and messages Process <variable> <activity> <activity> <variable> CustomerService CustomerService Persist/Retrieve Persist/Retrieve Persist/Retrieve Persist

  17. Variables in BPEL BPEL: <variables> <variable name=“PO” messageType=“lns:POMessage”/> <variable name=“Invoice” messageType=“lns:InvMessage”/> <variable name=“POFault” messageType=“lns:orderFaultType”/> </variables> Purchase Process WSDL: <message name=“POMessage”> <part name=“customerInfo” type=“sns:customerInfo”/> <part name=“purchaseOrder” type=“sns:purchaseOrder”/> </message> <message name="InvMessage"> <part name=“IVC” type=“sns:Invoice”/> </message> <message name=“orderFaultType”> <part name=“problemInfo” type=“xsd:string”/> </message>

  18. How is Data Manipulation Done? • Using <assign> and <copy>, data can be copied and manipulated between variables • <copy> supports XPath queries to sub-select data <assign> <copy> <from variable="PO" part="customerInfo"/> <to variable=“creditRequest” part="customerInfo"/> </copy> </assign>

  19. 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

  20. Simple Activities Combined with Structured Activities <sequence> Receive <PO> <flow> Invoke <InventoryService> Invoke <CreditService> </sequence> Reply <Invoice>

  21. Sample Activities in BPEL <sequence> <receive partner=“customer” portType=“lns:purchaseOrderPT" operation=“sendPurchaseOrder” variable=“PO” createInstance="yes" /> <flow> <invoke partner=“inventoryChecker” portType=“lns:inventoryPT” operation="checkINV" inputVariable="inventoryRequest" outputVariable="inventoryResponse" /> <invoke partner="creditChecker" portType=“lns:creditPT" operation="checkCRED" inputVariable="creditRequest" outputVariable="creditResponse" /> </flow> ... <reply partner=“customer” portType=“lns:purchaseOrderPT” operation=“sendPurchaseOrder” variable=“invoice"/> </sequence>

  22. <C> <A> <B> <D> <E> Links – Control Flow <flow> <links> <link name="XtoY"/> <link name="CtoD"/> </links> <sequence name="X"> <source linkName="XtoY"/> <invoke name="A" .../> <invoke name="B" .../> </sequence> <sequence name"Y"> <target linkName="XtoY"/> <receive name="C"/> <source linkName="CtoD"/> </receive> <invoke name="E" .../> </sequence> <invoke partner="D"> <target linkName="CtoD"/> </invoke> </flow> <flow> <X> <link XtoY> <Y> <link CtoD> </flow>

  23. Correlation POCorrelation:<PO_CustId = 10><PO_OrdId = 100> initiate=yes initiate=yes Customer Seller • SendPurchase • ProcessPurchaseResponse • AsynchPurchase • AsynchPurchaseResponse POResponseCorrelations: <PO_CustId = 10><PO_OrdId = 100> <Inv_VendId = 20><Inv_InvId = 200> initiate=no pattern=out initiate=no initiate=yes initiate=yes pattern=out

  24. Correlations in BPEL <correlationSets> <correlationSet name="POCorr"properties="cor:custId cor:ordId"/> <correlationSet name="InvoiceCorr"properties="cor:vendId cor:invId"/> </correlationSets> ... <receive partner=“Customer” portType="SP:PurchaseOrderPT" operation="AsynchPurchase" variable="PO"> <correlations> <correlation set="POCorr" initiate="yes"> </correlations> </receive> ... <invoke partner=“Customer” portType="SP:CustomerPT" operation=“ProcessPurchaseResponse" inputVariable="POResponse"> <correlations> <correlation set="POCorr" initiate="no" pattern="out"> <correlation set="InvoiceCorr" initiate="yes" pattern="out"> </correlations> </invoke> ...

  25. Provide a shared context for subset of activities Can contain fault handlers event handlers, compensation handler variables correlation sets Can serialize concurrentaccess to variables Scopes in BPEL <scopevariableAccessSerializable="yes|no“ ...><variables></variables> <correlationSets>? ... </correlationSets> <faultHandlers></faultHandlers> <compensationHandler>? ... </compensationHandler> <eventHandlers></eventHandlers> (activities)*</scope>

  26. Charge Hold Fee Undo Undo Reserve Inventory Long Running Transactions and Compensation CreditService <scope> • CheckCredit • ChargeHoldFee • CancelHoldFee InventoryService • ReserveInventory • CancelReserveInv </scope>

  27. Compensation Handlers in BPEL <scope> <compensationHandler> <invoke partner="Seller" portType="SP:Purchasing" operation="CancelPurchase" inputVariable="getResponse" outputVariable="getConfirmation"> <correlations> <correlation set="PurchaseOrder" pattern="out"/> </correlations> </invoke> </compensationHandler> <invoke partner="Seller" portType="SP:Purchasing" operation="SyncPurchase" inputVariable="sendPO" outputVariable="getResponse"> <correlations> <correlation set="PurchaseOrder" initiate=“yes” pattern="out"/> </correlations> </invoke> </scope>

  28. Exception Handling in BPEL • <faultHandlers> catch exception • Based on WSDL port defining fault • <faultHandlers> can perform activities upon invocation <faultHandlers> <catch faultName="lns:cannotCompleteOrder" faultVariable="POFault"> <reply partner="customer" portType="lns:purchaseOrderPT" operation="sendPurchaseOrder" variable="POFault" faultName="cannotCompleteOrder"/> </catch> </faultHandlers>

  29. PartnerWSDL 1 ProcessWSDL BPEL Scenario PartnerWSDL n CompiledBPEL Scenario <process> <partners> <variables> <sequence> <flow> </sequence> </process> BPEL Runtime ApplicationServer Just Show Me How to Do it! • Compile • Package • Deploy . . .

  30. 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

  31. D E M O N S T R A T I O N Building a BPEL Scenario

  32. Process Definition for Java Security Transactions Messaging Pooling Naming 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

  33. WebServices JMS EDI JCA What Happened to J2EE? • JSR 208 – Java Business Integration • Make business processes a first class citizen in J2EE containers JSR 208Machine SPI BPEL Engine Transform Engine Routing Engine . . . Normalized Message Bus Binding Framework JSR 208Binding SPI . . . Based on JSR 208 Session at JavaOne 2003

  34. Oracle’s Strategy • Oracle Application Server Containers for J2EE • BPEL runtime • Oracle JDeveloper • BPEL design time • Oracle Application Server Integration • Web service, B2B and EAI integration

  35. 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) • . . .

  36. 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 • …

  37. Parting 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

  38. Next 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

  39. Reminder – please complete the OracleWorld session surveySession Id : 40024Thank you.

  40. otn.oracle.com Join Over 3,000,000 Developers! Free Technical Advice Free Software Downloads http://otn.oracle.com

  41. FREE • Develop your career with Oracle’s 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/otnworkshop

  42. Q & Q U E S T I O N S A N S W E R S A

More Related