ECP
Caché の最も強力で固有な特徴の 1 つは、多数のサーバ・システム間でデータとアプリケーション・ロジックを効率的に分散できるということです。
この機能の基礎となるテクノロジを ECP (Enterprise Cache Protocol) といいます。この分散データ・キャッシュ・アーキテクチャは、異種のサーバ・システムで構成されるネットワークに分散されるデータとロックを管理します。
他の “多層” アーキテクチャと異なり、ECP は基本的に構成上のオプションです。つまり、特殊なコードや開発技術を使用して、分散データベース・アプリケーションを生成する必要はありません。このため、他の技術に比べ、以下の重要な利点があります。
-
アプリケーションを縮小することも拡大することもできます。真にスケーラブルなアプリケーションは、小規模システムでも大規模システムでも、コード・ベースを変更せずに実行できます。Caché では、1 つのサーバで構成される小規模システムを展開することも、同じアプリケーションを ECP を使用した複数のサーバで構成される大規模サイトにも展開することができます。
-
容易にアプリケーションを開発できます。 アプリケーション開発者は、スケーラビリティやインフラの問題に頭を悩ませることはなく、核である顧客指向の機能に焦点を当てることができます。
-
アプリケーションが信頼性のあるものになります。ECP は、ユーザの介入なしに、大半の実行時の障害 (計画または計画外のシステム停止など) から自動的に回復します。
この概要では、以下の項目について説明します。
ECP の特徴
ECP には以下の特徴があります。
-
自動処理 :ECP が一度構成されると、アプリケーション・サーバとデータ・サーバ間の接続を自動的に確立、維持します。
-
フェイルセーフ処理 :ECP は、アプリケーション・サーバとデータ・サーバ・システム間の接続が (計画または計画外に) 切断された場合、自動的に回復しようとします。ECP は、接続が再確立されるときに、システムの処理状態を自動的にリストアします。開いているトランザクションをすべて再開し、ロックをリストアし、アプリケーション・サーバによって行われたデータベースの変更をすべて回復します。
接続を妥当な時間内に回復できない場合は、その接続に関連する未処理のトランザクションはすべて自動的にロールバックされます。
-
混在するネットワーク :ECP が構成されている Caché システムは、さまざまなハードウェアおよびオペレーティング・システム・プラットフォームで実行できます。データ形式の変換が必要な場合、ECP が自動的にそれを管理します。
-
共有ネットワーク・バッファ・キャッシュ :ECP は、Caché の汎用データベース・バッファ・プールの一部を使用して、ネットワークから取得したデータをキャッシュします。このキャッシュは、ECP アプリケーション・サーバ・システム上のすべての Caché プロセス間で共有されます。
-
TCP/IP ベースの堅牢な Transport 層 :ECP は構成と維持が容易な、標準的な TCP/IP プロトコルをデータ転送に使用します。
-
ネットワーク帯域幅の効率的な使用 :ECP は、最新の高性能ネットワーキング・インフラストラクチャの利点を最大限に活かすように設計されています。
高可用性システムの提供の他に、ECP の自動処理により、システムの管理が容易になります。以下はその例です。ECP アプリケーション・サーバ・システム側では何も操作しなくても、ECP データ・サーバを一時的にオフラインにすることにより、ソフトウェアのアップグレードとリストアができます。
ECP の使用
ECP を使用する主な理由は以下のとおりです。
-
特に計算能力により使用範囲が決定するアプリケーション (つまり、入出力処理ではなく、使用可能な CPU サイクルによって制限されるアプリケーション) に対し、より優れたスケーラビリティを提供する。
-
高可用性システムのアプリケーション・フェイルオーバー戦略の一部として。詳細は "Caché 高可用性ガイド" の “システム・フェイルオーバーの方法” と “ECP および高可用性” の章を参照してください。
ECP のシステムを構成する詳細は、“分散システムの構成” の章を参照してください。
ECP のアーキテクチャ
ECP のアーキテクチャと処理は、概念的には単純です。 ECP は、複数の Caché システム間で、データ、ロック、実行可能コードを効率的に共有する方法を提供します。データとコードはリモートで保存されますが、ローカルにキャッシュされ、最小限のネットワーク・トラフィックで効果的にアクセスできます。
ECP を使用したアプリケーション開発と設計の詳細は、“分散アプリケーションの開発” の章を参照してください。
データベースとネームスペース
ECP の機能をよりいっそう理解するには、まずデータベース、ネームスペース、キャッシュが Caché で動作する仕組みを再検証することです。
Caché は、永続多次元配列 (グローバル) と実行可能コード (ルーチン) というデータを、データベースと呼ばれる 1 つ以上の物理構造に格納します。データベースは、ローカルのオペレーティング・システムに格納された 1 つ以上の物理ファイルで構成されます。Caché システムは、(通常) 複数のデータベースを持っています。
それぞれの Caché システムは、データベース・キャッシュを保持します。データベース・キャッシュとは、ローカルの共有メモリ・バッファで、物理データベースから取得されるデータをキャッシュするために使用します。このキャッシュは、データ・アクセスに必要な入出力処理の量を大幅に削減し、Caché の性能を大幅に向上させます。
Caché アプリケーションは、ネームスペースを使用してデータにアクセスします。ネームスペースは、1 つ以上の物理データベースに格納されたデータ (グローバルとルーチン) を、論理的に表示します。Caché システムは、(通常) 複数のネームスペースを持っています。
Caché は、論理ネームスペースで表示されるデータを 1 つ以上の物理データベースにマップできます。 このマッピングにより、アプリケーション・ロジックを変更せずに、アプリケーションの物理的な配置 (使用されるディスク・ドライブなど) を変更できる強力なメカニズムが実現します。複数のネットワーク・システム間でアプリケーションをほとんど変更しなくても、アプリケーションを再配置できるのは、まさにこのメカニズムと ECP が機能しているためです。
ECP アプリケーション・サーバとデータ・サーバ
ECP 構成は、TCP/IP ベースのネットワークで、互いの参照が可能な多数の Caché システムで構成されます。ECP 構成で Caché システムが果たす役割には、以下の 2 つがあります。
-
ECP データ・サーバ — 1 つ以上の ECP アプリケーション・サーバ・システムにデータを提供する Caché システム。
-
ECP アプリケーション・サーバ — 1 つ以上の ECP データ・サーバ・システムから提供されたデータを使用する Caché システム。
Caché システムは、同時に ECP データ・サーバとしても ECP アプリケーション・サーバとしても稼動することができます。ただし、1 つの Caché インスタンスは、別の ECP データ・サーバのアプリケーション・サーバとして取得したデータに対して、ECP データ・サーバとして機能することはできません。
ECP 構成の各 ECP データ・サーバには、以下の役割があります。
-
ローカル・データベースにデータを格納します。
-
アプリケーション・サーバが古いデータを参照しないように、さまざまな ECP アプリケーション・サーバ・システムのデータベース・キャッシュの整合性を維持します。
-
ネットワーク経由のロックの分散を管理します。
ECP 構成では、各 ECP アプリケーション・サーバには、以下の役割があります。
-
アプリケーションが、データ・サーバに格納されたデータを要求するたびにその ECP データ・サーバへの接続を確立します。
-
ECP データ・サーバへのすべての接続状態を監視します。接続が切断されたり、接続に障害が発生すると、ECP アプリケーション・サーバはそれを回復しようとします。
-
ネットワークから取得したデータをキャッシュ内で維持します。このキャッシュは、リモート・データへのアクセスに必要な、ネットワーク処理の負荷を大幅に削減します。
ECP 接続とリカバリ
ECP は、アプリケーション・サーバとデータ・サーバ・システム間のネットワーク接続を、自動的に確立し維持します。接続が切断されると、ECP は自動的に再接続し、可能な場合はシステムの処理状態をリストアします。
ECP 接続の詳細は、“分散アプリケーションの監視” を参照してください。
ECP リカバリの詳細は、“分散アプリケーションの開発” を参照してください。