Overall architecture

The challenge

Kiso was built to answer the challenges that comes with the development of the IoT market. It was built with a strong focus on the constraints that IoT devices have. Its key features are:

  • Battery management
  • Small memory footprint
  • Broad sensor support
  • Broad MCUs support
  • Broad connectivity support
  • Firmware update mechanisms and device management

The key challenges in defining the architecture were:

  • How can we design enough abstraction from the hardware to have generic applications running on specific hardware?
  • How can we design Kiso in a way that supports application development but does enforce strict behaviour patterns (How to stream data, etc.)
  • What should be Kiso code, what should be application code?
  • Which components should exist within Kiso, what do they contain?

We also need to consider our quality goals

The abstracted overview

overview_abstract_kiso-error

The components overview

overview_component_kiso-error

legend_kiso-error

The component’s expected design

Base pattern (for all)

component_base_pattern-kiso-error note: Each component, besides their outside dependencies, are free to choose its architecture based on its owns needs.

Base components (Essentials, Utils)

base_layer_component-kiso-error

Low layer components (Drivers, Cellular, …)

low_layer_component-kiso-error

High layer components (ServalPAL)

high_layer_component-kiso-error