Administrative backend of IoT platform


Alifax is one of the most important italian companies in the development, production and distribution of clinical diagnostic instruments for laboratory automation. The company has subsidiaries in Russia, Spain, China, Brazil and Germany, and distributes its products across more than 100 other countries. 

Among its products and services, the company sells and operates a special type of smart and connected boxes, whose main goal is to improve and certify the transport of biological samples. Such smart boxes are medical devices featuring active temperature control (i.e. active cooling or heating as required to keep the samples at the configured temperature), electro-mechanical lock, NFC authentication of operators, on-board recording and real-time transmission (over the mobile network) of 30+ transport parameters including internal/external temperature, internal humidity, acceleration, tilt, position, speed, residual thermal autonomy, battery level, alarms & faults, etc.

In 2017 the company needed a scalable cloud platform capable to manage up to 20 thousand  concurrently active smart boxes. The platform had to control the smart boxes from an administrative perspective (e.g. tracking which smart box was assigned to which laboratory, enabling users, etc.) and also track their operation, which included receiving the data streams they transmitted; submitting the data to an independent certification authority for electronic signature and timestamping; processing the data to extract and save relevant aggregated and visual information; transferring data from each completed transport to a mass storage and retrieved it when needed.

The Livebase Designer greatly helped in the definition of a unified data model integrating both administrative information (customers, box ad user registries, box settings, etc.), transport telemetry data (position, acceleration, temperature, humidity, etc.) and barcodes of transported samples.

To implement the system, different technologies have been succesfully combined in order to meet  challenging performance, scalability and availability requirements: the database and the administrative backend of the system have been entirely generated with Livebase; the end-user frontend has been coded with Angular JS; the API receveing and processing telemetry data streams has been coded in Java as containerized  micro services deployed on a Docker Swarm over an array of load-balanced servers;  the DBMS (Percona) has been deployed on a cluster of three load-balanced nodes.


Model size
Database size
Plugins
120 classes
190 tables
40 handlers
2700 LCP
2.5M records
70K LOC