Web Application Architecture

Components

When refering to Web Application Components, any of the two components stated below may represent them:

UI Components

These components have no impact on the operation of the web application, they are simply part of the interface layout of the web application. Some examples of the would be a dashboard, settings, satistics, etc.

Structural Components

The two major structural componets are the client-side and server-side. They will be outlined in the next sections.

Client Component

The Client component is very similar to the UI component however, the client component interacts with the end-user and represents the functionality of the web application even though it can be seen as the UI. This component is developed in CSS, HTML and JS - these are all languages primarily used for formating and appearances purposes.

Server Component

The server component can be split into two main parts, app logic and database. As implied by the name, app logic is the part that controls all the logical operations of the web application acting as the control center. The database part of the server component is the storage of the web application, stroing all persistent data gathered from the application. Languages that are typically related to the server component include Java, Python, NodeJS and a four others - there saveral programming laungages that can be used either individual or combined for the server component.

Web App Architecture

Types of Models

  1. One Web Server, One Database

  2. This model represents the simplest yet least dependable web application component structure. It relies on a solitary server and a lone database, causing the entire web app built on it to crash if the server experiences any issues. As a result, its reliability is limited.The configuration of a single web server and one database is not commonly employed for actual web applications. Instead, it finds its primary use in running experimental projects and facilitating the grasp of fundamental web application principles.

  3. Multiple Web Servers, One Database

  4. This web application component model operates on the premise that the web server doesn't retain data. Instead, when the web server receives input from a user, it processes the data and transmits it to an external database. This setup, often termed stateless architecture, segregates data management from the server.To ensure robustness, this model necessitates a minimum of two web servers. This redundancy mitigates the risk of failure. If one server becomes inaccessible, the other seamlessly assumes control. Incoming requests automatically reroute to the operational server, ensuring uninterrupted execution of the web app. Consequently, reliability surpasses that of the single server model with an integrated database. However, it's important to note that if the database malfunctions, the web app's functionality will also be affected.

  5. Multiple Web Server, Multiple Databses

  6. This web application component model stands out for its exceptional efficiency, as it eliminates single points of failure in both web servers and databases. It offers two approaches: one involves duplicating identical data across all employed databases, and the other evenly distributes data among them.In the former approach, usually no more than two databases are required, ensuring data consistency. In the latter approach, however, there's a risk of data unavailability if a database crashes. Regardless of the approach, both utilize Database Management System (DBMS) normalization techniques. For larger scales, involving more than five web servers, databases, or a combination of both, the inclusion of load balancers is recommended. These devices optimize resource allocation and distribution, enhancing overall system performance.