Skip Headers
Oracle® BPEL Process Manager Developer's Guide
10g (10.1.3.1.0)

Part Number B28981-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

1 Introduction to Oracle BPEL Process Manager

This chapter provides a brief introduction to the Business Process Execution Language (BPEL), Oracle BPEL Process Manager, and Oracle JDeveloper, which enables you to design BPEL processes. An overview of how to use the information in this guide and references to additional tutorials and demonstrations installed with Oracle BPEL Process Manager are also provided.

This chapter contains the following topics:

Note:

Oracle recommends that you perform the tutorials described in Oracle BPEL Process Manager Quick Start Guide and Oracle BPEL Process Manager Order Booking Tutorial before using this guide. These tutorials provide you with an introduction to designing and deploying BPEL processes.

1.1 What Is BPEL?

BPEL is an XML-based language for enabling task sharing across multiple enterprises using a combination of Web services. BPEL is based on the XML schema, simple object access protocol (SOAP), and Web services description language (WSDL). BPEL provides enterprises with an industry standard for business process orchestration and execution. Using BPEL, you design a business process that integrates a series of discrete services into an end-to-end process flow. This integration reduces process cost and complexity. The BPEL language enables you to define how to:

See Also:

1.2 What Is Oracle BPEL Process Manager?

Oracle BPEL Process Manager provides a framework for easily designing, deploying, monitoring, and administering processes based on BPEL standards. Oracle BPEL Process Manager provides support for the following features:

Oracle BPEL Process Manager adds value and ease of use to BPEL functionality by providing support for the following in Oracle JDeveloper:

Oracle BPEL Process Manager can also be integrated with Oracle Business Activity Monitoring, Oracle Application Server Portal, Oracle Application Server Integration B2B, and Oracle Application Server Integration InterConnect.

See Also:

1.3 What Is Oracle JDeveloper?

Oracle BPEL Process Manager provides support for using Oracle JDeveloper to graphically design BPEL processes.

Oracle JDeveloper is an integrated development environment (IDE) for building applications and Web services using Java, XML, and SQL standards. Oracle JDeveloper supports the entire development life cycle with integrated features for designing, coding, debugging, testing, profiling, tuning, and deploying applications. A visual and declarative development approach and the Oracle Application Development Framework (ADF) work together to simplify application development and reduce coding tasks.

Oracle JDeveloper uses BPEL as its native format. This means that processes built with Oracle JDeveloper are 100% portable. Oracle JDeveloper also enables you to view and modify the BPEL source without decreasing the usefulness of the tool.

You design BPEL processes by dragging and dropping elements (known as activities) into the process and editing their property pages. This eliminates the need to write BPEL code. You integrate BPEL processes with external services (known as partner links). You also integrate adapters and services such as workflows, transformations, notifications, sensors, worklist task management, and business rules with the process. Oracle JDeveloper can deploy the developed processes directly to Oracle BPEL Server. This facilitates the development and maintenance of BPEL processes.

Oracle BPEL Process Manager provides support for the following services and adapters in Oracle JDeveloper:

Figure 1-1 shows Oracle JDeveloper with a BPEL process being designed.

See Also:

1.4 How to Use This Guide

This guide is divided into several parts designed to first familiarize you with key BPEL development concepts and features and then describe how Oracle BPEL Process Manager adds value and ease of use to BPEL functionality. This guide layout is described in Table 1-1.

Table 1-1 Developer's Guide Contents

Part Description
Part I, "Introduction and Concepts"
Chapters in this part provide an overview of the following topics:
  • BPEL specifications, Oracle BPEL Process Manager, and Oracle JDeveloper

  • Demonstrations, tutorials, and activity and conceptual references provided with Oracle BPEL Process Manager

  • Starting and stopping key Oracle BPEL Process Manager components

  • An introduction to Oracle JDeveloper, including an overview of designer window sections, and a description of project files and the drag-and-drop activity functionality you follow to design and deploy a BPEL process

  • Oracle BPEL Control for running deployed BPEL processes

