Skip to content
Aarti Kashyap edited this page Aug 24, 2018 · 20 revisions

Welcome to the ThingsJS wiki!

## # # # ThingsJS Introduction

A general-purpose framework for executing high-level edge applications on IoT devices.

Before getting started

V8 Engine

The JavasScript virtual machine which enables javascript to be running on servers.

Languages used by IOT

In an IOT network for every task we use different languages and tools such as Python, node-js etc to perform diferent set of functions.

Thingsjs

An environment that dynamically manages its execution over a set of heterogeneous devices through the ThingsJS Framework.

Architecture

ThingsJS Manager

The ThingsJS Manager is the center-piece of our system architecture,and manages the execution of all components across all devices.

Thingsjs scheduler

Currently the scheduler works on a greedy algorithm approach. The scheduler is available as a plugin, such that the user can manually decide on which node the application should be running. or the scheduler on being invoked based on the memory availabe, schedules the applications on different nodes.

Thingsjs Runtime

An instance of the ThingsJS Runtime is present on every device and acts as a thin hypervisor layer. It locally manages the execution of all components on the device, and gathers detailed statistics during execution (CPU, memory and bandwidth usage) which are fed to the Manager.

Communication

The thingsjs uses MQTT pub/sub channels for communication between different IOT devices. The benefit of using pub/sub is that the devices do not need to be on the same network in order to be a part of a system. Any device can become a part of the system by subscribing to the channel.

  • NOTE: This repository is currently under active development and its contents are subject to breaking changes.
Clone this wiki locally