Difference between revisions of "Template talk:Server Side Software Architecture"

From IVS Wiki
Jump to: navigation, search
Line 2: Line 2:
  
 
<h1>Server Side Software Architecture</h1>
 
<h1>Server Side Software Architecture</h1>
 
+
Our server-side software is built on a standard <b>LEMP stack</b> consisting of:
{{Aside | content = Our software is built on the standard <b>LEMP</b> <em>(Linux, Nginx, MySQL, and PHP)</em> architecture.}}
+
*<strong>Linux</strong>
 
+
*<strong>Nginx</strong>
 
+
*<strong>MySQL</strong>
The software has been designed to work on the latest LTS version of Ubuntu Linux <em>(Server Edition)</em>.  There are <b>3 main components</b> to the software application:
+
*<strong>PHP</strong>
 
 
 
 
#<b>Web Server</b>: Serves the PHP-based application and user interface via Nginx.
 
#<b>Databas</b>e: Stores all unique, customer-specific information.
 
#<b>Media Server</b>: Manages communication with cameras and video streams delivered to client PCs, and handles recording and clip creation.
 
  
  
 +
{{Aside | content = The application is designed to run on the latest Ubuntu Linux LTS <em>(Server Edition)</em>.}}
  
 
{{Top of Page}}
 
{{Top of Page}}
 
{{hr}}
 
{{hr}}
 +
 +
{{Manual lvl 2 | title = Core Application Components | content =
  
  
For networking purposes, there are 2 main components to the software application:
+
<b>Web Server</b>
{{hr}}
+
*Serves the PHP-based application and user interface
<dl>
+
*Powered by the Nginx web server
<dt>Application Server:</dt>
 
<dd>
 
This makes up the bulk of the application and consists of 3 primary components:
 
<ol>
 
<li><strong>PHP</strong> web pages being served up by the Nginx web server</li>
 
<li><strong>MySQL</strong> Database</li>
 
<li><strong>NodeJS</strong> messaging and control service</li>
 
</ol></dd>
 
  
 
{{hr - 2}}
 
{{hr - 2}}
  
<dt>Media Server:</dt>  
+
<b>Database</b>
<dd>This portion of the application handles <u>all the communication with the cameras and video streams</u> being served out to the client PCs.  It also handles all the recording and clip creation.</dd>
+
*Stores all unique, customer-specific configuration and application data
</dl>
+
*Implemented using MySQL
  
{{Aside - Helpful | content = From a physical or virtual server perspective, the <b>entire server side software stack can be run on a single server</b>.}}
+
{{hr - 2}}
  
{{hr - 2}}
+
<b>Media Server</b>
 +
*Manages communication with cameras
 +
*Handles video streaming to client PCs
 +
*Responsible for recording, storage, and clip creation
 +
}}
  
For applications requiring <b>more than 50 cameras</b> or consisting of different departments the software can be broken out and additional Media Servers can be added.
 
  
<center>{{img - no_click | file = VALT Server Structure.png}}</center>
+
{{Top of Page}}
 +
{{hr}}
  
 +
{{Manual lvl 2 | title = Logical Server Architecture | content =
 +
From a networking and service perspective, the application is divided into two main server roles:
 +
<b>Application Server:</b>
 +
The Application Server hosts the core application logic and includes:
 +
*PHP web pages served via Nginx
 +
*MySQL database services
 +
*Node.js messaging and control service
  
 +
{{hr - 2}}
  
 +
<b>Media Server:</b>
 +
The Media Server is responsible for all video-related operations, including:
 +
*Camera communication
 +
*Video stream distribution to clients
 +
*Recording management and clip generation
 +
}}
  
  
 +
{{Top of Page}}
 +
{{hr}}
  
 +
{{Manual lvl 2 | title = Deployment Models | content =
 +
<center>{{img - no_click | file = VALT Server Structure.png}}</center>
 +
}}
  
<h2>Single Server</h2>
+
{{Manual lvl 3 | title = Single Server | content =
 +
The entire server-side software stack can be deployed on a single physical or virtual server. This configuration is suitable for smaller installations and environments with lower camera counts.
 +
}}
  
From a physical or virtual server perspective the entire server side software stack can be run on a single server.
+
{{hr - 2}}
  
 +
{{Manual lvl 3 | title = Multi-Server | content =
 +
For larger deployments—such as those exceeding 50 cameras or spanning multiple departments—the system supports a distributed architecture using multiple Media Servers.
  
{{Top of Page}}
 
{{hr}}
 
  
<h2>Multiple Servers</h2>
+
In this model:
 +
*One Application Server hosts the core application services
 +
*One or more dedicated Media Servers handle video processing and storage
 +
*Media Servers can be added incrementally to scale performance and capacity
  
For applications that necessitate the use of over 50 cameras or encompass multiple departments, our software provides the option to distribute its functionality across multiple <b>"Media Servers"</b>. These dedicated servers are specifically designed to handle the crucial tasks of processing the video stream component of the VALT application and efficiently storing the associated video files. This multi-server architecture offers exceptional flexibility and scalability, accommodating diverse and expanding needs.
+
{{Aside - Helpful | content = This architecture provides flexibility, scalability, and efficient handling of high video workloads.}}
 +
}}
  
  
 
{{Top of Page}}
 
{{Top of Page}}
 
}}
 
}}

Revision as of 13:49, 9 February 2026

Server Side Software Architecture

Our server-side software is built on a standard LEMP stack consisting of:

  • Linux
  • Nginx
  • MySQL
  • PHP


The application is designed to run on the latest Ubuntu Linux LTS (Server Edition).

⇧ Back to Top


Core Application Components

Web Server

  • Serves the PHP-based application and user interface
  • Powered by the Nginx web server

Database

  • Stores all unique, customer-specific configuration and application data
  • Implemented using MySQL

Media Server

  • Manages communication with cameras
  • Handles video streaming to client PCs
  • Responsible for recording, storage, and clip creation


⇧ Back to Top


Logical Server Architecture

From a networking and service perspective, the application is divided into two main server roles: Application Server: The Application Server hosts the core application logic and includes:

  • PHP web pages served via Nginx
  • MySQL database services
  • Node.js messaging and control service

Media Server: The Media Server is responsible for all video-related operations, including:

  • Camera communication
  • Video stream distribution to clients
  • Recording management and clip generation


⇧ Back to Top


Deployment Models

VALT Server Structure.png

Single Server

The entire server-side software stack can be deployed on a single physical or virtual server. This configuration is suitable for smaller installations and environments with lower camera counts.


Multi-Server

For larger deployments—such as those exceeding 50 cameras or spanning multiple departments—the system supports a distributed architecture using multiple Media Servers.


In this model:

  • One Application Server hosts the core application services
  • One or more dedicated Media Servers handle video processing and storage
  • Media Servers can be added incrementally to scale performance and capacity
🕮
This architecture provides flexibility, scalability, and efficient handling of high video workloads.


⇧ Back to Top