Connectivity Framework Annex E: Assessment Template: CoAP
E. 6.4 Functional Viewpoint E. 6.4.1 Core Framework Layer Functions
Data Resource Model
( Section 4.1.1)
ID & Addressing( Section 4.1.2)
Data Type System( Section 4.1.3)
Data Resource Lifecycle( CRUD)( Section 4.1.4)
State Management( Section 4.1.5)
Publish-Subscribe( Section 4.1.6)
Does it provide a data resource model? Summarize the salient aspects.
CoAP provides a data resource model, following the approach taken by HTTP. A data object is represented via a resource, formatted as a uniform resource identifier( URI) path string that is meaningful in context of the server. CoAP defines a core set of methods, GET, POST, PUT, DELETE that can be applied to the resources on a server. Resource representation returned by a server provides the context and links to other resources. It is up-to to the application architects to define the representations and the resource organization, to drive the application state.
CoAP servers can expose resource representations in a variety of formats using a variety of data models. CoAP servers can use the CoRE link format for the resource representations. The CoRE link format identifies the paths to the resources in the CoAP server and provides annotations to the resources, which includes items like the content-type, interface and the resource type. CoAP clients can use these annotations to better understand the semantics of the resource.
Does it provide a way to identifying and addressing data objects? Summarize the identification and addressing scheme.
The CoAP resource URI path string provides a way of identifying and addressing a data object within a server. The server itself is addressed as a network IP address and port number. The result of combing the URI with the network endpoint is a Uniform Resource Locator( URL), expressed as“ coap://” or“ coaps://( when DTLS is used for security). Does it provide a data type system? Summarize the salient aspects.
CoAP does not dictate a specific data type system to define resources. CoAP simply transports resources as a payload on CoAP messages. However, the CoRE link format does provide target attributes for CoAP servers to report the content type of the resource.
Does it provide a means of managing a data object’ s lifecycle? Summarize the salient aspects.
CoAP provides a means for managing data object lifecycles. A client can use the POST or the PUT method to create a data object; the GET method to retrieve the data object’ s representation; the PUT method to update a data object’ s representation; and the DELETE method to delete its representation. The server controls which methods are applicable on a data object, via the response for each operation.
Does it provide a means to manage the recent history of data objects? Summarize the salient aspects.
CoAP does provide cache mechanisms for proxies and CoAP clients to maintain responses of previous requests. These responses may contain the representations of the resources or links of where the resources are located. The CoAP specification defines mechanisms for determining the freshness of the caches and provides rules for access control and applicability of a cached response.
Does it provide a means to publish and subscribe the state of data objects? Summarize the salient aspects.
CoAP provides a way to observe( subscribe) resources and get notifications when their state changes. The OBSERVE is an extension of the GET method with an additional option that requests the server to keep the representation updated over time. It is up-to to the server to determine how and when to notify the client of updates to resources. There is an IETF effort in progress to develop a publish-subscribe broker on top of this mechanism.
IIC: PUB: G5: V1.0: PB: 20170228- 106-