Creation Review

Type
Creation
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Proposal

Eclipse Diafanis

Wednesday, January 19, 2022 - 04:55 by Joerg Koenning
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

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).

Scope

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.

Description

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.

Why Here?

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.

Future Work

Extensions such as matrix operations or other mathematical methods that can be calculated remotely.

Project Scheduling

Initial contribution in February 2022.

Initial Contribution

The initial source code for this web service is on https://github.com/paceval/paceval/tree/main/examples_sources/NodeJS/paceval-service_linux.

Source Repository Type