AWS IoT Embedded C Device SDK
SDK Architecture and Design

Embedded SDK has a layered architecture. It is based on the MQTT protocol for now and will support protocols like HTTP in the future.

This SDK is primarily targeted for resource constrained devices.

Quality Attributes considered during the design of this SDK,

Layered Architecture

There are primarily 3 layers in the SDK as shown in the diagram below:

SDK_Architecture.png
SDK Modules

Thing Shadow

It is the implementation of the AWS IoT Thing Shadow. A JSON based protocol that lets mobile or other applications to communicate to the device, even if the device is not connected.

AWS MQTT client

This protocol layer is a modification of the Paho Embedded C client. This modified is also distrbuted as part of the Quick start port of linux. This layer provides various functionality like publish, subscribe. The SDK could be either used through Shadow or jsut the MQTT protocol.

TLS Layer

MQTT uses TLS sockets to talk to the Platform. We provide wrappers around OpenSSL and mbedTLS(ARM) configuring the libraries to connect with AWS IoT Platform.