8 min read

 

(For more resources on Oracle SOA, see here.)

SOA concepts

The service-oriented architecture concepts are as follows:

  • Service Component Architecture (SCA) is the key enabler of the 11g service platform.
  • SDO provides a metadata API, which allows applications, tools, and frameworks to introspect the data model for a data graph.
  • SDO specifications are different from SCA specifications. SCA promotes the use of SDO to represent the business data for assembly and transportation.
  • Business events are not currently part of SCA specifications; they are in the process of getting incorporated into SCA specifications.
  • JCA contributes towards the SOA application standard to establish communication between different applications or enterprise information system such as file, database, queue, topic, and so on.
  • XQuery is an XML traversal path in an XML document to obtain information about a node or a subset of nodes.
  • UDDI is a standard method for publishing and discovering SOA components.
  • WS-Reliable Messaging supports standards to transmit messages with high reliability to enable the QOS. WS-Addressing, WS-I, WS-Security are standards that supplement the WS-RM standards.
  • WS-Coordination supersedes WS-Transaction and WS-AtomicTransaction in defining the context management properties for Web Service transaction management.
  • Oracle has intentionally not implemented nested SCA specifications as the nested composite application implementation leads to circular reference issue.

SOA composite applications

The key components that build the SOA composite applications are as follows:

  • Oracle BPEL process components used for process/service orchestration.
  • Oracle Business Rule components used for centralized services/ process-related business rule implementation and execution.
  • Various adapter services such as file, JMS, and database adapters.
  • Oracle Mediator components used for filter, data transformation, and routing.
  • Oracle Human Task components used to define the human actions to be executed in the business process flow.
  • EDN that supports an event-driven architecture for event-driven applications.
  • Wires are used to create interaction between service end points, components, and references in SOA composites.
  • A composite is the unit of deployment for SCA. It holds services that can be accessed remotely and it contains one or more components.
  • SCA components are integrated together into one application and communicate with the outside world through binding components such as adapters and Web Services.
  • The ADF BC component can be configured to publish events for the CRUD operations it can perform.
  • SCA provides an assembly model for SOA-style applications.
  • SCA components are basic elements of business functions in an SCA assembly. Components are combined into complete business solutions by SCA composites.
  • Oracle User Messaging Service (UMS) provides a common service responsible for sending out messages from applications to devices.
  • Service interactions within SOA Suite are handled using Oracle Mediator.
  • Service Virtualization cannot be achieved using Mediator.
  • Oracle Service Bus or Enterprise Service Bus is required to carry out Service Virtualization. Only mediation of a service can be achieved using Oracle Mediator.
  • The BPEL/BPM Engine represents the orchestration component of SOA infrastructure.
  • Oracle BPEL Engine supports BPEL 1.1 and 2.0.
  • Incoming and outgoing XML documents for a Partner Link can be validated by setting the validateXML property on a Partner Link to true.
  • Metadata Service (MDS) allows you to share common artifacts such as XML schemas across SOA composites. It supports two types of repositories, namely, file-based repository and database repository.
  • The Service Infrastructure provides the internal message routing infrastructure capabilities for connecting components and enabling data flow.
  • The Service Infrastructure is responsible for the internal routing of messages between service engines and binding components.
  • Weblogic JMS is used as a messaging layer for delivering events through EDN. EDN can also be configured to use EDN-DB. EDN-DB uses an Oracle database as a backend store.
  • Event definitions are stored in the EDL file.
  • Event Delivery Network can work across SOA Suite.
  • Business Activity Monitoring (BAM) is used for visualizing and monitoring business activity.
  • Oracle Service Registry supports UDDI V3 standard.

Working with adapters

  • Adapters are used in Oracle SOA Suite 11g to connect to non-service enabled backend systems.
  • File adapter supports four types of operations: read file, write file, synchronous read, and list files.
  • FTP adapter supports four types of operations: get, put, synchronous get file, and list files.
  • Oracle FTP and file adapter do not support XA transaction.
  • XA transaction is supported by all JCA-compliant adapters (for example: DB, JMS, AQ adapter).
  • Inbound adapter-rejected messages are handled through fault policies.
  • The SCA component should participate in the XA transaction and the other adapter should not have the idempotent property enabled.
  • Fault policy doesn’t work for both outbound adapters in XA mode and outbound adapters with Mediator in sequential routing.
  • Oracle file adapter provides an option to delete the files after processing. This can be enabled by selecting delete after processing the checkbox in the Adapter Configuration Wizard.
  • Larger payload support is available in Oracle File Adapter.
  • The Oracle adapters support metadata service. The Oracle File Adapter and the FTP adapter provide the features to read the metadata information such as filename, file modified date, and so on. The ‘Do not read file content’ option in the file adapter helps to achieve this.
  • Adapter Configuration Wizard is the required feature to generate the WSDL for both the request-response and event-notification service.

