Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché Server Pages 入門

Caché Server Pages (CSP) は、インタラクティブな CSP アプリケーションを作成するために使用するアーキテクチャおよびツールセットです。CSP テクノロジは、高性能で拡張性の高い Web アプリケーションの構築、展開を実現します。CSP では、通常 Caché データベースのデータを使用して、Web ページの動的な生成が可能です。“動的” とは、同じページであっても、最近変更されたデータ・ソースから要求があるたびに異なるコンテンツが表示されることを意味します。

CSP は、さまざまな用途に使用できます。以下の機能があります。

  • 常に変化する在庫データを表示します。

  • 何千ものアクティブ・ユーザがいる Web コミュニティをサポートします。

  • Caché データベースに保存されたユーザ情報を基にページをパーソナライズします。

  • それぞれのユーザの要求やそのセキュリティ許可に応じて、個々のユーザ・データを基にページをカスタマイズします。

  • HTML、XML、画像などのバイナリ・データやテキスト・データを提供します。

  • 高性能な Caché データベースと連携しているため、高速処理を実現します。

CSP は、データベース・アプリケーションに最適です。組み込みの Caché データベースへの高速アクセスに加え、以下に示す、Web ベースのデータベース・アプリケーションに必要なさまざまな機能を提供します。

  • セッション管理

  • ページ認証

  • Web ページからのインタラクティブなデータベース処理の実行

CSP は、2 種類の Web 開発方法をサポートします。

  • クラスを使用してアプリケーションを開発するために、CSP には、オブジェクト・フレームワークが用意されています。

  • HTML ファイルを使用してアプリケーションを開発します。CSP に用意されている HTML ベースのマークアップ言語を使用して Web ページにオブジェクトやサーバ側のスクリプトを記述できます。アプリケーションでこれらのテクニックを組み合わせて使用すると、その柔軟性を最大限に活用した開発を行うことができます。

CSP および Zen

Zen は、Caché および Ensemble に含まれている、データが豊富な Web アプリケーションを迅速に作成するためのアプリケーション・フレームワークです。新しい Web ベース・アプリケーションを構築する場合、または既存の CSP ベース・アプリケーションを強化する場合は、"Zen の使用法" の "Zen フレームワーク" を参照してください。

Note:

Zen をベースとしたアプリケーションを実行するには、[静的ファイルの提供] オプションを有効にし、Web サーバを適切に構成することが必要です。詳細は、このドキュメントの "静的ファイル" のセクションを参照してください。

はじめに

このドキュメントでは、Web サーバと Caché がインストールされていることを前提にしています。このセクションでは、CSP アプリケーションの作成に着手するために必要な点について説明します。

プロダクション Web サーバおよび Caché 付属のプライベート Web サーバ

Caché には、管理ポータルを実行する最小限の構成の Web サーバが付属しており、プライベート Web サーバと呼ばれます。プライベート Web サーバでは、付属の CSP サンプルを表示したり、CSP ページを実行したりできます。プロダクション環境では、このサーバを使用して本格的な CSP アプリケーションを実行することはできません。この目的のためには、サポート対象の Web サーバをインストールして、独立した完全なサーバ環境を構築する必要があります。このようなサーバとして、Apache Web サーバ、Microsoft IIS Web サーバ、Sun Web サーバなどがあります。

プライベート Web サーバは、Apache Web サーバの最小ビルドをベースにしています。また、非標準の TCP ポートで待ち受けるように構成されています。このポートは既定では 57772 です (一般的には、既知の HTTP サーバ・ポート 80 が使用されますが、このサーバの場合は異なります)。同じホストで動作する他の Web サーバ・インストール環境に、プライベート Web サーバが影響を及ぼすことはありません。

プライベート Web サーバは、OpenVMS には提供されていません。

プライベート Web サーバは、OpenVMS には提供されていません。Caché の OpenVMS インスタンスの CSP ページにアクセスするには、外部 Web サーバを構成する必要があります。Web サーバの構成に (そのオプションを選択することによって) Caché インストーラを使用しない場合は、外部 Web サーバを手動で構成する必要があります。詳細は、"CSP ゲートウェイ構成ガイド" の OpenVMS でのインストール (すべての接続オプション) のセクションの手順 5 を参照してください。

OpenVMS システムの管理ポータルにアクセスするために、別のオペレーティング・システム上の Web サーバを使用している場合、この外部 Web サーバは、CSP ゲートウェイを経由して静的ファイルを処理するように構成する必要があります。詳細は、"CSP ゲートウェイ構成ガイド" を参照し、関連するオペレーティング・システムおよびオプションについて CSP へのファイルの種類の追加登録 というセクションを探してください。

Web サーバと CSP ゲートウェイの構成

Caché インストールでは、一般的な Web サーバとオペレーティング・システムに対応する Web サーバ構成および CSP ゲートウェイ構成を実行します。

Caché および CSP ゲートウェイのインストール後は、"CSP ゲートウェイ構成ガイド" を参照して、使用システムに対してファイル拡張子をマップします。また、このドキュメントでは特殊な CSP ゲートウェイ構成についての情報も記載しています。

