A Bit of Glossary...

Out of the Maze...

Many authors seem to associate the term 'Service Oriented Architecture' or simply 'SOA' with Web services. It is a very common mistake among the newbies in the world of Web services to believe that SOA and Web services essentially refer to the same thing when they actually don't. Technically speaking SOA is a concept at a bit higher level than Web services. SOA is an architectural approach to achieve loose coupling between software agents while enabling software reusability. A service is a unit of work performed by a service provider to facilitate the operation of a service consumer. Both the service provider (server) and the consumer (client) are software agents most probably residing in two distinct machines. Even though the consumer utilizes the services offered by the service provider it is not tightly bound to the service provider. If the services provided by the server are not satisfactory the service consumer has the freedom to switch to a different service provider and this switching does not require any changes to the service client.

SOA is a result of the natural evolution of distributed computing and modular programming. In SOA software functionalities are packaged as services that can be accessed from remote hosts. A service may be accessed by a service client or another service. All the communication is done based on a number of standards. Standards are pretty important in SOA. Without standards messages sent by one entity won't be properly understood by other parties.

SOA has the potential of supporting businesses and organizations respond to changing market conditions in a quicker and a more cost effective way. It takes the concept of software reusability from micro level (class level) to the macro level (service level).

OK...So What about Web Services?

It is important to note that SOA is a conceptual thing (an architecture). Practically implementing SOA is a different matter entirely. This is where Web services come into play. Web services are probably the most popular and widely used approach to implementing SOA. Web services make functional blocks of SOA accessible via standard and familiar internet protocols which are platform independent.

Web services have become so popular over the last few years now it is difficult to find a software vendor who do not support and utilize Web services in their products. However it is to be noted that simply having a couple of URLs in a software application does not mean that the software makes use of Web services and hence is an SOA product. In order for an application to be an SOA product it must well adhere to the Web services standards and make use of the Web services specific protocols like SOAP.

The boundary between the enterprise software systems and SOA based systems are getting blurred day by day. After all who wants a software that can be used only in a single machine when there are software systems that can be accessed from any machine in the world?

Before concluding it is important to emphasize the fact that Web services and SOA are not the same thing. Mathematically speaking Web services are only a subset of a larger set called SOA. There are many other approaches to implementing SOA like RPC and WCF. SOA is not bound to a particular technology. It can be implemented using various technologies.

library project main code
Learn Cloud
Learn
Cloud

The WSO2 Application Server is a reliable application server that can host your enterprise web applications. The WSO2 Application Server as a Service is offered in StratosLive, the WSO2 Platform as a Service. This article explains how a simple web application can be developed and deployed from Carbon Studio to the WSO2 Application Server...

Latest Webinar
Different groups within an organization need to monitor different Key Performance Indicators (KPIs) - An operations team will be interested in the response times of business services and loads of each service,..
Thursday, February 9th 2012, 09.00 AM (PST)

Thursday, February 9th 2012, 10.00 AM (GMT)