Ever built a web service? I bet you have. And I bet, that for most readers, you thought “here’s a way that someone else can use my app,” and for most of those apps, absolutely no one does.
Perhaps you are building a web service that everyone needs and no one knows you’ve done it? That’s one possibility. It’s rare.
The other possibility… more likely by far… is that you have built a web service that you need, but no one else does. So it won’t be reused.
So how do you build a web service that everyone needs? How do you build a truly enterprise web service?
First off, realize that this isn’t a technical question. It’s a business question. What services are needed by different applications and/or different organizations? How do you know?
One solution is to use a capabilities map, like the one provided by the MS-Motion framework. A capabilities map is a heirarchy of capabilities within your organization. It is very similar to a process map (like those created by the six-sigma folks) but is less influenced by the odd divisions of labor in an organization and more constrained to a basic set of “stuff” that every company does. We all have products, marketing, sales, financials, collaboration… we all have customers and suppliers. Most of us have business partners. It’s pretty straight forward, and honestly, it doesn’t change that much from day to day.
And that’s the beauty of the capabilities map. If you tie the web services to a capability, you are tying it to something that doesn’t change that much… something fundamental.