SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
RApache Software Architecture


     Using R/Apache as the Statistical Engine for
                 Web Applications
               http://biostat.mc.vanderbilt.edu/RApacheProject


                                Jeffrey Horner

                                Vanderbilt University
                             Department of Biostatistics


                                June 15, 2006




Apache 2.0 Multi-Processing Models                               Hello World Example: http://locahost/test/hello

                                                                    -----------http.conf---------------+----------test.R---------------------------
                                                                                                       |
                                                                    LoadModule R_module mod_R.so       | handler <- function(r){
   Prefork                    Perchild                                                                 |     apache.write(r,"<h1>Hello World!</h1>")
                Parent                      Parent                  <Location /test/hello>             |     OK
                                                                        SetHandler r-handler           | }
    Children                    Children                                Rsource /var/www/html/test.R   |
                                                                        RreqHandler handler            |
                                                                    </Location>                        |
                                                                                                       |
        R         R      R                                          -----------------------------------+--------------------------------------------

   Worker                        WinNT
                Parent                        Parent

   Children
                                           Child
GDD/NRart Example                                                             GDD/NRart Example Output



  library(’GDD’)
  library(’NRart’)
  r2 <- function(r)
  {
      apache.set_content_type(r,"image/png")

      GDD(ctx=apache.gdlib_ioctx(r),w=500,h=500,type="png")

      nr.image(x^3 + .28 * tan(x + t) + cos(x + 2*t)*.3i - 0.7,
                  steps=3, points=400, col=rainbow(256), zlim=c(-pi, pi))

      dev.off()
      OK
  }




RApache Demonstrations                                                        Ongoing Work

        Full Feature Test Handler
              Demonstrates all the capabilities of RApache include CGI,
                                                                                   Rmemcache
              manipulating HTTP headers, and file uploading.
                                                                                       Implements client API to memcached, a possibly distributed
        EVT-Web                                                                        cache (not a database) of small objects. R objects are
              Implements a web interface to a protein searching                        stored in memcache server via serialize().
              algorithm using Extreme Value Theory. The web interface
                                                                                   udbMySQL
              takes a group of related proteins as input from the user and
              generates a profile via an external program (MEME). Then                  Uses the "User Defined Database" interface to store R
              a model is built to predict which other proteins from a large            objects of arbitrary size and structure in a MySQL table.
              database (MySQL) are also related to the group of proteins           Getting the next release out the door
              that the user specified.                                                  Testing against Apache 2.2, R-2.3.1. Looking into getting
        Polyart                                                                        rid of some of the apache.* methods in favor of a more
              Demonstrates the use of RApache as a web service to                      transparent interface, especially apache.write().
              explore images created through the process of finding roots
              of functions, i.e. using the NRart package.

Mais conteúdo relacionado

Mais procurados

apache pig performance optimizations talk at apachecon 2010
apache pig performance optimizations talk at apachecon 2010apache pig performance optimizations talk at apachecon 2010
apache pig performance optimizations talk at apachecon 2010
Thejas Nair
 
DTCC Rac Load Balancing Failover
DTCC Rac Load Balancing FailoverDTCC Rac Load Balancing Failover
DTCC Rac Load Balancing Failover
Leyi (Kamus) Zhang
 

Mais procurados (20)

Using R on High Performance Computers
Using R on High Performance ComputersUsing R on High Performance Computers
Using R on High Performance Computers
 
Introduction to MapReduce - Hadoop Streaming | Big Data Hadoop Spark Tutorial...
Introduction to MapReduce - Hadoop Streaming | Big Data Hadoop Spark Tutorial...Introduction to MapReduce - Hadoop Streaming | Big Data Hadoop Spark Tutorial...
Introduction to MapReduce - Hadoop Streaming | Big Data Hadoop Spark Tutorial...
 
apache pig performance optimizations talk at apachecon 2010
apache pig performance optimizations talk at apachecon 2010apache pig performance optimizations talk at apachecon 2010
apache pig performance optimizations talk at apachecon 2010
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System Administrators
 
Upgrading To The New Map Reduce API
Upgrading To The New Map Reduce APIUpgrading To The New Map Reduce API
Upgrading To The New Map Reduce API
 
Monitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with PrometheusMonitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with Prometheus
 
Extending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session ExtensionsExtending Apache Spark – Beyond Spark Session Extensions
Extending Apache Spark – Beyond Spark Session Extensions
 
Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra
Cassandra South Bay Meetup - Backup And Restore For Apache CassandraCassandra South Bay Meetup - Backup And Restore For Apache Cassandra
Cassandra South Bay Meetup - Backup And Restore For Apache Cassandra
 
Tuning tips for Apache Spark Jobs
Tuning tips for Apache Spark JobsTuning tips for Apache Spark Jobs
Tuning tips for Apache Spark Jobs
 
User Camp High Availability Presentation
User Camp High Availability PresentationUser Camp High Availability Presentation
User Camp High Availability Presentation
 
Prometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring SystemPrometheus – a next-gen Monitoring System
Prometheus – a next-gen Monitoring System
 
