-
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 nodes in the IOT environment and in thingsjs framework refer to the different devices (virtual or otherwise) connected in the system.
The different programs or processes running on the nodes are referred to as the applications in thingsjs.
There can be multiple similar applications applications running on the nodes which are called as the instances.
Example
`function fibonacci(num){
var a = 1, b = 0, temp;
while (num >= 0){
temp = a;
a = a + b;
b = temp;
num--;
}
return b; }` There can be two different instances of the above code, which generates the fibonacci series running. This means that there are two instances of the fibonacci.js running on the IOT.
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.