SaaS as a Service – OEM / VAR/ branding ? Hierarchical Multi-tenant design

This may not be a new concept or a new idea, but many of use wouldn’t have noticed.. or at least when I try to see in internet search, I didn’t read much, so I thought I will blog what I know.

What is this – SaaS as a Service or why?

Imagine, being a SaaS company, where does a situation comes you will need someone to resell your product in SaaS model with a different brand or same, or with different features or capabilities or may be more localized. So this is more of a situation, as it appears the value added resellers are the service providers, who have been using your product to manage their clients and services, and now when you want to move from On-premise to a SaaS model, you still want to carry over your client base of value added resellers(VAR).

Another situation, being a ISV, you may not want to develop all the necessary building blocks by yourself, but you may want to include some other services like Licensing, billing, integration, maps, storage, computing services from another vendor in your SaaS delivery but at the end it is delivered to the end user as one solution. This is typically called mash-ups, but I am trying to extract the scenario where ISV needs to use the mash-ups, and those services are available to the ISVs enabling the customization and present themselves as a OEM or VAR Channel partner.

So what is this Hierarchical Multi-tenant design?

Well I can read lot about the SaaS and how-to , all over the web. So I don’t need to explain here again in detail. So if we all understand, (SaaS) Multi-tenant is all about every data we store in the database, can now identify which tenant it belongs to, instead of maintaining one database per tenant rather share the database server, computing power and the application code for all the tenants. And if you are in a early stage development and if you are considering the multi-tenant database, you will need to consider including another element so that your data can now identify the hierarchy of your accounts .

Let’s say the company “SAASIFY”, wants to sell their services all over the world, and instead of selling directly, it wants to sell through OEM/VAR Channels. So their product is delivered through SaaS model all their customers (VAR channels) or OEM.

SAASIFY can focus on developing the software, hosting and RASP (Reliability, Availability, Scalability, Performance), may not sell the services directly, but may generate collaborative marketing effort for all the customers. Each of those partners again, they can just focus on selling the services not to worry about maintaining or administering the software. When they login, they can see all their customers, and allow each of their customers to login in to the same system to manage/administer themselves.

 

 

 

ClickOnce – OnPremise or On-Demand

This is an interesting solution, which fitted exactly what i was looking for in one of the Web application product.

The Application for video monitoring and management, is designed to be both on-premise distributable and on-demand hosted model. When we caem across a requirement, to introduce a backup feature, where we have to allow users to backup recorded video in any format (avi/wmv) and also provide an option burn a CD/DVD directly.

This is obviously, a destkop application, but we wanted to have it available in our Web Application for our both On-premise   and On-Demand Customers.

Now, with the ClickOnce setup, we have hosted the backup module in a central hosted server, so both links in On-Premsie and On-Demand points to this common server to download the application,. and also the beauty is, the ClickOnce allows to send parameters. So what we did is, once the applicatiion downloaded if not already, will decode the parameter (as it is sent from plain javascript call), and execute a webservice call from this backup module with the parameters received. This parameter tells which server to ask for data to populate.

So when the Backup application is loaded, the application comes from the central hosted server and it is seamless to the user, as after it loads the application, it talks to the server which user is using (either on-preimise or on-demand) to populate the camera details.