2011年11月24日木曜日

Windows7 で何故 IE6 を利用したいのか?

Windows7 で何故 IE6 を利用したいのか?


IE6 を Windows7 で利用するためのソリューションとしては、
VMware ThinApp や Microsoft の"XPモード","MED-V"があります。

そのあたりは、みなさんも既に調べられていると想いますので
今回は、もう少し掘り下げて考えたいと思います。

まずは、こちらのリンクから SimpleBrowser をダウンロードして試してみてください。(フリーウェア)
http://nilbrowser.web.fc2.com/

英語のページはこちら
http://nilbrowser.web.fc2.com/indexen.htm

SimpleBrowser は、IE6に見た目が似たブラウザです。
Windows7 でも動作します。IEコンポーネントを利用しているので IE8 のレンダリングエンジンを利用しますが、IE8 が持っている互換モード(IE5/6 の互換レンダリング Quirks モード)を強制的に利用する機能があります。
※必ずreadme.txtを確認してください。


IE6 を Windows7 で動かしたい。
というニーズはたくさんあります。

お客様からお話を伺うと
Windows7 への移行を検討している。
なぜなら、今現在 WindowsXP を利用していて2014年4月8日でサポートが切れてしまう。
そのため新しい Windows7 環境に移行する事を真剣に考えている。

しかしながら、 Windows7 ではアプリが動かない( WindowsXP でしか動かない)
管理者権限でないと、アプリが動かない
せっかく Windows7 にするので、ユーザーの権限は一般ユーザー権限に統一したい

社内Webシステムが IE6 でないと動作しない
IE8 に対応するための、システム改修費用が。。。
既に IE9 がリリースされているし IE10 も、しばらくすると登場するし
IE以外のブラウザも視野に入れたほうがいいのか?
IE6 でロックインされてしまった教訓を生かしたほうがいいのでは?
対応するブラウザを増やすと、それだけ費用がかかるし。。。
Firefox 、 Google Chrome はバージョンアップの頻度が激しすぎるし。。。
機能追加ではないWebシステム改修に費用をそこまで、かけられない。。。
等々、悩みがつきません。

Windows7 への移行はアプリ周りの互換性問題が足を引っ張ってしまって
なかなか、進まない現実があります。

Windows7 で IE6 を動かしたい理由は、まさに
「社内システムが IE6 でないと動作しない」
という事への対策ではないかなと思います。

もう少し、踏み込んで考えると
「社内システムが IE6 でないと動作しない」
の部分を明確にする事が重要です。

何故 IE6 でないとダメなのか。
Windows7 にインストールされている IE8 では
ダメなのか?
動くのか動かないのか、使えるのか、使えないのか
どの様な問題が実際に発生しているのか?
「表示が崩れる」
「タブ型になったから、使い勝手の変化に対応できない」
「UserAgent に対応できていない "MSIE 6.0"しか正しく動かない」

などなど、そのWebシステムの問題を具体的に把握する必要があります。
そうすることで、具体的な問題がわかってきます。
仮に最新のIEに対応する、システム改修を行うと決めた場合も、具体的な問題が
はっきりしていると、その分費用を抑えられるかもしれません。

・実は ActiveX の互換問題がある
・Java Runtime Environment のバージョン問題
(JRE 1.6 では動作しないシステムで JRE 1.3 が必要)
・Excel 2000 を利用しているWebシステムで Windows7 には Excel 2010 をインストールするから
マクロの互換問題で Excel 2010 では正常に動作しない物があるから等。
・Adobe Reader 8 を利用しているWebシステムで Windows7 には Abode Reader X をインストールするから
・実はMSゴシックや明朝の JIS2004 に絡む問題で字形が変わった事による問題
等々、具体的な問題を把握する必要があります。

一番ダメなのは、
「今 IE6 を使っているから Windows7 で IE6 を動かせば、テストしなくてもOKだよね?」
になります。OS環境が変わるので、まったくテストしないのはあり得ません。
もしかしたら、ちゃんと動かないかもしれませんし、簡単な動作確認もせずに
利用を始められるわけがありません。
テストは必要です。だからと言って全ての機能の結合テスト、受け入れテスト全部を行う必要があるかは、ポリシー次第ですし何がベストなのかは、一概に言えませんが
最低限、業務に支障がないことを確認するべきでは無いかなと思います。
現場でそのWebアプリを使っている人に、ひと通りの業務を行なってもらってOKかNGかを
判断してもらうことでも、現実的にはよいのではないかなと思ったりもします。

今回も前置きが長くなりましたが、「 Windows7 で何故 IE6 を利用したいのか?」が
はっきりすると、対策が見えてきます。

問題は大きく分けると以下になると思います。(他にもたくさんあると思いますが、無理やりまとめます。)
  1. 表示が崩れる
  2. UserAgent の問題( MSIE 6.0)
  3. タブ型になった(UIの問題)
  4. ActiveX の互換問題
  5. Java のバージョン問題
  6. 連携する MS-Office のバージョン問題
  7. その他、連携するアプリのバージョン問題
  8. MSゴシック・明朝の JIS2004 の字形問題

