Custom Process Engine with Minimal Memory Footprint
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional process engines are not suitable for resource-constrained environments due to their large memory and disk footprints, which can limit their use in embedded computing and IoT applications where resources are limited.
Innovation Solution
A custom process engine is created with a minimal set of components necessary for a specific process application, reducing memory footprint and dependencies by analyzing and removing unused triggers and activities, resulting in a smaller executable file that can be deployed efficiently in resource-constrained devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional process engines are used to ensure functional completeness, then all possible process capabilities are available, but memory footprint and disk space consumption increase
Solution Approach 1:
The process engine is segmented into a core engine and optional activity extensions. The core engine contains only essential process execution capabilities, while additional activities are provided as separate, loadable extensions. This allows the base engine to have minimal memory footprint while maintaining the ability to access additional functionality when needed.
Solution Approach 2:
Unused activities and extensions are extracted from the core process engine binary. The engine loads only the activities that are actually present in the deployed application, leaving out unnecessary components. This extraction approach reduces the memory footprint and disk space requirements while preserving access to additional functionality through selective loading.
2Adaptability or versatility
If traditional process engines include complete functional capabilities, then all process activities are supported, but device resource consumption increases
Solution Approach 1:
The engine architecture segments process capabilities into core functions and optional extensions. Only the essential core engine and required activities are loaded into memory, reducing the amount of processing power and memory resources consumed while maintaining support for additional capabilities when needed.
Solution Approach 2:
The process engine loads only the partial set of activities that are actually required by the deployed application, rather than loading all possible activities. This partial loading approach reduces resource consumption while still providing all necessary process capabilities for the specific application.
3Adaptability or versatility
If process engines are designed for general-purpose use, then they support all applications, but executable file size increases
Solution Approach 1:
The build process extracts and excludes unused activities and extensions from the final executable binary. Only the core engine and activities that are actually present in the application are included in the output, significantly reducing file size while maintaining the ability to support additional functionality through the extension mechanism.
Solution Approach 2:
The core process engine is designed as a universal platform that can support multiple different applications and activity types. By making the core engine multi-functional and adding activities selectively, the system achieves broad application compatibility without requiring each executable to include all possible activities, thus keeping file sizes small.
Data Source
AI summary
A minimum set of process engine components needed to perform a process application is determined. An executable code that includes the determined minimum set of process engine components and omits at least a subset of process engine components not included in the determined minimum set of process engine components is compiled. The executable code is deployed to a device.


