About Me

My photo
"Enoughtheory.com" had its humble beginning in the year 2011 by ( Founder of Enoughtheory.com ) Mr Ravi Kant Soni , an Enterprise Java and Spring Framework Specialist, with a bachelor degree (B.E) in Information Science and Engineering from Reva Institute of Technology at Bangalore. He has been into the software development discipline for many years now. Ravi has worn many hats throughout his tenure, ranging from software development, designing multi-tenant applications, integration of new technology into an existing system, to his current love of writing a Spring Framework book. Currently, he is a lead engineer at HCL Technology. Ravi has focused on Web and Enterprise development using Spring Framework for most of his career and has been extensively involved in application design and implementation. He has developed applications for Core-Bank, HR and Payroll System, and e-Commerce systems using Spring Framework. Ravi Kant Soni is author of book "Learning Spring Application development" http://learningspringapplicationdevelopment.com

Friday 20 July 2012

SaaS application development


SaaS application development

Software as a Service (SaaS) is a Software distribution model on which the data and associated files will be kept on the Main Server. Then it is possible to access the site using browser. By keeping the data and files on a centralized server, it only need to modify the files on a Single place and the changes will be reflected everywhere. Linked In, webex, Basecamp are examples of applications based on SaaS model. SaaS application is having the following architecture:
SaaS - Software as a service

Tenant

Tenant is the user or customer of the application. Usually SaaS uses Multi Tenant architecture that means, more than one user can use the same application. Single Tenant on which there is one user for the entire application.

SaaS Implementation

While developing an application using SaaS model, we have to consider few important things. This includes the database design changes, coding changes, authentication of Tenant, User, Loading User specific Theme & Content, SOA etc.

Authenticate Tenant

Once request received on Tenant Server, the very first thing which needs to do is to authenticate the Tenant. For this, we need to check the Host Name with our Tenant Database. If the Authentication is success, then the system receive the Tenant ID from database. We need to store this Tenant ID somewhere which can be accessible always either in SESSION or similar places.

User Authentication

  • Next steps is checking the User Authentication if needed. User may access the page with or without a role. For this, system uses Tenant ID.

Return Output

  • This contains a number of process.To get a result, it uses different independent components and achieve the result by using one or more of them together.
  • It may contact with database during this time.
  • In all cases, it carries the Tenant ID.

Database Structure

Keypoints which we need to consider while designing database are:
  • Design database tables to feel it like a separate website
  • Apply indexing
  • Always keep Tenant ID in all tables for easy database management

Service Oriented Architecture (SOA)

Important points to consider here are:
  • It need to split the functions as much as smaller independent components
  • The state of each function does not interact with other
  • Achieve each services with loosely coupled components

Theme Management

Multi Tenant Application needs option to change Theme by keeping the inner functionalities as same in some cases. The basic layout structure of a Multi Tenant SaaS application have three steps layouts.
  • Wrapper: This is common for the whole application.
  • Nested Layout: This contains the site specific details like logo, hard coded contents etc. We can use CMS (Content Management System) to change the Site Specific details.
  • View: The actual content requested will be displayed through this page.

1 comment:

  1. Indeed a very helpful article both for the SaaS providers and the SaaS users. These are some of the most common things people interested in SaaS need to be aware of. Thanks for posting this! Another thing that would be of help for those who are in dire need of SaaS assistance is Lirik (http://lirik.io/). They are SaaS experts that have come to help you!

    ReplyDelete