HTML5 WebSocketを実装したゲートウェイサーバ「Kaazing」


HTML5 WebSocketを先取り実装したゲートウェイKaazing。


クライアントはJSで、サーバサイドはMinaベースのサーバアプリケーション。
JMS、Jabber(ていうかXMPPかな)とかTCPベースの様々なソケット接続を受けれる。
UDPもたぶん大丈夫。ActiveMQは必須っぽいねえ。


まあ時間が空いたら続きみよ。。。

通りすがりさんの質問への回答

すいません、ちょっと遅くなってしまいました。>通りすがりさん

対応ありがとうございます。
テストしてみましたがちょっと確認したい事があります。

@Page("/")
public class TopPage {
@Default
@ActionPath("index.html")
public Navigation index(final WebContext context) { ... }

@ActionPath("page1.html")
public Navigation page1(final WebContext context) { ... }
}

このようなクラスでテストしたのですが、結果以下のようになりました。
1.http://hoge.appspot.com/ -> indexメソッドが実行される。
2.http://hoge.appspot.com/index.html -> どのメソッドも実行されず404エラー
3.http://hoge.appspot.com/page1.html -> どのメソッドも実行されず404エラー

上記2、3のURLでアクセスされた場合になんらかの処理をさせたい場合は、
@Page("index.html")や@Page("page1.html")を付加したクラスを作成したほうがよいでしょうか?
(クラスを作成した場合は正常に動作することを確認しました。)

そうですね、htmlのリソースごとに複数のPageをつくるのも一つの手です。
またはURLの先頭にT2で処理させるページパス(特に物理的に存在しなくてもよい)だけ決めておいて、@Page("/hoge")のようにして、アクションメソッドで以下のようにhtmlなどを処理させるといいかもしれないです。

@Page("/hoge")
public class IndexPage {

	@Default
	public Navigation index() {
		return Forward.to("/index.jsp");
	}

	@GET
	@ActionPath("/add.html")
	public Navigation add() {
		return Forward.to("/jsp/add.jsp");
	}

	@GET
	@ActionPath("/hello.html")
	public Navigation hello() {
		return Forward.to("/jsp/hello.jsp");
	}
}


こんなんで回答になってるでしょうか?>通りすがりさん

他にも何かあればいつでもお答えしますので、またわからないことあれば聞いてください^^

T2プロジェクトの方針転換

今回のSeasarカンファレンスにも多くの方に来ていただいて、T2のセッションやデモを見ていただくことが出来ました。見にきてくれたみなさん、本当にありがとうございました。まずは御礼申し上げます。また、企画・運営のみなさんも本当にお疲れ様です。ご苦労あったと思いますが、ウェブ界隈を見る限りみんな楽しんでくれているようで素晴らしいことだとおもいます。


さて、Seasarカンファレンスでの振り返りを受け、T2プロジェクトは若干の方針転換をします
具体的には、主力のT2とViliの開発をより積極的に行い、リソースもそこに全力であてるようにします。
今まではDIコンテナやDaoの議論、開発など多岐に渡っていたのですが、T2一本に専念します。


T2の良さは、シンプルかつ洗練された有益な機能があって、使う方がコントロールがしやすく、既存フレームワークとの共存がし易いところにあります。今後はその点をより重要視して、開発、テスト、ドキュメントの充実、既存との共存の確認、そしてリリースを行っていきます。既存フレームワークとの共存においては、Viliを使って、既存との共存・共栄できるところをサンプルなどを上手に使って証明していきます。(いろんな人が作ったViliテンプレートを公開できる仕組みがあるといいかもしれないですね。)


T2プロジェクトにおいて、T2は私達のコアであり中心です。今後もそれは変わることはありません。


そのため、サブプロジェクトも方向転換をします。基本バグフィックスなどはもちろんしますが、機能追加は一端停止します。

  • 共通ライブラリ「Commons」は現状維持をメインとして、バグフィックスとメンテナンスを中心とします。
  • 軽量DIコンテナ「Lucy」もDIコンテナとしての機能は極小ですがどれもさっくり動くので、ここでバグフィックスとパフォーマンスチューニングなどのみに方針転換します。新機能の追加は一端停止します。
  • 今後リリースするはずだったDaoフレームワークも一端停止します。コネクションプールとステートメントプールまで書いたんですがT_T


これら方針転換は全てはT2をより良く・より使いやすくするためです。メンバ全員と議論して、あれもこれもやってもあんまり効率よくないよね、本当に良いものを生み出すにはもっともっと選択していく必要があるよね、というコンセンサスの元で今回の方針転換に至りました。私達はチーフコミッタという存在はおらず、4人(+暗黒の1名)の合議制で成立しています。なので、意見がかち合うこと・食い違いも多々ありますが、その衝突が良いアイデアを生み、良い洗練された機能になると考えています。また全員チーフコミッタみたいなもんなので、一人・二人が都合で多少出られずとも何の影響もなく、開発は継続され外部へのプレゼンテーションを行うことが出来ます。



というわけで、今までよりもっとT2が実際に使われるために必要だと考えるものを作っていきたいと思います。もしよければフィードバック等でレスポンス頂ければと思います。まずはT2AMFが搭載されている0.6をしっかりドキュメント込みでリリースします。


これからのT2に注目していただければ幸いです。
宜しくお願いします。

2009/06/15 T2プロジェクト一同