Caché テクノロジガイド

第4章:
CSP(Caché Server Pages)を使用した高速Webアプリケーションの迅速な構築

Caché Technology Guide“高速Webアプリケーションの迅速な構築”は、“速い”という意味の言葉を2回使用しています。それは、CSPを使用すると従来の方法より、高速で高度なデータベースWebアプリケーションが、より速く構築できるからです。また、CSPに組み込まれているCachéデータベースは、世界でも最速で、何万人という同時ユーザがあるようなシステムを運用する性能があるためです。

Caché を使用してWebアプリケーションを作成するには、さまざまな方法があります。例えば、SQLを使用してデータベースにアクセスする従来型の全ての方法などです。この章では、それ以外の方法、つまりCSP(Caché Server Pages)と呼ばれる、よりダイレクトなアプローチについて説明します。

CSPは、Caché アプリケーション・サーバの一部として提供される技術です。Caché アプリケーションをWebと相互動作させるための最速の方法で、以下の特徴があります。

  • 先進のオブジェクト指向開発アプローチ
  • 実行時における、超高性能とスケーラビリティ
  • ZENでのコンポーネントベースの開発

CSPは、HTML、XML、その他のWeb指向のマークアップ言語をサポートします。

CSPは、Webデザイン・ツールを使用できますが、Webデザイン・ツールではありません。Webデザイン・ツールは、専ら、静的HTMLの作成のみに使われますが、CSPはページの表示以外に、アプリケーション・ロジックの開発を支援します。Cachéアプリケーション・サーバ内で、コードの高速実行を可能にする実行時環境を提供します。

CSPは、強力な手順型プログラム環境をサポートするため、アプリケーションは、純粋なアプリケーション生成テクノロジを超えるレベルで、アプリケーションを非常に精巧かつ正確に書くことができます。また、結合可能なコードの“ビルディング・ブロック”を生成するクラス・アーキテクチャや、カスタマイズできるコードの簡単な雛形を作るウィザードを使用することで、迅速な開発を支援します。結果として、大変高度なWebアプリケーションの迅速な開発が可能になります。

Cachéの利点

オブジェクト指向の手続き型プログラミングと、Caché ウィザードによって、高度なデータベース・アプリケーションの迅速な開発が可能です。

 

Caché サーバ・ページの特性は以下の通りです。
具体的には、Caché アプリケーション・サーバは、以下の機能を備えています。

  • ダイナミック・サーバ・ページ――単に静的HTMLを返すWebサーバではなく、ページは、アプリケーション・コードによって、アプリケーション・サーバ上で動的に生成されるため、アプリケーションは、さまざまな要求に迅速に応答でき、ブラウザに返送された結果のページを作成します。
  • セッション・モデル――単一のブラウザからのページに関係する全ての処理(最初のブラウザ・リクエストからアプリケーションが終了するか、プログラムしたタイムアウトが発生するまで)は、セッションの一部と見なされます。
  • サーバの状態の保存――セッション中、サーバ上のアプリケーション・データ(またアプリケーション文脈全体さえも)は、自動的にブラウザ・リクエストを通して保持され、複雑なアプリケーションの開発、実行を格段に容易にします。
  • オブジェクト・アーキテクチャ――全てのページがクラスに対応しているため、多くのページに共通するコードやその他の特性は、継承により簡単に組み込むことができます。また、一般的にデータは、オブジェクト指向プログラミングの利点をもつオブジェクトから参照されます。
  • XML――XMLはWEBページを構築するための、HTMLに代わる強力なツールです。CSPはHTMLと同じようにXMLもサポートしています。プログラマは、Page( ) メソッドでHTMLを提供する代わりに、XMLが はきだされます。
  • サーバ・アプリケーション・コードを自動生成するCaché のアプリケーション・タグ――これら拡張されたHTMLタグは、従来のHTMLタグと同様に簡単に使えます。HTMLドキュメントに追加する場合、(オブジェクトを開いたり、クエリを実行したり、プログラム・フローを管理するなどの)さまざまな機能性を提供する、高度なアプリケーション・コードを生成します。これらのタグは拡張可能です。開発者は、特定のニーズに合わせて独自のタグを作成できます。
  • コンポーネントベースの開発――ZENを使うと、開発者はコンポーネントモデルを使用してページを構築できます。コンポーネントモデルでは、予め備えられているオブジェクトコンポーネントの豊富なスイートを使って、双方向性、視覚的美しさ、ユーザインターフェースの一貫性をより高めることができます。
  • 一般的なWebデザイン・ツールとの統合――CSPは、ページの視覚的レイアウトを簡単にするさまざまなツールと連動します。また、CSPにウィザードがあり、Caché データベース内のデータを表示、編集するフォーマットを作成しやすくなりました。
  • ブラウザからの呼び出し可能サーバ・メソッド――動的で、インタラクティブなアプリケーション開発を促進するため、CSPでは、サーバサイドのメソッドを起動しやすくしています。(一般的にユーザの何らかのアクションにより)ブラウザ上でイベントが発生した場合、サーバ上のアプリケーション・コードが呼び出され、生成されたイベントに応答します。この際、新しいページ全体の転送、表示のオーバーヘッドはありません。
  • 暗号化――Caché は、リクエストの認証や、改ざん防止のため、自動的にURLのデータを暗号化します。暗号キーは、サーバ上にのみ保管され、1つのセッション中にのみ有効です。

