A BPEL Process Activities and Services

This appendix describes the activities and services that you use when designing a BPEL process in a SOA composite application.

This appendix includes the following sections:

A.1 Introduction to Activities and Components

When you expand BPEL Activities and Components in the Component Palette of Oracle BPEL Designer, service components display under the Activities and Components header.

Figure A-1 Activities and Components

Description of Figure A-1 follows
Description of "Figure A-1 Activities and Components"

See the following sections for additional details.

A.2 Introduction to BPEL Activities

Oracle BPEL Designer includes activities that are available for dragging into a BPEL process. These activities enable you to perform specific tasks within a process. This section provides a brief overview of these activities and provides references to other documentation that describes how to use these activities.

To access these activities, expand BPEL Activities and Components in the Component Palette of Oracle BPEL Designer. The activities display under the BPEL Activities header.

Figure A-2 BPEL Activities

Description of Figure A-2 follows
Description of "Figure A-2 BPEL Activities"

For more information about activities, see the Business Process Execution Language for Web Services Specification by visiting the following URL:

http://www.oasis-open.org

A.2.1 Tabs Common to Many Activities

While each activity performs specific tasks, many activities include tabs that enable you to perform similar tasks. This section describes these common tabs.

  • The Correlations tab displays in invoke, receive, and reply activities, the onMessage branch of pick activities, and the OnMessage variant of event handlers. Correlation sets address complex interactions between a process and its partners by providing a method for explicitly specifying correlated groups of operations within a service instance. A set of correlation tokens is defined as a set of properties shared by all messages in the correlated group.

  • The Properties tab displays in invoke, receive, and reply activities, and the onMessage branch of pick activities. You create header variables for use with the Oracle JCA adapters.

  • The Annotations tab displays on all activities and enables you to provide descriptions in activities in the form of code comments and name and pair value assignments.

    Note the following issues when using annotations in Oracle JDeveloper:

    • The Annotations tab in activities of Oracle JDeveloper does not provide a method for changing the order of annotations. As a work around, change the order of annotations in the Source view of the project's BPEL file in Oracle BPEL Designer.

    • The otherwise branch in a switch activity does not allow you to create annotations. However, the case branch in a switch activity does provide this functionality.

For more information about these tabs, see the following:

A.2.2 Assign Activity

This activity provides a method for data manipulation, such as copying the contents of one variable to another. This activity can contain any number of elementary assignments.

shows the Assign dialog. You can perform the following tasks:

  • Click the General tab to provide the assign activity with a meaningful name.

  • Click the Copy Operation tab and the Add icon (shown in Figure A-3), and then select Copy Operation from the dropdown list to access the Create Copy Operation dialog. This action enables you to copy the contents of the source element (variable, expression, XML fragment, or partner link) in the From field to the contents of the destination element in the To field. You can also select a part (typically the payload) and an XPath query (a language for addressing parts of an XML document). Other selections such as Append Operation, Insert-After Operation, and others are also available from this list.

Figure A-3 Copy Operations Tab of Assign Activity Dialog

Description of Figure A-3 follows
Description of "Figure A-3 Copy Operations Tab of Assign Activity Dialog"

If an assign activity contains multiple bpelx:append settings, it must be split into two assign activities. Otherwise, the bpelx:append is moved to the end of the list each time, which can cause problems. As a work around, move it manually.

For more information about the assign activity, see Chapter 6, "Manipulating XML Data in a BPEL Process."

A.2.3 Bind Entity Activity

This activity enables you to select the entity variable to act as the data handle to access and plug in different data provider service technologies.

The entity variable can be used with an Oracle Application Development Framework (ADF) Business Component data provider service using service data object (SDO)-based data. The entity variable enables you to specify BPEL data operations to be performed by an underlying data provider service. The data provider service performs the data operations in a data store behind the scenes and without use of other data store-related features provided by Oracle BPEL Process Manager (for example, the database adapter). This action enhances Oracle BPEL Process Manager runtime performance and incorporates native features of the underlying data provider service during compilation and runtime.

shows the Bind Entity dialog.

Figure A-4 Bind Entity Dialog

Description of Figure A-4 follows
Description of "Figure A-4 Bind Entity Dialog"

A.2.4 Compensate Activity

