Insider's Eye Longhornの機能と構造 2.Longhornを支えるWinFX APIデジタルアドバンテージ2003/11/14 |
|
|
それでは、次はLonghornの内部について見ていくことにする。PDC03の基調講演では、ジム・オルチン(Jim Allchin)氏がLonghornの内部アーキテクチャについて紹介した。
.NET Frameworkの名前空間チャートを紹介するジム・オルチン氏 |
PDCの参加者には、WinFXの追加機能に対応した、新しい名前空間(クラス)を記述したこのようなチャートも配布された。 |
前回述べたように、Longhornとは、AvalonやWinFS、Indigo、NGSCBなどをサポートした、次世代のクライアント向けWindowsシステムである。その基本的な方針を簡単に述べると、現在のWindows XPをベースにして、情報を管理、活用するためのさまざまな新機能(特にWinFSやIndigoなど)を盛り込み、AvalonやAeroによって先進的なユーザー・インターフェイス(ユーザー・エクスペリエンス)を実現し、さらにNGSCBなどによってセキュリティを強化したOS、ということになるだろうか。そしてそれを支えるのが、.NET Frameworkを核としたマネージ・コードへの移行(の推進)である。Longhornは.NET Frameworkを標準で装備する初めてのクライアントOS(となるはず)であり、これを機会にさまざまな機能拡張を行っている。
その最も大きな機能追加が、WinFXという新しいプログラミング・インターフェイスの採用であろう。基本的にWinFXとは、現在の.NET Framework 1.1に対して、AvalonやWinFS、Indigo、NGSCBなどのサポートを追加したものと考えればよいだろう。だがこれらが従来のWin32の拡張としてではなく、.NET Frameworkの上に実装されたのは、やはり.NET Frameworkの信頼性や拡張性(特に64bit化など)がWin32のそれよりもはるかに優れているからだと考えられる。またマルチメディアなどを駆使した先進的な(だが数年後には当たり前になりそうな)ユーザー・エクスペリエンスを実現するためには、現在のWin32/GDIとDirectXが並存している状況では、実現が困難であるからという理由もあると思われる。これらのAPIは、複数の表示を頻繁に切り替えて使うような用途には向いていないので、例えばビデオ(DirectX)を使うアプリケーションが2つ同時に動作するだけで、たちまちシステムは不安定になってしまうし、画面表示もぎくしゃくしてしまう。そこで、すべてのプレゼンテーション機能をDirectXベースに移行し、さらに昨今急速に機能を強化しているグラフィックス・システム(GPU)を活用すれば、マルチメディアを駆使したユーザー・インターフェイスを容易に実現できることになるだろう。そう考えて.NET Frameworkへの移行と、Avalonによって実現されるような新たな機能の導入に踏み切ったものと思われる。
ただ、多くの機能を盛り込むことによってOSそのものは大きくなり、場合によってはパフォーマンスも低下すると考えられる。OSのカーネル自体にも改良を加え、「パフォーマンス改善のためにいわゆる『スーパーフェッチ』という手段を利用する。これは、将来必要となるデータをより洗練された方法で、ヒューリスティックに(発見的手法で)先読みする方法だ。ほかにもさまざまな改良を施し、パフォーマンスは維持できるだろう(オルチン氏)」としているが、実際にどうなるかはやはり出荷されるまでは分からない。
WinFXから始まる新時代のWindowsアプリケーション開発環境
さてそれでは、次にWinFXのアーキテクチャについて見てみよう。以下は、オルチン氏が掲げていたWinFXの名前空間チャートである。現在の.NET Framework 1.1と比較して、新しく追加された名前空間やクラスに「NEW」という印を付けている(ただし細かいサブクラスなどについては省略している)。
WinFXの.NET Frameworkクラス・ライブラリ名前空間 |
現行の.NET Framework 1.1と比較して、新しく追加された部分に「NEW」という印を付けている。ただし細かいサブクラスなどについては付けていない。 |
Longhornで新しく導入される機能はすべてこの.NET Framework上に実装されている(もしくは呼び出せるようになっている)ことが分かるだろう(PDCレポート第2回のアーキテクチャ図も参照のこと)。このため、.NET Frameworkを使わない従来のアプリケーションは、Longhornの恩恵を受けるのが困難になると予想される。
もっとも実際にLonghornが出荷されるまであと2年(3年以上?)あるので、このうちの一部の機能が順次、現行の.NET Framework上でも利用できるようになるだろう。例えばIndigoの機能などは、Longhornでなくても利用できるだろう。だがAvalonやWinFSはLonghornの核心となる機能なので、Longhorn以前には利用できないだろうし、NGSCBについても、ハードウェアやOSカーネルでの対応が必要になるので、やはりLonghornまで待つことになるだろう。結局のところ、ほとんどの機能はLonghornが発売されるまでは利用できない。とはいえ読者がLonghorn対応アプリケーションを開発しようとするデベロッパーなら、2年という期間はけして長すぎるとはいえないだろう。
アプリケーションの互換性に関しては、「現在Win32アプリケーションを持っているのなら、セキュリティの問題などがなければ、それはLonghornでそのまま動作する」「すでに.NET Frameworkを使っているのなら、それはLonghornで動作するし、WinFX APIへの道にいる」(オルチン氏)としている。また「Longhornに向けて新しいアプリケーションを作成すれば、WinFX環境の利点をフルに生かすことができる」とも述べた。要するに、.NET Frameworkを使う以外に、Longhornの全機能を利用することはできないのである。従来バージョンのWindows OSとの互換性のために、.NET Framework環境へ移行していない開発者も多くいると思うが、Win32のままでとどまるか、それともLonghornから始まる新しい世代へ向けて一歩を踏み出すべきか、重大な決断を迫られることになるかもしれない。
Longhornへの道 |
現在Win32ベースのプログラムを作成している場合は、まずは.NET Frameworkを使ったマネージ・コードへ移行するのがLonghornへの第一歩である。 |
クライアントOSのロードマップ
Longhornに向けたWindowsクライアントのロードマップについて見ておこう。今回のPDCでは、クライアント向けLonghornのプレビュー版(英語版)が配布されたが、これはベータ版以前の、本当に初期のバージョンである。実際にある程度仕様などが固まったLonghornベータ版は、来年の夏以降(来年後半)に提供される予定である。
クライアントOSのロードマップ |
Longhornのベータ1版は、来年後半に提供される予定である。Windows XPについては、SP2が来年前半、AMDの64bitプロセッサ向けWindows XPは来年後半となっている。 |
更新履歴 |
【2003/11/14】.NET Frameworkに関する記述において、当初は「Longhornは.NET Frameworkを標準で装備する初めてのOS」としておりましたが、すでにWindows 2003 Serverに搭載されているので、「Longhornは.NET Frameworkを標準で装備する初めてのクライアントOS」と記述を改めました。お詫びして訂正させていただきます。 |
INDEX | ||
Insider's Eye | ||
Longhornの機能と構造 ― PDC 2003レポート No.3 ― | ||
1.Longhornファースト・ルック | ||
2.Longhornを支えるWinFX API | ||
3.XAMLによる宣言型のアプリケーション開発 | ||
「Insider's Eye」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|