モニタリング アプリ開発

MIT App InventorとはもともとGoogle Labsで公開されているAndroidアプリを作成ツールです。 今MITに移管された。プログラミングを専門的に学んだことがない学生がプログラムの作り方の基礎を学ぶために作られました。アメリカでは高校やコンピュータサイエンスを専門としない大学での授業でも利用されています。

モニタリング アプリ はMIT App Inventorで開発し、エッジクラウドとTinyWebDB APIを用いて通信し、データの確認と修正、削除は可能であり、そして可変ゲインアンのゲインの設定もできる。

デザイン画面

画面の上部はタグとStoreするためのデータ入力領域、そして中間は生体データ表示エリア、下部はサービスのステータスと生の受信データの表示エリア。

図 4.7 Appデザイン画面

ブロック一覧画面

ブロック一覧画面はアプリの処理を記述する。

 

主な処理

Button_Get.Click 処理ブロック

指定したWebサービスのURLから、TinyWebDB APIを通して、指定してTagのデータを取得する。このアプリでは、生体データの取得に利用する。

 

Button_Store.Click 処理ブロック

指定したWebサービスのURLから、TinyWebDB APIを通して、指定してTagのデータを保存する。このアプリでは、可変ゲインアンプに対して、ゲインの設定を指示する。

 

TinyWebDB1.GotValue

TinyWebDB APIからデータ取得後の処理。 生体データの取得した場合はデータを描画する。

図 4.8 Appブロック一覧画面

 

アプリの実行画面は図 4.9 に示すように、Button_Getをクリックすると、最新の6秒間のデータ描画が確認された。

アプリの実行画面

図 4.9 アプリの実行画面

Raspberry PiでUPD構築

エッジクラウドは通信防御に必要なより高度なセキュリティ機能が代行する。エッジ層はデータの一時保存と転送のみ行う、データ蓄積、共有する機能はクラウド層に任せる。そのため単純な構造のコンピューターRaspberry Piでも十分機能する。

 

Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピューター。イギリスのラズベリーパイ財団によって開発されている。学校で基本的なコンピュータ科学の教育を促進することを意図している。

図 4.5 Raspberry Pi 

Raspberry Piセットアップ

Raspberry PiはDebianというOSを利用する。予めシステム入れたメディアを購入する、またはOSのファイルをダウンロードし、メディアにセットアップする。

LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。動的なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。

それからRaspberry PiにLAMP環境構築してください。

Web サービスの構築

Webサーバに、われわれはTinyWebDB APIを実装したプログラムをインストールすることでTinyWebDB機能を備えるWebサービスも構築可能である。TinyWebDB APIはWeb管理画面が備え、データの確認と修正、削除は可能である。

見守りデータに特化したデータ処理が必要のため、われわれは上記プログラムをカスタマイズしたプログラムもGitHubリポジトリから取得可能である。

カスタマイズしたTinyWebDB APIプログラムは、データ受信すると、見守りデバイスの一覧が表示でき、デバイスのタグ名、サイズ、ソフトのバージョン、IPアドレス、可変ゲインの設定値、データの数、実際に受信したデータの数と日時状態が容易に判別できる。

データ確認画面:

http://noise.uc4.net/tags.php

 

図 4.6 カスタマイズしたTinyWebDB APIのWeb管理画面

 

蓄積した生体信号のデータの表示機能を備えている。

図 4.7 生体信号のデータの表示

Ubi-健康管理(Ubi-Care)

ユビキタス健康管理のUbi-Careフレームワークは、健康データに特化したUPDである。様々個人健康データのセンサーデバイスで構成するセンサーデバイス層、そして個人健康データを集める、初期処理を行うエッジ層、データ蓄積、共有するクラウド層はお互い独立、オープンなAPIで相互接続する。

図 3.1 Ubi-care 分散型フレームワーク

 

健康データのセンサーが生成するデータ量は多いが価値密度は低く、エッジ層で分散機械学習を行うことによってその価値密度を向上させるとともに、エッジ層で処理することで低レイテンシを実現、ワイヤレス送・受信するための消費電力も大幅軽減可能だ。

データ通信をエッジ層に留めることでプライバシを保護するということが可能に。リソース限定された単独のデバイスの重要なデータや機密データをより安全な環境下で保護する。

UPDフレームワーク

ユビキタス個人データストアUPD(Ubiquitous Personal Datastore)

IoTデバイスから続々とセンサーデータが大量に生成された。しかしIoTデバイスの性能によりセンサーデータ送・受信の軽量化が求められている。

センサーからの大量データがそのままクラウドへ送る場合は遅延が問題になり、またデータ通信のセキュリティが求められ、しかしIoTデバイスのマイクロコントローラは強力な暗号化のために処理能力と電力を消費する余裕はない、データ送・受信プロトコルの軽量化が困難である。この問題を対処するには、センサーの近くにエッジサーバを配置して、さらにエッジサーバにはデータとアプリの分離する、個人データストアUPDフレームワークを提案する。

 

個人データストアUPDは単純のUPD-APIがもちWebデータベース、IoTデバイスからのデータ送・受信は容易になり、保存したデータは共通のAPIで再利用可能。例えば可視化アプリケーションでデータを可視化する、または解析アプリケーションでデータから価値ある情報を見出す。

 

クラウドには、個人データはPOD(Personal Online Datasore)に保存する。POD連携アプリケーションは必要なUPDデータのみPODにアップロードする。PODは対応のアプリケーションを通して指定の相手にデータ共有するができる。

 

UPD、PODとそれに対応するアプリケーションでUPDフレームワークを構成する。UPDとそのフレームワーク利用によりセンサーデータ送・受信の軽量化と転送遅延、セキュリティ両立できる。

 

マイクロコントローラは強力な暗号化のために処理能力と電力を消費する余裕はないので、防御に必要なより高度なセキュリティ機能は、近隣のEdge Cloudが代わりに実行する。

図:UPDフレームワーク

 

このようにユビキタス個人データストアUPD(Ubiquitous Personal Datastore)は、センサー、フォグ、クラウドの三層構造で構成されたデータとアプリ分散型のフレームワークである。

 

この三層構造のメリットは、IoTデバイス電力を消費、データ高度なセキュリティための強力な暗号化、大量データ転送するための低レイテンシを両立させた。

 

IoTデバイス層はデータの収集と転送を専任。リソース限定されたデバイスでも利用可能、消費電力の削減にも役に立つ。

 

エッジ層は防御に必要なより高度なセキュリティ機能が代行する。エッジ層はデータの一時保存と転送のみ行う、単純な構造のサーバでも十分機能する。

データ蓄積、共有する機能はクラウド層に任せる。PODの共有について、World Wide Webの創始者、Tim Berners-Leeが新しいプロジェクトをSolid PODというプラットフォームを参考してください。