Multi-Layer Configuration Template for Software Tenants
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software applications lack the flexibility to be fully configurable for each customer due to the impracticality of providing unique instances for each customer, leading to data redundancy and logistical challenges in maintenance and updates.
Innovation Solution
Implementing a multi-layer configuration approach with a system layer and tenant-specific layers, where the system layer acts as a template for tenant-specific configurations, allowing tenants to override parameters and manage their own configurations without requiring a unique instance for each tenant, thereby reducing redundancy and facilitating efficient updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a unique instance of each configurable element is provided for each customer, then configuration flexibility is improved, but data redundancy and maintenance complexity increase significantly
Solution Approach 1:
The patent segments configuration data into multiple hierarchical layers: system-wide default layer, tenant-specific layer, and user-specific layer. Each layer contains only the configuration items necessary at that level, eliminating the need to replicate entire configuration sets across all customers. This segmentation allows the system to provide unique configuration instances only where differences are needed while sharing common configurations.
Solution Approach 2:
The patent introduces a hierarchical dimension to configuration storage by organizing data across multiple levels (system, tenant, user) rather than storing complete independent instances for each customer. This dimensional approach allows the system to retrieve configurations by combining layers vertically, reducing horizontal data replication while maintaining the ability to provide customer-specific configurations.
2Adaptability or versatility
If a unique instance of each configurable element is provided for each customer, then configuration flexibility is improved, but update maintenance becomes prohibitively difficult and labor-intensive
Solution Approach 1:
By segmenting configuration management into hierarchical layers, the patent enables targeted updates at specific levels without affecting other layers. System administrators can update system-wide defaults once and automatically propagate changes to all tenants, while tenant-specific updates only affect individual tenants. This segmentation transforms a monolithic update process into modular, manageable operations.
Solution Approach 2:
The patent uses template copying where the system layer serves as a master template that can be selectively copied and customized at tenant and user levels. When updates are needed, changes are made to the template or specific layers, and the system automatically replicates or propagates these changes appropriately, eliminating manual copying efforts across millions of instances.
3Adaptability or versatility
If configuration data is replicated across all tenants, then each tenant can have customized configurations, but access issues arise when databases are blocked
Solution Approach 1:
The patent segments configuration data into critical system-level settings and optional tenant-specific customizations. This segmentation allows the system to maintain access to essential configurations at the system layer even when tenant-specific database access is blocked, ensuring core functionality remains reliable while allowing customization where possible.
Data Source
AI summary
Various embodiments described herein offer improved functionality for configuring software applications so as to provide customers with a great deal of configuration flexibility, while reducing data redundancy and facilitating maintenance. Multiple configuration layers are provided, including system layer(s) and tenant-specific layer(s). System layer(s) specify configuration parameters for a group of tenants, and tenant-specific layer(s) can be used to override particular parameters as needed for individual tenants. In this manner, the system layer(s) act as a template upon which tenant-specific configuration layer(s) can be added.