リモート・サーバ (つまり、Caché インスタンスを実行していないシステム) に CSP ゲートウェイをインストールするには、2 つある方法のいずれかを使用できます。リモート・サーバで、次のいずれかの操作が可能です。

  • Caché インストール・スクリプトを実行して、Web サーバのみのインストールを選択します。

  • スタンドアロンの CSPGateway インストール・スクリプトを実行します。このスクリプトでは、名前、アドレス、ポート、オプションのパスワードなどのリモート Caché サーバの情報を要求します。この情報に基づいて自動的に csp.ini が構成されます。

Caché および CSP ゲートウェイのインストール後は、"CSP ゲートウェイ構成ガイド" を参照して、使用システムに対してファイル拡張子をマップします。

Note:

実行時エラーを回避するために、CSP 上で実行している高可用性構成では、スティッキー・セッションのサポートを有効にしたハードウェア・ロード・バランサを使用することをお勧めします。 詳細は、"Caché 高可用性ガイド" の “CSP ゲートウェイの考慮事項” のセクションを参照してください。

必要な事前知識

CSP を効率よく使用するためには、以下の知識が必要です。

  • Caché オブジェクトおよび ObjectScript

  • HTML

  • JavaScript

  • SQL

HTML や JavaScript については、以下の文献等を参照してください。

CSP サンプル

