大半のRIA開発の現場では、これまでのリクエスト/レスポンスモデルより高度なデータ統合機能が求められています。 リッチさと魅力を一層高めるためには、今まで以上に綿密なデータ連携が必要となることから、クライアント層/サーバ層間では、さらに高度なデータ管理機能が求められます。 Adobe® LiveCycle™ Data Services ESソフトウェアを使用すれば、リッチなデータ機能(複数層間を移動するデータを含む)を追加するアプリケーションを構築し、RIAを通じて実現できる革新的なエクスペリエンスを顧客に提供することができます。
Message Serviceでは、標準のコンセプトと用語を使用するパブリッシュ/サブスクライブメッセージングがサポートされます。 Adobe FlexおよびAjaxのクライアントは、1つ以上のトピックをサブスクライブすることにより、サーバからプッシュされたメッセージを受け取ります。クライアントまたはサーバコードによっていずれかのトピックにメッセージがパブリッシュされると、そのトピックをサブスクライブしているすべてのクライアントにそのメッセージが送信されます。メッセージのサブスクリプションおよびパブリッシュは、メッセージングアダプタで管理されます。 アダプタは、Flexクライアント間およびFlexクライアントとJava™ Message Service(JMS)間でメッセージを送信することを目的として提供されています。 また、Javaコードで独自のメッセージアダプタを記述して、カスタムメッセージの処理やサブスクリプションの管理を行うことができます。
Flexには、ProducerとConsumerという2つのコンポーネントがあります。これらを使用して、トピックのパブリッシュやサブスクライブを行えます。 トピックをサブスクライブするには、Consumerクラスのsubscribeメソッドを使用します。 サブスクライブしているトピックにメッセージがパブリッシュされると、Consumerでmessageイベントがトリガされます。クライアントでは、ポーリングを使用してサーバからメッセージを取得するチャネルとリアルタイムチャネルのどちらを使用するかを設定できます。接続先のチャネル一覧を提供すると、Flexクライアントではサーバに正常に接続できる最初のチャネルが使用されます。 つまり、メッセージングとリアルタイムインフラストラクチャを利用すると、Webデプロイメントモデルの特長である「軽さ」を維持しながら、スケーラビリティと信頼性に優れたコラボレーションアプリケーションおよびデータプッシュ配信アプリケーションを開発できます。特定のクライアントで使用されているプロトコルに関する知識がなくても、アプリケーションコードを簡単に記述することができます。
Data Management Serviceは、クライアント/サーバ間のデータ同期を管理する革新的なプログラミングモデルを提供します。 クライアント側でデータに加えられた変更は、プロパティ変更イベントを使用して自動的に追跡されます。ユーザ側で送信準備が完了した変更は、アプリケーションサーバで実行中のサービスに送信されます。次に、このサービスによって変更がサーバ側のアダプタに渡されます。このアダプタで競合がないかどうかが確認され、変更がコミットされます。アダプタには、既存のコードを使用するために記述したインタフェース、またはSQLやHibernateなどの標準的なパーシステンスレイヤを処理する付属アダプタのいずれかを使用できます。コミットされた変更は、同じデータを参照するクライアントにプッシュされます。
このシステムでは、複雑なドメインモデル、大量のデータをオンデマンドでページ処理して初期ロードを高速化する機能、参照オブジェクトをアクセス時に自動ロードする機能、およびデータをオフラインでキャッシュする機能がサポートされています。これらの機能は、すべてスケーラブルかつ堅牢な方法で実行できます。
Remote Procedure Call(RPC)サービスは、外部データにアクセスする際に呼び出し/応答モデルの使用が適しているアプリケーション向けに設計されています。RPCサービスを使用すると、リモートサービスへの非同期要求を作成して、リモートサービスで要求が処理された後にFlexアプリケーションにデータを直接返すことができます。 データには、HTTP GET、POST(HTTPサービス)、SOAP(Webサービス)、またはJavaオブジェクト(リモートオブジェクトサービス)を含むクライアント側のRPCコンポーネントから、より効率的なAMF3プロトコルを使用してアクセスできます。
RPCコンポーネントを使用するのは、さまざまなドメインからのサービストラフィックのプロキシ処理、クライアント認証、許可されるRPCサービスURLのホワイトリスト、サーバ側でのログ記録、ローカライズのサポート、RPCサービスの集中管理といった企業機能を提供することが必要な場合です。LiveCycle Data Services ESでは、RemoteObjectコンポーネントを使用して、リモートJavaオブジェクトにアクセスすることができます。このとき、RemoteObjectコンポーネントをSOAP準拠のWebサービスとして設定する必要はありません。
LiveCycle RemotingサービスはRPCサービスを拡張するもので、FlexクライアントがRemoteObject呼び出しを行ってLiveCycleサービスを呼び出すことを可能にします。 同期サービスと非同期サービスがサポートされているため、接続に関する周辺処理について心配する必要はありません。 LiveCycle Remotingは、より効率的なAMF3バイナリプロトコルを使用するので、Webサービスよりも高速に動作します。
LiveCycle Data Services ESを使用すると、Flexアプリケーションで、FlexまたはFlash®ベースのグラフィカルアセット(表やグラフなど)またはテキストデータを含む事前定義済みのテンプレートからPDFドキュメントを生成することができます。 Adobe LiveCycle Designer ESソフトウェアを使用すると、Adobe XML Forms Architecture(XFA)テンプレートを含むAdobe XML Data Package(XDP)ドキュメントを作成することができます。 XFAテンプレートにバインドされたドキュメントオブジェクトモデルは、Flexクライアントアプリケーションでデータをキャプチャするモデルを設計する際に使用されます。 このデータはリモートオブジェクトに送信された後、ロードされたXDPドキュメントにXML入力ストリームとして追加され、PDFファイルが生成されます。
LiveCycle Data Services ESは、クライアント/サーバ間でデータを同期する堅牢で高性能なエンジンとなるため、複雑な操作や潜在的なエラーが削減されます。 また、既存のパーシステンスソリューションと統合すれば、エンドツーエンドのソリューションも簡単に構築できます。
Flexクライアントが、LiveCycle FoundationのWebサービスレイヤを経由せずに、LiveCycle ES Foundationサービスに対する操作を呼び出すことができます。 この機能にはLiveCycle Data Services ESの標準のリモートオブジェクト機能が使用されており、Flexデベロッパーは、より効率的なバイナリプロトコルを利用する際に伴う周辺処理について心配することなく、LiveCycleサービスを呼び出すことができます。
Flexアプリケーションのグラフィカルアセット(グラフおよびチャートなど)が組み込まれた、テンプレート駆動のPDFドキュメントを生成できます。生成されたPDFドキュメントは他のLiveCycleサービスとの連携が可能で、権限を持つユーザからのアクセスだけが許可されるよう保護することができます。
LiveCycle Data Services ESでは、クライアントで最新の変更内容が維持されている場合、大規模なデータセットの自動ページ処理、クエリの全結果セットではなくアクセス済みデータを対象にしたページ処理、データベースに対する直接かつオンデマンドでのページ処理を行うことができます。 データのページ処理によってアプリケーションの応答速度は迅速化され、デベロッパーは基礎的なデータ管理インフラに手間をかけることなく、コアアプリケーションのビジネスロジックに注力できます。
LiveCycle Data Services ESでは一時的な切断が自動的に処理されるため、クライアントアプリケーションとの間でデータの確実な送受信が保証されるとともに、ブラウザやデスクトップで動作するオフラインアプリケーションや不定期に接続するアプリケーションの開発がサポートされます。LiveCycle Data Services ESは、データの保存、サーバとの再同期、変更または競合の合理化などを行う手段として、クロスオペレーティングシステムのランタイムであるAdobe Integrated Runtime(Adobe AIR®)で、スケーラブルなローカルSQLiteデータベースを利用します。
LiveCycle Data Services ESにはデータのプッシュ配信機能が備わっているので、クライアントアプリケーションにはポーリングを行わなくともデータを配信できます。この高度にスケーラブルな機能を利用すれば、多数の同時接続ユーザにも対応でき、株取引アプリケーションや資源利用状況監視、生産オートメーションといった、重要データが秒刻みで変化するようなアプリケーションも問題なく開発できます。
LiveCycle Data Services ESは、ブラウザクライアントとLiveCycle Data Services ESサーバ間のリアルタイムでのメッセージ交換を可能にする、バプリッシュ/サブスクライブベースのメッセージングインフラを提供します。このインフラはJMSなどの既存メッセージングサービスとも連携でき、これを利用することでFlexクライアントは、従来のシッククライアントアプリケーション同様の信頼性、スケーラビリティ、サービス品質を確保しながら、メッセージトピックをパブリッシュ/サブスクライブできます。 これにより、物流管理や在庫管理、株取引といった高度な基幹業務用アプリケーションにも対応できます。
LiveCycle Data Services ESでは、クライアントアプリケーションと他のクライアントまたはサーバ間でデータを同時に共有することができます。このデータ共有モデルを活用すれば、リアルタイムに体験を共有しながらの共同作業が可能な「共同ブラウジング」といった、新しいアプリケーションコンセプトを実現できます。