新しくて古い「クラウドコンピューティング」
IT業界一番の流行は仮想化に代わって「クラウド」になった。今回は、クラウドの歴史と将来について、個人的なことを書いてみようと思う。
●クラウドの現在
以前、会社のイベントで「Windowsの現在・過去・未来」というタイトルで講演をしたことがある。講演当日まで何の違和感も覚えなかったが、直前のリハーサルで気付いた。「過去・現在・未来」の順に並べないといけないのでは... 一定以上の年齢の人ならお分かりだろう。渡辺真知子のヒット曲「迷い道」の冒頭に登場する歌詞と混同していたのだ。
それはともかく、未来を予測するためには、過去を学び、現在を知る必要がある。クラウドコンピューティングがもてはやされる現在の理由はこうだ。
必要なコンピューティング資源を、必要なときに必要なだけ使い、使った分だけ支払う
●クラウドの過去
では、過去に似たような概念を提唱した人がいただろうか。「コンピュータに関連するすべてのアイデアは1960年代までに出尽くした」と言われる。仮想記憶もサーバー仮想化も1960年代に考案され、1970年代前半には実用化されている。クラウドもきっと1960年代にアイデアが出ているはずだ。ちょっと調べてみたら、Wikipediaの「ユーティリティコンピューティング」にこんな言葉が見つかった(2014年10月26日現在)。
1961年、ジョン・マッカーシーはマサチューセッツ工科大学の100周年にあたって、次のように述べている。
私が主張した種類のコンピュータが将来現実となるならば、電話が公共設備となったようにコンピューティングが公共設備となる日が来るかもしれない...コンピュータ・ユーティリティは新たな重要な産業基盤となるかもしれない。
「ユーティリティ」とは、電気やガス、水道などの公共事業を指す。電話もユーティリティの一種である。水道の蛇口をひねれば、必要な時に必要な量だけ水が使える。限度はあるだろうが、渇水期や電力消費のピーク時を除いて意識する人は少ない。まさにクラウドの特徴そのものである。
この時、マッカーシーは「1台のサーバーを多人数で共有するシステム」、TSSを念頭に置いていたが、アイデアはクラウドそのものである。
日本では、1970年から電電公社のデータ通信本部(現在のNTTデータ)が電卓と同様の計算サービス(DIALS)や、在庫管理システム(DRESS)、科学技術計算サービス(DEMOS)を提供した。柔軟な構成変更はできないが、基本的なアイデアはクラウドと似ている。
そういえばクラウドの料金体系は、CPU使用時間と割り当てメモリ、ディスク消費量などを個別に計算して合算するが、TSSの使用量も同じように要素ごとに計算して合算する(違うのは、ディスクやメモリの単位が1000倍違うことと、プリンタ出力料金が設定されていないことくらいだ)。WebサーバーとWebブラウザの関係も、ホストと端末の関係に似ている。UNIX系のOSと異なり、メインフレームの端末は端末内でフォームを生成する。IBMが作ったPCのキーボードは、それまで[Return]と書いてあったキーが[Enter]になっている。これは「データ入力(enter)」という意味のようだ。
●人工知能とクラウド
ところで「マッカーシー」の名を聞いて私は大変懐かしい気持ちになった。マッカーシーは、マービン・ミンスキーと並んで初期の人工知能研究をリードしたパイオニアだ。
特に有名なのは、Lisp言語の設計と実装である。私の修士論文は人工知能であり、Lispは最初に本格的なプログラムを書いた言語である。彼の著書「Lisp 1.5 Programmer's Manual」は今でも手元に置いてある(米国Amazon.comでまだ売っていることに驚いた)。私が学部時代に使っていたのは、Lisp 1.5と同レベルの実装(DLISP)であり、「Lisp 1.5 Programmer's Manual」は輪講でも扱った。
ただし、DLISPは、修士論文を書くには少々力不足だったため、別の処理系を探していた。当時世界最速を誇ったLispは、東京大学の近山隆氏が実装しUTI-Lisp(University of Tokyo Lisp)だった(ここで使われた技術は博士論文としてまとめられた)。Lisp処理系の多くはUNIX上用だったが、UTI-LispはIBM汎用機互換の日立(および富士通)Mシリーズで動作した。偶然にも私の大学(同志社大学)と同じファミリーだったので、東京大学の研究室に電話をかけ、磁気テープを送ってもらった。
当時、研究室の電話は市外通話が制限されており、100番通話(オペレーター呼び出し通話)を使った。100番通話を使うと、電話のたびにいくらかかったか通知してくれるので、この金額を大学事務局に申告することになっていたようだ。ちなみに100番通話は2015年7月末で廃止されるそうだ。同じ時期にコレクトコールもなくなるという。
念のために書いておくと、当時、日本のインターネットは実質的に存在しなかった。日本のインターネットの前身はJUNETで1984年に実験開始、私が東京大学に電話したのは1985年である。
UTI-Lispは速度を稼ぐため、すべてアセンブリ言語で記述されていた。処理系のビルド自体は問題なく終了し、UTI-Lispが動作した。ところがドキュメントを印刷するとカナ文字が表示され、全く読めない。どうやら文字コードが違うようである。
MシリーズではEBCDICと呼ばれる文字コードが使われていた。オリジナルのEBCDICは大文字しか扱えなかったが、後に小文字が使えるように拡張された。東大ではもちろん小文字が使えるEBCDICを使っていたのだが、同志社では小文字の代わりに半角カナが割り当てられていたのだ。
幸い、同志社大学で使っている文字コードにも(東大とは違う領域に)小文字が存在したため、変換プログラムを書くことにした。私が知っている言語はLispとFortran、そしてBasicだけ。同志社のLispにはファイル入出力機能がなく(あったとしても文字列処理は実装していなかった)、当時使っていたFortranには文字コードを簡単に扱う機能がなかった。Basicはダートマス大学のオリジナル版に近いもので、ファイル入出力機能がなかった(JCLを使って、標準入出力を切り替えればいいのだろうが、JCLには手を出したくなかった)。仕方なくPascalの学習をその場ではじめ、数時間後には変換プログラムが完成した。今ではいい思い出である。
そんなことを思い出していたら、2010年9月に情報処理学会のクラウドセミナーに出席して驚いた。司会がUTI-Lispの作者近山隆氏だった。30年近い歳月を経ての再会(本当は初対面だが)に感動し、名刺交換をさせていただいた。
●クラウドの未来
私が就職した頃は人工知能ブームがまだ冷めておらず、LispやPrologといった人工知能研究用の言語の講習会も担当した。それから20余年。今では全く違う分野の仕事をしているが、同じ研究者に再会したのは不思議である。クラウドには、当時の人工知能と同じ魅力があるのだろうか。
人工知能ブームは去ったが、その時に研究された技術は多くの分野で生きている。数値でも文字列でもない「記号」を扱うアイデアは人工知能研究の最大の成果である。クラウドもブームはいつか去る。しかし、その成果は確実にIT業界に残るだろう。
1960年代まで、IT業界は産学協同で発展してきたが、1970年代以降はあまり交流がない。情報処理学会の構成員も減る一方である。しかし、クラウドでは新しいアルゴリズムや理論が生まれるなど、再び産業界と学会の交流が始まっている。これから何年か、きっと面白い時代になるはずだ。
▲10月23日(木)~10月24日(金)に「マイクロソフトカンファレンス」が開催された。
Microsoft Azureの「Azure」は、空や海の青を意味する。
この日は雲(クラウド)ひとつない好天で、青空(Azure)が広がっていた。
(会場近くで撮影)
本記事は、2010年11月1日に公開した記事に加筆したものである。