Internet DRAFT - draft-liu-iot-arch

draft-liu-iot-arch







Internet Engineering Task Force                                   Y. Liu
Internet-Draft                                                   Y. Song
Intended status: Experimental                                      H. Yu
Expires: 12 November 2023                              Guangzhou Genlian
                                                             11 May 2023


            The Architecture for Internet of Things Network
                         draft-liu-iot-arch-02

Abstract

   In this document, it identifies gateways for field-bus networks, data
   storages for archiving and developing data sharing platform, and
   application units to be important system components for developing
   digital communities: i.e., building-scale and city-wide ubiquitous
   facility networking infrastructure.  The standard defines a data
   exchange protocol that generalizes and interconnects these components
   (gateways, storages, application units) over the IPv6-based networks.
   This enables integration of multiple facilities, data storages,
   application services such as central management, energy saving,
   environmental monitoring and alarm notification systems.

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/.

   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 12 November 2023.

Copyright Notice

   Copyright (c) 2023 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.



Liu, et al.             Expires 12 November 2023                [Page 1]

Internet-Draft   The Architecture for Internet of Things        May 2023


   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.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology and Conventions . . . . . . . . . . . . . . . . .   3
   3.  System Architecture . . . . . . . . . . . . . . . . . . . . .   4
     3.1.  Gateway . . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.2.  Storage . . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.3.  Application . . . . . . . . . . . . . . . . . . . . . . .   4
     3.4.  Registry  . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.5.  Concerns of the network design  . . . . . . . . . . . . .   5
   4.  System Model  . . . . . . . . . . . . . . . . . . . . . . . .   5
   5.  Point . . . . . . . . . . . . . . . . . . . . . . . . . . . .   6
     5.1.  Introduction  . . . . . . . . . . . . . . . . . . . . . .   6
     5.2.  Definition  . . . . . . . . . . . . . . . . . . . . . . .   6
     5.3.  URI-based identification  . . . . . . . . . . . . . . . .   7
     5.4.  PointSet  . . . . . . . . . . . . . . . . . . . . . . . .   7
   6.  Common communication protocol . . . . . . . . . . . . . . . .   7
     6.1.  General . . . . . . . . . . . . . . . . . . . . . . . . .   8
     6.2.  Component-to-component communication protocol . . . . . .   8
       6.2.1.  Types of component-to-component communication
               protocol  . . . . . . . . . . . . . . . . . . . . . .   8
       6.2.2.  FETCH protocol  . . . . . . . . . . . . . . . . . . .   8
       6.2.3.  WRITE protocol  . . . . . . . . . . . . . . . . . . .   8
       6.2.4.  TRAP protocol . . . . . . . . . . . . . . . . . . . .   8
     6.3.  Component-to-registry communication protocol  . . . . . .   9
       6.3.1.  Type of component-to-registry communication
               protocol  . . . . . . . . . . . . . . . . . . . . . .   9
       6.3.2.  REGISTRATION protocol . . . . . . . . . . . . . . . .   9
       6.3.3.  LOOKUP protocol . . . . . . . . . . . . . . . . . . .   9
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  10
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  10
   10. Normative References  . . . . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10











Liu, et al.             Expires 12 November 2023                [Page 2]

Internet-Draft   The Architecture for Internet of Things        May 2023


1.  Introduction

   This document identifies gateways for field-bus networks, data
   storages for archiving and developing data sharing platform, and
   application units such as for providing user interfaces of analysis
   and knowing the environmental information to be important system
   components for developing digital communities: i.e., building-scale
   and city-wide ubiquitous facility networking infrastructure.  The
   standard defines a data exchange protocol that generalizes and
   interconnects these components (gateways, storages, application
   units) over the IPv6-based networks.  This opens the application
   interface to handle the statuses of multi-vendor facilities on a
   generalized digital infrastructure.  The standard assumes distributed
   operation of the infrastructure by multiple service providers and
   integrators, and defines a component management protocol that
   autonomously interoperates such distributed infrastructure.  Security
   requirements are taken into consideration in this standard to ensure
   the integrity and confidentiality of data.

