Aspect Aware Stream Computing for Dynamic Code Injection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current stream computing systems face limitations in real-time data analysis due to reliance on precompiled fixed processing elements, inability to handle continuous data streams, unstructured data, and scalability issues, leading to inaccurate decisions and resource constraints, especially in environments with increasing intelligent devices and interconnected systems.

Innovation Solution

Aspect aware stream computing (AASC) enables dynamic injection and removal of aspects through a generic program execution structure that can receive and execute arbitrary code, allowing for real-time modification of stream applications without affecting availability or requiring restarts, by encapsulating processing elements or stream operators with a generic program execution structure that operates outside the precompiled logic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If precompiled fixed processing elements are used in stream computing, then system stability is maintained, but adaptability to changing data sources and real-time modification requirements deteriorates

Engineering Contradiction:
Improveadaptability to changing data sourcesVSAvoidsystem complexity for dynamic code injection
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The stream computing system is segmented into modular processing elements that can be independently encapsulated and modified. Each processing element can be individually targeted by aspect code, allowing selective modification without affecting the entire system. This segmentation enables dynamic adaptation while maintaining overall system stability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A generic program execution structure acts as an intermediary between the precompiled stream application and external aspect code. This mediator receives program requests, identifies target processing elements, and executes injected code through the encapsulation mechanism, enabling adaptability without direct system complexity increases.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If stream applications are restarted for tuning or fixing, then processing accuracy is improved, but system availability and uptime deteriorate

Engineering Contradiction:
Improvesystem availabilityVSAvoidprocessing accuracy
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The system performs preliminary encapsulation of processing elements with the generic program execution structure before runtime modifications are needed. This preparation allows aspect code to be injected and executed dynamically during operation, enabling tuning and fixing without restarts, thus maintaining both availability and accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The stream application transitions from a static precompiled state to a dynamic state where processing elements can be modified at runtime through aspect code injection. The system dynamically loads and executes new code versions without interruption, allowing continuous improvement of processing accuracy while maintaining system availability.

Inventive Principle:
Principle #15Dynamics

3Productivity

If precompiled fixed processing elements are used, then system simplicity is maintained, but ability to handle continuous data streams with real-time analytics deteriorates

Engineering Contradiction:
Improvereal-time analytics capabilityVSAvoidcomplexity of processing structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The generic program execution structure serves multiple functions: it executes original precompiled code, injects aspect code dynamically, manages code versioning, and coordinates with the stream processing framework. This universal structure enables real-time analytics capabilities without proportionally increasing system complexity.

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

Solution Approach 2:

The system maintains continuous data stream processing while enabling real-time modifications through the encapsulation mechanism. The generic program execution structure ensures uninterrupted flow of data through processing elements even as code is dynamically injected and executed, preserving productivity while enhancing analytical capabilities.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11558473B2Aspect aware streams computing
Publication Date: 2023.01.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11558473B2 patent drawing
  • US11558473B2 patent drawing
  • US11558473B2 patent drawing

AI summary

A stream of tuples to be processed by processing elements that operate on one or more compute nodes of a stream application is monitored. Each processing element has one or more stream operators. A program request to execute a set of program code instructions is received. A stream application target of the set of program code instructions is identified based on the program request. A portion of the stream application is encapsulated with a generic program execution structure during operation of the stream application. The structure is configured to receive and execute program code instructions outside of a preconfigured operation of the stream application. The set of program code instructions is executed by the structure during operation of the stream application, at a time period of execution of the portion, in response to the program request, and based on the stream application target.