Recently all aspects of enterprise software application development have been moved away from traditional product-based approach towards the newer serviced-based approaches. The rapid growth of SaaS (Software as a Service) and SOA (Service Oriented Architecture) is a direct result of that. SaaS is the category of cloud computing in which the main resources available as a service are software applications. SOA is an architectural model in which the solution logic is presented as services.
What is SaaS?
Cloud computing is a style of computing in which resources are made available over the internet. Most often these resources are extensible and highly visualized resources and they are provided as a service. SaaS is one of the categories/methodologies of cloud computing. As mentioned above, resources available as a service through SaaS are specifically software applications. Here, an application is shared across multiple clients using the “one-to-many” model. The advantage offered for the SaaS user is that the user can avoid installing and maintaining software and can free him/herself from complex software/hardware requirements. The provider of SaaS software, also known as hosted software or on-demand software, will take care of the security, availability and performance of the software because they are run on the provider’s servers. Using a multitenant architecture, a single application is delivered to millions of users through internet browsers. Customers do not require upfront licensing while providers enjoy a lower cost because they are maintaining just one application. Popular SaaS software are Salesforce.com, Workday, Google Apps and Zogo Office.
What is SOA?
SOA is an architectural model in which the solution logic is presented as services. By having services as the main method of delivering solutions, SOA strives to be highly efficient, agile and productive than other existing technology solutions. SOA provides support to realize the advantages of service-oriented principles and service-oriented computing. Many different technologies, various products, application programming interfaces, and other various extensions typically make up a SOA implementation. Application of service-orientation principles to software solutions produces services and these are the basic unit of logic in the SOA. These services can exist autonomously, but they are certainly not isolated. Services maintain certain common and standard features, yet they can be evolved and extended independently. Services can be combined to create other services. Services are aware of other services only through service descriptions and therefore can be considered loosely-coupled. Services communicate using autonomous messages that are intelligent enough to self-govern their own parts of logic. Most important SOA design principles are loose coupling, service contract, autonomy, abstraction, reusability, composability, statelessness and discoverability.
What is the difference between SaaS and SOA?
SOA is a manufacturing model which deals with designing and building software by applying the service oriented computing principles to software solutions, while SaaS is a model for sales and distribution of software applications. In simpler terms, SaaS is a means of delivering software as services over the internet to its subscribers, while SOA is an architectural model in which the smallest unit of logic is a service. So, SOA (an architectural strategy) and SaaS (a business model) cannot be directly compared. However, to get the maximum benefits of cost reduction and agility, it is highly recommended that enterprises integrate SOA and SaaS together.