From 8adf382ddc0f3b051f8be06fdfd21b453cbf3c6b Mon Sep 17 00:00:00 2001 From: prasadtalasila Date: Sat, 7 Oct 2023 16:33:26 +0200 Subject: [PATCH] Fixes formatting mistakes in docs --- deploy/vagrant/make_boxes/dtaas/README.md | 4 +- docs/FAQ.md | 252 +++++++++++----------- docs/admin/vagrant/base-box.md | 77 +++++-- docs/developer/system/current-status.md | 2 +- docs/user/digital-twins/create.md | 10 +- 5 files changed, 190 insertions(+), 155 deletions(-) diff --git a/deploy/vagrant/make_boxes/dtaas/README.md b/deploy/vagrant/make_boxes/dtaas/README.md index 9d62fadcb..18ff48450 100644 --- a/deploy/vagrant/make_boxes/dtaas/README.md +++ b/deploy/vagrant/make_boxes/dtaas/README.md @@ -13,8 +13,8 @@ There are two scripts in this directory: | Script name | Purpose | Default | |:---|:---|:---| -| `user.sh` | user installation | :checkmark: | -| `developer.sh` | developer installation | :cross: | +| `user.sh` | user installation | :white_check_mark: | +| `developer.sh` | developer installation | :x: | If you are installing the DTaaS for developers, the default installation caters to your needs. You can skip the next step and continue with the diff --git a/docs/FAQ.md b/docs/FAQ.md index 98fee4a0e..1badc78eb 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -12,194 +12,198 @@ ??? Question "What is DTaaS?" -DTaaS is software platform on which you can create and run digital twins. -Please see the [features](user/features.md) page -to get a sense of the things you can do in DaaS. + DTaaS is software platform on which you can create and run digital twins. + 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 | -|:---|:---| -| Processor | Two AMD EPYC 7443 24-Core Processors | -| Maximum Storage Capacity | 4TB SSD, RAID 0 configuration | -| Storage Type | File System | -| Maximum file size | 10 GB | -| Data transfer speed | 100 Mbps | -| Data Security | Yes | -| Data Privacy | Yes | -| 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. | + | Key Performance Indicator | Value | + |:---|:---| + | Processor | Two AMD EPYC 7443 24-Core Processors | + | Maximum Storage Capacity | 4TB SSD, RAID 0 configuration | + | Storage Type | File System | + | Maximum file size | 10 GB | + | Data transfer speed | 100 Mbps | + | Data Security | Yes | + | Data Privacy | Yes | + | 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. + 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 it can help -users create digital twin models. 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 it can help + users create digital twin models. 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 -he 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 + 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. -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. + 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. + 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**. + 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**. ## 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. + 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. + 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. + 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. + 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 + Yes ??? Question "Is DTaaS able to transmit data to cloud in real time?" -Yes + 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. + 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. + 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. diff --git a/docs/admin/vagrant/base-box.md b/docs/admin/vagrant/base-box.md index 03de02ca6..e7d03904b 100644 --- a/docs/admin/vagrant/base-box.md +++ b/docs/admin/vagrant/base-box.md @@ -1,32 +1,63 @@ -# Vagrant Box for DTaaS +# DTaaS Vagrant Box -There are some good vagrant boxes on -[vagrant website](https://app.vagrantup.com/boxes/search). -But these boxes require too many installations that take a -long time and network bandwidth. So it is efficient to -create one local vagrant box for DTaaS application and reuse -the same in all installations. +This README provides instructions on creating a custom Operating System +virtual disk for running the DTaaS software. The virtual disk is managed +by **vagrant**. The purpose is two fold: -## Installed Software +* Provide cross-platform installation of the DTaaS application. Any operating +system supporting use of vagrant software utility can support installation of +the DTaaS software. +* Create a ready to use development environment for code contributors. -This base DTaaS vagrant box, when it is successfully created, has the following software: +There are two scripts in this directory: -* docker -* nodejs and yarn -* jupyter -* microk8s -* containers - * mltooling/ml-workspace:0.13.2 - * traefik2.5 - * influxdb2.4 - * grafana - * telegraf - * gitlab +| Script name | Purpose | Default | +|:---|:---|:---| +| `user.sh` | user installation | :white_check_mark: | +| `developer.sh` | developer installation | :x: | + +If you are installing the DTaaS for developers, the default installation +caters to your needs. You can skip the next step and continue with the +creation of vagrant box. + +If you are a developer and would like additional software installed, you need +to modify `Vagrantfile`. The existing `Vagrantfile` has two lines: + +```sh + config.vm.provision "shell", path: "user.sh" + #config.vm.provision "shell", path: "developer.sh" +``` -## Create the vagrant box +Uncomment the second line to have more software components installed. If you +are not a developer, no changes are required to the `Vagrantfile`. + +This vagrant box installed for users will have the following items: + +* docker v24.0 +* nodejs v18.8 +* yarn v1.22 +* npm v10.2 +* containers + * ml-workspace v0.13 + * traefik v2.10 + * gitlab-ce v16.4 + * influxdb v2.7 + * grafana v10.1 + * rabbitmq v3-management + * eclipse-mosquitto (mqtt) v2 + +This vagrant box installed for developers will have +the following items additional items: + +* docker-compose v2.20 +* microk8s v1.27 +* jupyterlab +* mkdocs +* containers + * telegraf v1.28 -Publish a base virtualbox package to be used by -vagrant to publish all other virtualbox packages +The upcoming instructions will help with the creation of +base vagrant box. ```bash #create a key pair diff --git a/docs/developer/system/current-status.md b/docs/developer/system/current-status.md index dd84e03f8..ce5d3d98b 100644 --- a/docs/developer/system/current-status.md +++ b/docs/developer/system/current-status.md @@ -70,7 +70,7 @@ They are: [Grafana](https://github.com/grafana/grafana), [RabbitMQ](https://github.com/rabbitmq/rabbitmq-server) and -[MQTT](https://mqtt.org/). +[MQTT](https://github.com/eclipse/mosquitto). These services can be used by DTs and PTs for communication, storing and visualization of data. There can also be monitoring services setup diff --git a/docs/user/digital-twins/create.md b/docs/user/digital-twins/create.md index ffe48b663..119e26da1 100644 --- a/docs/user/digital-twins/create.md +++ b/docs/user/digital-twins/create.md @@ -136,8 +136,8 @@ The [lifecycle page](lifecycle.md) provides more explanation on these programs. [example files](https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip) ```sh - $wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip - $unzip main.zip + wget https://github.com/INTO-CPS-Association/DTaaS-examples/archive/refs/heads/main.zip + unzip main.zip ``` 1. Open a file browser and copy the files from this uncompressed folder @@ -145,9 +145,9 @@ The [lifecycle page](lifecycle.md) provides more explanation on these programs. matches the one given above. 1. Go to the digital twin directory and run - ``` - $cd /workspace/digital twins/mass-spring-damper - $lifecycle/execute + ```sh + cd /workspace/digital twins/mass-spring-damper + lifecycle/execute ``` The last command executes the mass-spring-damper digital twin and stores