GG上のアプリケーションとしてICAクライアントをホスティングしたところ, 「GG → ICAクライアント → アプリケーション」 という環境で画面が乱れることがある.
技術ノート
2010/11/04
[番号]
技術ノート KGTN 2010110401
[現象]
GG上のアプリケーションとしてICAクライアントをホスティングしたところ, 「GG → ICAクライアント → アプリケーション」 という環境で画面が乱れることがある.
[説明]
GraphOn社の製品もCitrix社の製品もサーバサイド・コンピューティングの環境を提供するソフトウエアですが,その実装方式が大きく異なります.GraphOn社の製品は API Wrapping 方式で実装されており,サーバ側で描画されると,そのAPIの内容が時系列的にかつ忠実にクライアント側へ転送され,クライアントの画面上で再現 (描画) されます.Citrix社の製品は Screen Scraping 方式で実装されており,サーバ側で描画されると,その内容が直ちにクライアント側へ転送されることはなく,グラフィック・メモリ領域を一定間隔で監視する機能によってユーザ・インターフェイス画面情報の変化が検出され, (描画の時系列とは直接関係のない) この画面情報の差分がクライアント側へ送信され,クライアントの画面上で変化があった部分のみが描画されます.
「GG → ICAクライアント → アプリケーション」 という環境では,アプリケーションが描画したAPIの内容および時系列がCitrix社の製品によって失われるため,アプリケーションの描画処理の内容によっては,GGのクライアント上で忠実に再現されないことがあります.このような現象が発生した場合は,GG側で対処することは困難で,アプリケーションのソースコードに Sleep() 関数を挿入する等の調整を行うことで,描画が正しく再現出来る可能性があります (過去に1件だけ事例があり,試行錯誤で約1ヶ月を要しました) .調整が困難か,または調整を行っても描画が正しく再現されない場合は,現象が発生するウインドウを手動操作で 「最小化 → 復元」 して再描画させる等の運用回避を行って下さい.