Database Reference
In-Depth Information
long-term operation (e.g., Smart Parking applications require smart objects to
be deployed inside the asphalt and stay active for many years). CoAP has been
designed specifically to meet constrained application requirements, such as low
overhead and multicast support, while preserving a RESTful approach to appli-
cation development. Service discovery mechanisms, based on Web Linking, have
also been defined to be used with CoAP. Through service discovery, resources
can be dynamically discovered and accessed, thus enabling application to be
self-configuring and self-managing, so that they can operate already at start-up.
Some CoAP implementations, both open-source and commercial, already
exist in literature supporting different programming languages and operating
systems and versions/features of the protocol. Table 1 shows a list of available
CoAP implementations, with their corresponding programming language, sup-
ported protocol version, and supported features.
Table 1. List of available CoAP implementations and comparison with mjCoAP.
Library
Programming CoAP version Resource
Blockwise
language
observing transfer
libcoap
C
RFC 7252
Californium Java
RFC 7252
Erbium
C
RFC 7252
nCoAP
Java
RFC 7252
×
mjCoAP
Java
RFC 7252
Californium (Cf) [ 18 ] is an open-source implementation of the Constrained
Application Protocol. Californium is a full-featured library composed by several
sub-libraries dedicated to the implementation of all details of the protocol and its
extensions, as well as support for secure CoAP, through DTLS, in the Scandium
(Sc) project. It has been selected as part of the Eclipse IoT project, aiming at
enabling the creation of extensible services and frameworks for developing IoT
applications on top of open APIs. Californium is a rich resource-oriented library:
it comprises a great amount of APIs for interacting with CoAP resources in a
standardized and uniform way.
nCoAP 1 is a Java implementation of the CoAP protocol using the netty non-
blocking I/O framework 2 . nCoAP is a more lightweight implementation than
Californium, yet it has several dependencies on external libraries to accomplish
its tasks.
Constrained operating systems, such as Contiki OS [ 19 ] and TinyOS [ 20 ],
have been designed in order to provide standardized way to interact with the
hardware of smart objects, through abstractions such as sockets and threads. The
Contiki OS includes a CoAP implementation, named Erbium. Erbium (Er) [ 21 ]
1 https://github.com/okleine/nCoAP .
2 http://netty.io/ .
 
Search WWH ::




Custom Search