Hybrid App Event Router Dynamic Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hybrid applications face limitations in event routing, as existing technologies restrict interaction between native and web components across different technology stacks, and require predefined static routing tables, which are not scalable or adaptable to runtime changes.

Innovation Solution

An ecosystem with a System Design Kit (SDK) and an application router that uses an agnostic routing grammar to dynamically route events between native and web components, allowing for runtime changes and prioritization based on availability and context, eliminating the need for predefined tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If static routing tables are used to define event routing, then routing is simple and straightforward, but the system cannot adapt to runtime changes and lacks scalability

Engineering Contradiction:
Improveadaptability to runtime changesVSAvoidrouting system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic routing by allowing the routing table to be modified at runtime. Components can be added, removed, or have their event handlers changed without requiring application restart or complex reconfiguration. The routing system continuously monitors and adapts to changes in component availability and state, transforming a static structure into a dynamic one that responds to runtime conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The routing system incorporates feedback mechanisms where components notify the router about their availability status, current state, and capability changes. The router processes this feedback and automatically updates routing decisions. This feedback loop enables the system to adapt to runtime changes while maintaining routing integrity without manual intervention.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If components of the same technology stack are used for event routing, then routing is straightforward within each stack, but interaction between different technology stacks (native and web components) is limited

Engineering Contradiction:
Improvecross-stack interaction capabilityVSAvoidinter-stack communication complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal event routing system that handles multiple technology stacks (native and web components) through a common interface and unified routing mechanism. The router is designed to be technology-agnostic, accepting events from any component type and routing to any target component regardless of its stack. This multi-functional approach enables seamless cross-stack interaction while maintaining a single, manageable routing system rather than separate routing mechanisms for each stack.

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

Solution Approach 2:

The event router acts as an intermediary layer between native and web components. Instead of allowing direct complex communication between different stacks, the router mediates all event routing decisions, translating and routing events appropriately between heterogeneous component types. This intermediary approach simplifies cross-stack interaction by providing a standardized communication protocol and routing logic that handles the complexity internally.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If predefined routing tables are used, then event routing is deterministic and predictable, but the system cannot respond to dynamic changes in component availability

Engineering Contradiction:
Improverouting efficiencyVSAvoidresponse to runtime changes
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The routing table is implemented as a dynamic data structure that can be modified at runtime. When components are added, removed, or change state, the routing table automatically updates to reflect current availability. This dynamic nature allows the system to maintain efficient routing lookups while simultaneously adapting to runtime changes, combining the benefits of deterministic routing with flexibility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary registration of components and their event handlers in the routing table during application initialization and component creation. This preliminary action establishes the initial routing structure efficiently. When runtime changes occur, the system performs targeted updates to the routing table rather than complete reinitialization, maintaining both efficiency and adaptability by combining advance preparation with dynamic adjustment.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11635989B2Systems and methods dynamically routing an event to a component of a hybrid application
Publication Date: 2023.04.25 SALESFORCE INC
  • US11635989B2 patent drawing
  • US11635989B2 patent drawing
  • US11635989B2 patent drawing

AI summary

The present disclosure is directed to dynamically routing an event to a component of a hybrid application. For example, a method may include: detecting an event from a first component of a first component type of a hybrid application; transmitting a request to execute a function associated with the event to a plurality of components, the plurality of components being a combination of components of the first component type and components of a second component type different from the first component type, the first component being different from the plurality of components; dynamically determining which component of the plurality of components to assign to execute the function, the dynamically determining being based on which components of the plurality of components are available to execute the function and one or more rules; assigning the function to the determined component; and receiving a result of the function from the determined component.