PaaS Partner Community

  • November 11, 2015

OSB – Comparing Transformation Performance by Over de Auteur

Juergen Kress
PaaS Partner Adoption


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].


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 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

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.