What is SOA?
So Just WHAT is SOA?
SOA has application building blocks that provide a specific "service". These are modular pieces of code that can coexist with one another providing services when invoked (initiated). Some of these might be "Create Invoice" or "Customer Lookup".
These services are implemented in a lossely coupled manner. They can be invoked without the caller needing to understand anything about the technology choice or location of the service provider. So if you are looking up a customer-the "Customer Lookup" service is invoked from another business application that requires customer information.
The beauty of SOA is that there is one common code base for all services invoked. In the past,you would need heavy code and processing power to invoke the exact service.
How do Web Services fit in with SOA?
SOA services are described, located, and invoked in a standard consistant manner. Web services provide a standard approach for addressing these needs. Web services, standards specifications are defined that handle how a service is described(WSDL), the invocation communications (SOAP), and the identification and location of the service(UDDI). This makes Web services very well suited for SOA implementation.
Note - Web service and SOA are not the same thing - but are often used together.
Other Considerations in SOA
I am not going to get into all of SOA requirements on this thread - but SOA requires additional "infrastructure" capabilities. These include things like security, management, monitoring, versioning, auditing, and conistant quality of service managed by an SOA infrastructure. In addition, there are elements involved with SOA such as a "transport" layer. This provides communications between the different services located in various locations which can be designated for use at any time. Keep checking back as I will get into more detail on these services in the future!