This test was terfere WebSocket conem useless. On this page you can see how well WebSockets can work with your Inter
This test was terfere WebSocket conem useless. On this page you can see how well WebSockets can work with your Inter
近年、HTML5やJavaScriptを活用したWebアプリケーションが増えるのと同時に、今まではネイティブなアプリケーションが常識であったデスクトップアプリケーションにもHTML5の波がやってきました。 具体的な例としてはWindows 8で追加されたWindowsストア アプリでは、HTML5とJavaScriptを利用したアプリケーションの開発がサポートされています。 HTML5で開発できる領域は広がっていますが、切っても切れない関係なのがサーバとの通信です。そして、その通信を見ていくと、最近ではユーザが能動的に情報を取りに行くスタイルではなく、FacebookやTwitterに見られるようなサービス提供側から情報がリアルタイムで配信されるスタイルが増えつつあります。 図1 Facebookメッセンジャーの入力中表示 これらのリアルタイム通信はサーバとの接続を常時行っておく必要がある
彼女とMacBookを並べてコーディング。 ようやくRailsの開発を一人で出来るようになった彼女が、俺に突然質問を投げかけた。 「ねぇ、WebサービスのPushってどうやって実装するの?」 「一般的には3つの方法がある。」と俺は答えた。 「クールな順にWebSocket、次にコメット、最後にポーリングだよ」 彼女は目を輝かせながら「それでそれで?!」と説明を求めてくる。 「ポーリングは、一定の時間ごと、たとえば3秒ごとにAjaxでサーバにリクエストを送って新着の情報が無いか問い合わせて、もし新着があれば処理を、なければスルーして次の問い合わせに備えるPush通知の実装だ。手軽に実装できる反面、新着がない多くの時間常にリクエストを送り続けることになるので無駄が多い。大規模なサービスで実装すれば、それだけでDDoSっぽくなっちゃう。また、リアルタイムも厳密には実現できなくて、MAXでポーリン
Jetty provides an HTTP server, HTTP client, and Servlet container. 次期リリースとなる「Jetty 7.5.0」と「CometD 2.4.0」の組み合わせは、WebSocketを活用したサーバ/ブラウザ間双方向通信を実現するにあたって魅力的な選択肢になる可能性がある。双方ともまだスナップショットの状況にあるが、スナップショット版を使ってラフなベンチマークを実施した結果がPrelim Cometd WebSocket Benchmarks - Webtide Blogsに掲載された。あまり現実的なベンチマークではないが、WebSocketトランスポートの性能がロングポーリントランスポートと違ってスケールしていることが示されており興味深い。 JettyはJavaで実装されたHTTPサーバ/Servletコンテナ。軽量で高速という
Jetty 6.0 Continuations、まとめ 技術 Jetty 6 Continuations(継続) - Ajax対応! このエントリは、上記エントリのまとめだ。私の思う要点は、以下2点。 クライアントのリアルタイムの更新を行う、大規模アプリケーションの作成には工夫がいる。 Gregさんの問題定義と解決が正しいとすると、Javaだけでなく、他の言語にも応用ができる。 JettyはAjaxアプリケーション向けに、JSP抜きの構成を提供している。 これは、先日の「エンタープライズAjaxアーキテクチャ」に対応する。EJBも、JSPも捨て、J2EEはサーブレットのみの時代まで戻るということだ。 問題とJettyの解決策 従来のモデル 1ユーザー(コネクション)あたり、1スレッド。 非常に活動的なコネクションを使うアプリケーションなら効率的。 実際は、そのようなアプリケーションは少ない
Jetty 6 Continuations - Ajax対応! 翻訳 (via こんな毎日・・・) 原文:Jetty 6.0 Continuations - AJAX Ready! 著者:Greg Wilkins Jetty 6.0.0 alpha 3がリリースされました! サーブレット2.4のサーバが400kのjarと、たった140kの依存ライブラリに収まっています。(さらにJSPが必要な場合でも、たった2.6Mです!!)。 小さくて、速くて、簡潔で魅力的な点は全く損なわずに、スケーラブルなAJAXアプリケーションを構築するための、Continuationsと言う新機能をJetty6はサポートしました。Continuationsは、スレッドを使わずに非同期イベントの待機を実現します。 コネクション単位スレッド スケーラブルなサーブレットサーバを構築する上で、主要な課題の1つにスレッドとコ
« おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(後編:その1) | メイン | example.com にAレコードが振られているどころかApacheが元気に稼働中である件 » おとこのCometアプリケーション! Jetty 6 Continuation入門まとめ(後編:その2) このエントリーは、前回からの続きです。 サーバの実装 クライアント側の実装は、 リクエストを発行してから、カウンターの値が返ってくるまで待つlong-pollの仕組み ユーザからのイベントをうけて、カウンターの値を増加させるようにリクエストする仕組み というふたつに分類することができました。サーバ側についても、それぞれに対応するかたちで実装していきます。 Jetty 6では、Ajaxアプリケーションのために、org.mortbay.util.ajax.
« おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(前編) | メイン | おとこのCometアプリケーション! Jetty 6 Continuation入門まとめ(後編:その2) » おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(後編:その1) このエントリーは、前回からの続きです。 サンプルアプリケーション それでは、Cometの実装をみていくことにしましょう。サンプルアプリケーションを用意しましたので、まずは大まかにサンプルアプリケーションの動作を確認してください。 サンプルアプリケーションは、サーバプッシュ型カウンターです。サーバ側に保存されているカウンターの値が増えると、そのイベントがクライアント側へと伝えられ、クライアント側の表示が更新されます。クライアントの動作に
« 突然、有名サイトに自分の写真が掲載されていたら | メイン | おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(後編:その1) » おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(前編) はじめに Jetty 6には、継続(continuation)という機構が用意されました。この記事では、その応用例であるCometによるウェブアプリケーションの実装を取り上げ、解説をします。 Cometでは、サーバプッシュ型アプリケーションを実現するために、サーバに対してHTTPコネクションを張り続ける必要があります。こうした接続の手法は、従来のHTTPサーバでは想定されているものではありません。 また、Cometが提供するイベントドリブン型のウェブアプリケーションでは、サーバ側や、クライア
まえがき 近年Ajax技術を利用した、リッチなWebアプリケーションが次々と登場しています。 皆さんも知っている通り、Ajax技術とは、要は「画面表示と非同期でサーバからのデータ受信を可能とする」技術のことです。 バックグラウンドでデータ要求/受信を行い、受信終了後にダイナミックに表示を切り替えます。これにより、非常に柔軟にUI を構築することができるという利点があります。 さて、ここで注目したいのは「データ受信」についてです。通常HTTPでのデータ受信は、クライアント主導です。つまり、「クライアントからデータ要求して、サーバがその結果を返す」と言う一連の流れで、データ受信を行なっているわけです。 では、下記のような要求を満たすアプリケーションを作成する場合を考えてください。 要求1:データ更新が秒単位で行なわれる。クライアント情報も秒単位で変化させたい。 要求2:いつデータ更新が発生する
さて、お待たせしました。いよいよCometとLingrについての技術解説です。 ■Comet解説 さて、まずはCometとは何で、どういう背景によって生まれたのか、についての解説から始めます。 まず前提として、Webアプリケーションにおいては、通信開始のトリガーは常にクライアント側が握っています。つまりURLを入力したりボタンをクリックしたときなどに通信が発生することになるわけですが、このようなアーキテクチャは、サーバ側で発生した変化をリアルタイムにクライアント側に通知することが原理的にできないことを意味します。 チャット・アプリケーションでは、複数のユーザから不定期にメッセージが送信され、それが他の参加者に一斉に配信されなければなりません。しかし、メッセージを受け取ったサーバ側では、それをクライアントに即座にプッシュで通知する方法がないのです。 そのため、一定期間ごとにブラウザがサーバに
Mort Bay Consultingは6日(米国時間)、Jetty Web Containerの最新版「Jetty 6.1.0」を公開した。JettyはJavaで開発されたWebサーバ。Apache License Version 2.0のもとで公開されているオープンソースソフトウェアで、Apache Tomcatなどと同じく、FLOSS実装のWebアプリケーションサーバとして代表的なもののひとつだ。6.1.0は安定版と位置付けられ、Java 1.4および1.5で動作、HTTP/1.1 RFC2616、Servlet 2.5、JSP 2.1/2.0に対応している。 6.1.0で実施された変更は、コアプロトコルエンジンの最適化・洗練、非同期SSLのサポート追加(新しいSSLコネクタの追加)、入出力性能を向上させた新しいAJP13コネクタの採用、Grizzly NIOライブラリを活用したGr
個々のクライアントがサーバに要求する処理量は小さなものでハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする――。これが最近Web開発者の間で話題となっている「C10K問題」(クライアント1万台問題)だ。 プロセス番号が足りなくなる パンクするのは例えばプロセス番号だ。 Ajaxの実装として最近注目されている技術に“Comet”(コメット)と呼ばれるものがある。HTTPのセッションをあえて切断せずに、サーバとクライアント間でつなぎっぱなしにするテクニックだ。Cometを使えばクライアントからのリクエストに応えるだけでなく、サーバ側からも不定期に情報を送り出すことができる。例えば、Web上でチャットサービスを実装するには、通常はクライアント側からサーバに一定間隔でポーリングすることで、ほかのユーザーの発言分をサーバから取得して表示するが、Cometの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く