静的モデルのスキーマ・ロード・プロセス

新しいエンティティー・タイプ、プロパティー・タイプ、およびコントロール・タイプを wimextension.xsd などの 拡張スキーマ XSD ファイルに追加することができます。これらの XSD ファイルは、Virtual member manager の組み込みスキーマ XSD ファイルをインポートします。その後で、Eclipse または RAD 開発環境または同様のツールを介して拡張スキーマ XSD ファイルから静的モデル・コードを生成することができます。生成されたモデル・コードは jar ファイル (例えば wimmodel.jar および wimmodelext.jar) に圧縮されて、クラス・パスの下に入れられます。

Virtual member manager が始動すると、構成マネージャーは wimconfig.xml ファイルを構成データ・グラフにロードします。 次に、スキーマ・マネージャーに構成データ・グラフが渡されます。

スキーマ・マネージャーは、 データ・オブジェクト staticModel からパッケージ・インターフェース com.ibm.websphere.wim.model.ModelPackage および com.ibm.websphere.wim.model.ext.ExtPackage の完全修飾名を取得して、これらの静的パッケージを登録します。スキーマ・ マネージャーは wimxmlextension.xml ファイルを読み取って、追加の動的スキーマ情報を取得して、次の変更を行います。 ローカル・サービス・プロバイダーのインスタンスが Virtual member manager のインスタンスと同じ Java 仮想マシン (JVM) に存在する場合は、ECore モデルがスキーマ・マネージャーによって既に登録済みであるため、プロセスは完了です。

ローカル・サービス・プロバイダーのインスタンスが Virtual member manager のインスタンスと同じ JVM にない場合には、 ローカル・サービス・プロバイダーのインスタンスがリモートで作成されて、ローカル・サービス・プロバイダーが Virtual member manager API getEPackges を呼び出し nsURI パラメーターを null として渡すことによってすべての名前空間のスキーマを取得します。

プロファイル・マネージャーは、API 呼び出しを 受け取って、これをスキーマ・マネージャーに渡します。 ECore モデルは直列化されず、リモート・クライアントに渡すことができないので、スキーマ・マネージャーは ECore モデルをバイト配列の形式に変換して、 スキーマをローカル・サービス・プロバイダーに戻します。

ローカル・サービス・プロバイダーはスキーマをバイト配列から ECore モデルに変換して、クライアントの JVM に登録します。

クライアントとサーバーが同じ JVM にある場合は、クライアントは静的パッケージで定義されたデータ・オブジェクトをそれらの静的タイプにキャストして、静的メソッドを使用します。 例えば、PersonAccount のデータ・オブジェクトは PersonAccount オブジェクトにキャストでき、getSn のような静的メソッドは (getString(“sn”) のような静的メソッドの代わりに) 使用することができます。これらは、動的パッケージである wimxmlextension.xml で定義された データ・オブジェクト (例えば、ContactPerson) には適用されません。

クライアント とサーバーが別の JVM にある場合、クライアントの JVM では静的パッケージにアクセスできないので、データ・オブジェクトが 静的パッケージで定義されていても、静的タイプや静的メソッドを使用することはできません。



利用条件 | フィードバック