Posts tagged ‘Comet’

Servlet 3.0 の新機能概要

Servlet 3.0 の新機能をプレゼン形式でまとめてみました。個々の機能に関する詳細は別途記載する予定ですが、ここでかんたんに概要を説明します。

Servlet 3.0 は Servlet 2.5 からかなり多くの改良が施されています。
Java SE 5 から利用可能になった、アノテーションを利用し、今まで web.xml に記載していた Servlet や Filter 等の設定をアノテーションで記載できるようになり開発生産性が大幅に向上しました。
また、プラガビリティの向上として、外部のフレームワークやライブラリの設定を web.xml 以外のファイル (web-fragment.xml) に記載できるようになったため、web.xml の肥大化を抑制でき、またフレームワークの設定管理が容易になっています。
その他では Servlet API 自身でマルチパートを扱えるようになったため、Servlet API だけでファイルをアップロードすることができるようになっています。
さらに、Servlet 3.0 から非同期処理を実現できるようになっています。この非同期処理機能は、Comet/Reverse Ajax 等のアプリケーションを実装できる他、DB アクセス等とても処理に時間がかかるような処理を非同期で処理する事ができるようになります。例えば、HttpServlet のスレッドとは別のスレッドで非同期に実現する事で DB が高負荷時に HttpServlet の最大スレッド数に到達し Web のアクセスが不可になる状態を防ぐ事もできます。
その他では、HttpServletRequest に login/logout/authenticate のメソッドが含まれ、プログラムを利用しログイン/ログアウト処理を実装できるようになった他、@ServletSecurity を使用して web.xml に記載していた < security-constraint > の設定をプログラム中で宣言できるようになっています。

改良された、Servlet 3.0 を是非お試しください。


web.fragment.xml に関する詳細は 「Servlet 3.0 web-fragment.xml による設定」 のエントリをご参照ください。


マルチパートの詳細は 「Servlet 3.0 File Upload 機能」 のエントリをご参照ください。

2010年3月14日 at 2:26 午前 1件のコメント

POJO Comet Framework Atmosphere 0.3 Released



Grizzly の開発者の1人である Jean Francois は

Atmosphere 0.3 のリリースを発表しました。



Atmosphere は POJO ベースで Comet (Reverse Ajax) を

実装することのできるフレームワークなのですが、

今回のリリースではクラスター化されたシステムでも

利用できるようになったようです。



その他、RESTful,Scala 等への対応という事で、

以前のバージョンに比べて大幅に機能拡張がされているようです。



Atomosphere のフレームワークは Tomcat, Jetty, JBoss, WebLogic

WebSphere 等の環境でも動作させる事が可能ですので、Comet の

アプリケーションを実装されたい方は是非試してください。





Atmosphere 0.3 から追加された新機能



* Full REST based application using Atmosphere core module

* Scala support: Use Scala to write powerful asynchronous web application

* Bayeux Protocol: You like the Comed/Bayeux Protocol? Run it on of Atmosphere.

* Cluster supported: decide between Shoal or JGroups

* Annotations Injection: You can now write your own annotation and inject it as needed

* Use Atmosphere as a Filter instead of a Servlet

* Customize Broadcaster Scope and re-write Twitter.com

* Use Filters like Google Guice

* Run on Glassfish, Tomcat, Jetty, JBoss, WebLogic, WebSphere using Servlet 3.0 or native Comet implementation

* Execute synchronous broadcast or asynchronous broadcast using BroadcasterFuture

* Filter and transform broadcasted message using BroadcasterFilter

* Work with the new Grails Atmosphere plug-in

* Play tic-tac-toe using Atmosphere




2009年7月23日 at 9:32 午後

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 午前

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 午前

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 午後

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 午後

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 午後 2件のコメント

Ajax Push(Comet)についてのセッション







Ajax Push(Comet)について、12月に開催されるSun Tech Days 2008 Tokyoでも

海外のエンジニアによって発表されるようです。



2-J-4 Developing Web Applications using Comet and Ajax





脚光を浴びるAjax Push, CometそしてHTTP ストリーミングはWebアプリケーションの

操作性を革新的に変え、参加の時代にWebを突入させました。

Ajaxをベースとするアプリケーションは Webアプリケーション設計のデファクト

スタンダードになっております。

Webアプリケーションはクライアントとサーバ両方のイベントによりリアルタイムあるいは

動的に動作が変化することがより一層重要になっています。

CometはWebクライアントとサーバが非同期にコミュニケーションを行う技術で、

リアルタイム操作や従来のWebアプリケーション、デスクトップアプリケーションなどでは

出来なかった機能が実現可能になります。



本セッションでは、非同期Webの簡単な紹介にて、プロトコルや実現しようと

考えていることについて解説します。

さらにCometとAjaxを用いて分散した二人用ゲームアプリケーションを順を追いながら解説します。

セッションの参加者はDojo, jMaki, Prototype を用いて開発していたり、アプリケーションを

Jetty, Tomcat, GlassFishに展開していても、複数のユーザがコラボレーションしたり

互いに通知したりする機能を付加するのに必要な方法を本セッションで得ることができるでしょう。



Sun Microsystems,Inc.

Michael Li


2008年11月3日 at 10:40 午後

GlassFish & MySQL でCometアプリケーション



先日10/30(木)、31(金)に開催されたMySQLユーザカンファレンスで

使用したプレゼンテーションはMySQLのサイトからも入手できるように

なるかと思いますが、下記からも入手できるようにしました。




S-D2: GlassFish と MySQLで広がる新しい世界



2008年11月3日 at 6:59 午後

GlassFishでCometアプリケーション



先日、MySQLカンファレンスにてGlassFishでCometのアプリケーションを

動作させましたが、サンプルのアプリケーションをアップします。

