Skip to content
Hardi Shah edited this page Jan 28, 2026 · 4 revisions

AAS TwinEngine Logo

DataEngine

What Is DataEngine For?

DataEngine is a .NET-based integration service for AAS ecosystems. It provides UI applications and API consumers with ready-to-use Asset Administration Shells (AAS), submodels, and submodel elements without requiring manual data assembly from multiple sources. By combining standardized templates from a template repository or registry with real-time data, DataEngine dynamically generates complete, populated AAS structures for visualization or API consumption. This abstraction of template handling and data retrieval simplifies the overall consumption of AAS.

  • DataEngine is compatible with AAS version 3.0.

What Problem Does DataEngine Solve?

In a typical AAS setup:

  • Submodels are standardized but often contain static values embedded in AASX files or other exports.
  • Those static payloads cannot be changed dynamically at runtime, which makes them unsuitable for live scenarios.

DataEngine solves this by:

  • Automatically fetching submodel templates from repositories/registry.
  • Identifying required semanticIds/shells data.
  • Querying Plugin APIs for semanticId values, shells, assets.
  • Merging returned values into the template structure.

This removes the need for manual data mapping, reduces coupling between systems, and ensures consistent submodel generation.

Architecture Diagram

dataengine-home.png

What Design Principles Underlie DataEngine?

DataEngine is built on the following key principles:

  • Separation of concerns: Templates, data storage, and orchestration are clearly separated. DataEngine does not own data; Plugins do.
  • Standard alignment: All APIs and data structures align with IDTA and AAS specifications to ensure interoperability.
  • Template-first approach: The structure of submodels is always driven by standardized templates, not by data sources.
  • Extensibility: New Plugins, submodel types, or registries can be added without changing core logic.
  • Stateless processing: Each request is processed independently, enabling scalability and cloud-native deployments.
  • Multi-plugin readiness: Designed to support querying multiple Plugins and handling conflict resolution or fallback strategies. However, we recommend starting with a single-plugin approach for initial implementations.

Clone this wiki locally