上記のように多くの技術がありますが、使用法は簡単です。大半の機能は自動的に作動し、CSPは簡単に使用できるように開発されています。我々の理念は、シンプルでありながら強力であることです。複雑さは、我々の実装段階に存在しても、プログラミングには不要です。

CSP(Caché Server Pages)モデル

従来のWeb技術

従来のWeb技術では、リクエストはWebサーバに送信され、WebサーバがHTMLのシーケンシャル・ファイルを取得し、ブラウザに返送します。アプリケーションで変数データをもつ場合、開発はさらに複雑です。一般的には、プログラマは、Webサーバ上で(Perlやtclなどの言語で)CGIを使用したり、SQLクエリを送信や、データベースに対するストアド・プロシジャ・リクエストを投げるなどを行います。プログラミング環境としては、要求は膨大です。特に多数のユーザがある場合の実行は、Webサーバに負荷がかかり過ぎて、全く非効率になる場合があります。

CGIを使用すると、一般的には、各ブラウザ・リクエストは、新しいプロセスを生成します。このオーバーヘッドを避けるために、アプリケーション・コードを直接Webサーバにリンクさせることがあります。これの悪影響として、このコードに対するエラーがWebサーバ全体をクラッシュさせる可能性があります。

ダイナミック・サーバ・ページ

CSPでは、異なるプログラミングと実行方法を提供します。それは、ダイナミック・サーバ・ページ技術です。コンテンツ(HTML、XML、スタイル・シート、イメージ、その他)は、連続ファイルからの応答ではなく、Cachéアプリケーション・サーバ上で、実行時にプログラムによって生成され、ページ・リクエストに対しての応答が大変柔軟になります。

大半のアプリケーション・コードは、Caché アプリケーション・サーバ上で実行されます。Cachéアプリケーション・サーバは、Webサーバと同じコンピュータでも別のコンピュータでも構いません。コード(一般的にはJavaScriptやJava)には、ブラウザで実行されるものがあります。通常それらは、データの検証、再フォーマットあるいはサーバ側のコードの実行といった操作をサポートするために使われます。

この方法では、(従来のCGIの場合は必要な)ブラウザ・リクエストごとにプロセスを生成する必要がなく、パフォーマンスの向上が実現します。また、アプリケーション・コードはWebサーバにリンクされていないため、アプリケーション・エラーがWebサーバをクラッシュさせることはありません。

セッション――プロセス・モデル

1つのブラウザから生じるページに関係する全ての処理(最初のブラウザ・リクエストからアプリケーションの完了、あるいはプログラムで設定したタイムアウトが発生するまで)は、セッションの一部と見なされます。Webサーバが拡張子 .csp がついたページ・リクエスト(URL)を受けると、そのリクエストは、自身のあるいは別のコンピュータ上に存在する適切なCachéアプリケーション・サーバへ送られます(Webサーバによって付加されたほんの少しのCaché コードによって)。

Cachéアプリケーション・サーバがリクエストを受信すると、そのブラウザのセッションがすでに処理中であるかどうかを判断します。処理中でなければ、自動的にセッションを開始します。その後、Cachéは特定のページに関連したアプリケーション・コードを実行しますーユーザのリクエストしたアクションを実行したり、プログラムでHTML、XML、画像、またはその他のコンテンツを生成し、ブラウザに返送します。

