SOA Suite 12c: First look at SCA Composite features SOASuite12c sca blog

SOA Suite 12c: First look at SCA Composite features

Oracle released SOA Suite 12c (12.1.3) bringing a further integration between components and a bunch of new features. This blog is one in a series of new features summaries about SOA Suite 12c to view them all check this blog.

This blog will summaries the features specific to SCA Composites / BPEL and the Enterprise Manager Dashboards. The features are summarised, but most will get an own blog that tells about the full details.

This blog will talk about the following topics:
• Changed project / directory structure • Project / Component en Scope Templates • Updates to the composite editor • Updates to the mediator • Updates to the BPEL component / activities • Fault Policy Editor • SOA Composer refresh in 12c • SOA Suite Debugger •

Disclamer: Screenshots are made in Beta version of SOA Suite 12c, so may differ in final version!

Changed project / directory structure

The structure of the project has changes drastically. All components are now placed in there own sub folder.

12c Composite: Project Structure • Adapters – Collection of JCA adapter resources

• BPEL – Collection of BPEL en SBPEL components

• DVM – Collection of Domain Value Maps

• Mediators – Collection of Mediator components

• Schemas – Collection of XML Schemas (XSD)

• Testsuites – Collection of Composite tests

• Transformations – Collection of XSLT transformations

• WSDLS – Collection of service contracts

The composite.xml carries the same name as in 11.1.1.7, the name of the SOA project.

Kick-start an SCA Composite using templates

In 12c it is easier then ever to re-use at all levels within a SCA composite. Using the build-in template support you can kick-start a SCA Composite or add reusable components. There are three types of templates; SOA Project, Component and Custom Activity template. Templates are fully editable, one you apply them to you SCA Composite or BPEL component it is part of that composite or component. When you create a template all dependencies (partnerlinks) are also part of the template.

SOA Suite SCA Templates

Templates in SCA Composite

Project Templates
With this kind of template you can create/load an entire project. Great example for this template is a skeleton project with default adapters and mediators (without wires) of use it for training purposes so that everybody starts with the same resources. Project templates are accessible at the time of new project creation directly, or when it is part of new application.

Component Templates
With this kind of template you can create/load a component with all his dependencies (resources and components). For example a BPEL process with default invocations to common services. This template can be automatically discovered in the component palette when in the Composite editor.

Custom Activity Templates
Similar to a standalone subprocess, only the code is added to existing BPEL process and dependencies are added to Composite. It can contain variables and activities (assign, invoke, transformation, etc). This template can be automatically discovered in the component palette when in the BPEL Component editor.

12c Composite: Consume Templates

12c Composite: Consume Templates

Templates will be visible if they’re available in the template path, configured in JDev, but there is also an import wizard available to bring templates in from different system.

Re-use of BPEL code using Sub-processes

Sometimes in BPEL you will do the same thing on multiple places within the same BPEL process. For futher re-use of code this release of SOA Suite 12c introduces BPEL Sub-processes. Sub-processes allow certain business logic to be made reusable.  There are two types; standalone and inline. Inline Sub-processes permits access to data (variables) of the parent process, but with a standalone Sub-process the data needs to be assigned. Sub-processes are here to improve performance (faster rendering of only entity in question) and manageability (modular approach) of BPEL processes.

12c Composite: BPEL Standalone Sub-Process

12c Composite: BPEL Standalone Sub-Process

Details about inline sub-process:

  • Group activities that can be re-used in the same BPEL process
  • It is part of the parent BPEL process code and not visible in composite view.
  • There is a new call’ activity in BPEL to call a sub-process
  • You can define parameters or use the parent process parameters.
  • The inline sub-process is visible in the BPEL palette.
  • Activities should be part of a scope to be converted to a sub-process.
  • At run-time, the code of the sub-process is reusable and can be parallel used.
    Only one copy is stored in the memory, even when it is invoked 20 times.

Details about standalone sub-process:

  • It is a fragment of a BPEL process, which includes a set of activities that can be reused by other BPEL processes.
  • A standalone sub-process has no interface, and can only be called by another BPEL process, but may have partnerlinks.
  • In the composite view, the wire to a sub-process is shown as a dotted line, in order to indicate that there is no interface.
  • The ‘call’ activity is used to call standalone sub-processes.
  • In the first release of 12c, sub-process can not be called from outside its own Composite, but it may change in the future.
  • Subprocesses are visible in the component palette to make them easy to drag into a BPEL process.
12c Composite: BPEL Call Activity

