Skip to main content

Software As A Service (SaaS)

A Short Note on SaaS [Software As A Service].

IMHO, I am building upon a short post on SAAS, this is not exhaustive, but I encourage the readers to share their valuable comments to improve this post.

SaaS is an abbreviation of Software As A Service.AKA Software on Demand, where the vendors develop, host and operate on the software and make it available on the internet for its consumers / customers.

SaaS is the most mature category of cloud service, since it evolved from the application-service-provider model of software hosting.

With SaaS, software applications are rented from a provider as opposed to purchased for enterprise installation and deployment.

SaaS is the most mature category of cloud service, since it evolved from the application-service-provider model of software hosting. With SaaS, software applications are rented from a provider as opposed to purchased for enterprise installation and deployment.

Users
Can range from small group to multitude

SaaS Considerations

1. Faster time to market & Agile
This point is with respect to the global availability of the application and its agile driven development / upgrade process applicability.

2. Costing
Versatile [Monthly / Quaterly / Yearly subscription or per user based licensing model] the ability to pay for only what is used.

2. Infrastructure
Approx 70% of the cases use shared platform and shared instances [ Pure Multi-tenancy] solutions that could scale up and down based on demand.

3. Security
The very nature of SaaS poses security challenges.  In order to detect and prevent intrusion, strong encryption, authentication, and auditing must be a part of the application design to restrict access to private and confidential data. Liabilityfor the cost and damages associated with any data breach typically rests with the SaaS provider.

3.1 Authentication
Mostly preferred is SSO and some do have options for managing Personal Profiles

3.2 Security Rating
Rating of the security on data should be made to ensure the protection level and may demand a physical inspection of the SaaS provider's premise

3.3 Regulatory compliance
Storing sensitive data like employee bank account particulars in the cloud may be non-compliant for some countries
Use of federation for user identification and enablement within and accross domains
Capability of using SSO to facilitate multiple cloud application access
Rolebased access control to the user's
Tenant should be responsible for managing his own users and can allow delegated administration
Tenant controllable encryption mechanisms for safe transfer of data across the wire
Regulatory controls for auditing the user actions and also ensuring user access from controlled countries
Data security to ensure which data is accessible to whom and by what means
Data Security mechanisms should be in place during the data in transit and when in the database.

Monitoring
Diverse tools to monitor the performance
Tools should be provided the poll the application services and infrastructure services to get health status and take necessary actions if required.

Performance
Performance of the application under voluminous user and transaction operations. i.e. the application's performance in the case of a single customer's transaction as well as the simultaneous transactions.


Mostly favored aspects of SaaS
Configuration over customization

Configuration requirements for each tenant w/o downtime of the application
1. Metadata configuration
2. Metadata engine configuration or the business rule engine to gain a finer control of the business behaviors
3. Tenant based configuration of the data security to have a means to allow or restrict the user access to the data
4. Configuration for handling and logging exceptions


Scaling requirements
Ondemand scaling up and scaling down.
Loadbalancing is required in order to scale the application across myraids of servers increasing the application availability and this results in a fail-safe and redundant data. However, there must be a mechanism in place to keep all these servers in sync so that no stale data is rendered to the users operating simultaneously.
horizontal scalability refers to the process of adding a servers to serve the application across different requests.This enables location transpareny

Mutli-tenant efficient
should be capable of managing tenants with a single shared instance

Presentation tier
should be intuitive & user friendly & localizable
cross device presentability

Reporting
Application specific pre-defined reports and ad-hoc reports

Syncing data with external data
In the case of synching external data with the SaaS application data, there should be pointers to identify the right version of the data and which are available for sync.
Also, some data will be added to the SaaS application asychronously i.e in the back-end requiring that the data will be uploaded from the onpremise application to the SaaS application for some reporting or other purposes.


Metering indicators should be provided to indicate the usage, availability, failures and response times etc..

Disaster recovery plans
This should be in place which will be as a part of the application development and also in the course of usage.
This also should define a set of procedures and/or plan should identify mission critical data and how often it should be backed up, describe where data is housed, backup procedures, what tests are run to ensure the probability of recovery, and whatresources are responsible for data recovery. Additionally, a clear path should be detailed as tohow easy a customer can retrieve data, both
raw and processed, if a decision is made to leave aparticular SaaS provider.

Deployment
1. Any multi-tenant application will be using the common code base and a shared database [pure form of multi-tenancy] and be accessed simultaneously. The user experience should be similar to that of an on-premise access.

