-
Notifications
You must be signed in to change notification settings - Fork 5
Home
A general-purpose framework for executing high-level edge applications on IoT devices.
The JavasScript virtual machine which enables javascript to be running on servers.
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.
An environment that dynamically manages its execution over a set of heterogeneous devices through the ThingsJS Framework.
The ThingsJS Manager is the center-piece of our system architecture,and manages the execution of all components across all devices.
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.
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.
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.