My first meeting with Oracle SOA suite was roughly 1.5 years ago, and it has been the steepest learning curve I have experienced so far in my 4 years of professional experience with software development. And it continues to be a love/hate (hate mostly) relationship. So I decided to write this tutorial to (hopefully) make things a little bit easier for the new recruits out there.
I am by no means any expert on the subject, but I will try to give a succinct and clear strategy on how to make your life a little easier by providing you with some tips and tricks that really helped me tackle the beast. Some of these things I learned the hard way, most of it was passed on to me from more experienced developers. A few times I was lucky enough to find something on the Internet.
This tutorial will be split into several parts, and will be structured in the following way:
- OSB development
- Persisting data in a database
- BPEL and BPM, and how to use MDS
- JMS and File adapters
- Tips and tricks
The above list might be expanded on or changed to include more content. I am still learning a great deal, so more useful content might be added. The "Tips and tricks" section will contain various information across the whole SOA suite and dev environment, and will be expanded on as we progress through the various tutorials.
There are several versions of SOA suite available, and the one I am going to be dealing with is 12.1.3 as it is the one that I have experience with. Though most of the content we are covering should be transferable to later (and possibly some earlier) versions.
Setting up your dev environment
There are a couple of things you need to get started (google it for download links):
- JDeveloper !(Your new favorite IDE)
- A supported database (Oracle DB recommended)
- WebLogic server (To deploy and test your applications)
- SoapUI (For testing and setting up mock services. Optional but highly recommended)
What you need to be aware of is that the JDeveloper version should match the version of WebLogic (and if you are going to be delivering code for a project, make sure that it matches that version). It may sound strange that the version of an IDE is linked to the version of WebLogic. This has to do with available components, that may or may not be supported in other versions. Installing JDeveloper and a database should be fairly straight forward, so I am not going to explain that in detail.
If your development team has not provided you with a development image setup with WebLogic, go curse quietly for yourself before manning up to ask them to do so. If they are not willing to help, there is at least a guide for setting up a compact domain from Oracle.
A compact domain allows you to run both OSB and SOA on the same AdminServer. Having a local environment where you can run and test the services you develop speeds up your productivity, since you do not have to wait for your code to be deployed elsewhere, and it makes it much easier and accessible to debug your code as you have full admin rights and easy access to useful logs that you otherwise might not easily access on a test environment used by the whole project.
Before proceeding any further I also highly recommend reading up on SOAP, WSDL's, XSD's, XPath and Xquery if you have no previous experience with that. w3schools has some nice tutorials you can go through on each subject.
Ready to start developing? Continue to OSB development tutorial