Architecture

Bacula Enterprise Exchange EWS Plugin is a Bacula File Daemon plugin built over the Exchange EWS (Exchange Web Services) API to perform all of its operations to retrieve from and feed to the target Exchange service. The plugin runs a Java Daemon which uses a custom extension of the EWS Managed API SDK originally built by Microsoft.

All the information is obtained using secure and encrypted HTTPS queries to Exchange Server from the File Daemon (and through the mentioned Java Daemon), where the plugin is installed. All the requests are performed over the following endpoint: https://exchange.hostname/EWS/EWS/Exchange.asmx

To get more information about EWS, visit: https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/start-using-web-services-in-exchange

The metadata of every backed up item is stored in Bacula using JSON format. If MIME option is enabled, the information is also stored with that format (RFC 2077 for emails). Any attachment associated to a given item is downloaded and stored as it is. The download process is done locally to the host, and then sent to the Bacula Storage Daemon.

Backup and restore processes use different parallelization techniques in order to maximize performance, and overcome latency times when doing each needed request to EWS. Parallelization of several backup jobs is also supported.

Below, there is a simplified vision of the architecture of this plugin within a generic Bacula Enterprise deployment:

Exchange EWS Plugin Architecture

Exchange EWS Plugin Architecture

Go back to the Exchange EWS plugin main page.