2. Revolution ConfidentialREvolution Confidential
Revolution Scales R to the Enterprise…
2
Scale
Performance
Scale
Distributed high
performance analytics
Performance
Build & deploy analytics
applications easily
Enterprise Readiness
High speed connectors to
enterprise environments
Full-service customer
support, consulting and
training
Enterprise
Readiness
Confidential to Revolution Analytics
3. Revolution ConfidentialREvolution Confidential
Integration Layer:
DeployR makes R accessible
Seamless
Bring the power of R to any web enabled application
Simple
Leverage common APIs including JS, Java, .NET
Scalable
Robustly scale user and compute workloads
Secure
Manage enterprise security with LDAP & SSO
3
R / Statistical
Modeling Expert
DeployR
Data Analysis
Business Intelligence
Mobile Web Apps
Cloud / SaaS
Deployment
Expert
Confidential to Revolution Analytics
4. Revolution ConfidentialREvolution Confidential
On-Demand Analytics with RevoDeployR
4
Market Basket Analysis using Java Script and R enabled by DeployR
•User selection drives Java
Script…
•which drives R script…
•which drives Java Script to
return to user data and graphics
needed…
•…enabled by DeployR API’s
Confidential to Revolution Analytics
6. Revolution ConfidentialREvolution Confidential
RevoDeployR – Key Advantages
Unlocks the power of R
to any 3rd party application
Easy to use API
Rapid deployment
Scalability
Add nodes as you need
them
Separation of expertise
Statistician - writes R code
Application programmer –
calls the API to execute an
R script, and gets the
output.
Designed to be
Enterprise Ready
Comprehensive collection
of Web Service APIs
Enterprise Security
Stateful and Stateless
execution of R
Code/Scripts
Asynchronous Job
Execution
Repository for managing R
objects and files
Administration
6
7. Revolution ConfidentialREvolution Confidential
RevoDeployR - Architecture
7
RevoDeployR Web Services
Client libraries (JavaScript, Java, .NET)
Desktop
Applications
(i.e. Excel)
Business
Intelligence
(i.e. QlikView)
Interactive Web or
Mobile
Applications
HTTP/HTTPS – JSON/XML
Session
Management
Authentication
Data/Script
Management
Administration
R
R
Programmer
Application
Developer
End User
R
R
Admin
8. Revolution ConfidentialREvolution Confidential
RevoDeployR - Server
8
RevoDeployR Web
Services API
Grid Management
Framework
Spring3 Framework J2EE Framework
NoSQL Database
Management Console
Grid Node
R
R
R
Grid Node
R
R
R
Grid Node
R
R
R
Applications Admin
R R Session
9. Revolution ConfidentialREvolution Confidential
R Scripts and R Code
Stateless execution of pre-defined R Scripts
Supports both Anonymous and Authenticated access
Project is automatically created, inputs loaded, R script
executed, outputs returned, and session destroyed
Stateful execution
Must be an authenticated user
Project is explicitly created/destroyed
R script or R code executed in the defined project
Jobs
Code and Script can be executed as a background job
Results are persisted and can be retrieved later
10. Revolution ConfidentialREvolution Confidential
Role of the application developer
Define RevoDeployR Server connection (URL)
*Authenticate
*Create/Open Project
Execute Script or Execute Code
Create list of inputs
R Objects
Create lists of named outputs (if any)
R Objects
*Close R Project
* Required for Stateful execution
10
11. Revolution ConfidentialREvolution Confidential
RESTful API
11
format = json
HTTP POST on API call:
/r/session/create
{
"deployr": {
"response": {
"success": true,
"project": {
"lastmodified": "Thu, 20 Oct 2011 18:27:29 +0000",
"live": true,
"origin": "Project original.",
"longdescr": null,
"name": null,
"projectcookie": null,
"ispublic": false,
"owner": "testuser",
"descr": null,
"project": "PROJECT-5ab61ec0-09b9-44ea-837d-9e6f40a7e8a3"
},
"call": "/r/project/create"
}
}
}
JSON Response
Example HTTP Call to Create a Project
12. Revolution ConfidentialREvolution Confidential
Stateless Example (JavaScript)
12
var exeScript = function () {
…
// set the call back configuration
var callback = { success : plot, failure: fail, scope : this, verbose : true };
/* configuration input for repository script execution */
var scriptConfig = {
filename : 'DeployR - Hello World',
author: 'testuser',
inputs : [R.RDataFactory.createNumeric('input_randomNum', parseInt(num, 10))]
};
// execute RScript
R.DeployR.repositoryScriptExecute(scriptConfig, callback);
};
13. Revolution ConfidentialREvolution Confidential
Stateful Example
Use case - Simple Regression
Upload a CSV file to the RevoDeployR Server
Get a list of numeric variables
Run a simple regression using 2 of the variables
Return a plot
Implementation
2 R Scripts
Read the uploaded CSV and return the list of numeric variables
Run the regression on the selected variables
Requires authentication (login)
R Session is explicitly created after login
Both scripts execute in the same R Session
13
Enables Models and Analytics to be consumed by end users through BI applicationsRisk AnalysisSales ForecastingImplemented as a collection of Web Services that allow easy integration into many different 3rd party applicationsSame technology that provides the statistical engine for the GUI