Tomcat 6で実現!Ajaxを超える通信技術Comet:Tomcatはどこまで“安全”にできるのか?(3)(1/3 ページ) Ajaxを超える? Tomcat 6で搭載されたCometとは? 前回はTomcatを“安全”に活用するために、ツールを使った運用の仕方やTomcatの設定について解説しました。 今回はTomcatの安全性から少し離れて、Tomcat 6の新機能の利用方法について解説します。Tomcat 6では、いくつかの大きな拡張がありましたが、今回はJ2SE 1.5で実装されたNew I/O API(java.nioパッケージ)を用いたComet(コメット)通信について解説します。 おさらい 「通常のHTTPでの通信」 通常のHTTPでの通信はクライアントのWebブラウザなどからサーバへリクエストを送信し、サーバはリクエストを解釈してレスポンスを返します。つまり、通信のタイ
さて、お待たせしました。いよいよCometとLingrについての技術解説です。 ■Comet解説 さて、まずはCometとは何で、どういう背景によって生まれたのか、についての解説から始めます。 まず前提として、Webアプリケーションにおいては、通信開始のトリガーは常にクライアント側が握っています。つまりURLを入力したりボタンをクリックしたときなどに通信が発生することになるわけですが、このようなアーキテクチャは、サーバ側で発生した変化をリアルタイムにクライアント側に通知することが原理的にできないことを意味します。 チャット・アプリケーションでは、複数のユーザから不定期にメッセージが送信され、それが他の参加者に一斉に配信されなければなりません。しかし、メッセージを受け取ったサーバ側では、それをクライアントに即座にプッシュで通知する方法がないのです。 そのため、一定期間ごとにブラウザがサーバに
リンク上の問題や追加情報があるようでしたらどしどし連絡してください。 インターネットに散らばるRFCの 日本語訳(和訳)のリンクリストを作りました。 多分、同じ翻訳で、コピーが複数あると思えるのはまとめて1行にしています。 (高橋邦夫さんが訳したRFC1855はあまりにもコピーが多いので一部のリンクのみ掲載しています) 同じRFCを、多分別の人が翻訳したと思えるのは別の行にしています。 時代の流れでなくなったページもあります(場所が変わって見つかっていないだけかもしれません)。 [日本語訳]が付いていない所はそんなページと思ってください。 ソースにはコメントとしてURLを残してあります。 いずれかのアーカイブを探せば見つかるかもしれません。 これらの日本語訳は完全なものとは限りません。 間違って翻訳していたり、 途中だけ翻訳されてたり、翻訳の途中で中断・中止してる事もあります。 翻訳の公開
文化庁著作権課によると、「視聴のみを目的とするストリーミング配信は一般にダウンロードを伴わないため、動画共有サイトを視聴するだけでは違法行為にはならない」そうです。これに対してネットの各所では「YouTubeを視聴するとブラウザのキャッシュフォルダにFLVファイルが保存されるが、これはどう考えてもダウンロードだ」ということで、文化庁著作権課の知識不足に対する猛烈な批判が巻き起こっています。 もちろん文化庁著作権課もこのあたりのことは多少考えており、「ストリーミングはダウンロード(=複製)ではない」と言い切ることは難しいとして、今後は別個に議論する予定だそうです。 さてさて、YouTubeにアップロードされているムービーを視聴することは果たして「ダウンロード」なのか、それとも「ストリーミング」なのか? 実はYouTubeには以下のような記述があります。 YouTube - 利用規約 http
昨日のエントリーで、「人は一つの仕事を処理するときには、それを小さな仕事に分割して、順番に処理する」と書いたが、「パンを焼く」という仕事を例に取れば、こんな風になる。 1.イーストを30℃のお湯と一つまみの砂糖とまぜて15分間予備発酵させる 2.ボールに強力粉、予備発酵させたイースト、砂糖、塩を入れて良く混ぜる 3.こね板の上で生地をこねる 4.ボールにラップをして室温で1時間発酵させる(一次発酵) 5.適当な大きさに生地を分割し、丸めて形を作る 6.オーブンに入れ、30分発酵させる(二次発酵) 7.オーブンの温度を200度にして18分焼く これは、ソフトウェアで言えば「手続き型のプログラム」であり、人間が一連の作業を把握するのに最も適した記述の仕方である(その証拠に、実際のどのレシピブックを見ても、レシピは必ず「手続き型」で書かれている)。 興味深いのは、このレシピにおける、「15分予備
Diagram An activity diagram to describe the resolution of HTTP response status codes, given various headers. The diagram is available in various formats: http-headers-status.gif (205 kb) http-headers-status.jpg (340 kb) http-headers-status.png (447 kb) http-headers-status.svg (315 kb) please see request for assistance below The Visio diagram, published on Google Code Request for assistance
元Vine SPARC開発者。2003年度未踏ユース採択者。海外でも活躍できる国際的なLinuxエンジニアになることを夢見て日本で頑張っています。ウノウ株式会社にて写真共有SNS「フォト蔵」を開発中。 Yahoo で使用されている独自カスタマイズされた apache についてのプレゼンテーション資料が公開されていたので、自分なりにまとめてみました。 Hacking Apache HTTP Server at Yahoo! HTTPヘッダーの "Server:" は出力しない apache 1.3 がベース 安定動作が重要 スレッドは使用しない(動作が複雑) ログフォーマットは独自フォーマット ログローテンションは独自の仕組みを持つ。シグナルもパイプも使用しない レスポンスコード 30x は最小限のものだけ出力 コンテンツは gzip 圧縮して出力(HTTP/1.1)。CPU 使用率が 90
はじめに 『簡単なHTTPサーバの自作』第5回目の今回は、クライアントとの通信に、ブラウザ自身によるリクエスト/レスポンスに加えてAjaxとCometを利用した簡単なチャットアプリケーションを実装します。 Webアプリケーションでチャットを実装する場合に考えなければならないのは、他の発言者のメッセージをどうやってブラウザへ反映させるかです。自分が発言する場合は、サーバへ対してメッセージが送信されます。従って応答データに現時点の発言を返せば済みます。しかし、この方法だけでは他の参加者の発言を発言時に読むことはできません。 この問題を解決する手段は複数あります。 次の図は最も原始的ですが、確実な『F5連打法』を図示したものです。 F5連打法では、ユーザーは最新の発言がありそうだと感じた時に[F5]を叩きます。するとブラウザが最新の情報をサーバへ取りに行くため、もし発言が更新されていればその情報
「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集部) サーバ・プッシュの歴史 Webアプリケーションが広まるにつれて、レスポンスやリアルタイム性を重視することが多くなってきました。Webアプリケーションの形式によっては、ユーザーが主体的に操作してデータを取得するよりも、サーバ側が必要と思われるデータを送り付けることが主体の場合もあります。 例えば、Webブラウザを利用したチャットであれば、通常ページが更新されるのはリロードされたタイミングですが、サーバ・プッシュ型の実装がなされている場合は、新しいメッセージが追加された瞬間に、参加ユーザー全員に伝搬されなければいけません。 Webブラウザを活用したサーバ・プッシュの手法は、古くはNets
産業技術総合研究所(産総研)とヤフーは2008年4月22日,パスワードを用いてWebブラウザ/サーバー間の相互認証を実現する認証プロトコル「HTTP Mutualアクセス認証」の実装をオープンソースとして公開した。同プロトコルを使うと,HTMLフォームではなくブラウザに設けた専用の入力域を用いてパスワードを暗号送信するため,フィッシング詐欺対策となる。サーバー側にはApacheのモジュール「mod_auth_mutual」として実装し,クライアント側としてFirefoxの機能を拡張したブラウザ「MutualTestFox」を開発した。 HTTP Mutualアクセス認証は,パスワードを用いてクライアントとサーバーが相互に相手を認証するプロトコルである。産総研とヤフーが2007年3月に発表した。同プロトコルの特徴は,ブラウザ上に設けた専用の入力域にパスワードを入力すると,暗号化処理を施した後
日本語 | English 今年になっても更新をサボってますが... 買ってきた銅鑼 ボワーン (2003/8/1) News いきなりなんちゃってAjaxネタ 郵便番号による住所検索サービスを呼び出してみるサンプルにさらにちょっと追加 JavaScript+RPCで入力チェック http://hippo2000.atnifty.com/rpc/zipAddrRpc.html PerlはバックでXMLRPCを中継しているんだな、後はいつものチェック関数を呼び出してるんだなこれが... (2005/3/27、4/4更新) 連載も終わったことだし.、来年は動けるかなぁ...。そろそろSp::Pをキチンとやり直したい気分なんですが。 更新できていないので「うまいもん食いてぇ」をなくしました(中身は残ってますけど、いずれ削除予定)。 (2004/12/30) 緊急告知 DBI-Japa
Alex Russell’s notes on the web, life, and DojoAn old web technology is slowly being resurrected from the depths of history. Browser features that have gone untouched for years are once again being employed to bring better responsiveness to UIs. Servers are learning to cope with a new way of doing things. And I’m not talking about Ajax. New services like Jot Live and Meebo are built with a style o
最近3人ほどのエンジニアと話したのだがapache2に対して割とネガティブな意見を持っていた. 曰く「既存モジュールが使えないから」 曰く「スレッドベースってちょっと。。」 曰く「WEBでいい話聞かないから」 3人しか話してないんだけど,3人とも「apache2はスレッドでしか動かない」と思いこんでたようでちょっとおどろいた.apache2でも StartServers 5 MinSpareServers 5 MaxSpareServers 64 MaxClients 100 MaxRequestsPerChild 10000 という設定をすることで今までどおりpreforkモデルで動かすことはできる.preforkモデルだと各種ハンドラもスレッドセーフに無理にすることはないので,わかってて使う分には問題ない. 私がapache2を勧める1番の理由はapache2ではリクエストの多重化処理
現在 WEBアプリケーションの開発言語といえばいわゆる Light Weight Langage が主流の様な気がしますが、C言語で WEBアプリケーションを書きた いと思った時、どのような方法があるでしょうか。一つはコンパイルした実行 オブジェクトを CGI として呼び出す方法、もう一つは apache module を書く という方法があると思います。 CGI の場合プロセス起動のオーバーヘッドがありますが apache module の 場合非常に高速です、にも関わらず apache module による WEB アプリケーショ ンの開発があまり流行っていないのはやはり、コード変更の度にコンパイルし なければならない事と、反映の際に apache を再起動しなければならない事が 原因ではないかと思います。 そこで、apache module っぽい C言語のコードをサーバー上で動的に
Jetty 6.0 Continuations、まとめ 技術 Jetty 6 Continuations(継続) - Ajax対応! このエントリは、上記エントリのまとめだ。私の思う要点は、以下2点。 クライアントのリアルタイムの更新を行う、大規模アプリケーションの作成には工夫がいる。 Gregさんの問題定義と解決が正しいとすると、Javaだけでなく、他の言語にも応用ができる。 JettyはAjaxアプリケーション向けに、JSP抜きの構成を提供している。 これは、先日の「エンタープライズAjaxアーキテクチャ」に対応する。EJBも、JSPも捨て、J2EEはサーブレットのみの時代まで戻るということだ。 問題とJettyの解決策 従来のモデル 1ユーザー(コネクション)あたり、1スレッド。 非常に活動的なコネクションを使うアプリケーションなら効率的。 実際は、そのようなアプリケーションは少ない
日本語訳:2004 年 9 月 17 日 (原文:2003 年 4 月 28 日、バージョン 1.20) この HOWTO はプログラマ向けであり、Linux におけるプログラムライブラリの作成方法と使用方法を説明するものです。 「静的ライブラリ (static library)」、「共有ライブラリ (shared library)」、「動的ライブラリ (dynamically loaded library)」を対象とします。 (訳注:この訳文では、「dynamically loaded library」のことを「動的ライブラリ」と呼ぶことにします。 世の中では、shared library のことを指して動的ライブラリと表現する例もありますが、それとは異なりますので注意してください。) Table of Contents1. はじめに2. 静的ライブラリ3. 共有ライブラリ3.1. 約
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く