Your SlideShare is downloading. ×
0
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Scala + Finagleの魅力
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Scala + Finagleの魅力

10,252

Published on

Published in: Technology
0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,252
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
18
Comments
0
Likes
19
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Scala + Finagle の魅力日本 Scala ユーザーズグループ (ScalaJP)株式会社ユビレジ ソフトウェアエンジニア水島 宏太
  • 2. 自己紹介https://github.com/kmizu
  • 3. こんなことしてます
  • 4. こんなことしてます
  • 5. こんなことしてます
  • 6. 本題
  • 7. Scala + Finagle のちょっとしたお話Scala Days 2012 参加リポート
  • 8. どうでもいいクイズ 1Finagle の日本語での意味は?
  • 9. 正解は…● だます、ペテンに掛ける● finagler は「詐欺師」 何故こんな名前を付けたのか それを知りたい
  • 10. どうもいいクイズ 2Finagle の発音は?
  • 11. 正解は… fineiglカタカナにすると フィネーグル に近い
  • 12. Finagle is … Network stack for the JVM by Twitter, Inc.
  • 13. Finagle の特徴● クライアント / サーバ● 非同期 RPC システムを簡単に作れる – デフォルトで Thrift, HTTP など● Future による簡潔な非同期処理
  • 14. Finagle ≠ RPC ライブラリ● 以下のものとは目的が違う – Apache Thrift – Apache Arvo – Protocol Buffers● RPC システムを作るための FW
  • 15. Codec - 重要な概念 (1)● データの Encode/Decode 方法を提供 – Netty Pipeline 経由● ユーザは CodecFactory を定義
  • 16. class JSONCodec extends CodecFactory[JsonAST.JValue, JsonAST.JValue] { /* type Server = ServerCodecConfig => Codec[JsonAST.JValue, JsonAST.JValue */ /* type Client = ClientCodecConfig => Codec[JsonAST.JValue, JsonAST.JValue */ def server: Server = Function.const { ... } def client: Client = Function.const { ... }}
  • 17. Service - 重要な概念 (2) abstract class Service [-Req, +Rep] extends (Req) ⇒ Future[Rep]● Req => Future[Rep] への関数● ロジックは主に Service に書く
  • 18. Future - 重要な概念 (3) abstract class Future[+A] extends TryLike[A, Future] with Cancellable● 非同期的計算を表現するクラス● java.util.concurrent.Future との違い: – Future が合成可能
  • 19. 今回作ったサンプル● JSON による単純なメッセージ通信● クライアント → サーバ – Echo● サーバ → クライアント – EchoResult
  • 20. メッセージの定義● Echo: {“type”: “echo”, “message”:$msg}● EchoResult: {“type”: “echoResult”, “message”:$msg}
  • 21. デモ
  • 22. 今回のサンプルコード:https://github.com/scalajp/finagle_echoにて公開
  • 23. Finagle の良いところ● Codec, Service を定義するだけで簡単に RPC っぽいものが書ける● Client, Server のソケット管理は Finagle(Netty) にお任せできる● Future によるメッセージ受信処理
  • 24. Finagle 導入のリスク● ドキュメントが追随できてないことがある – 場合によってはソース追った方が早い● ステートフルなプロトコルは工夫が必要 – Finagle はステートレスプロトコル向き● Netty の薄いラッパーであること – Netty の知識が必要な場合も
  • 25. おまけ
  • 26. Scala Days 2012のちょっとした話
  • 27. 参加者数45040035030025020015010050 0 2010 (Lausanne) 2011 (Stanford) 2012 (Barbican)
  • 28. 4/17 ~ 4/18 Barbican(London)
  • 29. 今年は発表しないからゆっくりできる
  • 30. そう思っていた時期が私にも ありました
  • 31. キーノートの次の最初のセッション
  • 32. From: Adriaan Moors予定してたセッションの発表者が急遽キャンセルになったんだ代わりに発表してくれないか?
  • 33. 発表まで1時間
  • 34. ( ゚ д ゚ ) ポカーン
  • 35. なんとかした
  • 36.
  • 37. 死ぬかと思った
  • 38. 続きは、 InfoQ JapanScala Days 2012 リポート記事( 予定 ) にて
  • 39. 乞うご期待

×