Building Multi-tenant SaaS Applications
Join the DZone community and get the full member experience.Join For Free
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.
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.
Published at DZone with permission of Chris Haddad, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.