Windows 7にはXPのアプリケーションを動作可能にする「XPモード」がある。Windows 7上で仮想マシンを動作させ、その上でWindows XPを動かす仕組みだ。XPモードは、Professional、Enterprise、Ultimateというグレードで利用可能である。XPがそのまま動くので、アプリケーションの互換性が高い。XP用のデバイスドライバが動作し、USB接続の周辺機器やLAN接続のネットワークプリンターはほぼ使えるという。

 このように、既存アプリケーションを移行する上で理想的なXPモードだが、安易に採用するのは禁物だ。大塚商会の板垣氏も「想定外のコストがかかる危険性がある」と指摘する。

 板垣氏は、ある企業の担当者から「Windows 7への移行でつまずいた、何とかしてほしい」という依頼を受けた。その企業は、導入したWindows 7のPCをすべてXPモードで動かそうとした。既存アプリケーションの動作検証を省略できると考えたためだ。

 ここで問題が起こった。まず、社内のIPアドレスが足りなくなった。XP モードを使うと、1台で二つのOSを動作させることになるので、IPアドレスを二つずつ持たせることになったからだ。さらに、PC1台ごとに導入するセキュリティソフトやクライアント管理ソフトのライセンス数も2倍必要になった。

 展開作業を進めるうちにこの事実に気付いたその企業では、導入方針の策定を一からやり直したという。

 「XPモードの利用は特例と位置づけて、適用する台数あるいは期間を限定したほうがいい」と板垣氏は助言する。

ほかにもある互換性高める仕組み

図2●XPモードを選択すると、想定外のコストがかかることに注意
図2●XPモードを選択すると、想定外のコストがかかることに注意
[画像のクリックで拡大表示]

 XPモード以外にも、Windows 7への移行で既存アプリケーションの互換性を高める仕組みがある。代表的なのは、「アプリケーション仮想化」「互換モード」「クラシックモード」の三つだ(図2)。

 XPモードに次いで互換性が高いのは、アプリケーション仮想化である。これは、Windows 7で動作させたいアプリケーションと、そのアプリケーションが利用するDLLなどをセットにしてクライアントPCに格納し、動作させる仕組みだ。この仕組みにより、本来はWindows 7上で動作しないアプリケーションも動かせる。アプリケーション仮想化の製品には、Microsoftの「App-V」、米Citrix Systemsの「Citrix XenApp」、米VMwareの「VMware ThinApp」などがある。

 その次に互換性が高いのが、Windows 7の持つ互換モードだ。これは、アプリケーションに対して、Windows 7の挙動を旧バージョンのWindowsに見せかけるもの。例えば、アプリケーションがOSに対して、OSのバージョンをチェックする問い合わせをしたとき、Windows 7のバージョン番号の代わりに旧バージョンの値を返す。ただし、正常に動作するかどうかはアプリケーションによる。

 Windows 7で動作させると画面表示だけが乱れてしまう、というアプリケーションに対しては、クラシックモードが使える場合がある。クラシックモードは、画面デザインをWindows 95に似せる機能である。積水化学では、クライアントで動作するJavaアプリケーションをWindows 7に移行するときにこの機能が役立った。Windows 7で動かすと、正常に動作するのだが、表示だけが崩れて困っていた。画面をクラシックモードにしたところ、きちんと表示されたという。

 これらの仕組みは、既存アプリケーションの種類によって使い分けたい。