Saturday, June 06, 2009

Oracle 11g Fusion Middleware available

As everybody using the current Oracle SOA Suite and Oracle Service Bus, we known that there is a new version coming, 11g.

An announcement will take place by Charles Philps and Thomas Kurian on the new Oracle Fusion MIddleware.

Join Oracle President Charles Phillips and Oracle Senior Vice President Thomas Kurian for the launch of Oracle Fusion Middleware 11g on July 1, 2009, at the Andrew W. Mellon Auditorium in Washington, D.C. from 10 a.m. to 3:00 p.m. Eastern time.

Be the first to hear about the product strategy and latest features in the newest release of Oracle Fusion Middleware. Whether your business focus is on products, services, people, or government, don't miss this chance to gain critical insight into the relevance of Oracle Fusion Middleware 11g for your business.


See also the Wall Street Journal

A new version of the Oracle Service Bus (OSB 10.3.1) is now available, quick list of new OSB features:
  • JCA Transport with certified JCA adapters
  • Support for generating config.jar from command line or ant task.
  • Enhancements to native MQ Series Transport.
  • New APIs to support the SOA Management Pack for OSB.
Download it here.

Tuesday, June 02, 2009

Base64 enconding

Updated for SOA 11g

Within the SOA suite you can handle binary data. Sometime you need this data passed through the system for notification. For example sending the data as an attachment via mail.

Within BPEL you can call the notification system and create your attachments. But before that this binary data should be decoded to an ascii format of the mail server can handle this.

The data needs to be Base 64 encoded. There are no default BPEL functions to decode or encode data. We can solve this by creating our own embedded Java function in the BPEL process.

This java function will pickup XML data and encode this into Base64 format. The Java code to to this is here:

New 11g:
String base64 = ((oracle.xml.parser.v2.XMLElement)getVariableData("declaratieBase64Binary ")).getFirstChild().getNodeValue();
String decodedData = oracle.soa.common.util.Base64Decoder.decode(base64);
Old 10g:
<bpelx:exec name="Java_EncodeStringtoBase64" language="java" version="1.5">
String input = (String)getVariableData("resultString");    
String encoded;
  addAuditTrailEntry("BPEL Inline JAVA/INPUT: \n" + input);
  com.collaxa.common.util.Base64Encoder Encoder = new  com.collaxa.common.util.Base64Encoder();
  encoded = Encoder.encode(input);
  addAuditTrailEntry("BPEL Inline JAVA/INPUT: \n" + encoded);
  setVariableData("resultString64", encoded);    
catch(Exception e)   
In this example two BPEL variables are used.
  • resultString - type string, contains the input string
  • resultString64 - type string, contains the encode Base64 string