ビジネス課題への解決策(アイディア)と、新たな発想(+α)が見つかるIT情報メディア

Menu
  1. TOP
  2. データ活用
  3. リアルタイム分析とリアルタイム通信

リアルタイム分析とリアルタイム通信

  • LINEで送る
  • このエントリーをはてなブックマークに追加

リアルタイムで大量データを分析する場合、利用シーンなどを色々と考えていると、いくらリアルタイムで分析できても、利用者に分析したデータをリアルタイムで提供できないと効果が薄くなってしまうだろうなと思うことがありました。
例えば、株価の動きをリアルタイムで分析して、値上りしそうな銘柄を株取引している方へ表示するようなシステムの場合、いくら分析側の処理を早くしても、表示側の処理が遅いと実際に株取引をする時には値上りしそうな銘柄でなくなってしまうことも考えられます。
このような場合、分析処理のリアルタイム性も重要ですが、分析結果を提供する際のリアルタイム性も重要だということです。

今回は情報をリアルタイムに配信する際に必要な技術として、リアルタイム通信技術について3つピックアップしてまとめてみました。

1.Websocket

Webにおいて、クライアントとサーバー間が双方向通信を低コストで行う仕組みです。
一般的なクライアント・サーバーの通信で使われるHttp通信では基本的にはクライアントからのリクエストをサーバーがメッセージを返却しますが、双方向通信では、サーバーが主導になりサーバーからクライアントへプッシュでメッセージを送ることが可能になります。
http通信でもCommetと呼ばれるロングポーリングの技術で、擬似的に双方向通信を行うことは可能ですが、通信コストが大きくあまり実用的ではありませんでした。
Websocketの登場により、サーバーからクライアントへのリアルタイムな情報配信が低コストで実装することが可能になりました。

先述の株価のシステムなど、多数のクライアントへサーバーからリアルタイムに情報を配信するような仕組みに適した技術といえると思います。

2. WebRTC

Websocketのクライアント・サーバー間の双方向通信する仕組みに対して、WebRTCはサーバーを通さずに複数のクライアント間で通信する仕組みです。
ブラウザを使ったビデオチャットなどに使われる技術なのですが、映像や音声のデータはサーバーを通さずにブラウザ間で直接行われるため、サーバーへの負荷が大きくならず実装も比較的容易です。
ただし、iOSのデフォルトブラウザであるSafariは対応しておらず、iOSで使う場合はBowserというオープンソースのブラウザを使用する必要があります。

Bowser 
http://www.openwebrtc.io/bowser/

3. MQTT

MQTT(Message Queue Telemetry Transport) は、Message Queueなど使われるpublish/subscribeモデルに基づく軽量なメッセージプロトコルで通信する仕組みです。
不安定なネットワーク上でも動作するための機能や非力なデバイスで動くための軽量化などが特徴です。通信効率がHttpに比べて圧倒的に良いので、マシンデータやセンサーデータを通信する際に活躍するプロトコルです。

この技術自体は2000年頃に出てきているそこまで新しい技術ではありませんが、IoTが話題に上がり始めた頃から再度注目を浴びてきています。 
MQTTは今まで紹介した2つの技術とは違い、httpではないプロトコルを使うため、基本的にMQTTを使う時のクライアントはブラウザ以外のものになります。
家電の中に組み込まれるセンサーや車載センサーなどとサーバーの間でメッセージをやり取りする際に使用されるような用途がイメージしやすいのではないかと思います。

また、Websocketと組み合わせることで、WebブラウザからMQTTサーバーと通信する方法もあるようです。 

Paho WebSockets 
http://wiki.eclipse.org/Paho/Paho_Websockets

まとめ

今回取り上げた3つの技術は、特に真新しいわけではなくここ数年で話題になってきていて、ようやくここ最近で色々なところで実用されてきている技術です。
3つの技術の共通点:リアルタイムな通信を低コストで行うために使われる技術ということですが、それぞれ特徴、用途や通信を行うデバイスが違っています。
これらの技術を正しく理解して、リアルタイム分析と合わせて最適なリアルタイムコミュニケーション技術を選択することで、よりリアルタイム性が高いシステムを構築することができるのではないでしょうか。

参考:

Websocketについて調べてみた

HerokuのWebSocketでC10Kに挑戦(前篇)

MQTTについてのまとめ

ビデオチャットもさくっと作れる! WebRTCによるブラウザ間リアルタイム通信はじめの一歩

追記:Waha! Transformer 製品サイトの関連コンテンツ

API とは 2025年の崖と未来をつなぐ架け橋

データの抽出や加工、連携にお悩みではありませんか?

20年以上の実績に裏打ちされた信頼のデータ連携ツール「Waha! Transformer」で、自社に眠るデータを有効活用。まずは無料のハンズオンセミナーや体験版で効果を実感していただけます。

> 純国産ETLツール「Waha! Transformer」

Waha! Transformer
メールマガジンの登録はこちらから
メルマガ登録 お問い合わせ