Friday, December 19, 2008

Error Handling in Oracle's ESB

This is a re-post of an earlier article I wrote. Any links to the old version will now be busted... Sorry.

In our project, we follow a strict governance process for governing our services. We identify the services and their operations from our Business Process Model, then proceed to producing a WSDL and associated XSDs to represent that service. Only once this is done will we proceed to implementation. This is called top down design and is generally a good thing. By doing this, we end up with a clean design that represents the ideal, pure business requirements, rather than being technology driven as is often the case with bottom up designs. Nothing new here. Sooner or later, the rubber hits the road, and we end up implementing the service using some sort of technology. In a recent case, Oracle’s ESB product was selected as the implementation technology for some entity services that we are developing. It allowed us to provide a SOAP interface to our entities, whilst still preserving transactions and speedy performance by tying into WSIF and Oracle’s optimised message delivery capabilities. So far, everything was looking rosy. Then we got to implementing the fault handling.

UDDI registries and Mocking

This is a re-post of an earlier article I wrote. Any links will now be busted... Sorry.

UDDI registries provide a number of features. Primarily they are billed as governance mechanisms for enterprises running SOA environments. They also provide endpoint indirection capabilities, which are useful from a governance perspective, but can also be used for testing. This is an extension of the dependency injection pattern, which is commonly used in object oriented programming, into the distributed world. When a developer unit tests he wants to test only his component, and not necessarily the dependencies of his component. This leads to more directed testing, and means that a high level component can be developed in parallel to lower level components, or even before.

By using dependency injection, we can abstract away the dependencies of a component and replace the code that we are calling with an interface which gets updated at run time to point to the implementation that we want: either the real implementation (for production) or a testing stub implementation that suits the test that we are running. This approach is generally called Mocking and is in widespread use throughout the industry.

In the SOA world, our interfaces are WSDLs, so we don’t really need to change our development practices to support dependency injection; all we need is a mechanism. Oracle’s BPEL product provides a test tool that allows the developer to run his orchestration process in a special mode where any invoke/receive step can be replaced by a Mocked response. This is great, but it is not a general solution, and the testing tool has several.... well bugs.... that make it more difficult to use. UDDI registries also provide the capability to indirect endpoints, so they could equally well be used in this regard. It has the advantage of being ubiquitous. Wherever you invoke web services, you can use UDDI. Those endpoints can be changed to point to your mock services, possibly written in SoapUI. What this requires is runtime access to the UDDI server

Thursday, December 18, 2008

Weight Loss

I'm trying to loose weight, and I'm tracking it using google docs

Here's a graph of my current weight. Due to some google docs charts wierdness, I can't show the actual weight, so you'll have to read 0 as 80, 1 as 81, etc... Hopefully, this graph should change as I update the data. Thats what I'm checking out.



How am I achieving this? Work kindly provides a gym, and has hired personal trainers to come in each day during the lunch break. By going to these I'm managing to drop some weight, plus I'm finding it has some motivational benefits as well. I feel happier in the afternoons and more willing to work with a smile on my face :)

Nobody cares, except for me of course, but insn't blogging the height of narcacism anyway?

I give in

I have run my own blog, on and off, for some time now. I was paying for hosting, and setting up my own wordpress install.

The first one got deleted due to user error (PEBKAC).
The second one got defaced by remarkably funny russians.
The third one had its database corrupted.

I don't care if google has my information any more. You win, its easier to do it this way... oh well.