ETH Zurich :
Computer Science :
Pervasive Computing :
Distributed Systems :
Student Projects :
Scalability for IoT Cloud Services (M)
Abstract—CoAP is a new Web protocol for machine-to-machine communication with and among constrained nodes and networks. As such devices have very limited resources, a large part of the application logic needs to be offloaded to powerful machines somewhere in the network. This concept is known as Cloud computing. Californium (Cf) is a CoAP framework written in Java that is intended for such back-end services. Having served the standardization of CoAP, however, scalability was sacrificed for rapid prototyping and evaluation of the various working group drafts. This work revisits the internal architecture as well as external developer API to optimize the framework for operational deployments that handle a vast number of connected IoT devices.
The Internet of Things (IoT) is the vision of everyday objects that are connected in a ubiquitous network. These objects may be augmented with additional services that make them “smart.” Devices could for instance report their electricity consumption in real-time to match energy demand and supply in the smart grid. Ideally, we interconnect such devices with the largest existing network, the Internet. There, the World Wide Web has evolved to a ubiquitous application layer. Its strengths in interoperability and scalability led to the Web of Things initiative, which adopts approved patterns from the WWW, such as browsing, bookmarking, and the REST architectural style, for machine-to-machine communication. To apply this to resource-constrained devices, the Internet Engineering Task Force (IETF) is currently standardizing the Constrained Application Protocol (CoAP), which is about to reach RFC status. CoAP shares similarities with HTTP, but also allows for IP multicast, native push notifications, low overhead, and parsing simplicity.
Californium (Cf) is a modular CoAP framework written in Java. It has served as “running code” implementation for the standardization of CoAP and thus has grown progressively. However, being one of the most comprehensive implementations, Cf has the potential to become an IoT Cloud service platform. For this, Cf has to be revisited and straightened to make it more scalable. Furthermore, a well-designed application programming interface (API) is required. In this thesis, the student shall develop and examine different concepts for an API and evaluate their usability. The scientific contribution is to evaluate CoAP’s scalability and compare it to HTTP-based services when communicating with devices that produce numerous but relatively small messages.
The student will evaluate alternative API designs in terms of learnability, usability, maintainability, extendibility, and efficiency. The most promising solution shall be implemented to improve functional scalability of the framework.
The student shall re-design Cf’s internal architecture to improve load scalability, i.e., the throughput of handled requests.
The student shall make use of an appropriate testbed that enables stress testing the system.
CoAP shall be compared to HTTP in an M2M scenario. Throughput, latency, and reliability shall be evaluated using the testbed and a deployment of real devices, which will be provided.
Student/Bearbeitet von: Martin Lanter
Contact/Ansprechpartner: Matthias Kovatsch