Within a MobiusFlow system all hubs, services, objects and resources are identified by a unique address known as a Uniform Resource Identifier or URI. These URIs are hierarchical so given the URI for a Mobius resource it is possible to identify which object the resource belongs to, what the object type is, which service the object belongs to and which Mobius node the service is running on.
An object’s URI (or name) is defined in 4 parts, namely the hub ID (HID), service ID (SID), object profile ID (PID) and instance number (INS). A fifth part is added when accessing a specific resource, the resource ID (RID).
Each part of an object’s URI is a hexadecimal uppercase string of a defined length (as shown in the table below). The URI’s parts are separated with a forward slash (/).
A full URI is typically defined as HID/SID/PID/INS/RID.
It is possible to address any part of the system by only using the required parts of the URI. e.g. to address a service only the first two parts of the URI are used HID/SID and to address an object only the first four parts are used HID/SID/PID/INS.
An example of an object URI for an object of instance 1, profile 3A, created by service 1F connected to hub 1 is:
000001/01F/003A/0001
and if addressing resource 40 on that object the full URI would be:
000001/01F/003A/0001/40
Under certain conditions, such as subscribing to a resource’s change of value event, it is possible to use wildcards in the URI. These wildcards are described in the table below and follow the MQTT standard.
URI Section
Length
Example
Description
HID
6
000001
The Mobius Hub or node ID. This should be unique within a MobiusFlow system.
SID
3
01F
The microservice ID. This must be unique for all services on a single node.
PID
4
003A
The object's profile ID. This describes the objects type. Object profiles determine what resources an object has available.
INS
4
0001
The object's instance number. This is unique for each object of a specific type belonging to a service.
RID
2
40
The resource ID
Wildcard
Meaning
Example
+
Any value in this location
000001/+/003A/+/40
#
Any value in this location and all subsequent locations
000001/01F/#