画面1  WinFSをExplorerで見ているところ<BR>格納領域は「WinFS Stores」として表示する。Default Storeがデータベースに相当。Default Store下にフォルダやファイルを格納する。Default Store以外に新たにWinFS Storeを追加することもできる。
画面1 WinFSをExplorerで見ているところ<BR>格納領域は「WinFS Stores」として表示する。Default Storeがデータベースに相当。Default Store下にフォルダやファイルを格納する。Default Store以外に新たにWinFS Storeを追加することもできる。
[画像のクリックで拡大表示]
画面2  WinFSのサンプル・アプリケーション「WinFS StoreSpy」&lt;BR&gt;WinFSのAPIによってPhotoクラスのファイルを表示させたところ。
画面2 WinFSのサンプル・アプリケーション「WinFS StoreSpy」<BR>WinFSのAPIによってPhotoクラスのファイルを表示させたところ。
[画像のクリックで拡大表示]

 リレーショナル・データベースを基盤にしたファイル管理機構「WinFS(開発コード名)」。そのベータ第1版の提供が,2005年8月30日に突如始まった。当初は次期Windows「Windows Vista(開発コード名:Longhorn)」に組み込む予定だったWinFS。しかし開発の遅れから,Windows Vista出荷後にアドオンとして提供する形態に路線を変更。Windows Vista出荷後の2006年内にベータ第1版を提供するとしていた。今回のベータ第1版は,ほぼ1年前倒しで提供を始めたことになる。

 早期に提供を始めた理由は,アプリケーション開発者にWinFSの利用を促すため。MicrosoftがWinFSによるシェル(Explorer)の拡張を将来のOSで施しても,そもそもファイルがWinFSに格納されていなければ意味がないからだ。

安定度を高めて開発促進

 実際に試してみたところ,ベータ第1版としては安定して使える印象だ。Longhornプレビュー版のときはしばしば応答がなくなるなど不安定だったが,長時間連続して使えそうだ。

 WinFSをインストールすると,ルート・ディレクトリに「WinFS Stores」というフォルダが現れる(画面1[拡大表示])。WinFS Stores下には,「DefaultStore」というフォルダが一つある。このフォルダは仮想的にフォルダとして見せているもので,実体はリレーショナル・データベースのテーブル群に相当する。Default Store以外にも自由にフォルダを作成できるため,使い勝手はNTFSなど既存のファイル・システムと変わりはない。Longhornプレビュー版では,Explorer上で名前を変更することさえできなかった。

 ただ相変わらず,2.8GHz動作のPentium 4/512Mバイト・メモリー搭載機でもフォルダをたどる際の反応は鈍い(推奨は2GHz動作のマイクロプロセッサ/512Mバイト以上のメモリー)。

 WinFSにファイルを保存すると,あらかじめ定義されたスキーマに従って属性情報が格納される。デジタルカメラで撮影した画像であれば,絞り値やカメラメーカーなどを属性情報として記録する。例えば,付属のサンプル・プログラム「WinFS StoreSpy」を使うと,WinFSが保持する属性情報を一覧できる(画面2[拡大表示])。総量500Mバイト程度のファイル群の一覧表示は,1秒前後で終わった。

本格的な開発はAPIの統一待ちか

 WinFSと同様,Windows Vistaへの統合が決まっている「MSNサーチツールバーwith Windowsデスクトップサーチ(WDS)」も開発者向けにAPIを公開している。ただファイル形式の分類やその名前付けといったAPIの記法は,WDSとWinFSで異なる。かたやインデックス型の検索エンジン,かたやリレーショナル・データベースと目的が異なるソフトウェアなので当然だと言えるが,せめてMicrosoft製品同士である程度は共通化してほしい。現在のところは古くからあるSQL(Structured Query Language)が両者の共通語となる。

 WinFSとWDSに代表されるMicrosoft製品内で乱立するデータ格納機構に対する同社の解は,2005年9月11~16日に米ロサンゼルスで開催される開発者会議「Professional Developers Conference 2005」で発表される予定の「.Net Language Integrated Query Framework」。あらゆるデータストアに対するアクセス手法を統一するクエリー言語となる。現時点で詳細は不明だが,次世代Visual Studio「Orcas(開発コード名)」で本格的に利用できるようになる予定だ。