配信レイヤー
Gateway
Gateway は、アプリケーション、エージェント、外部連携が単一のインターフェースに接続し、複数の Center にまたがってデータの照会、ストリームの購読、プロシージャの呼び出しを行う、ガバナンスされた層です。
ファブリックにおける役割
多数の Center の前に立つ単一のインターフェース
Center は状態を保持し、単一の Center でもアプリケーションに直接サービスを提供できます。しかし規模が大きくなると、アセットクラス、リージョン、ライブの状態と履歴の境界といった単位で分割されます。上位の層がなければ、すべての利用側がその分割を引き継ぎ、分割が変わるたびに改修が必要になります。
Gateway はデータ基盤全体の窓口となります。リクエストは背後の Center 群にまたがって解決され、Center は再起動なしに追加・削除でき、エンタイトルメントと監査は入口で適用されます。さらにキャッシュ、条件付きストリーム、ファンアウトにより、利用側が増えても下位のインフラへの負荷が比例して増えることはありません。
利用側は固定された契約に依存します。その背後は自由に変えられます。
主な機能
アクセス、効率、統制を1つの層で
データ基盤の複雑さから利用側を切り離す
- エイリアス
- 仮想テーブル
- 仮想ストリーム
- 仮想プロシージャ
帯域幅とパフォーマンスの最適化
- データキャッシュ
- 条件付きストリーム
- 動的サブスクリプション
- ファンアウト・サブスクリプション
ガバナンスを組み込んだスケーラブルなインフラ
- 負荷分散
- 動的な構成と自己修復
- TLS、SSO・RBAC・OAuth に対応
- アクセスジャーナル
パターン例
Gateway の導入パターン
シャーディングされたデータ基盤上の仮想テーブル
- 複数のシャードを1つのテーブルとして提示し、Gateway がシャードをまたぐクエリを計画
- 利用側は単一の Center に対するのと同じ SQL を記述
- スキーマの一致は不要。1つのシャードに列を追加しても、他のシャードは変更不要
ファンアウト・サブスクリプション
- トレーディングフロアの需要は大きく重複。同じ銘柄、隣接する列、わずかに異なるフィルター
- 個別に処理すれば、ソースは利用者数に比例した負荷を負う
- Gateway は重複を上流の単一サブスクリプションに集約し、各購読者にはそれぞれにフィルタリングした行と列を配信
現在の全体状態をキャッシュ
- すべての購読者は、更新の適用を始める前に現在の全体像を必要とする
- フロア全体で開かれるダッシュボードは、セッションごとにそれを再要求
- Gateway が共通のクエリと初期スナップショットをキャッシュし、Center は新しい処理だけを担当
リージョンをまたぐ Gateway 間連携
- Gateway が他の Gateway を呼び出すため、デスクはローカルに接続し、リージョン間のリクエストは Gateway 間を経由
- 利用者ごとのリージョン間接続は不要
- 各拠点が独自の入口、キャッシュ、ジャーナルを保持しつつ、背後のデータ基盤は1つの論理データセットのまま
アプリケーション配信
Gateway がデータを配信し、Web Server がそれをアプリケーションにする。
グリッド、ピボット、チャート、ツリーで組み立てる、目的に合わせたリアルタイムアプリケーション。ファブリックがすでに保持するデータの上で動作します。