米Microsoft社は2005年以降に出荷予定の次世代OS「Longhorn(開発コード名)」で画面描画,ファイル・システム,通信機構を刷新する。Longhornの新機能をフルに利用するには,新API「WinFX」を使う必要がある。現在もWindowsのAPIとして主役の座にある「Win32」は,Longhornではその座を降りる。

図1●米Microsoft社の次期Windows「Longhorn(開発コード名)」のアーキテクチャ
写真1●Avalonの開発言語「XAML(eXtensible Application Markup Language)」のコード
HTMLに似たタグで画面を生成するコードを記述する。関連付けるプログラム・コードを別ファイルとして分離できる。
写真2●WinFSで生成した仮想フォルダ
文書群をフォルダとして見せている。写真は作成者ごとに仮想フォルダが生成された状態。仮想フォルダを開くと,ファイルの一覧が表示される。
図2●米Microsoft社 Longhorn 関連製品のロードマップ
2005年以降は本誌予測。
 米Microsoft社が次世代のアプリケーション実行環境として2000年7月に公開した.NET Framework。その.NET Frameworkの次版は名称をWinFXと改め,ついにWin32を置き換える。2003年10月27日(米国時間)から米国のLos Angelesで開催されたWindows開発者向け会議「Professional Developers Conference 2003(PDC 2003)」でベールを脱いだLonghornは,WinFXがメインAPIとなっていた。

 WinFXはこれまでの.NET Frameworkに,(1)画面描画機構「Avalon(開発コード名)」,(2)データベースを使ったファイル・システム「WinFS(同)」,(3)そしてアプリケーション間通信機能の改版「Indigo(同)」を追加したものだ(図1[拡大表示])。これらにより,Win32 APIが提供してきたOSの機能をほぼすべてカバーする格好になる。WinFXは当然.NET Frameworkとの互換性は保たれる。ただしLonghornでWin32が使えなくなるわけではない。「Win32および.NET FrameworkのAPIを使った既存のアプリケーションはLonghornで動作することを保証する」(Microsoft Platforms Group Group Vice PresidentのJim Allchin氏)。Win32で事足りるアプリケーションであっても,WinFXを使えば「アプリケーションのインストール時に再起動する必要がほぼなくなる」(Allchin氏)。だからWinFXに移行すべき,ということだ。

新マークアップ言語でコードとUIを分離する「Avalon」

 Win32で実現できて.NET Frameworkでは対応していなかったもの。その最大の要素がDirectXに基づく描画機構である。これに相当するのが(1)のAvalonだ。

 Windowsのグラフィックスは,これまではビットマップ形式でデータを保持していた。Avalonではこれをベクトル形式のデータで管理する。半透明のウインドウの重ね合わせ処理や,拡大・縮小が容易になるのが特徴だ。この意味でAvalonはMac OS Xの画面描画機構「Quartz」と同様のものといえる。

 またAvalonの開発言語がXAML(eXtensible Application Markup Language:ザムルと読む)と呼ぶマークアップ言語であるという点も注目したい。Avalonでは,ウインドウやボタンの生成をXAMLの独自タグで記述する(写真1[拡大表示])。この機構を使って,プログラム・コードと画面の体裁を記述するコードを分けた。ASP .NETと同じ形態だ。「ユーザー・インタフェースのデザイナとプログラム開発者の作業を切り分けられ,効率が上がる」(Allchin氏)。XAMLによるユーザー・インタフェースの開発機能は,Longhornに合わせて提供する次世代Visual Studio .NET「Orcas(開発コード)」で実現する予定だ。

 WinFXではAvalonと.NET Frameworkのウインドウ描画オブジェクト「Windows Forms」を使ってユーザー・インタフェースを構成する。XAMLで記述したボタンやテキスト・ボックスといったコントロールは.NET FrameworkのWindows Formsのコントロールである。逆にWindows FormsのプログラムからAvalonの機能を呼び出すことも可能だ。このあたりはWin32のコントロールとDirectXの描画機構と同じ関係である。

