play netty lt

18
Play! in Tokyo #2 NettyPlay!どう使われているのか的なお話 @tan_go238 2011108日土曜日

Upload: go-tanaka

Post on 11-May-2015

5.963 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Play Netty LT

Play! in Tokyo #2

NettyはPlay!でどう使われているのか的なお話

@tan_go238

2011年10月8日土曜日

Page 2: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

About me

twitter :@tan_go238

会社  :株式会社プラグラム

言語 :Java, Flex, PHP

興味 :JVM, HTML5, WebGL, Obj-C

2011年10月8日土曜日

Page 3: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

2011年10月8日土曜日

Page 4: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

• ブロッキングとノンブロッキングIO• ブロッキングIOはクライアントと1vs1

• 処理待ちの間は他のことできない

• じゃあノンブロッキングで

2011年10月8日土曜日

Page 5: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

• 「一番いいノンブロッキングを頼む」• 「Netty」(Grizzly, MINAよりも速い?)

• 「そんなNettyで大丈夫か?」

• 「大丈夫だ。問題無い。」

2011年10月8日土曜日

Page 6: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

• Nettyの紹介• NIOフレームワーク

• 高パフォーマンス、高スケーラビリティ

• 非同期イベント駆動

2011年10月8日土曜日

Page 7: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

• Nettyの説明

・ChannelPipelineはそのHandler をいくつか配置したもの

http://d.hatena.ne.jp/fatrow/20110208/netty

・UpStream(受)/DownStream(送)

・レイヤー毎にHandler

2011年10月8日土曜日

Page 8: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

• ここまで• 質疑応答

2011年10月8日土曜日

Page 9: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

• 質疑応答での悲劇NettyはPlay!でどのように使われているのですか?

2011年10月8日土曜日

Page 10: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

前回までのあらすじ

• 質疑応答での悲劇

・・・・・・・・・・・・

2011年10月8日土曜日

Page 11: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

やっと本題

• NettyはPlay!でどう使われているのか

2011年10月8日土曜日

Page 12: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

Play! with Netty

• アプリケーションコンテナ代わり• 1.X系ではServlet, JSPに対応していない

2011年10月8日土曜日

Page 13: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

Play! with Netty• play run (DEV mode)framework/pym/play/commands/base.py#run(app, args)

/path/to/java-javaagent /playHome/framework/play-version.jar -Dfile.encoding=utf-8 -Xdebug -Xrunjdwptransport=dt_socket,address=8000,server=y,suspend=n -Dplay.debug=yes -classpath appHome/conf /playHome/framework/lib以下のjar-Dapplication.path=/appHome -Dplay.id= play.server.Server

2011年10月8日土曜日

Page 14: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

Play!内のNettyの設定

http://d.hatena.ne.jp/fatrow/20110208/netty

// allow-access-from domain=”*” to-ports=”*”pipeline.addLast(

"flashPolicy", new FlashPolicyHandler()); // Netty標準APIpipeline.addLast(

"decoder", new HttpRequestDecoder());// Long Polling (Streaming)pipeline.addLast(

"aggregator", new StreamChunkAggregator(max));// Netty標準APIpipeline.addLast(

"encoder", new HttpResponseEncoder());// Netty標準API(Streamingでデータを取得するためっぽい)pipeline.addLast(

"chunkedWriter", playHandler.chunkedWriteHandler);// それ以外のHTTPリクエスト、WebSocketpipeline.addLast(

"handler", playHandler);

2011年10月8日土曜日

Page 15: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

Netty → Playbase.py#run

play.server.Server#main

play.server.PlayHandler#messageReceived

play.Invocation#init

play.Play#start

2011年10月8日土曜日

Page 16: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

WebSocket(hybi10)対応について

• Play!は既に実装済みっぽい(けど動かない)play.server.hybi10 以下にクラスがある

昨日 (2011.10.07) 確認したが動かなかった 環境  Mac OS 10.6.8  Chrome 14.0.835.202

samples-and-tests/chatアプリで確認

2011年10月8日土曜日

Page 17: Play Netty LT

Play! in Tokyo#2 Netty

COPYRIGHT 2011 PLUGRAM, INC.

WebSocket(hybi10)対応について

• Nettyが対応していない?

Pull Request有り

取り込まれてない

リリースいつ?

2011年10月8日土曜日

Page 18: Play Netty LT

ありがとうございました!

2011年10月8日土曜日