Software Integration

The different software components considered in CLASS have been integrated to offer a unified software development ecosystem. The figure below depicts the components and interfaces that form the CLASS software architecture. The software components can be found in the dedicated CLASS github channel.

The distribution of data analytics workflows is handled by the COMPSs framework, integrated with dataClay for the distributed management of data. CLASS has built upon the COMPSs framework (release 2.7), adding an advanced workflow scheduler for real-time end-to-end response guarantees and a connecting Application Programming Interface (API) with Rotterdam CaaS, enabling the dynamic scaling of COMPSs workers at the cloud. For convenience, an image with the integrated components has been made available here.

For the creation of the common Data Knowledge Base (DKB), a dataClay model has been developed. Furthermore, the necessary API calls have been developed, to enable the fast access of information by specific data analytics methods (i.e., by the trajectory prediction and collision detection).

For the real-time CLASS use cases for collision detection and air pollution estimation (links to subpages), the COMPSs programming model has been employed to encapsulate data analytics methods within COMPSs tasks, able to be executed in a distributed way across the compute continuum (and especially at the edge side due to real-time constraints). The integrated COMPSs application can be found here.

Specifically, this application integrates data analytics methods for:
•    object detection
•    tracking
•    deduplication
•    pollution estimation

At the cloud-side, the trajectory prediction and collision detection methods, employed by the collision detection application, have been implemented in Python, and wrapped within Lithops functions that enable their execution as serverless actions over an Openwhisk cluster, supporting concurrency. Both functions retrieve the necessary information by the DKB through dataClay API calls, whereas they also update the DKB entries with their output.