TOPシステム開発> Server Pushについて
エンタープライズWeb 2.0とNexaweb
エンタープライズWeb 2.0とNexaweb

第4回:Internet Messaging Busによる通信管理を理解する(Server編)

著者:日本ネクサウェブ  松木 健太郎   2007/2/20
前のページ  1  2  3  次のページ
Server Pushについて

   NexawebではIMBによってServer Pushを使用することができます。これを使用するためには、サーバ上でNexaweb APIを使用してUIを更新するか、Pub/SubのためのPublishを行う必要があります。これらは、すべてNexaweb Mashup ServerのAPIによって実現されます。
Pushを実現する処理の流れ
図2:Pushを実現する処理の流れ


Pushの実現方法

   サーバ側でUIの更新もしくはPub/Subを使用した場合、更新情報はメッセージキューにいったん蓄積されます。キューに蓄積されたメッセージはPush Connection、Polling RequestのResponse、User RequestのResponseのいずれかによってクライアントに配信されます。

   配信の優先順位は下記の順番で行われます。

  • Push Connection
  • Polling Request Response
  • User Request Response

表1:配信の優先順位

   メッセージはいずれかの手段によってPushされるまでキューに蓄積されます。もちろんIMBのオプションによってPushによる配信方法は変化しますが、オプション変更によってプログラムを変更する必要はありません。


Push Connectionによる配信

   IMBによってPush Connectionオプションが有効である場合、キューに蓄積されたデータは即座にPush Connectionを使用してクライアントに配信することができます。Request/Responseとは別にPush専用のConnection(HTTP/HTTPS Connection)を使用して、Pushデータをクライアントに配信します。

   Push Connectionは、NexawebによってConnectionの生存状態が監視されており、ネットワーク経路の障害などによってConnectionが切断された場合であっても、Nexawebによって自動的にConnectionが修復されるようになっています。

   Push ConnectionによるPushデータの配信はリアルタイムに行われます。


Polling RequestのResponseによる配信

   IMBによってPollingオプションが有効である場合、キューに蓄積されたデータはPolling Requestがサーバに到達するまでキューの中で蓄積され、Polling RequestのResponseデータに付随してクライアントに配信されます。Pollingは定期的なRequestによってサーバサイドに蓄積しているPushデータをクライアントサイドに汲み上げることによってPushを実現します。

   Pollingのための定期RequestはNexawebの設定によってコントロールすることが可能で、特別にコーディングする必要はありません。PollingによるPushはPollingが発生するまでの間、Pushデータがクライアント到達しないためタイムラグが発生します。


User RequestのResponseによる配信

   キューにPushデータが蓄積されている状態でユーザRequestが発生した場合、ユーザRequestのResponseデータに付随してPushデータがクライアントに配信されます。Push ConnectionおよびPollingオプションが有効でない場合、ユーザRequestのResponseに付随してPushデータを配信するしかありません。そのためPushデータの到達までにタイムラグが発生します。なおタイムラグの発生期間はUser Requestの発生頻度によって変化します。


IMBの環境設定

   IMBではクライアントの状態やネットワークの状態に応じて細かな環境設定を行うことが可能です。これらの環境設定はIMBの設定によってIPアドレスやブラウザ、JVMバージョンなど様々な条件によって個別に設定することが可能です。

   またAPIを使用することで実行時にIMBの設定を変更することも可能なので、異なる環境下でプログラムを変更することなく、あらゆるネットワーク環境に適した環境で稼働させることが可能になります。

前のページ  1  2  3  次のページ


日本ネクサウェブ株式会社 松木 健太郎
著者プロフィール
日本ネクサウェブ株式会社
チーフエンジニア  松木 健太郎

2000年よりフリーランスのエンジニアとして活動。Delphi, C++, Java などによる Web ベースリッチクライアントシステムの開発に従事。2004年の米ネクサウェブ社の日本上陸時から Nexawebに関わり、展開当初の立上げに参画。日本法人の設立にも立ち会う。


INDEX
第4回:Internet Messaging Busによる通信管理を理解する(Server編)
  はじめに
Server Pushについて
  Nexaweb Enterprise Mashup Server