4

R アプリケーションを開発しましたが、それをデプロイしたいと考えています。

現在、アプリケーションは、R パッケージのように、コマンド ラインから実行される関数のセットで構成されています。それを展開するために、必要なライブラリと私のコードを追加してR Portableを再パッケージ化することを考えています。私の主な問題は、適切な GUI ツールキットを選択することです。

本番環境

私のアプリはシングル ユーザーのアプリ (つまり、デスクトップ アプリケーション) で、ターゲット プラットフォームは Windows です。R でブートストラップしてからツールキットを呼び出したり、たとえば Java でブートストラップしてから R エンジンを呼び出したりできます。GUI は何よりもまず、アプリの機能にフィードする必要があります。また、関数のグラフィカル出力も取得する必要があります。

可能な代替案

これは、代替案の潜在的なリストです。説明されている必要な環境を満たしているかどうかを知りたいです。

Java JRIは現在rJavaの一部としてのみリリースされていますが、後者は明確に文書化されていますが、前者のドキュメントやチュートリアルを見つけることができません。Deducerに関しては、GUI フロントエンドとして提供されていますが、 GUI ツールキットでもあることがわかりました。

TCL/Tkバインディングは R の自然な選択のようで、十分に文書化されていますが、このツールキットの制限について不満を言う人がいます。 RGtk2は興味深いようで、チュートリアルもいくつかあります。 gWidgetsは、パッケージ ビネットを飾る珍しいツールキットの 1 つです。

実際の Web アプリケーションは必要ありませんが、R を JavaScript/HTML とインターフェースすることは興味深いオプションです。私たちのほとんどと同じように、私はこの環境に精通しており、アプリは多くの JS ライブラリの恩恵を受けることができます。問題は、美しいShiny サーバーrApacheが Linux 専用であり、これはおそらくConcertoにも当てはまります。代わりにRserveは Windows で動作し、公式の JS クライアントはありませんが、サードパーティのrserve-jsnode.js clientを見つけました。 rApache と同じ作者によるRookは、プラットフォームに依存しないはずです (そうではありませんか?)。 R サーバー ページHttpDaemon動作する可能性がありますが、関数の例やHttpRequestビネットまたはリファレンスマニュアルには例がありませんでした. gWidgetsWWWでいくつかの簡単な例を実行します。動作しますが、HTML コードを変更する可能性がなくても、既製の Web ページが生成されるようです。

編集

私の質問を明確にしましょう。私はあなたの個人的な好みを調査しているわけではありません。ここで言及されている技術または製品は、非常に新しく、普及していない傾向があります。何ヶ月ものコードを投資した後で、まだ準備が整っていない、または本番環境に適合していないことが判明するのは非常に不快です。そこで、上記の環境で働くことができるかどうか(あなたの主観的な好みではありませんが)知りたいです。

4

2 に答える 2

3

私たちはrapporter.netで他のいくつかのテクノロジーに加えて、 rApacheRuby on Railsで構築された一種の webappを作成しました R のユーザー フレンドリーなオンライン フロントエンドです。私たちの機能をチェックすることを強くお勧めします。サーバー側、CMS、その他の退屈な問題を処理しないことで大量のリソースを節約できるかもしれませんが、統計ツールに集中できるからです。 .

とにかく、私たちのものを宣伝することに加えて、私の経験を要約させてください:

  • rApache は確実に実稼働の準備ができていますが、かなりステートレスなアルゴリズムに対してのみであることに注意してください (デフォルトでは、Apache は多数のワーカーを開始するため、同じユーザー/クライアントが各クエリで異なる R セッションと対話することになります)。たとえば、RServe はステートフルなアプリケーションのより良い代替手段です。
  • 私の知る限り、Shinyサーバーは、専用の統計ツールとアプリケーションをホストすることを目的としています-DBバックエンドの有無にかかわらず、Rapplicationサービスと同様に、カスタマイズ可能なユーザー入力を使用します. そのためには、ある程度の技術的スキルが必要であり、(HA) 環境を提供するには、あまりにも多くの追加リソースが必要になる場合があります。これは、要件と期待に基づいて、大きなメリットまたはデメリットになる可能性があります。
  • このような問題の最大の問題は、ユーザーがサーバーと対話するため (クラウドでホストされている場合)、R コネクタ バックエンドだけでなく、セキュリティ ( RAppArmorsandboxRの使用など) である必要があります。デスクトップ アプリケーションは開発者にとってもう少し使いやすいですが、すべての主要なプラットフォームをサポートすることは、タブレットやスマートフォンの時代では不可能な場合があります。クラウド アプリは、ブラウザーを備えた任意のデバイスで実行できます。
  • 要件に基づいて最適なソリューションを選択する必要があります。本番用の準備が整ったツールがたくさんあり、それぞれに独自の利点と特別な使用例があります。どの関連パッケージ/アプリケーションがまだ開発中でサポートされているかを確認し、次のようないくつかの質問に答えてください。
    • データベースに接続する必要はありますか?
    • どのタイプのユーザー入力が必要ですか (例: パラメータ、データセット、R コマンドのみ)?
    • デスクトップ/クラウド アプリ? 本気ですか?後者の場合、セットアップ、メンテナンス、およびサポートを希望しますか?
    • 計算負荷の高いタスクを実行していますか?
    • 反復的で標準化されたタスクでユーザーを支援するアプリケーションを実装したいですか、それともむしろ一般的で拡張可能なソフトウェアを提供したいですか?
    • インタラクティブなセットアップを備えた応答性の高いアプリケーションが必要ですか、それをレポート目的で使用しますか?
    • どの出力形式が必要ですか?
    • 他にどのようなテクノロジーに精通していますか? 過去に MySQL、PHP、Java、または C# を使用したことがある場合、NoSQL バックエンドを使用して Meteor ベースのアプリを構築するのはかなり困難です。
于 2013-06-16T23:42:07.733 に答える