Recently I carried out a project in which we upgraded the middleware services from Aqualogic Service Bus (ALSB 3.0) to Oracle Service Bus (OSB 10.3). In OSB 10.3 some very useful features where introduced, for instance:
- Debug capability. In Workspace Studio, the Eclipse-based IDE, breakpoints can be defined. This allows you to step through the OSB actions and inspect the variables in a convenient way.
- Scripted Export. The configuration JAR that is used for deployment can be exported using for instance using ANT.
- Proxy server object. When your service needs connectivity to internet, a proxy server in the DMZ can be used. In ALSB, the only way to use a proxy server is to specify one in the server start parameters using the -Dhttp.proxyHost system property. This results in all HTTP traffic to be routed through the proxy server. To prevent this, a blacklist of hostnames needs to be managed using the -Dhttp.nonProxyHost system property. In OSB, the proxy server object was added. One or more proxy server objects can be defined. When a service needs connectivity to the internet, the associated OSB Business Service will be configured to use a proxy server object.
The process of upgrading a service bus project is mostly a trivial matter: load the project into the OSB Workspace Studio and it will be converted automatically.
We did encounter some issues which I will discuss briefly. Some issues were not directly related to the service bus.
Finally I will give an overview of the new custom developed build and deployment framework.
Issues and solutions/workarounds.
1. XPath namespace prefixes
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="example.com">
. . .
To select the 'HouseNumber' tag, the following XPath expression can be used:
where prefix 'ns1' is defined to be the correct namespace value "example.com"
When using very complex XSDs this is not garanteed to work in OSB! To work around this problem, we ignored the namespace altogether using the local-name() function, resulting in an XPath expression like:
2. XSLT validation in Workspace Studio
Custom build and deployment framework.
The custom developed framework has support for:
- the creation of resources: JMS (servers, filestores, modules, distributed queues, etc.), JDBC (multi)datasources, workmanagers
- the export and import of the configuration JAR.
- execution of the customization file
Building the deployment using Maven
This is post is by John Chin-a-Woeng, a Senior Oracle SOA Suite Consultant for Capgemini