Cloud Zone is brought to you in partnership with:

As VP of Technology Evangelism at WSO2, Chris Haddad raises awareness of Platform as a Service, Cloud Architecture, Service Oriented Architecture, API Management, and Enterprise Integration. Prior to joining WSO2, Haddad’s experience includes building software development teams, contributing to open source, crafting technology roadmaps, leading Gartner research teams, and delivering Software as a Service and Web applications. Chris is a DZone MVB and is not an employee of DZone and has posted 107 posts at DZone. You can read more from them at their website. View Full User Profile

Building Multi-tenant SaaS Applications

10.14.2013
| 7363 views |
  • submit to reddit

Multi-tenant SaaS applications deliver a personalized client experience while maximizing performance and efficiency.   Many teams are challenged by the specialized knowledge required to create a SaaS application on a legacy Java platform.  Creating SaaS applications requires detailed knowledge of multi-tenancy, contextual personalization, declarative programming, and infrastructure scaling.  The WSO2 Carbon platform contains unique Cloud-Native frameworks that decrease development challenges when building multi-tenant SaaS applications.

SaaS delivers business capabilities ‘at the speed of now’ and allows organizations to efficiently pursue new business opportunities.  By design, SaaS applications deliver benefits ‘right now’ instead of months later.  For example, a team’s ability to rapidly on-board new customers and partners, and deliver timely access to localized and aggregated analytics.   Because SaaS applications decrease the time and effort required to engage in new markets, across new distribution channels, or with new partners, teams may expand business revenue and market share while maintaining operating margins.  To deliver on the promise, SaaS architecture allows teams to uniquely configure business events, processes, rules and data per customer and partner.  With SaaS, teams may more effectively drive social, community, or ecosystem business models while broadening solutions reach into the Long Tail of market demand.

What capabilities separate Multi-tenant SaaS applications from Web applications?

Traditional web applications limit an organization’s ability to enter new markets, engage within new geographical markets, or rapidly onboard business partners.  A SaaS application exhibits key capabilities:

  • Tenancy and Personalization
  • Self-Service and Resource Optimization
  • Delivering Business Analytics based on Data Aggregation

Tenancy and Personalization

Effective SaaS applications, reaching into the Long Tail of market demand, will personalize the customer or partner experience.  SaaS applications enable teams to uniquely configure business events, processes, rules, or data per customer or partner.   When delivering a business capability as a SaaS application, decouple privileges, policies, and rules from application code, and enable the SaaS application to personalize the experience across:

  • Information access privileges
  • Information aggregation and composition
  • Social network access privileges
  • Business processes and rules
  • Service levels and Quality of Service
  • Security policies
  • Monetization rates

SaaS applications are personalized to meet the requirements of individual tenants.  When considering SaaS application isolation, resource optimization, and aggregation requirements, tenancy dimensions will be baked into your SaaS application.  Carefully consider whether the SaaS application will be personalized across people (e.g. organization, team, or individual), projects (e.g. joint venture, marketing campaign, benefits enrollment), or IT artifacts (e.g. application, API, service, or machine).  Figure 1 illustrates the tenancy dimensions.

Tenancy Dimensions

Figure 1: Tenancy Dimensions

Self-Service Agility and Resource Optimization Cost Savings

Efficiently scaling business revenue while minimizing operational expense requires rapidly onboarding new customers and partners via on-demand self-service.  The ideal SaaS application provides an on-demand self-service environment that facilitates:

  • Registering tenants (e.g. organizations, individuals, or apps)
  • Configuring business objects per tenant
    • Processes, rules, event notifications, and data elements
  • Integrating unique data sources
    • Master data sources, identity repository, APIs
  • Provisioning project workspaces
  • Creating and viewing analytics

SaaS offers a more affordable solution per tenant, while maintaining operating margin, and broadening solution reach into the long tail of market demand.  Organizations can stretch their capital or operational dollars and deliver solutions down market into small to medium-size businesses or to individual consumers.  IT business management techniques available to lower cost per tenant include reducing utilization charges, decreasing integration and configuration steps, or eliminating on-boarding activities.  Teams can reduce utilization charges by optimizing resource sharing and increasing tenant density.

Calculate tenant density by dividing the number of tenants by an infrastructure footprint unit

Tenant density = Tenant number / Infrastructure Footprint Unit

A higher tenant density number stretches your infrastructure dollars farther, and may also lower operational management expense.

Delivering Business Analytics based on Data Aggregation

Because SaaS applications share data models, process models, and common APIs, SaaS applications can readily drive social, community, and ecosystem business models.  With appropriate tenant consent, SaaS applications may remove personal identity information (PII) markers, aggregate data, and present trends.  With SaaS, your business has a pathway to expand revenue by delivering best practice insight based on marketplace analytics.

Building a Multi-Tenant SaaS Applications

When using traditional application servers and integration middleware, developing a multi-tenant SaaS application that meets SaaS requirements (i.e. personalization, tenant dimensions, self-service, resource optimization, and data aggregation) is a non-trivial exercise.

Because WSO2 Carbon based middleware servers contain a tenancy framework, development teams may rapidly migrate single-tenant web applications into multi-tenant SaaS applications.  WSO2 Carbon creates a multi-tenant environment inside the middleware servers (i.e. application server, integration server, Enterprise Service Bus) and delivers unparalleled tenant density.   For more information on the cost and effort savings, read the multi-tenant, shared container PaaS white paper.

The WSO2 Carbon framework creates tenant partitions, registers tenant specific applications, provides tenant administration tools, and holds run-time tenant context.  Carbon maintains registry, cache, queue, user realm, and role based access control (RBAC) information for each tenant run-time context. Each SaaS application can use a Carbon platform API to access context details and personalize the application experience.

In the next blog post, we will deploy a tenant-aware SaaS application on the WSO2 Application Server 5.1.

Recommended Reading

Creating a Multi-Tenant SaaS Application Using the Carbon Framework – Step One 

Building a SaaS Application Webinar

Published at DZone with permission of Chris Haddad, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)