SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
2014.4.18
須江信洋(@nobusue)
http://d.hatena.ne.jp/nobusue
https://www.facebook.com/nobuhiro.sue
G*ワークショップZ
Apache Camel+Groovyで
簡単システム統合ハンズオン
2
自己紹介
 須江 信洋(すえ のぶひろ)
 Twitter: @nobusue
 https://www.facebook.com/nobuhiro.sue
 約10年ほどJavaEE関連の仕事をしてます
 2013年10月よりフリーランス(個人事業主)
 最近興味を持っているもの
 Vert.x / Storm / Camel / Elasticsearch
 Vagrant / Docker / Ansible / Serverspec
 もちろんGroovy / Gradle / Grails
Gradle本
(執筆中)
3
JGGUGって?
 Japan Grails/Groovy User Group
 2009年発足
 Grails/GroovyなどのGroovyエコシステム(G*)に
関するコミュニティ
 前身は2006年から活動していたGrailsコミュニティ
 こわくない
 毎月第3金曜日にG*ワークショップを開催
 参加型(ハンズオンなど)
 告知・申し込みはこちら
 http://jggug.doorkeeper.jp/
http://www.jggug.org/
4
Today’s Agenda
 Groovyインストール
 Apache Camel概要
 EIP(Enterprise Integration Patterns)
 Camelのアーキテクチャ
 Camel+Groovyハンズオン
 File
 DB / JMS
 Timer / VM
 Twitter / Elasticsearch
 参考情報
本日のGOAL
Apache Camelの最新情報を知る
Apache Camelを技術的に詳しく突っ込む
Apache Camelの概要を知る
Apache Camelに触れてみる
⇒入口の敷居を下げるのが目的です
6
Groovyインストール
 前提
 JDK1.7以上 (“java –version”で確認)
 GVM利用
 curl -s get.gvmtool.net | bash
 gvm install groovy
 詳細は http://gvmtool.net/ 参照
 Windowsの場合はcygwinが必要
 ZIPを展開
 http://groovy.codehaus.org/Download
 安定版は2.2.2が最新(2014/4/17現在)
 適当なディレクトリに展開 ($GROOVY_HOME)
 $GROOVY_HOME/bin にパスを通しておく
7
Groovy動作確認
GVMでインストールした場合は
~/.gvm/groovy/<version> 以下に導入され、
~/.gvm/groovy/current にシンボリックリンクが
作成されます。
$ groovy -v
Groovy Version: 2.2.2 JVM: 1.7.0_45 Vendor: Oracle
Corporation OS: Mac OS X
8
Apache Camel 概要
 汎用的なシステム統合フレームワーク
 Enterprise Integration Pattens(EIP)
 EIP本が先にあり、その実装を提供する目的とか?
 OSS(Apache2.0ライセンス)
 Javaで実装、軽量(組み込み利用も可)
 DSLでルーティング・メディエーションを定義
 Java/Spring/Scala/Groovyなど豊富なDSL
 豊富な連携先(100以上?)
https://camel.apache.org/
9
Enterprise Integration Patterns
 システム統合のパターンカタログ
 http://www.eaipatterns.com/toc.html
分厚い!
10
Enterprise Integration Patterns
 以下の分類でパターンを整理
 Integration Styles (File/DB/RPC/Messaging)
 Messaging Systems
 Messaging Channels (P2P/PubSub/Bus)
 Message Construction (要求応答/Corr.)
 Message Routing (CBR/Splitter/Aggregator)
 Message Transformation (Envelope/Filter)
 Messaging Endpoints (GW/Polling/Dispatcher)
 System Management
11
Camelのアーキテクチャ
http://camel.apache.org/architecture.html
12
Component / Endpoint
 Component
 連携先ごとに用意された実装部品
 Endpoint
 CamelからComponentに連携するための
インターフェース
 Component固有のURI(URL)を定義
例) file://, twitter://
13
Camelが連携可能なシステム
http://camel.apache.org/components.html
14
Apache Camel 利用方法
 基本
 何らかの手段でCamelのライブラリを入手
 CamelContextのインスタンスを作る
 RouteBuilderでメディエーションを定義
 contextにメディエーションを追加
 context.start()
 具体的にはこのへんを参照
 http://acro-engineer.hatenablog.com/entry/2013/11/27/112423
 http://sourceforge.jp/projects/cameluserjp/wiki/%E5%88%9D%
