One of the more daunting aspects of planning out an SOA project is figuring out what technology you'll be needing to do it. There's a lot of supposed magic bullets out there. Some might help you with a single Web services project, but is it something you want at the heart of your service-oriented architecture? Is this a foundational piece of technology?
That's no small choice to make. It's kind of like figuring out if you should marry a person before the first date.
Though there is the consistent, radical suggestion that SOA is not something you buy, it's something you do. All right, you might say, how do I "do" it if I don't buy anything that enables me to do it?
First off, paying attention to your architecture and re-orienting the way you build applications is free. You don't have to pay to think and you might find you can undertake SOA projects using tools you've already got on hand. It's what ING Card did in building out an international credit card service.
Second, you could try to download some open source SOA tools. Emerging as an ever more important player in this arena is Eclipse. Their tools work with a wide variety of different platforms, making them well-suited foundational elements.
Last we ran the first of a four-part series on the SOA hooks inside the upcoming Eclipse Europa release, focusing on the Eclipse Modeling Project. We'll be following it this Thursday with a deeper look at the Eclipse SOA Tools Project. Data integration tools will be on the docket next week. Freely available modeling, service creation and data integration tools might be all you need for some projects.
Caveat emptor applies even if you're not spending money, perhaps caveat licensor would be the proper term. For instance, the Eclipse SOA Tools Project uses the Service Component Architecture assembly model and there is some criticism that SCA isn't central to service creation.
Infrastructure decisions are never easy, but Eclipse is making a slew of potential SOA functionality as easy to acquire as hitting the "download" button.