プロダクションの開発の概要
このページでは、プロダクションの開発プロセスについて説明します。
InterSystems IRIS Interoperability の概念とオプションの説明は、"相互運用プロダクションの概要" を参照してください。InterSystems IRIS Interoperability の処理動作は、"プロダクションの監視" の最初の章を参照してください。
環境上の考慮事項
InterSystems IRIS Interoperability は、特定の Web アプリケーションが属している相互運用対応ネームスペース内でしか使用できません。クラスの作成では、予約パッケージ名を使用しないようにする必要があります。以降の項で詳しく説明します。
プロダクション対応ネームスペース
相互運用対応ネームスペースは、プロダクションをサポートするクラス、データ、およびメニューをネームスペースで使用可能にするグローバル・マッピング、ルーチン・マッピング、およびパッケージ・マッピングで構成されたネームスペースです。マッピングの一般情報は、"システム管理ガイド" の "ネームスペースの構成" を参照してください。(この節の情報を使用して、相互運用対応ネームスペースで行われる実際のマッピングを確認できます。詳細はリリースにより異なる場合がありますが、ユーザ側で特に作業する必要はありません)。
InterSystems IRIS のインストール時に作成されるシステム提供のネームスペースは、Community Edition で USER ネームスペースが相互運用対応ネームスペースである場合を除き、相互運用対応ではありません。ユーザが作成する新しいネームスペースはすべて、デフォルトで相互運用対応になります。ネームスペースを作成する際に [ネームスペースを相互運用プロダクション対応にする] チェック・ボックスのチェックを外すと、InterSystems IRIS は相互運用に対応しないネームスペースを作成します。
システム提供のネームスペースはすべて、再インストールまたはアップグレードの際に上書きされます。このため、常に、ユーザが作成した新規ネームスペースで作業することをお勧めします。新規ネームスペースの詳細は、"システム管理ガイド" の "ネームスペースの構成" を参照してください。
Web アプリケーションの要件
また、プロダクションは、/csp/namespace (この場合の namespace はネームスペースの名前) と名付けられた Web アプリケーションが関連付けられている場合のみ、そのネームスペースで使用できます。(これは、ネームスペースに対するデフォルトの Web アプリケーション名です。)Web アプリケーションの定義の詳細は、"アプリケーション" を参照してください。
予約パッケージ名
相互運用対応ネームスペースでは、Demo、Ens、EnsLib、EnsPortal、または CSPX をパッケージ名として使用しないでください。これらのパッケージは、アップグレード・プロセス中に完全に置換されます。これらのパッケージ内でクラスを定義した場合は、アップグレード前にそれらのクラスをエクスポートして、アップグレード後にインポートする必要があります。
また、先頭に Ens (大文字と小文字の区別あり) が付くパッケージ名を使用しないことをお勧めします。これには次の 2 つの理由があります。
-
先頭に Ens が付く名前のパッケージにクラスをコンパイルすると、コンパイラは、生成されたルーチンを ENSLIB システム・データベースに書き込みます(コンパイラがそうするのは、名前の先頭に Ens が付くルーチンはすべて、そのデータベースにマッピングされるからです)。つまり、インスタンスをアップグレードすると、ENSLIB データベースが置換され、生成されたルーチンはアップグレードによって削除され、クラス定義のみが残ります。この時点で、クラスを使用するために、クラスのリコンパイルが必要になります。
これに対し、名前の先頭が Ens ではないパッケージ内のクラスは、インスタンスのアップグレード時にリコンパイルする必要はありません。
-
名前の先頭に Ens が付くパッケージ内のクラスを定義すると、それらのクラスは相互運用対応のすべてのネームスペースで使用可能になりますが、このことは望ましい場合も、望ましくない場合もあります。1 つ言えることとして、パッケージの名前の先頭に Ens が付いている場合、名前が同じでコンテンツが異なる 2 つのクラスを、異なる相互運用対応ネームスペースで使用することはできなくなります。
プロダクション定義の確認
プロダクションは管理ポータルで作成して構成しますが、選択した IDE で既存のプロダクション・クラスの定義を確認することから始めることをお勧めします。以下にプロダクションの簡単な例を示します。
Class Demo.FloodMonitor.Production Extends Ens.Production
{
XData ProductionDefinition
{
<Production Name="Demo.FloodMonitor.Production">
<ActorPoolSize>1</ActorPoolSize>
<Item Name="Demo.FloodMonitor.BusinessService"
ClassName="Demo.FloodMonitor.BusinessService"
PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
</Item>
<Item Name="Demo.FloodMonitor.CustomBusinessProcess"
ClassName="Demo.FloodMonitor.CustomBusinessProcess"
PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
</Item>
<Item Name="Demo.FloodMonitor.GeneratedBusinessProcess"
ClassName="Demo.FloodMonitor.GeneratedBusinessProcess"
PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
</Item>
<Item Name="Demo.FloodMonitor.BusinessOperation"
ClassName="Demo.FloodMonitor.BusinessOperation"
PoolSize="1" Enabled="true" Foreground="false" InactivityTimeout="0">
</Item>
</Production>
}
}
以下の点に注意してください。
-
プロダクションは 1 つのクラスで、具体的には、Ens.ProductionOpens in a new tab のサブクラスです。
-
XData ProductionDefinition ブロックには、プロダクションの構成情報が記されています。
-
各 <Item> はビジネス・ホストです。構成項目と呼ばれることもあります。
-
ビジネス・ホストごとに 1 つずつのクラスを参照します。ClassName はこのホストの基本となるクラスを指しています。これは、プロダクションでこのビジネス・ホストのインスタンスを作成するときに、特定のクラスのインスタンスを作成する必要があることを意味します。
-
ビジネス・ホスト名は任意の文字列です。この例のように、クラス名をホスト名にすると便利な場合があります。同じクラスを使用する多数のビジネス・ホストを作成する場合は、この方法ではうまくいきません。
開発の早い段階で命名規則を設定することが重要です。"プロダクション作成のベスト・プラクティス" を参照してください。命名規則が存在しない場合は混乱を招く可能性があります。
-
XData ブロック内のその他の値はすべて設定値です。一番上にある <ActorPoolSize> はプロダクションに関する設定です。ビジネス・ホスト定義内では、プール・サイズ、有効、フォアグラウンド、および非活動タイムアウトがビジネス・ホストに関する設定です。
開発ツールと開発タスク
プロダクションは、主に、クラス定義とサポート・エンティティで構成されています。プロダクションの作成プロセスでは、ニーズに応じて、少量のプログラミングが必要な場合と、大量のプログラミングが必要な場合があります。前述したように、InterSystems IRIS には、非技術系ユーザがビジネス・ロジックを視覚的に作成するためのグラフィカル・ツールが用意されています。これらのツールによって、必要なクラス定義が生成されます。
プロダクションを開発する際には、次のように、管理ポータルと選択した IDE の両方を使用します。
ポータル・タスク
管理ポータルでは、ウィザードを使用して、以下を定義してコンパイルします。
-
プロダクション・クラス。"プロダクションの構成" を参照してください。
プロダクションに変更を加えると、InterSystems IRIS が、自動的に、それらを保存してプロダクション・クラスをコンパイルします。
-
BPL ビジネス・プロセス・クラス。"BPL プロセスの開発" を参照してください。
-
DTL 変換クラス。"DTL 変換の開発" を参照してください。
-
ビジネス・ルール・クラス。"ビジネス・ルールの開発" を参照してください。
以下の追加のタスクでも管理ポータルを使用します。
-
設定で使用する再利用可能項目の定義。これには、プロダクション認証情報やビジネス・パートナーなどが含まれます。"プロダクションの構成" を参照してください。
-
プロダクションの開始と停止。"プロダクションの管理" を参照してください。
-
テスト・プロセスとデバッグ・プロセスに含まれるメッセージ・フローの調査。"プロダクションの監視" を参照してください。
-
テスト固有のビジネス・ホスト。"テストとデバッグ" を参照してください。
IDE タスク
IDE で以下のクラスを定義してコンパイルします。
-
メッセージ・クラス。"メッセージの定義" を参照してください。
-
ビジネス・サービス・クラス。"ビジネス・サービスの定義" を参照してください。InterSystems IRIS には、特定のアダプタを直接使用するビジネス・サービス・クラスがあることに注意してください。このクラスの 1 つを使用すれば、独自のクラスを作成する必要がありません。
-
カスタム・ビジネス・プロセス・クラス。"ビジネス・プロセスの定義" を参照してください。
-
ビジネス・オペレーション・クラス。"ビジネス・オペレーションの定義" を参照してください。InterSystems IRIS には、特定のアダプタを直接使用するビジネス・オペレーション・クラスがあることに注意してください。このクラスの 1 つを使用すれば、独自のクラスを作成する必要がありません。
-
カスタム・データ変換クラス。"データ変換の定義" を参照してください。
-
カスタム・アダプタ・クラス。"あまり一般的ではないタスク" を参照してください。
"あまり一般的ではないタスク" では、その他のトピックも参照してください。
利用可能な特殊なクラス
InterSystems IRIS には、特殊なアダプタ・クラスとビジネス・ホスト・クラスが多数用意されており、これにより開発時間とテスト時間を短縮することができます。最も一般的なオプションの概要は、"相互運用プロダクションの概要" の "その他のプロダクション・オプション" を参照してください。