Software Architecture Components

The key components of the CLASS software architecture are:

  • The data analytics platform, providing a unified development environment supporting task-based and map-reduce analytics engines.
  • The computation distribution layer handling the scheduling and distribution of the application tasks over the compute continuum, from edge to cloud, while providing real-time guarantees.
  • The edge analytics platform, exploiting the NVIDIA GPU-Accelerated libraries to run object detection, tracking and deduplication over live video streams.
  • The cloud computing platform, facilitating the deployment and lifecycle management of containerized applications.

See more details on each component in the tabs below and discover the full architecture in the dedicated CLASS github channel.

The CLASS data analytics platform provides the necessary interfaces for the application programmers to develop complex big-data analytics workflows, for real-time execution across the compute continuum. The key to this novel approach is the use of an open-source serverless platform based on Apache OpenWhisk. The platform allows multiple types of big-data analytics back-ends to integrate in a uniform mesh where workloads and components can interact, be invoked or respondto events.

In CLASS, support has been provided for the following data analytics back-ends:

-    The Lithops framework, which is an open-source lightweight implementation of Map/Reduce programming model over the Apache Openwhisk serverless platform, aiming to massively scale Python applications and fully support concurrent execution. In CLASS, Lithops has been used to accelerate the computation of the trajectory prediction and collision detection analytics methods.

-    The COMP Superscalar (COMPSs) programming model. The COMPSs task-based programming model enables programmers to develop distributed applications following the sequential programming paradigm and using standard languages (e.g., Python, Java, C/C++), while abstracting applications from the underlying infrastructure. In CLASS, the COMPSs programming model has been employed to enable the distribution and concurrent execution of the data analytics workflow for the collision detection and air pollution use cases.

-    A Deep Neural Network (DNN) - a suited and personalised version of YOLO, using the tkDNN library that exploits the capabilities of NVIDIA boards to obtain the best inference performance.

Another contribution of CLASS has been the delivery of an EXtended PREdictability ServerlesS (EXPRESS) prototype as part of the data analytics platform. Within CLASS, EXPRESS has been completely redesigned as a portable solution for predictable execution of serverless functions on top of OpenWhisk.

The deployment and execution of the complex data analytics workflows across the compute continuum are handled by COMP Superscalar (COMPSs). In addition to the programming model, COMPSs provides a runtime system that exploits the inherent parallelism of applications at execution time.

COMPSs handles the distribution of the application tasks over the compute continuum, from edge to cloud, while honoring the required data dependencies and handling any required data transfers in a way transparent to the developer. Furthermore, the COMPSs scheduler aims to minimise the end-to-end response time of the workflow (thus increasing velocity) and provides an upper bound for the end-to-end execution time, thus offering a guarantee of the expected real-time performance.

Data management is handled by dataClay, a distributed data store that enables the execution of code next to the data. The specific role of dataClay in the CLASS architecture is to: i) ensure the availability of data across the compute continuum, wherever and whenever required by the data analytics, and ii) to create and maintain and periodically clean the Data Knowledge Base (DKB), which contains historical data generated by the analytics.

The cloud analytics platform provides the cloud data analytics service management and scalability features. At the cloud level, CLASS employs Rotterdam, a Container-as-a-Service (CaaS) façade, which facilitates the deployment and lifecycle management of containerized applications and cloud data analytics workloads on container orchestration platforms through API calls, abstracting all the cloud infrastructure details away from developers.

Rotterdam includes the SLALite application, a lightweight implementation of a Service Level Agreement (SLA) system, responsible for enforcing Quality of Service (QoS) parameters, including real-time. Furthermore, a new service called SLA Predictor has been added, enabling the system to take informed decision to anticipate situations that may lead to performance degradation and thus scaling resources accordingly.

The edge analytics platform provides the software tools to execute real-time data-analytics methods in the edge. The CUDA model and cuDNN library have been employed for the object detection and tracking applications. The CUDA parallel programming model is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements, for the development and execution of compute kernels.

Within CLASS, CUDA has been exploited to obtain the desired compute capability at the edge. On top of these components, CLASS employs the NVIDIA TensorRT platform that includes a deep learning inference optimizer and runtime that delivers low latency and high-throughput for deep learning inference applications. The cross-platform OpenCV library supporting a CUDA-based GPU interface is also used for the implementation of the object detection analytics methods.

The CLASS software architecture has been used to develop, deploy and execute three smart mobility use-cases, which include the following data-analytics methods:

–    Object detection, based on a convolutional deep neural network to determine the type of objects appearing in a video stream.
–    Object tracking, based on Kalman filters to compute the dynamics of object detected, including the trajectory, orientation, speed and acceleration.
–    Object deduplication, to handle objects simultaneously detected by multiple sources.
–    Trajectory prediction of detected objects aiming to provide an estimation of the most likely future positions of vehicles or pedestrians based on the history of their tracked positions.
–    Data aggregation, which is a fundamental function, responsible for the generation and maintenance of the Data Knowledge Base (DKB).
–    Collision detection, which detects potential collisions between road users based on their predicted trajectory, and generates alerts in real-time.
–    Pollution emission estimation, to provide a calculation of the pollutant particles emitted by the detected vehicles.

Find more details on the CLASS applications on our Use Case page.