パソコンが出現してからは 一般の人間が家庭でも様々な用途に計算機を使うようになり、 最近では 存在が意識されることなく計算機が利用される機会も非常に多くなっている。 近視の人間が眼鏡を利用するように、 高速に移動できない人間が自動車を使うように、 弱点の克服という目的で計算機が使われることも多くなってきている。 ひと昔前は 機械を扱うことを最も得意とする人間だけが計算機のユーザであったのに対し、 現在は 機械の操作を最も苦手とする人間が計算機の最大ターゲットになりつつあり、 計算機の進化が量的な変化から質的な変化に転換しつつある激動期だといえるだろう。
計算機の使われ方が質的に180度転換しつつある現在であるが、 計算機を利用するためのユーザインタフェース技術には質的な大きな変化は起こっていない。 計算機の大きさやディスプレイ装置は大きく変化したが、 創成期の計算機の入力装置と現在のパソコンの入力装置は機能的にそれほど違うわけではない。 真に質的な変化を実現させるためには、 現在一般的なキーボードやディスプレイを使う操作体系を一新する必要があるが、 そのようなトレンドが現在 「ユビキタスコンピューティング」という言葉で表現されている。
あらゆる人間が計算機ユーザとなることを考えると、 「いつでもどこでも」計算機が使えるだけでは不充分で、 「いつでもどこでも誰でも」使える計算機が必要になる。 装置や住居を「誰でも」苦労なく使えるようにする 「ユニバーサルデザイン」という考え方が近年注目されているが、 これはユビキタスコンピューティングの考え方と親和性が高い。 現状の「ウェアラブルコンピューティング」は 特殊な人が特殊な用途に使うような匂いがあるが、 ユビキタスコンピューティングの究極の姿は ユニバーサルデザインと同じ方向を向いており、 「いつでもどこでも誰でも」使える機器を目指しているといえるだろう。
キーボードやディスプレイ以外の装置を利用して、 実生活の中で計算機を使えるようにする手法は 「実世界指向インタフェース」と呼ばれていた。 現在の計算機インタフェースはキーボードやディスプレイを使う グラフィカルユーザインタフェース(GUI)が主流であるため、 これら以外の装置を使うインタフェースのことを このように称していたわけであるが、 今後「実世界」で計算機を使うことがあたりまえであることが認識されるにつれ、 このような言葉が使われる機会は減ってくるであろう。 自働ドアや照明スイッチのように、 すでに実世界で広く利用されている装置も存在するが、 ユビキタスコンピューティングで利用したい汎用計算機は まだそのレベルに達していないといえるだろう。
計算機は人間の様々な要求を満たすために利用されるが、 計算機ハードウェアやネットワークがいくら進化しても、 人間の欲求は急激に変化するとは思われない。 最近のインターネットの進歩によって、 テレビや映画を見たり/ レストランを捜したり/ その場所の地図を調べたり/ メールやチャットで友達と通信したり することが簡単になってきたが、 こういった情報のやりとりは、 計算機やネットワークが存在する前から人間がずっとやってきたこととほとんど変わっていない。 結局人間の要求というものは、 美味しいものを食べたい/ 友達と話をしたい/ 面白い話を見聞きしたい/といった単純なものが多く、 こういう要求は昔も将来もそう大きく変わることはないだろう。 このような人間の要求の大部分は 検索とコミュニケーションだと考えられる。 実際、パソコンの現在の最も重要なアプリケーションは 検索とコミュニケーションであり、 将来もこれは変わらないであろう。
検索というと パソコンのファイル検索やGoogleのようなWeb上のサービスが頭に浮かぶが、 実際は計算機を利用する仕事の大部分は検索操作であるといえる。 たとえばメールを書くという作業は 検索と全く関係無いと思われるのが普通であるが、 作業を分けて考えてみると、 メールソフトを捜す/ メール作成ボタンを捜す/ 送り先アドレスを捜す/ 送るべきメッセージを捜す (入力する)/ 添付ファイルを捜す/ 送信ボタンを捜す/ といった検索作業の繰り返しであることがわかる。 文章を作成する作業は検索とは認識されないのが普通であるが、 かな漢字変換は単語の読みから漢字を検索することだと考えると、 文字入力もその大部分は検索作業だということになる。 そもそも計算機を操作するために用意されているGUI部品は 何かを検索するために使われているものばかりである。 メニューやアイコンはプログラムや機能を捜すものだし、 フォルダは階層的分類にもとづいて情報を捜すために利用されているし、 スクロールバーは画面に入りきらない情報から必要な部分を捜すものである。 また、実生活においても検索は重要である。 たとえば休日の行動について考えてみると、 良いレストランを捜す/ 良い音楽を捜す/ 面白い番組を捜す/ 面白い映画を捜す/ 面白いニュースを捜す/ 聞きたい音楽を捜す/ 面白い展覧会を捜す/ 掘り出し物を捜す... といった行為はすべて検索行為である。 計算機の作業も日常生活も 人間の生活の多くの部分は検索行為であるから、 ユビキタス環境でも検索行為がが非常に重要であることは間違いない。
携帯電話やパソコンのキラーアプリは常に メールやチャットのようなコミュニケーションシステムであった。 メール/掲示板/SNSのなどのシステムを利用したコミュニケーションは インターネットの利用の大きな部分を占めている。 また、電話や携帯電話によるコミュニケーションは 多くの人間の生活になくてはならないものになっているし、 どのような世界でどのような環境であったとしても、 人間生活では様々なコミュニケーション手段が非常に重要である。 どのような環境であってもこれは同様であり、 将来出現するであろう様々な機器もコミュニケーション用途に 積極的に活用されることは間違いない。 ユビキタスコンピューティング環境においては、 誰でもどこでもいつでも活用できる 新しいコミュニケーション手段の出現が期待される。
ユビキタスコンピューティング環境中で情報の流れを自由に制御することが可能になれば、 情報を検索して利用したり他人とコミュニケーションしたりすることが自由にできるようになる。 情報の取得/交換/発信のような情報の流れを自由に制御するための 装置や対話技術が 今後のインタフェース技術において最も重要な要素となるであろう。
現在広く利用されている入力装置は利用条件が限定されており、 多様なユビキタス環境で利用することができない。 普通のキーボードやマウスは 濡れた手で扱うことができないので、 台所や風呂では使うことができないし、 歩いているときや電車に乗っているときも 利用することができないため、 「いつでもどこでも」とはほど遠い状況にあるといえるだろう。 これまでのインタフェース研究の多くは 机の上に置いて使うキーボードやマウスのような装置の利用が前提となっており、 ユビキタス環境で利用できる装置や操作手法の提案はまだまだ充分ではない。
一方、実世界で広く利用されている 自動ドアは、 ユビキタス環境におけるユーザの要求に答えるために センサを有効に利用したインタフェースの好例であろう。 「建物に入りたい」というユーザの要求をなんらかの方法で検知して ドアを開けたいわけだが、 「人が建物に入るときは建物に近付くものである」 という一般的事実を利用し、 人感センサの検出結果に応じてドアを開けるというマッピングが 行なわれている。 建物に入りたいとき建物に近付くという行為は一般的なものであり、 わざわざ考えたり記憶したりする手間がほとんど無いために、 自動ドアはユビキタス環境における透明なインタフェースとして 成功しているのだといえるだろう。
このような単純なシステムであっても、 センサの場所が少し変わるだけで使い勝手は大きく変化する。 下の写真は英国でみかけた自動ドアであるが、 ドアを開けるためにはドアの左側のボタンを押さなければならない。 ドアを開けるために離れた場所のボタンを押すという操作は 全く直観的でないため、 ほとんどの人がボタンに気付かず、ドアを開けるのに苦労していた。
ユビキタスに存在する照明機器のインタフェースは 自動ドアほど直観的にできていない。 照明装置のスイッチは部屋の入口にあることが多いため、 照明を調整したい場合は部屋の入口に移動してスイッチ操作をしなければならない。 入口が複数個ある場合は、どの入口にスイッチがあるのか考える必要もある。 自動ドアの場合と異なり、 部屋の明るさを変えるという目的と スイッチを操作するという操作の間の 直接的なマッピングが難しいことが問題になっている。 照明を調整するという目的との齟齬が小さいインタフェース手法がもしあれば、 スイッチ操作以外の方法で照明を調整することができるようになるだろう。 ユビキタス環境で何かを検索したりコミュニケーションを行なったりする場合でも、 自動ドアのように直観的なマッピングが存在しないかよく考えたうえで 操作手法を考えるべきであろう。
近年の計算機のGUIでは直接操作(Direct Manipulation)という概念が重視されている。 直接操作とはユーザの操作に対して連続的/可逆的に システムが反応するようなインタフェースのことである。 たとえばマウスのドラッグ操作でウィンドウやアイコンが移動するようなインタフェースでは、 マウスの操作に対して連続的かつ可逆的にシステムが反応するので、 操作によって何が起こるのかをユーザは判断しやすいし、 問題があった場合は操作を取り消すことも簡単にできる。 一方、マウスのクリックによりウィンドウを閉じるインタフェースでは、 途中で操作を取り消すことができないし、 マウスを開くためには別の操作が必要なので、 ユーザに不安感を与えたり操作を間違えたりしやすいという問題がある。
ユビキタス環境におけるインタフェースも極力 直接操作的な手法を採用するべきであろう。 可逆的な操作が可能という意味では自動ドアもスイッチも合格であるが、 照明スイッチは連続的な操作ができないことが普通なので、 連続的な操作に改良する余地があるといえるだろう。 直線操作などを利用した直観的なインタフェースのことを 筆者はなめらかなインタフェース[3]と呼んでいる。 なめらかなインタフェースを実現するためには、 ハードウェアとソフトウェアの両方の工夫が必要である。 GUIに関しては多くの研究が行なわれており、 多くのユーザに利用されていることから、 なめらかなインタフェースがかなりのレベルで実現されているといえるが、 ユビキタス環境においてはまだまだである。
ユビキタス環境においてなめらかなインタフェースを実現するための装置として、 筆者らはMouseField[4]という装置を提案している。 MouseFieldは RFIDリーダと動きセンサを組み合わせた装置で、 RFIDを内蔵したオブジェクトを MouseFieldの上に置いた後で動かすことにより、 何をどれだけ動かしたかをシステムに通知することができる装置である。 たとえばRFIDリーダを内蔵したCDジャケットを MouseField上に置くとその音楽が再生され、 回転させて音量を制御したり スライドさせて曲を選択したりできるようになっている。 MouseFieldを利用することにより、 ユビキタス環境における直接操作をある程度実現することができる。 たとえば防水型のMouseFieldを風呂場に設置すれば、 その上にCDを置くとその場所で曲を再生することができ、 回転したり動かしたりすることによって 音量や曲目を選択することができる。 音楽を表現する何か(この場合はCDジャケット)を特定の場所に置くことによって曲を再生するという操作は 自動ドアと同程度に直観的である。 CDジャケットの回転操作/スライド操作はそれほど直観的とはいえないが、 このような単純な装置であっても、 GUIでマウスを利用するのに近い操作性を風呂のような環境でも利用できることは大きな利点であるといえる。 MouseFieldのようなロバストなセンサをうまく利用することにより、 ユビキタス環境においてなめらかなインタフェースを実現できる可能性は大きいといえるだろう。
人間以外の情報源も今後は広く使われるようになるであろう。 一見人間が発信しているように見えるが、 実は自動的に情報が発信されているシステムが増えてくる可能性もある。 世界中には沢山のセンサがあり、そのデータをもとにして 天気予報のような情報が配信されているが、 単純なセンサ情報は現在ネット上でほとんど共有されておらず、 ある程度蓄積されて情報処理されたものしか情報発信されていないのは勿体ないことである。 個々の温度計や雨量計のようなセンサ情報を直接知ることができれば、 それらをまとめたデータよりも役立つ場合もあると思われる。 たとえば、 あらゆる家庭の温度計にアクセスすることができれば、 その近辺の気温を知ることができるだけでなく、 火災や泥棒を検出することもできるだろう。 オフィスでは、利用者がいないとき照明が消えるというトイレがあるが、 トイレの利用状況を示すセンサ情報が公開されていれば トイレの混雑度を知ることができて便利かもしれない。 オフィスビルには沢山のセンサがついているにもかかわらず、 ほとんどがひとつの目的のみに利用されており、 使えるセンサは増えているのにほとんど活用されていない。 センサ情報はいくらあっても困ることはないので とりあえずは何でもセンサ情報公開して使えるようにすることにより、 新しい応用が発見される可能性があるだろう。
家庭内でも様々なセンサを利用することができる。 各所に圧力センサがあればリモコンとして利用することができるし、 留守のときは泥棒検出センサとして利用することもできる。 家族の帰宅状況や就寝状況を知ることもできるだろう。 何かを検出するために必要なセンサを配置するのではなく、 電源コンセントのように、 何に使うかわからなくても最初から各種のセンサを用意しておくようになるかもしれない。
一見つまらない情報でも集積されると有用になることがある。 あるWebページから別のWebページへのリンクが存在するかどうかは、 それだけでは重要な情報ではないが、 膨大なページに対してこの情報を蓄積すると ページの重要度や性質がはっきりするため、 Googleのような検索システムにとって大変重要な情報になっている。 一台の自動車の位置やワイパーの状態を調べてもあまり意味が無いが、 沢山の情報が集まれば渋滞状況や降雨状況がわかるようになる。 自分の行動を記録するために カメラなどのセンサを身につけてログをとり続ける ライフログが最近流行りつつあるが、 沢山の人間が自分の居場所や行動をある程度公開すれば 様々なことがわかるだろう。 様々なセンサ情報をなにげなく公開し共有して情報源として利用することにより、 ユビキタス環境のキラーアプリケーションが出現する可能性があるだろう。
ディスプレイ以外の装置も有用な場合がある。 たとえば電話や電子レンジは音で情報提示を行なうのが普通になっている。 部屋に入りたいという要求に対し、 開く自動ドアという形で承認情報が提示されているということもできる。 状況に応じ、 情報の流れや情報の提示手法を自由自在に選ぶことができるようになれば、 媒体の違いを意識せずにコミュニケーションができるようになるだろう。
あらゆる情報流をひとつのサービスで扱えると便利なこともあるが、 閉じたシステムやサービスビからはユビキタス/ユニバーサルな世界への道は開けてこないだろう。 理想的には、様々なサービスを組み合わせることによって高度なことを 実現できるようになっていてほしい。 例えば、 同じ趣味をもつ友達が今どこにいるか調べたいような場合、 友達リストを管理するSNSのようなシステムからデータを抽出して 地図サービスで居場所を視覚化するようなことができれば便利であろう。 しかし現状ではこういう組み合わせを簡単に実現することはできないので、 そのような機能を地図サービスやSNSが実装しなければならない。 もしそのような機能を実装するとサービスはますます重厚長大になってしまうだろう。
様々な情報源と情報出力先を部品化することによって、 簡単に情報流を制御することができる「Plagger」というシステムが 近年ハッカーの間で注目されている。 Plaggerを利用すると、 SNS, RSS, メールなど様々な既存の情報源/情報出力先を部品化して それぞれの接続を定義することにより、 様々な情報源と情報出力先を細かくユーザが設定することができる。 自分だけが使っているようセンサのような特殊な情報源であっても、 Plagger形式に標準化することによって、 簡単に他の情報とやりとりすることができる。 形式をあわせればどのような情報流でも扱うことができるため、 一時はネット掲示板などで 特殊な情報流の制御に関する質問が出たとき、 「それPla」(それはPlaggerを使えばできるよ) という回答が頻出していたほど人気があった。 Unixではテキスト形式のファイルを媒介データとして 各種のツールを複合的に接続して使うことができるが、 Plaggerはこれをさらに広い世界に拡張したものと考えられるかもしれない。 現状のPlaggerは設定が難しいため誰でも使える状態とはいえないが、 情報流の部品化の有用さを実証したシステムといえるだろう。 近年、 各種のSNSで共通に利用できる OpenSocialというAPIが提案されている。 SNSを含むあらゆる情報流の部品化が望まれる。
全世界プログラミング環境では全世界の人間が全世界の装置を制御することができる。 センサを多用したソフトウェアを作るという点では、 マイコンボードを利用したセンサプログラミングに似ているが、 センサの知識/ハードウェア工作技術/プログラミングテクニックなどが乏しい人間でも 簡単に全世界のセンサのプログラミングを行なえようになる点が重要である。 全世界プログラミングが一般化すれば、 趣味のプログラミングが再び流行するだけでなく、 生活環境も大きく変わる可能性がある。 例えば、 電灯や家電製品を操作したいときはスイッチやリモコンではなく適切なセンサを利用するのが普通になれば、 家の設計方法も変わってくるだろう。 状況に応じて留守宅の画像を中継したり録画したりするプログラムが簡単に利用できるようになれば、 防犯の方法は大きく変わるだろう。 全世界プログラミングの普及により、 時代遅れのビジネスが消滅したり、新しいビジネスのジャンルが出現する可能性もあるだろう。
全世界プログラミングの普及には時間がかかると考えられるが、 現在でもセンサを利用したプログラミングはある程度実用化されているので、 段階的にレベルを上げていくことが可能だと思われる。
既に実用になっているもの
ある条件が成立した場合に特定の処理を実行させるというような
簡単なプログラムは広く利用されている。
目覚まし時計の時刻設定は、ある時刻になったときにベルを鳴らすというプログラミングだと
考えることができるし、
ある水量になると水道を停止する風呂の自動給水システムも一種のプログラミングだといえるだろう。
ある日付のある時刻になると特定のチャンネルの番組を録画するという
ビデオ予約システムもこのようなプログラミングの一種である。
各種のセンサの利用
時刻以外の様々な条件を利用すると、
目覚まし時計をセットするのと同じぐらい簡単に、
以下のような処理をプログラムすることができるようになるだろう。
センサを単純に利用した実世界プログラミングの例として
以下のような応用が考えられる。
遠隔地のセンサの利用
前の例ではセンサの位置とアクションが発生する位置は同じであったが、
インターネットを介して遠隔地のセンサにアクセスすることによって
以下のようなプログラミングが可能になる。
新しい応用
センサに何の関係もないアクションを関連づけることも可能である。
現在はこのような応用はほとんど存在しないが、
新しいエンターテインメントやアプリケーションが生まれる可能性がある。
テキストを利用する従来型のプログラミングでは、 あらゆる対象をテキストで扱わなければならないため、 「居間のテレビで映画を見る」ことを表現するには、
watch_movie('West Side Story','livingroom','TV1')
という具合に
「居間」「テレビ」「映画」などに名前をつけて扱う必要があるが、
自分の目の前にあるテレビにわざわざ名前をつけて表現するのは面倒かつ間違いを誘発しやすい。
「TV1」のような名前のかわりに、
テレビそのものもしくは
その写真のような代理物を使うことができれば、
はるかに直観的にプログラミングを行なうことができるはずである。
抽象的理解が必要なテキストをなるべく使わず、
なるべく実物を利用してプログラミングを行なう
実世界指向プログラミング
の手法を開発するべきであろう。
インターネットの普及、センサの一般化、計算機のユビキタス化により、 世界中の情報を誰もが好きなように加工して利用できるようになった。 人間の歴史において、このようなことが可能になったのは初めてのことであり、 将来の展開が期待される。
誰でもどこでもいつでも情報を扱うようになると、 これまで述べた以外の新たな問題も発生するであろう。 ここではユビキタス環境における個人認証の問題及び、 ユビキタスな情報流の利用による予想外の事態について考えてみたい。
自分は絶対忘れないが他人にはわかりにくい画像と問題を選ぶことにより、 安全かつ使いやすい認証を行なうことができる。 個人的な体験にもとづく写真を利用する場合、自分が答を忘れる可能性は低いし、 他人には答はわからない。 自分の家族や友人だけが知っている写真を利用すれば グループ認証に利用することもできるし、認証の強度は自由に設定できる。 またキーボードを利用する必要がないので ユビキタス環境において認証操作をやりやすいという利点もある。
たとえば、誰もがネットワークを利用することにより、 意見の一極集中が発生しがちであることが懸念されている[5]。 ネット上に様々な意見があるのは確かなのだが、 どのような意見でも同じように簡単に読むことができるし、 逆に自分が嫌いな意見は全く見ないようにすることも簡単である。 また、ネット上の掲示板などでは 声が大きな人物の意見はよく目にするけれども、 意見を書き込まない大多数の人間の意見についてはわからないことが多い。 このような状態がずっと続くと、 人間は自分の好みに近い意見をもつ集団の中における 極端な意見ばかり目にすることになり、 それが一般的意見なのだと勘違いしてしまう危険が高い。
単純な計算を繰り返すだけでもカオティックな結果が発生することがあることは よく知られているが、 単純な仕組みに見える規則やプロトコルからでも 予想外の影響が出る可能性はあるだろう。 全く新しい形で情報が流れるようになる場合、 その挙動についてはよく注意しておく必要があるだろう。