IEEE Std 2030.5-2018
IEEE Standard for Smart Energy Profile Application Protocol
18
Copyright © 2018 IEEE. All rights reserved.
4. Design pattern
4.1 Protocol flexibility
IEEE Std 2030.5 is designed to implement a REST architecture. It is built around the core actions of GET,
HEAD, PUT, POST, and DELETE (as used in (Fielding [B3]), with the addition of a lightweight
subscription mechanism as discussed in 8.7. Any application protocol that can implement a RESTful
command set could likely be used with IEEE Std 2030.5, but Hypertext Transfer Protocol (HTTP) is a
required baseline for interoperable IEEE 2030.5 implementations. HTTP utilizes Transmission Control
Protocol (TCP) as its transport protocol. As a result, TCP manages the session providing delivery assurance
and windowing.
IEEE 2030.5 servers and clients SHALL be compliant with IETF RFC 7230, IETF RFC 7231, IETF RFC
7232, IETF RFC 7233, IETF RFC 7234, and IETF RFC 7235.
4.2 General rules/best practices
This standard shall not make distinctions between servers, clients, or devices when defining interfaces and
uniform resource identifiers (URIs). The goal is to avoid having a resource that has one behavior on a
server and a different behavior on a client or different type of server. The distinction between the server and
client role depends on whether a device exposes a resource (server) or interacts with the resource (client).
The default mechanism for obtaining a resource representation is a pull mechanism, implemented with
GET. A client requests and retrieves data from a server or creates, modifies, or deletes data on a server.
The default polling rate for a given function set is specified at the top-level resource of that function set in
the pollRate attribute.
The use of a subscription mechanism for retrieving a resource representation is also optionally supported,
where convenient and appropriate. Resources that support subscription are denoted by their subscribable
attribute.
Objects have a defined granularity and whole objects (not partial objects) are to be updated with the
granularity defined in the schema.
Clients that expect to have intermittent connections to the network (e.g., battery-powered sleepy devices,
mobile devices, etc.) use a pull mechanism as their default behavior for resource retrieval, as a
Subscription/Notification mechanism may not be reliable. It should be noted that clients that expect to have
intermittent connections to the network may still POST, PUT, and DELETE resources, provided they have
the appropriate security permissions.
The TCP ports used for HTTP or Hypertext Transfer Protocol Secure (HTTPS) SHALL be specified in the
xmDNS service advertisement for the service.
Content SHALL be transferred with either one of the content types: “application/sep+xml” or
“application/sep-exi.”
Devices do not assume the use of the URIs and their structures given throughout this standard. All
resources are self-describing as it is acknowledged that URIs, schemas, and resources might change in the
future. All resources SHALL contain links to their subordinate resources to support flexibility in URIs and
future extensibility. Thus, to allow for extensibility and granularity, all objects are described in schemas
and referenced via URIs. The URIs presented throughout this standard are recommendations. Thus, clients