Tenant-Aware Service Stacking with Context Propagation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In cloud native applications, indirectly-consumed services lose context information due to shared service instances across multiple applications, leading to data isolation issues and inability to maintain tenant-specific persistence and authentication.

Innovation Solution

Implementing a method where service brokers dynamically create separate service instances for each consuming application, and propagate the consumer tenant ID down the service stack to ensure proper isolation and authentication, using subaccounts to differentiate between owning and consuming services.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a service creates just one instance of an indirectly-consumed service to be used by all its own instances, then device complexity is reduced, but context information is lost and tenant isolation cannot be maintained

Engineering Contradiction:
Improveservice instance management complexityVSAvoidcontext information loss
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The patent segments service instances by creating separate instances for each consuming application. Instead of having service S1 share a single instance of indirectly-consumed service S2 across all its instances, the system creates distinct instances of S2 for each application, ensuring that context information remains isolated and preserved within each application's service instance chain.

Inventive Principle:
Principle #1Segmentation

2Reliability

If separate service instances are created for each consuming application to preserve context information, then tenant isolation is improved, but device complexity increases

Engineering Contradiction:
Improvetenant isolation reliabilityVSAvoidservice instance management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a nested service instance structure where service instances are organized in hierarchical chains. Each service instance contains references to its consuming application and bound services, creating a nested relationship where Application -> Service S1 -> Service S2 -> Service S3 forms a nested chain. This nesting allows context information to be preserved at each level while maintaining manageable complexity through structured relationships.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Adaptability or versatility

If one service instance is shared across multiple applications, then service reusability is improved, but data isolation between consumers is compromised

Engineering Contradiction:
Improveservice reusabilityVSAvoiddata isolation reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments service instances to eliminate sharing between applications. Each application receives its own dedicated instance of services, preventing data isolation issues. The segmentation ensures that while services remain reusable across different applications through the same service interface and logic, the actual runtime instances are isolated, maintaining both reusability and data isolation reliability.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10700949B1Stacking of tentant-aware services
Publication Date: 2020.06.30 SAP SE
  • US10700949B1 patent drawing
  • US10700949B1 patent drawing
  • US10700949B1 patent drawing

AI summary

Methods and systems are used for using services in stacked services. As an example, a first service instance of a first service bound to a first application is instantiated. A second service instance of a second service is instantiated from within a first service broker. The second service instance is bound to the first service to be used indirectly in a context of the first application. A subaccount of the first application is provided to the second service as a first consumer. A third service instance of a third service is instantiated from within a second service broker. The third service instance is bound to the second service to be used indirectly in a context of the first application. The first application uses the second service indirectly through the first service. The subaccount of the first application is provided to the third service as the first consumer.