This post originated from an RSS feed registered with Java Buzz
by Simon Brown.
Original Post: SOA : Instantiation and availability
Feed Title: Simon Brown's weblog
Feed URL: http://www.simongbrown.com/blog/feed.xml?flavor=rss20&category=java
Feed Description: My thoughts on Java, software development and technology.
One of the questions that I always ask when I see SOA is whether the services it consists of are real "services" or just components. After all, what's the difference between SOA and a loosely coupled component-based architecture?
When trying to figure out if something is a service rather than a component, I think one of the easier characteristics to look for is whether you need to instantiate it before first use. In my mind, services are available all of the time, sitting there ready to "service" clients. Of course, services don't necessarily need to be available all of the time, but that's something defined at the business level rather than the technical level, perhaps as a service level agreement.
As an example, contrast a session bean that you lookup, "create" and use with a message-driven bean that is sitting in an application server ready to handle requests. Does this mean that an application built using a bunch of MDBs can be considered to be a service oriented architecture? Perhaps I'll be able to answer this when I look at some of the other characteristics of services in more detail.