Orchestrating services with BPEL

The following image shows the list of BPEL activities:

List of BPEL activities

The standard BPEL constructs are given in the following table:

S.No

Construct

Details

1

Invoke

Provides the feature to invoke the required Partner Link.

2

Partner Link

Partner Link is a Web Service or adapter that is called from the BPEL process.

3

Receive

Receive activity can be used to receive the message to the BPEL process. This can be used at the start or in the middle of the BPEL process.

4

Reply

Reply activity is used to reply back to the caller of the message. This is used by the BPEL process in synchronous communication.

5

Assign

Assigns the variables to values or expressions.

6

Compensate

The Compensate activity is a business activity that compensates for the previous executed steps.

7

Empty

The Empty activity is used to represent that no action is required on the branch of Flow or While.

8

Terminate

The Terminate activity ends the BPEL process execution.

9

Throw

Throw activity throws the fault that is captured in the Catch block or the Fault that is constructed in the Catch All block.

10

Wait

The Wait activity provides features to pause the BPEL process execution for a specified period of time.

11

Flow

The Flow activity  is a unique activity for BPEL. It helps to run tasks in parallel. There are two types of Flow activities.

12

Pick

Pick  is also a unique activity for BPEL. This activity is used to receive the message from various different Partner Links.

It is used in an asynchronous BPEL process. This can also be used at the start or in the middle of the BPEL process.

13

Scope

Scope  is the activity used to group the set of BPEL activities for logically grouping a set of actions to handle faults, define local variables for manipulation, and so on.

14

Sequence

Sequence is another grouping construct that is used to sequence the list of BPEL activities.

15

Switch

Switch is used in a very similar way to Switch Case constructs in C programming language.

16

While

While is a looping construct that is used to execute the list of actions until the condition specified in While constructs return to false.

17

If (BPEL 2.0)

Switch is replaced with If in BPEL 2.0. This construct helps us perform the if-else operations.

18

Repeat Until (BPEL 2.0)

This is an additional construct introduced in BPEL 2.0 to repeat certain actions until the condition is met.

19

ReThrow (BPEL 2.0)

This is an additional construct that allows you to re-throw the fault caught in the Fault Handler block.

20

ForEach (BPEL 2.0)

This is an additional construct introduced in BPEL 2.0. This will replace the FlowN construct by allowing parallel execution.

 

The Oracle extensions to BPEL constructs are given in the following table:

S.No

Construct

Details

1

E-mail

Activity to send an e-mail to any target recipient.

2

User Notification

Uses the UMS (Unified Messaging Framework) to send SMS, e-mail, IM, and voice messages.

3

Validate

Validates a variable data against the schema definition.

4

IM

Sends an instance message to the required person.

5

Checkpoint

Checkpoint activity helps to dehydrate the BPEL process to the database.

6

Phase

This is a special purpose activity which helps to construct an output message based on the business rules defined around the inputs message. This can be used as a replacement for data transformation where multiple condition checks are used.

7

Voice

This activity enables the sending of a telephone voice notification.

8

Signal

This activity is used in the master process to send a signal to the detailed process.

9

Receive Signal

This activity is used in the detail process to receive a signal sent from the master process.

10

Create Entity

This activity allows the creation of an entity variable.

11

Bind Entity

This activity allows the binding of an entity variable.

12

Transformation

This activity allows the calling of an XSLT function from BPEL.

  • BPEL schema validation can be done to validate activity.
  • BPEL exposed as a service can have multiple operations.
  • The process will not be terminated when a fault is thrown from the BPEL process.
  • Pick without Alarm can be the first activity in the BPEL process.
  • Pick cannot be the very first activity in the BPEL process.
  • Events can be generated from BPEL.
  • Fault policies can be used to handle a composite fault as well as a component-level fault.
  • SyncMAxWait is a BPEL container property that controls the synchronous response time of a BPEL. If the BPEL doesn’t respond to the caller within this wait time, the BPEL transaction will be timed-out.
  • The doTransformation function takes multiple input parameters for transformation.
  • Wait, Checkpoint, Pick, Mid-process receive activities will dehydrate a BPEL process forcefully.

LEAVE A REPLY

Please enter your comment!
Please enter your name here