Oracle SOA Suite Developer's
Guide
Design and build Service-Oriented Architecture
Solutions with the Oracle SOA Suite 10gR3
Matt Wright
Antony Reynolds
BIRMINGHAM - MUMBAI
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Oracle SOA Suite Developer's Guide
Copyright © 2009 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, without the prior written
permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of
the information presented. However, the information contained in this book is sold
without warranty, either express or implied. Neither the authors, Packt Publishing,
nor its dealers or distributors will be held liable for any damages caused or alleged to
be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2009
Production Reference: 1120309
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-847193-55-1
www.packtpub.com
Cover Image by Vinayak Chittar ()
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Credits
Authors
Matt Wright
Production Editorial Manager
Abhijeet Deobhakta
Antony Reynolds
Project Team Leader
Reviewers
Lata Basantani
Jason Jones
Phil McLaughlin
Project Coordinator
Rajashree Hamine
Acquisition Editor
Bansari Barot
Indexer
Rekha Nair
Development Editor
Swapna V. Verlekar
Proofreader
Laura Booth
Technical Editor
Gagandeep Singh
Production Coordinator
Rajni R. Thorat
Editorial Team Leader
Akshara Aware
Cover Work
Rajni R. Thorat
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Foreword
Over the past several years, we have seen a growing momentum in the adoption
of Service-Oriented Architectures, which continues to accelerate. At this point in
its evolution, SOA has started to cross the chasm between the early-adopter,
bleeding-edge IT architects and the mainstream IT and software development
community. And what enables this progression to continue gathering steam is
the sharing of knowledge, experiences, and lessons learned between the early
adopters in the community and those following their footsteps. As such, I am
very enthusiastic about Oracle SOA Suite Developer Guide because Matt Wright and
Antony Reynolds are exactly the right people to share this knowledge with us.
I joined Oracle in 2004 through the acquisition of Collaxa, which is where the Oracle
BPEL Process Manager came from. At Collaxa, I was responsible for all the interfaces
between our SOA products and our customers and the developer community. It
was very clear, shortly after the acquisition, that the Oracle field was going to be a
tremendous asset to the adoption of our products, our customers' success, and to
the advancement of SOA in general.
As Oracle became a leader in the SOA space over the next several years, building
out a full SOA platform through continued development and further acquisitions,
Antony and Matt continued to stand out as leaders among the special community
of Oracle SOA field representatives. Along the way, they built a knowledge base
that enabled customers to get over (and better yet, avoid…) common hurdles,
and feed customer requirements back into the engineering organization. We are
highly appreciative of the fact that they have undertaken the monumental task of
incorporating this knowledge into a book that is built on the existing documentation,
and will provide great value to experienced SOA practitioners and newbies alike.
SOA is about more than just tools, a fact that is clear even to those of us who work
for software vendors. However, to be effective with any software development
products, requires detailed knowledge of the products, APIs, features, and
capabilities. Antony and Matt cover these basics in this book in great detail.
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
But even more importantly, developers need to know about edge cases, design
patterns, and how these products fit into the full development life cycle. This
information comes best from real-world experiences with the products, even more
than from the people who build a product. It is particularly valuable that Antony
and Matt focus the majority of the content in this book on deeper topics such as
SOA exception handling, full life cycle support for testing, security, and migration
across environments. If I had a quarter for every customer who has asked me, over
the past eight years, about best practices to move their SOA composites from dev
to test to production… well, let's just say you can save your quarters and read
Chapter 18 instead.
Finally, even as SOA adoption matures, it is still important to understand why you
are adopting SOA, what the expected benefits are, and to measure your progress
toward those as objectively as possible. Today, most people state goals such as:
•
Developer productivity for system-to-system integration
•
Greater interoperability between systems
•
Flexibility and agility that reduces the costs associated with maintenance and
changing requirements
•
Service re-use
•
Scalability
•
Enhanced business visibility and administration
I believe that this book, coming from pragmatic practitioners in the field, will
specifically help developers realize these benefits from their SOA implementations
by providing clear and useful information on Oracle's SOA platform.
On behalf of the Oracle SOA Engineering and Product Management team, as well
as all the customers and partners who have asked for this book, we heartily thank
Antony and Matt for the investment of their time and energy, and hope that this
book helps you achieve your SOA goals.
David Shaffer
Vice President, Product Management
Oracle Integration
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
About the authors
Matt Wright has been involved with standards-based Service-Oriented
Architecture (SOA) since shortly after the initial submission of SOAP 1.1 to the
W3C in 2000, and has worked with some of the early adopters of BPEL since its
initial release in 2002. Since then, he has been a passionate exponent of SOA and
has been engaged in some of the earliest SOA-based implementations across EMEA
and APAC.
He is currently a Director of Product Management for Oracle Fusion Middleware
in APAC, where he is responsible for working with organizations to educate and
enable them in realizing the full business benefits of SOA in solving complex
business problems. As a recognized authority on SOA, Matt is also responsible
for evangelizing the Oracle SOA message and is a regular speaker and instructor
at private and public events. He also enjoys writing and publishes his own blog
(). Matt holds a B.Sc. (Eng) in Computer Science
from Imperial College, University of London.
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
It seems a long time ago that I first suggested to Antony that we
write this book. Since that day there have been numerous twists
and turns, not least the acquisition of BEA which resulted in many
revisions and re-writes. Having Antony as my co-author throughout
this process was invaluable; Antony's continued conviction and
enthusiasm throughout was instrumental in ensuring the book
finally made the light of day.
Throughout this process, everyone at Oracle has been very
supportive. I would like to make a special mention to Andy Gale
for guiding us in the right direction when we first suggested the
idea and to John Deeb for his continual support and encouragement
throughout. I would also like to express my gratitude to everyone in
the SOA Development team; in particular to David Shaffer, Demed
L'Her, Manoj Das, Neil Wyse, Ralf Mueller, and Mohamed Ashfar
who contributed to this book in many ways.
A major part in the quality of any book is down to the reviewers, so
I would like to say a big thank you to Phil McLaughlin, Jason Jones,
and James Oliver for all their incredibly valuable feedback, which
has made this a clearer and simpler book to read.
The staff at Packt Publishing Pvt. Ltd. helped a great deal to make
this book a reality. I would like to thank Rajashree Hamine the
Project Coordinator, Swapna Verlekar the Development Editor,
and Gagandeep Singh the Technical Editor.
Finally, writing a book is challenging at the best of times, to do
it whilst re-locating half way round the world from the UK to
Australia probably isn't the best timing! So I would like to say a
special thank you to my wife Natasha and my children Elliot and
Kimberley for their constant support and understanding throughout
this period.
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Antony Reynolds has worked in the IT industry for more than 24 years,
since getting a job to maintain yield calculations for a Zinc smelter while still an
undergraduate. After graduating from the University of Bristol with a degree in
Maths and Computer Science he worked first for a software house, IPL in Bath,
England, before joining the travel reservations system Galileo as a development
team lead. At Galileo he was involved in development and maintenance of
workstation products before joining the architecture group. Galileo gave him the
opportunity to work in Colorado and Illinois where he developed a love for the
Rockies and Chicago style deep pan pizza. He joined Oracle in 1998 as a sales
consultant and has worked with a number of customers in that time, including
a large retail bank's Internet banking project for which he served as chief design
authority and security architect.
Antony currently is lucky to work with customers on the early stages of many
interesting projects, providing advice on sizing models and architecture for the
SOA Suite.
Outside of work Antony is a bishop in the Church of Jesus Christ of Latter Day Saints
(Mormons) and is responsible for a congregation of 350. His wife and four children
make sure that he also spends time with them, playing games, watching movies, and
acting as an auxiliary taxi service.
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
I would like to thank my wife Rowan, and my four very patient
children, who have put up with their husband and father
disappearing into his office in the roof far too often. Several
reviewers have provided invaluable advice and assistance. Phil
McLaughlin of Oracle has been a constant source of encouragement
and constructive criticism as the book has homed in on its target
platform. Iswarya Dhandapani of Luton Borough Council took the
time to try out all my code samples and identify ones which didn't
work as well as providing feedback on my chapters from the view of
someone who has to use SOA Suite to provide real solutions. Oracle
ACE Jason Jones came a little late to the reviewing but managed
to review every chapter and made clear what worked for him and
what didn't. Simone Geib of Oracle Product Management provided
valuable feedback on the sections covering Oracle Service Bus. I
particularly appreciated the way all the reviewers not only pointed
out the problems in the book but also identified the positive parts.
Edwin Khodabachian is no longer with Oracle, but his team created
the BPEL Process Manager at Collaxa, which was bought by Oracle
and became under Edwins guidance the foundation of the SOA
Suite. Finally, I would like to express appreciation to Thomas Kurian
at Oracle who had the vision of a single integrated product suite, the
Oracle SOA Suite, and has always been willing to listen to provide
advice and guidance to me.
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
About the reviewers
Jason Jones is a software architect specializing in SOA and Java technologies.
Since 2003, Jason has worked for Zirous, an Oracle Certified Partner, where he
currently holds the position of Senior System Architect. In 2007, Jason was named an
Oracle ACE Director, a prestigious international group of Oracle experts. Jason has
been accepted as a speaker at Oracle OpenWorld, IOUG COLLABORATE, ODTUG
Kaleidoscope, and has a published article on OTN.
Jason's more than 8 years of experience in IT that includes SOA technologies such
as BPEL, ESB, SOAP, WS-Security, XML, and Enterprise Java technologies such
as Spring, Struts, JMS, JPA, Hibernate, and EJBs among many others. Jason is a
Sun Certified Java Programmer (SCJP), Sun Certified Web Component Developer
(SCWCD), and holds a BS in Computer Science from Iowa State University.
Jason's blog can be found at realjavasoa.blogspot.com.
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Phil McLaughlin has 20 years of early adopter experience with the technologies
associated with SOA, working with architectural models such as object orientation
before they were mainstream. In the late 1980s and early 1990s this was largely
with the Smalltalk programming language and associated tools but he was asked
to investigate and teach Java in 1997. Since then, he has maintained his interest in the
development of distributed composite applications intially with CORBA, then J2EE
and more recently SOA itself.
Phil's experience of SOA spans the theoretical and practical, having been a senior
lecturer in academia until 1997 specializing in object oriented software (which
could reasonably be argued as providing the foundations of the SOA architectural
model), and how to transfer the requisite skills to developers often struggling with
new and different architectural paradigms. Since 1997, he has worked in a number
of specialist consultancies covering topics such as analysis and design methods,
development and implementation from the OO/SOA perspective.
Phil Joined Oracle Corporation (UK) in 2002 when Oracle acquired the TopLink
persistence management framework from WebGain and since then has specialized
in working with Partners/System Integrators to educate them on best practice
around the use of Oracle Java technology and more recently the Oracle SOA Suite.
Phil currently holds the position of Master Principal Sales Consultant in the UK SOA
pre-sales team where he provides initial advice and solution mapping to customers
and partners about Oracle's SOA offerings.
Phil has worked with both authors for a number of years and is very pleased that
thay have decided to share their wealth of knowledge and practical experience with
the wider community. For anyone working with Oracle SOA suite, this is a 'must
have' book.
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Table of Contents
Preface
Chapter 1: Introduction to Oracle SOA Suite
1
9
Service-oriented architecture in short
Service
Orientation
Architecture
Why SOA is different
Terminology
Inter-operability
Extension and evolution
Reuse in place
SOA Suite components
Services and adapters
ESB—service abstraction layer
Service orchestration—BPEL Process Manager
Rules
Security and monitoring—OWSM
Active monitoring–BAM
Business to business—B2B
Complex Event Processing—CEP
SOA Suite architecture
Top level
Component view
Implementation view
A recursive example
JDeveloper
Other components
Service repository and registry
9
9
10
11
12
13
13
13
14
14
14
15
16
18
18
19
19
20
20
20
21
21
22
22
23
23
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Table of Contents
BPA Suite
BPM Suite
Portals and WebCenter
Enterprise manager SOA management pack
Summary
Chapter 2: Writing Your First Service
Installing SOA Suite
Writing our first BPEL process
Creating an application
Creating a BPEL project
23
24
24
24
24
25
25
26
27
29
Assigning values to variables
32
Deploying the process
Testing the BPEL process
Writing our first proxy service
Writing the Echo proxy service
Creating a change session
Creating a project
34
35
39
40
41
42
Creating project folders
43
Creating service WSDL
44
Importing a WSDL
45
Creating our business service
Creating our proxy service
48
51
Creating message flow
Activating the Echo proxy service
Testing our proxy service
53
54
55
Summary
59
Chapter 3: Service Enabling Existing Systems
61
Types of systems
Web service interfaces
Technology interfaces
Application interfaces
Java Connector Architecture
Creating services from files
A payroll use case
Reading a payroll file
61
62
62
64
64
64
65
65
Starting the wizard
Naming the service
Identifying the operation
Defining the file location
Selecting specific files
Detecting that the file is available
Message format
Finishing the wizards
65
66
67
69
70
71
72
81
[ ii ]
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Table of Contents
Throttling the file and FTP adapter
81
Creating a dummy message type
Adding an output message to the read operation
Using the modified interface
Writing a payroll file
Selecting the FTP connection
Choosing the operation
Selecting the file destination
Completing the FTP file writer service
Moving, copying, and deleting files
Generate an adapter
Modify the port type
Modify the binding
Add additional header properties
81
82
82
82
82
83
84
85
85
85
86
86
87
Adapter headers
Testing the file adapters
Creating services from databases
Writing to a database
88
89
90
90
Selecting the database schema
Identifying the operation type
Identifying tables to be operated on
Identifying the relationship between tables
Under the covers
Summary
90
92
93
94
94
95
Chapter 4: Loosely Coupling Services
Coupling
Number of input data items
Number of output data items
Dependencies on other services
Dependencies of other services on this service
Use of shared global data
Temporal dependencies
Reducing coupling in stateful services
Oracle Service Bus design tools
Oracle workshop for WebLogic
Oracle Service Bus Console
Service Bus overview
Service Bus message flow
Virtualizing service endpoints
Moving service location
Selecting a service to call
Virtualizing service interfaces
Physical versus logical interfaces
97
97
98
98
99
99
100
100
101
105
105
106
106
107
107
108
116
119
119
[ iii ]
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Table of Contents
Mapping service interfaces
Applying canonical form in the service bus
An important optimization
120
126
127
Summary
127
Chapter 5: Using BPEL to Build Composite
Services and Business Processes
Basic structure of a BPEL process
Core BPEL process
Variables
129
130
130
131
Partner Links
Messaging activities
132
132
Synchronous messaging
Asynchronous messaging
132
133
A simple composite service
Creating our Stock Quote service
134
135
Import StockService schema
136
Calling the external web services
138
Calling the web service
Assigning values to variables
Testing the process
Calling the exchange rate web service
Assigning constant values to variables
Using the Expression builder
140
142
144
144
144
145
Asynchronous service
150
Using the Wait activity
152
Improving the stock trade service
154
Creating the while loop
Checking the price
Using the Switch activity
154
156
157
Summary
160
Chapter 6: Adding in Human Workflow
Workflow overview
Leave approval workflow
Creating our workflow process
Defining the workflow task
Specifying task parameters
Creating the user interface to process the task
Running the workflow process
Processing tasks with the worklist application
Improving the workflow
Dynamic task assignment
Assigning tasks to multiple users or groups
Cancelling or modifying a task
161
161
162
162
163
165
169
170
171
173
173
175
176
Withdrawing a task
176
[ iv ]
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Table of Contents
Modifying a task
Difference between task owner and initiator
Requesting additional information about a task
Managing the assignment of tasks
Reassigning reportee tasks
Reassigning your own task
Delegating tasks
Escalating tasks
176
176
177
178
178
180
181
181
Using rules to automatically manage tasks
Setting up a sample rule
181
182
Summary
184
Chapter 7: Using Business Rules to Define Decision Points
Business Rule concepts
Leave approval rule
Using the Rule Author
Creating a Rule Repository
Creating a dictionary
Defining facts
Creating XML Facts
Using aliases
Hiding facts and properties
Saving the rule dictionary
185
186
186
186
187
188
188
189
192
192
192
Creating a rule set
193
Adding a rule to our rule set
Defining the test for the pattern
194
196
Creating a Decision Service
Creating a Rule Engine Connection
Using a file based repository
Using a WebDAV repository
Creating a Decision Service
Adding a Decide activity
199
200
200
201
202
204
Assigning facts
205
Using functions
Importing Java classes as facts
Creating a function
Invoking a function from within a rule
Summary
Chapter 8: Building Real-time Dashboards
How BAM differs from traditional business intelligence
Oracle BAM scenarios
BAM architecture
Logical view
Physical view
206
207
208
210
212
213
213
214
215
215
215
[v]
This material is copyright and is licensed for the sole use by Richard Ostheimer on 18th June 2009
2205 hilda ave., , missoula, , 59801
Table of Contents
Capture
Store
Process
Deliver
216
216
217
217
BAM platform anomaly
User interface
Monitoring process state
Defining data objects
218
218
219
220
Instrumenting BPEL
Testing the events
Creating a simple dashboard
Monitoring process status
Monitoring KPIs
Summary
224
231
231
233
237
239
Chapter 9: oBay Introduction
241
A digression on populating data object fields
oBay requirements
User registration
224
242
242
User login
242
Selling items
243
List a new item
Cancel listing
Completing the sale
View account
243
245
245
246
Buying items
247
Search for items
Bidding on items
247
247
Defining our blueprint for SOA
Architecture goals
Typical SOA architecture
249
249
250
Application services layer
Virtual services layer
Business services layer
Business process
User Interface layer
252
253
254
257
258
One additional layer
259
oBay high-level architecture
oBay Application services
262
262
Where the SOA Suite fits
260
Workflow services
External web services
oBay developed services
263
263
263
oBay internal virtual services
oBay business services
263
264
[ vi ]
Table of Contents
oBay business processes
264
oBay user interface
Downloading and installing oBay application
Summary
264
265
265
Chapter 10: Designing the Service Contract
267
Using XML Schema to define business objects
Modelling data in XML
Data decomposition
Data hierarchy
Data semantics
Use attributes for metadata
268
268
268
269
270
270
Schema guidelines
271
Element naming
Namespace considerations
271
273
Partitioning the canonical model
279
Single namespace
Multiple namespaces
Chameleon namespaces
280
281
282
Using WSDL to define business services
Use document (literal) wrapped
Building your abstract WSDL document
WSDL namespace
Defining the 'wrapper' elements
Defining the 'message' elements
Defining the 'portType' element
Using XML Schema and the WSDL within BPEL PM
Sharing XML Schemas across BPEL processes
Deploying schemas to the BPEL server
Importing schemas
Updating the schema URL
286
286
287
287
287
289
289
290
290
290
291
291
Importing the WSDL document into BPEL PM
Adding the PartnerLink definition to the abstract WSDL
Sharing XML Schemas in the service bus
Importing the WSDL document into the service bus
Strategies for managing change
Major and minor versions
Service implementation versioning
291
293
294
294
297
297
298
Schema versioning
298
Change schema location
Update schema version attribute
Resist changing the schema namespace
WSDL versioning
299
299
299
300
Incorporating changes to the canonical model
Changes to the physical contract
[ vii ]
300
301
Table of Contents
Updating the service endpoint
Managing the service lifecycle
301
302
Summary
303
Chapter 11: Building Business Services
Build versus reuse
Adapters and web service wrappers
Adapters
Service wrappers
305
305
306
306
306
Reusing existing functionality directly
Exposing a PL/SQL stored procedure as a service
Launching the PL/SQL web service wizard
Choosing the level of Java Enterprise Edition support
Selecting a database connection and defining service bindings
Determine message style
Select stored procedures and functions to expose
Modifying existing functionality using service bus
Converting an existing service to canonical form
Create a new service interface
Adding the non-canonical service
More complex conversions
307
307
308
308
309
310
310
313
313
314
319
321
Exposing a Java class as a service
Wrapping the Java code
Launching the Web Service wizard
Select deployment platform
Select service name
Select message format
Provide custom serializers
Mapping
Select methods
321
321
322
323
323
324
325
326
326
Creating services from scratch
Creating a Java service from a WSDL
Starting the wizard
Choosing the WSDL
Choosing the mapping options
The generated Java
327
328
328
329
329
331
Summary
332
Chapter 12: Building Validation into Services
Using XML Schema validation
Strongly typed services
Loosely typed services
Combined approach
Using schema validation within BPEL PM
Validation of inbound documents
Validation of outbound documents
Validation between BPEL processes
333
334
334
336
337
338
338
338
338
[ viii ]
Table of Contents
Setting validateXML for a BPEL domain
Setting validateXML for a PartnerLink
340
341
Using schema validation within the service bus
341
Validation of inbound documents
Validation of outbound documents
341
344
Using Schematron for validation
Overview of Schematron
344
345
Assertions
Rules
Patterns
Namespaces
Schema
346
347
348
348
348
Intermediate validation
348
Using Schematron within BPEL PM
351
Cross field validation
Date validation
Element present
349
350
350
Creating a Partner Link for the Validation Service
Creating a Schematron file
Invoking the validate operation
Sharing a Schematron between processes
351
352
352
355
Using Schematron with the service bus
Putting validation in the underlying service
Using Business Rules for validation
Coding in validation
Returning validation failures in synchronous services
355
356
356
357
357
Layered validation considerations
Dangers of over validation
Dangers of under validation
Negative coupling of validation
Summary
360
360
361
361
362
Defining faults
Custom fault codes
Validation failures in asynchronous services
Chapter 13: Error Handling
Business faults
Defining faults in synchronous services
Defining faults in asynchronous services
Handling business faults in BPEL
Catching faults
Adding a catch branch
Throwing faults
358
358
359
363
364
364
365
365
366
367
369
Compensation
370
Defining compensation
371
[ ix ]
Table of Contents
Triggering a compensation handler
Adding a compensate activity
372
372
Returning faults
373
Asynchronous considerations
374
Using the fault management framework
Defining a fault policy
Defining fault policy conditions
Defining fault policy actions
Binding fault policies
375
375
376
378
382
Binding fault polices at the process level
Binding fault policies at the domain level
Binding resolution
382
383
384
Human intervention in BPEL Console
384
Change the input variable contents and retry
Set the output variable and continue
385
386
Handling faults within the service bus
Handling faults in synchronous proxy services
Raising an error
Defining an error handler
Getting the qualified fault name
Handling unexpected faults
Returning a SOAP Fault
Adding a Service Error Handler
Handling permanent faults
Handling transient faults
387
388
388
389
392
393
394
395
396
399
Handling faults in one-way proxy services
Summary
Chapter 14: Message Interaction Patterns
Message routing
WS-Addressing
400
401
403
403
404
Request message with WS-Addressing
Response message with WS-Addressing
Additional message exchanges
405
405
406
Using BPEL correlation sets
Using correlation sets for multiple process interactions
406
407
Message aggregation
Message routing
415
417
Defining a correlation set property
Defining correlation set
Using correlation sets
Defining property aliases
Correlating the callback
Specifying the reply to address
407
409
410
412
417
418
Creating a proxy process
418
Using the pick activity
419
[x]
Table of Contents
Defining the correlation sets
421
Completing the aggregation
Scheduling services
Defining the schedule file
Using FlowN
421
423
423
425
Accessing branch specific data in FlowN
426
Dynamic Partner Links
427
Define common interface
Define Job Partner Link
Create endpoint reference
Update Endpoint
427
428
428
429
Re-cycling the scheduling file
Summary
430
431
Chapter 15: Workflow Patterns
Managing multiple participants in a workflow
Using multiple assignment and routing policies
Determining the outcome by a group vote
Using multiple Human Tasks
433
433
434
434
437
Linking individual Human Tasks
437
Using the workflow API
Defining the order fulfillment Human Task
438
440
Specifying task parameters
Specifying the routing policy
Notification settings
440
442
443
Querying task instances
444
Getting task details
Updating a task instance
455
456
Defining a Partner Link for the Task Query Service
User authentication
Querying tasks
Flex fields
Populating Flex Fields
Accessing Flex fields
Defining a PartnerLink for the Task Service
Using the updateTask operation
Summary
444
447
448
450
451
452
457
458
460
Chapter 16: Using Business Rules to Implement Services
How the rule engine works
Asserting facts
Executing the ruleset
461
461
462
462
Rule activation
Rule firing
462
463
Retrieve result
463
[ xi ]
Table of Contents
Session management
Debugging a ruleset
464
464
Using DM.println to add additional logging
Using business rules to implement an auction
Defining our XML Facts
Defining the decision service
Using a global variable to reference the result set
Defining a global variable
Defining a rule to initialize a global variable
Writing our auction rules
Evaluating facts in date order
Checking for non-existent fact
Using Calendar functionality
Updating the bid status
466
466
466
469
470
470
471
472
472
473
473
474
Using inference
474
Processing the next valid bid
476
Using functions to manipulate XML Facts
Asserting a winning bid
Retracting a losing bid
Rules to process a new winning bid
Validating the next bid
Rule to process a losing bid
476
477
479
480
480
482
Complete ruleset
Performance considerations
483
484
Managing state within the BPEL process
Summary
484
486
Chapter 17: The Importance of Bindings
487
The web services stack
Logical view of web services stack
Physical view of web services stack
Understanding Web Service Description Language (WSDL)
How to read WSDL
487
487
488
489
489
The case for different bindings
Connectivity
Transactionality
Performance
JCA bindings
494
494
495
495
495
<definitions>
<types>
<message>
<binding>
<service>
[ xii ]
490
491
492
492
493
494