Audits
There are two types of audit that are required
1. Security audit
SysTrust and SaS 70
In a SysTrust audit, the auditor evaluates whether a particular managed services provider is reliable when comparedagainst the principles set for security, availability, processing integrity, and confidentiality of sensitive information which may be set forth in the form of an SLA between the managed services  provider and its customers.
The major difference between the SysTrust and SAS 70 audits is the scope of the audit. While the SAS 70 audit provides a report on the effectiveness and adequacy of internal controls for a managed services provider, the SysTrust Audit provides a report covering an application’s reliability.

2. Information audit

Application updates
To deliver the enhancements of an application to improve the user interface or the functionality of the system or a performance improvement aid.

Patches are the issue fixes for the bugs identified in the system in due course of operation or testing after release or as a part of a new feature integration.

Ratio of the updates to onpremise and SaaS application is 4-6 months Vs 4-6 weeks for a SaaS application.

Comments

Popular posts from this blog

User Authentication schemes in a Multi-Tenant SaaS Application

User Authentication in Multi-Tenant SaaS Apps Introduction We will cover few scenarios that we can follow to perform the user authentication in a Multi-Tenant SaaS application. Scenario 1 - Global Users Authentication with Tenancy and Tenant forwarding In this scheme, we have the SaaS Provider Authentication gateway that takes care of Authentication of the users by performing the following steps Tenant Identification User Authentication User Authorization Forwarding the user to the tenant application / tenant pages in the SaaS App This demands that the SaaS provider authentication gateway be a scalable microservice that can take care of the load across all tenants. The database partitioning (horizontal or other means) is left upto the SaaS provider Service. Scenario 2 - Global Tenant Identification and User Authentication forwarding   In the above scenario, the tenant identification happens on part of the SaaS provider Tenant Identification gateway. Post which, the

SFTP and File Upload in SFTP using C# and Tamir. SShSharp

The right choice of SFTP Server for Windows OS Follow the following steps, 1. Download the server version from here . The application is here 2. Provide the Username, password and root path, i.e. the ftp destination. 3. The screen shot is given below for reference. 4. Now download the CoreFTP client from this link 5. The client settings will be as in this screen shot: 6. Now the code to upload files via SFTP will be as follows. //ip of the local machine and the username and password along with the file to be uploaded via SFTP. FileUploadUsingSftp("172.24.120.87", "ftpserveruser", "123456", @"D:\", @"Web.config"); private static void FileUploadUsingSftp(string FtpAddress, string FtpUserName, string FtpPassword, string FilePath, string FileName) { Sftp sftp = null; try { // Create instance for Sftp to upload given files using given credentials sf

Implementing Row Level Security [RLS] for a Multi-Tenant SaaS Application

Row Level Security The need for row level security stems from the demand for fine-grained security to the data. As the applications are generating vast amounts of data by the day. Application developers are in need of making sure that the data is accessible to the right audience based on the right access level settings. Even today, whenever an application was built, the application development team used to spend a lot of time researching the approach, implementing multiple tables multiple logics 25 queries to add filters to manage the data security for every query that gets transferred from the end user request to the application database. This approach requires a lot of thought process, testing and security review because the queries needs to be intercepted, updated and the data retrieval to be validated to make sure the end-users see only the data that they are entitled to. Implementation With the advent of of row level security feature being rolled out in main d

Download CSV file using JavaScript fetch API

Downloading a CSV File from an API Using JavaScript Fetch API: A Step-by-Step Guide Introduction: Downloading files from an API is a common task in web development. This article walks you through the process of downloading a CSV file from an API using the Fetch API in JavaScript. We'll cover the basics of making API requests and handling file downloads, complete with a sample code snippet. Prerequisites: Ensure you have a basic understanding of JavaScript and web APIs. No additional libraries are required for this tutorial. Step 1: Creating the HTML Structure: Start by creating a simple HTML structure that includes a button to initiate the file download. <!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < title > CSV File Download </ title > </ head > < body >

Async implementation in Blazor

Step-by-Step Guide to Achieving Async Flows in Blazor: 1. Understanding Asynchronous Programming: Before delving into Blazor-specific async flows, it's crucial to understand asynchronous programming concepts like async and await . Asynchronous operations help improve the responsiveness of your UI by not blocking the main thread. 2. Blazor Component Lifecycle: Blazor components have their lifecycle methods. The OnInitializedAsync , OnParametersSetAsync , and OnAfterRenderAsync methods allow you to implement asynchronous operations during various stages of a component's lifecycle. 3. Asynchronous API Calls: Performing asynchronous API calls is a common scenario in web applications. You can use HttpClient to make HTTP requests asynchronously. For example, fetching data from a remote server: @page "/fetchdata" @inject HttpClient Http @ if (forecasts == null ) { <p> < em > Loading... </ em > </ p > } else { <table>