This activity invokes compensation on an inner scope activity that has successfully completed. This activity can be invoked only from within a fault handler or another compensation handler. Compensation occurs when a process cannot complete several operations after completing others. The process must return and undo the previously completed operations. For example, assume a process is designed to book a rental car, a hotel, and a flight. The process books the car and the hotel, but cannot book a flight for the correct day. In this case, the process performs compensation by unbooking the car and the hotel.The compensation handler is invoked with the compensate activity, which names the scope on which the compensation handler is to be invoked.

Figure A-5 shows the Compensate dialog. You can perform the following tasks:

  • Click the General tab to provide the activity with a meaningful name.

  • Select the scope activity on which the compensation handler is to be invoked.

Figure A-5 Compensate Dialog

Description of Figure A-5 follows
Description of "Figure A-5 Compensate Dialog"

For more information about the compensate activity, see Section 11.10, "Using Compensation After Undoing a Series of Operations."

A.2.5 Create Entity

This activity enables you to create an entity variable. The entity variable can be used with an Oracle ADF Business Component data provider service using SDO-based data.

shows the Create Entity dialog.

Figure A-6 Create Entity Dialog

Description of Figure A-6 follows
Description of "Figure A-6 Create Entity Dialog"

For more information, see Section 6.2, "Delegating XML Data Operations to Data Provider Services."

A.2.6 Email Activity

This activity enables you to send an email notification about an event.

For example, an online shopping business process of an online bookstore sends a courtesy email message to you after the items are shipped. The business process calls the notification service with your user ID and notification message. The notification service gets the email address from Oracle Internet Directory.

Figure A-7 shows the Email dialog.

For more information about the email activity, see Section 17.3.1, "How To Configure the Email Notification Channel."

A.2.7 Empty Activity

This activity enables you to insert a no-operation instruction into a process. This activity is useful when you must use an activity that does nothing (for example, when a fault must be caught and suppressed).

Figure A-8 shows the Empty dialog.

For more information about the empty activity, see Section 11.9.7, "How to Create an Empty Activity to Insert No-Op Instructions into a Business Process."

A.2.8 Flow Activity

This activity enables you to specify one or more activities to be performed concurrently. A flow activity completes when all activities in the flow have finished processing. Completion of a flow activity includes the possibility that it can be skipped if its enabling condition is false.

For example, assume you use a flow activity to enable two loan offer providers (United Loan service and Star Loan service) to start in parallel. In this case, the flow activity contains two parallel activities – the sequence to invoke the United Loan service and the sequence to invoke the Star Loan service. Each service can take an arbitrary amount of time to complete their loan processes.

Figure A-9 shows an initial flow activity with its two panels for parallel processing. You drag activities into both panels to create parallel processing. When complete, a flow activity looks like that shown in Figure A-10.

Figure A-9 Flow Dialog (At Time of Creation)

Description of Figure A-9 follows
Description of "Figure A-9 Flow Dialog (At Time of Creation)"

Figure A-10 Flow Dialog (After Design Completion)

Description of Figure A-10 follows
Description of "Figure A-10 Flow Dialog (After Design Completion)"

Note:

Oracle's BPEL implementation executes flows in the same, single execution thread of the BPEL process and not in separate threads.

For more information about the flow activity, see Section 9.2, "Creating a Parallel Flow."

A.2.9 FlowN Activity

This activity enables you to create multiple flows equal to the value of N, which is defined at runtime based on the data available and logic within the process. An index variable increments each time a new branch is created, until the index variable reaches the value of N.

Figure A-11 shows the FlowN dialog.

For more information about the flowN activity, see Section 9.3, "Customizing the Number of Flow Activities with the flowN Activity."

A.2.10 IM Activity

This activity enables you to send an automatic, asynchronous instant message (IM) notification to a user, group, or destination address. shows the IM dialog.

For more information, see Section 17.3.2, "How to Configure the IM Notification Channel."

A.2.11 Invoke Activity

This activity enables you to specify an operation you want to invoke for the service (identified by its partner link). The operation can be one-way or request-response on a port provided by the service. You can also automatically create variables in an invoke activity. An invoke activity invokes a synchronous web service or initiates an asynchronous web service.

The invoke activity opens a port in the process to send and receive data. It uses this port to submit required data and receive a response. For synchronous callbacks, only one port is needed for both the send and the receive functions.

The invoke activity supports the bpelx:inputProperty and bpelx:outputProperty that facilitate the passing of properties through the SOAP header and the obtaining of SOA runtime system properties for useful information such as the tracking.compositeInstanceId and tracking.conversationId.