それぞれの問題に対するアプローチ
初めに、IE8 、 SimpleBrowser 、 ThinApp VirtIE6 、"App-V"の
長所・短所について以下の表にまとめました。

ThinApp は IE6 を丸ごと仮想化して Windows7 で直接実行できます
App-V は IE6 を丸ごと仮想化することは、できません

問題IE8Simple
Browser
ThinApp
 VirtIE6
App-V備考
表示が崩れる△:IE8には3つの
レンダリングモードがあるので、もしかしたら行けるかも
○:SimpleBrowserにはレンダリングモードをIE5/6互換に強制する機能がある
◎:ThinAppVirtIE6はIE6その物
UserAgentの問題
"MSIE 6.0"対応
××:レジストリを直接編集すれば変更可能かもしれません。未調査
○:SimpleBrowserにはレンダリングモードをIE5/6互換に強制する機能を有効にすると、UserAgentもMSIE6.0にしてくれる
◎:ThinAppVirtIE6はIE6その物なので。
△:仮想レジストリを編集することで変更できるかも。未調査
タブ型になった
(UIの問題)
△:IE8ではタブを無効にできる
○:SimpleBrowserはIE6に似たUI
◎:ThinAppVirtIE6はIE6そのままのUI
ActiveXの互換問題××アプリ仮想化技術で上手く動く物もあり。
Javaのバージョン問題××アプリ仮想化技術で動く場合もある。
連携するMS-Officeのバージョン問題××アプリ仮想化技術で動く。
その他、連携するアプリのバージョン問題××アプリ仮想化技術で動く物もある。
MSゴシック・明朝のJIS2004の字形問題××××OS自体のMS明朝・ゴシックフォントを変更JIS90フォントを入れるか、他のフォントを使う
凡例: △そこそこ、○まあまあ、◎良い感じ、×ダメっぽい

ということで、まとめると。
・アプリ仮想化技術だけでは、対応できない事もある。JIS2004フォント問題
・ ThinApp VirtIE6 が最強。
・意外と IE8 も活躍できる場面あり。
・SimpleBrowser も IE8 よりは、活躍できる場面がある。
・"App-V" も活躍できる場面がある。

これらを、組み合わせると実は、もっと活躍できる場面が増えるのではないかなと思います。
例)ThinApp + SimpleBrowser + Java1.3 + ActiveX + Office2003
ThinApp + SimpleBrowser + IE6レンダリングエンジンのみ + Java1.3 + ActiveX + Office2003
App-V + SimpleBrowser + Java1.3 + ActiveX + Office2003

補足:ThinApp、App-V共にフォントも仮想パッケージ化して仮想アプリから利用できる機能があります。簡単にテストした所では、JIS90フォントを仮想パッケージ化してもWindows7では安定して利用できませんでした。できる場合もあったりと、今ひとつ安定して利用できませんでした。
OSにインストールされていない、追加のフォントは問題なく利用できるのですが
MS明朝・ゴシックはOSに既にインストールされているので、厳しいのかもしれません。

IE のレンダリングモードの注意点:
IE6 そのもののレンダリングと SimpleBrowser のIE5/6互換表示では
対応するレンダリングモードに決定的な違いがあります。

IE8 は、3つのレンダリングエンジンを持っています。
IE8レンダリングモード表示内容
IE8 Standards モード(IE8標準モード)IE8の機能をフルに利用
IE7 Standards モード(IE7標準モード)IE7と同等の機能で表示
Quirks モード(互換モード)IE5と同等の機能で表示(IE6およびIE7のQuirksモード)
※ SimpleBrowser が強制できるモード


IE6 は、2つのレンダリングエンジンを持っています。
IE6レンダリングモード表示内容
IE6 Standards モード(IE6標準モード)IE6の機能をフルに利用
※IE8には、存在しないモード
Quirks モード(互換モード)IE5と同等の機能で表示(Quirksモード)
※IE8が持っている互換モード

という訳で、IE6 のStandardsモードのみで、正しくレンダリングされる
サイトは、IE8 でも SimpleBrowser でもレイアウトが崩れてしまいます。
その場合は、ThinApp VirtIE6を利用する事になると思います。


まとめ:
初めに、何故 IE6 でないとダメなのか。の理由をはっきりさせましょう。
次に、その問題が、どのタイプに該当するのかを確認しましょう。
次に、タイプ別の問題を、どのように対処するのかを考えましょう。
最後に、選択したソリューションの戦略を元に、戦術に落としこみ試行錯誤しつつ、この困難な問題をやっつけましょう。
それが、本来のソリューションだと思いますので。



参考:
WindowsXPのサポート ライフサイクル
http://support.microsoft.com/lifecycle/?c2=1173

IE8 のレンダリングモードと互換表示
http://builder.japan.zdnet.com/html-css/sp_internet-explorer-8-2009/20391111/

Windows7用JIS90フォント
http://www.microsoft.com/ja-jp/windows/windows-7/jp_font/fontpackage.aspx


ThinApp Blog
Internet Explorer 6 on Windows 7
"Web Apps are the new DLL Hell"
http://blogs.vmware.com/thinapp/2010/06/internet-explorer-6on-windows-7.html