Aspect Aware Stream Computing for Dynamic Code Injection
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If stream applications are restarted for tuning or fixing, then processing accuracy is improved, but system availability and uptime deteriorate
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.
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.
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
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.
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.
Data Source
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.


