Dynamic Plugin Context Isolation via Inheritance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing plugin architectures face challenges in isolating plugins from each other and supporting dynamic loading when multiple plugins share the same application context.
Innovation Solution
A dynamically loaded plugin architecture (DLPA) is introduced, which utilizes a parent context and a plugin repository to create a child context dynamically for each plugin, allowing for independent operation and concurrent versions of plugins.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If multiple plugins share the same application context, then the system structure is simpler, but plugins cannot be properly isolated and dynamic loading is not supported
Solution Approach 1:
The patent divides the shared application context into separate child contexts for each plugin. When a plugin is loaded, a unique child context is created that inherits only the necessary reusable software components from the parent context. This segmentation isolates each plugin's execution environment, preventing interference between plugins while maintaining access to required services through the inheritance mechanism.
2Ease of manufacture
If a shared application context is used, then resource sharing is easier, but dynamic loading of plugins is not supported
Solution Approach 1:
The patent implements dynamic context creation where child contexts are generated on-demand when plugins are loaded. The system transitions from a static shared context model to a dynamic model where contexts are created and destroyed based on plugin lifecycle events. This allows plugins to be loaded and unloaded at runtime while maintaining proper resource isolation and inheritance relationships.
3Reliability
If plugins are properly isolated with separate contexts, then plugin independence is improved, but system complexity increases
Solution Approach 1:
The patent implements a nested context hierarchy where child contexts are nested within the parent application context. Each child context inherits reusable software components from the parent, creating a tree-like structure that mirrors the plugin architecture. This nesting approach allows isolated plugin environments while reusing shared resources through the inheritance chain, reducing the complexity of managing complete isolation.
Data Source
AI summary
A method and architecture for using dynamically loaded plugins is described herein. The dynamically loaded plugin architecture comprises a parent context and a plugin repository. The parent context may define one or more reusable software components. The plugin repository may store one or more plugins. When a plugin is loaded, a child context may be created dynamically. The child context is associated with the plugin and inherits the one or more reusable software components from the parent context.


