はじめに


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

センサーデータの配信システムに関して

Arduino等のマイコンを用いてセンサーデータを得られるが、これらのデータをウェブブラウザにより表示するためのシステムを考えて行きたいと思う。センサーデータをブラウザに表示するだけなら、Arduino + Ethernetシールドをサーバーにすることで、実装が可能である。しかし、リアルタイムデータを表示するためには、動的なデータ配信が必要であり、Arduinoには並列処理をするための機構が搭載されていないため、Arduino単体では困難である。そのため、データの配信を行うためのサーバーを用意し、そこから配信を行う必要がある。また、大量のセンサーデータや大量のクライアントのコネクションが到着した場合にはサーバーに大きな負荷がかかると考えられる。そこで、その際のサーバー負荷や負荷を軽減する方法に関しても考察して行きたいと考えている。

センサーデータ配信のモデル

センサーノードとクライアントはN対Nの関係となる。一つのセンサーノードからのデータを多数のクライアントが同時受信をする、また多数のセンサーノードからのデータを一つのクライアントが受信するというモデルになっている。例えば、屋外に設置された温度センサーの値を多数のクライアントが同時に閲覧する場合や、異なる位置に設置された温度センサーの値を一つのクライアントにより閲覧することが挙げられる。

※ここでノードの図としてArduinoの写真を用いてしまったが、Arduinoはスレッド処理が実装されていないため、多数のクライアントに同時にデータを配信することは出来ない。このモデルの場合はArduinoとクライアントの間にデータ配信用サーバーをたてる必要がある。


センサーデータプロキシサーバーを用いたモデル

上記のセンサーデータ配信モデルでは、ノード毎にセンサーデータ配信用のサーバーをたてる必要がある。しかし、センサーデータにインターネット上からアクセするためには、グローバルIPアドレスが必要である。またネットワークの設定を行う必要、サーバーの管理を行う必要があり、非常にコストがかかる。そこで、センサーデータのプロキシサーバーを用いたモデルを提案する。

プロキシサーバーを用いた場合のメリット

  • 個人でサーバーをたてる必要がなくなるため、サーバーの管理コストがなくなる
  • グローバルIPアドレスの取得やポート解放を行う必要がなくなる
  • Arduino + Ehternetシールドの構成でセンサーデータをインターネットに配信する事が可能になる

個人でセンサーデータ配信用のサーバーをたてる事は非常にコストがかかるが、プロキシサーバーを用いる事でセンサーデータ配信を簡単に行う事が出来るようになると考えられる。