セッションを切断するセッション・オブジェクトのプロパティを設定すると、セッションは終了します。状態保持の必要のないアプリケーションは、ページごとにセッションを切断するよう選択することもできます。

状態の保存

開発者が直面する課題の1つは、Webが生来的に状態を保持しないことです。1つのリクエストから次のリクエストまで、サーバ上に情報を保持する簡単な方法はありません。アプリケーションは、保持の必要がある状態情報を全て、URLまたは非表示のフォーム・フィールドとしてブラウザに送信します。この方法は、データを一時的にファイルやデータベースに保存するような複雑なアプリケーションには、効率のよい技術とはいえません。不幸なことに、この方法はサーバにかなりのオーバーヘッドがかかるため、プログラミングはさらに非常に困難になります。

Cachéのセッション・モデルは、自動的かつ効率的に、ブラウザからの呼び出されたコール間のデータを保存できます。CSPが提供するセッション・オブジェクトは、一般的なセッション情報に加え、プログラマがさまざまなセッションの特性を制御できるプロパティを含みます。アプリケーションは、セッション・オブジェクト内に、独自のデータを格納でき、あるリクエストから次のリクエストまで自動的に保存します。

セッション・オブジェクトのPreserveプロパティを0または1に設定することで、アプリケーションは、どのくらいの状態を維持するかを決定します(規定値は0で、実行時に動的に変更可能です)。

  • 0ーセッション・オブジェクトに保存されたデータが保持されます。(データは、単に多次元プロパティに設定されます。多次元プロパティは、どのタイプのデータも、文字列値を含むいかなる数の添え字でも、宣言なしにもつことができます。)
  • 1ーCachéはセッションの処理に集中するため、(セッション・オブジェクト内の変数だけでなく)全ての変数、入出力デバイス、ロックを含む処理の全ての状態は保持されます。

0に設定すると、保存されている全てのデータを論理的に分割することができ、1プロセスを複数のセッションで共有も可能ですが、状態保存があまりできなくなります。プログラマにとっては、1に設定する方が使用しやすく、広範囲の機能を提供します。ただし、その分、占有するサーバ・リソースは増加します。

Requestオブジェクト

CSPは、セッション・オブジェクトに加え、自動的に複数のオブジェクトを提供し、プログラマのページ処理を支援します。そのうちの1つは、Requestオブジェクトです。ページの受信時、URLは復号され、コンテンツはRequestオブジェクトに置き換わります。そのRequestオブジェクトには、全ての名前/値の組と、他の有用な情報に加え、データも含んでいます。例えば、“FilmID”の値は、以下のコードで取得されます。

%request.Data(”FilmID”,1)

// the 1 indicates we want the

 

// 1st value for this name

 

// in case multiple values are

 

// present for this name

 

Cachéの利点

サーバ上に状態情報を自動的に保存することで、アプリケーションは各ページ・リクエストのデータをファイリングしアクセスし続ける必要がなくなるので、ネットワーク・トラフィックやサーバ上でのオーバーヘッドが減少します。また、アプリケーションのプログラミングは、非常にシンプルになります。

ダイナミック・サーバ・ページとCaché アプリケーション・サーバの使用によって、リクエストへの応答は大変柔軟になり、アプリケーション・エラーがWebサーバのダウンを引き起こすリスクもなく迅速な実行ができ、プログラミング環境も豊富になります。

 

Webページのクラス・アーキテクチャ

Webページごとに対応するページ・クラスがあり、ページ・クラスには、ページ・コンテンツを生成するメソッド(コード)を含んでいます。リクエストを受信すると、URLを使用して対応するページ・クラスを識別し、そのクラスのPage()メソッドが呼び出されます。通常、ページ・クラスは、全てのページにヘッダの生成や暗号化など、さまざまなビルトイン機能を提供する標準Webページ・クラス%CSP.Pageから取得できます。これらの標準機能は、他のスーパークラスからの派生、複数の継承の使用、単に特定のメソッドのオーバーライドなどさまざまな方法で、オーバーライドすることができます。

このクラス・アーキテクチャによって、アプリケーション全体の動作の変更や、共通のスタイルの強制が容易になります。また、オブジェクト・プログラミングがもつあらゆるプログラミング上の利点を、Web開発にもたらします。

ページ・クラスには、リクエストされた処理の実行や、ブラウザへの応答の生成と送信を行うコードを含んでいます。しかし、ページ・クラスで実行する全てのアプリケーション・コードを含んでいる訳ではありません。実際、実行されたコードのほとんどは、さまざまなデータベース・クラスのメソッド内にあり、おそらく、追加されたビジネス・ロジック・クラスです。したがって、開発プロセスは、ページ・クラスとデータベース・クラスの両方の開発から構成されます(おそらくビジネス・ロジック・クラスも含まれます)。

一般的には、ページ・クラスにはユーザ・インタフェース・ロジックのみを含むことをお勧めします。ビジネス・ロジックとデータベース・ロジックは別々のクラスに置く必要があります。これにより、ユーザ・インタフェース・コードとビジネス・データベース・ロジックが明白に区別され、後でユーザ・インタフェースの追加が容易です。

複数の開発方針

Developmentページ・クラスはWebページごとに生成され、ページで実行するコードを含みます。ページ・クラスには数種類の構築方法があり、大半のアプリケーションが一つ以上の方法を使用します。

  • CSP ファイル――埋め込みのCaché アプリケーション・タグをもつHTMLファイルは、簡単なテキスト・エディタかWebデザイン・ツールを使用して記述します。連続ファイル
    (CSPファイル)はブラウザには直接送信されず、コンパイルして、ページ・クラスに生成されます。
  • ダイレクト・プログラミング――プログラマは、適切なメソッドをコード化して、ページ・クラス全体を記述します。
  • ZEN――プログラマは、予め備わっている、対話性に優れたオブジェクトコンポーネントを使ってページクラスを記述します。
    簡単なページはCSPファイルやウィザードで構築した方が速い場合もありますが、複雑なページの場合は、直接もしくはZENを使う方が、より簡単にプログラムできます。

CSPファイル

CSPファイルは、埋め込みのCachéアプリケーション・タグをもつシーケンシャルHTMLファイルで、それらは、ページ・クラスにコンパイルされます。これは、プログラマが直接記述するクラスと同じ種類のものです。ページ・クラスはコンパイルされ、ブラウザ・リクエストに応じてCachéアプリケーション・サーバで実行するコードを生成します。

Cachéスタジオには、CSPファイルを自動的に生成し、データベースを編集、表示できるフォーム・ウィザードがあります。ユーザは、必要なデータベース・クラスをクリックし、それから、プロパティセットをクリックして表示します。Caché ウィザードは、ページにHTMLやCachéアプリケーション・タグを付加するなど、それ以外の処理を行います。ウィザードはHTMLを出力するため、結果が希望と異なる場合、簡単に編集できます。

以下の理由で、CSPファイルの使用は効果的です。

  • プログラマはコードの記述に専念し、Webアーティストは視覚的なレイアウトのデザインができます。
  • ユーザ・インタフェースのほとんどは、非手続き型のビジュアル環境でプログラムされ、ビジネス・ロジックやデータベース・ロジックとは切り離すことができます。
  • プログラマ以外でも、視覚的な表現の変更や簡単な機能追加は可能なので、特定のユーザにとっては、アプリケーションのカスタマイズは、より簡単です。

アプリケーション表示の仕様は、大部分のプログラミング・ロジックとは区別されるため、再プログラミングをせずに表示部分の変更は比較的容易です。単にHTMLもしくはXMLファイルを編集して、ページを再コンパイルするだけです。

この方法により、完全でシンプルなアプリケーションを作成することはできますが、プログラマはコード追加をよく行います。追加のコードはアプリケーション・タグから提供され、手続き型コードを組み込む場合と、他のクラスにあるコードを呼び出す場合があります。しかし、多くの手続き型コードをもつ複雑なページは、CSPファイルよりも直接プログラミングする方が、簡単な場合がよくあります。

Caché は、著名なWebページ・デザイン・ツールDreamweaverとの連携付加機能も提供しています。この付加機能を使うと、ポイント・アンド・クリックでCachéアプリケーション・タグが追加できます。同様に、Cachéフォーム・ウィザードも提供し、データベース・オブジェクトの表示、編集に必要なコードを自動的に生成します。

Caché アプリケーション・タグ

Caché アプリケーション・タグは、CSPファイルに追加することができます。標準のHTMLタグと同様に使用しますが、実際は、Caché Webコンパイラへの指示で、さまざまな機能を提供するアプリケーション・コードを生成します。データベース・オブジェクトへのアクセス、クエリの実行、プログラム・フローの管理、Cachéアプリケーション・サーバでのコードの実行などの機能です。Cachéアプリケーション・タグは拡張可能で、開発者は、特定のニーズに合わせて独自のタグを作成できます。

Caché アプリケーション・タグは、ブラウザに送信されるHTMLには埋め込まれません。それらは、Caché Webコンパイラによって読み込まれるCSPファイルにのみ存在します。このコンパイラは、標準HTMLに自動的に変換し、どのブラウザからも処理可能です。

ハイパーイベント

CSPハイパーイベントは、ブラウザ上のイベント(マウスのクリック、フィールド値の変更、タイムアウトなど)によって、サーバ側のメソッドを呼び出したり、再表示しないで更新します。適切な処理を行った後、サーバ・メソッドはブラウザが実行するコード(通常はJavaScript)を返します。ハイパーイベントの使用により、Webアプリケーションは、さらにインタラクティブで素早いレスポンスが可能です。

CSPページ内で、サーバ側メソッドは、構文“#server(...)#”で簡単に呼び出されます。例えば、ユーザがショッピング・カートの画像をクリックし、AddToCart()というサーバ・メソッドを呼び出すと仮定します。その画像のHTML定義の例は以下のようになります。

onClick=”#server(..AddToCart())#”

ブラウザ上で実行する場合、Webコンパイラは、この構文をCaché サーバ・メソッドを起動するJavaScriptコードに置き換えます。

ZENとコンポーネントベースのWebページ

ZENは、高度な表現性と対話性に優れたユーザインタフェースを備えた、複雑でデータ量の多いWebアプリケーションを迅速に構築するための簡単な方法を提供します。ZENは4GLではありません。ZENには、インターシステムズのCSPとオブジェクト技術を基に、予め作成されたオブジェクトコンポーネントと開発ツールの豊富なライブラリが備わっています。ZENは、Visual BasicやPower Builderといったツールで構築されたクライアント/サーバアプリケーションのWeb版を開発するのに特に適しています。

ZENコンポーネントは、より動的なやり取りを可能にします。サーバに値を送るのに使用する”submit”の手段を制限されることもありません。例えば、ZENのフォーム用コンポーネントを使うと、ページリクエストとそれ以降の再読み込み無しで、サーバへの即時の呼び出しを含めて、カスタム手順を定義することができます。これにより、ユーザはより自然にデータを入力することができます。

ZENはCSPのセッション管理手順を使うことによって、ユーザ認証、データ暗号化、複数のページリクエストに渡る永続セッションデータの保持を提供します。より高度な技術を使い、ブラウザとサーバ間でオブジェクトをやり取りによる全てのコミュニケーションは、よくAJAX(Asynchronous JavaScript and XML)と呼ばれます。

ZENを使って作成されたページは、CSPアプローチを用いて開発されたページと簡単に混合してWeb開発することがができます。

ZENコンポーネントとは?

ZENコンポーネントは、ページ上のコンポーネントの外観と振る舞いを特定するクラス定義です。ZENのクラス定義は、単一のドキュメント上に、スタイルシート、サーバコード、クライアントコード等を含むコンポーネントの全ての定義を含んでいます。

ランタイムでは、ZENはページ内で使われている各々のコンポーネントに対し、2つのオブジェクトを作成します。それは、ZENが自動的にブラウザ上でJavaScriptオブジェクトとして生成するクライアントサイド・オブジェクトと、サーバサイド・オブジェクトです。ZENは自動的に2つのオブジェクトの状態や情報フローを管理します。

ZENコンポーネントのタイプ

ZENのライブラリには、入力ボックス、テキスト・ボックス、ボタン、チェック・ボックスなど、標準的な HTML 制御タイプをすべて実装したコンポーネントが含まれています。これらのコンポーネントには、Zen 制御クラスから継承した振る舞いも備わっています。

また、ZENには、より複雑でデータ量の多い一連のコンポーネントも含まれており、それらのコンポーネントは自動的に、データベースのデータを表示し、ユーザ・イベントに対応してこのデータを動的に更新する方法を理解しています。たとえば、Zen の強力なテーブル・コンポーネントは、データベース・クエリを使用して、HTML テーブル内にデータを自動表示します。テーブル・コンポーネントは、ページング、スクロール、列順の並べ替え、フィルタなど、多様なスタイルをサポートしています。テーブルの内容は、ページ全体を再表示せずに、サーバの内容を反映して更新できます。

