Hierarchical Multi-tenancy in Business to Business Software Services
Adeniyi O. Abdul, Julian Michael Bass · 2018
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. 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. 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.