2.  Terminology and Conventions

   access control: The means to allow authorized entry and usage of
   resources.

   actuator: A transducer that accepts a data sample or samples and
   converts them into physical action.

   eXtensible Markup Language (XML) namespace: A method for
   distinguishing XML elements and attributes that may have the same
   name but different meanings.  A URL is used as a prefix to a "local
   name."  This combination ensures the uniqueness of the element or
   attribute name.  The URL is used only as a way to create a unique
   prefix and does not have to resolve to a real page on the Internet.

   A transducer that converts a physical, biological, or chemical
   parameter into a digital signal.

   universally unique identifier (UUID): An identifier that has a unique
   value within some defined universe.  In this standard, the query-
   expression and lookup-expression of transport data structure has a
   UUID unless otherwise stated.










Liu, et al.             Expires 12 November 2023                [Page 3]

Internet-Draft   The Architecture for Internet of Things        May 2023


3.  System Architecture

   This protocol specification applies to a TCP/IP-based facility
   networking architecture.  One of the main goals of this specification
   is to enable interoperability among facility networking components.
   Thus, GW, Storage and APP, what we call "Component" in this document,
   have the same generalized communication interface.  Registry has
   different communication interface with these components.  A Component
   works as a part of data- plane, and a Registry works as a part of
   control- plane.

   In the networking environment, Registry works as a broker of
   Components.  It manages meta information e.g., the role of each
   component and the semantics of Point ID, in order to bind components
   appropriately and autonomously.  We here describe them in more detail
   and show how they collaborate with each other.

3.1.  Gateway

   Gateway component has physical sensors and actuators.  It generalizes
   the data model and the access method for those devices, encapsulating
   each physical (field-bus) data model and access method.  It acts on
   its actuator according to the written value from a component (e.g.,
   APP), and it provides physical sensor readings for other components
   (e.g., Storage and APP).

3.2.  Storage

   Storage component archives the history of data sequences.  The
   written values from other components should be permanently stored in
   the backend disks.  It provides the archived values to the components
   that have requested them.

3.3.  Application

   APP component provides some particular works on sensor readings and
   actuator commands.  It can have user interface to display the latest
   environmental state.  It can also allow a user to input some
   schedules of actuator settings, and it can as well analyze some
   sensor data in realtime and provide the result as a virtual device.

3.4.  Registry

   The Registry works as a broker of GW, Storage, and APPs.  The main
   role of registry is to bind those components appropriately and
   autonomously.  It is separated from the data-plane.  It does not work
   on sensor readings or actuator settings directly.  It should allow
   system operation without Registry.



Liu, et al.             Expires 12 November 2023                [Page 4]

Internet-Draft   The Architecture for Internet of Things        May 2023


3.5.  Concerns of the network design

   All components can behave both as the TCP (IETF RFC 793) initiator
   and receiver at once.  It implies the components should be put on a
   flat network.  A flat network means there are no middle boxes which
   could disturb bi-directional communications such as NAT routers and
   firewalls.

   To avoid the issue, we strongly recommend building IPv6 (IETF RFC
   2460) network.  There could be other solutions than IPv6 such as http
   proxy based or NAT traversal solutions.  However, they would depend
   on the requirements of the network configuration.  This specification
   does not reject such solutions, but they are required to make
   interoperable with other systems and not to disturb the
   specification.

4.  System Model

   Component is the basic unit for all the GWs, Storages, and APPs.  The
   interface of Component provides data and query method.  GW, Storage,
   and APP are the inherited classes of Component.  Thus, they have the
   same interface (i.e., data and query method), and they communicate
   with each other using the same protocol.  Here, Query is a method for
   retrieving data (including event-based data transfer) from Component;
   Data is a method for pushing data into Component.

   Registry works as a broker of Components with another type of
   interface (i.e., registration and lookup method).  The interface of
   Registry provides registration and lookup method.  Here,

   o Registration is a method for registering the role of components and
   semantics of Points.

   o Lookup is a method for finding appropriate components and Points.

   Typical implementations for GWs, Storages, APPs and Registry would
   be:

   GW implementations encapsulate field-buses and provide INPUT/OUTPUT
   access for physical devices (by query and data method).

   Storage implementations archive the history of data posted by data
   method, and provide the historical data by query method.

   APP implementations provide other functionalities.  For example, they
   can have user interface.  Data processing component must be also
   categorized to an APP implementation.




