Integrate R into applications with DeployR Open

[This article was first published on Revolutions, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

If you ever find you need to embed the results of R functions — data, charts, or even a single calculation — into other applications, then you might want to take a look at DeployR Open. DeployR Open is an open-source server-based framework for R, that makes it easy to call out to the server to run R code in real time.

The workflow is simple: An R programmer develops an R script (using their standard R tools) and publishes that script to the DeployR server. Once published, R scripts can be executed by any authorized application using the DeployR API. We provide native client libraries in Java, JavaScript and .NET to simplify making calls to the server. The R results returned on these calls can be embedded, displayed or processed in any way your application needs.

Deployr workflow

There are a few really nice features of this architecture:

  • The application developer doesn't need to know any R. They use a consistent API in their chosen application programming language to execute any R code, passing parameter values as needed.
  • The server manages all aspects of the R session lifecycle so your application does not have to. That keeps the complexity on the server so the application developer can stay focused on business logic.
  • Only specific R functions are exposed beyond the server “firewall”. If you connect to R directly, you expose all of R's functions (including functions that can modify the filesystem) to the outside world. By contrast, DeployR Open only exposes selected functions, via RScripts, accessible through the API to serve a specific task. You can manage which RScripts are published, and who can access them, with the Repository Manager.
  • The server enforces deployment-wide and user-specific security policies (set in the Administration Console) at runtime to ensure fair resource allocation and prevent malicious R code execution. 

DeployR Open offers a number of ways for client applications to integrate with the server:

  • The simplest way is to use the RBroker Framework. If you want to quickly execute an independent R calculation or you are considering building a sophisticated R-based realtime scoring engine use this framework.
  • If your application needs more control over the full R session lifecycle, such as might be required by a GUI interface to R, then consider using the Java, JavaScript or .NET client libraries.
  • If for any reason the RBroker Framework and client libraries do not meet your needs then you can always integrate directly on the DeployR API.
  • We provide examples of integrating R using DeployR within Excel, Jaspersoft and Qlikview.

DeployR Open is an 100% open-source project, and includes many features previously only available as part of Revolution R Enteprise DeployR. (That's how despite being new as an open source project, it's already at version 7.3 — it's been in use for more than four years!) If you'd like technical support for DeployR Open, phone and email support is included with a Revolution R Plus subscription.

The DeployR Open server is deployed as a single node, so mainly designed for prototyping, building and deploying applications where expected load on the server is low or moderate. If you anticipate a need to scale to multiple server resources to handle increased workload and improved throughput or want to enjoy seamless integration with popular enterprise security solutions such as SSO, LDAP, Active Directory or PAM, consider upgrading to Revolution R Enterprise DeployR.

If you'd like to learn more, check out the DeployR Open website. There, you can find developer documentation and administrator documentation, and of course download and install DeployR Open for free. Let us know what you think in the comments!

To leave a comment for the author, please follow the link and comment on their blog: Revolutions.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)