Figure A-13 shows the Invoke dialog. You can perform the following tasks:

  • Provide the activity with a meaningful name.

  • Select the partner link for which to specify an operation.

  • Select the operation to be performed.

  • Automatically create a variable or select an existing variable in which to transport the data (payload).

Figure A-13 Invoke Dialog

Description of Figure A-13 follows
Description of "Figure A-13 Invoke Dialog"

For more information about the invoke activity, see the following:

A.2.12 Java Embedding Activity

This activity enables you to add custom Java code to a BPEL process using the Java BPEL exec extension <bpelx:exec>. This is useful when you have Java code that can perform a function, and want to use this existing code instead of starting over.

Figure A-14 shows the Edit Java Embedding dialog.

Figure A-14 Edit Java Embedding Dialog

Description of Figure A-14 follows
Description of "Figure A-14 Edit Java Embedding Dialog"

For more information about the Java embedding activity, see Chapter 13, "Incorporating Java and Java EE Code in a BPEL Process."

A.2.13 Phase Activity

This activity creates Oracle Mediator and business rules service components for integration with a BPEL process. You create message request input and message response output variables and design business rules for evaluating variable content for the BPEL process.

When you complete these tasks, the following activities and service components are created:

  • An assign activity that includes the message request input and message response output variables.

  • An invoke activity, which is automatically designed to invoke an Oracle Mediator partner link in the BPEL process.

  • The Oracle Mediator partner link, which is automatically designed to route the message request input variable to the business rules service component in the SOA composite application of which this BPEL process is a part. The business rules service component displays in the SOA Composite Editor. Oracle Mediator also displays as a service component in the SOA Composite Editor.

  • The business rules service component, which evaluates the content of the message request input variable and returns the results in the message response output variable to Oracle Mediator. Oracle Mediator then makes a routing decision and routes the message to the correct target destinations.

Figure A-15 shows Phase dialog.

For more information, see Chapter 45, "Using Two-Layer Business Process Management (BPM)."

A.2.14 Pick Activity

This activity waits for the occurrence of one event in a set of events and performs the activity associated with that event. The occurrence of the events is often mutually exclusive (the process either receives an acceptance or rejection message, but not both). If multiple events occur, the selection of the activity to perform depends on which event occurred first. If the events occur nearly simultaneously, there is a race and the choice of activity to be performed is dependent on both timing and implementation.

The pick activity provides two branches, each one with a condition. When you double-click the Pick icon, the dialog shown in Figure A-16 appears and displays two branches:

  • onMessage (on the left)

    Contains the code for receiving a reply, for example, from a loan service.

  • onAlarm (on the right)

    Contains the code for a timeout, for example, after one minute.

Whichever branch completes first is executed; the other branch is not executed. The branch that has its condition satisfied first is executed.

If you add correlations to an OnMessage branch, the correlations syntax is placed after the assign activity syntax. The correlation syntax must go before the assign activity.

As a work around, perform the following steps:

  1. Create a correlation set in Oracle JDeveloper.

  2. Assign this to the OnMessage branch.

  3. Complete the remaining design tasks.

  4. Before making or deploying the BPEL process, move the correlation syntax before the assign activity in the BPEL source code.

For more information about the pick activity, see the following:

A.2.15 Receive Activity

This activity specifies the partner link from which to receive information and the port type and operation for the partner link to invoke. This activity waits for an asynchronous callback response message from a service, such as a loan application approver service. While the BPEL process is waiting, it is dehydrated (compressed and stored) until the callback message arrives. The contents of this response are stored in a response variable in the process.

The receive activity supports the bpelx:property extensions that facilitate the passing of properties through the SOAP header, and the obtaining of SOA runtime system properties for useful information such as tracking.compositeInstanceId and tracking.conversationId.

Figure A-17 shows the Receive dialog. You can perform the following tasks:

  • Provide a meaningful name.

  • Select the partner link service for which to specify an operation.

  • Select the operation to be performed.

  • Automatically create a variable or select an existing variable in which to transport the callback response.

Figure A-17 Receive Dialog

Description of Figure A-17 follows
Description of "Figure A-17 Receive Dialog"

For more information about the receive activity, see the following:

A.2.16 Receive Signal Activity

Use this activity in detail processes to wait for the notification signal from the master process to begin processing and use in a master process to wait for the notification signal from all detail processes indicating that processing has completed.

Figure A-18 shows the Receive Signal dialog.

Figure A-18 Receive Signal Dialog

Description of Figure A-18 follows
Description of "Figure A-18 Receive Signal Dialog"

