Skip to content

Commit

Permalink
Merge branch 'INTO-CPS-Association:feature/distributed-demo' into use…
Browse files Browse the repository at this point in the history
…radd
  • Loading branch information
astitva1905 authored Mar 6, 2024
2 parents c691794 + 84ae7cb commit 36c0ba2
Show file tree
Hide file tree
Showing 27 changed files with 2,300 additions and 1,196 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ if there is a suggestion to improve the software.
If you find this repo useful for your research, please consider citing our paper:

```bibtex
@misc{talasila2023digital,
title={Digital Twin as a Service (DTaaS): A Platform for Digital Twin Developers and Users},
author={Prasad Talasila and Cláudio Gomes and Peter Høgh Mikkelsen and Santiago Gil Arboleda and Eduard Kamburjan and Peter Gorm Larsen},
year={2023},
eprint={2305.07244},
archivePrefix={arXiv},
primaryClass={cs.SE}
}
@INPROCEEDINGS{talasila2023dtaas,
author={Talasila, Prasad and Gomes, Cláudio and Mikkelsen, Peter Høgh and Arboleda, Santiago Gil and Kamburjan, Eduard and Larsen, Peter Gorm},
booktitle={2023 IEEE Smart World Congress (SWC)},
title={Digital Twin as a Service (DTaaS): A Platform for Digital Twin Developers and Users},
year={2023},
pages={1-8},
keywords={digital twins;physical twin;automation;life cycle;composition},
doi={10.1109/SWC57546.2023.10448890}}
```

## :hammer_and_wrench: Development Setup
Expand Down
4 changes: 2 additions & 2 deletions docs/developer/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

