Title: BPEL Development with ActiveBPEL
1BPEL Development with ActiveBPEL
2What is BPEL?
- Business Process Execution Language for Web
Services (BPEL4WS) - Web service orchestration language
- Simple arithmetic and logical operators
- Lecture on Oct 26th!
3BPEL 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
4BPEL Developer
- Oracle BPEL Designer
- Oracle BPEL Process Manager (OC4J, JBOSS, BEA
WebLogic) - Eclipse BPEL Project
- Parasoft BPEL Maestro
- Intalio Designer
- Many others
5ActiveBPEL 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
6ActiveBPEL 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
7ActiveBPEL 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 ab, cd
- Create client for service
8Live Demo! (with slides)
Using an external web service to add four numbers
9Create project/BPEL
Add external web references
10Create 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
11Create service instance
- Force first element of sequence to create a new
instance
12Using external services
13Using external services
- Create input and output variables for services
14Create assignment activity
- Assign our services input to input for other
service
15Invoke web service
- Create invoke activity with Operation Wizard
- Select local copy of remote WSDL (cant use
remote copy buggy) - Choose port type and operation
- Create new PLT
- Add to existing WSDL (buggy)
16Assign service output
- Use built-in arithmetic operator
17Simulating execution
18Providing sample input
19Error!
- Need to initialize complex types before using
- Initialize with literals.
ltin0 xmlns"" xmlnsdef"http//siffleur.cs.ualber
ta.ca9999/axis/services/AddFunction1Service"
xmlnsxsi"http//www.w3.org/2001/XMLSchema-instan
ce" xsitype"defComplex"gt lti
xmlnstns"Sum4WSDL" xmlnsxsd"http//www.w3.org/
2001/XMLSchema" xmlnsxsi"http//www.w3.org/2001/
XMLSchema-instance" xsitype"xsddouble"gt0.0lt/igt
ltr xmlnstns"Sum4WSDL" xmlnsxsd"http//www
.w3.org/2001/XMLSchema" xmlnsxsi"http//www.w3.o
rg/2001/XMLSchema-instance" xsitype"xsddouble"gt
0.0lt/rgt lt/in0gt
- Red Invoked services namespace
- Green Your services namespace
- Yellow Variable type element types
- Magenta Variable structure
20Creating complex responses
lt?xml version"1.0" encoding"UTF-8"?gt ltns1addCom
plexReturn xmlnsns1"urnBeanService"gt ltigt4.2lt/i
gt ltrgt5.7lt/rgt lt/ns1addComplexReturngt
21Successful simulation
Can now examine output variable
22Deploying 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)
23Creating a Deployment Descriptor
24Finish deployment
Change Deployment URL to Match ActiveBPEL Engine
installation
Binding must be set to RPC Encoded
25Creating a client
- See sample code on Wiki
- String endpoint URL of service
- URL can be found in Axis servlet
- call.setOperationName(new QName(,ltprocessNamegt
) - ltprocessNamegt from BPEL Admin Console
26Engine admin client
- http//siffleur.cs.ualberta.ca9999/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
27Tips
- 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.
28More tips
- Invoke creation wizard is buggy. If you cant
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.
29Yet more tips
- If an import isnt being read correctly, remove
it and re-add it. - If properties give errors when they should work,
check imports, then re-select each value
30References
- ActiveBPEL documentation http//www.activebpel.or
g/docs/index.html - BPEL v1.1 Specifications http//www-128.ibm.com/d
eveloperworks/library/specification/ws-bpel/ - More on BPEL next Tuesday in class