For more information, see Chapter 15, "Coordinating Master and Detail Processes."

A.2.17 Remove Entity Activity

This activity enables you to remove an entity variable. This action removes the row. shows the Remove Entity dialog.

Figure A-19 Remove Entity

Description of Figure A-19 follows
Description of "Figure A-19 Remove Entity"

A.2.18 Reply Activity

This activity allows the process to send a message in reply to a message that was received through a receive activity. The combination of a receive activity and a reply activity forms a request-response operation on the WSDL port type for the process.

Figure A-20 shows the Reply dialog.

For more information about the reply activity, see the following:

A.2.19 Scope Activity

This activity consists of a collection of nested activities that can have their own local variables, fault handlers, compensation handlers, and so on. A scope activity is analogous to a { } block in a programming language.

Each scope has a primary activity that defines its behavior. The primary activity can be a complex structured activity, with many nested activities within it to arbitrary depth. The scope is shared by all the nested activities.

Figure A-21 shows the Scope dialog. Define appropriate activities inside the scope activity.

Fault handling is associated with a scope activity. The goal is to undo the incomplete and unsuccessful work of a scope activity in which a fault has occurred. You define catch activities in a scope activity to create a set of custom fault-handling activities. Each catch activity is defined to intercept a specific type of fault.

Figure A-22 shows the Add Catch Branch icon inside a scope activity. Figure A-23 shows the catch activity area that appears when you click the Add Catch Branch icon. Within the area defined as Drop Activity Here, you drag additional activities to create fault handling logic to catch and manage exceptions.

For example, a client provides a social security number to a Credit Rating service when applying for a loan. This number is used to perform a credit check. If a bad credit history is identified or the social security number is identified as invalid, an assign activity inside the catch activity notifies the client of the loan offer rejection. The entire loan application process is terminated with a terminate activity.

Figure A-22 Creating a Catch Branch

Description of Figure A-22 follows
Description of "Figure A-22 Creating a Catch Branch"

Figure A-23 Catch Activity Icon

Description of Figure A-23 follows
Description of "Figure A-23 Catch Activity Icon"

For more information about the scope activity and fault handling, see the following:

A.2.20 Sequence Activity

This activity enables you to define a collection of activities to be performed in sequential order. For example, you may want the following activities performed in a specific order:

  • A customer request is received in a receive activity.

  • The request is processed inside a flow activity that enables concurrent behavior.

  • A reply message with the final approval status of the request is sent back to the customer in a reply activity.

A sequence activity makes the assumption that the request can be processed in a reasonable amount of time, justifying the requirement that the invoker wait for a synchronous response (because this service is offered as a request-response operation).

When this assumption cannot be made, it is better to define the customer interaction as a pair of asynchronous message exchanges.

When you double-click the Sequence icon, the activity area shown in Figure A-24 appears. Drag and define appropriate activities inside the sequence activity.

Figure A-24 Sequence Activity

Description of Figure A-24 follows
Description of "Figure A-24 Sequence Activity"

For more information about the sequence activity, see the following:

A.2.21 Signal Activity

This activity is used in a master process to notify detail processes to perform processing at runtime and used in detail processes to notify a master process that processing has completed. shows the Signal dialog.

Figure A-25 Signal Dialog

Description of Figure A-25 follows
Description of "Figure A-25 Signal Dialog"

For more information, see Chapter 15, "Coordinating Master and Detail Processes."

A.2.22 SMS Activity

This activity enables you to send a short message system (SMS) notification about an event.

Figure A-26 shows the SMS dialog.

For more information about the SMS activity, see Section 17.3.3, "How to Configure the SMS Notification Channel."

Note:

The fax and pager activities are not supported in 11g.

A.2.23 Switch Activity

This activity consists of an ordered list of one or more conditional branches defined in a case branch, followed optionally by an otherwise branch. The branches are considered in the order in which they appear. The first branch whose condition is true is taken and provides the activity performed for the switch. If no branch with a condition is taken, then the otherwise branch is taken. If the otherwise branch is not explicitly specified, then an otherwise branch with an empty activity is assumed to be available. The switch activity is complete when the activity of the selected branch completes.

A switch activity differs in functionality from a flow activity. For example, a flow activity enables a process to gather two loan offers at the same time, but does not compare their values. To compare and make decisions on the values of the two offers, a switch activity is used. The first branch is executed if a defined condition (inside the case branch) is met. If it is not met, the otherwise branch is executed.

