Vistaの地平
第1回 Windows Vistaとは何か?

2.Vista OSの構成

デジタルアドバンテージ 小川 誉久
2006/09/15

Vista OSの構成

 Vistaでは、前述した高度なグラフィックス機能をはじめ、アプリケーション間通信機能が以前よりも大幅に強化され、ワークフロー処理機能が標準で搭載される。これらの機能を利用するためのアプリケーション用のインターフェイス(API)が提供されており、Vista対応アプリケーションは、これらのAPIを経由することで、Vistaの最新機能を活用できる。

 従来のWindows XPのAPIは、32bit CPU対応のWindows APIという意味で、“Win32”と呼ばれている(16bit CPU時代はWin16と呼ばれていた)。これに対しVistaのAPIは、.NET Framework 3.0と呼ばれる。Vistaに搭載される.NET Framework 3.0の構成を図にすると次のようになる。

.NET Framework 3.0の構成
Vistaでは、Vistaの新機能、強化機能をアプリケーションが利用できるようにするための、.NET Framework 3.0と呼ばれる新しいAPIが提供される。内部は、.NET Framework 2.0に加え、グラフィックスAPIのWPF、コミュニケーションAPIのWCF、ワークフローAPIのWFなどで構成されている。

 以前からVistaに関する情報に触れていた読者の中には、「おや」と思う向きがあるかもしれない。これまでマイクロソフトは、VistaのAPIを“WinFX”(ウィン・エフ・エックス)と総称していた。これが土壇場(ベータ・テストまっさかりの2006年6月)になって.NET Framework 3.0に変更された。マイクロソフトでは珍しいことではないが、少なからず混乱要因になっていることは間違いない(事実、原稿執筆時点でも、マイクロソフトのWebサイト表記の多くがWinFXのままになっている)。

 詳細は後述するが、WPF(Windows Presentation Foundation、開発コード名=Avalon:アバロン)はVistaのグラフィカル・インターフェイス、WCF(Windows Communication Foundation、開発コード名=Indigo:インディゴ)はVistaのネットワーク/サービス・インターフェイス、WF(Windows Workflow Foundation)はワークフロー処理を支援するインターフェイスである。

“WinFX”から“.NET Framework 3.0”へ

 WinFXから.NET Framework 3.0への名称変更について、マイクロソフトは次のWebページで説明している。

 もともと.NET Frameworkは、Windows OSに追加インストールすることで、.NET対応アプリケーションを実行可能にするコンポーネントであり、すでにVer.1.0、1.1、2.0がマイクロソフトから無償提供されている(提供対象はWindows 98、Windows 98 SE、Windows Me、Windows 2000、Windows XP、Windows Server 2003。なお1.0と1.1では、Windows NT 4.0もサポートされる)。

 現行の最新版である.NET Framework 2.0をベースAPIとして包含しながら、WPF、WCF、WFという新しいAPIを統合したのが.NET Framework 3.0ということになる。前記ページでのマイクロソフトの説明によれば、名称変更の理由は、「WinFXと.NET Frameworkという2つの名前が存在することによって、混乱を招く可能性があるから」とのことだ。

 互換性がどこまで実現されるのか、まだあまり明確にはなっていないが、マイクロソフトは、既存Windows OS(Windows XPとWindows Server 2003)向けに、Vista対応アプリケーションを実行可能にするためのサブシステムを、追加コンポーネントとして提供するとしている。原稿執筆時点(2006年9月)で、.NET Framework 3.0のRC版がWindows XP、Windows Server 2003向けに提供されている(ダウンロード・ページ)。

 このRC版の情報を見ると、既存Windows OS 向け.NET Framework 3.0にも、WPF、WCF、WFのすべてのサブシステムが含まれていることが分かる。

