Internet DRAFT - draft-milenkovic-t2trg-iot-standards-description
draft-milenkovic-t2trg-iot-standards-description
T2T Research Group M. Milenkovic, Ed.
Internet-Draft IoTsense LLC
Intended status: Informational 27 June 2022
Expires: 29 December 2022
IoT Information-Model Standards Description ("Nutrition Label")
draft-milenkovic-t2trg-iot-standards-description-00
Abstract
Implementation of IoT systems imposes a requirement of M2M semantic
interoperability. This problem is addressed by a number of ongoing
attempts to define and standardize IoT information and data models.
At present this work is fragmented across several standards with
different approaches, scope, objectives, terminology, and assumptions
that makes them difficult to understand and compare. This document
is part of the effort to alleviate that problem by means of more
streamlined presentations and descriptions.
We are advocating for clear articulation of the intent and implicit
or explicit assumptions in SDO specifications using the common
terminology. Such clarifications would aid IoT practitioners and
potential adopters to make meaningful comparisons and facilitate
selection of IoT specifications that are the best fit for their
intended purpose. To that end, we propose that creators of IoT
standards address a list of questions that would characterize their
work in comparable ways, somewhat akin to the intent of nutrition
labels for food.
This paper describes the basic design principles and practices of IoT
information and data model definitions, and proposes an initial list
of questions that SDOs may address to facilitate understanding and
comparisons. Our intent is to evolve and refine this list over time
by actively soliciting and incorporating feedback and suggestions of
IoT community.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Milenkovic Expires 29 December 2022 [Page 1]
Internet-Draft IoT Standards Description June 2022
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 29 December 2022.
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Whom is This Document For? . . . . . . . . . . . . . . . . . 3
2. Introduction and Problem Statement . . . . . . . . . . . . . 4
3. IoT Information Model . . . . . . . . . . . . . . . . . . . . 4
3.1. Structure of an IoT Information Model . . . . . . . . . . 6
3.1.1. Object Type . . . . . . . . . . . . . . . . . . . . . 7
3.1.2. Properties, Attributes . . . . . . . . . . . . . . . 8
3.1.3. Interactions . . . . . . . . . . . . . . . . . . . . 8
3.1.4. Links . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Functional Interoperability . . . . . . . . . . . . . . . 9
3.3. IoT Frameworks . . . . . . . . . . . . . . . . . . . . . 10
4. Characteristics List . . . . . . . . . . . . . . . . . . . . 11
4.1. Objective . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2. Domain . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3. Environmental Assumptions . . . . . . . . . . . . . . . . 12
4.4. Terminology . . . . . . . . . . . . . . . . . . . . . . . 13
4.5. Would be Nice to Know . . . . . . . . . . . . . . . . . . 13
4.5.1. Metadata Handling . . . . . . . . . . . . . . . . . . 13
4.5.2. Creation of New Object Types . . . . . . . . . . . . 14
4.5.3. Development Considerations and Assumptions . . . . . 15
4.5.4. Tools, Reference Implementations . . . . . . . . . . 16
4.5.5. Licensing Terms . . . . . . . . . . . . . . . . . . . 16
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
7. Security Considerations . . . . . . . . . . . . . . . . . . . 16
8. Appendices . . . . . . . . . . . . . . . . . . . . . . . . . 16
Milenkovic Expires 29 December 2022 [Page 2]
Internet-Draft IoT Standards Description June 2022
9. Informative References . . . . . . . . . . . . . . . . . . . 16
Appendix A. Additional Stuff . . . . . . . . . . . . . . . . . . 17
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17
1. Whom is This Document For?
This document is intended to encourage Standard Development
Organizations (SDOs) involved in definition of IoT data and
information models to provide clarifications in their documents that
would aid better understanding of their purpose, objectives, and
approaches to the problem. We believe that this would be useful to
the technical community of readers and potential implementors who are
not directly involved in SDO work and thus do not share the common
frame of reference and understanding of terminology that the group
members tend to evolve and adopt in the course of their meetings and
interactions. When used in specifications without clarifications,
implied concepts and assumptions as well as peculiar use of
terminology can result in specifications that appear obtuse and
difficult to read and understand to the "uninitiated".
We are advocating for clear articulation of the intent and implicit
or explicit assumptions in specifications using the common
terminology. Such clarifications would aid readers and potential
adopters to make comparisons and facilitate selection of IoT
standards that are the best fit for their intended purpose.
In this document we offer some specific suggestions for the questions
to be covered. Some categories of users who would benefit from such
clarifications are listed below.
IoT researchers and practitioners may want to understand the
landscape of relevant IoT standards and principles of information
modeling and interoperability in IoT systems.
An IoT system designer/architect who has requirements for her
specific IoT application and is looking to select an IoT
specification with compatible architectural style and suitable usage
domain. Such users are often concerned with being able to future-
proof their design in the sense of being able to establish and retain
the ownership and use of their collected data even if the system
needs to be modified, extended, or migrated to another IoT platform.
Milenkovic Expires 29 December 2022 [Page 3]
Internet-Draft IoT Standards Description June 2022
An IoT system implementer who is considering adoption of a potential
IoT standard and would like to assess potential implementation
complexity in terms of required node behaviors and in providing the
assumed environmental requirements - such as protocols and security -
for them to operate. This type of user may be interested in the
availability of reference implementations, tools, and restrictions
such as specific language bindings.
2. Introduction and Problem Statement
Internet of Things (IoT) systems deploy smart connected things that
sense their environment and generate quantitative data about the
physical world. IoT systems essentially interface the Internet to
the physical world.
ITU defines IoT as ... "the extension of Internet connectivity into
physical devices and everyday objects. Embedded with electronics,
Internet connectivity, and other forms of hardware (such as sensors),
these devices can communicate and interact with others over the
Internet, and they can be remotely monitored and controlled. The IoT
adds the ability for IoT devices to interoperate with the existing
Internet infrastructure." [ITU]
In IoT systems, communication is primarily between machines that
generate and consume the data. They exchange message conveying data
measurements and actuation commands. This machine-to-machine (M2M)
mode of operation requires semantic interoperability in the sense
that receiving nodes need to be able to "understand" the meaning of
data. Defining meaning and understanding is generally a
philosophical undertaking. In practical terms as applied to M2M,
this means that the communicating machines need a common agreement on
how to model and semantically annotate the behaviors and properties
of the physical things in order to represent, communicate, and
interpret the data that they generate. In other words, all
communicating parties need to use the same conceptual model of things
that exist in their domain. One way to accomplish this is by having
all parties use the same specification of an IoT information model.
Note that machine-level semantic interoperability is not required in
the common usage of worldwide web where humans interpret the meaning
of the presented web pages and thus achieve semantic interoperability
with data (content) creators [NB add interop harder ref later].
3. IoT Information Model
[NB: this is a context setting section, but not the thrust of the
paper, so may need to be trimmed??..]
Milenkovic Expires 29 December 2022 [Page 4]
Internet-Draft IoT Standards Description June 2022
An IoT information model is an abstract, formal representation of IoT
thing types that often include their properties, relationships, and
the operations that can be performed on them. A thing information
model needs to specify what the thing is, what it can do, thing
properties and their values, and ways to interact with it. Some
specifications provide only definition of thing types and their
properties and they tend to be referred to as data models.
Distinctions between information and data models are discussed in
[RFC3444].
****************************
** * Information Model * **
* * (Shared Specification) * *
* **************************** *
* *
v v
+--------- + +----------+
| IoT Node |<----------------------| IoT Node |
| (Server) |---------------------->| (Client) |
+----------+ +----------+
Figure 1: Use of a Shared Information Model
Figure 1 illustrates two endpoints in an IoT system that intend to
engage in data and control exchanges([iotbook]). As indicated
earlier, all communicating parties need to use the same conceptual
model of things that exist in their domain. A common way to
accomplish this is by having all parties use the same specification
of an IoT information model.
One of the primary tasks of an IoT information model is to facilitate
semantic interoperability, i.e. a shared understanding of what the
data means. It is used by the IoT server to provide the compliant
software abstraction of the thing, and by IoT clients to properly
interpret it and be able to process the data accordingly.
Following the Internet principles and practice, clients and servers
exchange payloads and rely on an information-model specification for
proper encoding and interpretation of the exchanged messages. The
two endpoints are otherwise decoupled, i.e. they may be developed
independently of each other and operate on different platforms and
runtime environments. In this context, endpoint refers to software
agents that are acquiring (producing) or processing (consuming) data.
Milenkovic Expires 29 December 2022 [Page 5]
Internet-Draft IoT Standards Description June 2022
The IoT server internally implements the thing description as a
cyber-world touch point for each particular instance using the format
of the information model defined by the shared specification. It
also needs to implement the actions associated with the device when
requested by the authorized parties. Depending on the system
configuration and hardware capability, an IoT server may physically
reside on the thing or on a proxy device, such as a directly attached
gateway.
IoT clients are consumers of thing/server data and generators of
actuation commands. IoT clients are commonly software agents
associated with or acting on behalf of services and applications. A
client can access server thing descriptions that it is authorized to
and use them to issue queries and optionally command messages. The
client uses the shared information-model definition to properly
format requests and interpret responses that it receives. IoT
clients may reside at in at the edge - such as a peer thing node or
edge gateway, at some intermediate point in the system hierarchy such
as a fog node, or in the cloud.
Since objects are modeling real-world things, there are some implied
semantics defined by the intrinsic nature of the thing that is being
modeled. For example, a temperature sensor is commonly understood to
measure temperature of something based on its characteristics and
placement, such as the ambient air temperature or water temperature
in a heating/cooling pipe.
3.1. Structure of an IoT Information Model
Software objects that represent and model IoT things are often
structured in ways that follow the common practices and terminology
in object-oriented (OO) programming. They are also referred to by
other names, such as thing descriptions and smart objects. Table 1
illustrates general the form of object-oriented IoT information model
representations.
Milenkovic Expires 29 December 2022 [Page 6]
Internet-Draft IoT Standards Description June 2022
+========================+=======================================+
| Element | Description |
+========================+=======================================+
| Object Type | Physical thing being modeled (device) |
+------------------------+---------------------------------------+
| Properties, Attributes | Object attributes, data, metadata |
+------------------------+---------------------------------------+
| Interactions | Ways to interact with object, |
| | actions, events |
+------------------------+---------------------------------------+
| Links | To other objects, compositions and |
| | collections |
+------------------------+---------------------------------------+
Table 1: Structure of IoT Information Model
Some IoT data models specify only object types and properties of
modeled things and leave out definition of interactions and links.
3.1.1. Object Type
Within each specification, names of thing abstractions indicate the
type of the physical thing or the phenomenon that is being modeled.
This field is labeled as Object Type in Table 1 and is often modeled
in object-oriented systems as a class. Object and class types
directly correspond to the specific real-world things that are
modeled by the specification. They can include a variety of sensors
and devices, such as temperature, humidity, thermostat, refrigerator,
security camera, current drawn, metered units (kWh, gals or liters)
and many others. It is customary to use a single object-class
definition representing a category of physical devices or things,
such as a temperature sensor, and to create specific object instances
of that class for each individual physical instantiation of a thing
in a particular IoT system.
Information-model specifications and standards explicitly name and
define each type of the physical entity that they model. Those
names, in effect, constitute a vocabulary of types with their related
definitions. A vocabulary may be a simple list of defined names
resembling a dictionary. In some specifications, the naming tree may
be structured as a as a hierarchy to form a taxonomy to indicate
possible classification relationships among the objects, and to guide
the proper placement of future objects as they are defined.
To facilitate unambiguous machine parsing, the vocabulary provides a
precise definition of how terms are to be named and used when
referring to a specific object class, such as temp or temperature.
By using the type names exactly as defined in the vocabulary,
Milenkovic Expires 29 December 2022 [Page 7]
Internet-Draft IoT Standards Description June 2022
communicating parties can establish an accurate correlation of
references at both sending and receiving ends. This is a simple and
effective way of establishing semantic interoperability at object
type and naming level.
3.1.2. Properties, Attributes
Attributes generally say something about the object and its state.
This field is commonly used to represent sensor readings, such as for
a temperature sensor its current reading in the applicable units of
measure, e.g. degrees C or F. Standards usually specify the exact
format of the name fields and their meaning in the vocabulary. They
also specify the data types for the values associated with the
particular name fields - such as numbers, integers, or strings.
Values or attributes in thing abstraction representations can be
read-only, such as temperature reading, or writeable for actuation,
or both. They can also include metadata, such as what the sensor is
measuring, e. g. air or water temperature, minimum and maximum
possible values of reading, and the like.
3.1.3. Interactions
Some information models define the types of interactions that a
modeled object supports. These can include interfaces and methods
that implementations may support, such as the types of requests and
responses for reading data and for issuing actuation commands. They
can also include designations of protocols and formalisms, usually
APIs, to interact with the thing. Device supported APIs usually
include retrieval of attributes and values, such as sensor readings
and metadata. They may also include ways to request machine-readable
descriptions of the thing, its object type and characteristics, or to
activate the built-in methods that operate on the object's internal
structures and outputs, including actuations. Many specifications
also define events, which are generally asynchronous signals emitted
by the device to indicate some change of state under observation.
3.1.4. Links
Some sort of linking mechanism or representation is often included in
IoT information models, used primarily as a mechanism to point to
other items of interest or to form groupings of related objects.
Groupings of interest may be formed to facilitate coordinated
behaviors of multiple devices, such as home-automation things. They
may also be used to reflect structural properties of the physical
connections between devices as installed and configured in the field
that may be of interest to applications, such as indicating which
room and HVAC zone a thermostat may belong to.
Milenkovic Expires 29 December 2022 [Page 8]
Internet-Draft IoT Standards Description June 2022
Composition via linking may also be used to describe composite
objects that include some more primitive basic types already defined
in the specification. For example, a thermostat object type may be
constructed as a composition of a temperature sensor, set point for
temperature regulation and scheduling, and actuators of the heating
and cooling systems.
3.2. Functional Interoperability
In addition to using the same information model, in order to
interoperate IoT endpoints also need to use the common set of
protocols and serialization mechanisms, compatible naming and
addressing conventions and operate in the common security perimeter.
A working IoT system needs to provide a common operational
environment for nodes to communicate. Some of its components may be
defined by standards and other specified by convention or a
particular system implementation. Environmental components needed
for functional interoperability generally include:
* Data (information) model
* Payload serialization
* Protocol bindings
* Naming and addressing, discovery
* Security
* Device management and provisioning
Payload serialization refers to the common agreement on the format in
which messages appear "on the wire", i.e. are formatted by the
sending node and parsed by the receiving one. Variants of JSON are
commonly used for this purpose, although more compact forms of
serializations, such as the binary CBOR [RFC8949] may be favored for
constrained nodes and networks.
Protocol bindings specify which protocols are supported and perhaps
the port numbers on which they operate. In addition to the common
Internet protocols, more compact versions, such as CoAP ([RFC7959])
may be favored for constrained nodes or segments of the network.
Naming and addressing refer to the mechanisms used to access nodes in
the system. They usually resolve to network IP addresses, but may
also include higher-level mapping constructs such as URLs and URIs.
Milenkovic Expires 29 December 2022 [Page 9]
Internet-Draft IoT Standards Description June 2022
Discovery provides means to identify other nodes in the system to
communicate with or to form groupings of interest. They can include
discovery through network scanning to identify nodes. This is
usually combined with mechanisms and conventions to access machine-
readable descriptions of the nature and capabilities of nodes at
actively used addresses. Another approach is to create directories
where nodes get registered during the activation process and are
discovered by queries.
A working IoT system typically implements security requirements,
conventions, and protocols for node authentication, access
authorization, and secure communication. In order to access each
other and to communicate, all nodes must adhere to the rules and use
the commonly prescribed system procedures. Security system usually
maintains and updates security postures and policies of IoT nodes and
monitors their activity to detect and deal with anomalous behaviors
such as intrusions and probing.
Device management, like security, is part of the control plane of an
IoT system. It is often implemented to keep the system operational,
track states of its components - such as active or inactive - and
often manages distribution and application of software and firmware
updates.
3.3. IoT Frameworks
IoT frameworks are more prescriptive forms of IoT standards intended
to provide full operational interoperability by extending their scope
of definition beyond the data and information model to include
specification of the complete operating environment for the compliant
IoT nodes. In addition, frameworks may include bridges and protocol
converters to facilitate interoperability with the devices and things
that are using conventions and legacy protocols that may not be
Internet compatible. IoT frameworks generally operate above the
transport layer, but below the application layer ([IIC]).
Framework definition of data and information models typically include
object type definitions, properties and interactions, with types of
requests and responses, supported interfaces, methods, and access
points for those.
IoT frameworks also tend to define the conventions, namespaces, and
mechanisms to be used for the thing naming and addressing. Object
instance name may be correlated to its addressing mechanism, so that
knowing the name can be used to locate the target object directly or
by consulting an appropriate thing directory.
Milenkovic Expires 29 December 2022 [Page 10]
Internet-Draft IoT Standards Description June 2022
Frameworks may also specify security requirements for node
connectivity and compliance. These may include the required and
sanctioned types of authentication, authorization, encryption, as
well as supported security protocols, such as TLS.
Some frameworks also specify elements of device management, such as
the forms of health and status reporting, software and security
updating, and methods for initial device onboarding and provisioning.
As indicated, IoT frameworks can define many aspects of an IoT
system, well beyond the information model. Nodes wishing to
interoperate within a framework must implement all of its applicable
components. The positive side of using frameworks is that they can
assure complete operational interoperability of nodes in an IoT
system. In addition to the framework specification, some SDOs also
provide its instantions in terms of sanctioned software and
middleware implementations. Some SDOs also provide tools and
facilities for formal certification of vendor product compliance that
should guarantee interoperability.
On the negative side, use of a framework requires adherence to all of
its mandatory parts which may be a problem when its specification is
at odds with the design preferences and requirements of a particular
IoT system. Another practical problem is that framework compliance
may limit system implementations to only those thing types that are
defined in its specification.
4. Characteristics List
[NB: to be revised based on group feedback and consensus]
A partial list of recommended charateristics that documents and
specifications of IoT data and information models should explicitly
state (or articulate?).
* Objective
* Domain
* Environmental Assumptions
* Terminology
* Would be Nice to Know
Milenkovic Expires 29 December 2022 [Page 11]
Internet-Draft IoT Standards Description June 2022
4.1. Objective
What is the objective of the specification? What does the
specification cover? It may be to define data models or information
models for IoT endpoints (things) in general or in a particular
domain. Or it may be a meta-model specification providing thing
abstractions that the specific information and data models can be
mapped to and from. Or it may be a framework, in which case it
should be specified which additional aspects of the operational
environment it defines, such as security, naming, discovery,
communication protocols, and serialization methods.
4.2. Domain
What is the target usage domain for the specification? A
specification may target or be optimized for a particular domain,
such as smart home, healthcare, industrial, manufacturing,
transportation, agriculture. Choice of the domain is reflected in
the specific types of objects and things for which the information
model is defined. While the specification charter and ambitions may
make broader claims, the types of actually defined information models
effectively determine what it may be used for. Domains of the
specified objects should be stated. Identifying target domains for
future iterations of the specification would also be helpful.
4.3. Environmental Assumptions
As indicated earlier, in order to interoperate IoT endpoints need to
use not only a common information model, but also a compatible or
common set of communication protocols, data serialization mechanisms,
naming and addressing conventions, and operate in the common security
perimeter. In effect, these are environmental conditions in which
the nodes need to operate in order to achieve full interoperability.
IoT standard needs to indicate which of these elements are included
in its specification and which elements are required for its proper
implementation. It should also indicate what is assumed, implicitly
or explicitly, to be provided in terms of specific protocol bindings
and serialization methods, naming, and discovery of nodes.
IoT standards should also state which parts they intentionally do not
cover, say security, to indicate that those need to be defined and
implemented separately if required.
Milenkovic Expires 29 December 2022 [Page 12]
Internet-Draft IoT Standards Description June 2022
4.4. Terminology
Different standards groups tend to use different terminology and
sometimes even use the same terms to refer to different concepts.
This can cause confusion in understanding and interpreting their
specifications. It is therefore advisable for specifications to
define their key terms early on. This does not need to be a formal
dictionary, a simple identification of the terms used to refer to
elements of the IoT information model depicted in Table 1 would go a
long way towards accomplishing this goal.
4.5. Would be Nice to Know
[NB: should this be a separate indented list of categories or a
simple continuation of the previous one?]
While not strictly necessary for understanding the basic tenets of a
specification, it would be useful to address the additional items
that are generally of interest to potential adopters. These may
include:
* Metadata Handling
* Creation of New Object Types
* Development Considerations and Assumptions
* Tools, Reference Implementations
* Licensing Requirements and Terms
4.5.1. Metadata Handling
Metadata, also called tags, are used in IoT systems provide
contextual semantics and create more useful data for a variety of
post-processing services and applications, such as analytics and
device/asset management. Metadata annotations can provide enriched
contextual information in the form of additional attributes of a
thing's functionality, geographic location, manufacturer, serial
number, and the like.
Information and data models often specify some metadata as object
properties or attributes. These are typically inherent properties of
the things being modeled, such as the units of measure used by a
temperature sensor when reporting its readings. Some IoT
applications may benefit from or even require additional metadata,
such as on the structural relationships among things that are
determined later in the system lifecycle, e.g. at installation time.
Milenkovic Expires 29 December 2022 [Page 13]
Internet-Draft IoT Standards Description June 2022
For example, additional metadata may indicate that an air temperature
sensor in a specific room is part of an HVAC zone whose ambient
conditions are regulated by a named air-handling unit.
This kind of information may be consumed by an application to
programmatically determine which HVAC components to actuate in order
to reduce or increase ambient temperature as dictated by the the
associated thermostat schedule or a user request. Without the
metadata, knowledge of structural relations among nodes would have to
be hard coded into an application and customized for each specific
installation, resulting in implementations that are brittle, not
portable, time consuming, and error prone.
It would be useful to know if creators of the particular information
model have a mechanism for or a position on handling additional
metadata beyond its basic specification. [NB: maybe mention haystack
as an example of adding free-form metadata]
4.5.2. Creation of New Object Types
Data and information models provide definitions for a number of
object types representing things in their target domain. Their
number and variety is limited to what the defining organization sees
as important, has the bandwidth to specify, and can reach a consensus
on. The number and type of covered devices tends to change and grow
over time, as reflected in evolving revisions of the specification.
This can present a problem to adopters who wish to use the
specification, but need to incorporate IoT device types that are not
(yet) defined in it. Such users need to define a device model,
preferably with a prospect of being compliant or at least subject to
minimal modifications as the specification evolves to include new
types.
Various SDOs have different approaches to definition of new models.
Some simply wait until agreeing on thing types to be defined in
future iterations. Others encourage crowd-sourcing of new models,
where expert groups or individual companies propose new models, often
after implementing and proving them in internal use. Naturally, such
proposals need to be consistent with the architectural and design
principles of the models that are already defined. Some SDOs (ref
OCF oneIoTa) even provide the tools for creation and evaluation of
machine-readable definitions of the proposed new models. Naturally,
the proposals have to be eventually approved by the SDO and modified
if necessary for adoption. In general, crowdsourcing of thing models
tends to accelerate the coverage and encourage experimentation and
innovation by interested adopters.
Milenkovic Expires 29 December 2022 [Page 14]
Internet-Draft IoT Standards Description June 2022
Creators of specifications of IoT data models should indicate their
process for creation of new object types. It would also be helpful
to provide a recommendation on how to deal with them in the interim.
4.5.3. Development Considerations and Assumptions
Specifications typically define the details of the types and format
of legal node behaviors and their actions and interactions, often in
the form of well-formed requests and expected or permissible replies.
We posit that implementation developers would be well served by
summarizing the totality of what a compliant node is required and
assumed to be able to do. Additional clarification may be provided
by what is possible and assumed to happen at the two distinct parts
of the node lifecycle - design time when the code is written and
runtime when the node is in operation.
At the design time, the code is written to implement the applicable
node behaviors defined by the specification. This includes all
mandatory parts of the specification, and compliant implementation of
the chosen subset of the optional parts of the specification that
node designers deem relevant and appropriate for the purposes of
their target application.
At runtime, when the node is in operation, it can probe other nodes
(that it knows of and is authorized to access) to determine potential
existence of optional elements of the specification that the two
nodes may be able to engage in if the necessary support is provided
at both ends. Defined actions of runtime behavior are commonly
provided by the specification and their existence and support
discovered by runtime queries.
Some specifications and frameworks go further by providing mechanisms
and conventions for nodes to discover behaviors that they have not
previously "seen" (programmed to deal with) and to learn how to deal
with them at runtime. The idea is that ontologies and machine-
readable specifications may be used and provided in the system for
nodes to "learn" what to do as and when necessary. Such elements may
not be explicitly defined in the specification, but they may be
inferred or learned from the associated and perhaps separately
evolved ontologies. This implies that the node that does the query
may not have the requisite pre-programmed (at design time)
interactions, but needs to have the capability to query the encodings
of knowledge and construct appropriate behaviors at runtime.
Specifications that include these possibilities do not often explain
their scope and assumed operation very well. On the other hand, such
elements tend to be quite complex and difficult to implement and
test. Clearly articulating what is intended and assumed, and how to
Milenkovic Expires 29 December 2022 [Page 15]
Internet-Draft IoT Standards Description June 2022
properly use this capability when present, would go a long way
towards improving the chances of correct and interoperable
implementations.
4.5.4. Tools, Reference Implementations
Provide functional description of any additional tools or reference
implementations that may be available to developers. Describe
language dependencies or preferences, if any, that may result from
the specific bindings or reference implementations.
4.5.5. Licensing Terms
Indicate the terms and conditions for implementing a particular
specification. These may include requirements for membership in the
associated SDO, licensing fees, or a mandate to share any
modifications and enhancements with the community. Differences, if
any, for licensing research vs. commercial implementations should be
pointed out.
5. Acknowledgements
Add acks, contributors etc
6. IANA Considerations
This memo includes no request to IANA RFC 5226 [RFC5226].
7. Security Considerations
All drafts are required to have a security considerations section.
See RFC 3552 [RFC3552] for a guide.
8. Appendices
When available, include descriptions of contributed appendices that
describe objectives and scope of specifications contributed by SDOs
or volunteers.
9. Informative References
[IIC] Industry IoT Consortium, "The Industrial Internet of
Things Connectivity Framework", IIC , 2022.
[iotbook] Milenkovic, M., "Internet of Things: Concepts and System
Design", Springer Nature Publishing , 2020.
Milenkovic Expires 29 December 2022 [Page 16]
Internet-Draft IoT Standards Description June 2022
[ITU] International Telecommunications Union, "Overview of the
internet of things", ITU-T Y.4000/Y.2600, 2016.
[RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between
Information Models and Data Models", RFC 3444,
DOI 10.17487/RFC3444, January 2003,
<https://www.rfc-editor.org/info/rfc3444>.
[RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC
Text on Security Considerations", BCP 72, RFC 3552,
DOI 10.17487/RFC3552, July 2003,
<https://www.rfc-editor.org/info/rfc3552>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", RFC 5226,
DOI 10.17487/RFC5226, May 2008,
<https://www.rfc-editor.org/info/rfc5226>.
[RFC7959] Bormann, C. and Z. Shelby, Ed., "Block-Wise Transfers in
the Constrained Application Protocol (CoAP)", RFC 7959,
DOI 10.17487/RFC7959, August 2016,
<https://www.rfc-editor.org/info/rfc7959>.
[RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object
Representation (CBOR)", STD 94, RFC 8949,
DOI 10.17487/RFC8949, December 2020,
<https://www.rfc-editor.org/info/rfc8949>.
Appendix A. Additional Stuff
Placeholder for SDOs or volunteers to provide their descriptions that
meet the suggested guidelines
Author's Address
Milan Milenkovic (editor)
IoTsense LLC
Dublin, CA 94568
United States of America
Phone: +1 650 431 8280
Email: milan@iotsense.com
Milenkovic Expires 29 December 2022 [Page 17]