Dynamic Graph Object Type Synchronization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


