Dynamic Event Filtering for Message-Based Computing Interfaces

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional user interface systems face performance roadblocks due to high overhead costs and resource consumption when transitioning events across the native/managed boundary, limiting developer flexibility and application performance.

Innovation Solution

A dynamic event filtering system that uses a filter component to selectively allow only relevant responses to transition across the interface, reducing unnecessary computation and enhancing performance by employing type introspection to dynamically register and unregister events.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a static filtering system is used to allow only specific events to transition across the native/managed boundary, then application performance is improved by reducing processor cycles and resource consumption, but developer flexibility deteriorates as developers cannot dynamically register or be called back on events they need

Engineering Contradiction:
Improveapplication performanceVSAvoiddeveloper flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic event filtering system where the filter component can adaptively allow or block events based on runtime conditions. The system uses type introspection to dynamically determine which events should be propagated, allowing the filtering behavior to change during execution rather than being fixed at compile time. This resolves the contradiction by making the filtering system both performance-optimized and dynamically adaptable to developer needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameters of event filtering from static to dynamic by using type introspection to evaluate event types and determine propagation decisions at runtime. The filter component modifies its behavior based on the specific event parameters and the current state of the application, allowing flexible event registration while maintaining performance through intelligent parameter-based filtering.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If all events are allowed to transition across the native/managed boundary, then developer flexibility is improved as all events are accessible, but application performance deteriorates due to high overhead costs and resource consumption

Engineering Contradiction:
Improveevent accessibilityVSAvoidapplication performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The filter component extracts only the relevant events from the stream of all events generated by the native code framework. Instead of allowing all events to pass to the managed code framework, the system selectively extracts and forwards only those events that match the criteria defined by the filter component, thereby reducing the overhead while maintaining access to necessary events.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system applies partial action by allowing only a subset of events to transition across the boundary rather than all events. The filter component evaluates each event and applies partial propagation, allowing relevant events through while blocking others, thus achieving performance optimization without completely sacrificing event accessibility.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If type introspection is used to dynamically register and unregister events, then developer flexibility is improved by allowing dynamic event registration, but device complexity increases due to the additional introspection mechanism

Engineering Contradiction:
Improvedynamic event registrationVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The filter component acts as an intermediary between the native code framework and the managed code framework. It uses type introspection as a mediation mechanism to dynamically determine which events should be registered and propagated. This intermediary approach allows dynamic event registration without requiring complex changes to the underlying frameworks, as the filter component handles the introspection and event management logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7681204B2Event filtering at a performance-based interface
Publication Date: 2010.03.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7681204B2 patent drawing
  • US7681204B2 patent drawing
  • US7681204B2 patent drawing

AI summary

Architecture that facilitates performance enhancement in message-based computing across a performance-based interface. When a request from a source is transmitted across the interface to a destination, a filter component in communication with the destination dynamically allows only one or more relevant responses from the destination to transition the interface to the source. This mechanism achieves an even tighter filtering of events while at the same time giving developers more flexibility over the events they choose to register, thereby enhancing the performance of message-based computing architectures by reducing unnecessary computation.