クラウドという言葉が登場する以前から
クラウド的なものを構想していたマイクロソフト
マイクロソフトは、1990年代後半からWindows Vistaにかけて、今で言うところの「クラウド」サービスと言えるものを構想していた。しかし、諸般の事情とWindows Vistaの開発失敗により、ほとんどの計画が未完のままとなっていた。
Fall Creators Updateに搭載される機能は、Microsoft Graphをベースにしており、さらに同時に発表されたXAML Standardにより、マルチプラットフォーム化が推進される。このあたりを見ると、結局、2000年頃に構想していた計画が、現在のクラウドなどに合わせて“リバイバル”してきた感がある。
マイクロソフトは、2000年に.NETとWebサービス(のちにXML Webサービスと呼ばれるようになる)を発表する。Windows XPの開発が進み、それまで2つあったカーネルをNT系に統合し、Windowsの開発は大きな山を越えたころだ。
開発リソースをWindowsの発展に集中させられるようになって、マイクロソフトが構想したのは、今では「クラウド」と呼ばれるものを自分たちで構築するというものだ。ちなみに「クラウド」という言葉自体は、2006年にグーグルのCEOであるエリック・シュミットが講演で使ったのが始まりとされている。また、グーグルかクラウド方向に進み始めたのは、2004年のGmailや翌年のGoogleマップのリリースからだ。
マイクロソフトは、2001年にHailStormというプロジェクトを発表する。これは、カレンダーや連絡先、ユーザープロファイル、メールやメッセージなどのサービスから構成され、マルチデバイス(PCとWindows CEデバイス。当時iPhoneはなかった)で利用可能なサービスとそのSDKなどからなるプロジェクトだ。
ここに至る経緯は論理的だ。たとえば予定の情報は、カレンダーアプリケーションが管理している。そのデータ形式はアプリケーションごとに独自で、これにアクセスできるのは該当アプリに限られる。もちろん、iCalのようなデータ交換用ファイル形式はあるが、あくまでもある時点の情報をエクスポートした情報にすぎず、その後、ユーザーが予定を変更すれば、エクスポートされた情報とは一致しなくなる。
つまり、「予定」という情報を他のソフトウェアが利用するためには、カレンダーアプリケーションから必要な時点で情報を引き出す必要がある。そのためには、アプリケーション同士が情報交換できるようになっていなければならない。これは、メールやメッセンジャー、住所録などさまざまな情報についてもいえることだ。
マイクロソフトは、こうしたアプリケーション間の情報交換を可能にすることで、さまざまな可能性があることを見いだし、Windowsでそれを可能にしようとした。その帰結が、マイクロソフトによる一連のサービスの提供である。
独禁法訴訟もあり、クラウド的な構想は断念
Windows Vistaの開発も迷走する
しかし、当時のマイクロソフトにとっては時期が悪かった。1998年に米国で独禁法訴訟が始まり、それを機会に各国でもマイクロソフトのビジネスのやり方を問題視する機運が高まった。また、Windowsプラットフォームを標的とする多数のマルウェア、たとえばNimdaやCode Redなどがこの時期に登場し、いくつかは、大きな経済的損失を生み出し、インターネットを麻痺させた。このため、マイクロソフトは、その対策やWindowsのセキュリティ向上を優先させる必要があった。
Hailstormに関しては、マイクロソフトのサーバーにメールや予定表、連絡先といった個人情報を保存するという点に、プライバシーに対して不安を持つユーザーが多く、このプロジェクト自体は2002年に中止される。それでも、その多くの要素はXPの後継となるVistaに組み込まれることが計画されていた。
というのも、当時はインターネットの常時接続が普及し始める時期ではあったものの、ダイヤルアップによる接続やインターネット未接続といったユーザーも少なくなかったからだ。.NET My Servicesは、ネットワークで接続されたサービス側で情報を管理することで、自由な利用を想定していた。しかも、.NET My ServicesはVista登場以前の2002年には中止に追い込まれる。
そこでVistaでは、ユーザーがそれぞれのアプリケーションでローカルディスクに保持している情報にアクセスできるようにすることが計画された。
そのためのWinFSは、ファイルシステムをデータベースのようにすることで、サードパーティアプリケーションが持つ情報をWindowsを介して自由に利用できるようにするためのものだ。このとき、情報を利用する側は、ファイルの構造(スキーマ)を理解する必要はなく、WinFSのAPIを使って、検索を行えば、該当の情報が得られるようにしてあった。サードパーティのアプリケーションの内部を完全に公開することなく、利用側のアプリに特定のアプリケーションに関する知識を要求しないためだ。
このWinFSは、当時開発していたYukon(やはり開発が難航し5年かかってSQL Server 2005となった)のXMLデータベース機能をベースにしていた。このYukonもそもそも.NET My Servicesを想定して開発が進められていた。
しかし、そのVistaの開発が混乱し、何回もリリース時期が延期された。Vistaは、統一されたカーネルをベースにWindowsを作り替えようとするものだった。しかし、単に基本部分を作り替えるだけでなく、その上で多数の機能を搭載し、まったく違うものにするというのが目標になった。
そもそもVistaのコードネームであるLonghornは、著名なスキー場である「Wistler」(Windows XPのコードネーム)とBlackcomb(次世代Windowsのコードネーム)の間にあるロッジの名称である。つまり、隣のスキー場に行くときに休憩する中間地点でしかなかった。
Vistaでは、.NET Frameworkを新たなAPIセットである「WinFX」とし、XMLで情報を統一的に扱うWinFS、XML Webサービスのための通信機能である「Indigo」(正式名称はWindows Communcation Foundation。WCF)、あらたなグラフィックス描画システムであるAvalon(WPF。Windows Presentation Foundation)など、Windowsを作り替えると同時に、さまざまな機能をVistaに組み込むことが計画された。
当時の講演では「(Vistaでは)携帯電話に着信すると、(Bluetoothで接続している)PCに着信が通知され、発信者の名前やメールアドレス、勤務先などの情報や最近やりとりしたメールやメッセージの一覧が表示される」といったことが実現されるとしていた。しかし、Vistaは開発がリセットされるときにほとんどの機能が放棄され、結局、2006年にリリースされた製品では、APIはWin32のまま、WinFSは別リリースとなったが、不完全なまま終了し、結局WPFやminiWinといった基本部分の改良だけが残った。
機能を盛り込みすぎて失敗したVista
Windows 7の開発では一旦後退を余儀なくされた
筆者が見た感じでは、Vistaの失敗は、機能の盛り込みすぎにあった。新しいカーネルをベースにAPIセットを変更するというのは、OSとしてはフルスクラッチに近い、しかも互換性は維持しなければならない(当時はまだDOSとの互換性も必要だっだ)。そのうえで、改良されたオペレーティングシステムの上に、これでもかというぐらい新機能を盛り込んだ。
Vistaでは、当時はまだ2Gだった携帯電話によるデータ通信に「NDIS」ドライバを拡張するという構想まであった(これは、Windows 8でようやく実現する)。一方でWinFSでは、ファイルシステムとしての処理速度が上がらないという問題があった。このため、アプリケーションの実行速度が遅くなってしまい、実用にならなかったという。
その後、Windows 7の開発とリリースがあるが、XPのレベルに戻すというのが主眼となり、好意的に受け取られたものの、クラウド的な機能は、特に入ることがなかった。
一方で並行して、AzureやOffice 365、Bing、Outlook.com、OneDriveといったマイクロソフトの「クラウド」サービスが充実した。この頃はGoogleがクラウドでマイクロソフトをリードしており、傍目からは、マイクロソフトがクラウドサービスを充実させているようにしか見えなかった。しかし、実際には、2001年の基本構想へ、最新の動向をとりいれつつ、回帰する動きだっだともいえる。
気になるのは、この時期、マイクロソフトの「チーフ・ソフトウェア・アーキテクト」だったのがレイ・オジーだったこと。同氏は、Lotus Notesの開発者で、その後Groove Networksでドキュメントベースの共同作業システムを開発していた。Groove Networksは、2005年にマイクロソフトに買収されるが、当時レイ・オジーはサードパーティの立場で2001年のHailStormのプレスリリースにパートナーとしてのメッセージを載せてる。ある意味、マイクロソフト社外の一番の理解者がレイ・オジーだったのだ。
しかし、マイクロソフトはそのまま過去の方向に回帰したというわけでもない。たとえば、当初、マイクロソフトがAPIのベースに想定していたのは、HTTPをベースにXMLをやりとりするSORPを基本にしたXML Webサービスを想定していた。しかし、現在では、JSON形式(2006年)のデータをHTTPで直接やりとりする方式がAPIが主流。たとえば、Microsoft GraphはURLにパラメーターを含めてAPIを呼び出し、応答はJSON形式のデータとなる。
ちなみに、Googleマップなどで話題になったAJAX技術で利用されるXMLHttpRequestというブラウザのAPIは、マイクロソフトがXML Webサービス用に設計した機能がベースになっている。名称のXMLは、その名残だ。
マイクロソフトの.NET/XML Webサービス/.NET My Servicesは、大きなインパクトはあったが、結局Googleなどのクラウドサービスが世の中に普及することになる。クラウド以前にクラウドを指向し、現在は、クラウドのスタイルに合わせて当初の理念を実現しつつある、それがWindows 10の一連のRed Stoneアップデートなのである。
次回は、このMicrosoft Graphを具体的に見ていくことにする。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