Part II, "Reviewing Key BPEL Development Concepts and Code Samples"
Chapters in this part introduce you to key BPEL development concepts and associated code samples. These chapters are useful for any developer interested in understanding the underlying functionality of BPEL. Specific topics discussed include the following:
  • XML document manipulation

  • Synchronous and asynchronous services invocation

  • Parallel flows

  • Conditioning branching

  • Fault handling and exception management

  • Java/J2EE code integration in BPEL processes

  • Events and timeouts

  • BPEL process invocation

  • Interaction patterns

Part III, "Oracle BPEL Process Manager Services"
Once you have gained a solid knowledge of the key BPEL development concepts described in Part II, you are ready to learn how Oracle BPEL Process Manager adds value and ease of use to BPEL functionality to provide support for the following services:
  • Transformations

  • Notifications

  • Workflows

  • Worklists

  • Sensors

  • Business rules

Part IV, "Development and Deployment Life Cycle"
Chapters in this part describe how to run and manage deployed BPEL processes from Oracle BPEL Control, how to test BPEL processes in a preproduction environment, how to create run time reports, and how to integrate with OracleAS Portal.
Part V, "Reference Information"
Appendices in this part provide reference details about troubleshooting, supported activities, deployment descriptor properties, and XPath expression functions.

See Also:

1.5 Getting Started with Demonstrations, Activity and Conceptual References, and Tutorials

In addition to the contents of this guide, the Oracle BPEL Process Manager Quick Start Guide, and the Oracle BPEL Process Manager Order Booking Tutorial, a series of demonstrations, activity and conceptual reference materials, and tutorials are also provided to increase conceptual knowledge and hands-on experience with Oracle BPEL Process Manager. These materials are installed with Oracle BPEL Process Manager in the SOA_Oracle_Home\bpel\samples directory. Review the README.txt file in the samples directory for instructions on using these samples.

Note:

The samples by default use a password of welcome1 for the oc4jadmin user. If you are using a different password for this user, you must follow the instructions in the README.txt file in the samples directory to make your password compatible with the samples.

Table 1-2 describes the contents of the samples directory. If you are using Oracle JDeveloper, you can also access details about this directory from the Start Menu by selecting Start > All Programs > Oracle - Oracle_Home > Oracle BPEL Process Manager > Getting Started with Samples.

You can automatically create the BPEL project for a sample by performing the following steps:

  1. Select an application in the Application Navigator.

  2. Select Open from the File main menu in Oracle JDeveloper.

  3. Go to the directory of the sample you want to use.

  4. Select the .jpr file of the sample.

    This causes the BPEL project for the selected sample to display in the Application Navigator.

New samples are periodically added. Visit the Oracle BPEL Process Manager site on the Oracle Technology Network (OTN) periodically for information about downloading any new samples:

http://www.oracle.com/technology/products/ias/bpel/index.html

Table 1-2 Tutorials, Demonstrations, and Reference Materials

Directory Description
demos Contains a set of common business scenarios and describes how they are implemented with BPEL. Table 1-3 provides descriptions of the available demonstrations.
interop Contains a set of BPEL projects showing the interoperability of Oracle BPEL Process Manager with Web services implemented with the following:
  • Microsoft .Net

  • Apache Axis

  • BEA WebLogic

references Contains activities and concepts defined in the BPEL language. Table 1-4 provides descriptions of the available activities and concepts.
tutorials Contains a set of BPEL processes targeting the various BPEL tasks to which you are exposed. Table 1-5 provides descriptions of the available tutorials.
utils Contains a set of building block services shared by the BPEL samples

1.5.1 What Demonstrations Are Available?

Table 1-3 describes the BPEL process demonstrations available for use in the demos directory. See the documentation available in these directories for instructions on running these demonstrations.

Table 1-3 demos Directory Contents

Directory Description
AmazonFlow Describes how to integrate an Amazon Web service with a BPEL process to search for an item.
Attachment Describes how to use binary file attachments in SOAP messages with the Direct Internet Message Encapsulation (DIME) and Multipurpose Internet Message Extensions (MIME) protocols.
AutoLoanDemo Describes how to integrate Oracle BPEL Process Manager with a backend business rules engine. A BPEL process is modeled that uses the decision service to perform the following:
  • Calculate a credit rating for a customer loan request

  • Provide a recommendation on the bank and APR for the requested loan

