TOPシステム開発> メッセージング
Nexaweb Studio
Nexaweb Studioで手軽にリッチクライアントアプリケーション開発

第5回:Nexaweb StudioでHelloWorldを表示させる

著者:チェンジビジョン  岩永 寿来、豆蔵  長谷川 裕一
2007/6/28
前のページ  1  2  3   4  次のページ
メッセージング

   NexawebではJMS(Java Message Service)のようなPublish/Subscribeメッセージングモデルによるメッセージ配信をサポートしている。その他にもNexawebはサーバ側からクライアント側への通信を実現するServer Pushなど、様々な通信手段を備えている。それらは「Internet Messaging Bus(IMB)」と称されているものだ。

   ではNexawebが提供する通信手段のうち、特徴的なPublish/Subscribeメッセージングモデル(以降、Pub/Sub)を説明する前に、簡単にPub/Subメッセージングモデルについて少し復習しておきたい。

   Pub/SubのPublisherとはメッセージを送るもので、Publisherはメッセージを届ける相手先は考えずにサーバに対してメッセージを発行する。このメッセージの発行をPublishと呼ぶ。

   対してSubscribeは「Subscriber」と呼ばれる、ある特定の種類のメッセージを受信したいものがサーバ(Nexawebの場合はIMB)に対してメッセージの購読を申し込むことだ。このメッセージの購読を「Subscribe」と呼ぶ。そして、このメッセージを特定するカテゴリをトピックと呼ぶ。

   Pub/Subメッセージングモデルでは、PublisherがPublishしたメッセージを受け取ったサーバはメッセージの種類を見て、そのメッセージを欲しがっている購読者(Subscriber)に対してメッセージが送られる。Pub/Subはお互いに相手が誰でどこにいるかを意識する必要がなく、Subscriberは自分が購読したいメッセージのみを受け取れる利点を持っているのだ。

   NexawebでPub/Subを利用するには、以下の手順を取る。
メッセージを配信するPublisherを作成し、Nexawebが提供するAPIを用いてメッセージを配信する
  • クライアント側でPublishするならば、NetService#publishメソッドを利用する
  • サーバ側でPublishするならば、MessageService#publishメソッドを利用する
メッセージを購読するSubscriberをNexawebが提供するクラスMessageListenerを継承して作成し、メッセージを購読するSubscriberを登録する
  • クライアント側でメッセージを購読するならば、NetServcie#subscribeメソッドを利用して登録する
  • サーバ側でメッセージを購読するならば、MessagingService#subscribeメソッドを利用して登録する
サーバからメッセージを送信できるようするため「WEB-INF/nexaweb-client.xml」の「default-session-configuration」タグのestablish-push-connection-on-startupを「true」に設定する

表:NexawebでPub/Subを利用する手順

   このように、サーバ側ならばMessageServiceを、クライアント側ならばNetServiceといったように、Publish、Subscribeをサーバ側・クライアント側どちらで行うかによって利用するNexawebのAPIが異なる点に注意してほしい。


Publisherの作成

   今回はサーバ側から配信されたお勧めメニューのメッセージをクライアント側に配置されているメニュー画面に表示してみよう。

   メッセージを送信するPublisherはサーバ側に配置されている「ProductController」が受け持つことにする。そこでリスト7のようにProductControllerクラスのコンストラクタでメッセージを配信する。まず2秒ごとにメッセージを配信するため「java.util.Timer」クラスを利用し(リスト7-(1))、次にサーバ側からメッセージを配信する際に利用する「MessageService」をServiceManagerクラスから取得する(リスト7-(2))。

   最後にMessageService#publishメソッドを用いてメッセージの配信を行う(リスト7-(3))。メッセージを配信する際には、メッセージの種類を特定するトピックを第1引数で指定する。今回は「TODAY_RECOMMEND」というトピックを指定していることになる。

リスト7:サーバ側でのメッセージの配信
リスト7:サーバ側でのメッセージの配信
(画像をクリックすると別ウィンドウに拡大図を表示します)

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


株式会社チェンジビジョン 岩永 寿来
著者プロフィール
株式会社チェンジビジョン  岩永 寿来
モデリングツールJUDEを開発しているチェンジビジョンで、ソフトウェア開発プロジェクトの見える化を支援するTRICHORDを開発している。最近は2DやJOGLなど3D技術に興味があり、クールなUIやエフェクトを日々探求している。共著として「Spring入門(技術評論社)」、「Spring2.0入門(技術評論社)」。


株式会社豆蔵 長谷川 裕一
著者プロフィール
株式会社豆蔵  長谷川 裕一
XMLの技術開発やCORBA、EJBを使用したシステム開発などを経て、現在はアジャイル開発プロセスの導入から工学的なソフトウエアプロセスの策定、オープンソースプロダクトに関するコンサルタント、アーキテクトとして常に第一線で活躍。共著として「プログラムの育てかた 現場で使えるリファクタリング(ソフトバンク)」、「Spring入門(技術評論社)」。


INDEX
第5回:Nexaweb StudioでHelloWorldを表示させる
  MCOによるクライアント側での情報保持
  サーバ側で画面遷移を制御する
メッセージング
  Subscriberの作成と登録