イノベーションジャパン終了

○イノベーションジャパン
三日間に渡って開催された(出展者は準備を含めて四日間)イノベーションジャパンが終了した。
北川研究室のブースに来てくれた人はほぼ研究員やデータストリームやセンサネットに関する知識が豊富な人たちだった。
主に質問された内容は以下の二つ
・どの程度のデータストリームを処理することができるか
・どのようなサービス、アプリケーションを想定しているか
細かくは、
・ネットワークカメラからの映像は途切れることなく、配信できるか
・sunspot間の通信はどのようにしているか
・海外のストリーム処理エンジンとの違い

説明の流れは以下のように決めて話した。
1、近年、センサやカメラなどからデータが逐次配信される(ユビキタスな)環境を想定しています。利用者はたくさん入ってくるデータに対して何らかのサービス、アプリケーションを作りたという要求があります。しかし、利用者が一からこのような要求を満たすプログラムを書くのは非常に困難です。そこで、我々は利用者の負担を減らすべく、(ユビキタス社会に対する)基盤システムの研究・開発をしています。基盤システムの名前はStreamSpinnerです。

2、StreamSpinnerのGUIとパンフレットを使いながら、StreamSpinenrのアーキテクチャを説明する。ポイントは以下
・センサ、GPS,カメラからの異なる形式のデータをStreamSpinner内部で表形式のデータに変換することで、統合して利用できる
・StreamSpinenrは主記憶上で動作するので、変換したデータを処理することができる
・DBMSも表形式でデータを扱っており、DBMSと連結した処理も可能となっている。StreamSinnerに到着したリアルタイムなデータの中から、利用者が永続的にディスクに書きだしたいデータをDBMSに保管したり、逆に、DBMSに登録していた過去のデータと現在のデータストリームとの類似度を比較して、条件を満たせば利用者に渡してあげることもできる

3、多くの利用者からの問合せ要求を一台のStreamSpinnerで処理をするには、負荷が大きい。問合せ処理を分割し、複数のStreamSpinnerでその分割した処理を連結して処理させることで、付加分散をすることができる。分散の目的は他にも、処理の高速化などが考えられる。分散のデモはクラスタマシン

4、しかし、問合せ要求を各StreamSpinnerで分散処理している最中にどこかのStreamSpinnerが動作しているマシンに不具合が生じると、StreamSpinnerは主記憶上で動作しているのでデータが消滅してしまう。そこで、現在の動作中の状態をバックアップのマシンにおくっておき、分散処理中のマシンに不具合が生じた場合でも、代わりにバックアップマシンが動作を引き継ぐことで、利用者からの問合せ要求を止めることなく、動作を継続することができます。

5、最近は、アプリケーションの立場にたった機能をStreamSpinnerに追加しました。それは、データストリームを配信する情報源を動的にStreamSpinnerが切り替える機能です。従来は、利用者が指定した情報源からのデータストリームのみを連続的に処理をしていましたが、時間の経過とともに、利用者の興味のある情報源が移り変わる場合があります。たとえば、今の時刻ではカメラ1の映像を処理したいですが、時間がたつと別のカメラからの映像が欲しいというような状況が考えられます。
このような状況(アプリケーション)として、登下校中の児童の移っている映像を親御さんに見せてあげるというようなアプリを考えます。前提として、登下校の道にはネットワークカメラが配置されており、児童は携帯電話のGPSからその位置情報をStreamSpinnerに毎秒配信しているような状況を考えます。児童の移動に伴い、親御さんの見たい児童が移っているカメラは移り変わります。このようなアプリには、児童の移動に合わせて動的にカメラを切り替える機能がStreamSpinnerに必要となります。これを情報源の動的選択機能と呼び、そのデモはこちらとなります。こちらのデモは小規模ですが、追跡人物の移動に伴いカメラを動的に切り替えている様子がわかります。先ほどのデモは規模が小さいので、シュミレーション環境上でもデモを行いました。ネットワークカメラを100台、GPSをつけた移動人物を1000人シュミレートしました。位置情報にはIDが含まれており、追跡人物を選択することができます。このデモでは1000人の中から、一人をセレクションして、追跡しています。IDを元に、多人数を同時に追跡することもできます。しかし、映像データはデータストリームの中でもデータ量が大きいものとなっており、一台のStreamSpinnerでは最大カメラ7台の接続が限界となっています。
多人数を同時に追跡する場合や、多くの利用者(親御さん)の問合せ要求に応えるには、分散して処理をする必要があります。
(ここからは、iDBで発表する内容。後日の日記へ)

