Multi-tenant Infrastructure Using Tenant Containers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional multi-tenant applications require separate processes, threads, and class loaders for each tenant, leading to inefficient use of computing resources and increased complexity for developers.
Innovation Solution
Implementing a multi-tenant infrastructure that uses tenant containers, each associated with an executing virtual machine, allowing a single instance of the application to serve multiple tenants with logical separation of data and functionality, and utilizing an injection dependency framework to manage tenant-specific information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate processes or threads are used for each tenant in conventional multi-tenant applications, then tenant isolation and security are improved, but computing resource usage increases and system complexity increases
Solution Approach 1:
The system segments the multi-tenant application into isolated tenant containers, where each container represents a distinct tenant's execution environment. This segmentation enables logical isolation of tenant data and functionality while allowing physical sharing of underlying computing resources, thus maintaining security and isolation without requiring separate processes or threads for each tenant.
Solution Approach 2:
The patent merges multiple tenant execution contexts into a single shared application instance. By combining the execution of multiple tenants within one process and using a shared class loader, the system reduces computing resource usage compared to conventional approaches that spawn separate processes or threads for each tenant, while still maintaining tenant isolation through container boundaries.
2Reliability
If separate application instances are used for each tenant, then tenant isolation is improved, but device complexity and deployment complexity increase
Solution Approach 1:
The system segments the application into isolated tenant containers within a single application instance, avoiding the need for multiple separate application instances. This segmentation provides tenant isolation through logical boundaries while simplifying the overall system architecture by maintaining a single deployment unit.
Solution Approach 2:
The shared class loader and single application instance serve multiple tenants simultaneously, demonstrating universality. The same application codebase and class loading mechanism are universally applied across all tenant containers, reducing complexity compared to having separate application instances for each tenant while maintaining isolation through container boundaries.
3Reliability
If separate class loaders are used for each tenant, then class isolation and security are improved, but memory usage and computing resources increase
Solution Approach 1:
The patent merges the class loading functionality into a single shared class loader that serves all tenant containers. This shared class loader uses bytecode manipulation techniques to provide class-level isolation between tenants while physically sharing the same memory space and class loading infrastructure, thereby reducing memory usage compared to having separate class loaders for each tenant.
Solution Approach 2:
The shared class loader acts as an intermediary between the Java Virtual Machine and the multi-tenant application. It mediates class loading requests from different tenant containers, applying bytecode transformations to ensure class isolation while efficiently managing memory resources through a single instance rather than multiple redundant class loaders.
4Use of energy by moving object
If a single application instance serves multiple tenants without logical separation, then computing resource usage is reduced, but tenant isolation and security are compromised
Solution Approach 1:
The system segments the single application instance into isolated tenant containers, each representing a distinct tenant's execution context. This segmentation provides logical separation of tenant data and functionality through container boundaries while maintaining a single shared application instance, thus achieving both resource efficiency and tenant isolation.
Solution Approach 2:
The tenant container mechanism acts as an intermediary layer between the shared application instance and individual tenants. It mediates access to application resources and data, providing logical isolation and security controls while allowing the underlying single application instance to efficiently share computing resources across all tenants.
Data Source
AI summary
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for providing a multi-tenant infrastructure. In one aspect, a method includes establishing a plurality of tenant containers for a plurality of tenants, each tenant container being a logical separation of data and functionality for a multi-tenant application, each tenant container being isolated from the other tenant containers. A request is received from a client device. The request is determined to be associated with one of the tenant containers. The request is directed to the tenant container associated with the request.

