Stateful Component Authoring via Co-located Logic and State

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current program models are inadequate for developing scalable distributed applications, as they are tier and technology specific, limiting the ability to scale and are difficult to work with stateful components, which are often avoided due to scalability issues, leading to poorly scalable applications.

Innovation Solution

An extensible framework that supports the authoring and execution of highly scalable and available stateful components by co-locating state with logic, using a distributed component model and runtime for general-purpose support of partitioning and replication techniques, allowing for natural expression of application logic and reduced latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If stateful components are used to express application logic naturally, then the logic expression becomes more natural and succinct, but scalability is compromised

Engineering Contradiction:
Improvelogic expressionVSAvoidscalability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments stateful components into partitioned units that can be independently distributed across multiple nodes. Each partition maintains its own state locally, allowing the system to scale horizontally while preserving the natural expression of stateful logic within each partition. This segmentation enables both natural logic expression at the component level and scalability at the system level.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of distribution by co-locating state with logic in a distributed architecture. Instead of separating state and logic or using centralized state management, the system distributes stateful components across multiple dimensions (nodes, partitions, tiers), enabling scalability without sacrificing the natural expression of stateful application logic.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If state is externalized to achieve scalability, then scalability improves, but data access latency increases

Engineering Contradiction:
ImprovescalabilityVSAvoiddata access latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent merges state and logic into a single co-located unit within each distributed component. This combination eliminates the need for external state management systems, allowing components to access their own state locally without network latency. The merging enables both fast data access and scalability through distributed deployment of these self-contained units.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements local state storage within each distributed component instance, giving each component local access to its state data. This local quality eliminates remote data access latency while maintaining scalability through distribution. Each component operates with its own local state, and the system scales by adding more independent component instances across the distributed environment.

Inventive Principle:
Principle #3Local quality

3Ease of manufacture

If current program models are used, then development is simpler, but the ability to scale distributed applications is limited

Engineering Contradiction:
Improvedevelopment simplicityVSAvoidscalability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal distributed component model that works across multiple tiers and technologies. This model provides a consistent programming interface and execution environment that functions uniformly whether deployed on-premises, in the cloud, or in hybrid environments. The universality simplifies development by providing a single model for all scenarios while enabling scalability through the distributed architecture.

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

Solution Approach 2:

The patent introduces dynamic composition and runtime flexibility to the component model. Components can be dynamically instantiated, partitioned, and distributed across the environment based on scalability requirements. The runtime system dynamically manages the deployment and execution of stateful components, allowing the application to adapt and scale without requiring complex static configuration or rewrites of existing code.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9465589B2Stateful component authoring and execution
Publication Date: 2016.10.11 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9465589B2 patent drawing
  • US9465589B2 patent drawing
  • US9465589B2 patent drawing

AI summary

A method for of authoring and executing stateful components for a distributed application is disclosed. An application schema for the distributed application is declaratively defined and includes a plurality of distributed modules. Each module hosts a set of stateful components co-located in a physical tier of a distributed environment having logic to manipulate state. The runtime supports partitioning the stateful components. Control flow opaqueness of component logic is banished in each of the stateful components, which would otherwise occur if state was externalized.