E3%82%81%E3%81%A6%E3%81%AECamel
https://camel.apache.org/
15
ちょっと敷居高くないですか?
 いきなりMavenとか・・・
 いきなりEclipseとか・・・
 システム統合って、もっとシェルスクリプトっぽ
い使い方を期待しますよね?
 そこでGroovyですよ!
 JARの事前ダウンロード ⇒不要
 コンパイル ⇒不要
 Eclipse ⇒不要
 エディタで書いて、その場でサクッと動かせます!
16
ハンズオン
 Hello Camel (File to File)
 Timer
 DB(SQL)
 SEDA / VM
 Test
 (Twitter -> Elasticsearch)
 スクリプト以外の実行方法(Gradle)
17
サンプルコード
 GitHubで公開しています
 https://github.com/nobusue/camel-goorvy
 基本はJDKとGroovyのみで実行できます
 連携先となるソフトウェアを使う場合があります
 必要に応じて解説します
 本日のきっかけとなったエントリはこちらです
 http://saltnlight5.blogspot.jp/2012/08/getting-started-
with-apache-camel-using.html
18
Hello Camel
 適当な作業ディレクトリを作成
 サンプル: helloCamel
 ”FileCopierWithCamel.groovy”を作成
 実行
 groovy FileCopierWithCamel.groovy
 data/inbox/ 以下にファイルを置いてみる
 ログが出力され、
data/outbox/ 以下にファイルがコピーされる
 60秒後に停止