Figure A-27 shows a switch activity with the following defined branches.

Figure A-27 Switch Activity

Description of Figure A-27 follows
Description of "Figure A-27 Switch Activity"

For more information about the switch activity, see the following:

A.2.24 Terminate Activity

A terminate activity enables you to end the tasks of an activity (for example, the fault handling tasks in a catch branch). For example, if a client's bad credit history is identified or a social security number is identified as invalid, a loan application process is terminated, and the client's loan application document is never submitted to the service loan providers.

Figure A-28 shows several terminate activities in the otherwise branch of a switch activity.

Figure A-28 Terminate Activity

Description of Figure A-28 follows
Description of "Figure A-28 Terminate Activity"

For more information about the terminate activity, see Section 11.11, "Using the Terminate Activity to Stop a Business Process Instance."

A.2.25 Throw Activity

This activity generates a fault from inside the business process.

Figure A-29 shows the Throw dialog.

For more information about the throw activity, see Section 11.7, "Throwing Internal Faults."

A.2.26 Transform Activity

This activity enables you to create a transformation that maps source elements to target elements (for example, incoming purchase order data into outgoing purchase order acknowledgment data).

Figure A-30 shows the Transform dialog. This dialog enables you to perform the following tasks:

  • Define the source and target variables and parts to map.

  • Specify the transformation mapper file.

  • Click the second icon (the Add icon) to the right of the Mapper File field to access the XSLT Mapper for creating a new XSL file for graphically mapping source and target elements. Click the Edit icon (third icon) to edit an existing XSL file.

Figure A-30 Transform Dialog

Description of Figure A-30 follows
Description of "Figure A-30 Transform Dialog"

For more information about the transform activity, see Chapter 35, "Creating Transformations with the XSLT Mapper."

A.2.27 User Notification

This activity enables you to design a BPEL process in which you do not explicitly select a notification channel during design time, but simply indicate that a notification must be sent. The channel to use for sending notifications is resolved at runtime based on preferences defined by the end user in the User Messaging Preferences user interface of the Oracle User Messaging Service. This moves the responsibility of notification channel selection from Oracle BPEL Designer to the end user. If the end user does not select a preferred channel or rule, email is used by default for sending notifications to that user. shows the User Notification dialog.

Figure A-31 User Notification Dialog

Description of Figure A-31 follows
Description of "Figure A-31 User Notification Dialog"

For more information, see Section 17.4, "Allowing the End User to Select Notification Channels."

A.2.28 Validate Activity

This activity enables you to validate variables in the list. The variables are validated against their XML schema.

Figure A-33 shows the Validate dialog.

Figure A-32 Validate Dialog

Description of Figure A-32 follows
Description of "Figure A-32 Validate Dialog"

A.2.29 Voice Activity

This activity enables you to send a telephone voice notification about an event.

Figure A-33 shows the Voice dialog.

For more information about the voice activity, see Section 17.3.4, "How to Configure the Voice Notification Channel."

A.2.30 Wait Activity

This activity allows a process to specify a delay for a certain period or until a certain deadline is reached. A typical use of this activity is to invoke an operation at a certain time. This activity enables you to wait for a given time period or until a certain time has passed. Exactly one of the expiration criteria must be specified.

Figure A-34 shows the Wait dialog.

For more information about the wait activity, see Section 14.3, "Creating a Wait Activity to Set an Expiration Time."

A.2.31 While Activity

This activity supports repeated performance of a specified iterative activity. The iterative activity is repeated until the given while condition is no longer true.

Figure A-35 shows the While dialog. You can enter expressions in this dialog.

For more information about the while activity, see Section 10.3, "Creating a While Activity to Define Conditional Branching."

A.3 Introduction to BPEL Services

BPEL processes can communicate with web-based applications and clients through web services, JCA adapters, Oracle B2B services, Oracle Business Activity Monitoring, and partner links.

To access these services, expand BPEL Activities and Components in the Component Palette of Oracle BPEL Designer. Then expand BPEL Services to display the services.

Figure A-36 BPEL Services

Description of Figure A-36 follows
Description of "Figure A-36 BPEL Services"

For more information about the adapters described in the following sections, see Oracle Fusion Middleware User's Guide for Technology Adapters.

A.3.1 ADF-BC Service

This service connects Oracle Application Development Framework (ADF) applications using SDOs with the SOA platform.

A.3.2 AQ Adapter

