1. Home
  2. Docs
  3. How It Works
  4. Application Architecture

Application Architecture

SQLBackupAndFTP is developed entirely on the .NET Framework platform and consists of two components: the configuration application and the Windows service.

The configuration application

The application serves solely for creating and configuring jobs. Closing the application will not interrupt job execution, as the SQLBackupAndFTP (Database backup) Windows service is responsible for executing jobs.

SQLBackupAndFTP (Database backup) Windows service

The main component of SQLBackupAndFTP is the Windows service. This service is responsible for performing jobs.

The SQLBackupAndFTP (Database backup) Windows service starts along with the launch of the system and operates in the background, regardless of Windows user sessions.

By default, this service runs under the local system user account. You can change this in the service settings.

The user specified in these settings must have read and write access to the following directory “C:\ProgramData\Pranas.NET\SQLBackupAndFTP,” or the application will not start.

The operation of the SQLBackupAndFTP (Database backup) Windows service in the background mode under the local system user account imposes some limitations, which are sometimes not obvious:

  • The application does not have access to virtual disks.
  • The application typically does not have access to network directories (the local system user does not have the necessary permissions).

In addition to the main service, there is also an additional service called SQLBackupAndFTP (Watchdog), which serves as an auxiliary. Its task is to restart the main service in case of failure or to install updates in case of failure. This service is automatically disabled if the main service is operating normally.

Where does SQLBackupAndFTP store its settings?

The application settings are stored in the following directory “C:\ProgramData\Pranas.NET\SQLBackupAndFTP.” Sensitive information, such as passwords and access keys, are stored in SQLite databases within the “Db” subdirectory, encrypted with a 256-bit symmetric key.