MySQLカンファレンスではGlassFishとMySQLとの連携をデモを行いましたが、

いきなりDB連携は難しいのでかんたんにCometを動かす方法について紹介します。

是非、ここで紹介するプログラムを改造したり参考にして色々と楽しいアプリケーションを

作成してください。



ここで紹介するアプリケーションはボタンを押下すると、サーバに接続する

全てのクライアントに対して同一の数値をサーバからPushし表示させる

Cometアプリケーションです。










1. まずはNetBeans6.1のGlassFIshバンドルをご入手ください。





2. NetBeans, GlassFishをインストールした後、GlassFish上でCometのアプリケーションを動作させる

  設定を行ってください。

  GlassFishの管理画面へはデフォルトで、http://[インストールマシンのIPアドレス]:4848/でアクセスします。

  ログインユーザ名、パスワードはそれぞれ下記を入力しログインできます。

  ユーザ名:admin

  パスワード:adminadmin



  ログインした後、管理画面中より「設定」→「HTTPサービス」→「HTTPリスナー」より

  「http-listener-1」を選択し下記のように「追加プロパティ(1)」中に記載される、全ての項目を削除し、

  「cometSupport」「true」を入力し保存してください。

  これにより、GlassFishでCometのアプリケーションを動作させる事ができるようになります。








3. 次にNetBeansのCometサンプルアプリケーションのプロジェクトを入手してください。

ファイルを展開すると下記のファイルが含まれています。




> jar tvf sample-comet.jar

0 Sat Nov 01 13:40:48 JST 2008 META-INF/

60 Sat Nov 01 13:40:48 JST 2008 META-INF/MANIFEST.MF

0 Sat Nov 01 13:21:02 JST 2008 sample-comet/

0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/

0 Sat Nov 01 13:21:04 JST 2008 sample-comet/build/web/

189 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/button.html

446 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/count.html

438 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/index.html

513 Sat Nov 01 13:21:04 JST 2008 sample-comet/build/web/J2EE.dpf

0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/META-INF/

23 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/META-INF/MANIFEST.MF

0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/

0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/

205 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/HiddenCometServlet$1.class

3473 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/HiddenCometServlet$CounterHandler.class

3476 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/HiddenCometServlet.class

0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/lib/

596144 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/lib/grizzly-1.0.21.jar

513 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/sun-web.xml

710 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/web.xml

3081 Sat Nov 01 13:17:06 JST 2008 sample-comet/build.xml

0 Sat Nov 01 13:21:02 JST 2008 sample-comet/dist/

607377 Sat Nov 01 13:21:02 JST 2008 sample-comet/dist/sample-comet.war

0 Sat Nov 01 13:04:06 JST 2008 sample-comet/nbproject/

3538 Sat Nov 01 13:04:08 JST 2008 sample-comet/nbproject/ant-deploy.xml

43350 Sat Nov 01 13:17:06 JST 2008 sample-comet/nbproject/build-impl.xml

447 Sat Nov 01 13:17:06 JST 2008 sample-comet/nbproject/genfiles.properties

0 Sat Nov 01 13:04:06 JST 2008 sample-comet/nbproject/private/

2409 Sat Nov 01 13:04:08 JST 2008 sample-comet/nbproject/private/private.properties

2354 Sat Nov 01 13:17:04 JST 2008 sample-comet/nbproject/project.properties

932 Sat Nov 01 13:17:04 JST 2008 sample-comet/nbproject/project.xml

0 Sat Nov 01 13:04:06 JST 2008 sample-comet/src/

0 Sat Nov 01 13:04:06 JST 2008 sample-comet/src/conf/

23 Sat Nov 01 13:04:06 JST 2008 sample-comet/src/conf/MANIFEST.MF

0 Sat Nov 01 13:10:40 JST 2008 sample-comet/src/java/

3458 Sat Nov 01 13:22:10 JST 2008 sample-comet/src/java/HiddenCometServlet.java

0 Sat Nov 01 13:04:06 JST 2008 sample-comet/test/

0 Sat Nov 01 13:07:00 JST 2008 sample-comet/web/

189 Sat Nov 01 13:06:38 JST 2008 sample-comet/web/button.html

446 Sat Nov 01 13:07:04 JST 2008 sample-comet/web/count.html

438 Sat Nov 01 13:05:54 JST 2008 sample-comet/web/index.html

0 Sat Nov 01 13:04:06 JST 2008 sample-comet/web/WEB-INF/

513 Sat Nov 01 13:04:08 JST 2008 sample-comet/web/WEB-INF/sun-web.xml

710 Sat Nov 01 13:11:50 JST 2008 sample-comet/web/WEB-INF/web.xml





  上記には、サンプルアプリケーションのソースコードと実行ファイルである

  「sample-comet.war」、またCometの開発に必要なGrizzlyのAPI(grizzly-1.0.21.jar)

  が含まれています。



※ 最新のgrizzly-1.0.x.jarは下記より入手可能です。

  https://maven-repository.dev.java.net/nonav/repository/grizzly/jars/



4. 入手したNetBeansのプロジェクトファイルをご自身の環境にインポートします。



NetBeansのメニューより、「プロジェクトを開く」を選択し上記で入手、展開した

ディレクトリを指定してください。









5. プロジェクトを開くと恐らくGlassFishのインストールパスやJDKのインストールパスが

  異なるため、いくつか設定を修正して頂く必要があるかと思いますが、それらの参照先を

  変更して頂ければNetBeans上でCometのアプリケーションを開発できるようになると

  思います。


2008年10月31日 at 10:45 午後 2件のコメント

Older Posts


Java Champion & Evangelist

Translate

ご注意

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

カレンダー

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

カテゴリー

clustermap

ブログ統計情報

  • 1,288,954 hits

Feeds

アーカイブ