Oracle released SOA Suite 12c (12.1.3) bringing a further integration between components and a bunch of new features. Most of them are quite spectacular, but at the same time all are useful. A release to persuade potential buyers and a lot more to please users of the product.
This blog will go through the most important new features in summary and will reference the blogs that will go through the new features per technology. This blog will list the most game changing feature(s) per technology/tooling; Jdeveloper, SOA Suite (SCA Composites), Service Bus (SB), Enterprise Manager, OEP, Managed File Transfer (MFT), etc.
Disclamer: Screenshots are made in Beta version of SOA Suite 12c, so may differ in final version!
Developer Productivity & Integration
Developer installer with integrated server
To kick-start developing with 12c, ’30 minutes to Hello World’, Oracle created a single download for JDeveloper and Database, Weblogic and SOA Suite. It’s one single package which include JDeveloper, a integrated Weblogic service with SOA Suite (including Service Bus), JavaDB (for it’s Database) and the Enterprise Manager.
Integration of SOA and SB development
In 11g the development environment of the SB is in OEPE (Eclipse), while the SCA Composite development environment is done in JDeveloper. In 12c both SB and SCA development is done in JDeveloper. For SB the analogy of the SCA environment has been used by renaming a ‘Proxy’ to ‘Proxy Services’ (‘Exposed Services’ in an SCA composite) and a ‘Business Service’ to ‘External References’ (same as in a SCA composite) and visually show them as swim lanes, see figure ‘SB development in JDeveloper’ below.
New technology adapters for Mobile Enablement, Integrated Caching and Cloud Integration
In this release of SOA Suite a lot of new adapters are added. For Mobile Enablement support is added for REST/JSON, The cache data into or to retrieve data from Coherence a Coherence Adapter is added and for Cloud Integration like Salesforce.com and ReadyNow there are separate cloud adapters available. There is also an adapter to connect to a LDAP service (put, get, list..) and an updated UMS adapter.
For a more in-depth list of Developer Productivity and Integration features check this dedicated blog, which also includes a first look at the new Enterprise Manager, integrated debugger and SOA tester.
SOA Suite (SCA Composites)
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.
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.
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.
For a more in-depth list of SOA Suite (SCA Composite) features check this dedicated blog, which also includes new BPEL activities, Fault Policy editor and Encrypt/Decrypt Personal info.
Service Bus (SB)
Splitting Proxy from Pipeline
Because a SB project is more like a SCA Composite (same overview) the Proxy is split from the Pipeline. This means that the Proxy and the Pipeline are two individual things. With this concept multiple Proxies can be wired to one Pipeline. Say you have a “Any XML” Pipeline, you can process the data from both Proxies (i.g. File adapter and JMS Queue). It is also possible in the IDE to wire a pipeline to a pipeline directly or create a business service from a proxy.
Create a REST service based on a Pipeline
One of SOA Suite 12c’s pillar is Mobile Enablement. You can expose a Pipeline as a REST service. When doing it creates a REST binding just like in a SCA Composite. In the wizard you can assign specific Resource Paths and Operation for the operations of the Pipeline. Downside is that you can only expose Pipelines that have a WSDL interface.
Kick-start an Service Bus (SB) project using templates
Just like SOA Suite’s SCA Composites the SB also supports the use of templates. But it works a little different. Templates are Pipeline-based, this means that you can select a template when creating a new Pipeline. There are two types of templates; Unlinked, which is a copy of the template, and Linked, Pipeline stays connected to template. In the template you can use Placeholders so permit changes to that part of the Pipeline. If the Pipeline is linked to a template and the template is changed the linked Pipeline will inherent these changes. You create a template pipeline, instead of a normal Pipeline and place it in a centralized project or in the MDS for re-use.
For a more in-depth list of SOA Suite (SCA Composite) features check this dedicated blog, which also includes MDS support, XSLT support, new web-based Composer and Native Format Translation.
New and updated product releases
With the release of SOA Suite 12c the usual suspects are also released i.g. BAM and OEP, but can also bring something new.
Brand new: Managed File Transfer (MFT) 12c
The 12c release of Fusion Middleware brings us a brand new product called Managed File Transfer abbreviated as MFT . Last year I already had the pleasure to do a presentation about it at OpenWorld together with productmanager Dave Berry. MFT is its own product in the FMW 12c family and runs on its own managed server. It is intended for receiving and sending large files (through 500GB+) and is a solution for removing binary files from a SOA transaction i.e. the SOAP message does not contain the binary file any more.
There is a growing problem with FTP in the enterprise. FTP can have a lack of control, visibility, security & reliability. Such problems can be the uncontrolled proliferation of FTP servers & clients, no global visibility into exchange of crucial data files (including customer data) and that they’re not integrated with enterprise security standards.
Managed File Transfer is a simple and secure End-to-End Managed File Gateway. The main purpose of MFT is transferring files between a source and one or more targets. The core is based on a “embedded” sFTP/SSH service and is optimized for large files and supports HA cluster, PGP encryption, auditing and monitoring of files. Transfers are easily extensible using the pre/post processing framework.
It integrates with (s)FTP, File, B2B, ODI, Healthcare and SOA, B2B and webservices (support for inline payload, attachment and pass-by-reference). MFT runs as an application on WebLogic 12c and has a lightweight Web based Design Time interface to easily build, edit and deploy end-to-end transfers and a Run Time interface to monitor running / failed transfer instances.
Some additional characteristics are built-in scheduling, separate installable FTP proxy, ZIP (de)-compression, callouts (archive, delete, custom), JDeveloper MFT binding and support for pausing, resuming & resubmitting transfers.
For more detailed information check out the OOW presentation on MFT: http://slidesha.re/16ZiCa8
Brand new: Enterprise Scheduler Service (ESS) 12c
This release brings another new product to the FMW 12c family. Enterprise Scheduler Service abbreviated as ESS. ESS is part of the SOA Suite license and with it you can schedule jobs (using job metadata modeling). Jobs can be created and scheduled through the EM, but there is also a Java API. Does this replace Quartz? No, SOA Suite still uses it internally (i.g. wait activity in BPEL).
ESS 12c can call Enterprise JavaBeans (EJB), PL/SQL (procedures/functions), Java and WebServices (SCA/SB and Sync/Async with OWSM). ESS keeps track of dependency management, conflict resolution, prioritization, clustering, processor allocation and throttling.
What can it do for SOA?
ESS support the scheduling of SCA Composites and SB Proxy services. It has prebuild jobs for initiating, activating and deactivating SOA and Service Bus components (i.g. activate DB adapter between specific time frame). ESS can schedule bulk error notifications to the dashboard (in EM) or to other alerting channels and bulk operations for fault management. With this fault recovery management ESS can automatically disable adapters and re-process faults in a controlled way.
ESS is automatically installed as part of SOA Suite, Service Bus and MFT. Deployment is optional in SOA Suite, Service Bus but required in MFT. One thing to take in account ESS only supports weblogic and oracle DB in 12c. ESS can be deployed to SOA/Service Bus cluster or a separate cluster in domain using the domain configuration wizard.
Business Activity Monitor (BAM) 12c
BAM 12c is one mayor upgrade and is mostly rebuilt from the ground up. This version has Multi-browser support including Mobile support, so your dashboard will look and act the same on different devices and browsers. In the near future BAM will get a native App (IOS and Android). BAM implements a more advanced Security model using OPSS (Oracle Platform Security Services) to secure the data it collects. BAM now support a hybrid integration of CQL and SQL, these both query languages can be used together to collect data from different sources. It uses Coherence for report and metadata cache. It has better integration with SOA Suite and BPM Suite because both use the same Uniform Start Schema and can export the data during the execution of processes to BI to allow continuous monitoring. Also a new feature in 12c is that BAM now support a Active-Active High Availability modes so can run on a cluster.
Continuous monitoring can be done in three ways, Real Time, One Time and Scheduled. It can also correlates Business Events that are streamed using OEP. BAM supports a side-by-side analysis between historical BI data ans operation data. There is even a special BAM dashboard that can be embedded into WebCenter Pages. The new dashboards comes more richer out-of-the-box and there is a more extensive catalog with Metrics i.g. SOA/BPM process performance and Human Workflow / Task performance. The new dashboards have updated geomap, tree map, watch list, shatter chart and bubble chart components.
Oracle Event Processing (OEP) 12c
Just like SB, OEP leaves it previous IDE Eclipse behind and is now fully integrated in JDeveloper. The new version is not just a simple port to JDeveloper, it’s gotten a mayor overhaul. Normally when you opened an OEP project you had to right-click on the project and select “Open EPN Editor”, now every project has a EPN Diagram entry in the project explorer just like the SCA Composite XML and SB Overview XML, just simple double-click to open editor.
The 12c release also adds dialog windows when creating components, these components can be created the old fashion way by right-clicking within the EPN editor, can also be dragged&dropped from the Components palette. Instead of writing the correct XML in source view the Dialog window will create the correct XML fragments. For editing the
Besides the basic components (i.g. Adapter, Event-Bean, Cache, Processor, etc) and adapters (HTTP pub/sub and JMS in-/outbound) this new 12c release adds two new adapter one for CSV (in-/outbound) and EDN (in-/outbound). But that is not all for OEP 12c, it also add extensions to support Hadoop and Oracle NoSQL for use as a source just like the TABLE component, and for an extension for invoking/receiving Remote Method Invocation (RMI) calls.