Architecture Guide

Introduction

This document provides illustrations and descriptions of the communication and data flow between the main components in a distributed system. It showcases various scenarios, accompanied by illustrations, descriptions of actions, and information about port numbers, protocols, and bandwidth usage. The illustrations aim to simplify and focus on the general data flow between system components, which may exclude less significant flows to maintain clarity and reduce complexity.

Target Audience and Purpose

The primary audience for this document includes system integrators and IT administrators who have limited experience and knowledge of VMS solutions. It is intended for those involved in selecting, deploying, administrating, maintaining, and expanding a VMS. The document's purpose is to provide insight into the benefits and user-friendliness of VEZHA as a VMS, introducing the system components and architecture.

After reading this document, the reader should be able to:

  • Understand the overall system architecture
  • Identify the main system components and their functions
  • Obtain guidelines for basic system design
The intended readers should have general experience in IT administration.

Overall System Architecture

The system architecture of VEZHA encompasses a diverse range of components responsible for information exchange, processing, and security.

The analytic server incorporates all active analytics plugins installed by the user, such as License Plate Recognition (LPR), Face Recognition, Hard Hat Detection, and more. Each type of analytics may have specific requirements for operating systems and GPUs, which are detailed in the specifications provided for each plugin.

The primary components of the VEZHA System architecture include:

NameDescription
Middleware ServerThe middleware server consists of two main parts: the Front and the API.
FrontThe primary function of the Front is to visually display process information.
APIThe primary function of the API is data processing.
DatabaseThe Middleware server can write the results of its processing to a database.
MQMessage Queue (MQ) is an architecture and middleware that collects, stores, and routes messages between components.
Analytic ServerThe Analytic Server is responsible for the processing of LPR, Face Recognition, and other analytics.
StorageAll processed images are stored in the Storage component.
Video Stream

The VEZHA system utilizes RTSP video streams, which are processed on the Analytic Server.

Video Streams

The VEZHA system primarily utilizes RTSP video streams, and it also supports video streams using ONVIF.

The following video streaming requirements apply to all analytics processes:

Video Streaming RequirementsValue
ConnectionsRTSP
CodecsH.264/H.265/MJPEG/MPEG4
Frame Rate15+
Resolutionminimum: 720p, recommended: 1080p
CDD/CMOS1 / 1.8 or higher

Middleware Server

The Middleware server consists of two main components: the Middleware core and the Middleware.

The Middleware core is responsible for processing information received from the Message Queue (MQ). On the other hand, the Middleware component is responsible for recording data into a database.

Front (Middleware)

The Front or Middleware component is responsible for recording metadata into a database. For instance, in the case of the LPR plugin, the following information is recorded into the database:

MetaDescription
plate_numbernumber
boxcoordinates of the number on the frame
plate_imagethe path to the picture of the number on the store
vehicle_imagepath to the car picture
frame_imagepath to the full picture of the frame
stream_idcamera
make_model_idmake and model
color_idcolor
directiondirection of movement
timestamptime

API (Middleware Core)

The Middleware core is utilized for processing information received from the MQ. All data from the MQ is encrypted using AES 128 with a dynamic key.

Furthermore, all information transmitted between different servers and the API (Middleware core) is encrypted. The MQ receives information that is already encrypted.

NumberProcessPortProtocol
1Middleware (front)2001http
2Middleware core (API)2080tcp/ip, http
3Middleware FTP server2021ftp

Database

The database receives information from the Middleware and records meta information.

Examples of License Plate Recognition plugin data:

MetaDescription
plate_numbernumber
boxcoordinates of the number on the frame
plate_imagethe path to the picture of the number on the store
vehicle_imagepath to the car picture
frame_imagepath to the full picture of the frame
stream_idcamera
make_model_idmake and model
color_idcolor
directiondirection of movement
timestamptime

MQ

MQ is an architecture and middleware that performs several functions, including collecting, storing, and routing (distributing) messages between various components.

In the context of security, it's important to note that all information transmitted through the MQ is encrypted using AES 128 encryption with a dynamic key. This encryption ensures that the messages exchanged between components remain secure and protected from unauthorized access or interception.

NumberProcessPortProtocol
1MQ4222tcp

Analytic Server

The Analytic Server is a dedicated server where all the working analytics plugins are installed. It serves as the central processing unit for executing the analytics tasks.

To obtain the necessary guides and a list of available installations, it is recommended to request distributor access. Distributor access allows you to receive comprehensive documentation and information about the installation process, configuration, and usage of the analytics plugins. This access ensures that you have the required resources and guidance for effectively setting up and utilizing the analytics functionalities within the system.

Storage

The Storage component of the system contains all images in JPEG format captured by the various analytics servers. It serves as a centralized repository for storing and managing the image data generated by the analytics processes. By storing the images in JPEG format, the system optimizes the balance between image quality and file size, making it efficient for storage and retrieval purposes.