Posts tagged ‘Grizzly’

Atmosphere 0.1 GA リリース



Grizzly プロジェクトより派生した Atmosphere プロジェクトの

初めての成果物 (0.1 GA) がリリースされました。



Atmosphere プロジェクトでは汎用的に使える Comet フレームワークとして

AtmosphereHandler インタフェースを実装して簡単に Comet アプリケーションを

作成することができるようになります。



チャットの実装例



今までは Comet のアプリケーションを作成する場合、サーバ側の実装は

各 Web コンテナの Comet Engine の実装に応じてばらばらに実装しなければ

なりませんでしたが、このフレームワークを利用することで、一度実装した

Comet のサーバ側の実装を様々な Web コンテナ上で動作させることができるようになります。



サポートされる Web コンテナ:
Tomcat,Jetty, GlassFish,Weblogic, Jersey,Grizzly


チャットアプリケーションの実装例:


Getting started with Atmosphere CPR part 1: Writing the HelloWord of Comet….a Chat application



Comet のアプリケーションに興味のある方は是非このフレームワークをお試しください。





ちょっと春らしく:




2009年4月27日 at 1:11 AM

Blocking I/OとNon Blocking I/Oについて



以前、Grizzlyの概要 : C10K問題に対応するGlassFish(Grizzly) というエントリで、

Grizzly が実装している Non Blocking I/O の利点について説明しましたが、

Project Kenai 中のプロジェクト Grizzly-send file 内で過去に書いたエントリの

補足となるような良い説明資料があがっていましたので、こちらでも紹介します。



※ このエントリを読む前に是非、過去の記事をご覧ください。



マルチスレッドで実装された Webサーバ は下記のようにAcceptor スレッドとWorker スレッドの間に

Queueを置いて、処理の効率化をはかっています。






この時、仮に Worker スレッドの数が5個だった場合に8クライアントから同時にファイル取得の

要求が来た場合を想定します。







Blocking I/Oを使って実装されたマルチスレッドサーバの場合、実際に作業ができるWorker スレッドは

5つしかありませんので、3つのクライアントは他の処理が終わるまで Queue で待たなければなりません。

取得する対象のコンテンツサイズが小さい、もしくはすぐに完了するような場合、このBlocking I/O

のマルチスレッドサーバは高速に動作します。



しかし、クライアントからのリクエスト数が膨大になった場合や、取得するコンテンツのサイズが大きい場合、

もしくはコンテンツの取得に時間がかかるような場合、他のクライアントの要求に対して影響が大きいことが

わかります。









一方、Grizzly のように Non Blocking I/O に対応した Web Server を利用すると、Woker スレッドを

効率的に利用することができるようになります。








5つの Woker スレッドが8クライアントからの同時アクセスに対して、各スレッド毎で分割して

処理できますので、誰か1人が大きなファイルを取得したとしても他の人に対して影響は少なく

なります。

そこで、クライアントからのリクエスト数が増えれば増える程、Non Blocking I/Oの実装の恩恵を

受ける事ができます。



PS.

今回は Project Kenai の Grizzly-Send file の画像を使わさせて頂きました。

私が作成した概念図より各スレッド毎に分割されて処理しているのが

分かりやすいので、二つの資料を両方つかうとわかりやすいですね。


2009年4月24日 at 1:03 AM

Grizzly/GlassFish Comet はスケールする?



今、Grizzly のメーリングリストでおそらく皆様が

もつ疑問について問い合わせされている人がいます。



概要を説明すると、Grizzly は 本番環境で耐えうるだけの Comet の接続を受け付け

レスポンスを返すことができるか?ということについてです。



これについて、開発者の Jean Francois は作成するアプリケーション

(long poll/streaming)によって違うが、ユニットテストを行った際には、

ちゃんとスケールしているとのことでした。

実際に、社内の IM で大量のユーザが利用しています。



ベンチマークで使用したユニットテスト:

https://grizzly.dev.java.net/nonav/xref-test/com/sun/grizzly/comet/CometUnitTest.html


また、今年の JavaOne で彼は、Grizzly のベンチマークに関連した

セッションを発表するようです。

(今年は是非行きたかったのですが、このご時世なので行けません。(T_T))



また、Jetty と比べても Grizzly(GlassFish) の方がスケールするようです。

(彼は Jetty も好きなようですが)

実際、Jetty のサスペンドの部分に若干問題がるようで、Jetty はスケールできないようです。

(例外が出力され、サーブレットが2度呼び出しされる)



また、Grizzly の場合、Comet の実装コードは CometContext.notify() と

NotificationHandler に実装すれば良いだけなので、開発者の皆様は、

Jetty で実装するよりも格段にかんたんに実装できるようになるとのことでした。



大規模環境で、GlassFish/Grizzly の Comet を検討されている方は今年のJavaOneの

Jean-Francois のプレゼンを楽しみにしていてください。


2009年3月16日 at 12:06 AM

ICEfacesとGlassFishでCometアプリケーション



ICEfaces を使って Ajax Push(Comet) を実現するための、資料が公開されています。



例えば、ある人が Google Map で座標を動かした時に、他人の

Google Map の座標を動かすというようなことも紹介してました。

