Microsoft Professional Developers Conference 2003 レポート

Longhornの詳細が明らかに


会場:Los Angeles Convention Center, Los Angeles, 米
会期:10月26~30日(現地時間)


 米国ロサンゼルスで10月26日(現地時間)から開催されているMicrosoftの開発者向けイベント「Microsoft Professional Developers Conference 2003」(PDC 2003)で、Microsoftは次期Windows「Longhorn」(開発コード名)の詳細を明らかにした。

 Longhornは今年4月のWinHECで発表されたが、今回のイベントは開発者向けということもあり、ソフトウェア開発に必要なAPIセットやGUIなどの詳細が、カンファレンスなどで順次解説される予定。


●Win32からWinFXへ

参加者に配布するWinFXのオブジェクトチャートを見せてWinFXを発表するオルチン副社長

 最大のポイントは、LonghornではAPIセットが「WinFX」と呼ばれる新しいものに切り替わる点。従来のWindowsでは、Windows 95で採用されたWin32APIをベースにさまざまな拡張を行なってきた。しかし、Win32は16bitコードを含み、Windows 95以前のWin16をベースに32bit化したもの。例えばグラフィックス描画のためのAPIセットは、Windows 1.0で開発されたGDIを踏襲している。

 しかしLonghornでは、これを完全に新しいWinFXに切り替える。WinFXは、画面描画やGUI関連のAPIセットである「Avalon」(コード名)、データベースエンジンを使ったファイルシステム「WinFS」、通信ネットワーク関連のAPIセットである「Indigo」の3つの技術からなる。PDCの参加者に配布される資料の中には、WinFXのオブジェクトを表したポスター大のオブジェクト図が含まれており、基調講演やカンファレンスセッションでさかんに使われていた。


●ついにGDIからAvalonへ

 APIセットが大きく切り替わるということは、LonghornはWindows 95と同じぐらい大きなバージョンアップということになる。とくに画面描画関連が、DirectXをベースにしたAvalonになるのは大きな変化だ。ウィンドウ背景に画像だけでなく動画を表示できるようになったり、ウィンドウサイズに対して内部のコントロール類を自動的に再配置、サイズ変更するレイアウトマネージャが組み込まれたりする。

 従来のWindowsがGDIを使い続けたのは、この部分はデバッグが困難で、完成させるまでに長い時間が必要だからだ。実際、GDIはWindows 3.0/3.1あたりでようやく完成したといってもいい。さまざまな種類のデバイスに対して、さまざまなアプリケーションが描画を行なっても、同じように表示させるためには、細かい配慮が必要な反面、特定のハードウェアへの依存は排除しなければならない。GDIは、内部的な改良と、機能強化、カーネルの変更といったWindows進化の歴史のなかで、だんだんと完成度を高めてきた。

 しかしGDIは基本設計が古いため、特に3D表示機能などに対応できなかったり、進化するデバイスの機能を完全に引き出すことが難しくなってきた。そこで、Microsoftはゲームなどの画面高速処理のためにDirectXというインターフェースを用意し、これをGDIと並行して使っていくことで、完成度を高めていく方法をとった。DirectXをWindowsの基本グラフィックAPIに採用するという話は、すでに'96年頃から出ていたものの、どのタイミングで切り替えるかははっきりしていなかった。

Longhornのデモ画面。ウィンドウのタイトルバーが半透明になっている Longhornのユーザーインターフェイスを司るAvalon。メディアやWebアプリケーション、通常ソフトウェアが行なうグラフィック描画などを統合的に扱う Avalonを使ったサンプルプログラム。コンポーネントを斜めに配置することもできる。背景は動画になっており、雲が流れていくようになっている。こうしたサンプルをその場で作って見せるところがPDCらしいところ。ちなみにこのデモを行なった人は、エディタにemacsを使っていた


●大きく4つに別れるWinFX

 Longhornではグラフィックだけでなく、基本APIセットが完全に置き換わる。従来のプログラムとの互換性はエミュレーションレイヤーなどで確保するだろう。.NET対応アプリケーション(CLRによるマネージドコードと.NET Frameworkを使って作られたアプリケーション)は、ランタイムライブラリで、その違いを吸収できるため、ほぼそのままで利用が可能だという。

 APIセットのWinFXへの変更は、Win32、.NET Framework、DirectXなどのさまざまなAPI群を1つに統合したものともいえる。従来、別々に発展していた機能がWinFXという形で1つにまとまり、Windowsの基本機能として進化していくことになるわけだ。

 WinFXで用意されるAPI(プログラム側から見ればオブジェクト)は、大きく4つのグループに別れる。

  • Presentation (Avalon)
  • Data (WinFS)
  • Communication (Indigo)
  • Fundamentals
