# Digital Twins, Virtual Devices, and Augmentations for Self-Organising Cyber-Physical Collectives +
## 2 Digital Twins and Virtual Devices for CPS Engineering: A Review and Taxonomy
### The Concepts of Digital Twin and Virtual Node in the Literature
#### 2.1.2 Virtual Node  
For a digital twin to exist, there must be an associated physical twin. In contrast, we define a _virtual device_ as a logical device that _has no corresponding physical device_, that is, the virtual device does not provide a model for any physical device. In other words, a virtual device models an application-level concept that has no corresponding physical counterpart. The concept of virtual device has been adopted in multiple works, as discussed in the following and reported in Table 1. [PERSON] et al. refer to a virtual sensor as an _\"entity consisting of a group of sensors along with associated knowledge which enables it to provide services which are beyond the capabilities of any of its individual member sensors\"_[6]. These authors group virtual sensors in three distinct categories: _singleton_ is a virtual sensor that represents an associated physical sensor; _basic_ is a virtual sensor that comprises a homogeneous collection of sensors of the singleton class; and _derived_ is a virtual sensor that comprises a heterogeneous collection of sensors of the singleton class. Following this view, a virtual device provides an abstraction for a set of underlying physical devices. This leads to the problem of how to find efficient ways for the creation of the aforementioned abstractions, for example, in the context of sensor-cloud infrastructures, [PERSON] and [PERSON] introduce new efficient algorithms for the virtualisation of _groups_ of constrained physical sensors in the form of virtual sensors [7]. The concept of virtual node used as an abstraction for groups may serve specific purposes. For instance, [PERSON] et al. use the concept of a virtual sensor for load-balancing and data-sharing, promoting service compositions that are Quality of Service-aware in cloud-based Internet-of-Things applications [8]. On the other hand, [PERSON] et al. propose a layer of virtual nodes and offer programming abstraction to obtain _reliable_ low-cost ad-hoc networks [9]. In this proposal, the programmer has \"predictable\" _virtual nodes_ at his or her disposal to deal with \"unpredictable\" _client nodes_, that is, the underlying collection of physical devices that are emulated by the virtual nodes. The emulation architecture relies on the \"regional coordination pattern\" [19] that divides the network into regions regulated by a leader, where the individual nodes coordinate to support leader election, joining of regions, and consistent data processing. Other works do not associate the concept of a virtual with a group-like abstraction. For instance, [PERSON] et al. use the concept of virtual node to improve the Quality of Service in clustered Wireless Sensor Networks (WSNs) that work using a Time-Division Multiple Access (TDMA) protocol that gives precedence to \"critical nodes\" [20]. The latter work is especially interesting, as it shows an example of how purely virtual devices may be used to induce application-level effects without direct actions on the physical system.