Multiple store fronts
Since the ISV may chose to sell directly and/or through a hoster and/or an aggregator, we introduced the term “store front”. The store front is one or more places from which a potential application tenant can subscribe to the application. An ISV may choose to have a store front on its web page as well as selling some edition of the application through a re-sellers store front.
N-tierd multi tenancy
To fully leverage the economy of scale, the hardware infrastructure and many of the platform services in a given hosting infrastructure may be shared between multiple ISVs.
From an application hosting provider’s perspective, there may be many instances of these application architectures, one for each application, running simultaneously. These applications may come from the same or different ISVs, sharing services such as the security services. So from this viewpoint, the hosting infrastructure is multi-tenant with multiple ISVs (“platform tenants”) sharing hardware and services.
One level up in the SaaS ecosystem, at the ISV’s or application providers’ viewpoint, each application can have multiple tenants (“application tenants”) since the ISV will sell his application services to multiple customers/users (jointly referred to as “consumers”).
An ISV that chooses to self-host and to build the shared services capability themselves will not have to be concerned with multi-tenancy at the hosting infrastructure level. However, this series of blog post will focus on the requirements and techniques for building the multi-layered model and therefore cover multi-tenancy at the application level as well as multi-tenancy at the hosting infrastructure level.
Two platform tenants or two application tenants may never see each other’s private configuration, but there may be shared configuration at higher levels.
· As an example at the hosting infrastructure level, all platform tenants are configured to use the centralized authentication model, except the platform tenants in a specific region that use the decentralized model trusting a local Security Token Service (STS).
· As an example on the application level, all application tenants in a SaaS Point-of-Sale system have a the “refund approval limit” for the “store manager” role setting set to €1000 for all stores in the Europe, except for the stores in France where the same setting may be €1500.
Actors/roles in this play
In this series of blog post, we have used a couple of fictitious companies to illustrate the SaaS ecosystem:
· A fictitious SaaS application hosting provider named “Northwind” providing two platform run-time instances and a set of shared services. One run-time instance is an entry level platform with a single web server and a single database server. The other run-time instance has a much higher service level and uses load balanced web servers and clustered SQL servers.
· Two fictitious ISVs (or platform tenants) called “Litware” and “AdvetureWorks”. Both ISVs have chosen to use external hosting and signed up for Northwind’s SaaS platform plans. Litware’s application is only available on the entry level platform but AdventureWorks is available on both platforms through a low price “basic” plan and a high price “premium” plan.
· The architecture of the SHP allows multiple store fronts and Litware have chosen to sell both directly through their own web site as well as through Northwind.
· Two fictitious consumers (or application tenants) have subscribed to Litware’s application. These application tenants are “Contoso” and “Fabrikam music school”
Image: The SaaS ecosystem as applied to this series of blog posts
SHP Overview
In the first post in this series, I mentioned that I would go through six scenarios:
1. Defining the application platform run-time instances and its capabilities
2. Defining the application meta data and adding a new ISV (or platform tenant) and its application and modules (or just “software items”) to an new or existing platform run-time instance
3. Managing the re-sellers hosting plans in the store front to include software items from the new application
4. Order fulfillment and order management in the store front and provisioning for new application tenants (subscribe)
5. Usage metering and billing for the application tenants
6. Accessing the application with web single sign-on and federated web single sign-on
To implement these scenarios we need a SaaS Hosting Platform (SHP). I will go through the SHP In greater detail as we go, but here’s n overview to start with:
· One or more platform run-time instances. Each platform run-time instance is a set of physical or virtual machines and platform software in a given configuration such as the one described in Windows Based Hosting for Applications. A given platform run-time instance and its capabilities is described in a platform manifest that is stored in the platform service. The platform manifests together with a per platform tenant platform tenant manifest describes all aspect of the run-time platforms.
· One application manifest per application. The application manifest is an XML document that conforms to a SHP-defined schema. The manifest instance is maintained by the ISV an it describes all relevant aspects (dependencies, installation details, metering points, monitor hooks etc) of the software items that compose the ISV application.
· A set of services such platform, provisioning, catalog and metering service.
o The platform service is responsible for
§ Storing the application, platform and platform tenant manifests
§ Keeping track of the mapping between platforms, platform tenants and applications
§ Serving other applications and services with information from the manifests such as
· generating provisioning tasks from platform, platform tenant and application manifest
· providing software items from the application manifest to the catalog
· generating management rules to the management software from the application manifest
§ Keeping track of inventory of what software items are installed on which platforms
o The catalog service is responsible for maintaining a catalogue of platform items, software items and services, including licensing and pricing information, combined into application tenant and platform tenant hosting plans. This service could be implemented on top of the store front operator’s enterprise resource planning (ERP) system, but for this article we use a sample catalog service written as part of this article.
o The provisioning service is responsible for executing the install tasks for initial provisioning, per application tenant provisioning etc. Any provisioning system, such a Microsoft Provisioning System (MPS) could be used. For this article we use the sample Light Weight Provisioning System (LPS) written as part of this article.
o The metering service is responsible for collecting and aggregating metering information from the run-time platform instances as well as the applications running on top of these platforms and makes this information available to the billing system.
o Infrastructure services such as DNS, application publishing, packet inspection as well as access control services for authentication and authorization via web single sign-on (Web SSO), federated Web SSO, plan based access control etc. Even though the platform could do role based access control (RBAC) as well, this is typically managed by the application.
· A set of applications such as the plan management, order management and the order fulfillment web pages
o The catalogue is maintained by the store-fronts business manager through a plan management application that allows to combine platform and software items with services into plans that platform tenants and application tenants can subscribe to
o The platform and application tenants can subscribe to these plans from the order fulfillment web page which is well integrated to the store-front web site
o The store-fronts business manager can track orders through the customer relationship management (CRM) system directly or via the order management web page
o A set of Powershell admin scripts and semi-automated administration tasks
· A set standard applications such as platform and application monitoring, customer relationship management (CRM), accounting and ERP with five integration points
o Order fulfillment sends customer and order information to ERP and CRM
o The catalog service (master) can export software items to the ERP system (slave)
o For periodic billing, the ERP system can query the metering service for usage data
o Platform access control can query ERP/billing for outstanding payments.
o Platform service can generate management rules for the monitoring system