Click



後藤弘茂のWeekly海外ニュース

アプリケーションソフトがなくなる、Windowsに依存しなくなる!?
~自らの土台をひっくり返すMicrosoftの.NET戦略~

●本気なら、かつてない大方向転換

 「Microsoft.NET」が完成すると、アプリケーションソフトはなくなり、ソフトウェアはWindowsに依存しなくなる。

 米Microsoftはこれまで、Windowsというプラットフォームにアプリケーションソフトを縛り付けることで、PC市場で強力な力を保ってきた。しかし、7月11日から14日まで米国オーランドで開催されたMicrosoftの開発者向け会議「Microsoft Professional Developers Conference(PDC) 2000」で示されたのは、そのMicrosoftの基本モデルを覆すアーキテクチャだった。もし、Microsoftが、この新しいアーキテクチャ「.NET」に本気だとすれば、それは、Microsoftがかつてないほど大きな方向転換を始めたことを意味する。Windowsを中心としたMicrosoftのアーキテクチャを全て転換し、ビジネスモデルを組み替えるというのだから……。一体Microsoftは何を考えているのだろう。

 「.NETでは、アプリケーションだったすべてのものが、本質的にWebサイトになる」

 .NETをこう説明したのは、Microsoftのビル・ゲイツ会長兼CSAだ。ゲイツ氏は、PDC 2000のキーノートスピーチで、今は別々なものとして存在するアプリケーションとWebサイトがひとつのものに融合すると述べた。Microsoft Officeのような大きなモジュールすら、時間が経つにつれてWebに移ってゆくだろうという。

 「それは、クライアント側にコードがダウンロードされないという意味ではない。むしろその逆だ。成功するWebサイトは、ダウンロードされるコードを持ち、そのコードがPC上のクリエイティビティソフトウェアと融合するようなものになるだろう。だから、アプリケーションではなくサービスと呼び変えるのだ」とゲイツ氏は続ける。つまり、Web上のソフトウェアコンポーネントが、ローカルのPC上のコンポーネントと連携する環境で、アプリケーション/サービスが構築されるようになるというわけだ。

 また、.NETテクノロジでは、プラットフォームはPCやWindowsである必要もなくなる。.NETテクノロジが移植されているプラットフォームであればいい。実際に、MicrosoftはWindowsやWindows CEを搭載しない携帯電話などのデバイスにも、.NETテクノロジを移植する予定でいる。.NETテクノロジのベースになるのは、他社のリアルタイムOSで構わないというスタンスだ。ゲイツ氏のプレゼンテーションでも、Windowsプラットフォームから.NETプラットフォームに移行すると、ハードウェアはPCからPC以外のデバイスにも拡張され、プログラミングのベースはWindowsのAPIから、.NETのビルディングブロックに移行すると示された。

●第3世代インターネット時代に備えた布陣

 PDCでキーノートスピーチを行なったポール・マリッツグループ副社長(Platforms Strategy and Developer Group担当)によると、.NETは、第3世代インターネットのアーキテクチャだという。

 それによると、第1世代インターネットは'94~'96年の静的なHTMLページで構成されたもので、eメールや情報を交換するためのインフラに過ぎなかった。第2世代インターネットは'96~2000年で、ダイナミックなWebページにより、eコマースやパーソナライゼーションなどが実現するようになった。そして、これから始まる第3世代インターネットでは、分散コンピューティングのベースとしてインターネットが機能するようになるという。そして、その上で、次世代のサービス/アプリケーションである「Webサービス」が提供されるようになるというわけだ。

 この、第3世代インターネットでは、従来のようにクライアントとサーバーが1対1でやりとりする形ではなくなる。クライアントが、ひとつのWebサービスにアクセスすると、そのWebサービスがほかのWebサービスと連携して、あたかもひとつのシステムのように動作する。そのため、ユーザーはいちいち複数のWebサイトにアクセスする必要がなくなる。マリッツ氏は、この転換を「“クライアント-サーバー”から“クライアント-サーバー-サービス”へコンピューティングパラダイムを拡張する」と表現する。

 こうしたWebサービス間やWebサービスとクライアントの連携を実現するベース技術として、.NETではXMLを使う。Microsoftらは、このXMLをベースに、アプリケーションやコンポーネント間で通信ができるプロトコル「Simple Object Access Protocol (SOAP)」を開発した。SOAPは、クライアント側からパラメータを渡し、その結果を受け取る「リモートプロシージャコール (RPC)」を、HTTP上でXMLのシンタックスを使って送信する。Microsoftは以前は独自のプロトコルDCOMをインターネット上の分散コンピューティングに使おうとしていたが、今はXML/SOAPを使う路線に変更している。

●.NET Platformの4つの構成要素

 マリッツ氏は、新プラットフォーム「.NET Platform」の全容についても概略を説明した。また、.NET Platformは、4つのソフトウェアカテゴリで構成されている。

◎開発ツールとフレームワーク
 Microsoftは、開発ツール「Visual Studio.NET」、クラスライブラリとランタイム環境のセット「.NET Framework」を提供する。

◎エンタープライズサーバー群
 XMLをネイティブでサポートするWindows 2000世代のサーバー製品群。

◎ビルディングブロックサービス群
 Microsoft自身が提供するWebサービス。「.NET Building Block Services」と呼ばれ、ほかのWebサービスのベースとして使うことができる。

