Exploratory コラボーレーション・サーバーの内部アーキテクチャー

このノートでは、Exploratory コラボーレーション・サーバーの内部アーキテクチャーを説明します。

Exploratory コラボーレーション・サーバーの各コンポーネント

Exploratory コラボーレーション・サーバーの各コンポーネントについて説明します。それぞれのコンポーネントは、Dockerコンテナとして実装されています。

Nnigxサーバー

コラボレーション・サーバーのフロントエンドで、Exploratoryデスクトップや、ウェブブラウザからのリクエストを最初に受け取るウェブサーバーです。SSL接続などの処理の後、リクエストをExpressサーバーに中継します。

Expressサーバー

コラボレーション・サーバーのバックエンドで、コラボレーション・サーバーが行う実質的な作業を担うコンポーネントです。Rによるデータ処理、計算は、R/Rserveにコマンド送信することによって行います。

スケジューラー

スケジュールされたデータ更新ジョブを行うコンポーネントです。Rによるデータ処理、計算は、R/Rserveにコマンド送信することによって行います。

R/Rserve

Rによるデータ処理、計算はこのコンポーネントが担っています。

インサイトのパブリッシュ

ダッシュボード、ノート、チャートなどのインサイトがコラボレーション・サーバーにパブリッシュされるときは、以下の図のように、Exploratoryデスクトップから、インサイトがEDFファイルとして、Nginxをとおして、Expressにアップロードされます。

インタラクティブ・セッション

インタラクティブ・セッションでは、ウェブブラウザとExpressが、Socket.IOというプロトコルで、Nginxをとおして接続されます。必要なRによるデータ処理、計算は、R/Rserveで行われます。

スケジュールされたデータ更新ジョブ

スケジュールされたデータ更新ジョブは、スケジューラーがExpressにあるEDFを、ダウンロード、更新して、再アップロードすることによって行われています。必要なRによるデータ処理、計算は、R/Rserveで行われます。