June 16, 2015 | Laurence
Today I have the pleasure of announcing the latest release of our AnalytiXagility platform, and sharing with you the exciting new mini-apps feature in this version 1.10 release.
- R parallelisation
In this blog I want to look at mini-apps in particular, and explain how we went about integrating this powerful new self-service feature for our users.
One of the main areas that we’d been discussing recently is enhancing AnalytiXagility’s ability to rapidly visualise data and prototype research ideas by refocusing some of the platform’s existing features. This is really important for multidisciplinary teams because everyone – no matter what their skillset – needs to be able to access, understand and communicate the results of the research they are involved in. We wanted to make data analysis available to as wide an audience as possible.
At the same time our data scientists had been creating quite a few Shiny apps in RStudio to demonstrate how compelling the technology was at creating interactive visualisations, but there was no equivalent within AnalytiXagility itself. We were excited by Shiny’s ability to present data in a compelling and interactive way. The immense benefits that it could bring to our users in terms of visualising complex data sets was clear, so the engineering team started discussing how we could leverage Shiny and enable our customers to rapidly get to grips with their data.
Discussions between the engineering and data science teams led us to come up with the concept of ‘mini-apps’- a way to combine the power of R and modern web technologies within AnalytiXagility to deliver a framework which transforms data analysis into interactive and visual web applications that anyone can develop, generate, and understand.
We started by bringing the Shiny server into our platform architecture. This provides the runtime and webserver that basically allows for Shiny apps to run and be displayed in the web browser. A few tweaks to our reverse proxy and you are now able to interactively explore and visualise your data without ever leaving the platform.
Multi-tenancy is at the very core of the platform, so we used Shiny Server to ensure that different users were used for any given workspace, and to create a secure connection through to the workspaces’ data. The protocol we used allows a remote host to identify the local Linux-level username which instantiates a specific TCP connection; useful if you trust the host which is connecting, and in this case we do. Our database server can then map the Linux-level users on the Shiny server through to a database and you now have everything plumbed in.
Of course in parallel we were writing all the new front end code that would allow for the basic creation, management and running of any mini-app. The Shiny server’s focus on a single function enabled us to provide a seamless experience when running mini-apps within the AnalytiXagility platform without looking like you were moving between two applications; combine that with an iframe and mini-apps are starting to take shape.
Collaborative visual analysis
Not everyone on a collaborative research team is a data scientist, and mini-apps are a great way to ensure that any member of your team can gain from AnalytiXagility’s core analytic technologies, no matter what their skillset. Just a few clicks can produce visual analyses that provide insightful visualisations from complex data.
I hope this gives you a better understanding of why and how we went about implementing mini-apps. It should be really interesting to see the visual analysis that people can come up with. We’ve been playing with fabricated diabetes data and HSCIC open prescribing data and we’ve managed to pull some really interesting analysis from it, which we will share with you next week. We’ll also bring you an in-depth look at R parallelization shortly, but in the meantime if you’ve got any questions about mini-apps, or any other aspect of AnalytiXagility in the meantime, please do get in touch.