Software Application Architecture


DeXgine applications are 3-tier software applications.

DeXgine - Software Development Platform - logo

The 3-tier architecture is a widely used software design pattern that separates an application into three distinct layers:

DeXgine - architecture

Presentation Tier (User Interface)

This is the topmost layer where users interact with the application. It's responsible for displaying information and collecting user input.

DeXgine provides 2 options:

  • Thin desktop client
    • Developed using C++. Chosen for its performance and control.
    • Provides an ultra fast connection to the Application Tier
    • Auto-update mechanism. Any update of the software application is done at the Application Tier level.
    • Windows OS only
    • System Requirements: 20MB storage for the desktop client; Windows 10 or more recent.
  • Web browser app
    • Developed using low level javascript. Having in mind performance, stability and independence, no external libraries are used.
    • Any update of the software application is done at the Application Tier level.
    • Connection to the Application Tier is done through web server tunneling.
    • Supports mobile access through responsive design (can be used on mobile devices).
    • OS independent
    • System Requirements: none.

Application Tier (Logic Tier)

This is the middle layer that processes data and implements business logic. It receives requests from the presentation tier, performs operations, and interacts with the data tier.

  • Developed in C++ for its performance and control over system resources.
  • Operating systems: Windows or Windows Server and Linux (accepted distributions TBD).
  • System Requirements: 20MB storage for the application server.

Data Tier

This is the bottom layer that stores and manages the application's data. It handles data retrieval, storage, and updates.

  • Database
    • DeXgine is designed to be compatible with a wide range of RDBMSs. While adherence to SQL 92 is a goal, specific database adaptations may be required.
    • RDBS in production: Microsoft SQL Server, MySQL. Tested with: Oracle DB and PostgreSQL.
    • For single user desktop apps, SQLite can be used.
    • System Requirements: according to the requirements of the RDBS used. This is the system that should be optimized for fast response.
  • File Servers
    • For speed and reliability, DeXgine stores the files in the file system and not into the database.
    • Multiple file servers can be used. This allows for optimization on files storage and distribution. Options:
      • Same machine as the Application Tier.
      • Dedicated machine. The file server software must be installed.
      • Storage: mapped directory at the Application Tier level.

Communication protocols

  • Between desktop client and application server: proprietary over http (encrypted with a combination of symmetric algorithms)
  • Between browser client and application server: https

Benefits of 3-Tier Architecture

  • Modularity: Each tier can be developed, updated, and scaled independently.
  • Maintainability: Changes in one tier don't necessarily affect others, simplifying maintenance.
  • Scalability: Individual tiers can be scaled based on their specific needs.
  • Reusability: Components in each tier can be reused in other applications.
  • Security: Sensitive data can be isolated in the data tier, enhancing security.

How it Works

  • The user interacts with the presentation tier.
  • The presentation tier sends a request to the application tier.
  • The application tier processes the request and may interact with the data tier to retrieve or update data.
  • The application tier sends a response back to the presentation tier.
  • The presentation tier displays the results to the user