ニュース
2003/08/07 02:58:00 更新


地に足が着いたMicrosoftのWindows移行戦略

「Microsoft Tech・Ed & EDC 2003 YOKOHAMA」では、UNIXからWindowsへの移行について、Connectixの資産を活用した仮想マシンソリューションをはじめとするさまざまな移行パスが示された。

 今日のITでは、投資を圧縮したまま、新規開発へその予算を割きたいと考える企業が多いだろう。サーバー環境におけるTCOの多くを人件費が占めているとはいえ、他の部分でコストダウンを図ることは十分に可能だ。その一つの案として、MicrosoftではUNIX環境からの移行を提案している。

 「Microsoft Tech・Ed & EDC 2003 YOKOHAMA」で8月6日に行われたセッションの中では、IAサーバーの普及に伴うUNIXからWindowsへの移行に焦点を置いた「UNIXからWindowsへの移行」で、具体的な製品群を紹介しつつ話が進められた。「Visual Studio .Net 2003」、「Services for UNIX」、「Virtual Server」、「Jaca Language Conversion Assistant」を使用することで、UNIXからWindowsへの移行が無理なく行えるという。

 同セッションを担当したマイクロソフト 製品マーケティング本部 Windows Server 製品部 プロダクトマネージャの楠 正憲氏によると、UNIXから移行する背景として、今日のITに関する支出を見ると、予算のおよそ7割がソフトウェアのオペレーションとメンテナンスに費やされているという。しかし、企業が導入するサーバーが、汎用UNIXサーバーからIAサーバーと移行してきていることと、プロビジョニングや仮想化技術が向上したことによる運用コストの低減、負荷分散などのシステム停止時間の削減、パッケージソフトウェアの導入など、アプリケーション保守コストの削減などによって、この部分にかかっていたコストを新規開発の部分へ回すことが可能になるという。

「これまではUNIXからの移行というと、何となく似てるからという理由でLinuxが選ばれることもあった。しかし、Microsoftが用意している移行パスは、C言語で書かれたソフトウェアのポーティングから、仮想マシン上での動作まで、広範囲でサポートしている」と話し、それぞれの製品の紹介に移った。

 Visual C++ .Net 2003では、ISO標準への準拠度がUPしているという。Visual C++ 6.0のころは81%だった準拠度も、98.11%へと向上している。また、バッファオーバーフローに対応するための新しいコンパイルオプションとして/GSフラグが紹介された。このオプションを使うことで、OSは例外ハンドラにジャンプする前に、コンパイラが出力したテーブルを確認し、例外ハンドラが乗っ取られることを防ぐ。安全性の検証には9命令を消費するが、それによる性能低下は2%以下であり、大半のアプリケーションでは問題にならないとしている。同氏は、「これまでのイメージを払拭し、Visual C++ .Net 2003でのポーティングを検討してほしい」と語る。

 UNIXからの移行にあたっては、UNIXのシステムコールを利用するようなアプリケーションが移行できるのかも鍵となる。この問題を解決するソフトとして、Windows Services for UNIX(SFU)が紹介された。年内には最新バージョンの3.5をリリースするとしている。

 SFUには、UNIXアプリケーションおよびスクリプトを動作させるNTカーネル上のサブシステム「Interix」が統合されているが、この主な改良点として、国際化、POSIX Threadのサポート、ネイティブでSQL Serverに接続可能にするDBLIBの提供などを挙げる。また、コンパイラとライブラリはそれぞれGCC 3.3、X11R6に更新された。そのほかの特徴としては、Interix環境からのみの使用に限定しているが、シンボリックリンクもサポートしている。

 Win32のサブシステムと並列で存在するSFUを使っていると、それぞれのパス名にも若干の違いがある。こうしたパス名の変換を行うユーティリティとして、unixpath2winやwinpath2unixが用意されている。なお、grepやlessなど、主要なコマンドは国際化対応しているが、「Viはライセンスがよく分からないこともあって入れることができなかった」と同氏はいう。