The output of the decision service is passed to a human task for modification before the loan request is approved or rejected.

BankTransferDemo Describes how to perform a bank transfer. This sample illustrates the ability of Oracle BPEL Process Manager transaction management. The sample shows two types of transaction management:
  • Internal engine-implemented JTA transaction management

  • Explicit compensating transactions modeled in BPEL

BPELTest Describes several of the BPEL test framework features. The test framework provides a structured way to test BPEL processes and alleviates common problems like dependencies on complex external systems and performing data assertions.
CheckoutDemo Describes an interaction between a Java Server Page (JSP) user interface and a BPEL process
DocumentReview Describes how to create a business process for reviewing a document in parallel. A final reviewer reviews comments from each of the group reviewers. A worklist application views and acts on the tasks. This example highlights the use of the following features:
  • Modeling a group vote participant type in the Oracle JDeveloper environmentUsing Oracle BPEL Worklist Application to view and act on tasks

ExpenseRequestApproval Describes how to approve or reject an expense request from an employee. This demonstrates management chain approval and use of the decision service to determine the levels of approval required for a particular expense request.
GoogleFlow Describes how to invoke a Google Web service from a BPEL process
HelpDeskServiceRequest Describes how to process a help desk service request. The demonstration uses an ad hoc participant type for accepting or rejecting a service request.
HotwireDemo This sample illustrates the asynchronous multistep conversation between two BPEL processes. One BPEL process initiates the conversation and sends the message to the other BPEL process. The second process waits for 30 seconds and responds asynchronously. Then the first process waits for 30 seconds and calls the second process again. The second process responds again after 30 seconds.
IBMSamples Describes how to execute the BPEL samples shipping with the IBM Business Process Execution Language for Web Services Java Run Time (BPWS4J) on Oracle BPEL Server
LoanDemo Describes how to integrate a synchronous credit rating service and two asynchronous loan processor services into an end-to-end loan procurement application with a Java Server Page (JSP) user interface to initiate the process and view loan offer results
LoanDemoPlus Describes how to extend the LoanDemo sample to use Java embedding exception management, including manual processing steps and development of a richer custom user interface
ParallelSearch Describes how to use Oracle BPEL Server to perform parallel synchronous invocations. This sample illustrates how to use the nonBlockingInvoke property in bpel.xml. This property enables you to execute a synchronous BPEL process calling multiple synchronous Web services in flow in real parallel mode. If you set the nonBlockingInvoke property to false, Oracle BPEL Server blocks the Web service call until the other is finished.
ResilientDemo Describes how to use a BPEL process to manage fault handling and run time exceptions
SalesforceFlow Describes how to integrate the Salesforce.com sForce Web services into a BPEL process (including authentication, session management, and dynamic load balancing)
SleepBroker Describes how to use a process that receives a number, creates that number of branches using the flowN activity, and waits for a period of time based on the index variable setting

This process receives an integer as input. It creates that number of branches using bpelx:flowN. In each branch, a wait activity is executed. The wait time is based on the index variable.

VacationRequest Describes how to approve or reject a vacation request. The approval or rejection is a one-step process involving the manager of the user filing the vacation request. This demonstration also describes the use of workflow for simple approvals, and the use of a deployment descriptor preference to replace a static parameter value in the BPEL process.
XSLMapper Describes how to create a transformation that maps a purchase order schema to an invoice schema

1.5.2 What Activity and Conceptual References Are Available?

Table 1-4 describes the activity and conceptual references available for review and use in the references directory. The comment lines in each bpel.xml file and .bpel file describe the specific context in which the activity is being used.

Table 1-4 references Directory Contents

