Service Oriented Architecture

SOA is short for Service Oriented Architecture. SOA is basically an architecture where there are a set of services which are typically exposed as a set of web services by one or more applications and can be invoked by webservice clients. It’s a readymade framework. For e.g.you could have a front end interface for internet banking which would invoke a remote webservice to authenticate the user on login, another webservice to get a list of accounts and yet another webservice to get account details etc. So there is this bank of services which is the SOA layer that provides information to external clients services eg. as web services.
The primary motive is to decouple the producer and consumer of information so that one is agnostic about the internals of the other.
It is usually a set of webservices, but not always. For example you could have have a layer of services that are invoked by Flex (Flash UI) from a browser where flex is a thick client like applet/flex. (Thin client is html/javascript).
So in our case, the thick browser client is invoking services on the app server.
SOA is not really anything different, it’s just a design pattern or architecture. One example would be EJBs where you have a bunch of EJBs providing services and the client code will lookup an EJB and invoke a method on it.You could deploy updates to the EJBs without impacting the client code as long as the method signature doesn’t change, but mostly SOA is a set of webservices; that’s the most common usage. This is another way of decoupling business implementation from the client code. The client is only interested in getting access to that business functionality leaving the implementation to the SOA developers.
That’s all there is to SOA – the implementation is quite varying. In that sense most webservices are SOA, but SOA might be a host of webservices.
If you search for SOA on the internet you’ll find a lot of literature, but a lot of them won’t make sense because all vendors tout their own frameworks so instead of stating the theory they dive into the detailed implementations.
Here are some links…
IBM’s http://www-01.ibm.com/software/solutions/soa/
microsoft http://msdn.microsoft.com/en-us/library/aa480021.aspx
oracle http://www.oracle.com/us/technologies/soa/index.html
Most of the literature maybe marketing stuff.
Here is a generic explanation of SOA
http://javaboutique.internet.com/tutorials/serv_orient/

About cuppajavamattiz
Matty Jacob - Avid technical blogger with interests in J2EE, Web Application Servers, Web frameworks, Open source libraries, Relational Databases, Web Services, Source control repositories, ETL, IDE Tools and related technologies.

Comments are closed.

%d bloggers like this: