概要
この章では、プロダクションの開発プロセスについて説明します。以下のトピックが含まれています。
Ensemble の概念とオプションの説明は、"Ensemble の紹介" を参照してください。Ensemble の処理動作は、"Ensemble の監視" の最初の章を参照してください。
環境上の考慮事項
Ensemble は、特定の Web アプリケーションが属している Ensemble 対応ネームスペース内でしか使用できません。クラスの作成では、予約パッケージ名を使用しないようにする必要があります。以降の項で詳しく説明します。
Ensemble 対応ネームスペース
Ensemble 対応ネームスペース は、Ensemble のシステム・クラスとデータを使用可能にするグローバル・マッピング、ルーチン・マッピング、およびパッケージ・マッピングで構成されたネームスペースです。マッピングの一般情報は、Caché システム管理ガイド の “Caché の構成” にある “ネームスペースの構成” を参照してください。(この節の情報を使用して、Ensemble 対応のネームスペースで行われる実際のマッピングを確認できます。詳細はリリースにより異なる場合がありますが、ユーザ側で特に作業する必要はありません。)
システムにより提供されるネームスペースのうち、ENSEMBLE と ENSDEMO のみが Ensemble 対応です。
Ensemble を正常にインストールした後は、新しく作成したネームスペースが既定で Ensemble 対応となります。ネームスペースを作成する際に [これを Ensemble ネームスペースにする] チェックボックスのチェックを外すと、Ensemble は Ensemble に対応しないネームスペースを作成します。
ENSEMBLE ネームスペースと USER ネームスペースを除き、システム提供のネームスペースはすべて、再インストールまたはアップグレードの際に上書きされます。このため、常に ENSEMBLE ネームスペース、USER ネームスペース (Ensemble の使用には不適切)、またはユーザが作成した新規ネームスペースで作業することをお薦めします。新しいネームスペースの作成方法は、"Caché システム管理ガイド" の “Caché の構成” の章にある “データの構成” を参照してください。
Web アプリケーションの要件
また、Ensemble は、/csp/namespace (この場合の namespace はネームスペースの名前) と名付けられた Web アプリケーションが関連付けられている場合のみ、そのネームスペースで使用できます。(これは、ネームスペースに対するデフォルトの Web アプリケーション名です。)Web アプリケーションの定義の詳細は、Caché セキュリティ管理ガイド の “アプリケーション” を参照してください。
予約パッケージ名
Ensemble 対応ネームスペースでは、Demo、Ens、EnsLib、EnsPortal、または CSPX をパッケージ名として使用しないでください。これらのパッケージは、アップグレード・プロセス中に完全に置換されます。これらのパッケージ内でクラスを定義した場合は、アップグレード前にそれらのクラスをエクスポートして、アップグレード後にインポートする必要があります。
また、先頭に Ens (大文字と小文字の区別あり) が付くパッケージ名を使用しないことをお勧めします。これには次の 2 つの理由があります。
-
先頭に Ens が付く名前のパッケージにクラスをコンパイルすると、コンパイラは、生成されたルーチンを ENSLIB システム・データベースに書き込みます(コンパイラがそうするのは、名前の先頭に Ens が付くルーチンはすべて、そのデータベースにマッピングされるからです)。つまり、インスタンスをアップグレードすると、ENSLIB データベースが置換され、生成されたルーチンはアップグレードによって削除され、クラス定義のみが残ります。この時点で、クラスを使用するために、クラスのリコンパイルが必要になります。
これに対し、名前の先頭が Ens ではないパッケージ内のクラスは、インスタンスのアップグレード時にリコンパイルする必要はありません。
-
名前の先頭に Ens が付くパッケージ内のクラスを定義すると、それらのクラスは Ensemble 対応のすべてのネームスペースで使用可能になりますが、このことは望ましい場合も、望ましくない場合もあります。1 つ言えることとして、パッケージの名前の先頭に Ens が付いている場合、名前が同じでコンテンツが異なる 2 つのクラスを、異なる Ensemble 対応ネームスペースで使用することはできなくなります。
プロダクション定義の確認
プロダクションは管理ポータルで作成して構成しますが、初めにスタジオでプロダクションの定義を確認することをお勧めします。ENSDEMO ネームスペース内で定義されたプロダクションの単純な例を以下に示します。
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 はこのホストの基本となるクラスを指しています。これは、プロダクションでこのビジネス・ホストのインスタンスを作成するときに、特定のクラスのインスタンスを作成する必要があることを意味します。
-
ビジネス・ホスト名は任意の文字列です。この例のように、クラス名をホスト名にすると便利な場合があります。同じクラスを使用する多数のビジネス・ホストを作成する場合は、この方法ではうまくいきません。
開発の早い段階で命名規則を設定することが重要です。"Ensemble のベスト・プラクティス" を参照してください。命名規則が存在しない場合は混乱を招く可能性があります。
-
XData ブロック内のその他の値はすべて設定値です。一番上にある <ActorPoolSize> はプロダクションに関する設定です。ビジネス・ホスト定義内では、プール・サイズ、有効、フォアグラウンド、および非活動タイムアウトがビジネス・ホストに関する設定です。
開発ツールと開発タスク
Ensemble プロダクションは、主に、クラス定義とサポート・エンティティで構成されています。プロダクションの作成プロセスでは、ニーズに応じて、少量のプログラミングが必要な場合と、大量のプログラミングが必要な場合があります。前述したように、Ensemble には、非技術系ユーザがビジネス・ロジックを視覚的に作成するためのグラフィカル・ツールが用意されています。これらのツールによって、必要なクラス定義が生成されます。
プロダクションを開発する場合は、次のように、管理ポータルとスタジオの両方を使用します。
ポータル・タスク
管理ポータルでは、ウィザードを使用して、以下を定義してコンパイルします。
-
プロダクション・クラス。"Ensemble プロダクションの構成" を参照してください。
プロダクションに変更を加えると、Ensemble が、自動的に、それらを保存してプロダクション・クラスをコンパイルします。
-
BPL ビジネス・プロセス・クラス。"BPL プロセスの開発" を参照してください。
-
DTL 変換クラス。"DTL 変換の開発" を参照してください。
-
ビジネス・ルール・クラス。"ビジネス・ルールの開発" を参照してください。
以下の追加のタスクでも管理ポータルを使用します。
-
設定で使用する再利用可能項目の定義。これには、Ensemble 資格情報やビジネス・パートナーなどが含まれます。"Ensemble プロダクションの構成" を参照してください。
-
プロダクションの開始と停止。"Ensemble の管理" を参照してください。
-
テスト・プロセスとデバッグ・プロセスに含まれるメッセージ・フローの調査。"Ensemble の監視" を参照してください。
-
テスト固有のビジネス・ホスト。“テストとデバッグ” の章を参照してください。
スタジオ・タスク
スタジオでは、以下のクラスを定義してコンパイルします。
-
メッセージ・クラス。“Ensemble メッセージの定義” を参照してください。
-
ビジネス・サービス・クラス。“ビジネス・サービスの定義” を参照してください。Ensemble には、特定のアダプタを直接使用するビジネス・サービス・クラスがあることに注意してください。このクラスの 1 つを使用すれば、独自のクラスを作成する必要がありません。
-
カスタム・ビジネス・プロセス・クラス。“ビジネス・プロセスの定義” を参照してください。
-
ビジネス・オペレーション・クラス。“ビジネス・オペレーションの定義” を参照してください。Ensemble には、特定のアダプタを直接使用するビジネス・オペレーション・クラスがあることに注意してください。このクラスの 1 つを使用すれば、独自のクラスを作成する必要がありません。
-
カスタム・データ変換クラス。“データ変換の定義” を参照してください。
-
カスタム・アダプタ・クラス。“あまり一般的ではないタスク” を参照してください。
“あまり一般的ではないタスク” の章のその他のトピックも参照してください。
利用可能な特殊なクラス
Ensemble には、特殊なアダプタ・クラスとビジネス・ホスト・クラスが多数用意されており、これにより開発時間とテスト時間を短縮することができます。最も一般的なオプションの概要は、"Ensemble の紹介" の “その他の Ensemble オプション” を参照してください。その章では、特定のクラスを列挙するのではなく、Ensemble から提供されているツールに関するシナリオが説明されています。該当するドキュメントへの参照も提供されます。
Ensemble でのスタジオの使用
ここでは、Ensemble プロダクションを作成する場合に適用される追加のスタジオ機能と注意事項について簡単に説明します。この章は以下の節で構成されています。
スタジオ内の Ensemble 機能
スタジオが Ensemble 対応ネームスペースに接続されている場合は、常に、スタジオの Ensemble 機能が有効になります。これらの機能は次のとおりです。
-
プロダクション用のすべてのコードを含むプロジェクト生成オプション
-
ここでは説明しない [ファイル]→[新規作成] メニュー用の追加のウィザード
[プロダクション] タブ
Ensemble 対応ネームスペースの場合は、[ワークスペース] ウィンドウに [プロダクション] タブがあります。このタブには、Ensemble プロダクションに関連したクラスが一覧表示されます。次のフォルダが含まれています。
フォルダ | このフォルダ内のクラスの親クラス |
---|---|
[アダプタ] | Ens.AdapterOpens in a new tab。受信アダプタと送信アダプタも含まれます。 |
[ビジネス・オペレーション] | Ens.BusinessOperationOpens in a new tab。 |
[ビジネス・プロセス] | Ens.BusinessProcessOpens in a new tab。 |
[ビジネス・サービス] | Ens.BusinessServiceOpens in a new tab。 |
[データ変換] | Ens.DataTransformOpens in a new tab。 |
[メッセージ] | Ens.RequestOpens in a new tab または Ens.ResponseOpens in a new tab |
[プロダクション] | Ens.ProductionOpens in a new tab。 |
[その他] フォルダ内の追加項目
[ワークスペース] ウィンドウの [その他] フォルダに、あまり一般的ではない追加項目が含まれている場合があります。それには以下が含まれます。
-
EDI (Electronic Document Interchange) ドキュメントで使用するためのスキーマ定義。これらの定義の名前は、.HL7、.ASTM、.X12 などで終わっています。詳細は、"Ensemble 仮想ドキュメント" を参照してください。
-
ダッシュボード定義。これらの名前は .dfi で終わっています。詳細は、"Ensemble プロダクションの構成" の “ダッシュボードの作成” を参照してください。
ダッシュボードは Ensemble 対応ネームスペースに限定されないことに注意してください。この項目は、.dfi 項目はあまり一般的ではないのでここに示されています。
プロダクションからプロジェクトを作成するためのオプション
Ensemble では、プロダクションからスタジオ・プロジェクトを作成するのが容易なため、あるシステムからエクスポートしたプロダクションを別のシステムに簡単にインポートすることができます。以下の手順を実行してください。
-
[ワークスペース] ウィンドウで、プロダクションを右クリックします。
-
[プロダクションからのプロジェクトの作成] をクリックします。
-
プロジェクト名を入力し、[OK] をクリックします。プロジェクト・ファイルが現在のネームスペースに保存されます。プロジェクトには検出可能な項目がすべて追加されます。これには以下が含まれます。
-
プロダクション・クラス
-
それぞれのビジネス・ホスト・クラス
-
それぞれのアダプタ・クラス
-
ルーティング・ルール
-
HL7 スキーマ
-
ルーティング・エンジンのサブクラス
-
サブ変換
-
プロダクションのエクスポートとインポート
管理ポータルまたはスタジオを使用して、プロダクションをエクスポートおよびインポートできます。管理ポータルを使用すると、すべての必須コンポーネントをエクスポート内容に簡単に含めることができます。管理ポータルを使用してプロダクションをエクスポートおよびインポートする方法は、"プロダクションの配置" を参照してください。
プロダクションをエクスポートしてから、それを別のネームスペースまたはインスタンスにエクスポートするには、スタジオで以下の手順を実行します。
-
プロダクションからプロジェクトを作成します。前のトピックを参照してください。
-
プロジェクトを XML ファイルとしてエクスポートします。
-
その XML ファイルを別のネームスペースまたはインスタンスにインポートします。
プロジェクトのインポート方法とエクスポート方法は、"スタジオの使用法" を参照してください。
プロダクションでグローバルに直接保存されたデータが必要な場合は、"Caché グローバルの使用法" の “グローバルの管理” を参照してください。グローバルのエクスポートとインポートに関する情報が得られます。
管理ポータルからプロダクションをエクスポートすることもできます。"Ensemble プロダクションの構成" を参照してください。
プロダクション・クラスの編集に関する注意
プロダクション・クラスは、管理ポータル内で編集するのが最良とされています。これは、構文エラーの発生を防いだり、ポータルから提供される型検証を利用したりできるからです。
しかし、次のように、スタジオ内でクラスを編集したい場合もあります。
-
XData ブロック内の <Item> 要素の順序を変更したい場合。
-
その他のクラス・メンバー、特に、メソッド、プロパティ、およびパラメータを追加したい場合。
XData ブロック内の <Item> 要素の順序は、Ensemble, プロダクション構成 ページのソート・オプションの 1 つを制御します。このページで番号順にソートすると、項目が XData ブロック内の順に表示されます。これは、プロダクションに追加された (当初の) 順番です。