Adobe LiveCycle Data Services ES2 バージョン 3 リリースノート
新機能
Adobe® LiveCycle™ Data Services 3 では、Flash および Java を使用して、リッチインターネットアプリケーションを簡単に開発できます。LiveCycle Data Services のクライアント / サーバーフレームワークやツールを使用することで、既存、または新規のエンタープライズ Java アプリケーションで柔軟かつ強力な Adobe® Flash® プラットフォームを活用するアプリケーションを作成できます。
Adobe LiveCycle Data Services 3 では、次のような重要な新機能が提供されています。
- より高品質なアプリケーションを短時間で簡単に開発できるようにする Flash アプリケーションのモデル駆動型開発のサポート
- Edge Server を使用した、非武装地帯(DMZ)での安全でスケーラブルな接続
- エンタープライズアプリケーションのサービス品質を制御および測定する、開発者向けの新機能
モデル駆動型開発
Adobe アプリケーションモデリングテクノロジーにより、Flex の開発者はモデル駆動型の開発を行うことができます。開発者はまずアプリケーションモデルを作成し、そこから Flex ユーザーインターフェイスおよびサーバービジネスロジックを開発します。Flash Builder 4 と Adobe LiveCycle Data Services 3 を使用すると、Flex アプリケーションを簡単に短時間で開発できます。
アプリケーションモデリングテクノロジーのランタイムでは、データの永続化が特別な設定なしで有効になります。データ管理機能は暗黙的にサポートされており、開発者はカスタムアセンブラを作成したり、複雑な設定を採用する必要はありません。Java や Flex のコードを作成せずに、便利なアプリケーションプロトタイプを開発できます。
LiveCycle Data Services 3 では、テキストおよびグラフィックスのモデリングエディターも導入されており、Flash Builder と組み合わせて使用できます。このツールにより、エンタープライズ対応の Flex アプリケーションをさらに簡単に作成可能です。
アプリケーションモデリングテクノロジーとモデリングエディターは、複雑なエンタープライズアプリケーションのニーズを満たすため、優れた拡張性を備えています。これらを利用することで、Flex および Java 開発者の生産性を向上することができます。
DMZ での接続
Edge Server は、エンタープライズの非武装地帯(DMZ)専用に設定およびデプロイされる LiveCycle Data Services のサーバーです。非武装地帯とは、エンタープライズのインターネットに対する外部サービスの囲い込みと公開を行うサブネットワークです。アプリケーション層にデプロイされている LiveCycle Data Services サーバーに対し、Java New IO(NIO)エンドポイント経由で使用される場合、Edge Server は HTTP および RTMP トラフィックのプロキシ(リレー)サーバーとして機能します。したがって、スケーラビリティやパフォーマンスを犠牲にすることなく、アプリケーション層にビジネスロジックを安全にデプロイできます。
サービス品質
Adobe Flash Player で実行されている Flex アプリケーションでは、データをキャッシュし、ビジネスロジックを実行し、ネットワーク接続を開くことができます。これにより、HTML/AJAX では実装が困難または不可能な、新しい種類の Web アプリケーションの構築が可能になります。LiveCycle Data Services 3 では、信頼性の高い通信機能とデータスロットルの 2 つの新機能が追加されています。さらに、負荷のある状態でのアプリケーションのパフォーマンスを測定するツールも提供されています。
信頼性の高い通信機能
LiveCycle Data Services 3 以前、Flash クライアントアプリケーションおよびサーバーアプリケーションでは最善の方法で要求の送信や応答の取得が試行されましたが、通信が確実に受信者に届くことは保証されませんでした。LiveCycle Data Services 3 では確認機能がサポートされ、Flex ベースの Flash アプリケーションと LiveCycle Data Services サーバーとの間のすべての通信が保証されます。必要な作業は、LiveCycle Data Services サーバー宛先を「信頼できる」としてマークすることだけです。これで新機能が有効になり、Web アプリケーションを強化できます。
データスロットル
データスロットルは、LiveCycle Data Services 3 のメッセージングインフラストラクチャの拡張機能です。データスロットルでは、Flash Player のデータ処理速度に基づいて、ストリームされるデータの量を増減します。LiveCycle Data Services 3 では、アダプティブスロットルなど、データ量調整のためのオプションがいくつかサポートされています。アダプティブスロットルを使用すると、LiveCycle Data Services サーバーでは、手動の設定を行わずに自動的にデータストリーミングレートを調整できます。LiveCycle Data Services サーバーからのデータ提供速度のほうがクライアントの処理速度より速い場合があるため、開発者が過剰なデータを制御できるように、複数のオプションがサポートされています。
テストツールの読み込み
LiveCycle Data Services には、Java ベースの読み取りおよびストレスのテストツールが付属しています。開発者は、数千の仮想クライアントを作成して、LiveCycle Data Services でデプロイされたアプリケーションをテストできます。このツールでは、RTMP および HTTP を含む、LiveCycle Data Services 3 でサポートされているすべてのプロトコルがサポートされています。
既知の問題と API の変更
- Data Management Service:LCDS-876 の修正には、公開されている Java API の変更が必要でした。DataMessage.setUpdateBody メソッドの名前が DataMessage.modifyUpdateMessageBody に変更されました。
- FBR-134 - モデル駆動型開発:同じデータベーステーブルによって保持されている同じエンティティを複数のモデルで使用することはサポートされていません。
- FBR-317 - モデルのデプロイメント:Model アセンブラにモデルをデプロイするときは、identity プロパティではない "id" という名前のエンティティプロパティは指定できません。これは、Model アセンブラの永続層で使用されている Hibernate ライブラリのバグによるものです。
- FBR-383 - モデル駆動型開発:RDS を処理するときに、UPDATES や DELETES など、行数が 0 になるタイプのアクションクエリーを使用し、このクエリーが正常に処理されると、RDS で「RDS: java.sql.SQLException: General error resultset closed」というエラーが発生します。これは無視してください。このエラーは、例えば ALTER TABLE など、すべての DDL ステートメントでも発生します。使用しているデータベースドライバーによっては、クエリーを実行できない場合もあります。その場合も、例外は無視してかまいません。ステートメントは実行されます。
- LCDS-408 - JBoss 5 には、LiveCycle Data Services に含まれている Hibernate JAR と矛盾する Hibernate JAR ファイルが含まれています。この矛盾を解決するには、LiveCycle Data Services の WEB-INF/lib フォルダーに含まれている Hibernate JAR を削除します。
- FB-19843 - Flash Builder で Data Management の宛先の内観を行っても、AbstractAssembler アプローチを使用する DataService 宛先の適切な fill 関数が生成されません。
- LCDS-744 - JDK NIO の、Linux ディストリビューションでの epoll に関するバグ(JDK 1.6 および 1.7)により、セレクターがループして、使用可能なすべての CPU の負荷が過剰になる場合があります。
- LCDS-816 - Modeler:モデル設計キャンバスからフォーカスが移動すると、エンティティ選択は淡色表示になります。
- LCDS-864 - Model Assembler:承認が失敗した後に、コレクション内のアイテムが 1 つだけである場合、ローカルデータの変更(削除)はロールバックされません。
- LCDS-895 - Modeler:Modeler でコメントが保持されません。
- LCDS-907 - Modeler:無効なエンティティ作成:複数のスキーマで同じテーブルを定義すると、エンティティモデルに重複したフィールドが作成されます。
- LCDS-931 - Model Assembler:共有バックエンドを false に設定すると、更新メッセージによって、クラスターで EntityUtility LazyInitializationException が発生します。
- LCDS-966 - Edge Server:クライアントが Edge Server を通して単一のエンドポイントで接続され、2 つの異なるアプリケーション層サーバーの 2 つの宛先にサブスクライブした場合、アプリケーション層サーバーの MessageClient が無効になったときに、コンシューマーはサブスクライブ解除および切断されません。
- LCDS-1022 - モデル駆動型開発:モデルからエンティティを削除しても、そのクラスはパッケージから削除されません。
- LCDS-1057 - モデル駆動型開発(シナリオテスト):DataGrid には派生プロパティの列が表示される必要があります。
- LCDS-1076 - Modeler Expression Builder:キーボードの上下の矢印キーを使用して関数のリストや関数のカテゴリをスクロールできません。
- LCDS-1093 - Modeler:読み込まれたデータベースの整数エンティティは、デフォルトで自動生成され、ランタイムエラーの原因となります。
- LCDS-1103 - モデル駆動型フォーム:Flash Builder デザインモードでのモデル駆動型フォームの追加は、長時間かかり、ちらつきの原因となります。Flex フォームを使用する場合や、いずれかのタイプのフォームをソースモードで追加した場合には、この問題は発生しません。
- LCDS-1104 - モデルのデプロイメント:モデルをサーバーにデプロイするときに、アプリケーションモデリングテクノロジーでコンポジットエンティティのデプロイが失敗します。
- LCDS-1105 - モデル駆動型開発:モデルエンティティ文字列 ID の長さの属性が、データベース内の作成済みテーブルで適用されません。
- LCDS-1110 - Modeler:Modeler デザインビューで RDS ビューからモデルへデータソースをドラッグアンドドロップしても、何も行われません。ただし、カーソルは、機能することを示す「プラス記号付きのファイル」として表示されます。
- LCDS-1113 - モデル駆動型開発:エンティティパッケージとサービスパッケージが異なる場合に、サービスに適合しないパッケージが読み込まれます。
- LCDS-1119 - モデル駆動型フォーム:同じアプリケーションで複数のモデル駆動型フォームを使用すると、フォーム間で予期しないやり取りが行われる問題が発生します。
- LCDS-1148 - Modeler:1 つのバリアントの複数のケースにプロパティをドラッグアンドドロップすると、着色の問題が発生します。
- LCDS-1159 - Modeler:新しい注釈を追加するときは、アイテムおよび値のフィールド上のカーソルを入力モードのままである必要があります。
- LCDS-1167 - モデル駆動型開発:宛先でもページングを使用している場合は、JPQL パススルークエリーを使用するエンティティフィルターが機能しません。
- LCDS-1187 - Data Management のサンプルで推奨されない API が使用されています。Assembler インターフェイスメソッド上の新しいバージョンの fill メソッドは、propertySpecifier を引数として取りますが、ドキュメント内のサンプルおよびコードでは、AbstractAssembler クラスで定義されている推奨されない fill メソッドを使用しています。このメソッドは propertySpecifier を引数として取りません(public Collection fill(List fillParameters))。
修正された問題
- BLZ-100 - Java から ActionScript への AMF シリアライゼーションが、Map 型に関して正常に機能しません。
- BLZ-134 - AMF 応答のキャッシュコントロールおよび有効期限のヘッダーを設定する機能が追加されました。
- BLZ-190 - LoginManager.start()/stop() メソッドは LoginCommand.start()/stop() メソッドを呼び出す必要があります。
- BLZ-214 - enum キーを使用するマップインスタンスで null 値が返されます。
- BLZ-251 - Destination.stop() メソッドおよび Service.stop() メソッドで何も行われません。
- BLZ-282 - Amf3Input インスタンスで、AmfTrace(デバッグ)のプロパティ名が正常に生成されません。
- BLZ-301 - サブスクライブ解除時に、セレクター式が適切にクリーンアップされません。
- BLZ-311 - デフォルトの HTTPClient CookiePolicy が原因で、RFC-2109 に準拠しない cookie が無視されます。
- BLZ-340 - 「宛先」プロパティは、null 値の割り当てに関して RTE をスローするため、MXML のバインディング式をサポートしません。
- BLZ-345 - AMFConnection インスタンスで、Content-Type ヘッダーが正常に設定されません。
- BLZ-376 - BlazeDS で重複したセッション cookie(JSESSIONID)が作成されます。
- BLZ-378 - Internet Explorer 6 または 8 で、AMF のストリーミングや AMF のポーリングが機能しません。
- BLZ-379 - ストリーミングエンドポイントの channel-definition でプロパティが何も定義されていない場合、デフォルトの user-agent 設定は適用されません。
- BLZ-384 - プロキシサービスで、HTTP PUT 要求および DELETE 要求の応答本体が返されません。
- BLZ-419 - ActionScript String が null のとき、EnumDecoder で NullPointerException がスローされます。
- BLZ-64 - RemoteObject.logout() メソッドを実行したときに、LoginCommand.logout() が呼び出されません。
- LCDS-325 - インライン XML を含む DocumentReference インスタンスを、LiveCycle とやり取りできません。
- LCDS-361 AIR アプリケーションのキャッシュ内にコミット待ちの変更があるときに、Dataservice.commitRequired プロパティが false になります。
- LCDS-368 - paged-collection="true" のときに、無限のページングループが発生します。pageSize がコレクションサイズの倍数であるときに、fill スタイルのページングを行いました。
- LCDS-464 - Assembler DSC 用のデータマップエディターを使用しているときに、プロパティクラスを解析できません。
- LCDS-465 - Assembler DSC 用のデータマップエディターで、「Fill Method for Paging is not defined」という例外が生成されます。
- LCDS-504 - GenericFlexPortlet processAction() 関数で、不適切なタイミングでモードが EDIT に設定されます。
- LCDS-541 - DataService で、チャンネルフェイルオーバーが機能しません(少なくとも count メソッドに対して)。
- LCDS-571 - RTMP ログアウト後に同じ接続でログインすると、失敗します。
- LCDS-576 - 負荷が高いとき、RTMP 接続の書き込みが停止します。
- LCDS-585 - oldValue !=== newValue であるものの、プロパティに同じ論理値(同じ時刻の Dates など)がある場合に、Data Management ではプロパティ変更イベントが無視されません。
- LCDS-626 - 階層値を使用してコレクションから最後のアイテムを削除すると、変更が失われます。
- LCDS-639 - removeItemWithIdFromCollectionProperty() メソッドで、pagedUpdate が指定されているサブスクライバーに対して削除済みアイテムが送信されません。
- LCDS-642 - Load-on-demand タグにより、無効なコレクション「置き換え」イベントが発生します。これにより、Tree コンポーネントに重複した行が発生します。
- LCDS-720 - DataService.revertChanges() メソッドで、Hibernate 注釈を使用して設定された管理された関連付けに対する変更を元に戻すことができません。