2015年2月26日 dsthhub...

Post on 21-Jul-2015

389 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

土岐 拓未

2015年4月17日 dstnHUB

2015年4月リリース予定

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

アジェンダ

1.Thunderbusとは?

Thunderbus開発のきっかけ

データ処理

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

クラウド

オンプレミス

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

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

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

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

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

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

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

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

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

2015年4月リリース予定

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

ファイル

クラウド上にThunderbusServerを稼働

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

Agentファイル

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

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

Agentファイル

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

Thunderbusを使った連携

クラウド

オンプレミス

処理 Server

Agentファイル

Thunderbus Server&Agent

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

クラウド

オンプレミス

処理 Server

Agentファイル

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

デモ

クラウド

オンプレミス

処理 Server

Agent

Thunderbus 今後

データベース・Webサー

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

DB

Webサーバー

Thunderbusの特徴

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

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

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

2.DataSpiderThunderbusコネクタ

×

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

クラウド

オンプレミス

Server

Agent

DataSpider Thunderbusコネクタ

ファイル

簡単な設定でThunderbus

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

DataSpider Thunderbusコネクタ

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

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

ファイルトリガー

CSVアダプタ

Excelアダプタ

固定長アダプタ

可変長アダプタ

ファイル操作アダプタ

デモ

ブラウザ

Server

Agent

デモ環境

Excelファイル

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

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

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

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

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

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

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

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

×

ぜひお試しください!

3. Thunderbusインターナル

Thunderbus通信部分

Server

Agent

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

WebSocket

WebSocket

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

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

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

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

WebSocket通信イメージ

GET

HTTP 101 Switching Protocol

WebSocket使用を宣言

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

るHTTPレスポンスを返す

WebSocket通信を開始

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

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

WebSocket通信

JavaにおけるWebSocket

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

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

AS・・・

実装例

JSR 356のポイント

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

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

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

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

実装した感想

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

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

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

– 簡単に計測した結果、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

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

結論

が、利用には注意点も

WebSocket通信イメージ(再掲)

GET

HTTP 101 Switching Protocol

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

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

WebSocket通信

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

GET

HTTP 101 Switching Protocol

WebSocket通信

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

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

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

Thunderbusでの対応

注意点2メタ情報問題

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

パス情報

パラメータ

HTTPヘッダ

ボディ

メッセージボディ

HTTP WebSocket

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

Thunderbusでの対応

2015年4月リリース予定

よろしくお願いします!

top related