Distributed Component Model for Scalable Stateful Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program models are inadequate for developing scalable distributed applications, as they are typically designed for desktop applications and are tier and technology specific, limiting the ability to scale and maintain stateful components, which are difficult to implement and require costly re-architecture.

Innovation Solution

A distributed component model that allows for the creation of both stateless and stateful components, using techniques like cloning, replication, partitioning, and state replication, along with mainstream programming modifications to component metadata, to achieve scalability and high availability, while being extensible and technology neutral, enabling exposure of component capabilities over standard Web protocols.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If existing program models are used for distributed applications, then development is simpler with desktop application designs, but scalability and ability to maintain stateful components are limited

Engineering Contradiction:
Improveease of developmentVSAvoidscalability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal component model that works across multiple tiers and technologies. The component architecture provides a common framework that can be used for both desktop and distributed applications, eliminating the need for tier-specific models while maintaining ease of development through consistent programming patterns.

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

Solution Approach 2:

The patent segments the application into independent, loosely-coupled components that can be distributed across tiers. This segmentation allows individual components to be developed independently using simple desktop application patterns, while the overall system achieves scalability through the modular component architecture.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If stateful components are used in distributed applications, then application logic can be naturally expressed, but scaling becomes difficult and costly re-architecture is required

Engineering Contradiction:
Improveexpression of application logicVSAvoidcomplexity of scaling
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a state management intermediary layer that mediates between stateful components and the distributed infrastructure. This intermediary handles state replication, partitioning, and consistency management, allowing developers to express application logic with stateful components while the intermediary manages the complexity of scaling state across multiple nodes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements state replication by creating copies of component state across multiple nodes in the distributed system. This copying mechanism allows stateful components to be scaled horizontally, as each node maintains a copy of the state, eliminating the need for costly re-architecture when scaling is required.

Inventive Principle:
Principle #26Copying

3Device complexity

If components are statically wired during runtime interaction, then the framework is simpler to implement, but the application's ability to scale is limited

Engineering Contradiction:
Improvesimplicity of frameworkVSAvoidability to scale
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic component wiring where component relationships are not fixed at compile time but can be configured and modified at runtime. This dynamic wiring mechanism allows the framework to remain relatively simple while enabling flexible scaling scenarios, as components can be dynamically added, removed, or reconfigured based on scaling requirements without requiring complex static dependency management.

Inventive Principle:
Principle #15Dynamics

4Reliability

If state portioning and replication techniques are used, then high availability can be achieved, but these techniques are limited to high-end developers and require database and distributed cache technologies

Engineering Contradiction:
Improvehigh availabilityVSAvoidaccessibility to developers
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements self-service state management where the component framework automatically handles state portioning and replication without requiring developers to manually configure database or distributed cache technologies. The framework provides built-in mechanisms for state management that are accessible to mainstream developers through simple programming constructs, eliminating the need for specialized knowledge of infrastructure technologies.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10613837B2Distributed component model
Publication Date: 2020.04.07 MICROSOFT CORP
  • US10613837B2 patent drawing
  • US10613837B2 patent drawing
  • US10613837B2 patent drawing

AI summary

A distributed component model for creating a scalable and available distributed application is disclosed. The distributed component model provides for an application schema to be declaratively defined to include a module having a component. The schema includes a corresponding definition construct in a technology agnostic manner. The corresponding definition construct is declaratively defined to include metadata to control scaling and availability.