2015年2月26日 dsthhub...

49
株式会社アプレッソ 開発部 2 グループリーダー Thunderbus チーフディベロッパー 土岐 拓未 2015417dstnHUB

Upload: dstn

Post on 21-Jul-2015

389 views

Category:

Software


2 download

TRANSCRIPT

Page 1: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

株式会社アプレッソ開発部 第2グループリーダーThunderbusチーフディベロッパー

土岐 拓未

2015年4月17日 dstnHUB

Page 2: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

2015年4月リリース予定

Page 3: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

1. Thunderbusとは?2. DataSpider Thunderbusコネクタ3. Thunderbusインターナル

アジェンダ

Page 4: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

1.Thunderbusとは?

Page 5: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

Thunderbus開発のきっかけ

Page 6: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

データ処理

コンピュータ-は「データ」を「処理」する

Page 7: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

クラウド

オンプレミス

クラウド時代の2つのコンピューティング環境

Page 8: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』
Page 9: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

• クラウド側にAPIが用意されていることが多い

• インターネット経由で利用しやすい• DataSpiderでも多数のアダプタがリリース

Page 10: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

• オンプレミスのデータへの接続方式は一般には提供されていない

• VPNなどのインフラ設定が必要

• DataSpiderではMicrosoft AzureAppfabricトリガーのみ対応

Page 11: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

マシンパワーを必要する処理はクラウド上の仮想マシンで

オンプレミスに置いておきたいデータはオンプレミスに置いたまま

もっと簡単にデータ連携ができる方法は?

Page 12: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

2015年4月リリース予定

Page 13: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

ファイル

クラウド上にThunderbusServerを稼働

Page 14: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

Agentファイル

オンプレミスのマシンにThunderbus Agentをインストール

Page 15: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

Agentファイル

クラウド上のThunderbusServerにHTTPS(WebSocket)で接続

Page 16: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

Agentファイル

Thunderbus Server&Agent

が処理を中継してデータ連携を行う

Page 17: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

クラウド

オンプレミス

処理 Server

Agentファイル

Thunderbus v1.0 WebDAVサーバーとしてオンプレミスのファイルを処理

Page 18: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

デモ

Page 19: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

クラウド

オンプレミス

処理 Server

Agent

Thunderbus 今後

データベース・Webサー

バーへのアクセスも可能に拡張予定

DB

Webサーバー

Page 20: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

Thunderbusの特徴

• オンプレミスのデータにクラウドからセキュアにアクセス可能

• VPNなどのネットワーク設定不要。サーバーへのHTTPS通信のみで双方向処理を実現

• 簡単な設定でThunderbus Agentを追加可能。接続先の増加にもスピーディに対応

Page 21: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

2.DataSpiderThunderbusコネクタ

Page 22: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

×

Page 23: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

クラウド・オンプレミスを意識しないシームレスなクラウド連携基盤

Page 24: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

クラウド

オンプレミス

Server

Agent

DataSpider Thunderbusコネクタ

ファイル

簡単な設定でThunderbus

を利用したクラウド・ファイル連携が可能

Page 25: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

DataSpider Thunderbusコネクタ

Thunderbus AgentのファイルをDataSpiderファイルシステム内にマウント

Page 26: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

DataSpiderの多様なファイル連携機能をすべて使用可能

ファイルトリガー

CSVアダプタ

Excelアダプタ

固定長アダプタ

可変長アダプタ

ファイル操作アダプタ

Page 27: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

デモ

Page 28: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

ブラウザ

Server

Agent

デモ環境

Excelファイル

HTTPトリガーでExcel情報取得スクリプトを実行

取得したExcelの情報を返してHTML内に表示

Page 29: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

利用例1 Excel-クラウド連携

各拠点で入力されたExcelファイルをThunderbus経由で自動でkintoneに登録

Page 30: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

利用例2 店鋪 - 本部間データ連携

多店舗展開する企業の拠点データのデータバックアップ、データ同期、データ配布を自動化

Page 31: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

