Newtonの環境は単なる電子手帳のレベルではなく、アプリケーションやデータファイルを抽象化して、ユーザーに存在を意識させないことを指向したものでした。
Newtonの開発がすべてキャンセルされ、販売が終了して数年が経過した今となっても、その思想を超える環境はいまだなく、MacOS Xへの統合が果たされることを夢見ているユーザーも少なくはないことでしょう。
しかし、Appleの開発チームはMacOS X環境の構築に予想よりも手こずりました。最初に登場したMacOS X 10.0では十分な完成度を持たせられず、MacOS X 10.1でようやく「MacOSらしさ」と「UNIXのファンクション」のバランスがハーモニーを奏でるレベルになってきました。実際のところ、使ってみるとかなりいい感じです。
しかし、「MacOS Xらしさ」という意味では、まだその片鱗が垣間見えてきたというレベルでしょうか。MacOSらしい使い勝手とUNIXらしい強靱な足回り。では、その先にあるべき「MacOS Xらしさ」とは何でしょう?
既存のメタファーを真似るだけの「まねっこマシン」として振る舞うだけでなく、それを超える何かが欲しいところです。はさみツールで画像を切り抜くがごとく、1つの命令で1つのアクションをこなす「文房具」的な動作ではなく、1つの指示で100でも1000万でも命令をこなすような「インテリジェントな」動作を行ってほしい。
……そこに加わるべき「インテリジェントなエッセンス」こそ「Newton」のフレーバーではないかと、「えせNewtonプロジェクトチーム」は考えています。
怪人Sal Soghoain、2年前に思わせぶりなセリフを残す
えせNewtonの構成要素のひとつが、AppleScriptと周辺アプリケーションであることは前回に説明しました。
MacOS標準搭載の言語解析エンジンをパーサーとして、命令とパラメータを認識。必要な命令を補助アプリケーションに投げて実行させれば、Newtonもどきな環境は作れるのではないだろうか、というのがその内容でした。
実は、AppleScript製品担当のSal Soghoianが2年前に来日したときに、直接本人に聞いたことがあります。
Piyomaru:言語解析エンジンを介して、簡単な文章を認識し、AppleScriptのリクエストをオンザフライで自動生成し、擬似的にインテリジェントな環境は作れるように見える。そういう研究はしていないのか?
Sal:Newtonのような環境のことを言っているのだろうが、具体的なことは答えられない。ただし、AppleScriptの自動生成については研究をしている。
……悩ましいお返事(^-^; また、彼はこのようにも言っていました。
Sal:MacOS XのAppleScript環境では、MacOS以外の機器をコントロールできるようになる
……
このときには、家電コントロールのX-10を標準採用(現在はサードパーティのOSAXが必要)する程度かと考えていたものです。しかし、その種明かしは2001年7月のMacWorld Expo NYで唐突に行われました。
怪人Sal Soghoian、Seybold Seminorsで「SOAP!」と吠える
それが、MacOS Xで採用された非同期分散オブジェクト環境「SOAP」(Simple Object Access Protocol)。
アプリケーションへのイベントを投げる際に、MacであればAppleEventの形で「特定のアプリケーション」の「特定のオブジェクト」に対して「特定のリクエスト」が発行されます。これをAppleTalkもしくはAppleTalk over TCP/IPで他のMacに投げるわけですが、オフィスの他のマシンであっても地球の裏にいるマシンであっても非常に簡単にリクエストを投げられるものの、その相手はあくまでMacに限られてしまいます。
これを、MacOS以外のマシンに対して環境を問わずに行えるよう規格化したのがSOAP。AppleTalkではなくオープンなTCP/IPを用いて、イベントの内容はXMLで投げます。 「Salが言っていたのは、これのことだったのか!
しかし、なんで基調講演のステージでイエーとかウオーとか叫びまくってんだこの人は!!(^-^;」
Seyboldの基調講演では、実際にMacOS X 10.1のAppleScriptを用いて、SOAP経由でサーバーにリクエストを投げて、気象条件に基づいてIllustrator上に作られた全米の地図を色分けするデモがSal Soghoianによって行われ、来場者の拍手喝采を浴びていました。
以後、SOAP関連のドキュメントを漁り、情報収集にいそしむ毎日。そして、このSOAPが「えせNewton」実現のためのキーとなるテクノロジーのひとつになることを確信しつつあります。
MacOSに載っていないアプリケーションについては、他のOS上に実装されているアプリケーションを利用。非インテリジェントなアプリケーションを組み合わせてインテリジェントな環境を擬似的に作れる(かもしれない)SOAPの思想は、AppleScriptをその源流に持つだけあってMacユーザー(というよりも、AppleScriptユーザー)にはなじみやすいでしょう。
誤解を恐れずに言ってしまえば、「 バカを100人集めて組織化することで1人の天才以上の力を発揮させるという発想」といえば分かりやすいでしょうか。……なんかちがうか、、、
現在のSOAPに欠けている要素
しかし、SOAPの規格を調べれば調べるほどに、まだこの規格が「使いもの」になるレベルに達するには幾年かの熟成が必要であることが分かってきました。
イベントを投げる相手がどのようなアプリケーションを用いるかについては抽象化されているので、それがDB2であろうとORACLEであろうとINFORMIXであろうと別に構わない。しかし、そのデータなりアプリケーションがどこにあるかを「明示的に」示さなくてはならない。これがやっかいです。
「どこに何があるか」を集中的に管理するサービスが不在なので、これをまとめて管理する必要が早晩生じるでしょう。
また、その「何」を指し示す際には言語(英語とか日本語とか)の差異を吸収できる仕組みが必要。
リクエストを行うXMLの中に言語タイプが指定できるので、それを基にパラメータを翻訳して渡すとか。 DNSのような分散データベースであっても、Sherlockのようなクライアント側で複数のサーバーに対して串刺しリクエストを行うタイプであってもよいが、リクエストを投げる相手自体を抽象化できるとうれしい。
そして、SOAPによるリクエストをうまくキューイングして負荷分散を行う仕組みも必要となってくるでしょう。大規模なシステムでXMLベースのリクエストを大量に流した場合の検証はまだまだこれからといったところ(IBMやMicrosoftやHPがすでに実験を行っている可能性はある)?
また、広域にユーザー認証できるシステムも必要。リクエストがどこかのサーバーのSOAPベースアプリケーションを通るたびにユーザー名とパスワードをキーボードから入力させられてはたまらないですから(そんな風に実装するとは思えませんが、一応)。
ただし、これらの仕組みが出来上がれば、エージェント的な動作が非インテリジェントなアプリケーションの組み合わせで実現できることでしょう。
えせNewtonの実現した姿は……?
えせNewtonを実現するのに現代のありとあらゆるテクノロジーを動員するのは、いささか大げさと取られるかもしれません。
しかし、実際のところNewtonにこめられた思想を「本気で」実現するにはまだまだ不足気味です。
おそらく、初期のえせNewtonは、インターネットに常時接続されたPowerMac G4の上に、一般的なアプリケーションを組み合わせて実現されるでしょう(ViaVoiceでコントロールしているかもしれない)。
そして、それを見たデベロッパーが着想を得て、もっと小振りなアプリケーションで再構成し、iBookやPowerBookでも使いものになるレベルに達するに違いありません(?)。
しかし、それでも小型の持ち運びできるデバイスにその環境を集約できるかどうかは定かではありません。
AppleがPowerBookをさらに小型化することは考えにくいので……下手をすると、フロントエンドの部分はPalmか何かのデバイスを用いて、これがインターネット経由で自宅に置いてあるPowerMacにリクエストを投げ、PowerMacが処理を行って結果だけ返す形になるかもしれません。
ちょっとだけ風呂敷を広げてみましたが、実際のところは着実に「できること」から手を付けていくのが正しいのでしょう。
とにかく、スクリプタブルなアプリケーションのうち「欠けているもの」を補っていくことが最優先課題であろうかと。
ただ、それがひじょうに地味で地道な作業であるだけに、このようなロードマップを書いておくことが肝要と思っている次第(^-^;。