Directory Activity Description
Assign Shows how to receive an input string, prefix Hello to it using an assign activity, and asynchronously return the result
BPELTest Illustrates the features of the BPEL test framework. The BPEL test framework provides emulation and assertion capabilities and eases the automation of testing BPEL processes.
Catch Shows how an exception can be raised using the throw activity and managed using a catch activity
CustomXPathFunction Shows how to use custom XPath functions within assign activities
DynamicPartnerLink Shows how to update dynamic partner links
Event Shows how to enable an asynchronous BPEL process and use event handlers to receive and process events while waiting for the asynchronous callback
Flow Shows how to create parallel paths of execution within a BPEL process
FlowN Shows how to receive an integer and create that number of branches
Invoke Shows how to invoke a synchronous integer increment service
JavaExec Shows how to use the BPEL exec extension to invoke a Java class from within a BPEL process
Link Shows how a link defines dependencies between executions of activities. In this sample, a link in a flow activity sequences the execution of two service invocations.
Pick Shows how to invoke an asynchronous loan service and use a BPEL pick activity to receive an asynchronous response or a timeout message. If the loan amount is more than 10000, it takes about 30 seconds for the server to process it, causing a timeout to be raised.
Receive Shows how to invoke an asynchronous loan service and wait for an asynchronous callback message using the BPEL receive activity
Replay Shows how to replay an activity, such as a scope
Reply Shows how to receive a string as input, perform an assign, and use the reply activity to synchronously return the modified string
Switch Shows how to use a switch activity to return a different text message based on whether the input value is greater or less than zero
Terminate Shows how to invoke a synchronous stock quoting service. The terminate activity then aborts, causing the final callback invoke activity to be skipped.
Throw Shows how to throw a BPEL fault (without handling it) and cause the instance to fault
Wait Shows how to receive input, wait for 60 seconds, and asynchronously call back a client
While Shows how to invoke an incremental service n times with a while activity, where n is provided as an input value
Xpath Shows how to receive an invalid application, perform several XPath copies, and asynchronously return the application. This showcases the use of namespace-qualified XPath query strings in assign activities.
XPathFunction Shows how to define and use custom XPath functions within BPEL assign activities

See Also:

1.5.3 What Tutorials Are Available?

Table 1-5 describes the tutorials available for use in the tutorials directory. See the documentation available in these directories for instructions on running these tutorials.

Table 1-5 tutorials Directory Contents

Directory Description
101.HelloWorld This sample takes a string as input, appends Hello to it, and asynchronously generates a greeting as a response.
102.InvokingProcesses This sample invokes a variety of processes, including JSPs and remote method invocations (RMIs).
103.XMLDocuments This sample shows how to use XML variables and the assign activity to manipulate XML documents.
104.SyncQuoteConsumer This sample shows how to use the invoke activity to invoke a synchronous stock quote service.
105.AsyncCompositeLoanBroker This sample shows how to use the receive activity to receive a callback from an asynchronous loan processor Web service.
106.ParallelFlows This sample shows how to use the flow activity to define parallel paths of execution within a process. In this sample, two asynchronous loan processing services are invoked in parallel.
107.Exceptions This sample shows how to use fault handling to manage faults generated by invoke and throw activities. The process uses a pick activity to receive the response from a loan validator. If an exception message is received, it throws an error that is handled in a catch fault handler.
108.Timeouts This sample shows how to define and manage timeouts using the pick activity.
109.CorrelationSets This sample shows how to use correlation sets to correlate asynchronous message exchanges between buyer and seller services. It shows content-based correlation of asynchronous messages.
112.Arrays This sample shows how to design a BPEL process that uses arrays. This sample illustrates how you can handle array structures present in your XML payload by using the while activity in the BPEL process.
113.ABCARouting This sample shows how to coordinate the flow of messages across three services: A, B, and C.
114.XSLTTransformations This sample shows how to invoke XSLT transformations to perform complex data manipulations. The process takes in complex invoice data as input. It uses the ora:processXSLT function to pass this data as input to be the XSLT service and returns the transformed content.
115.XQueryTransformations This sample shows the use of XQuery functions in Oracle BPEL Process Manager. This sample requires XQuery libraries available only in the Oracle BPEL Process Manager for OracleAS Middle Tier installation type or one of the Oracle Application Server SOA installation types. This sample cannot be used with the Oracle BPEL Process Manager for Developers installation type.
121.FileAdapter These samples show how to use the file adapter. The following tutorials are provided:
  • COBOL Copybook — Processes native data defined using a COBOL copybook

  • Complex structures — Processes native data defined in a custom format

  • Debatching — Processes native data containing multiple messages defined in a custom format

  • Flat structure — Processes address book entries from a CSV (Comma Separated Values) file. This is then transformed to a new address format (fixed-length format).

  • Opaque with headers — Handles native data in an opaque format (for example, GIF or JPEG files)