グラフィックス・ハードウェアの能力を生かしたアプリケーション開発を可能にするWPF

 .NET Framework 3.0で新たに追加されるWPF、WCF、WFの各サブシステムについて、簡単にまとめておこう。

 Vista対応アプリケーションが、新しいGUIを実現するために利用するAPIがWPF(Windows Presentation Foundation)である。冒頭でご紹介したとおり、Vistaの大きな特徴の1つは、3D表示やアニメーション、透明表示など、従来は一部のゲームなど、マルチメディア・アプリケーションしか使わなかった高度な表現能力が、統一的なプログラミング・モデルを通して、Vistaアプリケーション全般で利用可能になることだ。

 グラフィックス・ハードウェアに密接して、このような高度なグラフィックス表現を可能にしているのがDirectXサブシステムだ。そもそもDirectXは、高精度のグラフィックス表示を高速に行う必要があるマルチメディア・アプリケーションが、できるかぎり直接グラフィックス・デバイスを制御し、より小さな負荷でデバイスの能力を引き出すために作成されたサブシステムであった(名称の“Direct”がこれを示している)。しかしこれまで、Officeに代表されるようなビジネス・アプリケーションでは、このDirectXではなく、初期のWindowsから綿々と発展してきた伝統的なグラフィックス・インターフェイスのGDI(Graphics Device Interface)が使われてきた。

従来のアプリケーション構成
従来、DirectXを使用するのは、ほとんどマルチメディア・アプリケーションぐらいしかなかった。

 これに対しVistaでは、ビジネス・アプリケーションであっても、共通のプログラミング・モデルであるWPFを通し、DirectX経由の高度なグラフィックス描画が可能になった。ただし、従来のGDIを利用するWin32アプリケーションがVistaで実行できないというわけではない。これらのアプリケーションをVistaで実行できることは基本的に保証されている。

 気になるのは、WPFでビジネス・アプリケーションがどのように変わるのかということだが、これはアプリケーション次第で、当のマイクロソフトも、WPFのビジネス・アプリケーション活用について研究を重ねている段階だと思われる。Vistaと同時期にOfficeの新バージョン(2007 Microsoft Office System、以下Office 2007)も発売される予定だが、このOffice 2007は、.NET Framework 3.0を前提としたものではない。従ってWPFの高度なグラフィックス機能が、Officeのようなビジネス・アプリケーションでどのように活用されるのかを知るには、しばらく時間がかかるだろう。逆にいえば、アプリケーション開発者は、Vistaの性能をフル活用する次世代アプリケーション像を提案できる段階ともいえる。

幅広いコミュニケーション機能を統一的なプログラミング・モデルで利用可能にするWCF

WCF概説

 インターネットの普及により、その通信基盤となっているTCP/IPHTTPなどといった通信インターフェイスを利用し、Webやメールなどの通信機能を備えるアプリケーションは珍しくなくなった。しかしTCP/IPやHTTP、SMTPなど初期のインターネット通信プロトコルは、シンプルで扱いやすいという長所がある半面、汎用のアプリケーション連携プロトコルとしてはあまりにプリミティブで実装に手間がかかること、セキュリティやトランザクションの保証など、ビジネス・アプリケーションに必要な機能が十分に提供されないという問題がある。

 これに対しマイクロソフトやIBMをはじめとするいくつかのコンピュータ・ベンダが中心になり、次世代のアプリケーション連携用インターフェイスとして開発したのが、XMLSOAPを基盤とするWebサービスである。Webサービスの特徴は、通信のベース・プロトコルとしてHTTPなど既存のインターネット・プロトコルを使用可能で、特別な準備をしなくても、普及したインターネット・インフラを利用した通信ができることだ。Webサービスは特定ベンダに依存しないオープンな仕様であり、各社がWebサービス仕様に準拠したシステム・サービスやミドルウェアなどを提供している。マイクロソフトは、2000年の“.NETビジョン”の発表当時から、Webサービス対応を前面に掲げ、.NET Frameworkの初期版(1.0)からWebサービス対応機能を提供していた。

 Webサービス仕様を提唱したマイクロソフトとIBMは、先に提案したWebサービス仕様を基に、ビジネスでの利用を前提として、さらに一歩進んだWebサービスの拡張仕様を提唱した。これは当初GXA(Global XML Web Service Architecture)と呼ばれていたが、その後いくつかの仕様が整理統合され、現在ではWSE(Web Service Enhancements)と呼ばれている。WSEは、XML+SOAPというWebサービス基盤を前提に、高度なセキュリティ機能やトランザクション機能など、エンタープライズ・レベルのビジネス・アプリケーションが要求する各種機能を提供する。

 いま述べたWebサービスや、拡張仕様のWSEだけでなく、柔軟で拡張性の高い.NETリモート処理(.NET Remoting)や、非同期メッセージによるアプリケーションの疎結合に適したメッセージ・キュー(MSMQ)など、.NETアプリケーションが、アプリケーション間連携を実現するために選択できるインターフェイスにはさまざまな種類がある。これらはそれぞれ、歴史的に必要があって開発されたものであり、それぞれに特徴があるのだが、互いに目的や機能が重複する部分もある。ひと言でいえば、未整理な状態で複数のテクノロジが提供されているということだ。

 WCF(Windows Communication Foundation)の大きな目的の1つは、このように乱立してしまったアプリケーション・インターフェイスを整理統合し、単一のプログラミング・モデルで、アプリケーションが最適なコミュニケーション機能を実装可能にすることである。

