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

From IVS Wiki
Jump to: navigation, search
 
(5 intermediate revisions by the same user not shown)
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:
 +
*<strong>Linux</strong>
 +
{{Float | content = {{Aside | style = max-width: 400px | content = The application is designed to run on the latest Ubuntu Linux LTS <em>(Server Edition)</em>.}} }}
 +
*<strong>Nginx</strong>
 +
*<strong>MySQL</strong>
 +
*<strong>PHP</strong>
  
{{Aside | content = Our software is built on the standard <b>LEMP</b> <em>(Linux, Nginx, MySQL, and PHP)</em> architecture.}}
 
  
 +
{{Top of Page}}
 +
{{hr}}
  
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:
+
{{Manual lvl 2 | title = Core Application Components | content =
  
  
#<b>Web Server</b>: Serves the PHP-based application and user interface via Nginx.
+
<b>Web Server</b>
#<b>Databas</b>e: Stores all unique, customer-specific information.
+
*Serves the PHP-based application and user interface
#<b>Media Server</b>: Manages communication with cameras and video streams delivered to client PCs, and handles recording and clip creation.
+
*Powered by the Nginx web server
  
 +
{{hr - 2}}
  
 +
<b>Database</b>
 +
*Stores all unique, customer-specific configuration and application data
 +
*Implemented using MySQL
 +
 +
{{hr - 2}}
  
{{Top of Page}}
+
<b>Media Server</b>
{{hr}}
+
*Manages communication with cameras
 +
*Handles video streaming to client PCs
 +
*Responsible for recording, storage, and clip creation
 +
}}
  
  
For networking purposes, there are 2 main components to the software application:
+
{{Top of Page}}
 
{{hr}}
 
{{hr}}
<dl>
 
<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}}
+
{{Manual lvl 2 | title = Logical Server Architecture | content =
 +
The application is divided into two main server roles:
  
<dt>Media Server:</dt>
 
<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>
 
</dl>
 
  
{{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>.}}
+
<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}}
 
{{hr - 2}}
  
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.
+
<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
 +
}}
  
<center>{{img - no_click | file = VALT Server Structure.png}}</center>
 
  
 +
{{Top of Page}}
 +
{{hr}}
  
 +
{{Manual lvl 2 | title = Deployment Models | content = }}
  
 +
{{Manual lvl 3 | title = Single Server | content =
 +
The entire server-side software stack can be deployed on a single [[Servers | physical]] or [[VM - Main Page | VM]]. This configuration is suitable for smaller installations and environments with lower camera counts.
 +
}}
  
 +
{{hr - 2}}
  
 +
{{Manual lvl 3 | title = Multi-Server | content =
 +
For larger deployments—<em>such as those <b>exceeding 50 cameras</b> or spanning multiple departments</em>—the system supports a distributed architecture using multiple Media Servers.
  
  
<h2>Single Server</h2>
+
<div style="font-weight: bold; font-size: 1.1em">In this model:</div>
 +
*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
  
From a physical or virtual server perspective the entire server side software stack can be run on a single server.
 
  
 +
{{Aside - Helpful | content = This architecture provides flexibility, scalability, and efficient handling of high video workloads.}}
 +
}}
  
{{Top of Page}}
+
<center>{{img - no_click | file = VALT Server Structure.png}}</center>
{{hr}}
 
 
 
<h2>Multiple Servers</h2>
 
 
 
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.
 
 
 
  
 
{{Top of Page}}
 
{{Top of Page}}
 
}}
 
}}

Latest revision as of 14:16, 9 February 2026

Server Side Software Architecture

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

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


⇧ 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

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

Single Server

The entire server-side software stack can be deployed on a single physical or VM. 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.
VALT Server Structure.png
⇧ Back to Top