In this post, we will try to draw a contrast between Service Oriented Architecture (SOA) and Software as a Service (SaaS). We will also highlight some major characteristics of SOA to develop a better understanding.
What is SOA?
SOA is an application deployment model in which applications utilize certain already available services to deliver a desired outcome. These services in question are housed within the network defined for the SOA.
- Impact of Cloud Computing In Transportation Industry
- 6 Valuable Tips to Get Your VDI Deployment Right
- Understanding Fault Tolerance and Impact Management
How Does SOA Work?
In an SOA model, many inter related services are logically clubbed to take the shape of applications. Within the Service Oriented Architecture (SOA) model, there are two major roles:-
As the name suggests, this entity maintains the ready service and makes it available for other entities to utilize it.
This entity will be interested to avail the service offered by SOA and to do so, will need to develop client level components and integrate them with the service provider.
Characteristics of SOA
Here, we try to outline some of the defining characteristics of an SOA model.
Once a functional service has been developed, it is offered in standardized form to consumers.
Each service developed under SOA model is indigenous and hence, does not rely on other services. It has the capability to function on stand alone basis.
The documentation related to the service is highly standardized and focuses entirely on the operational aspects, rather than its underlying logic.
As services designed under SOA are standardized, they can easily be utilized for other usage scenarios, without the need for any development costs.
A user simply has to understand how the service will be used. In this case, the user need not spend time and effort to understand the underlying logic.
Where to Deploy SOA?
Processes developed under the SOA model have a strong demonstrated ability to function on a stand alone basis. The other great aspect of SOA is that these indigenous processes can be further combined to orchestrate a whole application.
This block wise approach is suitable in scenarios where a largely standardized solution is required by many potential users in various application scenarios. As SOA based applications are built from smaller processes, slight tweaks are quite possible.
Software as a Service – SaaS
This is one of the many forms of cloud computing solutions. In this model, a Cloud Service Provider (CSP) offers a fully functional software solution in a virtualized environment to end users. In exchange for usage, the user pays a fee to the CSP.
In a SaaS model, all the hardware that is required to deliver the software is the sole responsibility of the CSP. The user simply logs into the CSPs architecture and avails the functionality of the software solution.
In addition to the hardware and software, all the licensing requirements for the software are also the responsibility of the CSP. Keeping the software solution fully updated and patched for security updates is also the domain of the CSP.
A SaaS model is highly convenient for the end user as the cloud tenant does not need to invest in procuring hardware to run the software solution. The CSP in turn allows many users to avail the software solution that are collectively called cloud tenants.
Diff b/w SOA and SaaS
Although the major similarity among SOA and SaaS is that both solutions are designed to run or execute an application. It is basically the difference in how the solution is deployed that makes them two different entities.
In the case of SOA, the end user has to procure and maintain the support hardware over which the solution will run. The hardware requirements for the SOA solution will vary depending on the complexity and scale of the process or application.
Still, this entails both hardware procurement and maintenance costs. In case of SOA, there is the additional burden on the user entity to seamlessly integrate the solution into its existing architecture. This may give rise to integration related challenges.
A SaaS solution in contrast, comes as a fully packaged product that can instantly be used without procuring even a single additional piece of hardware. Secondly, the software offered by CSPs is highly standardized and users know the functionality.
On the contrary, an SOA based solution may have a fairly steep learning curve for the using entity. Even a small tweak to the SOA delivered solution will require a deep understanding of the underlying logic, which will require both time and resources.
Although the choice between SOA and SaaS based architecture will vary with the unique preferences of each entity, we can safely conclude that a prospecting organization must first exhaust all options for a SaaS solution, before going for SOA.