One of the key IoT trends in 2018 is the rise of ‘Digital Twins’. Gartner has included digital twin as one of their top 10 IoT technologies for 2018. I also included digital twin as a key trend in my predictions for 2018.
Therefore, I thought it would be interesting to see what the IoT vendors are providing for digital twins and more importantly how developers can build a digital twins. Similar to my post on Machine Learning at the Edge, this is a review of web sites and online documentation; not a technical evaluation. Feel free to add comments for solutions that I might have missed.
What is a Digital Twin
In simple words a digital twin is the virtual representation of a physical asset. Some refer to a digital twin as the virtual doppelganger of a thing. I also like the analogy that a digital twin enables a device-as-a-service.
The benefits of a digital twin is to provide an abstraction layer that allows for applications to interact with a device or devices in a consistent manner. The vision of a digital twin is that it follows the lifecycle of a device and the data associated with the device. Digital twins will enable features like device simulation during development, integration of analytics and machine learning during deployment, and so on. This article from IBM does a decent job to layout the vision.
Conceptually I can see the value of digital twins so I am interested in seeing how vendors are implementing them in their solution and how developers might be able to build digital twins.
Survey of Digital Twin Solutions
First up is a review of the major cloud vendors.
Microsoft Azure IoT does have the concept of a ‘device twin’ that is part of their device management solution. A device twin is automatically created when a device is connected to the MS IoT Hub. The device twin is a JSON file the stores the device state information that can be used synchronize device information with back-end processes.
Amazon refers to a ‘device shadow’ as their version of a digital twin. A device shadow is a JSON file that contains the state information, meta-data, timestamp, unique client token and version of a device connected to the device shadow service. There are 3 basic REST APIs that can be used to interact with the device shadow: GET, UPDATE, DELETE. You can also interact with device shadows using MQTT messages.
IBM has a ton of marketing collateral around digital twins, including a number of reports and videos. In fact, IBM is definitely the vendor who has invested the most in promoting the concept of a digital twin.
However, it is really hard to figure out how you would actually build a digital twin on IBM Watson IoT. Luckily friends from twitter provided links to this document about data management for Watson IoT. This document seems to take you through a fairly detailed set of steps to create a digital twin. It certainly seems a lot more complicated than other solutions from AWS and Microsoft.
The concept of digital twin is heavily discussed in Industrial IoT, specifically manufacturing. For instance, the Industrie 4.o reference architecture has the concept of an admin shell which is similar to the digital twin concept. For this reason, it is interesting to see what the major industrial IoT vendors are providing for digital twins.
GE Predix talks about asset-centric digital twins. They provide a details tutorial on how to create a digital twin for analytics. They also have an Asset Service that appear to allow you to model your assets which seems to be essential to any digital twin solution. Overall GE Predix digital solution looks pretty sophisticated.
Bosch’s digital twin solution is called Bosch IoT Things. Bosch has some pretty detailed technical documentation, including developer guides, demo applications and hosted dashboard. The Bosch digital twin solution appears to be the most advanced and, more importantly, the most accessible to developers. If you are interested in exploring the concepts of digital twins, I would definitely start here.
Open Source Solutions
The only open source digital twin solution I could find was Eclipse Ditto, a project created by Bosch and contains the technology used for the Bosch IoT Things solution. The Eclipse Ditto web site has extensive documentation and a sandbox server. There is also a detailed technical webinar on Eclipse Ditto. If you are a developer who wants to start to incorporate digital twins into your IoT solution you might want to take a look at Ditto.
Right now the term ‘digital twin’ is really just a concept that has a lot of marketing hype from some of the vendors. In general, the current solutions provided by some of the key IoT platforms are pretty basic. There is a lot of work needed for digital twins to become reality for developers.
The exception appears to be the Eclipse Ditto and Bosch IoT Things solution. Based on the same technology framework, they appear to have the most advanced technology for digital twins. There is still a lot missing features, like simulation, data integration,etc but the base building block seems to be there.
NOTE: Please feel free to add pointers to other digital twin solutions in the comments. I am interested in understanding what other companies are doing in this space.