Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 20 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: T-Haeussermann
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 375 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

UniTwin

Framework for providing universal containerized Digital Twins with modular structure in Kubernetes.\ This Fraemwork was published in the following Papers. If you find it useful for your research, please consider citing it.

| DOI | Title | Stage | Cite | | --- | ----- |----------------|------------------------| |10.1109/ICECCME57830.2023.10253365 | Conceptual Architecture for the Provision and Aggregation of Universal Digital Twins within Containerization Environments | Concept | Hae2023 | |10.1109/MIC.2024.3489876 | UniTwin: Pushing Universal Digital Twins Into the Clouds Through Reconfigurable Container Environments | Implementation | Hae2025 |

Citation

If you use UniTwin in your research, please consider citing the following publications:

bibtex @INPROCEEDINGS{Hae2023, title = {Conceptual Architecture for the Provision and Aggregation of Universal Digital Twins within Containerization Environments}, url = {http://dx.doi.org/10.1109/ICECCME57830.2023.10253365}, DOI = {10.1109/iceccme57830.2023.10253365}, booktitle = {2023 3rd International Conference on Electrical, Computer, Communications and Mechatronics Engineering (ICECCME)}, publisher = {IEEE}, author = {Häußermann, Tim and Lehmann, Joel and Rache, Alessa and Reichwald, Julian}, year = {2023}, month = jul, pages = {1--6} } } bibtex @article{Hae2025, title = {UniTwin: Pushing Universal Digital Twins Into the Clouds Through Reconfigurable Container Environments}, volume = {29}, number = {1}, pages = {8--15}, ISSN = {1941-0131}, url = {http://dx.doi.org/10.1109/MIC.2024.3489876}, DOI = {10.1109/mic.2024.3489876}, journal = {IEEE Internet Computing}, publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, author = {Häußermann, Tim M. and Lehmann, Joel and Rache, Alessa and Kolb, Florian and Wühler, Felix and Reichwald, Julian}, year = {2025}, month = jan }

Architecture

From: 10.1109/ICECCME57830.2023.10253365

Implementation

From: 10.1109/MIC.2024.3489876

Prequisits

  1. Running Kubernetes-Cluster
  2. Private Docker Registry in the cluster
  3. Kubernetes Secret for Registry in namespace docker-registry\ \ If you need help setting up th Kubernetes-Custer and Registry have a look at:\ Kubernetes-Cluster-Setup

Installation

  1. Build images: UniTwin and DTPS
  2. Modify buildUmages.py
  3. Change Private Docker Registry Endpoint, User and Password
  4. Set dtps, unitwin and chatmodelprovider to True
  5. Set pushonly to False
  6. Change Private Docker Registry Endpoint in classkubetwin.py
  7. Run the script to Build the images and push them to your Private Docker Registry run buildUmages.py python3 Scripts/buildImages.py

  8. Deploy to your Kubernetes-Clusters

  9. Modify yaml files in Kubernetes: change Private Docker Registry Endpoint in 01-dtps-k8.yaml and 01-dtps-k8.yaml) run buildUmages.py python3 Scripts/apply.py

Usage

  1. Create the configuration for your required Digital Twin
  2. Use the JSON Builder for convenience. It is serverd under: http://0.0.0.0:32000/dtps/
  3. add and remove classes for needed functionalities in the class section
  4. customize class instances in the JSON Output section
  5. Publish Subscribe mechanism can be added to the classes.\ _subscribers: adds subscribers to class instance.\ Key = name of subscriber class instance, value = subscriber class instances subscription method
  6. _subscriptions: subscribes class instance to other class instance\ Key = name of publisher class instance, value = subscriber class instances subscription method
  7. Deploy the Digital Twin to the Cluster\ a) Use DTPS Swagger UI under DTPS\ Use method createTwin\ b) curl -X 'POST' \ 'http://0.0.0.0:32000/dtps/createTwin?conf={YourConfig}&version=1.0&assignNode=false' \ -H 'accept: application/json' \ -d ''
  8. Interact with your Digital Twins API Endpoints under: http://0.0.0.0:32000/{DigitalTwinsUID}/docs#
  9. Use the chat interface under http://0.0.0.0:32000/{DigitalTwinsUID}/ to get attributes and run commands
  10. examples: What is your uid? What are your children? Use child class_MQTT-I1 and run method publish with parameters Topic=Test, Payload=Test

Customization

  1. Create your own class for your need and place it in DTPS/Modules
  2. Name of the file must match the classes name and contain the following imports and structure: ```` from .classComponentABC import Component from .classEvent import Event

class classMQTT(Component): ```` 2. Define base configuration to use in JSON Builder - Filename should be classyourName.json 3. Rebuild and Redeploy DTPS

Owner

  • Login: T-Haeussermann
  • Kind: user

Citation (CITATIONS.bib)

@INPROCEEDINGS{Hae2023,
  title = {Conceptual Architecture for the Provision and Aggregation of Universal Digital Twins within Containerization Environments},
  url = {http://dx.doi.org/10.1109/ICECCME57830.2023.10253365},
  DOI = {10.1109/iceccme57830.2023.10253365},
  booktitle = {2023 3rd International Conference on Electrical,  Computer,  Communications and Mechatronics Engineering (ICECCME)},
  publisher = {IEEE},
  author = {Häußermann,  Tim and Lehmann,  Joel and Rache,  Alessa and Reichwald,  Julian},
  year = {2023},
  month = jul,
  pages = {1–6}
  },

@article{Hae2025,
  title = {UniTwin: Pushing Universal Digital Twins Into the Clouds Through Reconfigurable Container Environments},
  volume = {29},
  ISSN = {1941-0131},
  url = {http://dx.doi.org/10.1109/MIC.2024.3489876},
  DOI = {10.1109/mic.2024.3489876},
  number = {1},
  journal = {IEEE Internet Computing},
  publisher = {Institute of Electrical and Electronics Engineers (IEEE)},
  author = {Häußermann,  Tim M. and Lehmann,  Joel and Rache,  Alessa and Kolb,  Florian and Wühler,  Felix and Reichwald,  Julian},
  year = {2025},
  month = jan,
  pages = {8–15}
}

GitHub Events

Total
  • Push event: 12
Last Year
  • Push event: 12

Dependencies

DTPS/requirements.txt pypi
  • Requests ==2.31.0
  • fastapi ==0.101.1
  • influxdb_client ==1.37.0
  • jinja2 ==3.1.2
  • joblib ==1.3.2
  • kubernetes ==26.1.0
  • marshmallow ==3.20.1
  • matplotlib ==3.7.1
  • numpy ==1.25.0
  • paho_mqtt ==1.6.1
  • pyDataverse ==0.3.1
  • pydantic ==2.2.0
  • pymongo ==4.4.1
  • python-multipart ==0.0.6
  • scipy ==1.11.2
  • statsmodels ==0.14.0
  • uvicorn ==0.23.2
  • watchdog ==3.0.0
UniTwin/requirements.txt pypi
  • Jinja2 ==3.1.2
  • fastapi ==0.93.0
  • influxdb_client ==1.36.1
  • joblib ==1.2.0
  • matplotlib ==3.7.1
  • minio ==7.1.15
  • pyDataverse ==0.3.1
  • pymongo ==4.3.3
  • schedule ==1.2.1
  • statsmodels ==0.13.5
  • uvicorn ==0.20.0
  • watchdog ==2.3.1