Plug-in File Systems

To understand how the program works, it is important to get the concept of plug-in file systems. Each plug-in creates a virtual file system that allows working with its data as with “common” files and folders:

  • Data Source plug-ins map computer information to files and folders, and translate all file system operations (reading folder contents, creating files, and other) to plug-in-specific context. For example, creating a new file in a file system of the MySQL plug-in makes it connect to the MySQL database and use a CREATE TABLE statement.
  • Storage plug-ins provide one-to-one access to the respective file systems. For example, reading files of the FTP plug-in is the same as downloading them with any other FTP client.

The main idea of plug-in file systems is to provide the program’s core with “abstract” files and folders that support common operations, while hiding their implementation.

Attributes

Files and folders in plug-in file systems have attributes:

  • File size
  • Creation time
  • Modification time
  • (and other)

Generally, file systems are not obliged to support all of them. For example, there is no exact way to determine size of a database table, so the respective files will have zero size. In the practice, this doesn’t have much effect, except for some inconvenience when calculating total size of backup.

Configurations

Some plug-ins are configurable. For example, to work with a remote FTP folder, you need to specify server address and authorization parameters. To do it, you need to create a Configuration for the FTP plug-in.

File system of the FTP plug-in

In terms of plug-in file system, each configuration is a top-level folder. Expanding this folder makes the plug-in read settings from the configuration file and initiate connection to the respective data source (e.g. FTP server, MySQL database, and other).

You can learn more about configurations in the next chapter, Plug-in Configurations.

In this section:

  • Technologies Behind the Software

Who uses our backup software?