diff --git a/.github/workflows/client.yml b/.github/workflows/client.yml index 6a6cd1d3c..219014fa9 100644 --- a/.github/workflows/client.yml +++ b/.github/workflows/client.yml @@ -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 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3b0f90d28..7c70c0f5a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -13,6 +13,7 @@ on: jobs: docs: + name: Build html docs only runs-on: ubuntu-latest steps: - name: Checkout diff --git a/.github/workflows/server.yml b/.github/workflows/lib-ms.yml similarity index 87% rename from .github/workflows/server.yml rename to .github/workflows/lib-ms.yml index 76a2291cb..bff81aa58 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/lib-ms.yml @@ -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: diff --git a/.mdlrc b/.mdlrc new file mode 100644 index 000000000..5fbe502bd --- /dev/null +++ b/.mdlrc @@ -0,0 +1,5 @@ +git_recurse true +all +rule 'MD013', :ignore_code_blocks => true +rule 'MD013', :tables => false +rule 'MD046', :indented \ No newline at end of file diff --git a/docs/FAQ.md b/docs/FAQ.md index a49ac0cda..a5c689b7f 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -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 | |:---|:---| @@ -28,7 +27,6 @@ | 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 @@ -36,22 +34,44 @@ 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**. @@ -60,38 +80,72 @@ ## 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 @@ -99,8 +153,44 @@ ??? 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. \ No newline at end of file + 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. diff --git a/docs/admin/vagrant/single-machine.md b/docs/admin/vagrant/single-machine.md index 83095adea..f72852647 100644 --- a/docs/admin/vagrant/single-machine.md +++ b/docs/admin/vagrant/single-machine.md @@ -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 diff --git a/docs/thanks.md b/docs/thanks.md index ecc806e27..b1705f214 100644 --- a/docs/thanks.md +++ b/docs/thanks.md @@ -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 \ No newline at end of file diff --git a/mkdocs-github.yml b/mkdocs-github.yml index cdf6843cc..0224f1b3b 100644 --- a/mkdocs-github.yml +++ b/mkdocs-github.yml @@ -40,6 +40,7 @@ nav: - FAQ: FAQ.md - Bugs: bugs.md - Thanks: thanks.md + - License: LICENSE.md use_directory_urls: false diff --git a/mkdocs.yml b/mkdocs.yml index fc9935c26..615674e7b 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -40,6 +40,7 @@ nav: - FAQ: FAQ.md - Bugs: bugs.md - Thanks: thanks.md + - License: LICENSE.md use_directory_urls: false diff --git a/script/env.sh b/script/env.sh index 90301a022..12185469e 100755 --- a/script/env.sh +++ b/script/env.sh @@ -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 \ No newline at end of file