「状態管理」機能を標準化したWF

Workflow Foundation概説

 GUI機能を提供するWPF、コミュニケーション機能を提供するWCFに比較して、従来の視点では存在価値を理解しにくいのがWF(Windows Workflow Foundation)だろう。“workflow”は「仕事の流れ」という意味だが、ソフトウェアの観点で見れば、状態(ステート)管理を意味する。

 例えば稟議書の承認順序や、オンライン・ショッピングにおける決済手順など、私たちが仕事や生活で直面する作業の多くは、処理順序があらかじめ規定されていることが多い。課長の決裁がなければ部長の決裁は取れないし、クレジットカードが認証されなければ購入手続きは進められない。このように、ある処理を実行する際、現在どの状態にあるのかによって、実行すべき処理を切り替えるのはごく一般的なことだ。これを実現するには、現在の状態、すなわち「ステート管理=ワークフロー管理」が必要になる。

 ワークフロー管理のための共通基盤がなかったこれまでのビジネス・アプリケーションは、必要に応じて各アプリケーションが状態管理を行っていた。これでも、各アプリケーションがまったく独立して動くのなら問題はない。しかし類似するワークフロー処理を異なる複数のアプリケーションに実装するのは効率的ではないし、アプリケーション間で「状態」を共有することもできない。状態管理機能をWFとして外部化し、API化することで共有が可能になる。事実マイクロソフトは、将来のOffice、BizTalk Serverなど、複数の製品をWF対応にし、製品間を横断して状態管理を共有させると説明している。将来的にWFは、業務アプリケーションのワークフロー処理、Webサイトなどのページ・フロー処理、SOAモデルにおける異機種サービス間でのワークフロー処理の共通基盤となるだろう。

 WFは、アプリケーション向けのプログラミング・モデル、実行時ランタイム・エンジン(クライアント/サーバ双方で利用可能)、開発ツールで構成される。具体的には、.NET Framework 3.0内のクラス・ライブラリ、アプリケーション実行時にアプリケーション・プロセス内部で実行されるランタイム・エンジン、Visual Studio 2005向けのワークフロー・デザイナである。Visual Studio 2005のワークフロー・デザイナを利用すれば、アプリケーションのワークフロー処理をグラフィカルにデザインできるようになっている。WFの価値を実感するには、WF対応アプリケーションの登場を待つ必要があるが、従来は不可能だった高度なアプリケーション連携が可能になる基盤として期待できるだろう。End of Article


 INDEX
  Vistaの地平
  第1回 Windows Vistaとは何か?
    1.Vistaのエディションと機能差
  2.Vista OSの構成
 
 「 Vistaの地平 」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間