See Also: Oracle Adapters for Files, FTP, Databases, and Enterprise Messaging User's Guide

122.DBAdapter The following samples show how to use the database adapter:
  • advanced—Advanced samples that insert and extract XML data stored in a database as a CLOB, set up sequencing, and insert into multiple databases as part of a single transaction

  • Delete — A record is passed to the operation and the database row with the primary key is deleted.

  • File2StoredProcedure—Data is provided to a stored procedure, which is then executed.

  • File2Table —The file adapter, XSLT Mapper, and database adapter take an inbound purchase order, transform it to another order format, and produce an outbound message.

  • Insert — A record is passed to the operation and inserted into the database as relational data.

  • InsertWithCatch—Adds fault handling to an insert operation

  • MasterDetail—Replicates data in the table of one database to the tables of another database

  • Merge —A record is passed to the operation and a database row is either inserted or updated.

  • PollingControlTableStrategy—An inbound operation polls XML instances. A control table stores the primary key of every row that has yet to be processed.

  • PollingLastReadIdStrategy—An inbound operation polls XML instances. A helper table remembers a sequence value. A sequence value of 1000 means that every record with a sequence less than that value has already been processed.

  • PollingLastUpdatedStrategy—An inbound operation polls XML instances. A helper table remembers the last-updated value.

  • PollingLogicalDeleteStrategy—An inbound operation polls XML instances. A special field is updated on each row processed. The WHERE clause is updated at run time to filter out processed rows.

  • QueryByExample—An outbound query by example operation

  • RefCursor—A BPEL process takes user input and executes a stored procedure. Output from a REF CURSOR is returned.

  • ResultSetConverter—An alternative using REF CURSOR

  • SelectAll—An outbound Select All operation

  • SelectAllByTitle—An outbound SelectAllByTitle operation

  • SelectCount—Pure SQL support in 10.1.3.1

  • SelectGroupBy—Pure SQL support in 10.1.3.1

  • SelectStar—Pure SQL support in 10.1.3.1

  • sql—SQL*Server example

  • Update—A record is passed to the operation and the database row with the same primary key is updated

  • UpdateAll—Pure SQL support in 10.1.3.1

See Also: Oracle Adapters for Files, FTP, Databases, and Enterprise Messaging User's Guide

123.JMSAdapter This samples shows the ability of the JMS Adapter to process incoming messages in a JMS destination (a queue) and write the same message to another JMS destination (a topic).

See Also: Oracle Adapters for Files, FTP, Databases, and Enterprise Messaging User's Guide

124.AQAdapter These samples show how to use the AQ adapter:
  • ADT — A message is received from the AQ adapter, the payload copied to an outbound message, and the AQ adapter invoked with the outbound message. ADT queues are used.

  • ADT_with_CLOB_Payload — A message is received from the AQ adapter, the CLOB payload and payload header copied to an outbound message, and the AQ adapter invoked with the outbound message.

  • ADT_with_CLOB_Payload_as_Opaque — A process uses a non-XML CLOB field as a payload field.

  • ADT_with_XMLType_Payload—A process receives a message from the AQ adapter, copies the payload and PayloadHeader to an outbound message, and invokes the AQ adapter with the outbound message.

  • AQ_10_1_3_Supported_ADT_Types— Uses SQL Oracle primitive and ANSI types supported by the AQ adapter ADT

  • AQMessageRejectionHandler — Rejected messages are handled through the rejectedMessageHandler property.

  • AQOutboundCorrelation — Correlations are used to correlate an outbound invoke activity with an inbound receive activity.

  • AQSupportedADTTypes — All SQL primitive types supported by the AQ adapter ADT are used.

  • File2AQBLOB2File — Reads GIF files from a directory every 10 seconds with the file adapter and enqueues the whole file into a BLOB column field of an ADT queue using the AQ adapter

  • MulticonsumerInbound — The AQ adapter listens on the INBOUND_PUBLISHER queue for message recipients named blue. Any message the adapter retrieves starts a BPEL instance. The message is sent to the INBOUND_CONSUMED queue. The queues involved are RAW queues.

  • MulticonsumerOutbound — Sets the AQ recipient in a multiconsumer queue. The recipient list is set in the InteractionSpec parameter or the AQ header recipientlist parameter.

  • Raw — A message is received from the AQ adapter, the payload copied to an outbound message, and the AQ adapter invoked with the outbound message. RAW queues are used.

  • RawQueuePayloadUsingNativeFormat — The AQ Adapter and Native Format Builder wizard are used together. The native format used is comma-separated value (CSV).

  • RuleBasedSubscription_Header — A rule-based subscriber is created. The subscriber gets messages and passes them on.

  • RuleBasedSubscription_Payload — A rule-based subscriber subscribes to a magazine with a specific title. The message selector rule is used.

  • Simple_XMLType_Payload— Simple XMLType payload use

