2020 bzbui and bzbmenu

(written 8/16/2020)

by Brian Wilson


 

bzbui (on Windows) and bzbmenu (on Macintosh) - this is the Backblaze Personal Backup client's local laptop GUI (Graphical User Interface).  Because bzbui is all UI components, it written in different languages between Windows (C++) and Macintosh (Objective C), and shares very little code.  See this parent 2020 Backblaze Personal Backup architecture page for terminology, and some context for what this VERY SPECIFIC web page is about.

 

NOTE: this page is currently a repeat of the content on that above page.  THIS PAGE IS A PLACE HOLDER that BrianW needs to fill out even more.


 

bzbui (as seen in the Windows Task Manager) or "bzbmenu" (on the Macintosh Activity Monitor) - this is the Backblaze Personal Backup client's local laptop GUI (Graphical User Interface).  Because bzbui is all UI components, it written in different languages between Windows (C++) and Macintosh (Objective C), and shares very little code.  For a customer to bring up the bzbui GUI, in Windows they click on a "Backblaze red flame" icon in the system tray.  On the Macintosh, they pull down the "black flame" icon along the very top right of their monitor, or go to the Macintosh System Preferences and click on the "Backblaze" system pref.  bzbui (bzbmenu on the Macintosh) runs as the current user logged in, so that it has permissions to access the keyboard and mouse for input.  bzbui (bzbmenu on the Macintosh) does not run AT ALL unless the user is currently fully logged into their laptop with their local laptop's username and password (completely different than the Backblaze account username which is an email address and Backblaze account password).
 
Location on Disk Windows: C:\Program Files (x86)\Backblaze\bzbui.exe
Location on Disk Macintosh: /Library/Backblaze.bzpkg/bzbmenu.app (and a Macintosh System Pref Panel)
 
Purpose of bzbui: The primary purpose of "bzbui" is to present the customer with a local interface to the Backblaze client and local controls for things running on their local laptop.  The most essential thing that bzbui does is edit the file "bzinfo.xml" which is found at C:\ProgramData\Backblaze\bzdata\bzinfo.xml on Windows, and /Library/Backblaze.bzpkg/bzdata/bzinfo.xml on the Macintosh.  The file "bzinfo.xml" is the configuration and instructions for how all the OTHER (background) client executables behave.  For example, if a customer adds a folder to exclude using bzbui, that excluded folder path is added to bzinfo.xml, and so on.  Most everything that occurs in the GUI presented by bzbui simply edits the file bzinfo.xml on the local laptop's SSD.

The executable bzbui (bzbmenu on the Macintosh) runs as the current user logged in, so that it has access to the GUI.  It is COMPLETELY unnecessary for this to run for the backup to continue, as proven by logging out of the local laptop's account and the backup will continue just fine (better even) than when the user is signed in and bzbui/bzbmenu is running.  It is silly to disable/kill this process as it is so ridiculously light weight, but the process is completely optional and killing it will not affect the backup's progress at all.  Sometimes customers are confused by this, they feel like if they kill this process the backup should stop, but it has literally nothing to do with the backup progress other than writing out configuration files.

One of the other things bzbui (bzbmenu on the Macintosh) does is that it can "Pause" a running backup (by clicking the GUI button <Pause Backup>) and it can unpause (start the backup again) later if you click the <Backup Now> button. 
 
Another responsibility of bzbui (bzbmenu on the Macintosh) is to pop up warning and error dialogs if something is wrong, like if the backup is not progressing for some reason.  For example, if the customer's credit card is totally maxed out at the limit, and the payment to Backblaze fails, then Backblaze will both send emails (from the datacenter), and also pop up dialogs on the client to explain the customer needs to fix the billing problem.  In general the customer has 45 days to fix a billing problem, but if they refuse to pay Backblaze for more than 45 days their backup will be deleted from the Backblaze servers to free up space for other (paying) customers.  Another thing bzbui/bzbmenu will pop up a warning dialog about is if the customer has gone too long without plugging in one of their external drives that is "selected for backup" and runs some danger of losing the backup of that one drive.  Another important aspect of bzbui/bzbmenu is to monitor that bzserv is running.  The way it does this is bzserv writes out a "heartbeat" file once every 10 minutes as a kind of "dead man's switch" to prove it is running properly.  If the heartbeat file is missing (not updated) for more than 30 minutes, bzbui/bzbmenu pops up an error dialog explaining there is a VERY PROFOUND problem that must be fixed or the backup cannot continue - since bzserv is required to be resident and running so that it can launch the other backup processes.
 
The bzbui/bzbmenu process has a few other miscellaneous tasks available in its small pull down menu such as "Inherit Backup State" and displaying an "About..." dialog with the version of the client that is currently installed.

Resource Load bzbui / bzbmenu puts on customer laptop: bzbui / bzbmenu is extremely small and efficient, and ESPECIALLY when the interface is not up on the screen (which is how most customers run Backblaze 99.9999% of the time when not changing any configurations).  It is designed to use less than 0.001% of one core of CPU (bzbui is one single thread), and less than 0.001% extra load on the SSD, and it might use at most might use about 30 MBytes - 40 MBytes of RAM or less (0.5% of an 8 GByte RAM computer - one half of 1% of the customer RAM).  It should be one of the smallest RAM uses of any process on a customer's laptop.
 
 

All done.

Return to Random Stufff

Return to Ski-Epic home page.