Caché オブジェクト入門
このドキュメントでは、Caché オブジェクトのさまざまな側面について説明します。また、このトピックの導入として、"Caché Web アプリケーション・チュートリアル" を完了することをお勧めします。
Caché オブジェクト・テクノロジは、アプリケーション開発者に高性能なオブジェクト・ベースのデータベース・アプリケーションを作成する簡単な方法を提供します。
Caché オブジェクトの機能は、以下のとおりです。
-
継承、プロパティ、メソッド、コレクション、リレーションシップ、ユーザ定義のデータ型、ストリームを含む、強力なオブジェクト・モデル
-
オブジェクトが、外部のリレーショナル・データベースと同様に、ネイティブの Caché データベース内に保存されることを可能にする、柔軟なオブジェクトの永続性メカニズム
-
インデックス、制約、参照整合性を含む、永続クラスのデータベース機能の制御
-
ナビゲーションによってオブジェクトをロードする能力を含む、簡単なトランザクションと同時性モデル — オブジェクトを単純に参照することによって、データベースからメモリにオブジェクトを “スウィズル” できます。
-
Caché 統一データ・アーキテクチャ経由の、Caché SQL での自動整合性
-
Java や C++、ActiveX との相互運用性
-
自動 XML サポート
-
強力なマルチ・ユーザ・オブジェクト開発環境 : スタジオ
Caché オブジェクトは、さまざまな方法で使用できます。
-
データベース、またはトランザクション処理アプリケーションのビジネス・コンポーネントを定義する
-
Caché Server Pages を使用して、Web ベースのユーザ・インタフェースを作成する
-
ODBC や JDBC から呼び出し可能な、オブジェクト・ベースのストアド・プロシージャを定義する
-
従来のアプリケーションに対する、オブジェクト・アクセス、またはリレーショナル・アクセスを提供する
Caché オブジェクト・アーキテクチャ
Caché オブジェクト・テクノロジには、以下の主要なコンポーネントが含まれます。
-
クラス・ディクショナリ — クラス定義のリポジトリ (メタ・データとしても知られる)。それぞれが特定のクラスについて説明しています。このリポジトリは、Caché データベース内に保存されます。クラス・ディクショナリも、Caché SQL エンジンによって使用され、同期化オブジェクトや Caché データへのリレーショナル・アクセスに対して責任を持ちます。
-
クラス・コンパイラ — クラス定義を実行可能なコードに変換する一連のプログラム
-
オブジェクト・ランタイム・システム — 実行中のプログラム内でオブジェクト操作 (オブジェクトのインスタンス化、メソッドの呼び出し、多態性など) をサポートする、Caché 仮想マシンに組み込みの機能。
-
Caché クラス・ライブラリ — すべての Caché インストールに付属の、事前に組み込まれた一連のクラス。これには、アプリケーション内で直接使用するためのクラス (電子メール・クラスなど) と、ユーザ定義のクラス (永続、またはデータ型) に振る舞いを提供するためのクラスが含まれます。
-
さまざまな 言語バインディング — Caché オブジェクトへの外部アクセスを提供する、コード・ジェネレータと実行時コンポーネントの組み合わせ。これらのバインディングには、Caché Java バインディング、Caché ActiveX バインディング、および Caché C++ バインディングがあります。
-
さまざまな ゲートウェイ — Caché オブジェクトに外部システムに対するアクセスを提供する、サーバ側のコンポーネント。このゲートウェイには、Caché SQL ゲートウェイと Caché アクティベート ActiveX ゲートウェイがあります。
クラス定義とクラス・ディクショナリ
すべてのクラスには、クラス全体の特性 (スーパークラスなど) と、どのメンバ (プロパティやメソッドなど) を含むかを指定する定義が含まれます。これらの定義は、Caché データベース内に保存されるクラス・ディクショナリ内に含まれています。
クラス定義の作成
クラス定義を作成する方法は、以下のとおりです。
-
スタジオを使用する。Caché クラス定義にかかわる作業は、主にスタジオ開発環境を使用して実行します。
-
XML を使用する。クラス定義は、外部の XML ベースの外観で表示されます。一般的に、このフォーマットは、(ソース・コントロール・システムなどで) 外部的にクラス定義を格納したり、アプリケーションを配置したり、単純にコードを共有したりするのに使用されます。適切な XML クラス定義を生成し、それを Caché システムにロードすることによって、新規のクラス定義をプログラム的に作成することもできます。
-
API を使用する。Caché には、クラス・ディクショナリへのオブジェクト・アクセスを提供する、一連のクラス定義クラスが含まれています。これらを使用して、クラス定義の参照や変更、作成を行うことができます。
-
SQL DDL を使用する。DDL 文によって定義されたすべてのリレーショナル・テーブルは、同等のクラス定義に自動的に変換され、クラス・ディクショナリ内に配置されます。
クラス・ディクショナリ
すべての Caché ネームスペースには、そのネームスペースで使用可能なクラスを定義する、独自のクラス・ディクショナリが含まれます。Caché には、その一部としてインストールされている特別なデータベース “CACHELIB” があります。これには、Caché クラス・ライブラリのクラスに対する、実行可能なコードや定義が含まれています。これらのクラスは system クラスと呼ばれ、すべて、%Library.PersistentOpens in a new tab など、名前が “%” 文字で始まるパッケージに含まれます (%Library パッケージのメンバ名は省略でき、%StringOpens in a new tab は、%Library.StringOpens in a new tab の省略形です)。
すべての Caché ネームスペースは、自動的に構成されるので、そのクラス・ディクショナリは独自のクラスを含むだけでなく、システム・クラス定義および CACHELIB データベース内へのコードへアクセスできます。このメカニズムにより、すべてのネームスペースは Caché クラス・ライブラリ内のクラスを直接使用できます。
クラス・ディクショナリは 2 つの異なる種類のデータを含みます。
-
定義データ — ユーザが作成する実際のクラス定義
-
コンパイル・データ — クラス定義のコンパイルの結果として生成されるデータも保存されています。このデータには、継承解析の結果が含まれます。つまり、指定されたクラスに対して定義および継承されたすべてのメンバをリストしています。クラス・コンパイラはこれを使用して、他のコンパイルをより効率的にします。アプリケーションもこれを使用して (適切なインタフェース経由で)、クラス・メンバに関する実行時の情報を取得できます。
クラス・ディクショナリは、そのデータを、名前が ^odd で始まる一連のグローバル (永続配列) に保存します。これらの配列の構造は、Caché の新バージョンでは変更していることもあるので、アプリケーションでこれらの構造を直接参照したり、変更したりしないでください。
Caché クラス・ライブラリ
Caché クラス・ライブラリには、事前に組み込まれた一連のクラスが含まれます。これは、すべての Caché システムで、CACHELIB データベース内に自動的にインストールされます。Caché クラス・ライブラリのコンテンツを、Caché が提供するオンライン・クラス・ドキュメント・システムを使用して表示できます。
Caché クラス・ライブラリには、多くのパッケージが含まれ、それぞれのパッケージにはクラスのファミリが含まれます。それらの一部は内部的で、Caché オブジェクトはその実装の一部として使用します。他のクラスは、アプリケーションで使用されるように設計された機能を提供しています。
Caché クラス・ライブラリの主なパッケージは、以下のとおりです。
パッケージ | 説明 |
---|---|
%Activate | Caché アクティベート ActiveX ゲートウェイによって使用されるクラス。"Caché ActiveX ゲートウェイの使用法" を参照してください。 |
%Compiler | クラス・コンパイラによって使用される内部クラス。 |
%CSP | Caché Server Pages によって使用されるクラス。詳細は、"Caché Server Pages (CSP) の使用法" を参照してください。 |
%csr | 標準 CSP ルールを実装する、生成された一連の内部クラス |
%Library | Caché の “振る舞い” クラス (%PersistentOpens in a new tab など) の中心となる一連のクラス。さまざまなデータ型、コレクション、ストリーム・クラスも含まれます。 |
%Net | さまざまなインターネット関連の機能 (電子メールや HTTP 要求など) を提供する一連のクラス。詳細は、"Caché インターネット・ユーティリティの使用法" を参照してください。 |
%Projection | ユーザ・クラスに対するクライアント側のコードを生成する、一連のプロジェクション・クラス。詳細は、"クラス・プロジェクション" の章を参照してください。 |
%SOAP | Caché 内で Web サービスおよび Web クライアントを作成するために使用できるクラス。"Caché での Web サービスおよび Web クライアントの作成" を参照してください。 |
%SQL | Caché SQL によって使用される内部クラス |
%Studio | スタジオによって使用される内部クラス。 |
%SYSTEM | $System 特殊変数を経由してアクセスできる、さまざまな System API クラス。 |
%XML | Caché 内でサポートされる XML や SAX を提供するのに使用されるクラス。詳細は、"オブジェクトの XML への投影" および "Caché XML ツールの使用法" を参照してください。 |
オプションの包括的なリストについては、"インターシステムズ・プログラミング・ツールの索引" の目次を参照してください。
開発ツール
Caché には、オブジェクト・ベースのアプリケーションを開発する多くのツールが含まれています。また、他の開発環境で Caché を使用するのも非常に簡単です。
スタジオ
スタジオは、Caché クラス定義を作成するための統合型ビジュアル開発環境です。詳細は、"スタジオの使用法" を参照してください。
SQL ベースの開発
Caché は、SQL DDL 文を使用して定義されたすべてのリレーショナル・テーブルからクラス定義を自動的に作成するので、Caché アプリケーションを SQL ベースのツールを使用して開発することが可能です。DDL で表現できることが限定されるため、この方法ではオブジェクトのすべての機能を使用することはできません。しかし、従来のアプリケーションを移行するには便利です。
XML ベースの開発
クラス定義を XML ドキュメントとして開発し、それを Caché にロードできます。これは、クラス定義に対する Caché 特有の XML 形式、もしくは XML スキーマ表現を使用して行うことができます。
ユーザ・インタフェース開発およびクライアント接続
Caché のオブジェクト・テクノロジは、Caché ユーザ・インタフェース開発ツールや、他のシステムとの相互運用のための接続ツールとの接続をサポートします。オプションの包括的なリストについては、"インターシステムズ・プログラミング・ツールの索引" の目次を参照してください。