iPhoneやiPadが、いままでのタブレットPCと、一体何が違うか。それは、いったい何本出てきているのか、いまや正確に把握することさえ困難になり始めた「iPhoneアプリ」と言われる「アプリケーション」の存在であります。
いままでのタブレットPC向けのアプリを考えれば、このことがことの本質であることを、みなさん誰もがご納得いただけるはずなのであります。10:07:App Storeの最新動向。40億アプリがこれまでにダウンロードされる。18万5000のアプリが用意されている。iPadアプリは3500本以上。
(アップル、「iPhone OS」イベントを開催--発表内容をライブカバレッジ)
それにしても、なぜこんなことが起きるのか。
これを理解するためには、「iPhoneアプリ」と言われるものの「正体」を見る必要があるのであります。すなわち、これらアプリの大半が、パソコン勃興期に大量に現れたアプリケーションやゲームと言う、当時パソコンと言うまったく新しいプラットフォーム向けのプログラムと、なんら違いがないと言う事実なのであります。
パソコン向けの当時のアプリの大半は、いまやアクセサリーやアドオンとして、あるいは無料のアプリとしてパソコンで使用することができるのであります。とは言え、これが新しいプラットフォーム向けと言うことだけであるなら、こんな大量のアプリが出てくることはないのであります。
この現象に対して、納得いく説明ができるとすれば、これは唯一つ、「ネットワーク」向けアプリケーションの存在しかありえないのであります。
話がまわりくどくてすまない。
要するに、iPhoneやiPad向けのアプリケーションとは、「ネットワーク」を前提とした、いわゆる「ソーシャルアプリ」であり、あるいはそれに類似する「ネットワーク」の窓となって動作するWebアプリケーションがその実体であると言えるのであります。
さらにはこれが、マウスやキーボードと言うインターフェイスを前提に進化してきたアプリケーションの世界から、いままでとはまったく異なる、マルチタッチのユーザーイクスペリエンスを実現するアプリケーションの世界へと、世界を大きく変えてしまったのであります。
ただしかし、まだこれらは、KAIの言う「自己組織化アプリケーション」や「高度化アプリケーション」の域に達するに至ってはいません。この進化のためのほんの端緒についたに過ぎないのであります。
それでもやがて、アプリケーションとアプリケーションが相互に繋がり、アプリケーションと言う生き物が、地球全体を覆いつくす日も、そう遠い未来でないことは、間違いのない真実なのであります。
ここでいきなり話題を変えますが、このアプリケーションとアプリケーションが繋がるための技術に関連するお話です。
iPadのアプリケーションの話をしていると、こういったクラウドの話とまるで関係がないかのように思われるかもしれませんが、まったくそうではありません。オブジェクト指向言語「Ruby」の開発者である、まつもとゆきひろ氏が語る日経Linuxの連載記事「技術を斬る」で最近、「BASE」という概念がよく登場する。BASEとは、「Baseically Available」(不整合は滅多に発生しないので可用性を重視し)、「Soft-state」(状態の厳密性を追求せず)、「Eventually Consistent」(途中はともかく最終的につじつまが合えばよい)、という考え方だ。
実は、クラウドを支えているのは、この“ゆるい”考え方にほかならない。
トランザクションはもう古い?
BASEは、トランザクションの概念が大量の情報を処理するシステムには適さない、という考えから登場してきた。データを正しい状態で維持するために必要なACID特性、すなわちA(原子性)、C(一貫性)、I(独立性)、D(永続性)を、大規模な分散処理では維持できないという「CAP定理」が裏付けになっている。
CAP定理とは、C(一貫性)、A(可用性)、P(ネットワーク分割された場合の耐性)のうち、二つまでしか同時に満たせないことを数学的に証明したものだ。クラウドシステムでは多くの場合、CAPのうち可用性とネットワーク分割の二つが重要となる。この場合、一貫性で妥協する必要がある。具体的には、大量のサーバー機でデータを複製保持し処理すれば、一時的に整合性が失われる問題が発生する。
従来は、トランザクションの厳密性を堅持しつつ、この問題に対応しようと努力してきた。1990年代には“2フェーズコミット”のような分散トランザクション技術が、近年ではデータベースソフト「Oracle」が備えるようなクラスタリング技術が開発された。
しかし、同時アクセスのクライアント数が1万台を超えるような場合に起こる様々な問題、いわゆる「C10K」(クライアント1万台問題)の前では、“古い”トランザクションの概念を捨てざるを得ない。
そこでBASEの考えを取り入れた「ROMA」や「kumofs」など“NoSQL”(Not Only SQL)と呼ぶ新たなデータベース群が、クラウドを裏で支えている(関連記事)。一時的には不整合な状態を作っても、最終的に整合性を取るという実装になっている。
(クラウドを支える“ゆるさ”)
と言うことで、このお話は長くなりますので次回に、また。 KAI