Californium (Cf) CoAP Framework

The project has been approved and is awaiting provisioning.

Californium (Cf) CoAP Framework

The Californium (Cf) CoAP framework project is a proposed open source project under the Eclipse Technology Project.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Eclipse Proposals Forum.

Background

In July 2013, the Internet Engineering Task Force (IETF) accepted a new Web protocol for machine-to-machine (M2M) communication as Proposed Standard: the Constrained Application Protocol (CoAP). It is designed within the Constrained RESTful Environments (CoRE) working group. Implementing the REST architectural style, it can be transparently mapped to HTTP. However, CoAP also provides features that go beyond HTTP such as native push notifications and group communication.

This makes CoAP an excellent choice for M2M applications. Thus, it is part of several M2M standards such as OneM2M and OMA Lightweight M2M. The Eclipse M2M Industry Working Group already encompasses several framework and protocol projects, but is still missing an implementation of CoAP, which currently gains more and more attention.

Scope

Californium (Cf) provides an implementation of the Constrained Application Protocol (CoAP) standard. The scope of this project can be summarized as follows:
  • Maintain the base implementation of CoAP by providing bug-fixes, optimizations, and necessary documentation.
  • Continue implementing complementary specifications by the IETF CoRE working group.
  • Maintain the included Web resource framework for M2M and Internet of Things applications.
  • Provide seamless integration with M2M projects for OMA Lightweight M2M and OneM2M such as the OM2M proposal.
  • Implement a security API that allows for authentication and authorization as defined by IETF, OMA, and OneM2M activities. Californium (Cf) comes with the Scandium (Sc) project as DTLS implementation.
  • Maintain the Actinium (Ac) App-server for Californium with its server-side JavaScript support for lightweight M2M and Internet of Things applications.
  • Extend Android support of the CoAP base implementation.

Description

Californium (Cf) is an open source implementation of the Constrained Application Protocol (CoAP). It is written in Java and targets unconstrained environments such as back-end service infrastructures (e.g., proxies, resource directories, or management services) and less constrained environments such as embedded devices running Linux (e.g., smart home controllers or vehicle sensors). Californium (Cf) has been running code for the IETF standardization of CoAP and was recently reimplemented to straighten changed design decisions, but also to improve its performance with focus on scalability. The new implementation was successfully tested at the ETSI CoAP#3 and OMA LWM2M Plugtests in November 2013.

The CoAP framework already provides the following features:

Additional work is currently carried out on the following topics:

  • Group communication through IP multicast and management through draft-ietf-core-groupcomm-17
  • Advanced congestion control
  • Upgrade of the Actinium (Ac) JavaScript application server to the new version of Californium (Cf)

Why Eclipse?

The Eclipse foundation can provide a long-term home for the project. With the M2M Industry Working Group, it can produce more attention to the Californium (Cf) project to attract more contributors to improve the support. In the other direction, the M2M Industry Working Group can gain from the CoAP support, which is currently missing for corresponding M2M projects.

Initial Contribution

The Californium (Cf) project will be provided with an initial contribution from ETH Zurich:

Legal Issues

Californium will be dual-licensed under the Eclipse Public License (EPL) 1.0 and the Eclipse Distribution License (EDL).

Matthias Kovatsch and ETH Zurich own the full copyright of the initial contribution, which was published under 3-clause BSD license.

Californium (Cf) currently includes the following third party libraries via Maven for the optional HTTP-CoAP cross-proxy support:

  • Apache HttpCore NIO 4.2.1, ASL 2.0
  • Apache HttpClient 4.2.1, ASL 2.0
  • Guava, ASL 2.0

The optional Actinium (Ac) extension currently includes the following third party libraries via Maven:

  • Mozilla Rhino 1.7R3, MPL 2.0
  • E4XUtils 1.0 by Anthony Elder, permission to use and distribute

Committers

The following individuals are proposed as initial committers to the project:

Matthias Kovatsch, ETH Zurich
Matthias Kovatsch is the creator and main architect of the Californium (Cf), Scandium (Sc), and Actinium (Ac) projects and will be project (co-)lead.
Martin Lanter, ETH Zurich
Martin Lanter is the main developer of the initial Californium (Cf) and Actinium (Ac) projects and will contribute to the base implementations of CoAP.
Julien Vermillard, Sierra Wireless
Julien Vermillard is the author of the Leshan OMA Lightweight M2M server implementation. He will contribute LWM2M functionality in this new project.

We welcome additional committers and contributions.

Mentors

The following Architecture Council members will mentor this project:

  • Chris Aniszczyk
  • Wayne Beaton

Interested Parties

The following individuals, organisations, companies and projects have expressed interest in this project:

  • Sierra Wireless
  • Thierry Monteil and Mahdi Ben Alaya, LAAS-CNRS (France)
  • Kai Hudalla, Bosch Software Innovations GmbH

Project Scheduling

The initial contribution is already available on GitHub with automated Travis-CI builds and a Maven repository.

Changes to this Document

Date Change
10-December-2013 Added Martin Lanter as committer and Android under scope
04-December-2013 Added Sierra Wireless and LAAS-CNRS as interested party
29-November-2013 Document created