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
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:
Name | Description |
---|---|
Middleware Server | The middleware server consists of two main parts: the Front and the API. |
Front | The primary function of the Front is to visually display process information. |
API | The primary function of the API is data processing. |
Database | The Middleware server can write the results of its processing to a database. |
MQ | Message Queue (MQ) is an architecture and middleware that collects, stores, and routes messages between components. |
Analytic Server | The Analytic Server is responsible for the processing of LPR, Face Recognition, and other analytics. |
Storage | All 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 Requirements | Value |
---|---|
Connections | RTSP |
Codecs | H.264/H.265/MJPEG/MPEG4 |
Frame Rate | 15+ |
Resolution | minimum: 720p, recommended: 1080p |
CDD/CMOS | 1 / 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:
Meta | Description |
---|---|
plate_number | number |
box | coordinates of the number on the frame |
plate_image | the path to the picture of the number on the store |
vehicle_image | path to the car picture |
frame_image | path to the full picture of the frame |
stream_id | camera |
make_model_id | make and model |
color_id | color |
direction | direction of movement |
timestamp | time |
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.
Number | Process | Port | Protocol |
---|---|---|---|
1 | Middleware (front) | 2001 | http |
2 | Middleware core (API) | 2080 | tcp/ip, http |
3 | Middleware FTP server | 2021 | ftp |
Database
The database receives information from the Middleware and records meta information.
Examples of License Plate Recognition plugin data:
Meta | Description |
---|---|
plate_number | number |
box | coordinates of the number on the frame |
plate_image | the path to the picture of the number on the store |
vehicle_image | path to the car picture |
frame_image | path to the full picture of the frame |
stream_id | camera |
make_model_id | make and model |
color_id | color |
direction | direction of movement |
timestamp | time |
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.
Number | Process | Port | Protocol |
---|---|---|---|
1 | MQ | 4222 | tcp |
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.