Formaldehye2 job program
Formaldehye2  job programFormaldehye2  job program
Formaldehye2 job program
 
Cgghh
CgghhCgghh
Cgghh
 
MySQL shell and It's utilities - Praveen GR (Mydbops Team)
MySQL shell and It's utilities - Praveen GR (Mydbops Team)MySQL shell and It's utilities - Praveen GR (Mydbops Team)
MySQL shell and It's utilities - Praveen GR (Mydbops Team)
 
Apache Airflow | What Is An Operator
Apache Airflow | What Is An OperatorApache Airflow | What Is An Operator
Apache Airflow | What Is An Operator
 
SF Big Analytics 2019112: Uncovering performance regressions in the TCP SACK...
 SF Big Analytics 2019112: Uncovering performance regressions in the TCP SACK... SF Big Analytics 2019112: Uncovering performance regressions in the TCP SACK...
SF Big Analytics 2019112: Uncovering performance regressions in the TCP SACK...
 
Postgre sql unleashed
Postgre sql unleashedPostgre sql unleashed
Postgre sql unleashed
 
PHP - Intriduction to MySQL And PHP
PHP - Intriduction to MySQL And PHPPHP - Intriduction to MySQL And PHP
PHP - Intriduction to MySQL And PHP
 
Go replicator
Go replicatorGo replicator
Go replicator
 
DTCC Rac Load Balancing Failover
DTCC Rac Load Balancing FailoverDTCC Rac Load Balancing Failover
DTCC Rac Load Balancing Failover
 

Destaque (13)

Adatbanyaszati technologiak
Adatbanyaszati technologiakAdatbanyaszati technologiak
Adatbanyaszati technologiak
 
Using Decision Tables to Model and Solve Scheduling and Resource Allocation P...
Using Decision Tables to Model and Solve Scheduling and Resource Allocation P...Using Decision Tables to Model and Solve Scheduling and Resource Allocation P...
Using Decision Tables to Model and Solve Scheduling and Resource Allocation P...
 
Lecture 8 monitoring & controlling (1)
Lecture 8  monitoring & controlling (1)Lecture 8  monitoring & controlling (1)
Lecture 8 monitoring & controlling (1)
 
Job Design and Work Measurement
Job Design and Work Measurement Job Design and Work Measurement
Job Design and Work Measurement
 
Project Monitoring and Control
Project Monitoring and ControlProject Monitoring and Control
Project Monitoring and Control
 
Project Controlling and Project Monitoring
Project Controlling and Project MonitoringProject Controlling and Project Monitoring
Project Controlling and Project Monitoring
 
Basic of work study, work measurement & job design om
Basic of work study, work measurement & job design    om Basic of work study, work measurement & job design    om
Basic of work study, work measurement & job design om
 
Pert & Cpm
Pert & CpmPert & Cpm
Pert & Cpm
 
Work Study
Work StudyWork Study
Work Study
 
Pert cpm
Pert cpmPert cpm
Pert cpm
 
Project Management PERT and CPM
Project Management PERT and CPMProject Management PERT and CPM
Project Management PERT and CPM
 
Pert & cpm project management
Pert & cpm   project managementPert & cpm   project management
Pert & cpm project management
 
Resource allocation
Resource allocationResource allocation
Resource allocation
 

Semelhante a R Apache

Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with spark
Alex Zeltov
 
Using Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databasesUsing Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databases
Raimonds Simanovskis
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
Ben Lin
 
DistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOpsDistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOps
Paul Worrall
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
Nick Sieger
 

Semelhante a R Apache (20)

Java colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rsJava colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rs
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with spark
 
Ml2
Ml2Ml2
Ml2
 
Using Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databasesUsing Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databases
 
Intro to Rack
Intro to RackIntro to Rack
Intro to Rack
 
High Performance Microservices with Ratpack and Spring Boot
High Performance Microservices with Ratpack and Spring BootHigh Performance Microservices with Ratpack and Spring Boot
High Performance Microservices with Ratpack and Spring Boot
 
Resthub lyonjug
Resthub lyonjugResthub lyonjug
Resthub lyonjug
 
Extending Oracle E-Business Suite with Ruby on Rails
Extending Oracle E-Business Suite with Ruby on RailsExtending Oracle E-Business Suite with Ruby on Rails
Extending Oracle E-Business Suite with Ruby on Rails
 
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middlewareUsing and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
 
XSEDE14 SciGaP-Apache Airavata Tutorial
XSEDE14 SciGaP-Apache Airavata TutorialXSEDE14 SciGaP-Apache Airavata Tutorial
XSEDE14 SciGaP-Apache Airavata Tutorial
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansible
 
Native REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11gNative REST Web Services with Oracle 11g
Native REST Web Services with Oracle 11g
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by Capistrano
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
 
Replication - Nick Carboni - ManageIQ Design Summit 2016
Replication - Nick Carboni - ManageIQ Design Summit 2016Replication - Nick Carboni - ManageIQ Design Summit 2016
Replication - Nick Carboni - ManageIQ Design Summit 2016
 