ファイルシステムだけでなくさまざまなデータを扱うWinFS。これにはアドレス帳のようなデータも含まれる Webサービスやメッセージングなど、コミュニケーション機能を司るのがIndigo。httpやTCP/IPによる通信などの機能をも含む

 Presentationは、画面表示などを含むユーザーインターフェイス全般。この部分がAvalonだ。Avalonは、前述のようにグラフィック描画システムを変え、新しいユーザーインターフェースを提供する。入手したβ版では、Windows 95以来のスタートメニューはあるものの、ウィンドウタイトルやメニューバーなどの構造が大きく違っている。

 Data関連は、WinFSと呼ばれる技術が使われている。これは、従来のNTFSなどのファイルシステムと、次期SQL ServerであるYukonのデータベースエンジンを使った新しいファイルシステムを統合したもの。このため、単なるストレージの管理だけでなく、格納場所やデータアクセスの方法までをカバーするAPI群となっている。

 たとえば、XMLの扱いや従来のSQL、ODBC、オーディオ、ビデオなどのメディアデータアクセスに関連するAPIがここに入っている。また、アドレス帳などのデータ管理もここで行なう。WinFSは、データ管理に関する総合APIとなっているわけだ。

 Communication関連のAPIセットは、Indigoと呼ばれている。ここは、WebサービスやPeer-to-Peer通信、リアルタイム通信(メッセージング)などの機能が入る。

 現在のWindows XPなどでの.NETサポートは、アプリケーションを作るための基本コンポーネントなどからなる.NET Frameworkと、CLRから構成されている。しかし、実際にWebサービスを使う場合には、Visual Studio .NET側でWebサービスの仕様を記述してあるWDSLを読み込んで、スタブになるオブジェクトを生成し、アプリケーション側はこれをサーバー側で提供されるサービスを持つオブジェクトとして扱うことで、アプリケーションが作られている。つまり、通信に関しては、VisualStudio側でつなぎ込みの作業を行なっているわけである。

 Indigoは、このあたりの通信関連のサポートをシステムで行なうべく作られている。また、現在、Windows Advanced Networking Pack for Windows XPで提供されているPeer-to-PeerサポートなどもこのIndigoに統合されたようだ。

 Fundamentalsは、これら以外の基本的なOSサービスなどであり、内部はさらに

Base & Application Servicesテキスト、言語処理、低レベル入出力など
Security認証、暗号化、アクセス制御など
Configurationコンフィギュレーション、リソース管理など
Deployment/Managementシステム管理、システム診断など

の4つに別れている。

 どれも、基本的には現在提供されているさまざまな技術の延長上にはあるものの、これらが統合されて、グループ化され、単一の名前空間内に配置されている。オブジェクト指向では、オブジェクトの名前がそれぞれを識別するのに使われるため、全体を系統立てて統合するためには、名前をきちんとつける必要がある。簡単にいえば、WinFXに属するオブジェクトは、すべてSystemオブジェクトクラスのサブクラスとして実現されている。

 これは、Windows自体が、オブジェクト指向OSとして、きちんとした構造を持ったということでもある。


●これがLonghornだ