12c Composite: BPEL Call Activity

Share artifacts within and across applications

In 12c it is now more then ever easy to use the MDS. It is now possible to transfer (local) artifacts from a SOA application to the Design-Time MDS. JDeveloper has a wizard to share design time artifacts such as WSDLs and Schemas across applications. After transfering the artifact the references are automaticly updated with MDS URL.

JDeveloper 12c: Transfer artifacts to MDS

JDeveloper 12c: Transfer artifacts to MDS

Updated XSLT mapper and new XQuery support (including own mapper)

The choice for the developer is going to be tough, use XSLT of XQuery. In this release Oracle 100% XQuery 1.0 support with it’s own mapper, but also updated the XSLT mapper with some high requested features. BPEL even has a dedicated activity to use XQuery in your BPEL code for transformations.  The XQuery mapper has support for XPath 2.0 and user defined functions. The mapper is really user friendly and it’s made consistent with the XSLT mapper interface. The mapper also has an integrated Test framework and is build for reuse in both SOA & Service Bus. The update XSLT mapper now has a better support for complex stylesheets with multiple templates, user defined functions (also recursive functions) and you can see the XSLT execution sequence.

12c XQuery Mapper

XQuery Mapper in JDeveloper

XSLT Mapper in JDeveloper

XSLT Mapper in JDeveloper

New design of Component and Properties palette

In JDeveloper 12c the Component and Property palette undergone a metamorphosis. In the Component palette the Components and adapters are now logically separated and it is possible to display the items in a list view.

JDeveloper 12c: Component Palette

JDeveloper 12c: Component Palette

In 12c the Properties palette is finally used when developing SCA Composites and Service Bus Pipelines. It displays as it were, all the steps in the wizard or tabs of the dialog window of a component activity. Instead of editing the activity using the wizard you can now use the Properties palette to make changes.

JDeveloper 12c: Properties Palette

JDeveloper 12c: Properties Palette

Updated Mediator Component

The mediator has some new features in 12c. The overall editor looks similar and current 11g function are still present, but some nifty features are added in this release.

Translate from Native action

At the level of the Java callout an extra action Translate from Native is added. With this action you can transfrom a CSV/JSON/String element of the request to XML using a NXSD transformation. The transformed output can then be used in the routing rules of the Mediator. This action can be done on operation level, but also on a specific routing rule for that operation.

Override Using action

With this action you can override routing rule options using a DVM or Business Rules. Based on a element value of the request you can change the routing rule option dynamically. With the key value you have the possibility to override the XSLT transformation file,  Filter expression, Execution Type, Syntax Validation (XSD), Semantic Validation (Schematron) file instead of creating a bunch of static routing rule.

Mediator 12c: Override Using

Mediator 12c: Override Using

New graphical editor for Assign action

The last noticeable change to the Mediator is that the graphical editor for the Assign action is the same as BPEL uses.  You can create multiple copy rules by using drag and drop functionality.

Mediator 12c: Assign Values

Mediator 12c: Assign Values

Sensors DT@RT

Sensors are already a known feature of the SOA Suite 11g. It’s basically means marking a variable or data field to be traced at runtime. So at runtime you can see the values of this field or variable for a running instance, but also you can search for running instances (e.g. find the running instance of which the field ‘order id’ has value ‘AB12345’). In SOA Suite 11g these sensors had to be defined at design time. In the SOA Suite 12c it also will be possible the define or change them at runtime: Design Time at Run Time (DT@RT). This functionality is added to the existing ‘SOA Composer’ application, which is already used to change other runtime metrics like the Rule Engine and Domain Values Maps (DVMs).

SOA Composer 12c: Sensor Values

SOA Composer 12c: Sensor Values

JDeveloper 12c: Configured Sensor(s)

JDeveloper 12c: When hovering on service binding an overlay with sensors is shown

Fault Policy Editor

One feature that surprised me when I was dissecting the Beta version of 12c was the addition of the Fault Policy editor. In 11g Fault Policies were added so that you could easy intervene when a (SOAP/BPEL) fault was thrown. But you could only create them in source mode, there was no graphical editor. In 12c Oracle has added this long awaited request. With the Fault Policy Editor you can now Design and Edit Fault Policies. Besides the already existed functionality a lot of new features are added.

  • Graphical editor for creating Fault policies, Alerts, Actions & Property Sets
  • New Default actions for invoking a WS and enqueue data (JMS).
  • Alerts can be defined to send fault to JMS, Email or Log file.
  • Alerts can be assigned to actions if type of Alert is desired to be triggered.
  • Fault Policies can be coupled, using the Composite Binding dialog, to different levels:
    • composite • component • reference binding and service binding •
