An aspect is a service that provides data about an asset that is represented by a Twin. The aspect provides an endpoint for one of the supported aspect data transports (HTTP or MQTT). Once a data consumer — usually a service that intends to work with the data — has found a relevant Twin in the Digital Twin Registry, it can obtain from the Twin:

  • The aspect’s endpoint

  • The identifier of the Aspect Model that corresponds to the aspect’s runtime data

The data consumer can then arbitrarily retrieve data from the aspect. It is the aspect’s implementer’s duty to ensure that the runtime data sent by the aspect corresponds to the respective Aspect Model.

A consumer of aspect data can be implemented specifically for one type of aspect. This can be done by referring to the corresponding Aspect Model at development time, or by generating client and deserialization code from it. Alternatively, it can be implemented generically by interpreting an Aspect Model at runtime and using that to deserialize corresponding data.