System Overview
User Requirements
The DTaaS software platform users expect a single platform to support the complete DT lifecycle. To be more precise, the platform users expect the following features:
- Author β create different assets of the DT on the platform itself. This step requires use of some software frameworks and tools whose sole purpose is to author DT assets.
- Consolidate β consolidate the list of available DT assets and authoring tools so that user can navigate the library of reusable assets. This functionality requires support for discovery of available assets.
- Configure β support selection and configuration of DTs. This functionality also requires support for validation of a given configuration.
- Execute β provision computing infrastructure on demand to support execution of a DT.
- Explore β interact with a DT and explore the results stored both inside and outside the platform. Exploration may lead to analytical insights.
- 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.
- Services β integrate DTs with on-platform or external services with which users can interact with.
- Share β share a DT with other users of their organisation.
System Architecture
The figure shows the system architecture of the the DTaaS software platform.
System Components
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 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.
The microservices responsible for satisfying the user requirements are:
- The security microservice implements role-based access control (RBAC) in the platform.
- The accounting microservice is responsible for keeping track of the 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.
- 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.
- Reusable Assets are assets / parts from which DTs are created. Further explation is available on the assets page
- 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.
- DT Execution Manager provides virtual and isolated execution environments for DTs. The execution manager is also responsible for dynamic resource provisioning of cloud resources.
- 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 C4 architectural diagram.
A mapping of the architectural components to the implementation components is available in the table.
System Component | Doc Page(s) |
---|---|
Service Router | Traefik Gateway |
Web Application | React Webapplication |
Reusable Assets | Library Microservice |
Digital Twins and DevOps | Integrated Gitlab |
Services | Third-party Services (MQTT, InfluxDB, RabbitMQ, Grafana and MongoDB) |
DT Lifecycle | Not available yet |
Security | Gitlab client OAuth and server OAuth |
Digital Twins as Services | DT Runner |
Accounting | Not available yet |
Execution Manager | Not available yet |
References
Font sources: fileformat