The LwM2M Resource Model describes how a device’s components are structured – basically, Objects which contain Resources. Object is the type and definition, and Object Instance is an actual instance of that object. For example: Server Object is the type and definition, but a Server Object Instance is the concrete instantiation of the Server object type. The same applies to Resources.

If an Object or Resource is Single Instance, it is referred to as Object or Resource, rather than Object Instance or Resource Instance. For example, we do not say Lifetime Resource Instance, we say Lifetime Resource. Object Instance and Resource Instance are used when the Object or Resource is Multiple Instance.

We have represented the LwM2M Resource Model as a tree of GDM Control Units referred to as Object Nodes, Object Instance Nodes, Resource Nodes and Resource Instance Nodes.

The following scheme illustrates this representation:


  • Object Nodes are the top level components under the Device Root Node and indicate the objects supported by the respective LwM2M client.
    According to the specification, the object link payload can contain only object references, e.g. "</6>". From that link Remote Manager will create only an Object Node to indicate that the particular object is supported by the LwM2M client. However, the created Object Node is useless if it cannot be instantiated, which is why we support the creation of Single-Instance Objects even though many LwM2M client implementations do not allow it (including Leshan).
    Invoking an action on an Object Node will invoke that action on the respective child nodes, such as Object Instance Nodes, Resource Nodes and Resource Instance Nodes.

  • Object Instance Nodes are the actual instances of an Object. They also serve as an action executor for all their child nodes, such as Resource Nodes and Resource Instance Nodes.

  • Resource Nodes cover all resource types - Single and Multiple-Instance Resources, as well as Executable Resources.
    Executable Resource Nodes do not have child nodes and have only one action - Execute. Resource Nodes also serve as an action executor for all their child nodes - Resource Instance Nodes.

  • Resource Instance Nodes exist only if the Resource is Multiple-Instance. Every instance of a Multiple-Instance Resource will be represented as a separate GDM Control Unit, i.e. as a child node of the Resource Node. The reason for separating the Resource Instances as individual Control Units is to provide a way to support Multiple-Instance Resources of Opaque type, as both GDM and the Management Console do not allow multiple binary values to be entered in one State Variable.