Web メッセージング・サービスの課題

Bayeux プロトコルを使用する Web メッセージ使用可能アプリケーションのデプロイにはいくつかの課題があります。 長時間接続を利用する Comet 方式アプリケーションはどれも、これらの課題に直面します。こうした問題の多くは、 インターネット・インフラストラクチャーの各部分が持つ同期的な性質に Comet 方式の通信がもたらすひずみと関係します。チャネル・フレームワークの使用によって、Web メッセージング・サービスは、1 つの要求には単一スレッドが対応するという枠を超えて拡大できますが、これはインターネット・インフラストラクチャーの多くの他の部分では困難です。

拡張の困難が予測される領域の 1 つは Web サーバーです。IBM® HTTP Server for WebSphere® Application Server が Web メッセージング機能付きアプリケーションに対応する際に、WebSphere Application Server 用 IBM HTTP Server は通常のアプリケーションに対するよりも多くの要求を処理するように構成される必要があります。これは、1 つのイベントに対する要求の待ち時間がより長いからです。 IBM HTTP Server for WebSphere Application Server は 1 つの待ち要求を単一スレッドに結びつけるので、Web サーバーで使用可能な最大スレッド数の制約を受けます。 Web メッセージングが導入されているほとんどの環境では、Web メッセージング機能付きアプリケーションに対応している WebSphere Application Server 用 IBM HTTP Server のインストール済み環境の数を増やす必要があります。

WebSphere Application Server 用のプロキシー・サーバーは、Web メッセージング機能付きアプリケーションに対応する WebSphere Application Server 用 IBM HTTP Server に代わるものです。WebSphere Application Server 用プロキシー・サーバーはスレッドを各着信要求に使用しないので、IBM HTTP Server for WebSphere Application Server に比べてより多くのクライアントを同時に処理することができます。ただし、WebSphere Application Server 用 IBM HTTP Server を WebSphere Application Server のプロキシー・サーバーに置き換える際に問題が起こることがあります。Web メッセージング機能付きアプリケーションと WebSphere Application Server 用プロキシー・サーバーの対応について詳しくは、developerWorks の記事 Know your proxy basics を参照してください。 Web メッセージング・ソリューションに対応するために、他のハードウェア・ベースのソリューションを使用する場合もあります。覚えておかなければならない重要なことは、クラスター環境で同じサーバーに要求を戻すにはセッション・アフィニティーが必須だということです。

2 接続の制限

1 つの Web ブラウザーに 1 つの Ajax Bayeux クライアントというのが、Web メッセージング・サービスに接続する場合の最も一般的なクライアントになります。サーバーに接続する際に、ブラウザーには一定の制限があります。その 1 つは、単一サーバーに対して 2 つの接続という制限があることです。Bayeux 接続が確立されている場合、これらの接続の 1 つが使用され、もう 1 つの接続は空いてます。1 つの接続が使用されるため、複数のタブとウィンドウを含む 1 つのブラウザー・インスタンスはサーバーに対して 1 つの Bayeux 接続しか確立できません。2 つ目のブラウザー・ウィンドウやタブが長時間接続を確立しようとすると、その接続は拒否されるか、従来のポーリングに戻ります。 Web メッセージング機能付きアプリケーションを開発するときには、この制限を理解し、計画に入れる必要があります。

また、Bayeux 接続が確立されている同じサーバーに対して、同時に別のブラウザー通信を実行する際にも気をつける必要があります。Bayeux プロトコルは、サーバーに対する情報のサブスクライブ、アンサブスクライブ、およびパブリッシュに、2 番目の使用可能な接続を使用します。接続を消費する他の操作には、Ajax XmlHttpRequest 操作、イメージや HTML のダウンロード、ファイルのアップロードなどがあります。同じブラウザー・インスタンスで、サーバーに対する複数の操作が発生している場合は、接続が解放されるまでの間、Bayeux クライアント・アプリケーションがスローダウンしたり変わった振る舞いをすることがあります。



ご利用条件 | フィードバック