Within a MobiusFlow system all nodes, 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.
Mobius URI Definition
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.
|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|
An example of an object URI for an object of instance 1, profile 3A, created by service 1F connected to hub 1 is:
and if addressing resource 40 on that object the full URI would be:
Mobius URI Wildcards
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.
|+||Any value in this location||000001/+/003A/+/40|
|#||Any value in this location and all subsequent locations||000001/01F/#|