Over the past couple of years the Service Oriented Architecture (SOA) model of system architecture has become a popular way of getting management consultants and technology evangelists like me into enterprise application integration (EAI) projects. SOA is pretty high-level term that conjures up visions of a panacea where monolithic applications have gone the way of the dodo and loosely coupled, distributed, highly-specialized resuable services have taken over the world. Of couse reality is much less appealing than that fantasy world, but SOA and its variations have definitely started to make the IT world think less about applications and more about services. But, what are services? Basically, a service is a focused resource (an agent, a tiny application, a specialized class) that has a defined set of inputs and outputs and performs a particular function. The idea behind an SOA is that businesses will have all sorts of services and the applications simply use one or more services in a particular order along with the rules that govern the business processing and exception handling, and event management. The management of services within an SOA is often referred to as service orchestration. A little while after SOA was formulated as a marketing buzz word, ESB’s (enterprise service buses) were touted as the means by which SOA could be implemented and the real value of an SOA could be achieved.
Read the rest of this entry »