Dynamic Graph Object Type Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional approaches require re-compiling the object type graph when object type definitions change, leading to inefficiencies in synchronizing changes among decoupled software components across different computing systems.

Innovation Solution

A dynamic graph system where object type definitions are stored externally, allowing for incremental modifications without re-compiling the graph, with nodes labeled by IDs and dependencies represented, enabling software components to access current versions and look up modified definitions as needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If object type definitions are stored within the dynamic graph and re-compilation is performed when definitions change, then consistency and reliability are ensured, but productivity and response time deteriorate due to the overhead of re-compiling the entire graph

Engineering Contradiction:
Improveconsistency of object type definitionsVSAvoidspeed of synchronizing definition changes
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the object type definition storage into two parts: the dynamic graph structure and an external type definition repository. This allows the graph to maintain its structural integrity while definitions are stored separately and updated independently, enabling partial updates without full re-compilation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An external type definition repository acts as an intermediary between the dynamic graph and software components. This intermediary layer allows definitions to be updated and notified without forcing a full re-compilation of the graph, thus maintaining reliability while improving productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If the entire object type graph is re-compiled when a definition changes, then all software components get the updated definitions, but loss of time occurs due to the compilation overhead

Engineering Contradiction:
Improvesynchronization of definition updatesVSAvoidtime for re-compilation
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system performs preliminary actions by maintaining a registry of software components that depend on specific object types. When a definition changes, the system already has the information about which components need notification, eliminating the need for full re-compilation and reducing time loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where change notifications are sent from the type definition repository to dependent software components. This feedback loop ensures that updates are synchronized efficiently without requiring time-consuming full re-compilation of the graph.

Inventive Principle:
Principle #23Feedback

3Productivity

If object type definitions are stored externally to the dynamic graph, then productivity improves by avoiding re-compilation, but device complexity increases due to the external repository and synchronization mechanism

Engineering Contradiction:
Improveefficiency of definition updatesVSAvoidcomplexity of storage and synchronization system
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The external type definition repository serves multiple functions: storing definitions, tracking changes, managing the dependency registry, and sending notifications. This multi-functionality reduces the need for separate complex systems, thereby improving productivity without proportionally increasing device complexity.

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

Data Source

PatentUS11556316B2Distributed extensible dynamic graph
Publication Date: 2023.01.17 INTUIT INC
  • US11556316B2 patent drawing
  • US11556316B2 patent drawing
  • US11556316B2 patent drawing

AI summary

A method may include receiving a first definition of an object type from a first software component and a second definition of the object type from a second software component. The object type may be labeled by an ID. The method may further include storing, in a dynamic graph, a node labeled by the ID, and storing, in a type definition repository external to the dynamic graph, the first definition of the object type and the second definition of the object type. The method may further include receiving, from the first software component, a modified first definition of the object type. The method may further include replacing, in the type definition repository and using the ID, the first definition of the object type with the modified first definition, and transmitting, to the second software component, a message indicating a need to lookup, by the ID, the modified first definition.