TOP
>
システム開発
> はじめに
エンタープライズWeb 2.0とNexaweb
第4回:Internet Messaging Busによる通信管理を理解する(Server編)
著者:
日本ネクサウェブ 松木 健太郎
2007/2/20
1
2
3
次のページ
はじめに
これまでNexaweb Clientについて概要と機能の詳細について解説してきました。Nexaweb Clientの内容については理解いただけたかと思いますので、今回はNexawebの通信部分を担当しているInternet Messaging Busについて解説します。
Internet Messaging Busとは?
Internet Messaging Bus(以下IMB)とは、「Nexaweb Client」と「Nexaweb Enterprise Mashup Server」を繋いでさまざまな通信を管理するための仕組みです。IMBの機能のほとんどはNexaweb Enterprise Mashup Serverによって実装されており、IMBを使用する上で非常に重要な役割を果たしています。
図1:Internet Messaging Bus
Nexawebでは通信プロトコルとしてHTTP/HTTPSのみを使用していますが、IMBではHTTP/HTTPSトンネリングによって安全で高機能な通信環境を提供しています。そのためIMBを使用することによって開発者は通信に関する開発を大幅に省略することができ、HTTP/HTTPSでは実現の難しかった安全で高機能な通信をAPIを使用するだけで利用することができるのです。
IMBの主要な機能について以下に説明します。
通信の圧縮
IMBにはオプションとして、通信データを圧縮することが可能です。圧縮の有無にかかわらずプログラムの修正は必要なく、設定ファイルの指定だけで変更が可能です。
Server Push
Server Pushによってクライアント/サーバ間の双方向通信をサポートします。Server Push APIを使用することによりサーバからクライアントへの情報配信が可能です。
Polling
IMBがServer Pushを実現するための手段の1つとして、Pollingをオプションとして使用できます。IMBではPushデータをサーバサイドでキュー管理しており、Pollingオプションを利用することでPolling Requestのタイミングに合わせてキューに蓄積されたPushデータを汲み上げています。
Push Connection
Push Connectionもオプションとして用意されています(注1)。
※注1:
Push ConnectionはAjax Clientではサポートされません。
Push ConnectionはPollingとは異なり、Pushデータのキューへの蓄積を待たずにServer Push APIが使用されたタイミングでクライアントへリアルタイムPushを実現しています。
Publish/Subscribe
Publish/Subscribe(以下、Pub/Sub)メッセージングモデルによるメッセージ配信をサポートします。Pub/Subを使用することにより配信元は配信先を意識することなく、トピックに対してメッセージを送信するだけでSubscribeしている配信先にメッセージが自動的に配信されます。メッセージの分配はNexaweb Enterprise Mashup Serverによって自動的に行われます。
なおPushデータはXML形式だけではなく、オブジェクトなども指定することもできます。Pub/SubによってPushされたデータはクライアント側でイベントとして処理され、データを受け取ったタイミングでクライアント側で実行します。
Reliable Messaging
Pushメッセージの到達保証、順序保証を行うために、受け取り確認(ack/nak)をオプションとして使用できます。
XML同期
XMLデータをクライアントとサーバ間で同期するためのオプションを用意しています。またUI定義のXMLデータだけでなく、任意に登録可能なユーザデータのためのXMLデータの同期も可能です。
Shared Store
クラスタリングされたサーバ群の中で一意なハッシュテーブル(Shared Storeインスタンス)を使用することができます。Shared Store APIを使用して登録されたデータはクラスタリングされたすべてのサーバ群の中で同期されます。
Request/Response
一般的なRequest/Response形式での通信が可能です。例えばNexaweb ClientをWebブラウザと見立ててResponseデータがNexaweb Clientによって解釈可能なXMLデータである場合、画面をResponseデータによって自動更新する方法と、プログラムによるデータ受信(画面をResponseデータによって自動更新しない)の形式を選択することができます。また同期通信・非同期通信の両方をサポートしています。
1
2
3
次のページ
著者プロフィール
日本ネクサウェブ株式会社
チーフエンジニア 松木 健太郎
2000年よりフリーランスのエンジニアとして活動。Delphi, C++, Java などによる Web ベースリッチクライアントシステムの開発に従事。2004年の米ネクサウェブ社の日本上陸時から Nexawebに関わり、展開当初の立上げに参画。日本法人の設立にも立ち会う。
INDEX
第4回:Internet Messaging Busによる通信管理を理解する(Server編)
はじめに
Server Pushについて
Nexaweb Enterprise Mashup Server