Java 8 Overview
Java 8 OverviewJava 8 Overview
Java 8 Overview
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop Seattle
 
DistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOpsDistributingSoftwareKnowledgeForDevOps
DistributingSoftwareKnowledgeForDevOps
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
 

Mais de Ajay Ohri

Mais de Ajay Ohri (20)

Introduction to R ajay Ohri
Introduction to R ajay OhriIntroduction to R ajay Ohri
Introduction to R ajay Ohri
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
Social Media and Fake News in the 2016 Election
Social Media and Fake News in the 2016 ElectionSocial Media and Fake News in the 2016 Election
Social Media and Fake News in the 2016 Election
 
Pyspark
PysparkPyspark
Pyspark
 
Download Python for R Users pdf for free
Download Python for R Users pdf for freeDownload Python for R Users pdf for free
Download Python for R Users pdf for free
 
Install spark on_windows10
Install spark on_windows10Install spark on_windows10
Install spark on_windows10
 
Ajay ohri Resume
Ajay ohri ResumeAjay ohri Resume
Ajay ohri Resume
 
Statistics for data scientists
Statistics for  data scientistsStatistics for  data scientists
Statistics for data scientists
 
National seminar on emergence of internet of things (io t) trends and challe...
National seminar on emergence of internet of things (io t)  trends and challe...National seminar on emergence of internet of things (io t)  trends and challe...
National seminar on emergence of internet of things (io t) trends and challe...
 
Tools and techniques for data science
Tools and techniques for data scienceTools and techniques for data science
Tools and techniques for data science
 
How Big Data ,Cloud Computing ,Data Science can help business
How Big Data ,Cloud Computing ,Data Science can help businessHow Big Data ,Cloud Computing ,Data Science can help business
How Big Data ,Cloud Computing ,Data Science can help business
 
Training in Analytics and Data Science
Training in Analytics and Data ScienceTraining in Analytics and Data Science
Training in Analytics and Data Science
 
Tradecraft
Tradecraft   Tradecraft
Tradecraft
 
Software Testing for Data Scientists
Software Testing for Data ScientistsSoftware Testing for Data Scientists
Software Testing for Data Scientists
 
Craps
CrapsCraps
Craps
 
A Data Science Tutorial in Python
A Data Science Tutorial in PythonA Data Science Tutorial in Python
A Data Science Tutorial in Python
 
How does cryptography work? by Jeroen Ooms
How does cryptography work?  by Jeroen OomsHow does cryptography work?  by Jeroen Ooms
How does cryptography work? by Jeroen Ooms
 
Using R for Social Media and Sports Analytics
Using R for Social Media and Sports AnalyticsUsing R for Social Media and Sports Analytics
Using R for Social Media and Sports Analytics
 
Kush stats alpha
Kush stats alpha Kush stats alpha
Kush stats alpha
 
Analyze this
Analyze thisAnalyze this
Analyze this
 

R Apache

  • 1. RApache Software Architecture Using R/Apache as the Statistical Engine for Web Applications http://biostat.mc.vanderbilt.edu/RApacheProject Jeffrey Horner Vanderbilt University Department of Biostatistics June 15, 2006 Apache 2.0 Multi-Processing Models Hello World Example: http://locahost/test/hello -----------http.conf---------------+----------test.R--------------------------- | LoadModule R_module mod_R.so | handler <- function(r){ Prefork Perchild | apache.write(r,"<h1>Hello World!</h1>") Parent Parent <Location /test/hello> | OK SetHandler r-handler | } Children Children Rsource /var/www/html/test.R | RreqHandler handler | </Location> | | R R R -----------------------------------+-------------------------------------------- Worker WinNT Parent Parent Children Child
  • 2. GDD/NRart Example GDD/NRart Example Output library(’GDD’) library(’NRart’) r2 <- function(r) { apache.set_content_type(r,"image/png") GDD(ctx=apache.gdlib_ioctx(r),w=500,h=500,type="png") nr.image(x^3 + .28 * tan(x + t) + cos(x + 2*t)*.3i - 0.7, steps=3, points=400, col=rainbow(256), zlim=c(-pi, pi)) dev.off() OK } RApache Demonstrations Ongoing Work Full Feature Test Handler Demonstrates all the capabilities of RApache include CGI, Rmemcache manipulating HTTP headers, and file uploading. Implements client API to memcached, a possibly distributed EVT-Web cache (not a database) of small objects. R objects are Implements a web interface to a protein searching stored in memcache server via serialize(). algorithm using Extreme Value Theory. The web interface udbMySQL takes a group of related proteins as input from the user and generates a profile via an external program (MEME). Then Uses the "User Defined Database" interface to store R a model is built to predict which other proteins from a large objects of arbitrary size and structure in a MySQL table. database (MySQL) are also related to the group of proteins Getting the next release out the door that the user specified. Testing against Apache 2.2, R-2.3.1. Looking into getting Polyart rid of some of the apache.* methods in favor of a more Demonstrates the use of RApache as a web service to transparent interface, especially apache.write(). explore images created through the process of finding roots of functions, i.e. using the NRart package.