An Introduction to Vert.x
Upcoming SlideShare
Loading in...5
×
 

An Introduction to Vert.x

on

  • 9,754 views

JJUG CCC 2013 Fall のスライド #jjug_ccc

JJUG CCC 2013 Fall のスライド #jjug_ccc

Statistics

Views

Total Views
9,754
Views on SlideShare
4,387
Embed Views
5,367

Actions

Likes
11
Downloads
21
Comments
0

11 Embeds 5,367

http://www.grimrose.org 2394
http://acro-engineer.hatenablog.com 2040
http://localhost 404
http://grimrose.bitbucket.org 399
https://twitter.com 96
http://cloud.feedly.com 11
http://feedly.com 9
http://www.google.co.jp 6
http://translate.googleusercontent.com 5
http://www.newsblur.com 2
https://www.google.co.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    An Introduction to Vert.x An Introduction to Vert.x Presentation Transcript

    • JJUG CCC 2013 Fall R5-6 [BOF]
 
 Over the Node.js 
 An Introduction to Vert.x 2013/11/09 Acroquest Technology 株式会社 村田賢一郎
    • 目次 1.  自己紹介 2.  Vert.x の概要 3.  Vert.x による開発 4.  Vert.x の最新情報 5.  まとめ 〜Java界の新たなる希望〜 © http://www.flickr.com/photos/delta_139/4878497911/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2
    • 1. 自己紹介 自己紹介 = 氏名: ‘村田 賢一郎’ twitter: ‘@muraken720’ 所属: ‘Acroquest Technology Co.,Ltd.’ 仕事: ‘ライフライン系ネットワーク集中監視システム開発’ ‘フレームワーク開発’ 言語: ‘Java & JavaScript & CSS3 & HTML5’ 興味: ‘Vert.x’ ‘Backbone.js’ ‘Jeet4’ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
    • 1. 自己紹介 n  最近は会社ブログで以下を書いています! http://acro-engineer.hatenablog.com/ l  Vert.x がいいね!(第1回〜第3回) l  試して学ぶ Backbone.js 入門のまとめ l  RealtimeConf 2013に参加してきました! Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
    • Vert.x とは何なのか? その特長について 2. Vert.x の概要 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 5
    • 【2. Vert.x の概要】
 1. Vert.x とは? 〜Java界の新たなる希望〜 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 6
    • 【2. Vert.x の概要】
 2. Vert.x Project 1.  Project Site Ø  http://vertx.io/ 2.  Github Ø  https://github.com/eclipse/vert.x Ø  https://github.com/vert-x 3.  100% open source(ASL 2.0) 4.  Eclipse Foundation Project 5.  主な開発者 Ø  @timfox (Project Leader) Ø  @normanmaurer Copyright © Acroquest Technology Co., Ltd. All rights reserved. 7
    • 【2. Vert.x の概要】
 3. Vert.x の特長 1.  2.  3.  4.  High Performance(Asynchronous/ Non-Blocking) Distributed Event Bus Polyglot Module System Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8
    • 【2. Vert.x の概要】
 3-1. High Performance 1.  背景:C10K問題 ①  一般的に1つのスレッド辺り、256kb〜1mb必要になる 2.  対策:1スレッド(EventLoop)で処理する ①  Vert.xはコア数に応じて、EventLoopを生成する ②  non-blocking ③  asynchronous © http://www.flickr.com/photos/stickkim/7491816206/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9
    • 【2. Vert.x の概要】
 3-1. High Performance n  EventLoopを止めるな! ①  ②  ③  ④  ブロックするライブラリの呼び出し(例えばJDBC) CPUヘビーな処理 Thread.sleep() Object.wait() © http://www.flickr.com/photos/mac_filko/5085785977/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 10
    • 【2. Vert.x の概要】
 3-1. High Performance n  Asynchronous API ①  ②  ③  ④  ⑤  ⑥  ⑦  ⑧  TCP/SSL client & server HTTP/HTTPS client & server WebSocket SockJS File System Event Bus Timer etc. Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11
    • 【2. Vert.x の概要】
 3-2. Distributed Event Bus 1.  2.  3.  4.  Event BusはVert.x のアプリケーション基盤 Pub/Sub、Point to Point(Request / Response) メッセージはJSONが推奨 複数のVert.x Instanceをクラスタリングしている場合も Event Busで接続可能 © http://www.flickr.com/photos/michellecarl/6960299327/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12
    • 【2. Vert.x の概要】
 3-3. Polyglot n  JVM上で扱える多くの言語サポート © http://www.flickr.com/photos/ johnnywashngo/6599602215/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 13
    • 【2. Vert.x の概要】
 3-3. Polyglot n  Java public class HelloWorldVerticle extends Verticle { public void start() { vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() { public void handle(HttpServerRequest req) { req.response().headers().set("Content-Type", "text/plain"); req.response().end("Hello World!!!"); } }).listen(8080); } } Copyright © Acroquest Technology Co., Ltd. All rights reserved. 14
    • 【2. Vert.x の概要】
 3-3. Polyglot n  Java8 ラムダ public class HelloWorldVerticle extends Verticle { public void start() { vertx.createHttpServer().requestHandler((HttpServerRequest req) -> { req.response().headers().set("Content-Type", "text/plain"); req.response().end("Hello World!!!"); }).listen(8080); } } Copyright © Acroquest Technology Co., Ltd. All rights reserved. 15
    • 【2. Vert.x の概要】
 3-4. Module System 1.  機能を再利用可能な形にモジュール化することが可能 2.  モジュールはMavenやBintrayに公開し、共有すること ができる 3.  モジュール間はEventBus介してゆるやかに結合する © http://www.flickr.com/photos/michellecarl/6960299327/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 16
    • 【2. Vert.x の概要】
 3-4. Module System 1.  Moduleは1つ以上のVerticleを含むもの 2.  mod.jsonを定義する { "main":”HelloVerticle", "auto-redeploy": true, "description":"Put description of your module here", "licenses": ["The Apache Software License Version 2.0"], "author": "Kenichiro Murata", "developers": [], "keywords": ["vert.x", "module", "java", "gradle"], "homepage": "https://github.com/muraken720/vert.x-module-template-for-java" } Copyright © Acroquest Technology Co., Ltd. All rights reserved. 17
    • 【2. Vert.x の概要】
 3-4. Module System 1.  Vert.x Module Registry Ø  http://modulereg.vertx.io/ 2.  主なモジュール ①  ②  ③  ④  ⑤  ⑥  ⑦  ⑧  ⑨  WebServer Mailer MongoDB Redis JDBC mysql-postgresql(async) Yoke(inspired by Connect) Vertigo(similar to Storm) CRaSH shell Copyright © Acroquest Technology Co., Ltd. All rights reserved. 18
    • Vert.x の開発環境からアプリケーションアーキテクチャについて 3. Vert.x による開発 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 19
    • 【3. Vert.x による開発】
 1. 開発環境 1.  Java7 2.  Project Template ①  Gradle ②  Maven 3.  IDE Support ①  Eclipse ②  InteliJ 4.  Module Auto redeploy(デモ) 5.  Remote debug(デモ) 参照: Vert.x がいいね!(第2回:開発環境を構築する) http://acro-engineer.hatenablog.com/entry/2013/08/15/073502 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 20
    • 【3. Vert.x による開発】
 2. Vert.x を使ったアーキテクチャ 1.  Node.js and the new web front-end Ø  http://www.nczonline.net/blog/2013/10/07/node-js-andthe-new-web-front-end/ 2.  Node.jsでフロント側を開発して、バックエンド側 をVert.xで開発する。 3.  EventBusを使ってNode.jsとVert.xをつなぐ Ø  vertx-eventbus-client Ø  https://npmjs.org/package/vertx-eventbus-client Copyright © Acroquest Technology Co., Ltd. All rights reserved. 21
    • 日本で最も早い?Vert.x の最新情報とVert.xの今後 4. Vert.x の最新情報 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22
    • 【4. Vert.x の最新情報】
 1. Vert.x 2.1 M1 Release n  注目の新機能 ①  Fat Jar(executable jar) – Vert.x Coreを含んだexecutable jarを作れる – 事前にVert.xをインストールしておく必要なし ②  HA(High Availability) ③  DNS / UDP Core API © http://www.flickr.com/photos/stickkim/6962834384/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 23
    • 【4. Vert.x の最新情報】
 2. HA(High Availability) n  モジュールの自動フェールオーバー In console 1: vertx runmod com.mycompany~my-mod1~1.0 -ha In console 2: vertx runmod com.mycompany~my-mod2~1.0 -ha © http://www.flickr.com/photos/stickkim/7108906575/ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 24
    • 【4. Vert.x の最新情報】
 2. HA(High Availability) n  HA Group In console 1: vertx runmod com.mycompany~my-mod1~1.0 -ha -hagroup g1 In console 2: vertx runmod com.mycompany~my-mod2~1.0 -ha -hagroup g1 In console 3: vertx runmod com.mycompany~my-mod3~1.0 -ha -hagroup g2 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 25
    • 最後にVert.xのポイントをもう一度おさらい 5. まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 26
    • 【5. まとめ】
 まとめ n  Vert.xは・・・ ①  ②  ③  ④  ⑤  次世代のApplication Platform High Performance Polyglot Module System EventBus n  各JVM言語によるModuleを上手く組み合わせ て、効率よく、ハイパフォーマンスでスケーラブル なアプリケーションを開発できる! n  Java界の新たなる希望 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 27
    • Java界の新たなる希望 『 Vert.x 』 で盛り上がりましょう! ありがとうございました。 Infrastructures  Evolution Copyright © Acroquest Technology Co., Ltd. All rights reserved. 28