Tutorials
SOAA lot of individuals tend to associate Service Oriented Architecture with World Wide Web based services. The two, however, are not one and the same, and thus must be distinguished from one another. We will first begin by elucidating the concept of Service Oriented Architecture before moving on to Web services. For the moment, we are going to focus on Service Oriented Architecture in order to understand how it is distinct from Web based services. Then we will show how the two are in fact connected.
When Object Oriented programming first began to get popular, C++ was an emerging programming language that also had strong support for object oriented methods of programming. But it was not correct to say that a C++ program was object oriented. While object orientation happens to be an architectural approach, C++ is a language through which such architecture is attained.
One can say the same thing when it comes to Web services and Service Oriented Architecture. “Service Oriented Architecture” is the term that designates a philosophical approach to a solution’s design. The utilization of web services is one method by which such architecture might be attained.
But the use of web services is not the only way one might go about building Service Oriented Architecture. Just as it is possible to utilize C++ language without the use of an object oriented program, one can also have web services without the use of Service Oriented Architecture.
But all that should become clear in a minute!
A web service can be thought of as a software component or service that has been published on the World Wide Web in a particular fashion. A web service is typically exposed through such technological entities as Representational State Transfer, XML RPC, or SOAP (the Simple Object Access Protocol). It may also be exposed through the usage of your own special message encoding, as long as it manages to comply with the Hypertext Transport Protocol (or HTTP for short.)
The term “web services” is also used in the industry in a more specific way as a means of describing services that tend to be exposed through the use of Simple Object Access Protocol, which is an XML based message encoding that tends to be transported via HTTP. Simple Object Access Protocol’s current version is 1.2, although Simple Object Access Protocol 1.1 is more commonly used. JAX RPC for Java ME is actually based on this original version.
Through the utilization of well defined interfaces and service descriptors, web services tend to promote the independence of programming language, hardware, and operating systems, as well as loose coupling among consumers and providers, and clean separation among exposed interfaces and their implementations. Such characteristics end up in the form of services that are interoperable, simple to interface with, and quite easy when it comes to aggregating.
A lot of people tend to equate web services with Service Oriented Architecture. The truth is, web services are merely one element of Service Oriented Architecture. Web services are mainly about the invocation of services. The scope of Service Oriented Architecture is a lot more complex than just mere invocation allows. It is a total software component architectural model, presenting a means of organizing, deploying, managing, discovering, and exposing software components, which are then consumed via the World Wide Web.
From the perspective of software life cycle, in addition to the typical software development aspects of design, deployment, and development, Service Oriented Architecture defines phases that are specific to web services, including discovery, service publishing, consumption, binding, and management.