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.