Event Dispatching Module for Cross-Layer Application Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current approaches to enable communication between application components fail when they are in separate layers or do not exist at the same time, preventing the exchange of custom events and data due to lack of access to a global messaging queue.

Innovation Solution

The introduction of an event-dispatching module and an event-data store that allows communication of events and event data between application components, even if they are in separate layers or do not coexist, by receiving events, sending notifications, and storing data for later access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a global message queue is used for communication between application components, then message passing functionality is achieved, but the system fails when components are in separate layers or do not exist at the same time

Engineering Contradiction:
Improvecommunication reliabilityVSAvoidlayer isolation compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an event store as an intermediary component that decouples the sender and receiver of events. Instead of direct communication through a global message queue, events are published to the event store which persists them, allowing components in different layers or time periods to access and process events independently. This mediator pattern resolves the contradiction by enabling communication without requiring both parties to be simultaneously accessible to the same message queue.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the communication system into independent components: event publishers, event subscribers, and an event store. This segmentation allows each component to operate independently without requiring direct access to a shared global message queue, thereby enabling communication across layer boundaries while maintaining reliability through the persistent event store.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If application components register with a global message queue, then event communication is enabled, but components must exist simultaneously and have mutual access

Engineering Contradiction:
Improveevent communication capabilityVSAvoidaccess coordination requirements
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The event store serves as a mediator that eliminates the need for components to coordinate access to a shared message queue. Publishers write events to the store independently, and subscribers read events independently, removing the complexity of mutual access requirements while maintaining ease of operation through simple publish-subscribe semantics.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The event store pre-persists events before any subscriber processes them. This preliminary action of storing events removes the requirement that subscribers must exist simultaneously with publishers, as events are already available when subscribers arrive, simplifying the operational model while reducing access coordination complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9135091B2Communicating events or data between application components
Publication Date: 2015.09.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9135091B2 patent drawing
  • US9135091B2 patent drawing
  • US9135091B2 patent drawing

AI summary

This document describes tools capable of communicating events or event data between application components. These tools allow an application component to communicate an event and event data to another application component even if the two application components are in separate layers or do not exist at the same time.