At this moment in time I am really getting into the challenges of our SOA implementation.
It is clear that we are not going to be able to achieve all we would like to in this phase of the project as there are more important things to get done in the times scales.
The Data Search Façade
One of the elements of the project is that two important pieces of data reside in multiple systems. What the existing legacy application does is to search each of these system in turn until it finds a match, then retrieves the desired information. Unfortunately not one of the systems hold all the data for these items also these systems belong to other organisations which we connect to via external interface.
Obviously this isn't ideal. So I have decided that not only am I going to facade this search sequence from the business logic layer but also from the data layer.
Why?
These data items are also requested by other systems, so this sequence search is written in other systems, but not as extensively as this instance. By creating a facade will make the search request easier to call. By offering a more comprehensive search I will make using this service more attractive to use by other systems. This will promoting re-use, reduce the amount of complex code that will require support and start to remove duplications of effort.
So this is my idea to turn a problem into a win!
The facade also allows me to take the problem in a more manageable time-frame as this is indeed an industry wide issue and this will take time to fix.