Development Team Lead, Mostaqur Rahman has been working at Assai for 8 years and played a pivotal role in the development of the Assai Widget. Here he explains why it was necessary to develop the Assai Widget, how it works, and the challenges and successes experienced along the way.
Why was it necessary to create the Assai Widget?
As with many software systems, Assai needs to communicate with software and files present locally on a user’s laptop or PC, such as MS Outlook and Windows Explorer. In Assai’s case, this communication is a key component of some of its core functionality.
Previously, web-based applications made use of Java applets. Applets are small programs that were installed automatically when needed, without users even knowing they existed.
Assai used applets to support integral functionality such as:
- Composing emails (such as transmittals based on a distribution matrix and automatically attaching files stored in Assai).
- Dragging and dropping emails and extracting metadata.
- Scanning and uploading files directly into Assai using the scanner interface.
- Bulk loading of document revisions with files.
- Generating files based on predefined file templates.
- Converting Word files to PDF during upload.
- Acrobat redlining in Assai Web.
- And much more…
Starting with Google Chrome in 2016, many browsers began to phase out Java applet support due to security concerns. This caused a major problem for software systems such as Assai. End users still needed the same functionality, but it was no longer possible for Assai to communicate with locally installed tools.
With the disappearance of applets, the Assai development team needed to find a secure solution to ensure that these functionalities continued to work. And so, we decided to develop the Assai Widget.
What were the key considerations when developing the Assai Widget?
Browsers phased out applet due to security concerns, so it was important to ensure that the Assai Widget was as secure as possible. Therefore, strong access control was a key consideration in its development.
You must be an Assai customer to install the Assai Widget, and it will only respond to a valid user who must be logged into the system. Additionally, all communication is SSL encrypted.
What is a Widget?
A Widget is a small program which runs locally on the end-user’s PC or laptop. The Assai Widget supports secured WebSocket calls and must be installed by the end user.
Key facts about Assai Widget
- Assai Widget has a Java 13 code base which is embedded into the software. This means that the user does not need any Java installation before installing Widget.
- It runs on a jetty web server on a given port. This server hosts the WebSocket and http servlet.
- For several operations of Assai Widget, we use vbscript as an interface to communicate with different programs such as MS Outlook and Word.
- Assai Widget runs under a secured SSL domain.
- If the customer’s machine cannot reach Assai’s DNS resolver server then they need a local DNS resolver.
How does Assai Widget work?
Assai Widget is the local agent of Assai. It is a very small application, and you do not need Administrator rights to be able to install it on your laptop or PC.
When the web based Assai application needs to perform a task, such as a bulk uploading, which requires local PC access via a browser, the Assai Widget comes into action. An authorised connection must be initiated between the Widget and the browser using secured WebSocket and http calls. Consequently, the browser must make a call to the Widget to perform a specific task. Since you install Assai Widget locally, it can communicate with other locally installed software and files.
How did you conclude that creating a Widget would solve the problem? Did you consider other options?
We considered other options including browser plugins. However, this would have required us to create a plugin for all browsers and to maintain these with every browser update. There weren’t any other valid alternatives.
Had you seen the Widget solution used anywhere else previously? Was there a precedent?
At the time, we hadn’t seen the Widget used as a solution by any other applications. However, more recently we have seen other software providers doing something similar, such as the Intel® Driver & Support Assistant.
How did you create the Assai Widget?
We began with a POC to prove the concept worked. When that was successful, we built out the full Assai Widget.
How long did it take to develop?
The Widget is under continuous development. We started in 2016 with version 1.0.0, and we recently released 18.104.22.168.
Did you come across any challenges along the way?
Lots of challenges. One particularly interesting challenge was that due to browser security, it is not possible to call an unsecured domain from a secured domain (call http from https). To solve this, we needed to make the Assai Widget domain secured. However, Assai Widget runs on a local machine and a valid SSL certificate cannot be purchased for a host called localhost. Luckily, we came up with a workaround to point the domain used by Assai Widget to localhost by setting up the DNS entry. With this, we were able to purchase an SSL certificate for the Assai Widget domain.
We also had some challenges with installations. Every end user system needs to have Assai Widget installed, and obviously every system is different. So, we had to adapt the widget over time to ensure that it would work on every system. For example, previously customers needed to install both Java and the Assai Widget. Now, we have embedded Java into the Assai Widget, so the customer only needs to install the Widget.
What has been the customer response to the Assai Widget?
Fortunately, since we were quick to respond to the challenge presented by the phasing out of Java applets by web browsers and to develop the Assai Widget quickly, our customers did not experience any interruption to Assai’s functionality. This was a big success for us!