Graph-Based Event-Driven Software Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software systems lack an organizing principle that simplifies understanding and navigation of their processes and code bases, leading to high learning curves and reduced productivity for development and maintenance teams.

Innovation Solution

A graph-based representation of software programs using a directional acyclic graph (DAG) structure, where routing nodes decouple data flow from event processing, allowing for visualization and simulation of event flows, thereby streamlining development, maintenance, and operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If software programs are organized into separate layers based on technological affinity, then code modularity is improved, but understanding and exploration of core functionality becomes more difficult

Engineering Contradiction:
Improvecode modularityVSAvoidunderstanding core functionality
Core Design Contradiction:
Ease of manufactureVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces a new dimension for organizing code - data-flow based organization that runs parallel to the traditional layer-based organization. This allows code to be viewed and navigated along data-flow paths (from input to output) while maintaining the benefits of layer separation, enabling developers to understand core functionality through data transformation pipelines without sacrificing modularity.

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

Solution Approach 2:

The patent introduces data-flow graphs as an intermediary representation that connects separate code layers. These graphs serve as a mediator that shows how data moves through different layers, making the relationships between layers visible and understandable while preserving the modular structure of each layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If code representing data flow is interleaved with data-processing steps, then implementation integration is improved, but discernment of data flow sequences becomes harder

Engineering Contradiction:
Improveimplementation integrationVSAvoiddiscernment of data flow
Core Design Contradiction:
Ease of manufactureVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments code into distinct data-flow representation elements and data-processing elements. The data-flow graph explicitly separates the sequence of data transformations from the implementation details of processing steps, allowing developers to trace data flow paths independently while maintaining integrated implementation through formal connections between graph nodes and code modules.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If software programs become more complex with hundreds of computation tasks, then functionality and capabilities are improved, but understanding and maintenance difficulty increases

Engineering Contradiction:
ImprovefunctionalityVSAvoidunderstanding difficulty
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent adds a data-flow visualization dimension that projects the complex internal structure of software programs onto a comprehensible graph representation. This external representation allows developers to understand relationships between hundreds of computation tasks by viewing them as nodes and edges in a data-flow graph, reducing cognitive load while preserving full functionality.

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

4Adaptability or versatility

If event-driven architecture is used, then runtime flexibility is improved, but following and understanding execution order becomes harder

Engineering Contradiction:
Improveruntime flexibilityVSAvoidexecution order understanding
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent performs preliminary action by constructing the data-flow graph at compile-time or design-time, before runtime execution. This static graph representation captures all possible execution paths and data flows, providing a comprehensive map that helps developers understand potential execution orders without being constrained by a single fixed sequence, thus maintaining runtime flexibility while improving understandability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20220156176A1Graph based event-driven computing
Publication Date: 2022.05.19 RABINOWITZ PAUL OREN
  • US20220156176A1 patent drawing
  • US20220156176A1 patent drawing
  • US20220156176A1 patent drawing

AI summary

A method for modeling and execution of event-driven software applications. Its main parts are the routing graph model, the run time engine and optionally a user interface and automatic configuration modules. The routing graph is comprised of routing and data-processing nodes. Routing nodes are enriched with node-type specific event routing logic. Data-processing nodes process specific types of events and produce output events. The run time engine executes the routing graph model, based on the routing nodes logic and the data-processing nodes processing functions. The user interface component is used to compose and manage the routing graph configuration. The automatic configuration modules combine and configure predefined routing sub-graphs into a resulting routing graph model.