By: Robert van Mölken and Tim Askamp
An end-to-end application usually consists of multiple components that are one-way or another decoupled. A component can be an ADF frontend, OSB proxy, SOA Suite Composite, Database package or JAXWS web service. For maintaining all the components of an end-to-end application the components need to be checked individually to know if everything is in working order. So if there is for example a performance issue with the application there is no simple task to checked which component in the chain is responsible for this.
For one of our clients we’ve developed a ‘Probe’ application. The reason was that maintenance needed a simple way to determine if the SOA and Database environment: was running, configured as required and the basics where functioning. So basically we needed to mimic service operations that use the following components: OSB, SOA Suite, JAX-WS and ADF Business Components. Executing this functionality should lead to a traceable path of the used components. In this blog we will explain the solution we developed.
Before I talk about the advantages en methods of using the MDS, I want to introduce myself, because this is my first public post on the AMIS technology blog. My name is Robert van Mölken and I’m 26 years old. I’m now actively working, as a SOA Consultant / Developer, for nearly 5 years. My main toolstack is SOA Suite (3,5 years 10gR3 and 1,5 years 11gR1), but also have experience with opensource BPEL / ESB alternatives from Apache.
In many big SOA application all the composites use the same canonical1 data model (message definitions) for their service contracts. Many entities and elements (complex- and simple types) are reused. Therefor it is not a good choice to use a local copy for the service contracts (WSDLs) and message definition files (XSDs) in each SOA composite project.
If you do so and a mayor (common) part of the message definitions changes then you need to update all the SOA composite projects, where these files are used, with the new version of the files. Oracle created the MDS to solve this issue. MDS stands for MetaData Services. The MDS holds all kind of xml-based files, like WSDLs, XSDs, Domain Values Maps but can also hold fault policies and event definitions (for Event Delivery Network).