Many IoT solutions require complex mathematical calculations to work correctly or make decisions.
This can be a self-flying drone that evaluates objects in recorded videos or images in real time during flight.
However, it can also be a water pump that works independently at a remote location and a technician must be informed in advance before an error most likely occurs and the water pump fails completely.
These IoT devices do not have the computing power to perform these mathematical calculations themselves. Or these IoT solutions, because they are battery powered, can't even do the intensive math calculations because that consumes battery time.
It therefore makes sense to introduce a mathematical engine as a web service that anyone can use. This mathematical engine should be easy for everyone to integrate and easily scalable, e.g. with Kubernetes.
IoT devices can then easily define mathematical functions that they have to perform multiple times in the web service, i.e. f(x1,..,xn) where f is the mathematical function and x1,..,xn is the variable identifier of the function.
The IoT devices can then commission the web service to calculate variables for the function f with specific values for the variables, e.g. x1=3.4456, x2=498547.4646, etc.
The result of the calculations is then returned by the web service and the IoT device can continue to work with the result or make decisions based on the result.
This "remote calculation" saves the load on the IoT devices and saves energy (e.g. battery power).
Eclipse Diafanis provides a powerful and fast remote math coprocessor service for IoT devices based on a Linux server for x86 (Intel and AMD) and ARM64 processors.
Equipped with a simple interface, it will allow IoT devices to perform complex mathematical operations remotely and very quickly, thus avoiding increasing electrical consumption in IoT devices.
IoT devices only need to pass the mathematical expression and the input values for evaluation to Diafanis. If the mathematical expression doesn't change, the IoT device only needs to give the new input values as required. Diafanis allows IoT devices to scale the number of inputs of their sensing capabilities by moving the computing power required for mathematical calculations to a central platform.
The Eclipse Diafanis web service listens on port 8080 by default. The port can be freely configured. Calculations are then created via HTTPS request.
Example - To create a calculation the IoT device simply calls the following URL:
http://localhost:8080/?call=Diafanis&functionString=-sin(x*cos(x))^(1/y)&numberOfVariables=2&variables=x;y&values=0.5;2&interval=yes
This creates a calculation object for the function "-sin (x * cos (x)) ^ (1 / y)" and immediately performs the calculation with the "2" variables "x; y" for the values "0.5; 2". Variables and values are always separated by a ";". With "interval=yes" it is indicated that in addition to the computer-precise calculation, the upper and lower interval of the calculation is also given. The exact value of the calculation is then in this interval.
In addition, with the calculation you receive a reference to the generated calculation object for the function. From now on you can simply use this reference to get calculations for further values. References are valid for 1 hour, which is extended to 1 hour from the time of access each time a reference is accessed. If only the reference to a calculation object is used, the sometimes very long function does not have to be passed every time. That saves time and computing power.
For example, if you have received a reference "handle_Computation: 2370169936048", simply call up the following URL for a further calculation with the values 0.2 and 2 for x and y:
http://localhost:8080/?call=Diafanis&handle_Computation=2370169936048&values=0.2;2
This allows you to perform complex calculations of any length on the server.
A goal of everyone for the future and the community is to save electricity and ensure sustainability. IoT devices can use less memory and processing power with Eclipse Diafanis when performing complex calculations remotely.
Extensions such as matrix operations or other mathematical methods that can be calculated remotely.
Initial contribution in February 2022.
The initial source code for this web service is on https://github.com/paceval/paceval/tree/main/examples_sources/NodeJS/paceval-service_linux.
- Log in to post comments