我が国ではWindows NT 4.0もまだ出ていない時期に、米国ではすでにWindows NT 5.0のプレビューが始まった。ここで、Microsoftは一連のActiveX構想をさらに進め、インターネット/イントラネットでのBack Officeの充実、Visual Basic 5.0の投入など、エンタープライズ開発を強力に推し進めようとしている。
ここでは、一連の新しいアーキテクチャーやVisual Basic 5.0などを組み合わせたソリューションがどのように展開されるのか、その概要を述べる。
Microsoftは、11月4日から7日まで開催されたPDC(Professional Development Conference)で、Windows NT Server 5.0のプレビュー版を参加した3500余りのデベロッパーに配布した。そして、その中にはVisual Basic 5.0の一部機能だけを抜き出したVisual Basic 5.0 Control Creation Edition(CCE)も含まれていた。我が国ではこの原稿執筆時にはやっとWindows NT 4.0のプレリリース版が配布されたばかりだというのに、なんという速さだろう。Visual Basic 4.0にしても、一年前に発売されたばかりなのに。
しかし、実はここでのWindows NT 5.0のプレビューは、実際にはWindows NT 4.0 + アドオンプログラムという形で披露された。Windows NT 5.0自体が発表されたわけではないのだ。
そもそも、Windows NTの未来の形としてMicrosoftがずっと言ってきたものに、Cairoという開発コードネームのものがある。これは、OS自体がOLEをベースとした分散オブジェクト環境となるもので、いわばVisual BasicでOSすべてを制御することができるというものだった。しかし、数ヶ月前からMicrosoftはCairoとはWindows NTの将来的な技術の総称であり、CairoというOSがあるわけでない、Cairoの技術は徐々にWindows NTに搭載されていくものだと言うようになった。このような発言からも、Windows NT 5.0はCairoと言えなくもなさそうだし、さらにその先に本当のCairoがあるのかもしれない。
そして、実際にここで発表された技術は、確かにOLEをベースにしたものであり、Visual Basicが密接に関連するものであった。
PDCで同時に配布されたVisual Basic 5.0 CCEは、即日インターネットのMicrosoftサイトからダウンロードできるようになった。インターネットはまさに時空を超えることができる。日本で泥臭い仕事をしていた私もさっそくインストールすることができた。CCEは、その名の通りActiveXカスタムコントロールを作ることができる、すなわちOCXを作ることができるVisual Basicである。
さて、インターネットからは、Visual Basic 5.0 CCE本体だけではなく、ヘルプファイルやサンプルプログラム、そして膨大な量のドキュメントがあった。このドキュメント類は間違いなくまだ正式には発表されていないVisual Basic 5.0に付属するものである。面白いことに、Visual Basicを使ったことがないユーザーのために、初歩的な内容からドキュメントが揃っている。もちろん英語だが、文面のあちこちからVisual Basic 5.0がどのようになるのかが見えてくる。もちろん、使ってみればさらによく分かる。
β版のためか言語仕様などに一部不整合が見られるものの、実際にActiveXコントロールを作ってWWWページから自分の作ったコントロールをダウンロードして実行することもできた。
この詳細については、別稿で述べることにするが、一足先にVisual Basic 5.0を使うことができたのは興味深いことだった。
Visual Basic 5.0の話題はそちらですることにして、まずはWindows NT 4.0、そしてそこにさらに追加されていく新しい技術と製品群、それらがまとまってWindows NT 5.0を中心とした環境はどのようになっていくのかを紹介しよう。
まずは、そろそろ発売になるWindows NT 4.0について述べよう。Windows NT 4.0は、当初Windows NT 3.51 Shell Updateと呼ばれていたように、Windows 95ライクな操作環境になることが一番の変化のように思われてきた。実際、バージョン番号も3.52になるとか3.6になるとかいう話もあり、4.0になったと聞いたときには「Windows NT 4.0はCairoではなかったのか」というとまどいがあったほどだった。
もっとも、これでFreeBSD相当になったかと言えば、全然そんなことはなくて、メイルもNewsもMailing Listもない。そういうものはExchangeでやることになっている。結局出費はまだまだあるわけだが、それでもGUIでとりあえず始められるわけだから、ユーザー管理さえあまり必要ない(そんなイントラサイトがあるとは思えないが)ならば、GUIで管理しなくてはならないWindows NTだけでもなんとかなるようにはなったのである。
さて、とにかくWindows NT 4.0にはDCOMが搭載されている。さっそく使ってみたいものだが、実は使えない。というのも、使うためのツールが入っていないからだ。DCOMは見かけ上はVisual Basic 4.0のリモートオートメーションと同様であり、内部的な仕組みも似ている。つまり、ローカルマシンのレジストリ情報を読み、そこにある特定の項目によってリモートマシンに接続に行くという形だ。したがって、このローカル/リモートを切り替えるためのツールが必要なのだ。もちろん、分散したオブジェクト環境で効率的にオブジェクトのインストールや管理ができるツールも必要になる。このあたりのツールは、少し後になってから別途配布されるらしい。また、すでにリモートオートメーションを実現しているVisual Basicの時期バージョン5.0には当然付属してくるものと思われる。
Windows NT 5.0に向けて、さらにBack Officeファミリーが増殖している。従来はBack Officeといえば、次のものがあった。
一連のActiveXと呼ばれる技術に加えWindows NT 4.0となれば、これで最新の環境となるわけだが、今年からは違う。モノが出た瞬間に古くなってしまうのだ。そう、Windows NTも5.0へ向けてカリフォルニアの空の下では、新たな旅立ちとなった。ただし、Windows NT 4.0へのアドオンという形であるから、何となく安心だ。
次に、一連のWindows NT 5.0へ向けてのMicrosoftの作戦を紹介しよう。
Windows NT 5.0へ向けての一番のキーとなるのが、Active Directoryだ。Directoryと言うと、どうもファイルシステムのディレクトリを連想してしまうわけだが、あれはファイルシステムのディレクトリに過ぎない。そもそもディレクトリとは、ご近所の名簿とかご案内というような意味である。デパートやショッピングモール、あるいは商店街へ行くと、そのへんにある店の位置を書いた地図みたいなものがあるが、あれをディレクトリと呼ぶのである。
Windows NT Serverでは、ルーティング、Proxy, Firewall, 共通サービス、音声/データ/ビデオなどの一括管理などができるようになる。
分散したマシン環境で透過的にファイルを管理できるDistributed File System(DFS)を搭載する。また、Windows NT 5.0でのNTFSには、プロパティ、quotas, volume management, コンテンツやプロパティのインデックス、link tracking, HSM hooksといった機能が盛り込まれる。また、OLE DBによってODBCをオブジェクトレベルで隠蔽し、DAOやらRDOやら面倒なことを言わないでまとめて扱おうというUniversal Access - ADOが装備される。
公開キーとプライベートキーによるSSL 3.0を使い、さらに特定間を結ぶPPP(Point to Point Protocol)にセキュリティ機能を付加したPPTPを装備した。
Microsoftでは、ゼロアドミニストレーションWindowsを目指しているという。すなわち自動的なシステムやアプリケーションのアップデートやその取消といったことをはじめとして、サーバーはすべてのユーザー管理ができるといったあたりだ。
そして、そのためのツールとして、Microsoft Management Consoleを提供する。これは、ひとつの拡張コンソールからすべての管理ができるというものだ。もちろん、SMS Serverもさらに拡張されたものとなるという。
さて、こうした地道な努力は重要だが、こないだまで大騒ぎしてきたイントラネットなの余波を受け、今直面している問題を解決するための技術も忘れてはいない。これらはクライアント系のActive Desktopとサーバー系のActive Serverに分けられ、トータルな環境としてActive Platformが提唱されている。
次に、Active Serverの各製品の特徴について述べる。
IISの最新バージョンは、従来の2.0へのコンポーネントのアドオンという形で行われる。
このように、IIS 3.0自体は基本的な部分には変化がないが、Active Server Pagesの搭載などで、従来のISAPIを使ったインプロセスActiveX Serverアプリケーションの宿命だった「ちょっと間違うとサーバーごと落ちる」といった問題を回避しながら、開発工数自体も減らすことができるような容易な環境としている。ここへきて、IISはかなりのアドバンテージを持ったと言えるのではないだろうか。
HTTPで問題になるのは、再三述べているとおりトランザクションができないことである。これを解決するためのものが、その名の通りTransaction Serverである。実際には、単体の製品ではなく、IISとSQL Server(あるいはSNA Server)の間を介するコンポーネントとして提供され、クライアントとはDCOMで通信をする。すなわち、まさにトランザクション処理だけの部分をサーバーとしたものだ。機能としては、トランザクションの他に、TPモニター、ActiveXコンポーネントでの開発、セキュリティ、メッセージングキュー(現状では未実装)などである。
毎度ながら、PDCの後の原稿は疲れる。新しいテクノロジーの資料の山である。しかし、今回のPDCでの発表前回ほどわけの分からないものではなく、今回はインターネットやイントラネットを中心といいながらも、Windows NTのOSとしての機能を分散オブジェクトに対応させるという部分にかなりのウェイトがかけられている。
とはいえ、なぜわざわざWindows NT 5.0という名前を出したかと言えば、実はこうしたアドオン製品が勢ぞろいして新たなソリューションが提供できるようにWindows NT 4.0が変貌するからである。そして、それらが揃って脱皮したとき、Windows NTは5.0になるというわけだ。
しかし、実際に発売されたWindows NT 4.0を見ると、確かにWindows 95ライクに使いやすく、あるいは使いにくくなった部分はあるが、本当のWindows NT 4.0の価値はそこではないことに気づくハズだ。
Windows NT 4.0の本当の価値は、WorkStationとしてもともかく、何といってもサーバーとして使い物になるOSとなったことだろう。特に、インターネット/イントラネット用のサーバーとしては、そのへんで2000円で売っているFreeBSDに入っているのにWindows NTにはない機能だらけだったのだが、やっと追いつきつつあるというレベルまできた。個人的には、GUIで管理しなくてはならないWindows NTよりBSDの方が管理や安心感があるのだが、UNIXのコマンドラインが嫌いな人にとっては、Windows NTでもなんとかなるようになったことは、大きな進歩と言えるのではないだろうか。
こういったネットワーク回りの新機能としては、Internet Information Server 2.0の標準装備というようなこともあるが、実際にはName Serverの装備やPPTP、ルーターとしたときにRIPが流れるようになった、TCP,UDP,IPの各プロトコルについてのポートを許可を細かく指定できるようになったというようなことがある。特に、Windows NTでインターネットサーバーとするときにネックになっていたのが、DNSとRIPであった。これで余計な出費をしなくて済む。
Windows NT 4.0でもうひとつ重要なことは、DCOM(Distributed Componet Object Model)の搭載である。COMはOLEの核となるプロセス間通信のモデルであるが、それをネットワーク上に接続された異なるマシン間での通信まで広げたのがDCOMである。本来は、分散オブジェクトOS環境を構築するための基礎技術という位置づけなのだが、いつのまにかインターネットに対応することとなった。
WWWはHTTPというステートレスなセッションその場限りというカンタンプロトコルで動いているので、セッション中に一連のトランザクションを対話的に行うことは不可能である。そこで、Cookieだのなんだのが考えられたりしたのだが、抜本的な解決にはならなかった。結果として、別のプロトコルでセッションを張って、そこでトランザクションをこなすしかないということに落ち着いたわけだ。
MicrosoftはそれをOLE Automationを拡張したDCOMで行うと言っている。一方、NetScapeやOracle、SunなどはOMG(Object Management Group)の提唱するCORBA(Common Object Request Broker:Architecture and Specifications)準拠のIIOP(Internet Inter-ORB Protocol)を推し進めている。両者はまったく違うアーキテクチャーなのだが、MicrosoftはCOMをCORBA準拠にすると言ってきた。OracleはObject BridgeというCOM, CORBA Gatewayを作り、SunなどにOEMするという。もはやなんのことやら分からないが、両者を比べてみると、仕様や動作に難があるもののとにかく動くモノを出すMicrosoftと、カッコいい仕様を時間(ばかり)をかけて作りいつまでもモノが出てこないOMGとも言えるような気がする。もっとも、「インターネットに対応した」DCOMだのIIOPだのは、HTTPだけではできないトランザクション処理を目標に考えられたいわば場当たり的なものであり、本来は分散オブジェクト環境を目標にしてきたハズのものだ。別セッションを張りたい人は専用ツールを買うとか、TCPを直接たたくとかすればいいのだから、こんなだいそれた仕組みなど必要ないのではないか。再び分散オブジェクトOSに向けて、かんばってほしいものだ。
このように、従来のBack Office製品は悪くはないのだが、どうしても競合他社に一歩リードされている感が否めない。しかし、Microsoftはコツコツとよい方向に作り直しているし、こういった製品を使っている企業向けには、従来のリテイル売りアプリケーションのような半ば売りっぱなし的なやり方ではなく、十分なサポートや対応をするような体制作りもしている。No.1への道はまだ遠いかもしれないが、ユーザーとなるような企業の信頼を得るよう努力しているので、いずれは報われる日がくるに違いない。
この他にも、仮想サーバー機能やWindows NTのACLと連動したセキュリティ機能、SSLへの対応、フィルター機能やフィルターISAPIなども用意されており、管理もGUIツールで手軽にできる。logはテキスト形式だけでなく、SQL Serverに入れてしまうこともできるので、解析をSQL文やクライアントツールから行うこともできる。
実はこのサーバーはかなりよくできたものだ。しかし、WWW Server自体は競合製品も多く、OSにオマケでついてくるというアドバンテージが一番の魅力かもしれない。
ここで言うDirectoryとは、そういう本来のディレクトリに近い。つまり、ネットワーク上に分散したマシンをどう上で自分が使いたいファイルやらリソースやらの情報がどこにあるかを管理することを言うのである。
図のように、ユーザーが分散した環境でのストレージ情報を管理するためには、ネットワークのインフラ、セキュリティといったものをベースにして、さらにActive DirectoryとComponent Servicesを提供しようというものだ。次に、ぞれぞれの要素について述べる。
こうした一連の発表の内容からして、Activeという名前を使ってはいるものの、これらの仕組みはまさにCairoへの技術にほかならない。すなわち目先のインターネット対応というようなことではなく、OSレベルで分散オブジェクト環境を整えようとしている。 実は非常にマトモな方向性になっていると言えるだろう。
そして、現在のExchange Serverを追加すると、メッセージング機能の拡張でE-Mail名でのリソースの管理や、離れた場所にあるExchange Serverどうしでのレプリケーションなどの機能で、物理的な位置が違っていても論理的な位置で一括管理ができるようになってきている。ここで使われるプロトコルもX500/XDS, DAP/LDAPなどがサポートされている。
Active Directoryでは、Exchange Serverの機能を拡張した形で実現される。DNSの追加や、X500/XDS, LDAP, HTTPなどの標準的なプロトコルを使って管理することができるようになる。もちろん、論理的に複数の物理的ストレージを管理したり、ハブリックとプライベートのキーを使ったストレージの管理などの機能はさらにスケーラビリティを上げてある。これらの管理にもシンプルなAPIが提供され、JavaやVisual Basic、VisualC++などで操作することができるようになる。
こうしたActive Platformで使われるツールとしては、次のようなものがあげられる。
ツールはクライアント系と基本的には同じであり、 VisualC++やVisual Basic、さらにはVisual J++などを使うことになる。
こうしたことからいっても、当分Microsoftの天下は続きそうだ。そして、Active Platformのあらゆる部分でVisual Basicは重要な役割を果たすことになっている。そういう意味でも、Visual Basicも安泰である。あとは、次々と新しいものを出すばかりでなく、安定して動作をするものを供給してくれることを望みたい。