BlueJeans Detector Service – What Does It Do and Why Is It Necessary?
You may have noticed a BlueJeans service running on your Mac or Windows device, even when the BlueJeans App is closed. The BlueJeans service is called our "Detector Service" and it is aimed at providing the best Join Flow experience for new and returning users. Below are more details on how it works.
What Does It Do?
The BlueJeans Detector Service runs on a user’s computer and is only accessible within that computer itself. This service can be accessed by the BlueJeans webpage upon meeting join (when users click on a join URL). It has a few purposes:
- Determine if the BlueJeans desktop application is already installed. This allows us to offer a new installation or launch the existing app based on the user's machine. Alternative solutions in the industry have to offer both options – Install or Launch the App... which we've found can confuse end users.
- Launch the BlueJeans desktop application into a meeting without prompting the user with confusing browser dialogs. This allows meetings to launch quickly on one click without requiring any additional user interaction. It also prevents the user from making a wrong decision on a browser dialog which might permanently lock them out of launching meetings.
- Secure the BlueJeans App. The service allows us to ensure that only authorized web sites can launch the BlueJeans application.
Why Is It Necessary?
Mobile operating systems (Android and iOS) have long had great support for launching native applications from web sites through so-called universal links. Sadly, desktop operating systems (Mac and Windows) still have not caught up on this front.
First, there is no cross-browser, built-in way for a website to be aware if the user has a specific desktop application installed, nor is there a way for the website to gracefully handle if it is not installed. This means that without a detector service, a website cannot easily choose to offer installation instructions instead of launching the application in the appropriate case. It is worth noting some browsers do have ways to do this, but this does not work in every major browser.
Secondly, all modern browsers require approval from the user before allowing a website to launch a native application. This is a sensible precaution because allowing any website to launch any native program would be a huge security hole. This has been solved on mobile platforms by limiting mobile application launches to a specific website associated with this application, but sadly desktop platforms do not support this.
Because of the above, an approval dialog is necessary. However, this dialog is an annoyance to the user at best, and at worst may scare the user into denying a legitimate request.
To avoid this and provide a superior user experience, instead of directly launching the application, the website communicates with the already-running Detector Service, which launches the app on its behalf. This process allows us to avoid the confusing security dialog shown by the browser and all of the disadvantages that come with it. Furthermore, we are able to do custom validation in the Detector Service which allows us to ensure that only authorized websites can launch the BlueJeans application.
As stated above, the Detector Service responds to requests from the BlueJeans webpage. As such, it does nothing except listen for network requests. A request is made only when the user tries to join a meeting. The Detector Service responds within milliseconds, after which it goes back to doing nothing. This should have no noticeable impact on performance for a users machine, given the single simple task it performs.
What would it look like without the Detector Service?
To understand all of the above more completely, lets discuss what happens without the use of a Detector Service
First, let’s look at the case where the user tries to join a meeting but doesn’t already have the desktop application. The user would get a page in Safari and Firefox with the following:
"If nothing prompts from the Browser, download and run the App"
The webpage is unsure whether the application is installed and has to try to launch it AND offer a download at the same time. Too many options can lead to user confusion.
It should be noted that Chrome offers more advanced options for users to immediately be instructed to install applications. However, working well in only one browser is not acceptable to BlueJeans.
Compare what happens for the same scenario with the Detector Service. Upon visiting the page, in any browser, BlueJeans correctly and reliably detects the user needs to download the app, and starts the download without any further user interaction, including providing browser-specific instructions on how to finish the installation.
Now, let’s move on to the more common use case, where the user already has the app installed. Without the Detector Service, what happens when the user again tries to join a meeting?
As you can see, the user is required to click on an additional popup to allow the meeting to launch. The user may accidentally cancel this dialog and then be confused as to why nothing happened. Alternately, some users may not even notice the dialog and simply sit at this screen, confused.
On top of that, an additional click may seem not so bad, but if the user is frequently joining meetings, this adds significant friction to the launch experience. In Chrome, as shown, the user can elect to “Always Allow” but this option is not available in every browser (for example in Safari).
Compare what happens for the same scenario when the detector service is used:
The user sees this page for a split second, and then the app launches, and the user is placed into the meeting with zero additional clicks.
Furthermore, since the Detector Service is performing the launch, it performs additional checks to ensure launches can only be done from an authorized domain, so this cannot be abused to launch the app maliciously for spying purposes.
Hopefully this document helps explain why BlueJeans has chosen to use a Detector Service to assist with desktop application installation detection and launch. BlueJeans has put a great deal of thought into this problem. We care deeply about user experience and want users to be able to get into meetings, whether it is their 1st or 100th meeting, as fast as possible without any friction. We recognize that not all users are technical, and we need to avoid unnecessary hurdles to ensure every user can use our product successfully.