GITAR

GITAR (Generic extensions for Internet of Things ARchitectures) bundles generic control and management plane extensions for Internet-of-Things architectures and protocol stacks used on constrained M2M devices. GITAR aims to facilitate full control (e.g. configuration and monitoring) and software management on IoT/M2M devices, particularly focusing on the network stacks, with new, improved functionality.

In the management plane, dynamic application and network level software upgrades are enabled in an efficient way using the following extensions:

  • incorporates a dynamic component object model (COM) inside components of both the network and application level, enabling partial code updates of protocols and applications.
  • proposes an indirect function call mechanism that enables components to interact via the COM objects.
  • automatic transformation of static components to dynamic components during compilation withouth requiring source code modifications to existing protocols and applications.
  • minimal memory footprint for maintaining COM objects by dynamically linking components to components rather than linking components to individual functions (e.g. cf, Linux ldd).
  • compatibility with standard ELF format after transformation into dynamic components.

In the control plane, dynamic reconfiguration and monitoring capabilities are added, enabling both local and remote control of M2M devices in the IoT. The following extensions are implemented:

  • small and easy to use extensions that can be built into protocols for exposing configuration parameters, enabling monitoring values and events.
  • a compact local parameter database that enables to configure parameters, retrieve monitoring values and subscribe to events.
  • remote access to the parameter database via CoAP in a resource (CPU, memory and radio) efficient manner.

GITAR: Generic control and management extensions for Internet-of Things ARchitectures used by constrained devices.

A high-level overview of the GITAR framework is given in the Figure above. It consists of a node-levek and a network-level:

  • Network-level GITAR extensions
    • Management engine: facilicates code dissimination and synchronized activation during code deployment.
    • Network module DB: software repository for storing dynamic code modules.
    • Configuration and monitoring engine:
      • enables remote (synchronized) reconfiguration of parameters.
      • enables remote monitoring of values (pull) and events (push).
    • Network parameter DB: maintains a network-wide view of the configuration of all nodes and allows to store monitoring values and events. Can be used as a cache.
    • CoAP control & management proxy: transforms easy-to-use REST based requests (responses) into resource efficient CoAP request (response) messages. It can use the DBs as caches. 
  • Node-local GITAR extensions
    • Management engine: facilicates code installation, dynamic linking and synchronisation-aware activation during code deployment.
    • Local module DB: local software repository for storing COM objects.
    • Configuration and monitoring engine:
      • enables reconfiguration of parameters.
      • enables monitoring of values (pull) and events (push).
    • Local parameter DB: maintains a node-local view of the configuration of all protocols and allows to store monitoring values and events.
    • CoAP control & management server: processes the requests that are forwarded by the proxy and translates it in UPI calls.

 

A Contiki implementation of the GITAR software extensions is available for experiments or extensions in the first Open Call in WiSHFUL. The following network protocols are currently supported:

  • CoAP
  • UDP / TCP
  • RPL routing and Contiki uIPv6
  • 6LowPan
  • ContikiMAC or TAISC

Please contact us if you need more information on GITAR during proposal preparation of the WiSHFUL Open Call 1.