Skip to content

Commit

Permalink
Updates github actions and documentation (#102)
Browse files Browse the repository at this point in the history
  - Refines the github actions workflow trigger conditions
  - Updates documentation
  - Adds markdown lint config file
  • Loading branch information
prasadtalasila authored Sep 10, 2023
1 parent a95ad9c commit c8b6ab7
Show file tree
Hide file tree
Showing 10 changed files with 149 additions and 43 deletions.
15 changes: 8 additions & 7 deletions .github/workflows/client.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
name: Make quality checks on the client react SPA application
name: React website

on:
push:
paths-ignore:
- 'docs/**'
paths:
- 'client/**'
pull_request:
paths-ignore:
- 'docs/**'
paths:
- 'client/**'
workflow_dispatch:
paths-ignore:
- 'docs/**'
paths:
- 'client/**'

jobs:
client:
name: Test react website
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:

jobs:
docs:
name: Build html docs only
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/server.yml → .github/workflows/lib-ms.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
name: Check the server microservices
name: Library microservice

on:
push:
paths-ignore:
- 'docs/**'
paths:
- 'servers/lib/**'
pull_request:
paths-ignore:
- 'docs/**'
paths:
- 'servers/lib/**'
workflow_dispatch:
paths-ignore:
- 'docs/**'
paths:
- 'servers/lib/**'

jobs:
test-lib-ms:
name: Test library microservice
runs-on: ubuntu-latest

steps:
Expand Down
5 changes: 5 additions & 0 deletions .mdlrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
git_recurse true
all
rule 'MD013', :ignore_code_blocks => true
rule 'MD013', :tables => false
rule 'MD046', :indented
144 changes: 117 additions & 27 deletions docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
Please see the [features](user/features.md) page
to get a sense of the things you can do in DaaS.


??? Question "Are there any Key Performance / Capability Indicators for DTaaS?"
| Key Performance Indicator | Value |
|:---|:---|
Expand All @@ -28,30 +27,51 @@
| Redundancy | None |
| Availability | It is a matter of human resources. If you have human resources to maintain DTaaS round the clock, upwards 95% is easily possible. |


??? Question "Do you provide licensed software like Matlab?"
The licensed software are not available on the software platform.
But users have private workspaces which are based
on Linux-based xfce Desktop environment.
Users can install software in their workspaces. The licensed software
installed by one user is not available to another user.


## Digital Twin Models

??? Question "Can DTaaS create new DT models?"
DTaaS is not a model creation tool. You can put model creation tool inside DTaaS and create new models.
The DTaaS itself does not create digital twin models. But you can run Linux desktop / terminal tools inside the DTaaS. So you can create models inside DTaaS and run them using tools that can run in Linux. The Windows only tools can not run in DTaaS.
DTaaS is not a model creation tool. You can put model creation tool
inside DTaaS and create new models.

The DTaaS itself does not create digital twin models. But you can run
Linux desktop / terminal tools inside the DTaaS. So you can create
models inside DTaaS and run them using tools that can run in Linux.
The Windows only tools can not run in DTaaS.

??? Question "How can DTaaS help to design geometric model? Does it support 3D modeling and simulation?"
Well, DTaaS by itself does not produce any models. DTaaS only provides a platform and an ecosystem of services to facilitate digital twins to be run as services. Since each user has a Linux OS at their disposal, they can also run digital twins that have graphical interface.
In summary, DTaaS is neither a modeling nor simulation tool. If you need these kinds of tools, you need to bring them onto the platform. For example, if you need Matlab for your work, you need to bring the licensed Matlab software.
Well, DTaaS by itself does not produce any models. DTaaS only provides
a platform and an ecosystem of services to facilitate digital twins to
be run as services. Since each user has a Linux OS at their disposal,
they can also run digital twins that have graphical interface.
In summary, DTaaS is neither a modeling nor simulation tool. If you need
these kinds of tools, you need to bring them onto the platform.
For example, if you need Matlab for your work, you need to bring
he licensed Matlab software.

??? Question "Commercial DT platforms in market provide modelling and simulation alongside integration and UI. DTaas is not able to do any modelling or simulation on its own like other commercial platforms. Is this a correct understanding?"
Yes, you are right

??? Question "Can DTaaS support only the information models (or behavioral models) or some other kind of models?"
The DTaaS as such is agnostic to the kind of models you use. DTaaS can
run all kinds of models. This includes behavioral and data models.

??? Question "DTaas is not able to do any modelling or simulation in this case, like other platforms in market provide modelling and simulation alongside integration and UI. Is this a correct understanding?"
Yes, you are right
As long as you have models and the matching solvers that can run in
Linux OS, you are good to go in DTaaS.

In some cases, models and solvers (tools) are bundled together
to form monolithic DTs. The DTaaS does not limit you from running
such DTs as well.

DTaaS does not provide dedicated solvers. But if you can install
a solver in your workspace, then you don't need the platform
to provide one.

??? Question "Does it support XML-based representation and ontology representation?"
Currently No. **We are looking for users needing this capability. If you have concrete requirements and an example, we can discuss a way of realizing it in DTaaS**.
Expand All @@ -60,47 +80,117 @@
## Communication Between Physical Twin and Digital Twin

??? Question "How would you measure a physical entity like shape, size, weight, structure, chemical attributes etc. using DTaaS? Any specific technology used in this case?"
The real measurements are done at physical twin which are then communicated to the digital twin. Any digital twin platform like DTaaS can only facilitate this communication of these measurements from physical twin. The DTaaS provides InfluxDB, RabbitMQ and Mosquitto services for this purpose. These three are probably most widely used services for digital twin communication.
Having said that, DTaaS allows you to utilize other communication technologies and services hosted elsewhere on the Internet.
The real measurements are done at physical twin which are then
communicated to the digital twin. Any digital twin platform like
DTaaS can only facilitate this communication of these measurements
from physical twin. The DTaaS provides InfluxDB, RabbitMQ and Mosquitto
services for this purpose. These three are probably most widely used
services for digital twin communication.

??? Question "How a real-time data can be differed from static data and what is the procedure to identify dynamic data? Is there any UI or specific tool used here?"
DTaaS can not understand the static or dynamic nature of data. It can facilitate storing names, units and any other text description of interesting quantities (weight of batter, voltage output etc). It can also store the data being sent by the physical twin. The distinction between static and dynamic data needs to be made by the user.
Only metadata of the data can reveal such more information about the nature of data. A tool can probably help in very specific cases, but you need metadata. If there is a human being making this distinction, then the need for metadata goes down but does not completely go away.
In some of the DT platforms supported by manufacturers, there is a tight integration between data and model. In this case, the tool itself is taking care of the metadata. The DTaaS is a generic platform which can support execution of digital twins. If a tool can be executed on a Linux desktop / commandline, the tool can be supported within DTaaS. The tool (ex. Matlab) itself can take care of the metadata requirements.
Having said that, DTaaS allows you to utilize other communication
technologies and services hosted elsewhere on the Internet.

??? Question "How a real-time data can be differed from static data and what is the procedure to identify dynamic data? Is there any UI or specific tool used here?"
DTaaS can not understand the static or dynamic nature of data.
It can facilitate storing names, units and any other text description
of interesting quantities (weight of batter, voltage output etc).

It can also store the data being sent by the physical twin.
The distinction between static and dynamic data needs to be made by
the user.

Only metadata of the data can reveal such more information about
the nature of data. A tool can probably help in very specific cases,
but you need metadata. If there is a human being making this distinction,
then the need for metadata goes down but does not completely go away.

In some of the DT platforms supported by manufacturers, there is a tight
integration between data and model. In this case, the tool itself is
taking care of the metadata. The DTaaS is a generic platform which can
support execution of digital twins. If a tool can be executed on
a Linux desktop / commandline, the tool can be supported within DTaaS.
The tool (ex. Matlab) itself can take care of the metadata requirements.

??? Question "How can DTaaS control the physical entity? Which technologies it uses for controlling the physical world?"
At a very abstract level, there is a communication from physical entity to digital entity and back to physical entity. How this communication should happen is decided by the person designing the digital entity. The DTaaS can provide communication services that can help you do this communication with relative ease.
You can use InfluxDB, RabbitMQ and Mosquitto services hosted on DTaaS for two communication between digital and physical entities.

At a very abstract level, there is a communication from physical entity
to digital entity and back to physical entity. How this communication
should happen is decided by the person designing the digital entity.
The DTaaS can provide communication services that can help you do this
communication with relative ease.

You can use InfluxDB, RabbitMQ and Mosquitto services hosted on DTaaS for
two communication between digital and physical entities.

## Data Management

??? Question "Does DTaaS support data collection from different sources like hardware, software and network? Is there any user interface or any tracking instruments used for data collection?"
The DTaaS provids InfluxDB, RabbitMQ, MQTT services. Both the physical twin and digital twin can utilize these protocols for communication. The IoT (time-series) data can be collected using InfluxDB and MQTT broker services. There is a user interface for InfluxDB which can be used to analyze the data collected.
Users can also manually upload their data files into DTaaS.
The DTaaS provids InfluxDB, RabbitMQ, MQTT services. Both the physical twin
and digital twin can utilize these protocols for communication.

The IoT (time-series) data can be collected using InfluxDB and MQTT
broker services. There is a user interface for InfluxDB which can be
used to analyze the data collected.

??? Question "Which transmission protocol does DTaaS allow?"
InfluxDB, RabbitMQ, MQTT and anything else that can be used from Cloud service providers.
Users can also manually upload their data files into DTaaS.

??? Question "Which transmission protocol does DTaaS allow?"
InfluxDB, RabbitMQ, MQTT and anything else that can be used from
Cloud service providers.

??? Question "Does DTaaS support multisource information and combined multi sensor input data? Can it provide analysis and decision-supporting inferences?"
You can store information from multiple sources. The existing InfluxDB services hosted on DTaaS already has a dedicated Influx / Flux query language for doing sensor fusion, analysis and inferences.

You can store information from multiple sources. The existing InfluxDB
services hosted on DTaaS already has a dedicated Influx / Flux query
language for doing sensor fusion, analysis and inferences.

??? Question "Which kinds of visualization technologies DTaaS can support (e.g. graphical, geometry, image, VR/AR representation)?"
Graphical, geometric and images. If you need specific licensed software for the visualization, you will have to bring the license for it. DTaaS does not support AR/VR.
Graphical, geometric and images. If you need specific licensed software
for the visualization, you will have to bring the license for it.
DTaaS does not support AR/VR.

??? Question "Can DTaaS collect data directly from sensors?"
Yes

??? Question "Is DTaaS able to transmit data to cloud in real time?"
Yes


## Platform Native Services on DTaaS Platform

??? Question "Is DTaaS able to detect the anomalies about-to-fail components and prescribe solutions?"
This is the job of a digital twin. If you have a ready to use digital twin that does the job, DTaaS allows others to use your solution.
This is the job of a digital twin. If you have a ready to use digital twin
that does the job, DTaaS allows others to use your solution.

## Comparison with other DT Platforms

??? Question "All the DT platforms seem to provide different features. Is there a comparison chart?"
Here is a qualitative comparison of different DT integration platforms:

Legend: high performance (**H**), mid performance (**M**)
and low performance (**L**)

| DT Platforms | License | DT Development Process | Connectivity | Security | Processing power, performance and Scalability | Data Storage | Visualization | Modeling and Simulation |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| Microsoft Azure DT | Commercial Cloud | H | H | H | M | H | H | H |
| AWS IOT Greengrass | Open source commercial | H | H | H | M | H | H | H |
| Eclipse Ditto | Open source | M | H | M | H | H | L | L |
| Asset Administration Shell | Open source | H | H | L | H | M | L | M |
| PTC Thingworx | Commercial | H | H | H | H | H | M | M |
| GE Predix | Commercial | M | H | H | M | L | M | L |
| AU's DTaaS | Open source | H | H | L | L | M | M | M |

Adopted by Tanusree Roy from Table 4 and 5 of the following paper.

Ref: Naseri, F., Gil, S., Barbu, C., Cetkin, E., Yarimca, G., Jensen, A. C.,
... & Gomes, C. (2023). Digital twin of electric vehicle battery systems:
Comprehensive review of the use cases, requirements, and platforms.
Renewable and Sustainable Energy Reviews, 179, 113280.

??? Question "All the comparisons between DT platforms seems so confusing. Why?"
The fundamental confusion comes from the fact that different DT platforms
(Azure DT, GE Predix) provide different kind of DT capabilities. You can
run all kinds of models natively in GE Predix. In fact you can run models
even next to (on) PTs using GE Predix. But you cannot natively do that in
Azure DT service. You have to do the leg work of integrating with other
Azure services or third-party services to get the kind of capabilities
that GE Predix natively provides in one interface.

The takeaway is that we pick horses for the courses.
2 changes: 1 addition & 1 deletion docs/admin/vagrant/single-machine.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Please change this to your unique website URL.

Please follow these steps to make this work in your local environment.

1. Create [**dtaas** Vagrant box](../make_boxes/dtaas/README.md).
1. Create [**dtaas** Vagrant box](./base-box.md).
You would have created an SSH key pair - _vagrant_ and
_vagrant.pub_ for the vagrant box.
The _vagrant_ is the private SSH key; Copy _vagrant_ SSH private key into
Expand Down
5 changes: 4 additions & 1 deletion docs/thanks.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@
## Users

Cláudio Ângelo Gonçalves Gomes, Dmitri Tcherniak,
Elif Ecem Bas, Giuseppe Abbiati, Hao Feng, Henrik Ejersbo, Tanusree Roy
Elif Ecem Bas, Giuseppe Abbiati, Hao Feng,
Henrik Ejersbo, Tanusree Roy, Farshid Naseri

## Documentation

1. Talasila, P., Gomes, C., Mikkelsen, P. H., Arboleda, S. G., Kamburjan, E., & Larsen, P. G. (2023). [Digital Twin as a Service (DTaaS): A Platform for Digital Twin Developers and Users](https://arxiv.org/abs/2305.07244). arXiv preprint arXiv:2305.07244.
1. Astitva Sehgal
1. Tanusree Roy
1. Farshid Naseri
1 change: 1 addition & 0 deletions mkdocs-github.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ nav:
- FAQ: FAQ.md
- Bugs: bugs.md
- Thanks: thanks.md
- License: LICENSE.md

use_directory_urls: false

Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ nav:
- FAQ: FAQ.md
- Bugs: bugs.md
- Thanks: thanks.md
- License: LICENSE.md

use_directory_urls: false

Expand Down
3 changes: 3 additions & 0 deletions script/env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,6 @@ sudo -H pip3 install python-markdown-math
sudo -H pip3 install mkdocs-open-in-new-tab
sudo -H pip3 install mkdocs-with-pdf
sudo -H pip3 install qrcode

# Install markdownlint
sudo gem install mdl

0 comments on commit c8b6ab7

Please sign in to comment.