Metadata-Based Eventing for Software Package Interaction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software packages struggle to communicate and interact effectively, limiting their ability to recognize and respond to changes in each other's data, which hampers their overall functionality and usefulness.

Innovation Solution

The implementation of metadata-based eventing, where application data is associated with metadata that includes event handlers, allowing these handlers to be invoked during create, update, or delete operations, enabling tailored responses and interactions between software packages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software packages are made complex to provide comprehensive functionality, then their capability to address user needs improves, but their ability to communicate and interact with other software packages deteriorates

Engineering Contradiction:
ImprovefunctionalityVSAvoidcommunication complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces metadata as an intermediary layer between software packages. This metadata contains event handler information that enables communication without requiring direct complex interactions between software packages. The metadata acts as a standardized interface that simplifies inter-software communication while preserving comprehensive functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the parameter of communication from direct code-level interactions to metadata-based event handler invocations. By transforming the communication mechanism from complex direct calls to standardized metadata queries and event handler executions, the system maintains functionality while reducing communication complexity.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If software packages are designed to independently operate, then their reliability improves, but their ability to respond to changes in other software packages deteriorates

Engineering Contradiction:
Improveoperational reliabilityVSAvoidresponse capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements a feedback mechanism where software packages can subscribe to event handlers that are triggered by changes in other packages' data. When data changes occur, the system queries metadata to identify relevant event handlers and invokes them, creating a feedback loop that maintains reliability while enabling responsive interaction between independently operating packages.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary action by pre-defining event handlers and storing their information in metadata before runtime interactions occur. This allows software packages to be prepared in advance to respond to specific events, enabling reliable and responsive behavior without requiring complex real-time decision-making logic.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If direct code modification is used to enable software interaction, then the precision of communication improves, but the ease of operation deteriorates

Engineering Contradiction:
Improvecommunication precisionVSAvoidimplementation ease
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent extracts communication logic from direct code modifications and places it into separate metadata structures. Event handler definitions, subscriptions, and invocations are handled through metadata queries rather than code changes, maintaining precise communication while significantly improving ease of operation by separating communication concerns from core business logic.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If comprehensive event handling is implemented across all software packages, then the adaptability improves, but the device complexity increases

Engineering Contradiction:
Improveevent response adaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the event handling system into independent, modular components: event sources, event data, metadata descriptions, and event handlers. Each software package manages its own events and handlers independently, querying metadata only when relevant. This segmentation enables comprehensive event handling across multiple packages without creating monolithic system complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8793706B2Metadata-based eventing supporting operations on data
Publication Date: 2014.07.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8793706B2 patent drawing
  • US8793706B2 patent drawing
  • US8793706B2 patent drawing

AI summary

Concepts and technologies are described herein for providing metadata-based eventing supporting operations on data. Application data such as classes and events can be stored in a table and can be associated with and/or described by application metadata. The application metadata also can specify one or more event handlers that reference one or more methods on a class. The event handlers can be invoked via various delegates linked to the one or more application metadata tables. When a create, update, or delete operation on the application data is received, the application metadata can be queried to determine if the application metadata describes event handlers associated with the application data. If event handlers associated with the application data exist, the event handlers can be invoked.