19
FileCopierWithCamel.groovy
@Grab('org.apache.camel:camel-core:2.13.0')
@Grab('org.slf4j:slf4j-simple:1.7.6')
import org.apache.camel.*
import org.apache.camel.impl.*
import org.apache.camel.builder.*
def context = new DefaultCamelContext()
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file:data/inbox?noop=true")
.to("log://camelLogger?level=INFO")
.to("file:data/outbox") }})
context.start()
Thread.sleep(60000)
context.stop()
20
実行結果
[main] INFO org.apache.camel.component.file.FileEndpoint - Endpoint is
configured with noop=true so forcing endpoint to be idempotent as well
[main] INFO org.apache.camel.component.file.FileEndpoint - Using default
memory based idempotent repository with cache max size: 1000
[main] INFO org.apache.camel.impl.DefaultCamelContext - Route: route1
started and consuming from: Endpoint[file://data/inbox?noop=true]
[main] INFO org.apache.camel.impl.DefaultCamelContext - Total 1 routes,
of which 1 is started.
[main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel
2.13.0 (CamelContext: camel-1) started in 0.541 seconds
[Camel (camel-1) thread #0 - file://data/inbox] INFO camelLogger –
Exchange[ExchangePattern: InOnly, BodyType:
org.apache.camel.component.file.GenericFile, Body: [Body is file based:
GenericFile[test.txt]]]
@Grab ???
 Groovyの言語機能の一つ
 スクリプト中に記述するだけで以下を実行
 Mavenリポジトリ等からのライブラリ取得
 クラスパスへの追加
 (必要に応じてキャッシュ)
 Grapeという管理用コマンドもあり
 Apache Ivyを利用して実装されている
22
Timer(JDK Timer)
 https://github.com/nobusue/camel-groovy/tree/master/timer
context.addRoutes(new RouteBuilder() {
public void configure() {
from("timer://jdkTimer?period=3000")
.to("log://camelLogger?level=INFO")
}
})
context.start()
addShutdownHook{ context.stop() }
synchronized(this){ this.wait() }
要件が複雑なら
Quartzコンポーネ
ントがおすすめ
23
DB(SQL)
 DBからSQLでデータを抽出
 https://github.com/nobusue/camel-groovy/tree/master/sql
 組み込みDerbyを利用
 SpringのEmbeddedDatabaseBuilder()
 実行
 groovy SQL.groovy
 data/ 以下にダンプが出力される
24
DBセットアップ
def db = new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.DERBY)
.addScript("create.sql")
.build()
def reg = new SimpleRegistry()
reg.put("myDS", db)
Camelから利用するため、
Datasourceをレジストリに
登録しておく
(JNDIでも可)
25
SQL実行 / ダンプ出力
context.addRoutes(new RouteBuilder() {
public void configure() {
from("timer://jdkTimer?period=1000")
.setBody(constant("select * from projects"))
.to("jdbc:myDS")
.process(new Processor() {
def void process(Exchange exchange) {
def body = exchange.getIn().getBody()
def newBody = []
body.each{ newBody << "${it.toString()}" }
exchange.getIn().setBody(newBody.join("¥n"))
}
}).to("file:dump")
}
})
Processor()を利用して
自由に処理できる
(TypeConverterは面倒)
http://camel.apache.org/processor.html
26
Camel内メッセージング
 Camelの内部処理はメッセージング
 メモリ上のBlockingQueueで管理
 Routeから明示的に利用する場合は以下のコ
ンポーネントを利用する
 SEDA ( seda:/ )
 単一CamelContext内のみ有効
 Staging Event-driven Architecture
 VM ( vm:/ )
 同一JVM内で共有可能
 SEDAを継承
27
Test支援Component
 Direct ( direct:/ )
 同期型endpoint
 イベントを与えないと動かない
 Mock ( mock:/ )
 イベントの履歴を記録・検証可能なendpoint
 Test ( test:/ )
 プル型のテストを実施するためのendpoint
 Mockを継承
 DataSet ( dataset:/ )
 endpointへの入力データ
 テスト時の検証データ
28
Twitter -> Camel -> ES (未完成)
 https://github.com/nobusue/camel-groovy/tree/master/twitter-
elasticsearch
context.addRoutes(new RouteBuilder() {
public void configure() {
from("twitter://search?type=direct&keywords=camel"+
"&consumerKey=xxxx"+
"&consumerSecret=xxxx"+
"&accessToken=xxxx"+
"&accessTokenSecret=xxxx")
.marshal().json(JsonLibrary.Jackson)
.to("elasticsearch://elasticsearch?operation=INDEX"+
"&indexName=twitter&indexType=tweet")
}
})
29
スクリプト以外の実行方法
 ビルド⇒JAR化してスタンドアロン実行
 Camel Maven Archetypes
 http://camel.apache.org/camel-maven-archetypes.html
 Gradleテンプレート
 https://github.com/nobusue/camel-groovy/tree/master/gradle-template
 Webコンテナに組み込む
 Servlet Tomcat Example
 https://camel.apache.org/servlet-tomcat-example.html
 Grails: Apache Camel Plugin
 http://www.grails.org/plugin/routing
30
Camelを拡張する
 Java(Groovy)クラスを直接利用
 Bean Component (bean://)
 JNDIに登録したクラスのメソッドが実行可能
 詳しくはこちら
 http://camel.apache.org/bean.html
 独自Componentを実装
 詳しくはこちら (すいませんちゃんと読んでないです・・)
 http://camel.apache.org/writing-components.html
31
Apache Camelの情報源
 本家
 http://camel.apache.org/documentation.html
 日本Apache Camelユーザ会
 http://sourceforge.jp/projects/cameluserjp/
 Apache Camel入門
 http://acro-engineer.hatenablog.com/entry/2013/11/27/112423
 Apache Camel Wiki
 http://wiki.buildria.com/camel/start
 Camel In Action の1章の適当邦訳
 http://etc9.hatenablog.com/entry/20110422/1303450895
Apache Camelの書籍
 Camel in Action
 http://www.manning.com/ibsen/
 Apache Camel Developer's Cookbook
 http://www.packtpub.com/apache-camel-developers-
cookbook/book
 Instant Apache Camel Message Routing
 http://www.packtpub.com/apache-camel-message-
routing/book
 Instant Apache Camel Messaging System
 http://www.packtpub.com/apache-camel-messaging-
system/book
http://camel.apache.org/books.html
_人人人人人人人人人人人人_
> 日本語書籍がなかったッ <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
33
ありがとうございました
https://www.facebook.com/orehiji

Más contenido relacionado

La actualidad más candente

もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
Takashi Uemura
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
 

La actualidad más candente (20)

Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
 
会社に Github導入した話
会社に Github導入した話会社に Github導入した話
会社に Github導入した話
 
OSS Product feat. Gradle
OSS Product feat. GradleOSS Product feat. Gradle
OSS Product feat. Gradle
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
Groonga族2014
Groonga族2014Groonga族2014
Groonga族2014
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12
 
SwaggerとAPIのデザイン
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
 
Git 勉強会
Git 勉強会Git 勉強会
Git 勉強会
 
Wordpress on heroku
Wordpress on herokuWordpress on heroku
Wordpress on heroku
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
 
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Django learning Part2
Django learning Part2Django learning Part2
Django learning Part2
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 

Destacado (8)

ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
 
Html5勉強会 20120423
Html5勉強会 20120423Html5勉強会 20120423
Html5勉強会 20120423
 
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockJJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
 
Groovy indy 20120222
Groovy indy 20120222Groovy indy 20120222
Groovy indy 20120222
 
Light and shadow of microservices
Light and shadow of microservicesLight and shadow of microservices
Light and shadow of microservices
 
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocpJSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
 

Similar a Gws 20140418 camel_groovy

Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
Sea Mountain
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
maebashi
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
 
長いの
長いの長いの
長いの
emasaka
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
 
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Kentaro Matsui
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
hiboma
 
Offline Hoogleで何処でもはすはす
Offline Hoogleで何処でもはすはすOffline Hoogleで何処でもはすはす
Offline Hoogleで何処でもはすはす
Kiwamu Okabe
 

Similar a Gws 20140418 camel_groovy (20)

appengine活用事例資料@TDDBC札幌2.1
appengine活用事例資料@TDDBC札幌2.1appengine活用事例資料@TDDBC札幌2.1
appengine活用事例資料@TDDBC札幌2.1
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
thymeleafさいしょの一歩
thymeleafさいしょの一歩thymeleafさいしょの一歩
thymeleafさいしょの一歩
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3Markup Template Engine introduced Groovy 2.3
Markup Template Engine introduced Groovy 2.3
 
Ruby way-openstack.keynote
Ruby way-openstack.keynoteRuby way-openstack.keynote
Ruby way-openstack.keynote
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
長いの
長いの長いの
長いの
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Hudson using Groovy #jggug
Hudson using Groovy  #jggugHudson using Groovy  #jggug
Hudson using Groovy #jggug
 
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
 
Offline Hoogleで何処でもはすはす
Offline Hoogleで何処でもはすはすOffline Hoogleで何処でもはすはす
Offline Hoogleで何処でもはすはす
 
Groovyの紹介20130323
Groovyの紹介20130323Groovyの紹介20130323
Groovyの紹介20130323
 

Más de Nobuhiro Sue

Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
Nobuhiro Sue
 
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSクラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
Nobuhiro Sue
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
 
DevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: GroovyDevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: Groovy
Nobuhiro Sue
 
G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0
Nobuhiro Sue
 
Gws sokai 20100724_nsue
Gws sokai 20100724_nsueGws sokai 20100724_nsue
Gws sokai 20100724_nsue
Nobuhiro Sue
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)
Nobuhiro Sue
 

Más de Nobuhiro Sue (18)

Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on Guide
 
Fuse Online Hands-on Guide
Fuse Online Hands-on GuideFuse Online Hands-on Guide
Fuse Online Hands-on Guide
 
Knative CloudEvents
Knative CloudEventsKnative CloudEvents
Knative CloudEvents
 
JTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusueJTF2018_B30_k8s_operator_nobusue
JTF2018_B30_k8s_operator_nobusue
 
DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711DevLove k8s nobusue 20180711
DevLove k8s nobusue 20180711
 
Gws 20140117 lt
Gws 20140117 ltGws 20140117 lt
Gws 20140117 lt
 
Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)Gws 20131018 vertx_handson(updated)
Gws 20131018 vertx_handson(updated)
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
クラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaSクラウド研究会 20120712 BaaS
クラウド研究会 20120712 BaaS
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
 
Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528Letsgo sendai nobusue_20110528
Letsgo sendai nobusue_20110528
 
DevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: GroovyDevSummit2011JGGUG OpenJam: Groovy
DevSummit2011JGGUG OpenJam: Groovy
 
G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0G*workshop 20101209 OSGi and Grails2.0
G*workshop 20101209 OSGi and Grails2.0
 
DevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGiDevLOVE 20100823 EnterpriseOSGi
DevLOVE 20100823 EnterpriseOSGi
 
Gws sokai 20100724_nsue
Gws sokai 20100724_nsueGws sokai 20100724_nsue
Gws sokai 20100724_nsue
 
G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)G*workshop sendai 20100424(v2)
G*workshop sendai 20100424(v2)
 

Gws 20140418 camel_groovy