Service Oriented Architecture (SOA) is a topic much touted by IT vendors around the world. IBM, Hewlett-Packard, Software AG, Oracle, SAP and Microsoft, just to name a few of the names.
“What is SOA?” You ask.
The short answer is that SOA  is a business method for creating IT systems that enable enterprises to:
. seize existing assets;
. create new ones;
. facilitate the inevitable changes needed to support the business.
SOA is all about building, using and combining services . It’s an architecture like any other: it involves trade-offs and design decisions in implementation. Sun defined SOA in the late 1990s to describe Jini, which is an environment for dynamic discovery and use of services on a network .
A service, unlike the component, is external to the software that requests it (and often remote). When we talk about services we have two implicit functions: service requester and service provider. A service is a feature that is exposed for use by other processes. In other words, a service has an interface that can be used by some service requester. A web service is then a feature that is exposed and accessible using web technologies.
According to W3C , a web service is defined as follows:
A Web service is a software system designed to support interoperable machine-to-machine interaction over a network.
As an example, if want to create an application with many features I can:
1. Require multiple services on the web. Let’s assume that I want to create an application that allows you to offer the expense control service for travel to users. There are certain things potential customers might want:
. How much does it cost to get to the location I’m looking for?
. What is the exchange rate?
. What is the cost of food?
Most services that allow you to build the application are available on the web as a form of service. What I have to do, in this case, is to combine them to create the app.
2. Build everything by myself.
Both in point 1 and in point 2 I’m talking about web services. However, in point 1, since there is a whole range of services that I require to build the application, I need to design an architecture that supports such use, namely SOA (which is not necessary in section 2).
 Fern Halper et al. (2009). Service Oriented Architecture For Dummies, 2nd Edition.
 Kenny Wong (University of Alberta): https://www.coursera.org/learn/service-oriented-architecture/lecture/kEZue/4-1-1-introduction-to-service-oriented-architecture
 Qusay H. Mahmoud (Oracle): http://www.oracle.com/technetwork/articles/javase/soa-142870.html
 W3C: https://www.w3.org/TR/ws-gloss/