利用例3 グローバル拠点間連携

ネットワーク敷設が困難なグローバルな各拠点間・本社システムのデータ連携を実現

Page 32: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

×

ぜひお試しください!

Page 33: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

3. Thunderbusインターナル

Page 34: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

Thunderbus通信部分

Server

Agent

オンプレミス→クラウドへのHTTPS通信のみで、双方向通信を実現

Page 35: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

WebSocket

Page 36: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

WebSocket

• クライアント⇔サーバーの双方向通信を実現するためのプロトコル

• 通信の確立にHTTPを使用、その後独自プロトコルで双方向通信を行う

• もともとHTML5の一部として仕様策定が進められていたが、その後独立

• 2011年にRFC6455として標準仕様が確定• 近年のWebサービスにおいてサーバープッシュの通信を行うための標準技術となっている

Page 37: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

WebSocket通信イメージ

GET

HTTP 101 Switching Protocol

WebSocket使用を宣言

する特殊なヘッダを付与してHTTPリクエスト プロトコル変更を通知す

るHTTPレスポンスを返す

WebSocket通信を開始

任意のタイミングでサーバー/クライアントどちら

からでもメッセージ送信が可能

WebSocket通信

Page 38: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

JavaにおけるWebSocket

• 2013年6月にリリースされたJava EE7でJSR356としてWebSocketのJavaにおけるAPI標準仕様が策定–それまでは各Webコンテナごとの独自実装がされていた

• 現在では主要WebコンテナがJSR356に対応済– Tomat、jetty、GlassFish、WildFly、WebSphere

AS・・・

Page 39: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

実装例

Page 40: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

JSR 356のポイント

• アノテーションを使用した簡潔な記述

• Server、Client双方でほぼ同じ実装で記述可能

• 実装ライブラリを意識せずに実装が可能

→ライブラリの切り替えが容易(JDBC的なイメージ)

Page 41: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

実装した感想

• 学習コストが低く、簡単な動作まではごく単純な実装で可能

• メソッドの呼び出し方法がさまざまな利用形態が想定されており、フレキシブルに使用できる

• プロキシ超えも可能(対応していないライブラリもあり)• 多数のメッセージ送信を行った際のパフォーマンスが良い

– 簡単に計測した結果、HTTPロングポーリング(Comet)の1.3倍~2倍– OracleのブログにはRESTと比べて数十倍の性能差という記述も

Oracle Web Logic Channel「Java EE 7新機能の目玉「WebSocket対応」、「バッチ処理」をアルン・グプタが解説──Java Day Tokyo 2013レポート 」より引用https://blogs.oracle.com/wlc/entry/javaee_c151

Page 42: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

インターネットを利用した双方向通信はWebSocket!

結論

Page 43: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

が、利用には注意点も

Page 44: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

WebSocket通信イメージ(再掲)

GET

HTTP 101 Switching Protocol

任意のタイミングでサーバー/クライアントどちら

からでもメッセージ送信が可能

WebSocket通信

Page 45: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

注意点1 リクエスト-レスポンス問題

GET

HTTP 101 Switching Protocol

WebSocket通信

この間にレスポンスを必要とする通信を行おうとしても、プロトコルでは規定されていない→単純なメッセージ送信のみ

Page 46: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

リクエスト-レスポンス方式の通信を行おうとする

場合、レスポンスを保証するための独自実装で対応

Thunderbusでの対応

Page 47: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

注意点2メタ情報問題

• 単純なテキスト/バイナリメッセージであるためHTTPのようなメタ情報を付与できない

パス情報

パラメータ

HTTPヘッダ

ボディ

メッセージボディ

HTTP WebSocket

Page 48: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

独自フォーマットのメッセージ形式を策定して、メタ情報を同時に送信できるように対応

Thunderbusでの対応

Page 49: 2015年2月26日 dsthHUB 『オンプレミスとクラウドをシームレスに"つなぐ" 新製品「Thunderbus」の全貌』

2015年4月リリース予定

よろしくお願いします!