Event Dispatcher Logging for Debugging Event-Driven Software

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Event-driven applications present challenges during debugging and testing due to numerous interactions between event generating and listening components, making it difficult to isolate the cause of desired or unwanted behavior.

Innovation Solution

Implementing an event dispatcher in an execution environment to monitor and log events during execution, providing a timeline of event occurrences and component interactions, which aids in debugging and testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If event-driven frameworks are used to enable complex component interactions, then application functionality and versatility are improved, but debugging difficulty and system complexity increase

Engineering Contradiction:
Improveapplication functionalityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an event logging system that acts as an intermediary between the event dispatcher and developers. This logging mechanism captures and records all event dispatching activities, component interactions, and event flows, providing a中介 layer that helps developers understand and debug complex event-driven systems without changing the core event-driven architecture

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a feedback mechanism through event logging that provides developers with visibility into the actual runtime behavior of the event-driven application. The log records include event timestamps, event types, source components, and target components, creating a feedback loop that allows developers to trace and analyze event flows, thereby reducing debugging difficulty while maintaining system versatility

Inventive Principle:
Principle #23Feedback

2Difficulty of detecting and measuring

If comprehensive event monitoring and logging are implemented, then debugging capability is improved, but system overhead and resource consumption increase

Engineering Contradiction:
Improvedebugging capabilityVSAvoidsystem overhead
Core Design Contradiction:
Difficulty of detecting and measuringVSUse of energy by moving object

Solution Approach 1:

The patent implements partial monitoring by allowing selective logging of events based on configuration. Developers can choose to log only specific event types, components, or time periods rather than monitoring everything continuously. This partial action approach provides sufficient debugging capability while reducing the overhead associated with comprehensive monitoring

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The event log is designed to be temporary and discardable. Logs can be cleared, rotated, or discarded after serving their debugging purpose, preventing permanent storage overhead. The logging infrastructure recovers system resources by allowing dynamic control over log retention and size, balancing debugging needs with system resource constraints

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8561028B1Methods and systems for debugging event-driven software applications
Publication Date: 2013.10.15 ADOBE INC
  • US8561028B1 patent drawing
  • US8561028B1 patent drawing
  • US8561028B1 patent drawing

AI summary

A computer can be configured to execute event-driven applications by programming the computer with software that provides an event-driven execution environment including an event dispatcher. The event dispatcher can be used to relay events by receiving and dispatching the events from software components of an event-driven application during execution thereof. While the event-driven application is executing, the event dispatcher can be monitored in order to generate and store a log or other record(s) identifying one or more events that occur during execution. The log can be stored in a computer-readable medium accessible by the computing apparatus and used to provide information about at least some of the one or more events. As an example, the log data may be used to generate a timeline showing the relative order of events and the components that generated and listened to the events.