This post originated from an RSS feed registered with .NET Buzz
by Udi Dahan.
Original Post: Wither Service Discoverability
Feed Title: Udi Dahan - The Software Simplist
Feed URL: http://feeds.feedburner.com/UdiDahan-TheSoftwareSimplist
Feed Description: I am a software simplist. I make this beast of architecting, analysing, designing, developing, testing, managing, deploying software systems simple.
This blog is about how I do it.
One topic that keeps popping up every now and again is how services are supposed to be discoverable. I never even knew that was a word. Come to think of it, since services don't actively hide, what does this term really mean? Is it a return to the pipe dream of UDDI? Or is it just a document on the company intranet that describes what services there are and what they do. Although the problem with such documentation is that software documentation has this nasty habit of getting out of date very quickly.
So, let's say I'm developing a system and need some functionality. I go "somewhere" and "discover", wow, here's a service that already does that (by aforeto mentioned out-of-date documentation). I happily use the discovered service and deploy my system. The next day, the users complain that the system doesn't do what its supposed to. I check it out and find out that the culprit is the other service I used. I go to the person in charge of that service to complain. They explain to me that the service doesn't work as documented, and that I need to fix my code to comply with the new semantics. But there's a problem. My system's semantics clash with the service's newly discovered semantics. What do I do?
Or rather, what did discoverability do for me?
We've been solving semantic incompatabilities since the dawn of integration. There are no easy solutions to it. Don't expect SOA, with or without discoverability, to solve it for you. There are no silver bullets, never were, probably never will be. So think long and hard before you shell out for a "Service Registry" that will "enable Enterprise-scale service dicoverability".