6、StreamSpinnerはマシン、OSにとらわれずに、Javaがあれば動作をすることができます。最近、sunspotと呼ばれるJava MEが動作する小型マシンが出ており、この中にStreamSpinnerを組み込むことができています。また、sunspotは実世界から光、温度、加速度を収集することができます。今、このサンスポットでは、streamspinnerが動作しており、加速度がある一定以上の時に親機にデータを通知しろという問合せをハードコーディングしています。今は加速度0なので、親機にデータを通知していませんが、振れば通知されます。sunspotとstreamspinnerを連携して色々なアプリケーションが考えられると思いますが、例えば、ドアにsunspotをつけといて、誰かが入室したという情報が加速度から得られます。それをstreamspinnerに渡してやり、情報源の動的選択機能を用いて、部屋の中のネットワークカメラに接続をし、部屋の中(入った瞬間)のリアルタイムな映像を取得することができます。

7、最後にまとめますが、StreamSpinnerは大きく2つの特徴を持っています。(他にもあるか?)
a、データストリームを主記憶上で高速に処理し、リアルタイムな処理結果を利用者に配信することが出来ます。
b、データを表形式に変換して処理することで、センサ、GPS,カメラ、DBMSなどの異なる情報源を統合して処理することが可能となっています。

8、今後は、オープンソース化を進めていきます。現在、DBMSは静的なデータを扱う基盤システムとして世の中に定着しました。それは、DBMSを用いた多くのアプリケーションが生まれたからです。(検索エンジンなどなど)オープンソース化をすることにより、様々な分野の利用者から多くのアプリケーションを想定した利用をしていただければ、我々のStreamSpinnerも次世代の(ユビキタス社会の、データストリームに対する)管理基盤として、価値を高めることになると考えています。

追加)国内ではデータストリームに対する基盤システムの研究は我々の研究室のみで行っていますが、海外では、MIT,Stanford,brown大学があります。彼らは、大学発ベンチャーとして自分たちでアプリケーションを考え、製品として売り出しています。

長くなったが、このような話のストーリーを決めて、聴講者に話していた。NEC,日立の人が来た時には、それぞれの会社でやっている人物追跡や、u-Cosminexus, WebOTX, 高速道路の車状況測定などの話を交えた。
ゼミや講演 | - | -
calendar
recommend
データベースシステム (情報系教科書シリーズ)

データベースシステム (情報系教科書シリーズ) | 北川 博之

一番のお勧めです!数学の面から詳しくデータベースに関して説明をしてくれています。データベースは理論が大事ですので、難しいですが、学習の大きな手助けとなります。

recommend
トランザクション処理〈上〉―概念と技法

トランザクション処理〈上〉―概念と技法 | ジム グレイ
アンドレアス ロイター

ジムグレイが書いた上下巻の厚い本。トランザクションについて細かすぎるほどに書いてある。きちんと読めていないので、ちゃんと読みます

recommend
珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造 | ジョン ベントリー

プログラミング言語に捉われず、アルゴリズムの面から丁寧に説明してくれている。面白く読める本

recommend
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series) | マーチン ファウラー
Martin Fowler
児玉 公信
平澤 章
友野 晶夫
梅沢 真史

プログラミング作法の一つのリファクタリングの本。前半よりも後半がためになった。リファクタリングの本では結城さんの入門書も良かった

recommend
内定勝者 私たちはこう言った! こう書いた! 合格実例集&セオリー2009 面接編

内定勝者 私たちはこう言った! こう書いた! 合格実例集&セオリー2009 面接編 | キャリアデザインプロジェクト

就職活動する前には必見の本。面接官への伝え方がかなりレベルアップする。就活生にはお勧め

selected entries
categories
archives
profile
others