Posts

Showing posts from 2016

Progress with the Oracle Integration Cloud Adapter SDK

Image
In the past few days, I have been making some progress with using the ICS Cloud Adapter SDK.  Today, I created my first shell adapter - the design time views can be seen below!

The journey so far:   * Installation of all the offline material [Check]
Gotcha's to note here: the step to install SDK patches wasn't required for 12.2.1 (the version I was on).   * Reading through the documentation [Ongoing]  * Developing the empty adapter and deploying it for design time and runtime [Check]
There are a number of integration use-cases that we have identified. If all goes well, these will be available for a wider rollout, helping customers implement some complex integration use-cases with some important cloud services in "hours, not months" in keeping with the Oracle ICS philosophy (and in line with DRY software engineering)!
More coming soon...

WS Security - enabling passwordDigest authentication in an Oracle FMW environment

Image
Objective: To have a basic level of authentication on web services (especially where there's no transport layer security) without having to pass clear text passwords in the WS Security headers. 
Background: The concepts are fairly generic but this post is highly Oracle Fusion middleware/SOA Suite specific. There can be complex decision tree (see [1]) involved when selecting the 'appropriate' level of security for any system. As security involves trade-offs between cost, performance, usability and other variables, the 'appropriate' level of security could be highly specific to the environment, usecase, system and people. But as developers, we can still perform some due diligence based on the tools and knowledge available to us.  
My rule of thumb when developing a traditional web service or microservice is: If it's reading from a secure database or some system that is accessible only via authentication, it must only expose a secure endpoint. 
Now sites can differ con…

Managing shared metadata (MDS) in a continuous integration environment

Image
Goals and Summary: * Package shared metadata in a SOA environment and make it widely distributable (SOA MDS [2], Servicebus, maven artifact repository)  * Associated sample: https://github.com/jvsingh/SOATestingWithCitrus/tree/develop/shared-metadata   * Key command (if you use the associated pom file)  mvn deploy com.oracle.soa.plugin:oracle-soa-plugin:12.2.1-0-0:deploy -Dpassword=*****
Background: Having worked on a wide range of projects, I came to the realisation that SOA can mean vastly different things in different places. It can be about implementing the foundational service oriented architectural principles or it can be simply about using a tool or technology with SOA in its name- just like any other programming language. In a mature SOA environment, the shared metadata contains valuable artefacts that provide the foundation – subject to design, it contains the canonical information model of the enterprise (in the form of business/entity objects) and the various organisational API in…

Easy SOA releases with JGitFlow

If you use GIT as your source control system and if you use maven, the jgit-flow plugin is a massive time-saver, especially when we release a slightly large application with multiple modules (Each with it's own pom file). 

Two steps:  mvn clean external.atlassian.jgitflow:jgitflow-maven-plug in:release-start and  mvn clean external.atlassian.jgitflow:jgitflow-maven-plug in:release-start
do the job. 
The above sequence basically updates the pom file versions to a release version (e.g. from 1.0-SNAPSHOT to 1.0, merges the development branch changes to the master branch, and sets the pom versions in the development branch to the next snapshot 1.1-SNAPSHOT)
If you have an application with multiple projects/modules, all of them can be released in one go (such as my application here that contains two modules)
Of course, there are some peculiarities when SOA Composite projects are involved.  e.g. the oracle-soa-plugin maven plugin insists on 'deploying' the composite and running tests at …

Test Driven SOA - citrus for powerful SOA test coverage

Image
Reading parts of Test-Driven Development for Embedded C" by James W. Grenning inspired me to take another look at this area and look for something new,  fresh and powerful for use in the SOA world. 

I don't think we need much convincing on the importance of  automated test coverage (if someone does, please read the first chapter of the book mentioned above, especially the section on "Physics of TDD" that tries to quantify the high long-term costs of "Debug later programming" - the nemesis of TDD)

A very simple application with a SOA composite project and Tests project can be found here: https://github.com/jvsingh/SOATestingWithCitrus

Although the test in this is just a simple SOAP request, what I am interested in are the features that citrus has to offer that can help create a solid battery of tests. 

Tests can be specified in Java or XML or a combination of bothA number of test utilities are inbuilt - including things like database access, JMS,mock SOAP endpo…

Maven builds for SOA 12c Composites with BPEL Java embedding and Java class

Image
Enviornment: Oracle SOA Suite 12.2.1

Sample Application:https://github.com/jvsingh/SOAAppWithJavaEmbedding/tree/develop/SOAApplication
(Git clone or use the download option from here: https://github.com/jvsingh/SOAAppWithJavaEmbedding/tree/develop )

Scenario: 
 A BPEL component has a Java embedding that in turn calls a Java class method (under the usual SCA-INF/src)

Issue:
This works and builds find using JDeveloper, but the oracle-soa-plugin for maven seems to have a few known issues (see references for one of them) that cause builds for such composites to fail. 


 My Java embedding, referring to my class com.singhpora.samples.SOAApplication.SCAJava under SCA-INF/src can be seen here: 

When I build the SOA project using "mvn clean package"  (from the SOAProject directory with the default pom) , you can see that I get two distinct errors as shown below:  a) It can't find my class from under SCA-INF/src  b) It cannot find even the BPEL platform classes





The workaround(s) for the two i…

#AMIS25 and The Oracle Cloud Shift : Insights from my first Holland trip

Image
I would like to take this opportunity to wish AMIS Netherlands a very happy 25th birthday. In the context of Oracle SOA, the the name AMIS often keeps popping up - they have contributed a lot to the knowledge available to the community around this and related Oracle technology. 
As they chose to celebrate this occasion in a uniquely signature style - by holding a global Oracle conference with an impressive lineup of speakers from all 6 continents and also by holding the event in an old aircraft hangar (commemorating their origins as the Aircraft Management Information Systems)  It was a pleasure to be invited by Lucas Jellema (@lucasjellema) so I decided to attend at least one day - the Friday, 3rd of June. The line-up of events though was fantastic on both days. 

I arrived in the Netherlands on Thursday, the 2nd (my first visit to the country, outside the airport that is) and decided to explore places nearby... More on this later!
All the speakers might upload their presentations as they…