Insider's Eye

.NET戦略の次の2年間はこうなる(1)

.NET Briefing Day ―― Microsoftの幹部がMicrosoft .NETストラテジの第2フェイズについて講演

デジタルアドバンテージ
2002/08/08

 2002年7月24日、米Microsoftは、レドモンドのMicrosoft本社内において、同社が進める次世代情報戦略のMicrosoft .NETに関して、これまでの取り組みと進捗状況について総括し、今後のビジョンとロードマップの概要について解説した(.NET Briefing Dayでの発表に関する米Microsoftのニュース・リリース)。

 またこの.NET Briefing Dayにおいて、かねてより開発が進められてきたWindows 2000 Serverの後継OSとなるWindows .NET ServerのRC(Release Candidate)版の公開が発表された。このRC版については、一部の開発者ばかりではなく、希望する一般ユーザーにも広く評価版が配布される(米MicrosoftのWindows .NET Server Customer Preview Programのページ)。

.NET Briefing Dayで講演するビル・ゲイツ氏
Microsoft .NETに対する取り組みは、第2のフェイズに入ったと語る。

 Microsoft .NETという新たな戦略ビジョンが一般に公開されたのは、2000年6月に今回と同じく米Microsoft本社で開催されたForum 2000というイベントだった。それまではNGWS(Next Generation Window Services)と呼ばれていた新戦略は、このForum 2000でMicrosoft .NETと正式に命名された(Forum 2000については、別項「Windows Insider/Insider's Eye:米Microsoft、新世代インターネット戦略を発表」を、このときに発表されたMicrosoft .NET戦略の内容については「特集:Microsoft.NETが目指す次世代情報環境とは?」を参照)。

 このForum 2000から約2年。今回の.NET Briefing Dayは、これまでの過去2年間をMicrosoft .NETの実現に向けた第1フェイズとして位置づけて評価し、そこから得られた教訓などを生かして、これから始まる新たな第2ステージの幕開けを宣言するものだ。

 本稿では、この.NET Briefing DayでのMicrosoft社幹部によるプレゼンテーションを元に、.NET第1フェイズを同社がどのように評価しているのか、そして次の.NET第2フェイズとはいったいどのようなものなのかをまとめる。なお、.NET Briefing Dayでのスピーチ内容をテキストに起こしたドキュメントが以下のURLで公開されている。詳しく分析されたいという方は、これらをご自分でお読みいただきたい。

Bill Gates氏(チェアマン、チーフ・ソフトウェア・アーキテクト)のスピーチ内容
http://www.microsoft.com/billgates/speeches/2002/07-24netstrategy.asp

Jim Allchin氏(プラットフォーム担当 Group Vice President)のスピーチ内容
http://www.microsoft.com/presspass/exec/Jim/07-24netstrategy.asp

Eric Rudder氏(開発者/プラットフォーム エバンジェリズム担当 Senior Vice President)のスピーチ内容
http://www.microsoft.com/presspass/exec/ericr/07-24netbriefing.asp

Jeff Railes氏(生産/ビジネス・サービス担当 Group Vice President)のスピーチ内容
http://www.microsoft.com/presspass/exec/Jeff/07-24netbriefing.asp

Steve Ballmer氏(CEO)のスピーチ内容
http://www.microsoft.com/presspass/exec/Steve/2002/07-24netbriefing.asp

中央集中というメインフレーム・モデルには絶対に移行しない

 最初のスピーチでは、Microsoft社の実質的なオーナーであるビル・ゲイツ氏とスティーブ・バルマー氏が演台に立ち、次世代情報環境を切り開く上でMicrosoft .NETビジョンがいかに正当なものであるかを強調した。

 この中でバルマー氏は、「メインフレームのモデルである中央集中型の情報モデルに全世界が移行することはあり得ない。私たちはこの見通しに賭けている」と述べた。Microsoft .NETの中心となるテクノロジであるWebサービスは、ネットワークを介してソフトウェア同士がコミュニケートすることを可能にする技術であり、インターネット/イントラネットを利用した分散コンピューティングを推し進める戦略である。ここ数年は、WebサーバとWebブラウザを利用した、いわゆるWebアプリケーションが広く普及している。Webサーバ側でほとんどの処理を行い、これをクライアント側のWebブラウザでブラウズするというスタイルだ。この分野では、サーバサイド・コンポーネント技術であるEJB(Enterprise Java Beans)などのJavaテクノロジを利用したWebアプリケーション開発が大きな影響力を持っている(同様のサーバサイド・コンポーネント技術であるMicrosoftのASP:Active Server Pagesも健闘はしているが)。このWebアプリケーションの最大の長所は、クライアント・システムを選ばないという点である。ネットワークとWebブラウザさえあれば、世界のどこからでも同じようにWebアプリケーションを操作できる。インターネットの急速な普及とともに、草の根的に広がったPCなどの個人向け情報機器を、情報システムの一部として機能させるには、クライアント側に要求される機能をできるだけ少なくし、多くをサーバ側で処理する必要があった。この要求に応えたのがWebアプリケーションだといってよいだろう。

 しかし、Webテクノロジをベースとして構築されるWebアプリケーションは、情報モデルとしては、中央の大型計算機がすべての処理を実行し、これをインテリジェンスを持たない端末(ダム端末)で操作するというメインフレーム・モデルのそれに等しい。かつては権勢を誇ったこのメインフレーム・モデルは、中央に巨大なシステムを必要とすることから、システム構築やシステムの増強・改変にかかるコストが非常に大きく、小回りの効かないモデルだとして非難された。この解決策として、各端末のインテリジェンスを上げ、それらをネットワークで接続することで、柔軟な情報システムを構築しようと推し進められたのがUNIXワークステーションやWindowsコンピュータを利用した水平分散システムであった。しかしこの水平分散が行き渡ってみると、確かに1台1台のコンピュータは安価で初期導入コストは比較的低いのだが、分散配置されたコンピュータのメンテナンスに多大なコストがかかることが分かった。Webアプリケーションの普及は、こうした水平分散が抱える問題への揺り戻しと考えることもできる。

 前出のバルマー氏の発言は、メインフレーム・モデルへの回帰に対して一石を投じ、Microsoftはあくまでも分散情報モデルを推し進める立場だということを強調したものだ。

レイヤの追加から、製品設計全体の見直しへ

 この具体的なビジョンとして、2年前に発表されたのがXML技術とWebサービスを核とするMicrosoft .NETであった。ゲイツ氏は、過去2年間のMicrosoft .NETへの取り組みを振り返って「期待以上に進展した部分と、期待したほど進展しなかった部分があった。しかし私たちが2年前に発表した方向性は間違っていなかったし、今日のプレゼンテーションでそれが明白になるだろう」と自信を見せる。

 ゲイツ氏の言葉を借りて、これまでの2年間を第1フェイズだとすれば、この最初のフェイズでMicrosoftが着手したのは、既存の製品を土台として、この上に.NET対応のための新たなレイヤを作成し、このレイヤを通して新世代の標準にのっとったデータ交換などを可能にすることだった。具体的には、Windows XPやSQL Server 2000、Exchange 2000、Office XPなどがこれに当てはまる。例えば、2001年10月から発売されたWindows XPでは(日本語版の発売は2001年11月)、SOAPスタックが標準で組み込まれた初めてのOSであり、初期のXML機能のいくつかを利用可能である。

 これに対し第2フェイズでは、レイヤの追加だけでなく、製品デザイン全体を見直して、核心部分にXML対応機能を追加する。この第2フェイズ・レベルでデザインされた製品としては、すでにBizTalk Server 2002とVisual Studio .NET(以下VS.NET)がある。開発者向け製品であるVS.NETについては、2002年3月の正式版発売の約9カ月前から.NET Frameworkを広く提供しており、VS.NET正式版の発表以前から.NET対応アプリケーションはいくつか発表されていた。しかしゲイツ氏によれば「VS.NETの正式版が発表以後は、その数がドラマチックに増えている」という。

 また冒頭で述べたとおりMicrosoftは現在、Windows 2000 Serverの後継サーバOSとして、Windows .NET Serverを開発中であり、今回の.NET Briefing Dayに合わせて製品直前版(RC版)の発表を行った。このWindows .NET Serverは、UDDIサーバによるディレクトリ機能が標準で組み込まれた初めてのOSで、これにより例えば、企業内でのローカルなUDDIディレクトリ・サービスを構築すれば、社内で開発・公開されたWebサービスをほかのクライアント・ソフトウェアから検索できるようになる。もちろん、社内ばかりではなく、インターネットに向けて広くUDDIサービスを提供することも可能である。

ワードプロセッサの文書から、プログラムのソース・コードまでをXMLに

 ゲイツ氏の話によれば、第2フェイズのテーマは「バリアを壊すこと」だという。ここでいう「バリア」とは、異なる組織間のバリア、異なるアプリケーションがそれぞれ保持している情報のバリア、システム間のバリア、システムとそれを使う人間とのバリアである。人々が触れる情報は、これら無数のバリアによって隔絶され、それぞれが場当たり的に管理、運用されているとする。ある情報はメールとして交換され管理されるが、別の情報はWebページとして管理されている。同一企業の内部であっても、ある情報は伝統的なメインフレーム・システムによって管理され、一方でEC(Electronic Commerce)EIP(Enterprise Information Portal)などのインターネット/イントラネット向けWebアプリケーション開発が進められている。これら両者によって管理される情報は、えてして隔絶されており、連携するのは容易ではない。インターネットは情報のコネクティビティ(=接続性)を提供してくれるようになったが、情報本来が持つ意味に沿ってそれらを柔軟に制御する方法は満足に提供されていないし、人々が必要とする情報を共有し合うことにも成功していない。「コネクティビティだけでは解決できない手ごわい問題が多数存在している」(ゲイツ氏)。

 .NET第2ステージで目指す「本当の接続性」を手に入れるために重要なブレークスルーの1つは情報をどのように表現するかということ、そしてもう1つはそうした情報をどうやって交換するかということだとする。具体的にいえば、第1のブレークスルーは情報フォーマットとスキーマであり、第2のブレークスルーはより高機能なプロトコルを開発することである。

 これに対しMicrosoftは、全社を挙げて製品のXML対応を進める。「このことは、あらゆるタイプのソフトウェアに影響を及ぼすことになる。ワードプロセッサの文書やスプレッドシート、プログラムのソース・コードさえも内部的な記述はXMLドキュメントになる。例えば、プログラム開発時のパフォーマンス・テスト情報やデバッグ情報などは、XMLで記述されたソース・コードからダイナミックに変換され、表示される」(ゲイツ氏)。

 現状では、異なるシステム間の情報はもとより、メールボックスとファイルフォルダに格納された情報ですら、別々の手段で検索しなければならない。理想的には、単一の検索コマンドを使って、これらあらゆる種類の情報を検索し、結果を一覧できるのが望ましい。ファイルやメール・メッセージばかりでなく、ネットワーク・プリンタやユーザーまでを単一のユーザー・インターフェイスで検索できるべきだ。

 情報のバリアを破り、このような検索機能を実現するための唯一の方法は、さまざまな情報を共通の土台で保存、管理可能にするユニファイド・ストア(unified store)を構築することだという。「現在、私たちはSQL Serverフォーマットを持ち、Outlookフォーマットを持ち、Webサイト・フォーマットを持ち、コミュニティ・フォーマットを持っており、それらを別々の物として扱っている。XMLに対応させることで、こうした問題を解決する」(ゲイツ氏)。

XMLベース・テクノロジを実用化に向けて進化させる

 XMLは自己拡張が可能なマークアップ言語であり、文書構造を記述することが可能だ。このためさまざまな情報を記述するための汎用フォーマットとして利用できる。ただし先のゲイツ氏の言葉どおり、XMLフォーマットをあらゆる情報の記述に応用するとなると、実用面で解決しなければならない問題も生じてくる。その1つは、バイナリ・データを効率よく記録し、あるいはネットワークを介して転送できるようにすることだ。

 現在のXMLでは、あらゆる情報を文字コードとして表記可能なASCIIコードで表現している。このため、画像や音声データなどのバイナリ・データであっても、それを7bitのASCIIコードに変換しなければならない。データがすべてASCIIコードで表現されることは、XMLフォーマットの汎用性に大きく寄与しているが、バイナリ・データを効率よく管理するには都合が悪い。

 例えば、バイナリ形式の画像データをXMLフォーマットで記述するには、バイナリデータから7bit ASCIIへのコード変換が必要になる。この処理によって、データの汎用性は高まるが、同時に冗長性も高まってしまい、情報の記録効率や、それらのデータをネットワークを介して転送する際の効率も低下してしまう。ごく一部の情報にXMLを適用するなら無視できるかもしれないが、前出のゲイツ氏の言葉にあるとおり、あらゆる情報記述にXMLを適用するとなると、この非効率性はシステムのスループットに無視できない影響を及ぼすだろう。Microsoft .NETの中心的な技術とされるWebサービスも、通信プロトコルにはSOAPとXMLをベースとするため、この問題の影響を直接受ける。

 これに対しMicrosoftは、バイナリ・データをカプセル化し、単一のメッセージとして送信可能にするDIME(Direct Internet Message Encapsulation)と呼ばれる仕様を開発し、現在IETFで標準化を進めている。

米MicrosoftのDIME仕様のインデックス・ページ(英文)

 今回の.NET Briefing Dayでは、Jim Allchin氏がこのDIMEのデモンストレーションを行った。このデモンストレーションは、ネットワーク接続されたサーバから巨大なイメージ・データをクライアントに転送し、表示するという簡単なもの。最初はDIMEによるカプセル化を行わない従来の形式(7bit ASCIIへのエンコードを行ったデータ)でイメージを転送して表示する。続いて同じイメージ転送をDIMEによるカプセル化を行って実施し、実行速度を比較した。結果、DIMEを利用したイメージ転送は見るからに高速化された。

 DIMEを有効化するために内部的に行った処理は、サーバにイメージを要求するリクエストのキャプションを「binary」と指定しただけである。するとサーバは、クライアントがDIMEパケットの送信を要求していることを理解し、これからDIMEパケットを送信することと、データ・サイズを知らせる情報を返し、続いてイメージのデータが送信される。この際でも、イメージ・データは冗長な7bit ASCIIには変換されないので、ネットワーク帯域を効率よく使い、バイナリ・データを素早く転送できるというわけだ。

 このDIMEのデモに続きAllchin氏は、XMLのリクエスト・パケットとX.509デジタル認証の情報を組み合わせて、データを要求しているクライアントをサーバに認証させ、認証の有無によってサーバが異なる結果を応答するというデモも披露した。

 

 INDEX
  Insider's Eye
   .NET戦略の次の2年間はこうなる(1)
     .NET戦略の次の2年間はこうなる(2)
 
 Insider's Eye


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間