When upgrading to from OSB 11g to OSB 12c or to its cloud cousin SOA CS there are new features that you should be aware of. I will go through the most important ones in this posting. Additionally I will present some architectural / operational facts that you should know. Obviously you don’t have to adopt every new feature. Mostly OSB 11g projects will continue to work after they are loaded as a config jar into 12c. So using new features of 12c can be a gradual process.
The following non exhaustive list was compiled to support the upgrading of a dozen of several large scale projects with almost 200 services on OSB and a team of 12 developers. It assumes that you have a basic understanding of OSB 11g.
Installation / Domains
- Choose the SOA Suite 12c quickinstaller for for first exporations. Quickinstaller comes with WebLogic, OSB, SOA Suite, and JDeveloper. All matching version numbers. Also the internal domain is created and started automatically and it runs the the Java DB.
- Compared to 11g the creation of a dev environment has become easier, but the installation of a prod domain more difficult (due to hard dependencies on a database)
- Even though quickinstalls are easy, consider the use of virtual instances, Docker or at least a scripted installations for dev environments. Even for mediums sized team developer team you will have to fix issues more often than you might believe if developers follow a written instruction. Always. Script. Automate. Or put it in a (virtual) box.
- Understand the creation of standalone domains. It saves you the time and resources for deploying unnecessary SOA Suite artifacts when only an OSB domain is required.
- For production domains you need a supported Oracle
DB (mainly for MDS, but also for OWSM etc). - Therefore for production installations you have to run the RCU utility to generate the required schema.
- You cannot load 11g Eclipse projects into JDeveloper 12c directly.
- Expect that you can import most of your OSB 11g artifacts as an sbconfig.jar into JDev and they will continue to run. There might be exceptions, so test a representative number of your typical communication patterns / transport protocols and XQuery / XSLT transformations for an estimate.
IDE / JDeveloper
- JDeveloper is the only IDE you can use with OSB 12c. Support for Eclipse does not exist anymore
- We found JDeveloper 12c (12.2.1.1) on Linux rather unstable and observed several crashes. The dev team will use more Windows 7 based installations now and I will update this item later
Maven
- Make sure to understand maven support. It was broken in 12.2.1 and required manual fixes in several pom files.
- Officially maven is still not fixed in 12.2.1.2 but it works if you configure the maven.oracle.com repository and also use the push plugin to create local artifacts in .m2.
- Note that just pushing the 12.2.1.2 ORACLE_HOME into .m2 with the maven plugin from OSB is not enough and you will encounter missing files.
- Don’t forget to update the catalogue of maven artifacts after using the OSB maven plugin.
Actions / Pipelines
- Pipelines are not part of the proxy service anymore, but standalone now.
- Separated pipelines enable reuse.
- Pipelines can use shared variables.
- You can enable/disable stages and actions but not pipeline pairs.
- You can use domain value maps (DVM)
- You can also use cross references (XRef)
- There are pipeline templates. I find them useful to standardize service development and especially error handling.
- Make sure to understand about the new resequencer to order messages in OSB
- If you import an OSB 11g jar the existing proxies will be automatically converted and the pipelines will be extracted and shown as separated items.
- OSB 12c actions are mostly the same. Understand if you can make good use of the following new features / actions
- dynamic validation
- disabling actions
- The new nXSD replaces the MFT for native data formats
Caching / Coherence
- Make sure to understand OBS caching per service implemented. This can be a huge performance boost and a rather large number of project teams I am talking to don’t even consider to use it.
- If OSB caching for the results of business services is used, configure it properly (off instance coherence cache).
XQuery
- OSB 12c supports XQuery 1.0 and XPath 2.0 specifications
- XQuery libraries are supported also graphically by JDeveloper
New Consoles / Fusion Middleware Control
- The new /sbconsole is now available under /servicebus
- Oracle Fusion Middleware Control is the new console for monitoring etc. It is available under /em.
- You can now dynamically update Domain-Value Maps (DMV) in OFMCtrl
Upgrade Process
- Oracle publishes a lengthy upgrade flow diagram describing the upgrade process. Familiarize yourself with it.
- I usually recommend not to upgrade existing 11g domains with the reconfiguration wizzard but to start with a new 12c domain and then reimport your artifacts, and recreate configuration with your automation scripts (e.g. WLST).
Cloud
- Consider using the SOA Cloud Service for the benefits of an cloud instance (almost zero setup, metered licensing, automatic patching etc).
- You can have a free SOA CS trial for 30 days. This give you time to explore if it flexible, fast and reliable enough for your needs.
- All functional features described above apply to OSB on premises as well as SOA CS.