Liu, et al.             Expires 12 November 2023                [Page 5]

Internet-Draft   The Architecture for Internet of Things        May 2023


   Registry implementations manage the relationships between Point ID
   and components, provide registration of the role of components and
   semantic of Points by registration method, and provide inquiry of
   appropriate components and Points by lookup method.

   This generalization enables open development of facility networking
   components (i.e., GWs, Storages and APPs) by any vendors.  And we
   would deploy facility networking systems for customer buildings
   without customized programming, by binding these developed
   components.

   The role of Registry is to increase the autonomousness of component-
   to-component collaboration.  It allows autonomous collaboration of
   components, by sharing the information of component roles in an
   operational domain (in fact, not only in an operational domain but
   also with other external domains).

5.  Point

5.1.  Introduction

   This section introduces the concept of Point.  A Point shall have an
   URI-based globally unique identifier.  It identifies a dataflow that
   exchanges data (i.e., sensor readings, actuator commands and meta-
   control signals) among components.

5.2.  Definition

   A Point is an elemental message channel for a specific data sequence
   among Components.  A sequence of sensor readings, actuator commands
   and others (e.g., virtualized sensor readings, meta-control signals)
   shall be bound to a Point.  We denote a message in a Point (whether
   it is coming from a sensor or it is outgoing to an actuator) by
   value.  Any object type is allowed for values in a Point.

   Delivery of values among components shall be made by invoking other
   components' interface.  The provided methods are:

   Query: to read objects from specified Points

   Data: to write objects into specified Points

   By using these methods, a component can get data of the specified
   Points from another component, and it can also transfer data to
   another component with specification of the Points.






Liu, et al.             Expires 12 November 2023                [Page 6]

Internet-Draft   The Architecture for Internet of Things        May 2023


5.3.  URI-based identification

   A Point is associated to a globally unique data sequence.  The data
   shall have been generated from a specific sensor or to a specific
   actuator in the world.  Thus, in order to identify the data sequence
   globally, each Point should have a globally unique identifier.  Note
   that for private operation, it does not necessarily need to be
   globally unique.  However, it is not recommended.

   In the network, every Point shall have a URI for its identifier.
   Practically, we will first assign IDs for physical sensors and
   actuators, and then we will use the IDs for the Point IDs.  This
   operation goes well with the traditional facility networking
   operation.

   Taking URI for identifiers enables global access (if the Point is
   public) to the Point.  Let X(=http://gw.foo.org/sensor1) be a Point
   ID.

   If components do not know the registry server that manages the Point
   ID (X), they should try to access X directly.  Then, the URI can
   redirect to the registry server.  If components already know the
   registry server for X, Point ID may not need to be reachable.
   However, in order to obtain operational consistency, the host of the
   URI should be the host name of the GW (because physical sensors and
   actuators are attached to the GW).  Thus, typical URI format should
   be:

   point ID = "http://(GW host name)/(any format to identify the Point
   in the GW)"

5.4.  PointSet

   This specification also defines PointSet to enable hierarchical
   management of Points.  A PointSet aggregates multiple Points and
   multiple PointSets.  This definition allows the conventional
   operation of grouping of Points hierarchically.  However, PointSet
   feature is optional.  All the components should allow operation
   without pointSet.

6.  Common communication protocol










Liu, et al.             Expires 12 November 2023                [Page 7]

Internet-Draft   The Architecture for Internet of Things        May 2023


