13 May 2016

Taking MATLAB applications to the web

MonkeyProofWebApp

Customer request

Recently, a customer asked us to make his MATLAB application available as a web app. Web deployment was attractive because it protects IP and data, and at the same time allows many users to readily use the most recent app version. While this may sound like a standard request, two specific demands implied that there was no out-of-the-box solution:

  1. Stateful behavior was required: the web app should keep track of the state of interaction. The application involved some heavy computations on large data sets in a multi-stage workflow. Users should be able to inspect the results of a stage, and to go back one step to modify a parameter without having to re-do all previous calculations. Also, the sessions should stay alive on the server, allowing end-users to return and inspect results.
  2. The solution should be affordable. The costs of software licenses and man hours to make the web app operational should fit the budget constraints. IT services for the web server should be minimized.

The standard solution from MathWorks, MATLAB Production Server, only supports stateless behavior and would involve significant license costs. We therefore chose an alternative deployment pathway to meet this customer’s requirements, which has proven to be very useful. We call it MonkeyProof App-on-a-Server.

Solution

Our solution was to compile the code, add a wrapper to implement stateful behavior, and deploy it on a open source web server.

We chose an end-to-end solution: we took the M-code from our customer, and delivered the web server as a complete, virtual machine. This reduced the customer’s configuration and installation work to an absolute minimum.

We compiled the MATLAB code for our customer, so there was no need for them to purchase the required software components (MATLAB Compiler and MATLAB Compiler SDK). Further, we selected a royalty-free web server and virtual machine for the deployment solution.

App-on-a-Server provides a separate context (workspace) for each client. The stateful application allows the user to go back and forth through multi step computations, or to generate and compare multiple results.

MonkeyProof App-on-a-Server: royalty-free and stateful deployment of your application on the web. Interested in this solution? Let us know.