Caché には、CSP ページのサンプルが用意されています。以下の手順で、これらのサンプルを表示できます。

  1. Caché を起動します。

  2. CSP サンプルを表示するには、使用しているマシン上で Web サーバが稼動していることを確認します。

  3. ブラウザを起動し、プライベート Web サーバ (http://localhost:57772/csp/samples/menu.cspOpens in a new tab) または外部 Web サーバ (http://localhost/csp/samples/menu.cspOpens in a new tab) を使用して CSP の [サンプル] メニューに移動します。

  4. 通常のまたはロックされたセキュリティ機能で Caché をインストールした場合、ログイン・ページが表示される場合があります。その場合はログインします。

  5. Caché は、それぞれの短い説明と共にサンプル CSP ページのリストを表示します。目的のページをクリックします。

CSP ドキュメント

CSP に関するドキュメントは、以下のとおりです。

CSP をセットアップまたは構成するには、以下を参照してください。

  • CSP ゲートウェイの構成に関するオンライン・ヘルプである CSP Web ゲートウェイのドキュメント は、管理ポータルから CSP ウェブゲートウェイ管理ページで利用できます。

    システム, 構成 ページに移動し、[CSP ゲートウェイ管理]→[進む]→[ヘルプ] の順にクリックします。既定では、この操作でプライベート Web サーバにアクセスできます。使用しているプロダクション Web サーバの CSP ウェブゲートウェイ管理ページを表示するには、例えば、以下の URL で localhost または localhost:<port_no>localhost:57772 に置き換えます。

    http://localhost/csp/bin/Systems/Module.cxw
    
  • CSP ゲートウェイ構成ガイド:Caché をインストールすると、CSP ゲートウェイが自動的にインストールされ、ほとんどのサイトで動作します。CSP ゲートウェイを手動で構成する必要がある場合は、詳細構成ガイドを使用します。

初めての CSP ページの生成

このセクションでは、2 とおりの異なる方法で Hello, World という CSP ページを生成する方法を説明します。

  • Web ページ・オブジェクトによるクラス・ベースの CSP ページの作成

  • マークアップ HTML ファイルを使用した HTML ベースの CSP ページの作成

クラス・ベースの CSP ページの作成

%CSP.PageOpens in a new tab のサブクラスを生成して、その OnPage メソッドをオーバーライドすることで、CSP ページを生成します。このメソッドによって主デバイスに出力された内容はすべて、自動的に Web ブラウザに送信され、Web ページとして表示されます。

プログラミングで Hello World CSP ページを生成するには、以下の手順を実行します。

  1. スタジオを開始します。

  2. [ファイル]→[プロジェクトの新規作成] を選択して、ローカル・データベースの USER ネームスペースに新規プロジェクトを作成します。

  3. [ファイル]→[新規作成]→[Caché クラス定義] を選択します。

  4. ウィザードの最初のページで、パッケージ名に「Test」、クラス名に「Hello」と入力します。

  5. 次のページで、クラス・タイプに CSP を選択します。

  6. [完了] をクリックします。スタジオのクラス・エディタに CSP の新しいクラス定義が表示されます。

    Class Test.Hello Extends %CSP.Page [ ProcedureBlock ]
    {
        ClassMethod OnPage() As %Status
        {
            &html<<html>
            <head>
            </head>
            <body>>
            ;To do...
            &html<</body>
            </html>>
            Quit $$$OK
        }
    }
  7. OnPage メソッドで以下のようにコメントを置き換えます。

     ; To do...
    

    Write 文を使用して、以下のように記述します。

     Write "<b>Hello, World</b>",!
    
  8. [ビルド]→[コンパイル] を使用して、新しいクラスを保存しコンパイルします。

  9. [ビュー]→[ブラウザで表示] を選択します。

ブラウザに Hello, World と表示されます。

この CSP ページは、CSP アプリケーションでもあり、以下のように動作します。

  1. ブラウザは、指定されたネームスペースのローカル Web サーバに Test.Hello.cls という要求を送信します。

  2. Web サーバはこの要求を CSP ゲートウェイに渡し、CSP ゲートウェイはこの要求を Caché CSP サーバに渡します。この例では、ブラウザ、Web サーバ、Caché アプリケーション・サーバは、すべて同じマシン上で動作していますが、実際の環境では、異なるマシンで動作していることもあります。

  3. CSP サーバでは Test.Hello というクラスを探し出し、その OnPage メソッドを呼び出します。

  4. OnPage メソッドが Write コマンドを使用して主デバイスに書き込む出力は、すべて CSP ゲートウェイと Web サーバ経由でブラウザに返送されます。

以上が、CSP の基本的な動作です。他の機能は、これらの動作に基づいて構築されます。

以下は、コードの追加例です。以下の行を、Hello, World の行の後に挿入します。

 Write "<ul>",!
 For i = 1:1:10 {
    Write "<LI> This is item ", i,!
 }
 Write "</ul>",!

これにより、このページには、10 項目の箇条書きのリストが生成されます。このコンテキストでは、Caché は感嘆符 (!) 文字を使用して、主デバイスにキャリッジ・リターンを指定します。

HTML タグを使用した CSP ページの作成

CSP ページを生成するには、HTML ファイルを生成して、CSP コンパイラでこのファイルを CSP クラスに変換する方法もあります。

HTML ファイルを使用して Hello,World ページを生成するには、以下の手順を実行します。

  1. スタジオを起動して、[ファイル]→[新規作成]→[CSP ファイル]→[Caché Server Page] を選択します。

  2. 新規 CSP ファイルの内容を以下と置換します。

    <html>
    <body>
    <b>Hello, World!</b>
    </body>
    </html>
    
  3. [ファイル]→[保存] を選択します。

  4. 表示された [名前を付けて保存] ウィンドウで、既定の CSP アプリケーション csp/usr をダブルクリックします。

  5. ファイル名 Hello.csp を入力し、[名前を付けて保存] をクリックしてファイルを保存します。

  6. スタジオのウィンドウで、[表示]→[ウェブページ] を選択します。

前述の例と同様に、ブラウザに Hello, World! が表示されます。

CSP アプリケーションは単一もしくは一連の CSP ページから構成されます。CSP アプリケーションはユニットとして動作し、その際にアプリケーション全体に適用する設定を使用します。システムは既定の CSP アプリケーションとして、csp/user を提供します。CSP アプリケーションの詳細は、このドキュメントの CSP アプリケーションの設定のセクションを参照してください。

テキスト・エディタまたは HTML エディタを使用して、HTML ファイルを作成することもできます。このファイルを、ローカル・ディレクトリ cachesys/csp/userHello.csp として保存します (cachesys は Caché のインストール場所です)。

Hello.csp ページは次のように動作します。

  1. ブラウザは、ローカル Web サーバに Hello.csp という要求を送信します。

  2. Web サーバはこの要求を CSP ゲートウェイ (Web サーバに接続されている) に渡し、CSP ゲートウェイはこの要求を Caché CSP サーバに渡します。

  3. Caché CSP サーバは Hello.csp ファイルを検索し、CSP コンパイラに渡します。

  4. CSP コンパイラでは、Hello.csp ファイルのコンテンツを出力する OnPage メソッドを含む csp.Hello という新しいクラスを作成します(実際には、OnPage メソッドから呼ばれる一連のメソッドも生成されます)。コンパイルのこの手順は、生成されたクラスよりも .csp ファイルの方が新しい場合にのみ実行されます。その後の要求は、生成されたクラスに直接送信されます。

  5. CSP サーバは、新規に生成された OnPage メソッドを呼び出し、その出力を前述の例と同様にブラウザに送信します。

プログラミングによる開発の例と同様、この例は、わかりやすく簡単に説明しています。実際には、CSP コンパイラは専用の XML/HTML 処理エンジンであり、以下を実行できます。

  • HTML ページのサーバ側のスクリプトや式を処理します。

  • 特定の HTML タグが認識されたとき、サーバ側のアクションを実行します。

プログラムの例と同様、プログラミング・ロジックを追加することで、さらに複雑なページを構築できます。例えば以下のようになります。

<html>
<body>
<b>Hello, World!</b>
<script language="Cache" runat="server">
 // this code is executed on the server
 Write "<ul>",!
 For i = 1:1:10 {
    Write "<li> This is item ", i,!
 }
 Write "</ul>",!
</script>
</body>
</html>

プログラムの例と同様、このページには、10 項目の箇条書きのリストが表示されます。

FeedbackOpens in a new tab