BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース パーシスタンス・エンティティ転送の容易化

パーシスタンス・エンティティ転送の容易化

原文(投稿日:2009/4/27)へのリンク

Gileadとは、

パーシスタンス・エンティティを簡単にJVM外に送信するという機能を有効にする(リンク)ライブラリである。

Gileadという名称はGeneric Light Entity Adapterからきており、以前はHibernate4GWT(リンク)という名称であった。ディベロッパが他のフレームワークのサポートを始めた後にこの名称変更(リンク)があった。

現在Gileadは単にGWTフロントエンドに対応するだけではなく、またHibernateが予定しているもの以外のJPA実装もサポートしているので、我々はより一般的な名称を探しました。

Gileadが作り出された主な理由というのは、パーシスタンス・エンティティを他のシステムあるいはフロントエンド技術に送る際に発生することがあったトラブルの軽減であった。通常は、必要な情報を取り込み、またエンティティの永続化に関連するトラブルを軽減するよう、パーシスタンス・フレームワークがコンパイルやランタイム中にクラスを変更するために障害が起こる。そしてこれらの変更されたオブジェクトが広まると、異常が起こり、「NoClassDefFoundError」や「ClassCastException」といったエラーが受け取り側から発せられる。

Gileadはこの問題をクローンを使用して回避し、ストラテジをマージする。オブジェクトがサーバから送られる際はクローン化され、

クローンはパーシスタンス・エンティティを採用し、プロキシやパーシスタンス・コレクションを用いずにニュートラルなインスタンスを作成します。

サーバに返される際、オブジェクトはマージされ、Gileadは3つの「モード」のうち1つを実行する。

  1. ステートレス: ユーザのクラスはLightEntityを拡張するか、パーシスタンス情報をクローン化されたオブジェクトに格納できるILightEntityを実装(サーバに情報は残らない)しなければいけない。
  2. ステートフル: パーシスタンス情報はHTTPセッションに格納される。
  3. 動的プロキシ: 既存コードが、ステートレス・モードが設定する要件を満たすように変更することができない場合に有効な、試行的なステートレス・モードである。

Gileadの現行バージョンは1.2.2で、HibernateをJPAフレームワークとして使用するアプリケーション向けに安定したクローンおよびマージ操作を備えている。エンティティをフロントエンド技術に送るためにGileadが備える安定したアダプタには、GWT(リンク)およびFlex(リンク)(BlazeDS(リンク)を使用)が組み込まれている。

次回リリースのバージョン1.3はXML/Webサービス・アダプタやOpenJPA(ロード・マップの後半にはEclipseLinkを伴って)、そのほかの改良が予定されている。

この記事に星をつける

おすすめ度
スタイル

BT