Coder Social home page Coder Social logo

industryfusion / digitaltwin Goto Github PK

View Code? Open in Web Editor NEW
25.0 6.0 15.0 1.81 MB

This repository contains the ingredients for the Digital Twin Concept of Industry Fusion.

License: Apache License 2.0

Rust 0.45% Dockerfile 0.55% Shell 17.49% Java 3.23% Mustache 0.66% JavaScript 36.70% Python 36.25% CSS 0.73% FreeMarker 1.26% Makefile 0.66% Jupyter Notebook 2.03%
flink ngsi-ld semantic-web shacl streamingsql

digitaltwin's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

digitaltwin's Issues

Implementation of sync between a central git repo and the fusion application

The following interfaces should be integrated with a git repo for the purposes of distribution of content and semantic models:

  • IF1 EcoMan ATT Export - Format: Content ---- export to git
  • IF2 EcoMan Model Export - Format: Semantic ---- export to git
  • IF3 EcoMan ATT Import - Format: Content ---- import from git
  • IF4 FleetMan AS Export - Format: Content ---- export to git
  • IF5 FleetMan AS Import - Format: Content ---- import from git
  • IF7 FleetMan Model Export - Format: Semantic ---- export to git

See #42 for the original list and descriptions.

The git repo should be configurable and the authentication should be possible with ssh key (SSH) or basic auth (HTTPS).
Ideally a 3rd party library will be used for the git integration.

Git Authentication Credentials will be stored as application configuration (File system files or env vars)

Containerize the Context Broker

  • Build docker images for the Context Broker components and push to docker registry (private repo to be provided)
  • Define helm charts/manifest files for the Context Broker
  • Deploy the Context Broker components on existing Kubernetes setup
  • #54

Adaptation of the fusion application EM module to allow peer relationships

The Ecosystem Manager Module of the fusion application will be adapted to envisage the management of inter asset relationships

  • Define subsystems also in EM
  • Allow for the management of peer relationships
    • A peer relationship is created in the context of an ATT referencing another ATT (or theoretically itself) and
    • A allows for the naming of the relationship which will be prefilled with the name of the referenced ATT and
    • a cardinality for the relationship (..1 or ..N)
  • Import / Export of peer relationships in the #42 Interfaces (Content und Model)

Define Semantic serialization format for IFF Ecosystem-Manager

Define and document input and output formats (in the semantic web context) of

  • Ecosystem Manager
  • Fleet Manager
  • Factory Manager

Formats for 3 specific use-cases are required:

  1. For the serialization (import and export) of content data in the fusion application
  2. For the export of semantic models out of the fusion application towards the digital twin side of the ecosystem
  3. For the definition of the actual asset in the digital twin itself (NGSI-LD)
  • It should also be decided and documented whether 1 and 2 above complement each other (i.e. 80% + 20%) or overlap (i.e. 100% + 80%). We could use 2 for the validation of the NGSI-LD of the asset.

Helm chart/Operator design improvement

