グリッドのコンポーネント

Grid

ルーター

ルーターがリクエストを正しいコンポーネントに転送します。

これはGridのエントリポイントであり、すべての外部リクエストはGridによって受信されます。 ルーターの動作は、リクエストによって異なります。 新しいセッション要求の場合、ルーターはそれをディストリビュータに転送します(新しいセッションの作成が処理されます)。 リクエストが既存のセッションに属している場合、ルーターはセッションIDをセッションマップに送信し、 セッションマップはセッションが実行されているノードを返します。 この後、ルーターはリクエストをノードに転送します。

ルーターは、プロセスで不要なコンポーネントをオーバーロードすることなく、 より適切に処理できるコンポーネントにリクエストを送信することにより、 Grid内の負荷のバランスをとることを目的としています。

ディストリビューター

ディストリビューターは、すべてのノードとそのケイパビリティを認識しています。 その主な役割は、新しいセッション要求を受け取り、セッションを作成できる適切なノードを見つけることです。 セッションが作成されると、ディストリビューターは、 セッションIDとセッションが実行されているノードとの関係をセッションマップに格納します。

ノード

ノードはGrid内に数回存在することができます。 各ノードは、それが実行されているマシンの利用可能なブラウザのスロットを管理します。

ノードは、イベントバスを介して自身をディストリビューターに登録し、その構成は登録メッセージの一部として送信されます。

デフォルトでは、ノードは、実行されているマシンのパスで使用可能なすべてのブラウザードライバーを自動登録します。 また、ChromiumベースのブラウザーとFirefoxで使用可能なCPUごとに1つのスロットを作成します。 SafariおよびInternet Explorerの場合、作成されるスロットは1つだけです。 特定の構成を通じて、Dockerコンテナーでセッションを実行できます。 次のセクションで構成の詳細を確認できます。

ノードは受信したコマンドを実行するだけで、評価、判断、制御は行いません。 ノードが実行されているマシンは、他のコンポーネントと同じオペレーティングシステムを持つ必要はありません。 たとえば、WindowsノードにはInternet Explorerをブラウザーオプションとして提供する機能がありますが、 これはLinuxまたはMacでは不可能です。

セッションマップ

セッションマップは、セッションIDとセッションが実行されているノードの情報を保持するデータストアです。 これは、リクエストをノードに転送するプロセスにおけるルーターのサポートとして機能します。 ルーターは、セッションIDに関連付けられたノードをセッションマップに要求します。 完全分散モードでGridを開始する場合、セッションマップは、開始する必要がある最初のコンポーネントです。

イベントバス

イベントバスは、ノード、ディストリビュータ、およびセッションマップ間の通信パスとして機能します。 Gridは、メッセージを介して内部通信の大部分を行い、高価なHTTP呼び出しを回避します。

Gridの役割

Grid3では、コンポーネントはハブとノードであり、スタンドアロンモードでGridを起動することでそれらを一緒に実行することが可能でした。 同じ概念がGrid4でも利用可能であり、上記のコンポーネントのいくつかをグループ化することでハブを実行することが可能です。 また、スタンドアロンモードですべてのコンポーネントを一緒に実行することも可能です。

ハブ

ハブは、次のコンポーネントの結合です。

  • ルーター
  • ディストリビューター
  • セッションマップ
  • イベントバス

従来のハブとノードのセットアップを可能にします。

スタンドアロン

前述のように、スタンドアロンはすべてのコンポーネントの結合であり、ユーザーの目には、それらは1つのコンポーネントとして実行されます。 これには、ハブの一部であるすべてのコンポーネントと1つのノードが含まれます。 スタンドアロンモードで起動すると、1つの完全に機能するGridを使用できます。