「SFUとCygwinの違いをよく尋ねられるが、SFUはCygwinのようにエミュレーション環境ではないので、Windows APIに制約されない。また、newlibベースのCygwinでは国際化対応が困難だが、SFUはよりよい日本語ファイル名のハンドリングが可能だ。そのほか、計画的なリリースと、商用サポートがある点もプラスのポイントだろう」とメリットを強調する一方で、「SFUは、POSIX(SYSTEM V)風のコマンドライン引数のため、「ps aux」が「ps -ef」であったりと、Linuxから入られた方は戸惑うかもしれない」とも指摘する。

 ファイル名の大文字小文字の区別については、Window互換モードとPOSIX互換モードをインストール時に選択可能となっている。この部分についてはデモを交え、Window互換モードでは大文字のファイル名が使えないことを示した。また、WindowsのAPIを直接叩くことはできないため、Win32プロセスとの通信は、exec()システムコールで呼び出す形となる。デバイスのアクセスに関しては、Rawネットワークカードにはアクセスできないため、たとえばパケットダンプのアプリケーションをInterixで書くのは難しいとしている。

 なお、SFU 3.5では、ctype.hの定義が変更されているので、以前のアプリケーションは再コンパイルが必要となる。また、アプリケーションを移植・開発するには、setlocale()を適切に呼び出す必要があるので注意してほしいという。とはいえ、それらの変更はそれほど苦難を伴うものではなく、「UNIXから方言を持ったUNIXに移行する感じで捉えてくれればいい。『ちゃんぽん』で開発できる」としている。

 SFUのデモでは、Tideという潮の満ち干きを計算するUNIXアプリケーションのソースコードをSFU上でコンパイルし、その出力をパイプで受け取り、XMLタグを付加しWebサービス化する様子が実演された。

 そして話はこのセッションで一番注目を引いた「Microsoft Virtual Server」に移った。同ソフトは、エンタープライズ分野における仮想マシン(VM)戦略を担う製品と位置づけている。Microsoftは2003年2月に、WindowsおよびMacintosh上で動作する仮想PCソフト「Virtual PC」を開発/販売してきたConnectixの資産の一部を取得しており、同社の持つ技術をMicrosoftがエンタープライズ用途にエンハンスしたものがMicrosoft Virtual Serverである。同製品は、すでにPre-Betaも公開されており、年末にリリースするべくパフォーマンスチューニングなどを行っている最中だという。

 同ソフトは、ホスト側で、32CPU、メモリ64GBをサポートし、Windows Server 2003 Enterprise Editionに最適化された形となる予定だという。また、Windows 2000 Server SP3もホストOSとしてサポートするかもしれないということだった。

 仮想化のサービスとしては、仮想マシンモニタ、COM API、動的なCPUリソースの割り当てなどが提供される。また、仮想ハードウェアはソフト上に業界標準デバイスをインプリすることで、ゲストOS側ではカスタムドライバは必要ないという。ゲストOSには、「Microsoftが提供するからといってWindowsしか動作しないわけではない。x86上で動くOSなら基本的にサポートする。Linuxしかり、Netwareしかり。OpenBSDやNetBSD、超漢字も動くだろう」と語る。実際、Webブラウザ経由で仮想マシン(Red Hat Linux 9)の操作を行うデモが行われ、観客の興味を引いていた。

 また、ライセンシングに関しても触れ、仮想マシンはスタンドアロンと同様の要件となり、Windowsであれば、仮想マシン上で動作させるのに1ライセンスが必要となることを強調した。

 同氏は、同ソフトを勧めたいユーザーとして、現在Windows NT 4.0を使用しているユーザーを挙げた。これは、Windows NT 4.0のサポートが終了するため、Windows NT 4.0にカスタマイズされたアプリケーションを使い続ける必要があるのなら、こうした手段が有効なのではないかという見解からである。

 最後に、Jaca Language Conversion Assistant(JLCA) 2.0を紹介した。同ソフトは、Visual J++またはJavaのソースコードをVisual C#のソースコードに変換する。位置づけとしては、Visual J++からの移行パスとしてVisual J#と並んで用意されていることになる。

Microsoft Java VM(MSJVM)の配布が2003年末で終了するため、今後は脆弱性に対しても修正が提供されない。先の見えないMSJVMに対して移行パスを用意したのだという。

 新機能として、Java Server Pages、Servlet、JDK 1.2コレクションライブラリのサポート、アプレットのサポートの向上(Windows Formに変換)などがある。Visual J#と比較した場合のメリットは、実行環境に.Net Framework再配布版だけあればよく、J#のランタイムが必要ないことがあげられるという。

 同氏は、「WindowsはAPIも独自で移行のための開発が面倒なのではないか?という声がよく聞かれたが、さまざまな分野において移行パスを明確に示したことで、UNIXからWindowsへの移行も現実的な選択肢として考えられるようになってきた。もちろんケースバイケースであるが、適切な移行手段を選択してほしい」と語り講演を閉めた。

関連記事
▼Microsoft Tech・Ed & EDC 2003 YOKOHAMAレポート
▼Windows.NETチャンネル

[西尾泰三,ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.