Virtual member manager DataGraph モデルのロード

Virtual member manager は、DataGraph モデルをメモリーにロードするための動的ロードおよび静的ロードという 2 つの方法をサポートしています。それぞれの方法に利点があります。

動的ロード

動的ロードとは、DataGraph モデルを実行時に XSDEcoreBuilder を使用して、XSD ファイルから ECore モデルとしてメモリーにロードすることです。

この方法の利点:
拡張が容易である
静的ロードと異なり、動的ロードの場合は、静的モデル・コードを生成する必要がありません。すべてのスキーマ定義が定義され、XSD ファイルからロードされます。
Virtual member manager 組み込みスキーマに変更可能
新しいプロパティー・タイプは、wimxmlextension.xml ファイルから Virtual member manager の組み込みエンティティー・タイプに追加できます。
実行時の新しいスキーマの追加をサポート
利用者は、createSchema API を実行時に呼び出して、新しいエンティティー・タイプおよびプロパティー・タイプを作成できます。
この方法の欠点:
ロードが遅い
XSD ファイルのロードには、静的モデル・コードのロードよりも時間がかかります。 ロード処理は、Virtual member manager が開始するたびに実行されます。
固有タイプを使用できない
この方法では、ユーザーは、DataObjects を固有のタイプ (PersonAccount、Group など) にキャストすることも、これらのタイプで固有メソッドを使用することもできません。例えば、ユーザーが名前を設定するために使用できるのは DataObject の setString(“givenname”, Smith”) メソッドのみで、PersonAccount の setGivenname(“Smith”) は使用できません。
ランタイム・パフォーマンスが低い
動的ロードを使用した場合の SDO のパフォーマンスは、静的モデルよりも低くなります。

静的ロード

静的ロードとは、開発時に EMF (Eclipse Modeling Framework) コード生成によって静的モデル・コードを生成することです。モデル・コードは、SDO の EMF での実装です。SDO アプリケーションは、生成されたモデル・コードのパッケージを使用します。この方法では、動的ロードでモデルを XSD ファイルからロードする場合よりも時間がかかりません。また、ユーザーは、DataObjects を固有オブジェクト・タイプにキャストして、ランタイム・パフォーマンスを上げることができます。

この方法の利点:
ロードが速い
XSD ファイルからのモデルのロードに比べて、静的モデル・コードからのモデルのロードのほうが時間がかかりません。 これにより、Virtual member manager の開始時間短縮されます。
利用者が固有タイプを使用可能
DataObject を固有のタイプ (PersonAccount、Group など) にキャストして、これらのタイプで固有メソッドを使用できます。例えば、DataObject を PersonAccount にキャストし、メソッド “setGivenname” を使用してプロパティー“givenname”を設定できます。
ランタイム・パフォーマンスが高い
固有のタイプおよびメソッドを使用すると、SDO のランタイム・パフォーマンスは動的ロードの方法の場合よりもよくなります。
この方法の欠点:
拡張が容易ではない
スキーマを拡張するには、Eclipse または RAD 開発環境で静的モデル・コードの生成が必要になります。 Virtual member manager の利用者が拡張を行うには、EMF、SDO、および XML スキーマの知識が必要になります。
Virtual member manager 組み込みスキーマへの変更が困難
Virtual member manager の組み込みエンティティー・タイプ (PersonAccount や Group など) に新しいプロパティー・タイプを追加したい場合、wimdomain.xsd を直接変更して、Virtual member manager の静的モデル・コードを再生成する必要があります。
実行時の新しいスキーマの追加をサポートしていない
生成されたモデル・コードは固定しているので、 実行時に Virtual member manager スキーマを拡張することはできません。


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