配信レイヤー

Gateway

Gateway は、アプリケーション、エージェント、外部連携が単一のインターフェースに接続し、複数の Center にまたがってデータの照会、ストリームの購読、プロシージャの呼び出しを行う、ガバナンスされた層です。

ファブリックにおける役割

多数の Center の前に立つ単一のインターフェース

Center は状態を保持し、単一の Center でもアプリケーションに直接サービスを提供できます。しかし規模が大きくなると、アセットクラス、リージョン、ライブの状態と履歴の境界といった単位で分割されます。上位の層がなければ、すべての利用側がその分割を引き継ぎ、分割が変わるたびに改修が必要になります。

Gateway はデータ基盤全体の窓口となります。リクエストは背後の Center 群にまたがって解決され、Center は再起動なしに追加・削除でき、エンタイトルメントと監査は入口で適用されます。さらにキャッシュ、条件付きストリーム、ファンアウトにより、利用側が増えても下位のインフラへの負荷が比例して増えることはありません。

利用側は固定された契約に依存します。その背後は自由に変えられます。

複数の Center の前に立ち、ガバナンスされた単一のインターフェースでクライアントアプリケーション、エージェント、BIツールにサービスを提供する Gateway

主な機能

アクセス、効率、統制を1つの層で

データ基盤の複雑さから利用側を切り離す

  • エイリアス
  • 仮想テーブル
  • 仮想ストリーム
  • 仮想プロシージャ

帯域幅とパフォーマンスの最適化

  • データキャッシュ
  • 条件付きストリーム
  • 動的サブスクリプション
  • ファンアウト・サブスクリプション

ガバナンスを組み込んだスケーラブルなインフラ

  • 負荷分散
  • 動的な構成と自己修復
  • TLS、SSO・RBAC・OAuth に対応
  • アクセスジャーナル

パターン例

Gateway の導入パターン

シャーディングされたデータ基盤上の仮想テーブル

  • 複数のシャードを1つのテーブルとして提示し、Gateway がシャードをまたぐクエリを計画
  • 利用側は単一の Center に対するのと同じ SQL を記述
  • スキーマの一致は不要。1つのシャードに列を追加しても、他のシャードは変更不要
シャーディングされた複数の Center を、1つの論理テーブルとして利用側に提示する Gateway
仮想テーブル。複数の Center と両方のストアにまたがる1つの論理テーブル。

ファンアウト・サブスクリプション

  • トレーディングフロアの需要は大きく重複。同じ銘柄、隣接する列、わずかに異なるフィルター
  • 個別に処理すれば、ソースは利用者数に比例した負荷を負う
  • Gateway は重複を上流の単一サブスクリプションに集約し、各購読者にはそれぞれにフィルタリングした行と列を配信
重複するサブスクリプションを上流の1つに集約し、購読者ごとのフィルターで再配信する様子
ファンアウト・サブスクリプション。上流に1つ、下流に多数。

現在の全体状態をキャッシュ

  • すべての購読者は、更新の適用を始める前に現在の全体像を必要とする
  • フロア全体で開かれるダッシュボードは、セッションごとにそれを再要求
  • Gateway が共通のクエリと初期スナップショットをキャッシュし、Center は新しい処理だけを担当
Center にアクセスすることなく、キャッシュしたクエリ結果とスナップショットを繰り返し利用する側へ提供する Gateway
データキャッシュ。繰り返される要求に一度で応答。

リージョンをまたぐ Gateway 間連携

  • Gateway が他の Gateway を呼び出すため、デスクはローカルに接続し、リージョン間のリクエストは Gateway 間を経由
  • 利用者ごとのリージョン間接続は不要
  • 各拠点が独自の入口、キャッシュ、ジャーナルを保持しつつ、背後のデータ基盤は1つの論理データセットのまま
2つのリージョンの Gateway が相互に呼び出し、利用側がローカルの入口にアクセスできる構成
Gateway 間連携。各リージョンにローカルの入口。

アプリケーション配信

Gateway がデータを配信し、Web Server がそれをアプリケーションにする。

グリッド、ピボット、チャート、ツリーで組み立てる、目的に合わせたリアルタイムアプリケーション。ファブリックがすでに保持するデータの上で動作します。