The current Helm chart design with the two step installation is a problematic design. It does not use the original operators, rather it picks a subset of operators and adds them to the helm charts.

  1. This makes updates of operators very hard, since we create our own package with operators. A proper separation of Operators (CRDs) and use of operators (CR) needs to be done.
  2. The current helm chart cannot be deinstalled cleanly. There are always remainings, not deterministically (due to the fact that CR and CRDs are handled jointly and deleting CR and CRDs jointy creates unpredictable side effects.
  3. The splitting into two helm charts would not be needed if operators are separated from the custom resource deployment.

Therefore, the design will have to be reworked, using a clear separation.

Device simulation for tests

  • Simulating device and send values on Kafka
    • Plasmacutter
    • Filter
  • Commandline tool in Rust
  • Press buttons to send data for demos

Implementation / adaptation of asset on-boarding in the fusion application

The current asset-on-boarding implementation will be adapted to use the import / export interfaces created in this phase of the project.

The interface numbers IF# are from #42

  • FleetMan AS Content Export (IF4) + FleetMan Asset Content Export (IF7) to package
  • FleetMan AS Content Import (IF6) + FabMan Asset Content Import (IF9) from package

The on-boarding process will also incorporate the creation of the asset in the NGSI-LD Content Broker.

  • Adaptation of the fusion application to call NGSI-LD Broker object creation (IF10)

Further requirements

  • The broker endpoint should be configurable.
  • Authentication details should be configurable.
  • Check the current implementation of "Onboard new asset" in Factory Manager

Implementation of import and export endpoints in the fusion application

2 Formats were decided upon:

  1. A fusion specific serialisation format for transport (import / export) of fusion semantic data between Instances of the fusion application = Content
  2. A semantic model that will be used in the rest of the ecosystem = Semantic

Following endpoints will be implemented and confirmed to conform to the formats defined in #4

  • IF1 EcoMan ATT Export - Type: Content, Format: JSON
  • IF2 EcoMan ATT Model Export - Type: Semantic, Format OWL
  • IF3 EcoMan ATT Import - Type: Content, Format: JSON
  • IF4 FleetMan AS Export - Type: Content, Format: JSON
  • IF5 FleetMan AS Model Export - Type: Semantic, Format OWL
  • IF6 FleetMan AS Import - Type: Content, Format: JSON
  • IF7 FleetMan Asset Export - Type: Content, Format: JSON
  • IF8 FleetMan Asset Model Export - Type: Semantic, Format OWL
  • IF9 FabMan Asset Import - Type: Content, Format: JSON

The Semantic Model Exports (IF2, IF7 and IF8) will contain the following imformation

  • Asset Properties (Fields) their optionality (mandatory / optional) and any applicable / defined thresholds
  • Asset Relationships, their cardinality, their type (peer/parent-child) and in the case of peer relationships, the relationship name

The following was removed as it is not required, The Asset Export is in NGSI-LD format and is handled in #46

  • IF# FabMan Asset Export - Format: Content

Provide sample payload to test the Debezium adapter

{
    "@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
    "id": "urn:oisp:9be8df6c-0611-4ccc-8fec-dde3e11bdc7b:device:plasmacutter",
    "type": "https://industry-fusion.com/types/v0.9/plasmacutter",
    "https://industry-fusion.com/types/v0.9/state": {
      "type": "Property",
      "value": "https://industry-fusion.com/types/v0.9/state#on"
    },
    "https://industry-fusion.com/types/v0.9/workpiece": {
      "type": "Relationship",
      "object": "urn:ngsi-ld:Workpiece:workpiece002"
    },
    "refFilter": {
      "type": "Relationship",
      "object": "urn:oisp:9be8df6c-0611-4ccc-8fec-dde3e11bdc7b:device:filter"
    }
  }

 {
    "@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
    "id": "urn:oisp:9be8df6c-0611-4ccc-8fec-dde3e11bdc7b:device:filter",
    "type": "https://industry-fusion.com/types/v0.9/filter",
    "https://industry-fusion.com/types/v0.9/refCartridge": {
      "type": "Relationship",
      "object": "urn:ngsi-ld:FilterCartridge:fc002"
    },
    "https://industry-fusion.com/types/v0.9/state": {
      "type": "Property",
      "value": "https://industry-fusion.com/types/v0.9/state#on"
    },
    "https://industry-fusion.com/types/v0.9/strength": {
      "type": "Property",
      "value": "0.75"
    }
  }
  {
    "@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
    "id": "urn:ngsi-ld:FilterCartridge:fc001",
    "type": "https://industry-fusion.com/types/v0.9/filterCartridge"
  },
  {
    "@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
    "id": "urn:ngsi-ld:FilterCartridge:fc002",
    "type": "https://industry-fusion.com/types/v0.9/filterCartridge",
    "https://industry-fusion.com/types/v0.9/inUseFrom": {
      "type": "Property",
      "value": "2021-10-25 13:51:51.0"
    },
    "https://industry-fusion.com/types/v0.9/inUseUntil": {
      "type": "Property",
      "value": "2021-10-25 13:54:55.4"
    },
    "https://industry-fusion.com/types/v0.9/wasteClass": {
      "type": "Property",
      "value": "WC2"
    }
  }
  {
    "@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld",
    "id": "urn:ngsi-ld:Workpiece:workpiece002",
    "type": "https://industry-fusion.com/types/v0.9/workpiece",
    "https://industry-fusion.com/types/v0.9/steelGrade": {
      "type": "Property",
      "value": {
        "@type": "iff-pre:steelGrade/",
        "@value": "1.4301"
      }
    },
    "name": {
      "type": "Property",
      "value": "workpiece002"
    },
    "https://uri.fiware.org/ns/data-models#depth": {
      "type": "Property",
      "value": "0.1"
    },
    "https://uri.fiware.org/ns/data-models#height": {
      "type": "Property",
      "value": "100"
    },
    "https://uri.fiware.org/ns/data-models#weight": {
      "type": "Property",
      "value": "10"
    },
    "https://uri.fiware.org/ns/data-models#width": {
      "type": "Property",
      "value": "100"
    }
  }

Implementation of asset on-boarding in backend towards gateway

  • The topic of Asset ID across the whole ecosystem should be handled here
    • Document the usage / existence of Asset IDs per System in the Ecosystem and what ID is passed from this system to the next over Interfaces
  • Required changes to the application.yaml of the Gateway services are implemented.
  • Functionality to generate the asset package that will be used in the future to on-board assets will be implemented. This package will hold the following for 1 asset as a zip file:
    • the application.yaml configuration file
    • the NGSI-LD initial payload (IF10)
    • the asset content export (IF7)

See https://github.com/IndustryFusion/DigitalTwin-WIP/blob/main/Import_Export.md for the IF# Interface descriptions.

Helm chart improvement

  • #91
  • Add Flink Services with SQL Gateway
  • Add All-In-One deployment from Scorpio for low resource testing
  • Add profiles for test and production deployment
  • Extend documentation for deployment

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.