(Google Map は Liferey 上のポートレットとして動作)



現在のHTTPの仕様の制限上、単一のブラウザが同じサーバに対して2つのコネクション

しかはれないので、ポートレット内で Ajax Push を実現するためには色々と考える

必要があるかと思いますが、限定的に使う分には面白いかもしれません。



プレゼン資料:

From Ajax Push to JSF 2.0: ICEfaces on GlassFish



追記(2009/03/14)

Suhail Ahmed さんから参考情報を頂きました、上記で紹介した

ICEfaces Portlet を使ったサンプルを下記に公開されて

いるようですので、ご興味のある方は是非参照してください。

Webinar: Filthy Rich Portlets with ICEfaces and Liferay



その他参考情報

ブログ:


http://weblogs.java.net/blog/jfarcand/archive/2007/05/new_adventures.html



http://weblogs.java.net/blog/jfarcand/archive/2007/03/new_adventures_1.html



http://weblogs.java.net/blog/jfarcand/archive/2007/06/new_adventures_3.html



http://weblogs.java.net/blog/jfarcand/archive/2008/11/writing_a_twitt.html



http://cometdaily.com/2008/04/01/new-technology-new-problems-delayed-pushes-operations/




プレゼン資料:


http://weblogs.java.net/blog/jfarcand/archive/2008/10/applying_asynch.html


http://wikis.sun.com/display/TheAquarium/Comet


2009年3月11日 at 7:58 PM

Grizzly sendfile – Project Kenai



大きなファイルを高速に配信する Grizzly の sendfile

(X-Sendfile ヘッダ)が GlassFish v2.x でも利用できます。



我々、Sun のエンジニアがプレゼンやストレーミングを公開するために

使用する、http://mediacast.sun.com でもこれが使われているのですが、

大きなファイルを効率よくクライアントへ配信したい場合は、

是非、一度試してみてください。




プロジェクトホーム:http://kenai.com/projects/grizzly-sendfile/pages/Home



参考情報:http://blog.igorminar.com/2009/02/announcing-grizzly-sendfile.html

2009年3月10日 at 9:44 PM 1件のコメント

GlassFish で Comet のオンラインセミナー



今日の日本時間で明け方4時ころに、Grizzly の開発者である

Jeanfrancois がオンラインセミナーを開催しました。

その発表内容が下記にてストリーミングで提供されていますので、

もし、ご興味のある方は見てください。



http://www.ustream.tv/channel/theaquarium



その他にも、今日は注目の技術エントリを紹介します。



開発関連

● WS-Addressing と
ステートフル Web サービス


● 
RESTful Web サービス と Jersey の Client API




MySQL関連

● 
Sun and MySQL: How It Stacks Up for Developers


● 
GlassFish と MySQL を連携した Web サービスの構築


● Using MySQL With Java Technology



SailFin 関連

● Adding Voice to Java EE With SIP Servlets


2009年3月5日 at 7:10 PM

GlassFish でかんたん Comet (Reverse Ajax, Ajax Puxh)アプリケーション



以前、Cometのアプリケーションを POJO で作成できるフレームワークである

Atmosphere のプロジェクトについて紹介しましたが、このプロジェクトも

ずいぶんプロジェクトが進行したようです。



タイトルでは、GlassFish と書きましたが、このプロジェクトの成果物は

Tomcat, Jetty 等他の Servlet コンテナ上でも動作します。



この、Atomosphere のPOJO フレームワークである Grizzlet のサンプルが

下記で公開されましたので、Comet のアプリケーションにご興味のある方は

是非、一度御確認いただければと思います。




Grizzlet Flickr サンプルアプリケーション


ソースコードサンプル


2009年2月26日 at 8:22 PM 2件のコメント

過去の投稿


Java Champion & Evangelist

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2017年4月
« 2月    
 12
3456789
10111213141516
17181920212223
24252627282930

カテゴリー

Twitter

  • RT @backpaper0: てらださんには「テラダヨシオガンバル」って書かれたTシャツ着てほしい 4 hours ago
  • RT @sandayuu: 明日 DevOpsDays Tokyoなのですが、MR. Be Lazyの@DrewRobbins がマイクロソフトブースき来てくれることになりました!こら、質問するチャンスですよ! #DevOpsJP 9 hours ago
  • RT @navitime_tech: JJUG CCC 2017 Spring に日本マイクロソフト寺田様(@yoshioterada)と共同で登壇します。LUISを採用した理由、これからのAIやbot活用の可能性について話す予定です。https://t.co/wjRUbaNw… 3 days ago
  • RT @JJUG: JJUG CCC 2017 Spring(5/20)まで1ヶ月!コンテンツが出そろってきました。タイムテーブルをチェックして、行きたいコンテンツを確認してください。皆様のご参加をお待ちしております! buff.ly/2pGUNlu #jjug3 days ago
  • RT @vrize_inc: マイクロソフトのテクニカルエバンジェリストの方にhackfestを開催していただき、技術的な課題を一緒に解決しました。本社ブログに取り上げていただいてます!! blogs.technet.microsoft.com/livedevopsinja… 3 days ago

clustermap

ブログ統計情報

  • 944,169 hits

Feeds