Partial Tenant Object Provisioning in Hosted Services

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems experience high latency when provisioning a new tenant, leading to increased processing overhead and user dissatisfaction, as the process of creating a tenant object can take several minutes.

Innovation Solution

The implementation of a fast provisioning system that uses partial tenant objects with placeholders for tenant identifiers, domain identifiers, and user identifiers, allowing for quick provisioning by selecting and binding a partial tenant object to tenant-specific information, reducing the latency of the provisioning process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If a tenant object is created from scratch with tenant-specific information, then the provisioning is accurate and complete, but the latency is high and processing time is long

Engineering Contradiction:
Improveprovisioning latencyVSAvoidprovisioning process complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system pre-creates tenant objects with placeholder information (generic domain, generic user) before actual tenant provisioning is needed. This preliminary action allows the tenant object structure to be ready in advance, so when provisioning is requested, only the specific tenant information needs to be bound to the pre-created object, dramatically reducing provisioning latency from minutes to seconds.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The provisioning process is segmented into two distinct phases: (1) pre-creation of tenant objects with generic placeholder data, and (2) binding of specific tenant information to the pre-created objects. This segmentation allows the time-consuming object creation to occur independently from the information binding, enabling parallel processing and reducing overall provisioning time.

Inventive Principle:
Principle #1Segmentation

2Productivity

If tenant objects are pre-created with placeholder information, then provisioning speed increases, but additional system complexity is introduced for managing partial objects

Engineering Contradiction:
Improveprovisioning throughputVSAvoidobject management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The pre-created tenant objects with placeholder information serve multiple functions: they provide the structural framework for tenant objects, enable rapid provisioning by eliminating creation latency, and act as templates that can be bound to different specific tenant information. This multi-functionality justifies the additional complexity by delivering significant productivity gains.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Loss of time

If all tenant information is bound during provisioning, then data accuracy is ensured, but processing time increases

Engineering Contradiction:
Improveprovisioning timeVSAvoiddata binding reliability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The tenant object structure is preliminarily created with placeholder data, ensuring the object framework is ready and validated before actual tenant information is bound. This preliminary validation of the object structure maintains reliability while allowing the actual tenant-specific data binding to occur quickly in a separate, optimized step.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10389603B2Fast provisioning of tenants on a hosted service
Publication Date: 2019.08.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10389603B2 patent drawing
  • US10389603B2 patent drawing
  • US10389603B2 patent drawing

AI summary

A set of partial tenant objects are created within a hosted service. The set of partial tenant objects have placeholders for tenant identifiers, domain identifiers and user identifiers. Upon receiving a request to provision a tenant, a particular partition of the hosted service, corresponding to the tenant, is identified and a provisioning agent in the identified partition is called to provision the tenant. The provisioning agent selects one of the partial tenant objects which is bound to tenant-specific information, such as a specific tenant identifier, custom domain chosen by the tenant, and a user identifier input by the tenant.