他のZENコンポーネントには、以下のようなものが含まれています。

  • メニュー ―― 多様なメニュータイプがサポートされています。
  • グリッド ―― Web ページにスプレッドシート・スタイルの動作を追加します。
  • ツリー ―― ツリー制御を使用して階層型データを表示します。
  • タブ ―― タブ・コンポーネントには一連のタブが含まれていて、それぞれのタブには、他の一連のコンポーネントが含まれています。
  • グラフ ―― SVGを使用した豊富なグラフコンポーネントが実装されています。具体的には、折れ線グラフ、面グラフ、棒グラフ、円グラフ、hi-low、XYグラフがあります。
  • グラフィカル・メーター ―― スピードメータ、ゲージなど、データを動的な画像コンポーネントとして表示します。

ZENのライブラリコンポーネントの外観の変更

全てのZENコンポーネントは、見た目や使用感を自由に変更できるプロパティのセットをサポートしています。アプリケーションは、ランタイム上でプロパティを設定し、コンポーネントの値、外観や振る舞いを変更することができます。

また、Webページの外観は、標準CSS(カスケーディング・スタイルシート)のスタイル定義によって制御可能です。これらのスタイルを、フォント、色、サイズ変更のためにアプリケーション単位、ページ単位、もしくは個別のコンポーネントベースで無効にすることができます。

ZENのライブラリコンポーネントのサブクラスを作成し、さらに外観や振る舞いを無効にすることも可能です。

ZENコンポーネントの新規作成

ZENの利点の一つは、簡単に新しいコンポーネントが作成できる点です。

全てのコンポーネントはクラスとして実装されています。コンポーネントを新規作成するには、以下4つの方法があります。(1) 既存のコンポーネントのサブクラスになり得る新しいコンポーネントクラスを作る、(2) コンポーネントのHTMLの部分を取り出すメソッドを組み込む、(3) コンポーネントのランタイムでの振る舞いを実行するための、サーバサイドとクライアントサイドでのメソッドを定義する、または(4) クラスがコンポーネントの外観を特定するのに必要なCSSスタイル定義を含んでいるか確認する。

ZENアプリケーションを異なる言語へ変更する方法

ZENでは、アプリケーションに組み込まれたコンポーネントが表示する全てのテキスト値(タイトル、見出し等)のセットを特別に用意されたローカライゼーションテーブルへ自動的に保存することも可能です。アプリケーションのローカライゼーションテーブルは、XMLドキュメントとしてエクスポートでき、他の言語へ値を翻訳し、新規テーブルをインポートすることもできます。

ランタイム上では、ZENはユーザの使用するブラウザが選択した言語に基づいたテキスト値を使用します。

SVGサポート

SVG(スケーラブル・ベクター・グラフィックス)は、豊富な画像データをWebページに表示するための、強力で標準的な方法です。ZENには画像用コンポーネントを生成する機能が備わっており、SVGを使ってレンダリングし、予め構築されたSVGベースのコンポーネントセットを多数含んでいます。

ZENがサポートするブラウザ

ZENはFirefox (v1.5以上)、Internet Explorer (v6.0以上)をサポートしています。Firefoxの環境ではSVGが備わっているので、プラグインは不要です。Internet ExplorerでZENのSVGコンポーネントを使用する場合にはAdobe社のSVGプラグインが必要です。ライブラリはFirefoxのSVGとInternet Explorer間に生じる差異を調節します。

Cachéの利点

豊富なWebユーザインタフェース
従来のSUBMITボタンを使用した単純なブラウザフォームよりも、視覚的にGUIクライアント/サーバアプリケーションにより近づいた、高度な表現性と対話性を備えたページが生成可能です。ユーザは動的なフォーマットを、より自然に簡単に使うことができます。

オブジェクトベースの開発環境
予め備わっているコンポーネントを利用することにより、迅速な開発が可能で、後の変更も簡単になります。

一貫したユーザインタフェース
コンポーネントベースのアーキテクチャでより簡単に定義が可能になり、またアプリケーション単位での形式や振る舞いのガイドラインを強化します。

 



hammock illustration

InterSystems Corporation
World Headquarters
One Memorial Drive
Cambridge, MA 02142-1356

Tel: +1.617.621.0600
Fax: +1.617.494.1631

www.InterSystems.com

 



Previous Page

前ページ
第3章

第4章:
CSP(Caché Server Pages)を使用した高速Webアプリケーションの迅速な構築