See Also: Oracle Adapters for Files, FTP, Databases, and Enterprise Messaging User's Guide

125.ReportsSchema This sample shows how to build custom reports using the BPEL Process Manager reports schema.
126.DataAggregator This sample shows how to take a single XML document, divide it into several smaller documents, perform tasks on each smaller document, reassemble the smaller documents into a single XML document, and return the single document to the invoker.
127.OrderBookingTutorial This sample shows how to design and execute a sophisticated process that uses synchronous and asynchronous services, parallel flows of execution, conditional branching logic, fault handling and exceptions management, transformations, file adapter and database adapter functionality, and human workflow, notification, and sensor functionality.
128.GoogleFlow This sample shows a process that uses an external Web service to present information to the client. Processes designed with sensors are also used.
129.FTPAdapter These samples show how to use the file adapter:
  • FTPDebatching—This sample shows how to use the FTP adapter to process a file containing a batch of business records (invoices and purchase orders) and transform and write the records to separate output files.

  • SynchronousRead—This sample shows a midprocess synchronous read operation through an invoke activity.

See Also: Oracle Adapters for Files, FTP, Databases, and Enterprise Messaging User's Guide

130.SendEmailWithAttachments This sample shows how to send an e-mail with attachments through Oracle JDeveloper.
132.UserTasks This process demonstrate a simple user task. The process has a quote to buy and sell a particular stock and the approver has to select whether to buy or sell the stock.
133.SecureInvokingProcesses This sample illustrates how to securely invoke a BPEL Process. The following types of clients are covered in this sample:
  • Invoking from JSP

  • Invoking from HTTP directly

  • Invoking over SOAP

  • Invoking from Java RMI client

140.AdapterFramework This sample shows how to use dynamic JCA partner links in BPEL
150.AppsAdapter These samples show how to use the Oracle Applications adapter:
  • ChangeOrderAPI—Changes a purchase order in Oracle E-Business Suite

  • GetPOAckBusinessEvent—Demonstrates outbound business events

  • OrderImportConcurrentProgram— Imports and creates a purchase order in Oracle E-Business Suite

  • POAckOutboundXMLGateway—Integrates with Oracle XML gateway to retrieve a purchase order acknowledgement

  • POInboundXMLGateway—Integrates with Oracle XML gateway to create a purchase order in Oracle E-Business Suite

701.LargeProcesses This sample shows how support is provided for processes with a large number of work items (10,000 or more).
702.Bindings This sample shows how to:
  • Integrate Enterprise Java Beans (EJB) in a BPEL process

  • Call the HTTP get method from a BPEL process. This tutorial enables you to call representational state transfer (REST) services from Oracle BPEL Process Manager.

  • Call a Java method from a BPEL process


See Also:

The following guides for additional tutorials you can run:

1.6 Summary

This chapter introduces BPEL, how Oracle BPEL Process Manager supports BPEL, and how Oracle JDeveloper enables you to design BPEL processes. An overview of how to use this guide and references to additional tutorials, demonstrations, and other helpful materials installed with Oracle BPEL Process Manager are also provided.