今回配布されたLonghornβ版は、build 4051。番号などからすると10月1日に作成された物のようだ

 PDCでは、27日午前中の基調講演の後、Longhornβ版の配布が開始された。配布されているのは、Build 4051,idx02,031001-1340というバージョン。

 付属資料によれば、CPU 1.6GHz以上、メモリ1GB、グラフィックスボードは最低でもDirectX 7、推奨はDirectX 9対応で、VRAM 64MB以上である。

 基調講演などでのデモでは、DirectX 9ビデオチップを使っていたため、たとえばウィンドウのタイトルバーなどが半透明になるなどの特殊効果が有効だった。しかし、非DirectX 9装備のマシンでは、半透明にはならないなどの制限がある。また、ビデオチップの性能により、GUIの反応や効果などが大きく違ってくるようだ。

 GUIは現在のLunaに似ているが、右側に時計やシステムトレーを表示するバーが置かれている。これはツールバーを縦に並べたようなもので、ここにクイック起動や時計といったツールを配置できる。

 ウィンドウは、タイトルバーが大きくなっている。エクスプローラならば、ツリー階層をたどるボタンと、サーチ、お気に入りボタンがタイトルバーに置かれる(IEではここにURLを入力するアドレスバーが含まれる)。また、ウィンドウの右上には、従来通り、最小化/最大化/終了の3つのボタンが配置されている。IEのツールバーとタイトルバーが一体化したような感じ。

 これに対して、メニューバーや小さいアイコンのツールバー、従来ウィンドウ左側のペインを占有していたタスク表示などは、一体化してウィンドウ右側の上に配置された。つまり、全体がOutlook Expressのような3ペイン構造となっており、Outlook Expressでプレビューエリアとなる部分にファイルアイコンやリストが表示されるのである。

 また今回のβ版では、エクスプローラ上での縮小表示が標準となっており、たとえば画像ファイルなどは、デフォルトでサムネイル表示される。また、キーノートなどでのデモでは、Office関連のファイルも最初のページやExcelの表の左上部分がサムネイルとして表示されていた。

 画像などは、マウスカーソルを置くだけで、大きなサイズの画像や画像サイズがツールティップス形式で表示される。増大したCPUパワーを前提に、さまざまな表示を自動で行なえるようにしているようだ。

起動直後のLonghorn。画面下がタスクバー。右側のバーには、クイック起動や時計、従来のシステムトレー(通知領域)などを縦に配置できる。このバー自体は、表示を禁止することもできる スタートメニューはほとんどWindows XPと同じ JPEGファイルを含むフォルダをエクスプローラーで表示させると、ファイルアイコンがサムネイルとなり、さらにその上にカーソルを乗せると大きなサムネイルがポップアップ表示される

 Longhornは、モバイルPC(ノートPC)などにも最適化されたものとなるという。従来のWindowsは、メインターゲットがデスクトップマシンで、付加機能として電力管理やリジュームといった機能が付け加えられていた。しかしlonghornでは、設計段階からモバイルPCが想定されており、通信デバイスの自動選択やエラー、切断を想定した無線通信、GPSデバイスによる位置データの扱いが可能になっている。これに関連して、ExchangeやPDA(PocketPC)、WebのオフラインモードなどがSynchronize機能として統合された。つまり、他のマシンやデバイスなどと行なう同期作業を1つのマネージャーで管理できるようになっている。

 このβ版には、Longhorn用のPCエミュレーションソフト「Virtual PC」が付属している。つまり、これを使うことで従来のWindows XPまでのOSと完全に互換性を取ることが可能になる。ConnecixからのVirtual PC買収の目的は、単にMacintosh環境でWindowsプロダクツで使うためだけではなく、Longhornの互換性維持にもあったわけだ。むしろ、Macintoshでの利用うんぬんという話は隠れ蓑に過ぎなかったとさえいえるだろう。

 なお、Virtual PCを使わなくともWindows用に開発されたアプリケーション(つまりWin32アプリケーション)は、Longhornβ上で動作した。すべてのアプリケーションを動かしたわけではないので互換性のレベルについては語れないが、すくなくともLonghorn(のβ版)では、Win32APIのエミュレーションはサポートされているようだ。

 今回のβ版は意外と安定しており、頻繁にクラッシュするというものではない。ときどき致命的なエラーが起こるものの、Windows 98の初期バージョン程度といったところ。もっともこのβ版、WinFSのデータベースファイルシステムが動いておらず(インストールはNTFSで行なわれた)、なんだかWindows XPとそっくりな部分もある。このため、今後出るβ版でも内容がクルクルと変わっていく可能性が高い(Windows 2000のときもそうだった)。しかし、PDCでWinFXを披露したということは、デベロッパに対してWinFXでのアプリケーション開発の開始を促したことになる。Microsoftは、次世代Windowsへの一歩を確実に踏み出したようだ。


□PDC 2003のホームページ(英文)
http://msdn.microsoft.com/events/pdc/

(2003年10月29日)

[Reported by 塩田紳二]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2003 Impress Corporation All rights reserved.