-
Notifications
You must be signed in to change notification settings - Fork 3
Multi Plugin
In many scenarios, you may want to split data across multiple plugins (for example one for sensor data, one for maintenance, one for configuration).
Multi-Plugin support allows DataEngine to:
- Call more than one Plugin for the same request.
- Merge their responses.
- Resolve conflicts deterministically.
Configuration is done via PluginConfig.Plugins and MultiPluginConflictOption in the DataEngine configuration.
For initial setups and proofs of concept, it is recommended to start with a single Plugin configuration.
-
Configured plugins
- In configuration you define multiple plugin entries, each with:
PluginNamePluginUrl
- In configuration you define multiple plugin entries, each with:
-
Request fan-out
- When DataEngine needs values for a submodel / semantic IDs, it can:
- Call one specific plugin, or
- Fan out the same request to multiple plugins.
- When DataEngine needs values for a submodel / semantic IDs, it can:
-
Aggregation
- DataEngine collects all responses and builds a combined data set, keyed by semantic IDs or element identifiers.
When multiple plugins return values for the same semantic ID or submodel element, DataEngine uses the configured conflict strategy (from
MultiPluginConflictOption.HandlingMode):
-
TakeFirst- Take the value from the first plugin that provided a value.
- Remaining values for the same ID are ignored.
-
SkipConflictingIds- If more than one plugin returns a value for the same ID, drop that ID entirely from the combined result.
- Non-conflicting IDs are still used.
-
ThrowError- If multiple plugins provide a value for the same ID, DataEngine returns an error.
- The client can then decide how to handle or reconfigure plugins.
-
Functional separation
- One plugin for master data (nameplate, contact information).
- Another plugin for operational data (temperatures, usage hours).
-
Organizational separation
- Different business units own different plugins but the same DataEngine.
In all cases, DataEngine keeps a single, AAS-compliant interface for clients, hiding the complexity of multiple underlying plugins.
M&M Software
- Architecture
- Submodel Repository
- Submodel Registry
- Aas Registry
- Aas Repository
- Plugin
- Multi-Plugin
- Supported SubmodelElement
-
Bug Reports: Template Bug Item
-
Feature Requests : Feature Request