CSP ベースの Web アプリケーションの概要
InterSystems IRIS® データ・プラットフォームは、Web ユーザ・インタフェースを作成できるようにするテクノロジを提供します。これまでの経緯から、このテクノロジは CSP として知られ、その成果が CSP ベースの Web アプリケーションです。
CSP は、ブラウザが認識する前に途中で HTTP 要求を捉え、それをブラウザに直接書き込む簡単な方法を提供します。これは、ユーザが生成する Web ページを完全に制御できるようになることを意味します。必要な JavaScript をページに追加するだけで済むため、必要に応じて CSP をサードパーティの JavaScript ライブラリと組み合わせて使用できます。
CSP ベースの Web アプリケーションのコンポーネント
アプリケーション開発者の観点からすると、CSP ベースの Web アプリケーションは InterSystems IRIS サーバ上の以下の要素で構成されます。
-
REST オプションではなく CSP/ZEN オプションを使用するように構成された Web アプリケーション定義。
Web アプリケーション定義は、許可される認証メカニズム、コードを実行する InterSystems IRIS ネームスペース、特定の目的に使用するカスタム・ページ、タイムアウト、静的ファイルの処理などを制御します。
-
1 つ以上の CSP ページ・クラス。これらのクラスは、HTTP 要求への応答として完全な HTTP 要求を生成します。CSP ページ・クラスでは、要求およびセッション情報に簡単にアクセスすることができ、ユーティリティ・メソッドによって Cookie の管理や CGI 変数へのアクセスなどが可能になります。
-
外部の JavaScript ファイル、スタイル・シート、画像ファイル、静的 HTML ファイル、および必要に応じてその他のリソース。これらのリソースは同じサーバ上に置くことも、他のサーバ上に置くことも、あるいはその組み合わせで使用することもできます。
アーキテクチャには、以下の追加のコンポーネントも存在します。
-
Web サーバ (InterSystems IRIS での使用がサポートされているもの)。
-
Web ゲートウェイ。Web サーバと InterSystems IRIS サーバ間の仲介として機能します。Web ゲートウェイは、これらのサーバへの接続プールを維持します。
Web ゲートウェイの構成には、InterSystems IRIS サーバで実行中の Web アプリケーションの定義が含まれます。これらの定義により、Web ゲートウェイは InterSystems IRIS サーバ上の正しい Web アプリケーションに要求をルーティングできます (次に説明するように、CSP サーバを介して要求を送信します)。
-
CSP サーバ。これは、InterSystems IRIS サーバで実行される専用プロセスで、Web ゲートウェイからの要求を待機し、必要に応じてそれらを処理します。各 InterSystems IRIS サーバは、必要な数だけ CSP サーバ・プロセスを実行できます (マシン・タイプによる制限は適用されます。ライセンスの計算では、CSP サーバはカウントされません)。
情報の流れ
CSP ベースの Web アプリケーションでは、要求と応答のプロセスは以下のようになります。
-
HTTP クライアント (通常は Web ブラウザ) は、HTTP を使用して Web サーバにページを要求します。
-
Web サーバの構成方法によって、Web サーバは要求を CSP 要求として認識し、それを Web ゲートウェイに転送します。
-
Web ゲートウェイは、通信する InterSystems IRIS サーバを決定し、そのターゲット・システム上の CSP サーバに要求を転送します。
-
CSP サーバは要求を処理し、要求が静的ファイルに対するものか CSP クラスに対するものかを判断します。
CSP サーバには、%CSP.StreamServerOpens in a new tab クラスであるストリーム・サーバが含まれます。ストリーム・サーバは、ファイルやその他のストリームの処理を行います。要求が静的ファイルに対するものであれば、ストリーム・サーバはローカル・ファイル・システム内でファイルを検索し、それをエンコードする方法を決定してパッケージ化します。
要求がクラスに対するものであれば、CSP サーバはクラスの Page() メソッドを呼び出し、それを受けてこのメソッドがそのクラスで定義されているコールバック・メソッドを呼び出します。
-
CSP サーバは要求されたコンテンツを Web ゲートウェイに返し、Web ゲートウェイはそれを Web サーバに渡します。
-
Web サーバはコンテンツをブラウザに送信し、ブラウザでコンテンツが表示されます。