1 / 30

BPEL Development with ActiveBPEL

BPEL Development with ActiveBPEL. Brendan Tansey. What is BPEL?. B usiness P rocess E xecution L anguage for W eb S ervices (BPEL4WS) Web service orchestration language Simple arithmetic and logical operators Lecture on Oct 26 th !. BPEL Development. Requires: BPEL Engine

tale
Download Presentation

BPEL Development with ActiveBPEL

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. BPEL Development with ActiveBPEL Brendan Tansey

  2. What is BPEL? • Business Process Execution Language for Web Services (BPEL4WS) • Web service orchestration language • Simple arithmetic and logical operators • Lecture on Oct 26th!

  3. BPEL Development • Requires: • BPEL Engine • BPEL Developer (or text editor, for the masochistic) • BPEL Engine • Executes BPEL processes • IBM BPWS4J • ActiveBPEL Engine • Installation notes on Wiki

  4. BPEL Developer • Oracle BPEL Designer • Oracle BPEL Process Manager (OC4J, JBOSS, BEA WebLogic) • Eclipse BPEL Project • Parasoft BPEL Maestro • Intalio Designer • Many others

  5. ActiveBPEL Designer • Construct graphical workflows • Assist with WSDL creation • Simulate workflow execution • Prepare service for deployment • Deploy service to ActiveBPEL server • Eclipse-based • Makes your life easier

  6. ActiveBPEL Designer Cons • Windows-only • Windows lab in CSC 1-67 • Go to CSC 1-43 to get an account • Install onto network drive • Make workspace on network drive • Quirky • Hence, presentation

  7. ActiveBPEL Designer Demo • Create a simple web service that adds 4 input numbers • Uses an existing web service • Takes 4 numbers as input {a,b,c,d} • Returns two sums as output {a+b, c+d} • Create client for service

  8. Live Demo! (with slides) Using an external web service to add four numbers

  9. Create project/BPEL Add external web references

  10. Create sequence • Drag ‘Sequence’ from palette • In sequence, insert “Operation Wizard” • Follow wizard instructions, creating a new WSDL file in your current project • Refresh project so new WSDL is visible

  11. Create service instance • Force first element of sequence to create a new instance

  12. Using external services • Add WSDLs as imports

  13. Using external services • Create input and output variables for services

  14. Create assignment activity • Assign our service’s input to input for other service

  15. Invoke web service • Create invoke activity with Operation Wizard • Select local copy of remote WSDL (can’t use remote copy – buggy) • Choose port type and operation • Create new PLT • Add to existing WSDL (buggy)

  16. Assign service output • Use built-in arithmetic operator

  17. Simulating execution

  18. Providing sample input

  19. Error! • Need to initialize complex types before using • Initialize with literals. <in0 xmlns="" xmlns:def="http://siffleur.cs.ualberta.ca:9999/axis/services/AddFunction1Service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="def:Complex"> <i xmlns:tns="Sum4WSDL" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:double">0.0</i> <r xmlns:tns="Sum4WSDL" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:double">0.0</r> </in0> • Red = Invoked service’s namespace • Green = Your service’s namespace • Yellow = Variable type & element types • Magenta = Variable structure

  20. Creating complex responses <?xml version="1.0" encoding="UTF-8"?> <ns1:addComplexReturn xmlns:ns1="urn:BeanService"> <i>4.2</i> <r>5.7</r> </ns1:addComplexReturn>

  21. Successful simulation Can now examine output variable

  22. Deploying your service • The ActiveBPEL Engine requires that all services are packaged into .bpr files. • These packages need deployment descriptors and manifests • These files need to be placed in the Tomcat/bpr directory • Or, deployed through ActiveBPEL Designer (easiest)

  23. Creating a Deployment Descriptor

  24. Finish deployment Change Deployment URL to Match ActiveBPEL Engine installation ‘Binding’ must be set to ‘RPC Encoded’

  25. Creating a client • See sample code on Wiki • String endpoint = URL of service • URL can be found in Axis servlet • call.setOperationName(new QName(“”,”<processName>”); • <processName> from BPEL Admin Console

  26. Engine admin client • http://siffleur.cs.ualberta.ca:9999/active-bpel/ • Can conflict with other Tomcat applications. Errors in the admin client are likely caused by this. • Can view process graph for deployed services online

  27. Tips • If working from home, authenticate to access.cs.ualberta.ca to access non-standard remote ports. • When creating an ‘invoke’ activity, copy remote WSDL to local project in order to use it. Local copy also needs to be added to web references.

  28. More tips • ‘Invoke’ creation wizard is buggy. If you can’t select your WSDL, click ‘Create new …’ then back to ‘Use existing …’. • Remember the ‘…’ when creating static endpoints. • There is more than one way to accomplish most things in ActiveBPEL.

  29. Yet more tips • If an import isn’t being read correctly, remove it and re-add it. • If properties give errors when they should work, check imports, then re-select each value

  30. References • ActiveBPEL documentation: http://www.activebpel.org/docs/index.html • BPEL v1.1 Specifications: http://www-128.ibm.com/developerworks/library/specification/ws-bpel/ • More on BPEL: next Tuesday in class

More Related