6.1.  General

   This specification defines two types of communication protocols for
   components and registry, including the component-to-component
   communication protocol and component-to-registry communication
   protocol.  The protocol message for component-to-component and
   component-to-registry communication is intended to use Simple Object
   Access Protocol (SOAP Version 1.2 Part 1: Messaging Framework").

6.2.  Component-to-component communication protocol

6.2.1.  Types of component-to-component communication protocol

   This section specifies and describes the following three types of
   sub-protocols for component-to-component communication.  Note that
   instances of components are GWs, Storages, and APPs.  As for the
   accessing methods to a registry.

   FETCH protocol -- for data retrieval from a remote component.

   WRITE protocol -- for data transfer to a remote component.

   TRAP protocol -- for event query registration and event data
   transfer.

6.2.2.  FETCH protocol

   FETCH is a protocol for data retrieval from a remote component.  We
   here denote the component that inquires data from the remote
   component by 'Requester', and the component that replies with the
   data by 'Provider'.

6.2.3.  WRITE protocol

   WRITE is a protocol for data transfer to a remote component.  We
   denote the component that submits data to the remote component by
   Requester, and the component that receives the data by Target.

6.2.4.  TRAP protocol

   TRAP is a protocol for event query registration and event data
   transfer.  We here give names for components in the following manner.

   Requester -- the component that sets event-based query to Provider.

   Provider -- the component that transmits data when it has received
   query-matching updates.




Liu, et al.             Expires 12 November 2023                [Page 8]

Internet-Draft   The Architecture for Internet of Things        May 2023


   Callback (Data) -- the components that receives data from the
   Provider.

   Callback (Control) -- the components that receives control signals
   from the Provider.

   This subsection provides the definition of collaboration among these
   components.  Though the roles are explicitly categorized in general,
   in most of the practical systems, Callback (Data), Callback (Control)
   and Requester will be the same component.

6.3.  Component-to-registry communication protocol

6.3.1.  Type of component-to-registry communication protocol

   This section specifies the following two types of sub-protocols for
   component-to-registry communication.

   REGISTRATION Protocol -- for registration of the role of components
   and semantics of Points.

   LOOKUP Protocol -- for searching appropriate components and Points.

6.3.2.  REGISTRATION protocol

   REGISTRATION is a protocol which enables a component to register the
   role of components and semantics of Points.  We denote the component
   that submits registration request to its Registry by "Registrant".

6.3.3.  LOOKUP protocol

   LOOKUP is a protocol for a component to search appropriate access
   components (for component-to-component communication), and to search
   Points by semantic-query.  We here denote the component that searches
   appropriate components and Points from its Registry by 'Requester'.

7.  Security Considerations

   This protocol is basically open.  It assumes multi-domain operation
   and public access from other domain's system components.  In this
   context, security requirements to the system would be listed as
   follows:

   o To avoid unintended data disclosure to the public.

   o To avoid unauthorized access to writable resources.

   o Availability and confidentiality of remote communication host.



Liu, et al.             Expires 12 November 2023                [Page 9]

Internet-Draft   The Architecture for Internet of Things        May 2023


   o Integrity and confidentiality of data.

   o To avoid unintended access or operational conflicts.

   To get confidentiality of remote communication host, we would be able
   to take VPN, SSL, SSH and other related technologies.  HTTPS, or SIP
   and its security extension would help in getting integrity and
   confidentiality of data.

   Access control and access confliction management shall be other
   important but different types of security issues that should be
   discussed independently.  Generally, access control is used to allow
   only specific users to access both readable and writable resources,
   which would certainly help to avoid unauthorized access from or
   unintended data disclosure to the public (sometimes anonymous) users.
   In order to manage this, the system would need to introduce the
   concept of users to identify who is accessing the resources.  We
   assume URI-based identification for user authentication just as Point
   ID takes URI for its identifier.  Authentication of these users and
   components (probably by taking advantage of the existing
   authentication platforms) would certainly need to be considered.

8.  IANA Considerations

   This document does not include an IANA request.

9.  Acknowledgements

   Funding for the RFC Editor function is currently provided by
   PetroChina Huabei Oilfield Company and BII Group.

10.  Normative References

Authors' Addresses

   Yan Liu
   Guangzhou Genlian
   Xiangjiang International Technology Innovation Center, 41 Jinlong Road, Nansha District, Guangzhou
   Guangzhou
   China
   Email: yliu@cfiec.net


   Yang Song
   Guangzhou Genlian
   Xiangjiang International Technology Innovation Center, 41 Jinlong Road, Nansha District, Guangzhou
   Guangzhou
   China



Liu, et al.             Expires 12 November 2023               [Page 10]

Internet-Draft   The Architecture for Internet of Things        May 2023


   Email: ysong@biigroup.cn


   Haisheng Yu
   Guangzhou Genlian
   Xiangjiang International Technology Innovation Center, 41 Jinlong Road, Nansha District, Guangzhou
   Guangzhou
   China
   Email: hsyu@cfiec.net










































Liu, et al.             Expires 12 November 2023               [Page 11]