2015-05-09 13 views
16

Jestem całkiem nowy z R. Próbuję wykonać ładowanie adresu URL z innej aplikacji (Java), która uruchomi skrypt R i wypisze numer JSON, aby moja aplikacja mogła z nim pracować.Wywołanie R jako usługi WWW z parametrami i załadowanie JSON?

Rozumiem, że istnieją pewne struktury, takie jak shiny, które działają jako serwery WWW dla R, ale nie mogę znaleźć dokumentacji na temat tego, jak przekazywać parametry za pośrednictwem adresu URL, aby R mógł z nich korzystać.

Idealnie będę musiał zadzwonić URL takiego:

http://127.0.0.1/R/param1/param2 

I URL wezwie skryptu R, który będzie używał param1 i param2 do wykonywania niektórych funkcji i powrócić do JSON które będę następnie odczytać z mojego aplikacja.

+2

Wystarczy popatrzeć na https://www.opencpu.org/ –

+0

nie wiem ram spoczynku dla R. Możesz spojrzeć na Rserve'a i powiązanego klienta java –

+3

Google "R CGI script". Kilka rozwiązań. Ten https://rforge.net/FastRWeb/ był ostatnio utrzymywany z zaufanego źródła w społeczności R. – flodel

Odpowiedz

4

Jeśli jeszcze tego nie zrobiłeś, sprawdź zamówienie [DeployR]. Możesz również przesłać pytania do grupy DeployR Google, aby uzyskać pomoc.

Dla pełnego ujawnienia Jestem jednym z autorów DeployR

Przegląd

DeployR to technologia integracji dla wdrażania analityki R wewnątrz sieci, komputerów stacjonarnych, mobilnych i aplikacji w desce rozdzielczej, jak również systemy zaplecza. DeployR zamienia twoje skrypty R w analityczne usługi sieciowe, dzięki czemu kod R może być łatwo wykonany przez aplikacje działające na bezpiecznym serwerze.

DeployR rozwiązuje również kluczowe problemy związane z integracją, z którymi mają do czynienia analityka bazująca na R wraz z istniejącą infrastrukturą informatyczną. Usługi te ułatwiają twórcom aplikacji współpracę z naukowcami zajmującymi się danymi w celu zintegrowania analizy R z ich aplikacjami bez znajomości programowania R.

DeployR jest dostępny w dwóch wersjach: DeployR Rozwinąć i DeployR Przedsiębiorstwo. DeployR Open to bezpłatne rozwiązanie o otwartym kodzie źródłowym, idealne do prototypowania, tworzenia i wdrażania niekrytycznych aplikacji biznesowych. Skale DeployR Enterprise dla aplikacji o krytycznym znaczeniu dla biznesu i oferuje wsparcie dla obciążeń produkcyjnych, jak również bezproblemową integrację z popularnymi korporacyjnymi rozwiązaniami bezpieczeństwa, takimi jak jednokrotne logowanie (SSO), Lightweight Directory Access Protocol (LDAP), Active Directory lub Pluggable Authentication Modules (PAM).

Jestem całkiem nowy R

prefekta.DeployR przeznaczony jest zarówno dla Scientist danych, jak również twórcy aplikacji, którzy mogą nie wiedzieć, R.

Co staram się robić to, aby móc załadować URL z innej aplikacji (Java), który będzie realizowany Skrypt R i wypisz JSON, aby moja aplikacja mogła z nim pracować.

DeployR robi to dobrze. Aby ułatwić komunikację między aplikacją a serwerem DeployR (który będzie wykonywał twój R) jest DeployR Client libraries.

W zależności od potrzeb, DeployR posiada wsparcie 'Client Library' out-of-the-box w:

DeployR obsługuje także RBroker Framework

, jeśli Twój przypadek użycia lub środowisko wykonawcze przewidują duże obciążenie pracą lub konieczność okresowego, zaplanowanego lub okresowego przetwarzania.

Rozumiem, istnieją pewne ramy, takie jak błyszczące, które działają jako serwery WWW dla R, ale nie mogę znaleźć dokumentację dotyczącą tych ram, w jaki sposób przekazać parametry poprzez URL R więc można z nich korzystać

DeployR działa jako mechanizm analityczny za pośrednictwem swojego APIS. Zasadniczo pomyśl o tym, jak zamienić twoje skrypty R w bezpieczne analityczne usługi sieciowe, tak aby były używane jak każda inna usługa internetowa.

parametry Pass

przekazywania parametrów do skryptu R w DeployR jest łatwe, ale trzeba zrozumieć, że jesteś przekazywania parametrów do skryptu R z języka, który nie jest R. Jako takie, nie ma niektóre "kodowanie danych", które należy wykonać. Na przykład, przekształć łańcuch Java na R character lub boolean Java na R logical ...Ta biblioteka klienta DeployR lub narzędzie RBroker ułatwia to zadanie.

Brzmi jak używasz Java, więc najpierw zapoznać się z samouczka Java Javie PRZYKŁAD klient podstawyhttps://github.com/deployr/java-example-rbroker-basics dać wam pewien kontekst następnie sprowadzić wiele przykładów Java pod java-np-client-danych-IOhttps://github.com/deployr/java-example-client-data-io. Źródło przykładowe jest w pełni dostępne, więc powinno dać ci wszystko, czego potrzebujesz: , aby zrozumieć, jak wykonać podstawowe operacje wejścia/wyjścia z aplikacji na serwer DeployR dla Twojej analityki R.

Idealnie będę musiał zadzwonić URL jak: http://127.0.0.1/R/param1/param2

Proponuję za pomocą DeployR bibliotek klienta się do komunikacji, jak opisano powyżej, to właśnie to robi.

Jak zawsze, proszę pisać o pytania do DeployR Google Grouphttps://groups.google.com/forum/#!forum/deployr o pomoc.

+4

DeployR Open został zawieszony przez firmę Microsoft. – svenski

3

Masz kilka opcji, IMHO OpenCPU jest niezły.

To najprostszy sposób, w jaki można uzyskać dostęp do serwera WWW, aby zapewnić R obliczenie jako usługę REST.

Twórca OpenCPU jest tym samym autorem pakietu jsonlite, a można łatwo uzyskać i przekazać parametry json z OpenCPU, jak widać here.

1

Innym sposobem na wdrożenie usługi internetowej REST API w R jest pakiet plumber (dawniej rapier). Wykorzystuje podejście funkcja dekoracji wewnątrz specjalne komentarze:

# myfile.R 

#* @get /mean 
normalMean <- function(samples=10){ 
    data <- rnorm(samples) 
    mean(data) 
} 

# service.R 

library(plumber) 
r <- plumb("myfile.R") # Where 'myfile.R' is the location of the file shown above 
r$run(port=8000) 

Następnie powołać go:

curl "http://localhost:8000/mean"