12c Composite: Fault Policy Editor

12c Composite: Fault Policy Editor

Encrypt/Decrypt Personal info

Another new feature in 12c JDeveloper is the – Encrypt/Decrypt Personally-Identifiable Information or (PII). It assists in Protecting sensitive data from appearing in the Admin consoles in clear text.  For example a Social Security Number or Credit card Number. Specific Fields in a message can be encrypted when entering the SOA composite application in the service binding component, and decrypted while exiting the application in the reference binding component. It is available for services and adapters in both SOA (SCA Composite) and Service Bus. The PII policy is attached to the SCA Composite. The credentials/encryption to use is configured on WLS and is stored using the Credential Store framework (CSF).

12c Composite: Encrypt/Decrypt Sensitive Data

12c Composite: Encrypt/Decrypt Sensitive Data

Enterprise Manager

The Enterprise Manager for SOA Management & Monitoring had gotten a major overhaul. Because it is a lot of information there will be separate blogs to discuss all the features and because it is just to much to summaries hereby a short impression below.

SOA-Infra Dashboard

Enterprise Manager startpage shows soa-infra expanded:

SOA Suite 12c: EM Startpage

SOA Suite 12c: EM Startpage

On the SOA-Infra Dashboard page you can search for instances and create/save searches:

SOA Suite 12c: Search instances using SOA-Infra dashboard

SOA Suite 12c: Search instances using SOA-Infra dashboard

Deployed Composites are show with status and can easily be started and stopped:

SOA Suite 12c: Deployed Composites

SOA Suite 12c: Deployed Composites

Search instances with custom criteria or default filter:

SOA Suite 12c: Search Instances

SOA Suite 12c: Search Instances

Composite Sensor values are shown directly in the EM dashboard when you click on a instance:

SOA Suite 12c: Sensor Values

SOA Suite 12c: Sensor Values

You can also search on these Composite Sensors:

SOA Suite 12c: Search on Sensors

SOA Suite 12c: Search on Sensors

SOA Composite Dashboard

Composite Dashboard shows only components and services:

SOA Suite 12c: Composite Dashboard

SOA Suite 12c: Composite Dashboard

The Composite definition can be visually displayed:

SOA Suite 12c: Composite Definition visually in EM

SOA Suite 12c: Composite Definition visually in EM

By default no flow instances are show to give page a much needed performance boost:

SOA Suite 12c: Composite shows no instances by default

SOA Suite 12c: Composite shows no instances by default

When selecting a flow instance more details are show about faults:

SOA Suite 12c: Instance Details

SOA Suite 12c: Instance Details

And Sensor values:

SOA Suite 12c: Instance Sensor Values

SOA Suite 12c: Instance Sensor Values

And Composite dependencies:

SOA Suite 12c: Instance Dependencies

SOA Suite 12c: Instance Dependencies

The instance flow trace shows adapters in gray and SB integration:

SOA Suite 12c: Instance Flow Trace

SOA Suite 12c: Instance Flow Trace

SOA Composer

In the SOA composer you can add/edit composite sensor values, DVMs, Business Rules and other artifacts:

SOA Suite 12c: First look at SCA Composite features Composite SOA Composer

SOA Composer 12c: Composite Sensors

In the SOA Composer the Composite Diagram can looked at:

SOA Suite 12c: SOA Composer

SOA Composer 12c: Composite Diagram

 SOA Error Hospital

In the SOA-Infra dashboard (recoverable) faults are visual using a chart:

SOA Suite 12c: Error Hospital Dashboard

SOA Suite 12c: Error Hospital Dashboard

The flow instances tab shows faults that can be recovered, click on Error Hospital to recover them:

SOA Suite 12c: Recoverable Fault

SOA Suite 12c: Recoverable Fault

In Error Hospital tab faults can be recovered, with option to Bulk Recover:

SOA Suite 12c: Error Hospital Bulk Recover

SOA Suite 12c: Error Hospital Bulk Recover

During the recover attempt the number decreases:

SOA Suite 12c: During attempt count decreases

SOA Suite 12c: During attempt count decreases

Recovered Faults are shown in Green:

SOA Suite 12c: Recovered Faults are shown in green

SOA Suite 12c: Recovered Faults are shown in green

This blog may be updated if other cool features are discovered.
For full coverage check the other first look blogs.