This adapter acts as both a dequeue (inbound) and enqueue (outbound) messaging adapter. In the inbound direction, the adapter polls the queues for messages to dequeue from a destination. In the outbound direction, the adapter enqueues messages to the queue for subscribers to dequeue.

A.3.3 Database Adapter

This adapter enables a BPEL process to communicate with Oracle databases or third-party databases through JDBC. To access an existing relational schema, you use the Adapter Configuration Wizard to do the following:

  • Import a relational schema and map it as an XML schema (XSD).

  • Abstract SQL operations such as SELECT, INSERT, and UPDATE as web services.

While your BPEL process deals with XML and invokes web services, database rows and values are queried, inserted, and updated.

A.3.4 Direct Binding Service

This service uses the Direct Binding API to invoke a SOA composite application and exchange messages over a remote method invocation (RMI). This option supports the propagation of both identities and transactions across JVMs and uses the T3 optimized path. Both synchronous and asynchronous invocation patterns are supported.

Note: This feature is supported only in the inbound direction for this release (that is, invocation of a SOA composite application).

For more information, see Chapter 46, "Using the Direct Binding Invocation API."

A.3.5 EJB Service

This service enables you to send and receive messages through Enterprise JavaBeans (EJBs).

For more information, see Chapter 34, "Using Service Data Objects and Enterprise JavaBeans."

A.3.6 File Adapter

This adapter acts as both an inbound and outbound adapter. In the inbound direction, the adapter polls for files in a directory to retrieve and process. In the outbound direction, the adapter creates files in a directory.

A.3.7 FTP Adapter

This adapter acts as both an inbound and outbound adapter. In the inbound direction, the adapter polls for files in a directory to retrieve and process. In the outbound direction, the adapter creates files in a directory.

A.3.8 JMS Adapter

This adapter acts as both a consume (inbound) and produce (outbound) messaging adapter. In the inbound direction, the adapter polls (consumes) messages from a JMS destination. In the outbound direction, the adapter sends (produces) messages to a JMS destination.

A.3.9 MQ Adapter

This adapter provides message exchange capabilities between BPEL processes and the IBM MQSeries messaging software.

A.3.10 Oracle Applications

This adapter provides comprehensive, bidirectional, multimodal, synchronous, and asynchronous connectivity to Oracle Applications. The adapter supports all modules of Oracle Applications in Release 12 and Release 11i, including selecting custom integration interface types based on the version of Oracle E-Business Suite. The adapter provides real-time and bidirectional connectivity to Oracle Applications through interface tables, views, application programming interfaces (APIs), and XML Gateway. The adapter inserts data into Oracle Applications using interface tables and APIs. To retrieve data from Oracle Applications, the adapter uses views. In addition, it uses XML Gateways for bidirectional integration with Oracle Applications. XML Gateways are also used to insert and receive Open Application Group Integration Specification (OAGIS)-compliant documents from Oracle Applications.

A.3.11 Oracle BAM Adapter

This adapter integrates Java EE applications with Oracle BAM Server to send data. This adapter is used as a reference binding component in a SOA composite application.

For more information, see Oracle Fusion Middleware User's Guide for Oracle Business Activity Monitoring and Part X, "Using Oracle Business Activity Monitoring".

A.3.12 Oracle B2B

This adapter enables you to browse B2B metadata in the Metadata Service (MDS) repository and select document definitions.

Oracle B2B is an e-commerce gateway that enables the secure and reliable exchange of transactions between an organization and its external trading partners. Oracle B2B and Oracle SOA Suite are designed for e-commerce business processes that require process orchestration, error mitigation, and data translation and transformation within an infrastructure that addresses the issues of security, compliance, visibility, and management.

For more information, see Oracle Fusion Middleware User's Guide for Oracle B2B.

A.3.13 Partner Link (Adapter/Web Service)

This service enables you to define the external services with which your process interacts. A partner link type characterizes the conversational relationship between two services by defining the roles played by each service in the conversation and specifying the port type provided by each service to receive messages within the conversation. For example, if you are creating a process to interact with a Credit Rating Service and two loan provider services (United Loan and Star Loan), you create partner links for all three services.

Figure A-37 shows the Partner Link dialog. You provide the following details:

  • A meaningful name for the service.

  • The web services description language (WSDL) file of the external service.

  • The actual service type (defined as Partner Link Type).

  • The role of the service (defined as Partner Role).

  • The role of the process requesting the service (defined as My Role).

Figure A-37 PartnerLink Activity

