Software as a service
Software as a service (SaaS) involves hosting the software or platform of applications, remotely and providing access to these applications over a secure Internet connection. There are 2 ‘types’ of SaaS:
1-One is for internal usage (eg. Using SAP applications to manage your firm’s Human Resource processes such as time sheets, vacations, performance evaluations, or Sharepoint to manage documents); and
2-The second is for external clients (example moving your ‘fat client’ software which clients used to download, to a Cloud-model, where the logic sits on a remote server and there is no client logic to be downloaded).
Within the SaaS model, the software is deployed on a server (or a number of servers) and is accessed through a web browser. It is not deployed on a local PC. The software is owned and managed by a software provider, rather than the organizations using the software.
Users may pay for the software according to the amount of use they make of it or through an annual or monthly subscription. Example: Google Docs, Dropbox, Salesforce. Key elements of SaaS include:
SaaS vs SOA:
Software as a service (SaaS) and service-oriented architectures (SOA) are related, but they are not the same. Software as a service is a way of providing functionality on a remote server with client access through a web browser. The server maintains the user's data and state during an interaction session. Transactions are usually long transactions e.g. editing a document.
Service-oriented architecture is an approach to structuring a software system as a set of separate, stateless services. These may be provided by multiple providers and may be distributed. Typically, transactions are short transactions where a service is called, does something then returns a result.
Implementation complexity of SaaS
Many organisations may need to customise the SaaS application. As an Enterprise Architecture principle, this is never the preferred model. However, it may be valid in some cases. An example is the extension of Salesforce functionality (reporting for eg) using ‘Lightening’ APIs, add-ons or market-place products. Service configuration includes:
The underlying physical infrastructure of SaaS (and related virtualisation) is shared amongst clients or ‘tenants’ unless the organisation buys a ‘dedicated host’. This will mean that the SaaS provider needs to present a replicated copy of the software ‘watermarked’ for that client, using however, common resources.
With Covid pushing remote usage of SaaS to all-time highs, the SaaS vendor must have an auto-scaled elastic infrastructure to provide uninterrupted service against potentially scaling demand.