互換性検証コストを大幅削減、「AppDNA」の仕組みとは?:脱Windows XP計画推進に強い味方
2014年4月、Windows XPはサポート期限切れを迎える。企業内のWindowsの移行は、もはや先延ばしは許されない。一方、企業ユーザーにとって大きな課題は既存アプリケーションの互換性だろう。その互換性を自動で検証するツール「AppDNA」とは、どのようなツールだろうか?
脱Windows XP計画の行く手を阻む「アプリケーション互換性問題」
Windows XPのサポート切れ問題が、今まさに「待ったなし」の状況を迎えつつある。Windows XPのサポート期間が満了するのは、2014年4月。それ以降は、たとえセキュリティ上の新たな脆弱性が露呈したとしても、マイクロソフトから修正パッチは一切提供されなくなる。つまり、2014年4月以降もWindows XPを使い続けることは、セキュリティの脅威に対して裸で身を晒すようなものなのだ。
個人ユーザーがこれを承知の上で、自己責任でWindows XPを使い続けるのならいざ知らず、顧客の個人情報をはじめとする秘匿性の高い情報を管理する企業ユーザーがサポート切れのOSを使い続けることは、自社にとってのセキュリティリスクが高まるだけでなく、社会的責任の面でも大いに問題がある。
とはいえ、サポート期間満了まで残りあと1年強となった今でも、まだWindows XPを主力デスクトップOSとして使い続けている企業は多い。こうした企業が、セキュリティ上のリスクを認識していながらも、なかなかWindows 7やWindows 8へのアップグレードに踏み出せない最大の理由は、現在運用している業務アプリケーションの動作に支障が生じる恐れがあるからだ。
既に広く知られていることだが、Windows XPとWindows Vista以降のクライアントOSは、アーキテクチャや仕様の面で大きな違いがある。そのため、Windows XP向けに開発された業務アプリケーションが、そのままWindows 7やWindows 8の上で正常に動作するとは限らないのだ。それは、OS上にインストールして利用するネイティブアプリケーションだけでなく、Webアプリケーションにしても同じこと。Windows XPに搭載されていたIE6と、Windows 7/Windows 8に搭載されているIE9やIE10とでは、その仕様に大きな差がある。この仕様の大きな差は、主にセキュリティの向上を狙ってのことなのだが、悪意のあるプラグインの起動をブロックしてくれる一方で、本来起動して欲しいWebアプリケーションのプラグインも起動できない場合もある。このような挙動の違いのために、IE6向けに開発されたWebアプリケーションが、そのままIE9やIE10上で正常に動作する保証はないのである。
検証には多大なコストがかかる
従って、現在Windows XP環境上で利用している業務アプリケーションを、Windows 7やWindows 8に移行した後も使い続けるためには、まずは移行先OSの上で正常に動作するかどうかの検証を行う必要がある。しかし、これは多くの人が考えるよりも、はるかに煩雑で手間が掛かる作業になる。
まず、検証すべきアプリケーションの数が予想外に多いというケースが考えられる。規模が大きくない企業であっても、社内で利用されている業務アプリケーションの種類を洗い出してみれば、数百に上ることは決して珍しくない。ましてや大企業ともなれば、その数はさらに増えることになる。
これらを人海戦術で一気に検証することは難しい。なぜなら、アプリケーションの利用方法に精通し、正確な検証作業を行える人員は限られているからだ。さらに、検証の結果発覚した問題を切り分け、アプリケーションをきちんと修正できる要員となると、さらに数は限られてくる。そのため、互換性検証というのは、直前になって一気に人手を投入すれば何とかなるという類の問題ではないのだ。
こうした、アプリケーションの互換性にまつわる問題が行く手を阻むが故に、Windows XPからのアップグレードを躊躇したり、あるいは着手してはみたものの、あまりの作業量の多さに計画の変更を余儀なくされる企業が極めて多いと聞く。
アプリケーションの互換性検証作業を支援する「AppDNA」
しかし、こうした互換性検証作業を大幅に効率化してくれる便利なツールも、極めて少数ながら存在する。その1つが、シトリックス・システムズが提供している「AppDNA」だ。
AppDNAは、Windows OSやWebブラウザのバージョンを移行する際、移行先の環境上で既存アプリケーションが正常に動作するかどうかを自動的に検証し、もし問題点があればその内容とともに対処方法までも提示してくれるという製品だ。
このような機能を備えたツールは、これまでAppDNAのほかにはなかった。そのため、「本当にそのようなことが可能なのか?」と疑問に思う方も中にはいるかもしれない。そこで、AppDNAが具体的にどのような方法で互換性チェックを自動実行するのか、その仕組みをここで簡単に紹介したい。
まずは、Windowsアプリケーションの互換性チェック処理について見てみよう。AppDNAは、まずアプリケーションのインストールファイルから互換性チェックに必要な情報を取得する。MSIパッケージの形式であれば、インストールファイルをAppDNAに読み込ませるだけで、どのようなEXEファイルやDLLファイルがどんなパスに配置され、どのようなレジストリエントリが作られ、あるいはどんな環境変数が作られ……、といった一連の情報を自動的に取得する。また、MSIパッケージ形式以外のインストール方法を用いるアプリケーションであれば、仮想マシン上で実際にインストールプロセスを走らせることによって、やはりこれらの情報を自動的に取得する。
こうして取り込んだ各種情報を基に、移行先OS上での動作に支障をもたらす問題点がアプリケーションに含まれていないかどうかを一斉にチェックする処理が走る。例えばAPIの互換性にまつわる問題をチェックする際には、アプリケーションのEXEファイルやDLLファイルの中身を精査し、どのようなAPIが呼び出されているかをすべて洗い出した上で、それらAPI呼び出しが移行先OSで問題を生じさせないかどうか、データベースと照合した上で判定する。
![](https://image.itmedia.co.jp/ait/articles/1302/14/appdna-overview.png)
アプリケーションの互換性検証作業を効率化してくれる「AppDNA」の画面例。縦軸にアプリケーションが並び、横軸にOSのバージョンが並ぶ。緑や赤のアイコンで互換性チェックの結果が分かる(クリックで拡大)
一方、Webアプリケーションの互換性をチェックする際には、若干異なる処理が行われる。まずは、トップページのURLをAppDNAに入力する。すると、クローラーがトップページからリンクを順々に辿りながら、アプリケーションに含まれるすべてのページのHTMLやスクリプト、CSSなどのファイルを自動的に取得する。そしてその内容を走査し、やはり互換性の問題を生じさせる個所がないかどうかをチェックする。
判定だけでなく、互換性確保のための対応策も提示
こうして実行された互換性チェック処理の結果は、詳細なレポートとしてユーザーに提示される。その内容はかなり詳細に渡り、マイクロソフトが公開するサポート情報へのリンクが付加されるほか、WebアプリケーションであればHTMLやJavaScriptのソースを示した上で、具体的な問題箇所まで特定できるようになっている。
さらにAppDNAの特徴的な点は、問題点を指摘するだけでなく、その解決方法まで提示してくれるところにある。それも、単にアプリケーションを直接修正する方法だけでなく、アプリケーションには一切触れずに、OSの設定変更やインストールパッケージの修正、あるいは「shim」の適用によって問題を回避する方法まで提示してくれる。
shimというのは、Windowsに標準装備されている互換性対応機能のことだ。Windows XPアプリケーションの非互換のAPI呼び出しをフックし、Windows 7/Windows 8の仕様に合致する形に偽装してくれるというものだ。shimは、あまり広く知られている存在ではないが、実はWindows 7/Windows 8の互換性技術の要とも言えるもので、その利用価値は大変高い。海外のAppDNAユーザーからシトリックス・システムズに寄せられたフィードバックによると、AppDNAが提示する通りにshimを適用した結果、互換性に問題を持つアプリケーションの内、約8割のWindows XPアプリケーションがソースコードの修正をせずともWindows 7/Windows 8環境へ移行できたという。
アプリケーションの互換性対応というと、どうしてもソースコードを直接修正するイメージが先に立つが、実はこのような回避策を適用することで、アプリケーション移行に要するコストのかなりの部分を削減できるのだ。
![](https://image.itmedia.co.jp/ait/articles/1302/14/appdna-report.png)
問題点の指摘だけでなく解決方法も含めて提示してくれるレポート機能。この画面ではセキュリティの懸念があるので、shimの適用を推奨している。shimの入手を含めてマイクロソフトが提供する関連情報へのリンクがる
すべての機能を試せる無償評価版も用意
AppDNAのこうした機能を活用すれば、Windows XP環境のアップグレードに際して必要な互換性検証作業や、アプリケーションの修正作業のかなりの部分を自動化し、工数の大幅圧縮が期待できる。
加えて、AppDNAが効果を発揮するのは、何もOSのアップグレード時だけとは限らない。たとえWindows XPからWindows 7/Windows 8へのアップグレードが成功裡に終わったとしても、その後のサービスパックの適用や、ブラウザのバージョンアップのタイミングでは、やはりアプリケーションの互換性検証作業は発生する。その際にも、適宜AppDNAを使って互換性検証作業を自動化すれば、クライアント環境の運用に要するTCOを継続的に抑えていくことが可能だ。
あるいは、デスクトップ環境を物理PC環境から仮想環境へ移行する際にも、AppDNAは威力を発揮する。AppDNAは、Windows 7/Windows 8、IE8/IE9/IE10などの互換性を評価できるほかにも、Windows Server 2008/2008 R2/2012のサーバ環境、さらにはMicrosoft App-VやCitrix XenApp上の仮想環境にデスクトップ環境を移行する際の互換性検証も行うことができる。従って「物理から仮想」、あるいは「仮想から仮想」への移行に際しても、アプリケーションの互換性検証にまつわる作業を大幅に効率化できる。
ただし、すべての検証作業を自動化できるわけではない点には、あらかじめ留意しておくべきだろう。先ほど説明した通り、AppDNAが行う互換性チェック処理は、あくまでもアプリケーションのファイルに対して「静的なチェック」を行うものだ。これだけでもかなりの部分の互換性問題を検出できるものの、アプリケーションを動作させてみて初めて検知できる問題を「動的にチェック」する機能は備えていない。従って、人手による最終の動作確認作業は必要だ。
とは言え、すべてを人手で行うよりははるかに工数を削減できることは明らかだ。極めて少ない労力で、問題を特定しその解決策を提示してくれることに加え、人手による動作検証では決して検出できない潜在的な問題まで自動検出できる点は、極めて大きなメリットと言える。
ちなみにシトリックス・システムズは、このAppDNAの30日間限定の無償体験版も提供している。検証対象アプリケーションの数は5個に制限されるが、正式版のすべての機能が利用できるようになっている。その動作環境も、一般的なWindows 7マシンに、無償で入手できるミドルウェアを幾つか組み合わせるだけで構築でき、またその手順を詳細に記した構築ガイドも併せて提供されている。これらはすべて、同社のサイト上で公開されているので、本稿を読み興味を持たれた方は、ぜひダウンロードしてその使い勝手を一度試してみてはいかがだろうか。
提供:シトリックス・システムズ・ジャパン株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2013年3月13日
Copyright © ITmedia, Inc. All Rights Reserved.