Description of Figure A-37 follows
Description of "Figure A-37 PartnerLink Activity"

For more information about partner links, see Chapter 8, "Invoking an Asynchronous Web Service from a BPEL Process."

A.3.14 Socket Adapter

This adapter enables you to model standard or nonstandard protocols for communication over TCP/IP sockets. You can use this adapter to create a client or server socket, and establish a connection. The data that is transported can be text or binary.

A.3.15 Third Party Adapter

This adapter enables you to integrate third-party adapters into a SOA composite application. These third-party adapters produce artifacts (WSDLs and JCA files) that can configure a JCA adapter.

A.3.16 Web Service

This service enables you to connect to standards-based services using SOAP over HTTP.

For more information, see Section 2.3, "Adding Service Binding Components."

A.4 Publishing and Browsing the Oracle Service Registry

The Oracle Service Registry (OSR) provides a common standard for publishing and discovering information about web services. This section describes how to configure OSR against a separately installed Oracle SOA Suite environment.

You can use Oracle SOA Suite with the following versions of OSR:

  • OSR 10.3 (with Oracle WebLogic Server 10.3)

  • OSR 10.1.3

For more information about Oracle Service Registry, visit the following URL:

http://www.oracle.com/technology/goto/regrep

Notes:

  • This section does not describe how to configure OSR against the embedded Oracle WebLogic Server in Oracle JDeveloper.

  • OSR 10.3 deploys to the 10.3.0.0 version of Oracle WebLogic Server.

  • OSR 10.3 does not support the 10.3.1.0 version of Oracle WebLogic Server.

A.4.1 How to Publish a Business Service

This section provides an overview of how to publish a business service. For specific instructions, see the documentation at the following URL:

http://www.oracle.com/technology/tech/soa/uddi/index.html

To publish a business service:

  1. Go to the Registry Control:

    http://hostname:port/registry/uddi/web
    
  2. Click Publish > WSDL.

  3. Log in when prompted.

  4. Complete the fields on this page to specify the access point URL and publish the WSDL for the business service. Figure A-38 provides details.

    Figure A-38 Access Point URL

    Description of Figure A-38 follows
    Description of "Figure A-38 Access Point URL"

    Note:

    If you later change your endpoint location, you must also update the WSDL location in the Registry Control. Otherwise, UDDI invocation fails during runtime. To change the WSDL location:
    1. Log in to the Registry Control.

    2. Navigate to the service.

    3. Change both URLs within the port type and binding information using the model key.

A.4.2 How to Create a Connection to the Registry

To create a connection to the registry:

  1. Go to Oracle JDeveloper.

  2. Select File > New > Connections > UDDI Registry Connection to create a UDDI connection.

  3. Enter a connection name.

  4. Enter an inquiry endpoint URL. For example:

    http://myhost.us.oracle.com:7001/registry/uddi/inquiry
    
  5. Ensure that the Business View option is selected.

  6. Click Next.

  7. Click Test Connection.

  8. If successful, click Finish. Otherwise, click the Back button and correct your errors.

A.4.3 How to Configure a SOA project to Invoke a Service from the Registry

To configure a SOA project to invoke a service from the registry:

  1. Open the SOA project in which to create a reference to the business service.

  2. Drag a Web Service icon into the External Services swimlane.

    The Create Web Service dialog appears.

  3. To the right of the WSDL URL field, click the icon to select a WSDL.

  4. From the list at the top, select Resource Palette.

  5. Expand the navigational tree.

  6. Expand UDDI Registry > Business Services.

  7. Select the published business service, and click OK. Figure A-39 provides details.

    Figure A-39 Business Service

    Description of Figure A-39 follows
    Description of "Figure A-39 Business Service"

    The UDDI Deployment Options dialog appears.

  8. Select one of the following deployment options:

    • Dynamically resolve the SOAP endpoint location at runtime.

    • Dynamically resolve the concrete WSDL location at runtime.

    Figure A-40 provides details.

    Figure A-40 UDDI Deployment Options Dialog

    Description of Figure A-40 follows
    Description of "Figure A-40 UDDI Deployment Options Dialog"

  9. Click OK.

    You are returned to the Create Web Service dialog.

  10. See the following section based on your selection in the UDDI Deployment Options dialog.

