Routing Graph Decouples Event Routing from Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complexity in software systems, particularly event-driven applications, hinders understanding and navigation due to intertwined data flow and processing steps, leading to high learning curves and reduced productivity for development and maintenance teams.

Innovation Solution

The implementation of a routing graph data structure, comprising directed acyclic graph nodes that decouple event routing from processing, allowing visualization and simulation of data flow separately from processing steps, and enabling a more structured approach to software development and maintenance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If code is organized based on technological affinity or resource in use, then code structure follows common organizational patterns, but data flow becomes hard to discern and system complexity increases

Engineering Contradiction:
Improvecode organizationVSAvoidsystem complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent segments the software system into distinct event sources, event types, and processing handlers. By organizing code around event types rather than technological layers, it creates clear separation between data flow definitions and processing implementation, making both easier to understand and maintain independently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an event-driven architecture as an intermediary layer between data sources and processing logic. Events serve as standardized intermediaries that carry data through the system, decoupling the organization of data flow from the implementation details of processing steps and reducing overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If data flow is interleaved with processing steps code and abstracted by modern software paradigms, then code follows modern programming practices, but understanding and navigation of core functionality becomes difficult

Engineering Contradiction:
Improvesoftware paradigmsVSAvoidunderstanding and navigation
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent extracts data flow definitions from the processing logic by using event type hierarchies and routing tables. The data flow is explicitly defined through event source registrations and handler mappings, separating it from the actual processing implementation and making it independently navigable and understandable.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If software systems lack a comparable navigation solution like city maps, then system architecture remains traditional, but learning curves increase and productivity decreases

Engineering Contradiction:
Improvesystem architectureVSAvoiddevelopment and maintenance productivity
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces graphical event flow diagrams as an intermediary representation layer between the codebase and developers. These diagrams provide map-like navigation of the event-driven architecture, showing data flow paths, event transformations, and processing sequences independently of implementation details, thereby reducing learning curves and improving productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11025526B2Control of event-driven software applications
Publication Date: 2021.06.01 RABINOWITZ PAUL OREN
  • US11025526B2 patent drawing
  • US11025526B2 patent drawing
  • US11025526B2 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 processing task nodes. Routing nodes are enriched with node-type specific event routing logic. Task 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 tasks processing functions. The user interface component is used to compose and manage the routing graph configuration. The automatic configuration modules may be used to combine and configure predefined routing sub-graphs into a resulting routing graph model.