このノートでは、Exploratory コラボーレーション・サーバーの内部アーキテクチャーを説明します。
Exploratory コラボーレーション・サーバーの各コンポーネントについて説明します。それぞれのコンポーネントは、Dockerコンテナとして実装されています。
コラボレーション・サーバーのフロントエンドで、Exploratoryデスクトップや、ウェブブラウザからのリクエストを最初に受け取るウェブサーバーです。SSL接続などの処理の後、リクエストをExpressサーバーに中継します。
コラボレーション・サーバーのバックエンドで、コラボレーション・サーバーが行う実質的な作業を担うコンポーネントです。Rによるデータ処理、計算は、R/Rserveにコマンド送信することによって行います。
スケジュールされたデータ更新ジョブを行うコンポーネントです。Rによるデータ処理、計算は、R/Rserveにコマンド送信することによって行います。
Rによるデータ処理、計算はこのコンポーネントが担っています。
ダッシュボード、ノート、チャートなどのインサイトがコラボレーション・サーバーにパブリッシュされるときは、以下の図のように、Exploratoryデスクトップから、インサイトがEDFファイルとして、Nginxをとおして、Expressにアップロードされます。
インタラクティブ・セッションでは、ウェブブラウザとExpressが、Socket.IOというプロトコルで、Nginxをとおして接続されます。必要なRによるデータ処理、計算は、R/Rserveで行われます。
スケジュールされたデータ更新ジョブは、スケジューラーがExpressにあるEDFを、ダウンロード、更新して、再アップロードすることによって行われています。必要なRによるデータ処理、計算は、R/Rserveで行われます。