A.4.3.1 Dynamically Resolving the SOAP Endpoint Location

  1. Complete the remaining fields in the Create Web Service dialog, and click OK.

    The Create Web Service dialog looks as shown in Figure A-41.

    Figure A-41 Create Web Service Dialog - SOAP Endpoint Location

    Description of Figure A-41 follows
    Description of "Figure A-41 Create Web Service Dialog - SOAP Endpoint Location"

  2. Wire the reference with the appropriate service component.

  3. In the SOA Composite Editor, click Source.

    The composite.xml file shows the serviceKey. The property dynamically resolves the endpoint binding location at runtime.

    <property name="oracle.soa.uddi.servicekey" type="xs:string" many="false">uddi:
     d3611b59-1c79-478e-9ae5-874007eb20c4">
    
  4. If you want, you can also resolve the SOAP endpoint location by explicitly adding the oracle.soa.uddi.servicekey property in the Property Inspector. This action dynamically resolves the SOAP endpoint location at runtime for any external reference to a web service. Figure A-42 provides details.

    1. Highlight the reference binding component in the External References swimlane.

    2. In the Property Inspector, expand the Properties section.

    3. Click the Add icon.

    4. In the Name list, select oracle.soa.uddi.servicekey.

    5. In the Value field, specify the value for oracle.soa.uddi.servicekey from the composite.xml file.

      Figure A-42 serviceKey Properties

      Description of Figure A-42 follows
      Description of "Figure A-42 serviceKey Properties"

A.4.3.2 Dynamically Resolving the WSDL Endpoint Location

  1. Complete the remaining fields in the Create Web Service dialog, and click OK.

    The Create Web Service dialog looks as shown in Figure A-43.

    Figure A-43 Create Web Service Dialog - WSDL Endpoint Location

    Description of Figure A-43 follows
    Description of "Figure A-43 Create Web Service Dialog - WSDL Endpoint Location"

  2. Wire the reference with the appropriate service component.

  3. In the SOA Composite Editor, click Source.

    The composite.xml file shows that the WSDL location is an abstract URL of orauddi:/uddi_service_key instead of a concrete URL (such as a HTTP URL). The orauddi protocol dynamically resolves the WSDL location at runtime.

    <location="orauddi:/uddi:d3689250-6ff5-11de-af2b-76279200af27">
    

A.4.4 How To Configure the Inquiry URL, UDDI Service Key, and Endpoint Address for Runtime

You can set the inquiry URL, UDDI service key, and endpoint address during runtime in Oracle Enterprise Manager Fusion Middleware Control Console.

To configure the inquiry URL, service key, and endpoint reference for runtime:

  1. Log in to Oracle Enterprise Manager Fusion Middleware Control Console.

  2. Specify values for the following properties:

  3. Restart the SOA Infrastructure.

  4. Exit Oracle Enterprise Manager Fusion Middleware Control Console.

  5. To see endpoint statistics, return to the Registry Control.

  6. Go to the Manage page and check statistics to see the increase in the number of invocations when not cached (the first time).

    Caching of WSDL URLs occurs by default during runtime. If a WSDL URL is resolved using the orauddi protocol, subsequent invocations retrieve the WSDL URLs from cache, and not from OSR. When an endpoint WSDL obtained from cache is no longer reachable, the cache is refreshed and OSR is contacted to retrieve the new endpoint WSDL location. As a best practice, Oracle recommends that you undeploy services that are no longer required in Oracle Enterprise Manager Fusion Middleware Control Console and used by the SOA Infrastructure. Endpoint services that are shut down or retired (but not undeployed) are still reachable. Therefore, the cache is not refreshed.

    If you move the business service WSDL from one host to another, ensure that you change the location in the Registry Control. No change is required in Oracle JDeveloper or Oracle Enterprise Manager Fusion Middleware Control Console.

    You can optionally increase the amount of time that the WSDL URL is available in cache for inquiry by the service key. For more information, see "Configuring Service and Reference Binding Component Properties" of Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite.

    Note:

    In 11g, caching occurs automatically. If you are using Oracle SOA Suite 10.1.3, caching is supported by setting the CacheRegistryWSDL property to true in bpel.xml. Setting this property to false disables caching.

A.5 Validating When Loading a Process Diagram

You may see an icon (a yellow triangle with an exclamation point) indicating invalid settings as you create and open activities such as a scope or an assign for the first time. The settings are invalid because you have not yet entered details.

To turn this option off for the current project, do the following:

  1. Right-click the BPEL diagram and select Display > Diagram Properties.

  2. Deselect the Enable Automatic Validation option.

  3. Click OK.

  4. Select Save All from the File main menu.