OSB – Comparing Transformation Performance by Over de Auteur

 

clip_image001Introduction

In this post, I am looking into the relative performance of the transformation technologies in Service Bus 12c. Having searched the internet, I could not find a lot of specific information regarding the performance in Oracle Service Bus, but only qualitative opinions like “XSLT performs better for large documents”, or “Service Bus is optimized for XQuery”, without any supporting data [ORAFORUM].

Background

In an attempt to offload some of the production load from the SOA clusters, a migration project has been initiated to migrate services implemented in SOA Suite 11g (as BPEL processes) to the Oracle Service Bus cluster.

Although these services are not directly exposed to consumers, the intention is to reuse – without modification- as much artefacts as possible, including WSDL, JCA adapter definitons and the transformation logic – currently implemented in XSLT. Fortunately, the XSLT is version 1.0 since our Service Bus 11.1.1.6 does not yet support version 2.0.

Environment Setup

Although the environment where the question originates currently runs SOA/OSB 11g, migration to 12c is being planned. Liking life on the bleeding edge of technology, I decided to setup a test for 12c.

To quickly create a (reproducible) SOA 12c installation, I have used the scripts [BIEMOND] provided by Edwin Biemond to leverage Vagrant for the creation of two virtual machines (one for the DB and one for the middleware) (). Since my laptop has enough memory available, I have assigned 8 GB to the middleware virtual machine. Furthermore, the memory settings for the OSB-server have been increased to 1536 MB (initial = maximum memory).

On my laptop, I have also installed SoapUI [SOAPUI] (for functional testing – verifying that the testcase using different technologies yields the same result) and Apache Jmeter 2.13[JMeter] (for the actual performance testing).

Scenario Setup

For the time being I want to primarily focus on the relative performance of XQuery when compared to XSLT, over multiple transformations with varying payloads. So, the only metric I am interested in is the response time of the service, assuming that -with all other things being equal- equal actions will add equal overhead: the total response time of the service will be taken as the main indicator.

To support different transformations for testing, there should both be XQuery and XSLT versions of the transformation. Ideally, we should have different proxies per scenario and transformation technology, but actually I am too lazy to set up this scenario. Initially, I was thinking about setting up different testcases in the same proxy and switching between these testcases based on a value in the payload or operation, this has the suspicion that it works like a case statement (or nested if-then-else): evaluating the conditions for the fourth case might take more time than for the first case.

Fortunately, Service Bus also supports “Dynamic Transformations”[OSBDYNTRANS] for both XQuery and XSLT: this lets you dynamically assign the name of a transformation resource to apply, and also dynamically assign the payload to this transformation (see the Dynamic XQuery example below):

OSB Dynamic Assign Operation

The project I have come up with consists of a single proxy exposing a single operation and five pipelines: Read the whole article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Advertisements

About Jürgen Kress
As a middleware expert Jürgen works at Oracle EMEA Alliances and Channels, responsible for Oracle’s EMEA Fusion Middleware partner business. He is the founder of the Oracle SOA & BPM and the WebLogic Partner Communities and the global Oracle Partner Advisory Councils. With more than 5000 members from all over the world the Middleware Partner Community is the most successful and active community at Oracle. Jürgen manages the community with monthly newsletters, webcasts and conferences. He hosts his annual Fusion Middleware Partner Community Forums and the Fusion Middleware Summer Camps, where more than 200 partners get product updates, roadmap insights and hands-on trainings. Supplemented by many web 2.0 tools like twitter, discussion forums, online communities, blogs and wikis. For the SOA & Cloud Symposium by Thomas Erl, Jürgen is a member of the steering board. He is also a frequent speaker at conferences like the SOA & BPM Integration Days, JAX, UKOUG, OUGN, or OOP.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: