最近、Web2.0というのが話題になっているが、特に騒ぐほどのことは何もない。Web2.0は、一言で言えば、「機械によって処理可能なWeb」であり、1998年にXMLの仕様が策定されたのは、さらにその数年前から、こうしたことが必要だという認識がWWWの首脳部にあったからだ。
それが現実化してきたのがようやくここ数年のことで、いよいよ今年くらいからWebの世界のメインストリームに躍り出そうだというだけのことである。
だから、いまさらWeb2.0について語っても面白いことは何ひとつない。そこで、Web3.0について考えてみることにしよう。
Web3.0は2010年にメインストリームになるWebの姿である。
残念ながらそれは、2000年ころに夢みられていたP2Pが主役となる世界ではない。人々が何に困っているかという点からこの世界の趨勢は決まるが故に、そうならざるを得ないのだ。
現在のソフトウェア開発の最大の問題は何か。
それは再利用性である。
【スタンドアローン】
たとえば、ある開発者が、とても画期的なアイデアのソフトウェアを思いついたとしよう。彼は、既存のソフトウェアが実装している当たり前な機能も開発しなければならない。そのために、彼の開発時間の98%が費やされるだろう。画期的なアイデアを実現するために、決して画期的ではない機能の実装に98%のリソースが費やされるとしたら、ほとんどのアイデアは実現されるまえに挫折するだろう。
このようなことを、スタンドアローンアプリケーションにおいて防ぐ手段が、プラグインやオープンソースである。プラグインは、すでに大規模になったソフトウェアをプラットフォーム化し、任意の開発者がモジュールを作って機能拡張できるようにする。オープンソースは、ソースコード自体が公開されているので、それらをもとにアプリを開発すれば、労力を大幅に削減することができる。
【Web2.0】
Web2.0は、スタンドアローンアプリケーションでなくWebアプリケーションにおいて、このことを可能にする概念である。しかしWeb2.0において、再利用性は、単にプログラムの再利用性に限らず、データの再利用性も含まれる。例えば、google mapsは、単に地図アプリケーションというだけでなく、普通の人が到底集めることのできない膨大な地図データ、衛星写真データを公開している。google maps APIを用いることは、地図アプリを使うだけではなく、地図データを使うことを含んでいる。
ゲーム業界にいる人であれば、ソフトウェアの開発よりもデータ開発のほうに圧倒的にコストがかかることは周知の事実であるが、この問題はWEBのいたるところに広がりつつある。
現在のアプリケーション開発は、ひとりで使うソフトウェアから、グループウェアのように、複数人で使うことによって効果を増していくソフトウェアに移行しつつある。複数人で使うことによって効果を増していくソフトウェアとは、ユーザが入力したデータが共有化されたアプリケーションのことである。gmailのようなソフトはWebアプリだがデータは共有化されていない。掲示板やSNSのようなソフトはデータが共有化されているために、複数人で使うことによって効果を増していく。
【Web2.5 クライアントサイド・インテグレーション】
地図データや掲示板のデータはまだいいが、個人的なデータは、公開されない場合が多い。はてなのpublic modeのようなデータは確かに公開されてはいるが、重要な個人データは公開されないままだろう。
この問題に対するひとつの解決策が、「クライアントサイド・インテグレーション」である。例えば、RSSリーダーのGlucoseは、mixiとgreeの友達データをひとつの画面に表示することができる。これは、mixiとgreeのHTMLをパースした後、FOAFに変換し、それをカスタマイズした画面として表示しているからである。海の向こうではFlock
という次世代ブラウザが話題を集めている。
このように、複数のアプリケーションに個人データが入っている場合、それをクライアント側で吸収するというのは、価値のある方法だ。クライアントアプリケーションのプラグインという形で、任意の開発者が機能強化ができるというので、「クライアントサイド・インテグレーション」はWeb2.5の名前を得るにふさわしい。
【Web3.0 ASP SP】
しかし、この方法ではクライアント側にとってこれる程度のデータしか利用できない。例えば、他人がどのようなコンテンツを読んでいるかをクライアントにとってくることはできないので、クライアント側で協調フィルタリングするということは不可能である。データの共有性の徹底を考慮すれば、データはひとつのサーバーにおいておいたまま、開発者は、サーバー上で任意のプログラムを開発・実行できればよい。
すなわち、Web3.0とはASP SP(Application Service Provider Service Provider)である。開発者は、サーバー上のあらゆるデータを使ってソフトウェアを開発することができる。例えば、googleがgmailの機能追加をすることができる開発・実行環境を、gmail上で公開するといったことをイメージしてほしい。メールの送受信関係の連鎖から、自動的にメールの送り先を推薦するソフトウェアをgoogle外部の開発者が開発してもよいだろう。そのようなことは、いままで不可能だった。
ASP SPの強力さのもうひとつの例は、清水さんが提唱しているアーティクル直交化である。これを一言で言えば、オブジェクト埋め込みのWeb的拡張である。例えば、スケジューラの予定をメーラにドラッグ・アンド・ドロップすると、スケジュールのデータ構造をもったままメールを送信することができる。メールの受信者は、そのデータをスケジュール的データ検索の対象にすることができる。
ただしASP SPには性能とセキュリティという大きな問題がある。外部開発者が無限ループになるようなプログラムを書いて、サーバのリソースを圧迫するということがありうるだろう。googleやYahooは、あのレスポンスを提供するためにかなりの性能チューニングをしてからリリースしているが、外部開発者にいい加減なプログラムを書かれては、いくらサーバリソースがあっても足りない。しかしこの問題は、プロセスごとにリソースを切ったり、自動監視ツールを使えばかなりの程度回避できるだろう。開発者やユーザに対して使用リソースに対して課金するというのもうまい手だ。
より深刻な問題はセキュリティである。外部開発者は、デバッグのために具体的なデータを見たいと思うだろう。文字コードなどのやっかいな問題は、完全な内部データがないとデバッグできないことも多い。データが隠蔽されたままソフトウェアを開発するということは果たして可能なのだろうか。
以上のような問題をはらみつつ、ASP SPは開発者にとって夢のような環境である。
1.すでに存在するソフトウェアをそのまま再利用できる。インストール作業も必要ない。
2.個人データを含む膨大なデータを再利用できる。
3.サーバーやネットワークなどのハードウェアの管理が必要ない。
ソフトウェア開発者は文字通り徒手空拳で、ほんのちょっとの手間で新しいソフトウェアを開発・実行することができる。しかも、Web2.0とは違い、既存のユーザベースをそのまま誘導することができるのだ。
おそらく、Web3.0に最短な企業はgoogleである。gmail広告の「機械はデータを読むが人はデータを読まないのでセキュリティ上安心なテキストマイニング」という概念は、あともう少しでWeb3.0に到達する。
あれ、これってメインフレームじゃん。。。
あたり。
かつて古代ギリシャの歴史家ツキジデスはいったのです。
「歴史は繰り返す」と。
CNETに「ビル・ゲイツ、グーグルを語る」という記事がでている。ゲイツが言っているのは、「グーグルはプラットフォームではない」ということだ。ゲイツの言う意味を素直に延長させれば、Webのサービスがプラットフォームになるということは、ASP SP=Web3.0とそうは違わないことが読み取れるだろう。かしこいゲイツは、そうは言わずに巧みに話題をずらしている。
しかし、実際にはグーグルはプラットフォームを目指しているし、ゲイツはそのことに気がついている。ニュースサイトのインタビューに答える余裕な調子とは裏腹に、マイクロソフト社内ではゲイツの怒号が鳴り響いているに違いない。
次回は、Web4.0について書くことにしよう。そして、このシリーズのタイトルである「新しい社会契約論」はWeb5.0でようやく登場することになる。エジケンの「XMLとアフォーダンス」というエントリーはとても面白いのだけど、Web5.0まで書かないとぼくの意図は伝わらないので、返事はあと3ヶ月ほどお待ちください。
【参考】このシリーズ最初のエントリーからちょうど一年目のエントリーでした。
XMLの文体と新しい社会契約論:(2)XMLの分類のヴィジュアル化と分析