Skip to content

AAS-TwinEngine/AAS.TwinEngine.DataEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

DataEngine

Made by M&M Software Apache License .NET 8.0

Overview

DataEngine Overview

DataEngine is an API service that dynamically generates complete Asset Administration Shell (AAS) submodels by combining standardized AAS templates with provided data from database via plugins.

It acts as the core orchestration layer in the TwinEngine ecosystem, transforming static AAS templates into live, ready-to-consume AAS representations through a plugin-based value resolution mechanism.

DataEngine integrates seamlessly with Eclipse BaSyx components and is also capable of orchestrating other open-source AAS-related components, enabling a flexible, vendor-neutral AAS infrastructure.


Features Overview

  • Template-based Dynamic AAS and Submodel Generation
    Dynamically builds complete AAS structures using standardized, reusable templates (containing semantic IDs without values).

  • Schema-driven Plugin Integration
    Decouples data access through external Plugin APIs using JSON Schema contracts for type-safe communication.

  • IDTA-aligned AAS REST Endpoints
    Multiple API endpoints that align with official IDTA AAS specifications, supporting shell descriptor, submodel, and submodel element operations for seamless interoperability.

  • Multi-Plugin Orchestration
    DataEngine supports orchestration across multiple Plugin APIs to resolve runtime data simultaneously.

  • Nested and Hierarchical Submodel Support
    Handles complex Submodels with deeply nested and structured SubmodelElements.

  • Comprehensive SubmodelElement Type Support
    Supports a broad range of SubmodelElement types with semantic preservation during population.

DataEngine - AAS Generation Flow

sequenceDiagram
    actor A as Client
    participant B as DataEngine
    participant C as Template Repository
    participant D as Plugins

    A->>B: GET /submodels/{submodelIdentifier}
    B->>C: GET / Submodel Templates
    C-->>B: Submodel Template (Semantic IDs)
    B->>B: Extract semantic IDs
    B->>D: POST /data/{submodelId}
    D-->D: Resolve semantic IDs
    D-->>B: Semantic Id with Values
    B->>B: Populate Template
    B-->>A: Filled submodel
Loading

The DataEngine transforms static AAS templates into live digital representations.

Step-by-Step Process

When a client requests AAS data (shell descriptor, submodel, or submodel element):

  1. Fetch Template - DataEngine retrieves the required AAS/Submodel template from the AAS Template Registry
  2. Extract Semantic IDs - Identifies all semantic IDs within the template that need values
  3. Request Data via Schema - Sends a JSON Schema to the Plugin API describing the structure and semantic IDs needed
  4. Receive Values - Plugin queries its database and responds with populated values for the requested semantic IDs
  5. Populate Template - DataEngine injects the received values into the template structure
  6. Return AAS submodel Response - Responds to the client with a complete, ready-to-use AAS structure

Quick Start Guide

Running the Setup With DPP Plugin

  1. Clone or extract this repository:

    git clone https://github.com/AAS-TwinEngine/AAS.TwinEngine.DataEngine.git
    cd AAS.TwinEngine.DataEngine/example
  2. Start all services:

    docker-compose up -d
  3. Access the Web UI: Open your browser and navigate to:

    http://localhost:8080/aas-ui/
    

About

This repository is created to manage DataEngine

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages