Jared's Weblog

Main Page - Books - Links - Resources - About - Contact Me - RSS


Jared Richardson Most Popular
Help! I've Inherited Legacy Code
Testing Untestable Code
Continuous Integration... Why Bother?
Mock Client Testing
The Art of Work
Technical Idiot Savants
Targetted Skills Aquition vs Free Range Chickens
The Habits of Highly Effective Developers



Blog Archive
2005-December
2005-November
2005-October
2005-September
2005-August
2005-July
2005-June

Tue, 14 Mar 2006

The abuse of SOA and Web Services

Over the last two weekends I've been at conferences in St. Louis and Boston. (I've got to get another hobby!) At both locations I was involved with the Birds of a Feather session for architecture.

I found it very interesting that in both cities, SOA and it's usage was discussed. Teams using SOA technologies (like Web Services for instance) to pass larger data sets are finding SOA works very well.

Other teams that are wrapping very small bits of data in a Web Service are finding them to be cumbersome, ugly, and useless.

The problem is the same abuse of EJB that occurred a few years ago. People took a technology that's designed to handle large, coarse-grained chunks of data (something like getCustomer) and using it for fine-grained data queries (like getFirstName). The technology wasn't designed for setters and getters, it was designed for documents or datasets.

People who abused EJBs thought they weren't very useful either. :)

The trend was very pronounced. Everyone implementing SOAs with fine-grained access thought SOA was a buzzword compliant boondoggle mandated by clueless management. Everyone using coarse-grained SOAs access loved the technology and saw it filling a real need. During both discussions light bulbs went off all over the room. People saw what they were doing right or wrong.

It came down to the concept of what Mark Richards called an application interface versus and enterprise interface. Fine grained access should be available in a light-weight way from within an application. You don't move that to RMI, Corba, or a web service. However, when you have an enterprise interface, it gets shared via Corba or Web Services, and because of that scope and cost, you only share the bigger document requests through those interfaces.

This is just an observation on what I find to be an interesting trend. I think it's significant because Boston and St. Louis are in completely different parts of the country and (primarily) host different types of industry. Yet, they're already bumping into the same issues.

The principal here is to learn the new technology or tool, but don't use it just because you can. Don't use it if you don't understand it. Most of the technology we use falls into the category of YAGNI. You Aren't Going to Need It. New technologies are still good to learn so that you understand when they are appropriate to use, but abusing a new technology just so you can use it tends to cause more problems than it solves.

Jared

posted at: 12:35 | path: | permanent link to this entry