Skip to main content

Technical description

The architecture and processes of the cloud application metering solution for both Snow Atlas and Snow License Manager are described here.

Snow Atlas

Cloud_Application_Metering.jpg

The figure illustrates the cloud application metering architecture and the interactions between the components. The items in the figure correspond with the steps in the Cloud application metering process description. The table below gives a summary description of the tasks executed by each component.

Component

Description

Data Intelligence Service (DIS)

  • Operated by Snow Software. Creates the cloud application definitions and ruleset.

Snow Atlas

  • Provides the user with an interface to view and act on the cloud application metering data.

  • Processes and stores new and updated cloud application definitions and ruleset provided by DIS.

  • Distributes new and updated definitions and ruleset to the agents via Snow Extenders.

  • Collects, processes, and stores the cloud application usage data reported by the agents.

Snow Extender

  • Transfers data between Snow Atlas and the Snow Inventory Agents.

  • Maintains a local cache for the cloud application definitions and ruleset.

Snow Inventory Agent for Windows and macOS

  • Updates the local cloud application ruleset database by retrieving it from the Snow Extender.

  • Enables deployment of the cloud application metering browser extensions, according to the agent configuration (exceptions to this deployment method exist for some browsers).

  • Matches the data produced by the browser extensions with its local ruleset database.

  • Consolidates the cloud application usage data with the other inventory data and sends the results to the Snow Extender.

Cloud application metering browser extension

  • Runs in the context of the browser, records the web pages visited by the user, and stores the data locally together with the user login name and the date stamp.

Cloud application metering process

The steps of the cloud application metering process for Snow Atlas is described here. Some steps are described in more detail in separate sections.

  1. The Data Intelligence Service (DIS) creates cloud application definitions and ruleset that the Snow Inventory Agent uses to recognize the cloud applications run on the browsers. The definitions and ruleset are continuously developed and updated by DIS.

  2. The cloud application definitions and ruleset are transferred to Snow Atlas.

  3. The agent queries the Snow Extender for pending updates. When updated cloud application definitions and ruleset are available, they are downloaded and stored in the agent directory in one or both of the files named webmetering.rules and webmetering.crules. The Snow Extender caches the updated definitions and ruleset to reduce the traffic between the local network and Snow Atlas.

  4. The agent installs the browser extensions according to the agent configuration. For a detailed description, see Snow Inventory Agent installs browser extensions.

    Note that the Apple Safari browser extension is not installed by the agent. For more information, see Install Apple Safari browser extension.

  5. The browser extensions on the computer gather cloud application metering data which is stored locally on the computer. For a detailed description, see Browser extension gathers metering data.

  6. The agent collects the cloud application metering data. For a detailed description, see Snow Inventory Agent collects metering data.

  7. During the regular agent scan process, the agent consolidates the cloud application metering data with the other inventory data and sends it as a .snowpack file to Snow Atlas via the Snow Extender.

  8. The cloud application metering data is processed in Snow Atlas and made available in SAM Core and SaaS.

Snow License Manager

Cloud_Application_Metering_SLM.jpg

The picture illustrates the cloud application metering architecture for Snow License Manager and the interactions between the components. The figures in the picture correspond with the steps in the Cloud application metering process description. The table below gives a summary description of the processes and tasks executed by each component.

Component

Description

Data Intelligence Service (DIS)

  • Operated by Snow Software. Creates the cloud application definitions and ruleset.

Snow Update Service (SUS)

  • Provides the updated cloud application definitions and ruleset generated by the DIS service to the Snow Inventory Server and the Snow License Manager servers in the customer’s implementation.

Snow Inventory

  • Processes and stores new and updated cloud application definitions and ruleset provided by SUS.

  • Distributes new and updated definitions and ruleset to the agents.

  • Collects, processes, and stores the cloud application usage data reported by the agents.

  • The cloud application usage information is transferred to Snow License Manager during the Data Update Job.

Snow Inventory Agent for Windows and macOS

  • Updates the local cloud application ruleset database by retrieving it from Snow Inventory Server.

  • Enables deployment of the cloud application metering browser extensions, according to the agent configuration (exceptions to this deployment method exists for some browsers).

  • Matches the data produced by the browser extensions with its local ruleset database.

  • Consolidates the cloud application usage data with the other inventory data and sends the results to the Snow Inventory Server.

Cloud application metering browser extension

  • Runs in the context of the browser, records the web pages visited by the user, and stores the data locally together with the user login name and the date stamp.

Snow License Manager

  • Provides the user with an interface to view and act on the cloud application metering data.

Cloud application metering process

The steps of the cloud application metering process for Snow License Manager is described here. Some steps are described in more detail in separate sections.

  1. The Data Intelligence Service (DIS) creates the cloud application definitions and ruleset that the Snow Inventory Agent uses to recognize the cloud applications run on the browsers. The definitions and ruleset are continuously developed and updated by DIS.

  2. The Snow Update Service (SUS) downloads new and updated data from DIS.

  3. SUS distributes updates of the cloud application definitions and ruleset to the Snow Inventory Server and Snow License Manager.

  4. The Snow Inventory Server receives the updated cloud application definitions and ruleset and processes it. For a detailed description, see Snow Inventory Server processes data.

  5. The Snow Inventory Server makes the cloud application ruleset available to the Snow Inventory Agents for which cloud application metering has been enabled. See Enable the cloud application metering data flow for a description of how to enable the data flow.

  6. The agent queries the Snow Inventory Server for pending updates. If the cloud application metering flow has been enabled for the site the computer belongs to, the update task will include the cloud application ruleset, and the agent will download it and store it in the agent directory in one or both of the files named webmetering.rules and webmetering.crules.

  7. The agent installs the browser extensions according to the agent configuration. For a detailed description, see Snow Inventory Agent installs browser extensions.

    Note that if the cloud application metering flow has not been enabled for the site the computer belongs to, the agent will not install any browser extensions, regardless of the agent configuration.

    Note that the Apple Safari browser extension is not installed by the agent. For more information, see Install Apple Safari browser extension.

  8. The browser extensions on the computer gather cloud application metering data which is stored locally on the computer. For a detailed description, see Browser extension gathers metering data.

  9. The agent collects the cloud application metering data. For a detailed description, see Snow Inventory Agent collects metering data.

  10. During the regular agent scan process, the agent consolidates the cloud application metering data with the other inventory data and sends it to the Snow Inventory Server as a .snowpack file.

  11. The Snow Inventory Server stores the data in its database. The database view inv.DataCloudMeteringView can be used to review the cloud application metering data in a consolidated format.

  12. The cloud application metering data is sent from the Snow Inventory Server to Snow License Manager during the Data Update Job, which by default runs at 9 pm every day.

  13. The cloud application metering data is shown in the Cloud section in the Snow License Manager user interface, allowing the user to see cloud application usage and manage relevant licensing aspects.