ファイルの場所を意識しない仮想フォルダを生成する「WinFS」

 Longhornのデモにおいて主役を演じた感のあるのが(2)のWinFSだ。PDC 2003初日の基調講演で米Microsoft社会長兼チーフ・ソフトウェア・アーキテクトのBill Gates氏は「情報はファイルごとにばらばらに格納されている。検索の操作もアプリケーションごとに違う」と現在のWindowsの問題点を指摘。WinFSはこの問題点を解消すると宣言した。

 Longhornではマイドキュメント・フォルダをWinFSの管理下に置く。これまで音声ファイルは「マイミュージック」フォルダに,画像データは「マイピクチャ」フォルダにと,ユーザーが階層構造を意識して管理していた。WinFSでは格納したファイルが持つ音声や画像といった属性情報で管理できる。「スタック」と呼ぶ仮想的なフォルダを動的に生成して表示する(写真2[拡大表示])。WinFSへのクエリーがフォルダとして,クエリーの結果がファイルの一覧として見えるイメージだ。一つのフォルダに対して複数の操作も可能だ。例えば,Gates氏に関連する情報をまとめた仮想フォルダ(Gates氏の顔写真が表示されている)を右クリックして「Show Communication history」を実行すると,Gates氏が作成したメールやFAX,作成したドキュメントなどが一覧表示される。

 検索対象はローカルのファイルだけではない。Webサービスを通じてネットワークに接続した他のパソコンのファイル(こちらもWinFS配下でなければならない)も関連付けられる。WinFSは同社の次期SQL Server「Yukon(開発コード名)」を核にしており,Webサービスとの情報交換やデータの同期といった機能はYukonと同じものが利用できる。

 もっとも動的に仮想的なフォルダを生成する作業はコンピュータにかかる負荷が大きい。そのためLonghornでは,標準ではマイドキュメント・フォルダに格納するファイルのみWinFSで管理する予定だ。Gates氏は2006年には動作周波数が4G~6GHzのデュアルコアCPU,2Gバイト超のメモリー,1Tバイト超のハードディスクが一般的になり,この制約がなくなるとの見解を示した。

サービスの実現を容易にする通信機構「Indigo」

 .NET構想の推進という観点から見れば,最も重要な新技術は(3)のIndigoだろう。現行の.NET Frameworkで分散アプリケーションを開発するとき,開発者が通信の信頼性を保証するミドルウェアのレベルからコーディングする必要がある。そこでIndigoでは,開発者がアプリケーションの機能の開発に専念できるよう,アプリケーションが外部プログラムと連携するためのインタフェースを「サービス」としてプログラミングできるようにする。「緩やかな連携(疎結合)」により柔軟なシステム改変を可能にする「サービス指向アーキテクチャ(SOA:Service-oriented architecture)」の考えを取り入れたものだ。

 具体的には,アプリケーション間通信を抽象化した「port」と呼ぶオブジェクトを用意する。Indigoを使うプログラムは,このportオブジェクトを対象にトランザクション管理やセキュリティおよび非同期通信の有無を指定するスタイルで記述する。portオブジェクトの利用場面は分散アプリケーションに限らない。Indigoによる開発環境では,ローカルのアプリケーション間通信を含めて,アプリケーション間通信のプログラミング・スタイルが統一される。

 IndigoのコンセプトはWebサービスをさらに発展させ,すべての密結合によるアプリケーション間連携を疎結合に変えていこうというものだ。これによりサーバー間連携ばかり取りざたされてきた.NET構想が,クライアント・アプリケーションのレベルに広がる可能性をもたらす。例えばWindows XP向けに用意したアドホックな名前解決のプロトコル「PNRP(Peer Name Resolution Protocol)」をIndigoに統合する。これでピアツーピア(P2P)の機能を実現できる。クライアント同士がサービスを使って連携する基盤となる。.NET構想推進のため,WinFXのうちIndigoだけはWindows XP/Server 2003向けの拡張版.NET Frameworkとして提供する。

脱Win32への布石となる次期VS .NET「Whidbey」

 PDC 2003では,コンセプトの発表だけでなく,実際にAvalon,WinFS,Indigoのプログラムを試せるLonghornのプレビュー版を参加者に配布した。プレビュー版ではあるが,WinFXのAPIはほぼすべて備えている。ただし統合開発環境はなく「MS Build」と呼ぶコマンドライン・ベースの開発ツールを使う。

 統合開発環境のVisual Studio .NETがWinFXに対応するのは,Longhornに合わせて出荷されるOrcasを待つことになる。OrcasはAvalonによるビジュアル・プログラミングやWinFSを使ったアプリケーション開発の支援などLonghorn向けのコードを自動生成する機能を備える予定だ。

 2004年内に登場するのは次期Visual Studio .NET「Whidbey(開発コード)」とデータベースのYukonだ(図2[拡大表示])。WhidbeyはYukonとの連携やASP .NETのコントロールを増やすなど,Longhornに向け開発者を.NET Frameworkベースの開発環境に惹きつけるためのメジャー・バージョンアップだ。

 WinFXと同様に開発者が対応を迫られる技術としては,Longhornで搭載予定の新セキュリティ機構「Next-Generation Secure Computing Base (NGSCB)」がある。これについては,PDC 2003中はあまり触れられなかった。NGSCBはハードウェアとの連携が肝なので,大々的なデモは2004年5月のハードウェア開発者会議「WinHEC 2004」が発表の場になりそうだ。

(高橋 秀和)