This guide is to help developers get familiar with the project. Please see
developer-specific
[Slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-overview.pdf),
[Video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-overview.mp4),
[Slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-developer-overview_march2024.pdf),
[Video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-developer-overview_march2024.mp4),
and [Research paper](https://arxiv.org/abs/2305.07244).

## :computer: Development Environment
Expand Down
Binary file removed docs/developer/system/C4-L1_diagram.png
Binary file not shown.
Binary file added docs/developer/system/C4-L2_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/developer/system/C4-L2_diagram_detailed.png
Binary file not shown.
Binary file removed docs/developer/system/C4-L2_diagram_simplified.png
Binary file not shown.
2,173 changes: 1,105 additions & 1,068 deletions docs/developer/system/DTaaS.drawio

Large diffs are not rendered by default.

96 changes: 38 additions & 58 deletions docs/developer/system/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,8 @@ the platform users expect the following features:
1. **Save** – save the state of a DT that’s already in the
execution phase. This functionality is required for on
demand saving and re-spawning of DTs.
1. **What-if analysis** – explore alternative scenarios to (i)
plan for an optimal next step, (ii) recalibrate new DT
assets, (iii) automated creation of new DTs or their
assets; these newly created DT assets may be used to
perform scientifically valid experiments.
1. **Services** – integrate DTs with on-platform or external
services with which users can interact with.
1. **Share** – share a DT with other users of their organisation.

## System Architecture
Expand All @@ -40,15 +37,16 @@ The figure shows the system architecture of the the DTaaS software platform.

### System Components

The users interact with the software platform using a website.
The gateway is a single point of entry for direct access to the platform
services. The gateway is responsible for controlling user access to
The users interact with the software platform using a webapp.
The service router is a single point of entry for direct access to the platform
services. The service router is responsible for controlling user access to
the microservice components. The service mesh
enables discovery of microservices, load balancing and authorization
functionalities.

In addition, there are microservices for catering to author, store,
explore, configure, execute and scenario analysis requirements.
In addition, there are microservices for catering to managing
DT reusable assets, platform services, DT lifecycle manager,
DT execution manager, accouting and security.
The microservices are complementary and composable; they fulfil
core requirements of the system.

Expand All @@ -57,65 +55,47 @@ The microservices responsible for satisfying the user requirements are:
1. **The security microservice** implements
role-based access control (RBAC) in the platform.
1. **The accounting microservice** is responsible for keeping track of the
platform, DT asset and infrastructure usage. Any licensing,
live status of platform, DT asset and infrastructure usage. Any licensing,
usage restrictions need to be enforced by the accounting
microservice. Accounting is a pre-requisite to commercialisation of
the platform.
Due to significant use of external
infrastructure and resources via the platform, the accounting
microservice needs to interface with accounting systems of
the external services.

1. **The data microservice** is a frontend to all the databases
integrated into the platform. A time-series database and a
graph database are essential. These two databases store timeseries
data from PT, events on PT/DT, commands sent by
DT to PT. The PTs uses these databases even when their
respective DTs are not in the execute phase.
1. **The visualisation microservice** is again a frontend to
visualisation software that are natively supported inside the platform.
Any visualisation software running either on external
systems or on client browsers do not need to interact with
this microservice. They can directly use the data provided by
the data microservice.

## C4 Architectural Diagrams

The C4 architectural diagrams of the DTaaS software are presented here.

### Level 1

This Level 1 diagram only shows the users and the roles
they play in the DTaaS software.

<img src="C4-L1_diagram.png" alt="C4 Level 1 diagram" width="70%"/>

### Level 2

This simplified version of Level 2 diagram shows
the software containers of the DTaaS software.

![C4 Level 2 diagram](C4-L2_diagram_simplified.png)
1. **User Workspaces** are virtual environments in which users can perform
lifecycle operations on DTs. These virtual environments are either docker
containers or virtual machines which provide desktop interface to users.
1. **Reusable Assets** are assets / parts from which DTs are created.
Further explation is available on
the [assets page](../../user/servers/lib/assets.md)
1. **Services** are dedicated services available to all the DTs and
users of the DTaaS platform. Services build upon DTs and
provide user interfaces to users.
1. **DT Execution Manager** provides virtual and isolated execution
environments for DTs. The execution manager is also responsible
for dynamic resource provisioning of cloud resources.
1. **DT Lifecycle Manager** manages the lifecycle operations on all DTs.
It also directs _DT Execution Manager_ to perform execute, save and
terminate operations on DTs.

If you are interested, please take a look at
the [detailed diagram](C4-L2_diagram_detailed.png).

Please note that the given diagram only
covers DT Lifecycle, Reusable Assets and Execution Manager.
the [C4 architectural diagram](C4-L2_diagram.png).

## Mapping
A mapping of the architectural components to related pages in
the documentation is available in the table.

A mapping of the C4 level 2 containers to components
identified in the system architecture is also available in the table.

| System Component | Container(s) |
| System Component | Doc Page(s) |
| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
| Gateway | [Traefik Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) |
| Unified Interface | [React Webapplication](../client/client.md) |
| Service Router | [Traefik Gateway](https://github.com/INTO-CPS-Association/DTaaS/tree/feature/distributed-demo/servers/config/gateway#the-gateway-server) |
| Web Application | [React Webapplication](../client/client.md) |
| Reusable Assets | [Library Microservice](../servers/lib/lib-ms.md) |
| Data | MQTT, InfluxDB, RabbitMQ, Grafana and MongoDB (not shown in the C4 Level 2 diagram) |
| Visualization | InfluxDB (not shown in the C4 Level 2 diagram) |
| DT Lifecycle | DT Lifecycle Manager and DT Configuration Validator |
| Services | [Third-party Services](./../../admin/services.md) (MQTT, InfluxDB, RabbitMQ, Grafana and MongoDB) |
| DT Lifecycle | Not available yet |
| Security | [Gitlab OAuth](../../admin/client/auth.md) |
| Accounting | None |
| Execution Manager | Execution Manager |
| Accounting | Not available yet |
| Execution Manager | Not available yet |

## References

Font sources: [fileformat](https://www.fileformat.info)
Binary file modified docs/developer/system/architecture.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/developer/system/current-status-developer-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/developer/system/current-status-developer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 7 additions & 5 deletions docs/developer/system/current-status.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ The figure below shows the current status of the development work.

![Current development status](current-status-developer.png)

If you are interested in C4 representation of the same diagram,
please take a look at
the [C4 L2 diagram](current-status-developer-2.png).
A C4 representation of the same diagram is also [available](current-status-developer-2.png).

## :lock: User Security

Expand Down Expand Up @@ -89,8 +87,12 @@ The development priorities for the DTaaS software development team are:
(API Interface to DT)
* Multi-user and microservice security
* Increased automation of installation procedures
* Upgrade software stack of user workspaces
* DT Configuration DSL ín the form of YAML schema
* UI for DT creation
* DT examples

Your contributions and collaboration are highly welcome.
Your contributions are highly welcome.

## References

Font sources: [fileformat](https://www.fileformat.info)
6 changes: 3 additions & 3 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ with other users.
It is also possible to share the services offered by one DT with other users.

There is an overview of the software available in the form of
[slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-short-intro.pdf),
[video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-short-intro.mp4),
and [feature walkthrough](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/dtaas-v0.3-demo.mp4).
[slides](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/DTaaS-short-intro_jan2024.pdf),
[video](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/DTaaS-short-intro_jan2024.mp4),
and [feature walkthrough](https://odin.cps.digit.au.dk/into-cps/dtaas/assets/videos/dtaas-v0.4-demo.mp4).

## License

Expand Down
715 changes: 677 additions & 38 deletions docs/user/examples/examples.drawio

Large diffs are not rendered by default.

Loading

0 comments on commit 36c0ba2

Please sign in to comment.