◎.NET デバイスソフトウェア
 Microsoftが提供する新しいクライアントソフトウェア群。.NET世代のWindows OSと、非PCデバイス向けの.NET Framework。

●開発ツールとフレームワーク

 .NETのプログラミングフレームワークである.NET Frameworkは、Webアプリケーション/サービスを開発するための、基本的なソフトウェアコンポーネントとそのベースとなるランタイム環境「Common Language Runtime(CLR)」だ。Common Language Runtime(CLR)が、プログラムを実行できるようにする基本的なランタイムサービスで、その上にMicrosoftの新しい言語「C#」で書かれた.NETのベースクラスライブラリがあり、さらにその上に拡張ライブラリ群が構築されている。CLRはマルチランゲージで、サードパーティの言語も対応が進められているという。CLRは、中間言語(IL)コードをJITコンパイラでネイティブにコンパイルするだけでなく、ガベージコレクション、ライフタイムマネージメント、エラーハンドリング、セキュリティなどのサービスを提供する。

 CLRは、そのために、コンパイル時に、コンパイルしたソフトウェアコンポーネントについてのメタデータを自動的に生成して、コンパイル後のファイルに埋め込む。.NET Frameworkでは、メタデータを埋め込んだコードを「Managed Code」と呼び、メタデータのない既存のネイティブコード「Unmanaged Code」と区別している。CLRは、Unmanaged Codeもコールできる。従来のCOMクラスライブラリとCLRがマネージしている.NETクラスライブラリをシームレスに統合して扱うこともできる。

 .NET Frameworkをフルサポートした開発ツールとしてMicrosoftから提供されるのがVisual Studio.NETだ。マリッツ氏は、Web環境に向けたVisual Studio.NETの登場を、GUI環境に向けたVisual Basicの登場になぞらえる。「'80年代の終わりから'90年代の初めまで、“Windows”アプリケーションを書くのは大変だった」、「それがVisual Basicのような進化したツールができてグラフィカルアプリケーションを書くのがシンプルになった」、「Visual Studio.NETが実現するのはそれと同じ、Webアプリケーション開発のためのシンプルなドラッグ・アンド・ドロップ開発環境だ」

 .NET Frameworkがマルチランゲージであるのと同様に、Visual Studio.NETもマルチランゲージ環境となっている。Microsoftの言語だけでなく、ほかのベンダーの言語も開発環境に統合され、同じように扱うことができる。

●エンタープライズサーバー

 .NET世代のサーバー製品群である.NET Enterprise Serverは、実際にはWindows 2000ジェネレーションのサーバー製品だ。Microsoftは、サーバー製品ではすでにXML対応を進めており、基本的に大きな方向の変更が加わるわけではない。

SQL Server 2000
Exchange Server 2000
BizTalk Server 2000
Application Center 2000
Host Integration Server 2000
Commerce Server 2000
ISA Server 2000

●ビルディングブロックサービス

 これは、開発者がWebサービスを容易に開発できるように、Microsoftが提供するWebサービスの土台となるWebサービスだ。以下のサービスが予定されていて、今後、18カ月間で暫時提供されてゆく。

Passport Service
Directory and Search Service
Personalization Service
Software Delivery Service
Calendaring Service
Schematized Storage Service
Notification & Message Service

 マリッツ氏によると、これらのビルディングブロックサービスは、開発者が、Visual Studio.NETのパレットから自分のアプリケーションにドラッグ・アンド・ドロップして利用できるようになるという。Webサービスと、ローカルのコンポーネントをツールの中から同じように扱えるようになるというわけだ。

●.NETデバイスソフトウェア

 Microsoftは、.NETのプライマリのOSプラットフォームはWindowsだと位置づけているが、そのほかの環境の上にも.NETテクノロジを移植してゆく。マリッツ氏によると、Microsoftが.NETでターゲットとしているデバイスは、次の4つのカテゴリだという。

(1)モバイルデバイス-携帯電話など
(2)マルチメディアデバイス-デジタルTVやSTB(セットトップボックス)など
(3)サーバーアプライアンス
(4)スマートカード

 これらのプラットフォームに向けて、Microsoftでは.NET Frameworkのサブセットバージョン「.NET Compact Framework」を提供するという。これは、非PC向けに設計されたフレームワークで、コンパクト版のCLRとコンパクト版のベースフレームワークで構成され、少ないコンピューティングリソースしか消費しないように設計するという。x86以外のCPUにも対応し、Windows CEだけでなく他社のリアルタイムOSの上にも移植する予定だ。基本的に.NET Frameworkに乗る.NETのWebサービスはWindowsのAPIに依存しないため、これらのデバイスでも、利用できるようになる。

 今回のPDCは、マリッツ氏が率いるPlatforms Strategy and Developer Groupの色彩が非常に強く、言語とツールといったベース技術の説明が中心だった。これは、.NETのアイデアが、本質的にこの部分から来ているため当然と言える。しかし、そのために、.NETプラットフォーム上で、サードパーティがどうやってビジネスができるかといった、ビジネスモデルの転換は不明瞭なままに残ってしまった。このあたりが見えてこないと、.NETプラットフォームは進み始められないだろう。

□関連記事
【7月12日】【海外】PDCで、Microsoftがマルチ言語のランタイム環境を発表
http://pc.watch.impress.co.jp/docs/article/20000712/kaigai01.htm


バックナンバー

(2000年7月17日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


ウォッチ編集部内PC Watch担当pc-watch-info@impress.co.jp