Step descriptions

Some steps of the overall cloud application metering processes for Snow Atlas and Snow License Manager are described in more detail here.

Snow Inventory Server processes data

This section describes Step 4 of the Snow License Manager process.

The process is carried out by the CloudMeteringModule module, which runs when Snow Inventory Server starts and also at a configurable time interval. The default interval is every 12 hours but can be changed in the Snow Inventory Server configuration file, by setting the property interval of the CloudMeteringModule module.

  1. The CloudMeteringModule module checks the %ProgramData%\SnowSoftware\Inventory\Resources\DIS Rules folder, where the SUS client downloaded the updated DIS content.

  2. If .esbt files are found in the folder, the module processes the files, and stores the updated application definitions and rules in the database.

  3. The module restarts the configured tasks that publish the updated content to agents.

Snow Inventory Agent installs browser extensions

This section describes:

All cloud application metering browser extensions except Apple Safari can be installed by the agent according to the process below.

The Windows service Snow Inventory Agent carries out the process every three minutes.

For macOS, the snowagent cloud command, which is run by the scheduled task defined in the /Library/LaunchDaemons/com.snowsoftware.Cloudmetering.plist file, carries out the process every five minutes.

  1. The agent checks if at least one of the files webmetering.rules or webmetering.crules is present in the agent installation folder.

  2. If so, the agent requests the browsers for which the setting saas.[browser].enabled in the agent configuration is set to true to download the browser extension from its store and install it. The installation method depends on the browser and platform combination, as listed in Table: Cloud application metering browser extensions.

  3. The agent instructs the browser to run the cloudmeteringhost.exe (Windows) or cloudmeteringhost (macOS) process and to allow communication between the extension and the process.

  4. The agent converts the rules in the webmetering.rules and webmetering.crules files to a local file called cloudmetering.db, for quicker access to the data.

Note that when the Windows agent is stopped, the browser extensions are uninstalled. When the agent is restarted, the above process is carried out and the extensions are reinstalled if the conditions in steps 1 and 2 are fulfilled.

For macOS, if the webmetering.rules and webmetering.crules files are not present in the agent installation folder upon the check in step 1 of the process, any installed browser extensions will be uninstalled.

Browser extension gathers metering data

This section descibes:

When the browser extension has been installed on the computer's browser, it carries out the following tasks:

  1. The browser extension captures information on web URLs visited by the user on the browser.

  2. The browser extension sends all visited URLs to the cloudmeteringhost process.

  3. The cloudmeteringhost process saves the URL data, together with user names and time stamps, on the computer in the location shown in Table: Output path, depending on the platform. The information is stored in encrypted form.

    For Apple Safari on macOS, there is no cloudmeteringhost process and the browser extension stores the data directly on the computer in the location shown in Table: Output path.

The stored cloud application metering data is collected by the agent according to Snow Inventory Agent collects metering data.

Table 7. Output path

Platform

Output path

Windows

%ProgramData%\SnowSoftware\Inventory\Agent\cloudmetering\extension-output

macOS

Google Chrome, Microsoft Edge, Mozilla Firefox:

/Users/Shared/SnowSoftware/Inventory/Agent/cloudmetering/extension-output

Apple Safari:

In each user's home folder: Library/Containers/com.snowsoftware.snow-web-application-metering.WebApplicationMetering/Data/cloudmetering/extension-output



Snow Inventory Agent collects metering data

This section describes:

The Windows service Snow Inventory Agent carries out the process every three minutes.

For macOS, the snowagent cloud command, which is run by the scheduled task defined in the /Library/LaunchDaemons/com.snowsoftware.Cloudmetering.plist file, carries out the process every five minutes.

  1. The agent checks the content of the folder in Table: Output path for files generated by the browser extensions.

  2. The agent matches the patterns in the files with the webmetering rules in the local cloudmetering.db file.

  3. The agent deletes the files in the folder in Table: Output path immediately after the patterns have been matched.

  4. The agent writes an encrypted JSON file in the agent’s data\web-metering (Windows) or data/web-metering (macOS) folder containing the rule hits.

    Note

    The Windows agent keeps the results in its memory until 50 unique matches have been found. After that, it starts caching matches in the %ProgramFiles%\SnowSoftware\Inventory\Agent\data\web-metering\cache folder.

    A manual agent scan does not flush the memory. To get the same behavior as a scheduled scan, you must stop the agent prior to the scan.

When the agent runs its regular scans, the cloud application metering data is consolidated with the other inventory data into .snowpack files which are sent to the Snow Inventory endpoint (Snow Extender or Snow Inventory Server).