Reusable components for adding multi-tenancy to legacy applications

Uwe Hohenstein, Preeti Koka · 2017

Applications offered as Software-as-a-Service should pursue a multi-tenant architecture in order to be profitable. Multi-tenancy helps to reduce the number of application instances by sharing resources amongst several tenants, thus saving operational costs, particularly in public cloud environments. While research mostly discusses how to design green-field software in a multi-tenant manner, this paper focuses on moving existing brown-field software into the Cloud thereby adding multi-tenancy. A low-effort approach is presented to leave the legacy application's source code unchanged. Only a couple of additional components have to be added taking care of multi-tenancy. Applying the aspect-oriented language AspectJ, we evaluate in a case study that such an approach is feasible: Tenant management, tenant-specific authentication, data isolation among multiple tenants for various database servers and strategies, and tenant-specific customization by modifying existing behavior can be achieved. These multi-tenancy features are provided in a reusable and modular framework that helps to apply them to other applications with a few lines of codes.

Read the paper · More papers on PaperTik