The Edge Services runtime is represented as a thing. All registered functional items are represented as features of this thing, except of the following cases:
A functional item has a special service registration property (functional item attribute) – representation.thingId. If this property is set, then the Thing Admin will map the functional item as a feature of a thing with the given thingId.
If the system property mbs.things.agent.factory.thing is set to true, each functional item that implements Functional Item Factory interface will be represented as a separate thing. The features of this thing are these functional items that have factory.uid in their attributes. If the system property mbs.things.agent.factory is set to false, each functional item that implements Functional Item Factory interface will be represented as a feature of the Edge services runtime thing. These functional items that have factory.uid in their attributes will be represented as a feature of the Edge services runtime thing, too.
The main functional item interface class has @Representation annotation. This annotation is optional and allows whole classes of functional items to be represented as separate things/ features. The @Representation annotation can be applied to a functional item interface and it affects all instances of this interface. The annotation parameter asThing shall be set to true if the functional item should be represented as a separate thing and false if the functional item shall be represented as a feature. The annotation parameter thingId shall be set only if the parameter asThing is set to false and it should point the ID of the thing which will hold this feature.
Each device is mapped to a single thing. A device is every functional item with main object class com.prosyst.mbs.services.da.Device. Each device can have a set of functionalities – device items. These are functional items with a special device.uid attribute. The device items are mapped to the features of the thing representation of the device.