「緩やかにつながっている」を実現する技術 - Androidの講演で感じたこと
5/19に当学でグーグルの高岡氏にAndroidについてご講演いただいた。Androidのアーキテクチャのいくつかを紹介いただいた。「緩やかにつながるしくみ」という表現で、Androidのことを説明されていることが私の印象に残った。
Android用に作られたアプリケーションは初期状態から含まれているものもあるが、ユーザがダウンロードするものもある。そのため、Androidの開発側としては事前にどのようなアプリケーションが存在しうるかを知ることはできない。これはAndroidに限ったことではなく、携帯端末だけではなくPCのようなハードウェアでも起こる。
Android上で動作するアプリケーションはそのアプリケーションが実行できる機能カテゴリ(たとえばメッセージング、ブラウザ等)をアプリケーション自体が認識しておき、"intent"というメッセージが送られてきたときに返答する。個々のアプリケーションを管理するAndroidは、intentを使って個々のアプリケーションからメッセージを受け取り、リストを作る。そのリストをユーザに提示して、選択してもらう。セキュリティ上、検討しなければならないことはあるものの、Android側はintentメッセージに対する反応で、アプリケーションの機能や能力を知ることができる。
アプリケーションは減ったり、新しく開発されて追加されることもある。メッセージ自体も変更の可能性もある。そのときにそれらの情報を事前に把握して管理するのではなく、"intent"というメッセージに対する返答をそのときどきで束ねて提示する。当初想定していないものも含めることができたり、なくなったりというのは「緩やか」にふさわしいと思う。
アプリケーションやデータとその操作メソッドにメッセージを送って、動的にアプリケーション一覧や操作一覧を作ることや送るメッセージの内容自体もフレームワークが知らなくてもよいという点でも、完全に新しい概念ではない。ただし、携帯端末として実現した点、「緩やかにつながっている」と表現されていた点が、私がおもしろいと感じたところだ。
技術に由来するこのような表現を最近、あまり聞かないような気がする。それなりの数の失敗があったからなのかもしれないが、エンジニアの心に響くような表現はまだまだあるのではないかと思っている。