|
||||||||||||
| 前のページ 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を利用するには、以下の手順を取る。
表: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:サーバ側でのメッセージの配信 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||



