Updated: Sep 30, 2018
Multi-tenancy is about sharing cloud-hosted software functionality but keeping data private. In Business-to-business (B2B) applications simple multi-tenancy needs extending.
The introduction of cloud computing has changed the provisioning and consumption of IT resources. Software-as-a-Service (SaaS) applications provide functionality using internet connectivity and enable centralised management of executable code resources. Multi-tenancy is an architectural pattern for sharing a single instance of executable software while isolating the data and business process serving each tenant. In a multi-tenant application, a tenant is a logical grouping of end-users who share common code, data and process instances. Multi-tenancy can cut across all the layers of an application software architecture.
Conventionally, multi-tenancy is implemented as a flat structure.
All tenants are treated in the same way by application software. However, large enterprises are hierarchically organised with defined boundaries between business and functional units.
A SaaS solution, aimed at large enterprise users, needs to reflect these hierarchical boundaries to eliminate duplication of functional software but enforce data and business process separation.
Work done with Adeniyi Abdul.
This paper introduces a novel hierarchical multi-tenancy architecture for an enterprise-scale business-to-business (B2B) cloudhosted software service application. Organisational hierarchy plays a vital role in grouping end users into tenants and subtenants
in our software. A new reference architectural style for implementing hierarchical multi-tenant application is presented here for the first time.
In the paper, we use a case study approach to empirically evaluate the latency of this architecture in comparison to known flat multitenancy patterns. Our experimental evaluation supports the hypothesis that the hierarchical multi-tenancy approach meets
the needs of our application and improves its performance.