1 / 33

Windows PC の GUI 抽出と転送 ~机から離れて PC を使おう~

Windows PC の GUI 抽出と転送 ~机から離れて PC を使おう~. 電気通信大学 安田絹子 (YASUDA, Kinuko) kinuko@spa.is.uec.ac.jp. お品書き. 導入と余談 : PC のある生活 PC リモコンの概要 研究方針 Gray-Box アプローチ オープンプラットフォーム 設計と実装 デモでも. 導入の前にやったことの概要. Windows 用の PC リモコンを設計・実装した 画面表示のうち、 GUI 制御情報だけを PC から手元の携帯端末 (PDA) に転送する 特徴は以下のとおり

dawson
Download Presentation

Windows PC の GUI 抽出と転送 ~机から離れて PC を使おう~

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows PCのGUI抽出と転送~机から離れてPCを使おう~ 電気通信大学 安田絹子 (YASUDA, Kinuko) kinuko@spa.is.uec.ac.jp

  2. お品書き • 導入と余談 : PCのある生活 • PCリモコンの概要 • 研究方針 • Gray-Boxアプローチ • オープンプラットフォーム • 設計と実装 • デモでも

  3. 導入の前にやったことの概要 • Windows用のPCリモコンを設計・実装した • 画面表示のうち、GUI制御情報だけをPCから手元の携帯端末(PDA)に転送する • 特徴は以下のとおり • アプリケーション非依存 • リモコン側端末の表示能力・CPU能力に柔軟に対応 • 少ないネットワーク転送量 • XML記述形式によるオープンプラットフォーム • 複数リモコンによる同時操作が可能 (おそらく) • 必要に応じて特定のGUI部品を抽出・変形可能 (予定)

  4. 導入:PCのある生活 PCリモコン作成までの日々 脱PC傾向とPCへの憂慮

  5. PCブラックホール現象 • 家に初めてデスクトップPCを導入 • 日常生活のPC集約化現象 • あらゆる情報の拠点 • AV機器の代替 • コミュニケーション • 買い物・教育・趣味・ゲーム・暇つぶし • ... • 行動半径がPC周囲に集中

  6. 作業時の定位置 だらけてるとき定位置 その他食事中など 家の環境とPC • 家の間取り • 実際のものとは多少異なります つくえ ベッド

  7. PCが遠い... • だらだらしていてもPCを触りたい • PCは机の上 • だらけながらDVDを観たりMP3を聴いたりしたい... • この間約1.5~3m • たったこれだけの隙間をどう埋めれば? つくえ ベッド

  8. PCの使用スタイル再考(1) どうしてこうで こんな感じにはならないのか?

  9. PCの使用スタイル再考(2) • 机への強い束縛 • 汎用性・多機能の罠 • 高精細なディスプレイ • 高度で複雑な入力機器 • 機能(アプリ)によって異なる操作体系 • 「何気なく」使えない • PC:人=1:1の定着化 • 非PC・脱PCへの研究トレンドの推移 • PCはこのままでいいの?

  10. PCリモコンの概要 研究の目標と方針 実行画面

  11. 目標と要求仕様 • 直近の目標:机から離れてPCを使いたい • 要求仕様 • Windowsで使える • アプリケーション非依存である • 端末能力や嗜好に応じてカスタマイズ出来る • 画像や映像は大きな画面で見たい • 非力な端末では概要情報だけ欲しい • 「再生」「停止」の操作ボタンだけ手元に欲しい

  12. 再生 停止 つまり、必要なのは… • 全画面の転送は不要 • ウィンドウやメニュー・ボタンなど、GUI部品の抽象的な情報だけ抽出して転送できれば良い

  13. 研究方針 • 画面表示のうち、 • GUI情報のみを抽出して転送する • コンテンツ表示部は転送しない • 技術的課題: OSにもアプリケーションにも手を入れず、必要なGUI情報を抽出できるか? • GUI部品のメタな構成情報のみを転送 • アプリケーション非依存 • 少ない転送量・処理量

  14. 実行画面 PC側の画面 リモコン側の画面

  15. WindowsにおけるGUI情報の抽出 中身のわからないソフトウェアの扱い

  16. Windowsへのアプローチ • GUI情報の取得 • UNIXでは… • ネットワーク透過の標準化されたXプロトコルが基本 • 各種GUI Toolkitのソースコードが入手可能 • OS, Window Manager, GUI Toolkit がそれぞれポータブルに作られているので、後から変更・機能追加が容易 • Windowsでは… • Windows = OS + Window Manager + GUI Toolkit + Web Browser + X + Y + Z + … • ソースコード非提供・内部情報なぞ • 公開APIを使ってなんとか探るしかない

  17. 中身のわからないソフトウェア (1) • Black-Boxアプローチ • box内部は全くわからない。box外部から明示的に得られる情報だけで(box内部の状態・挙動を推測して)頑張る • VNC • Gray-Boxアプローチ • box内部に関する一般的な知識(構造や動作アルゴリズムなど)を使って、box外部から得られる情報から内部の状態を知り、制御する • TCP輻輳制御 • ICL tools

  18. 中身のわからないソフトウェア (2) • 提供されたインターフェイスの利用 • 意図された利用 / 副作用の利用 • バイナリ検査・書換え • アプリケーションのバイナリコードを直接変更することで、システム内部情報を取得・制御する • Detours:特定の関数呼び出し前後に別の処理を挿入 • デバッガ,プロファイル用DLL • 入出力のモニタ・計測・ベンチマーク • 履歴・統計的手法による推測 • システムに関する前提知識の活用

  19. PCリモコンにおけるアプローチ • Gray-Boxアプローチ • GUI情報の取得 • 提供されたインターフェイスを利用 • 入出力のモニタ • GUIの振舞いに関する一般的な知識の利用 • 画面表示はウィンドウ,メニュー,ボタンなどの階層構造を持つGUI部品によって構成される

  20. Windowsから得られる情報 (1) • 内部情報の取得・制御 • 情報取得システムコールの利用 • GUIの現在の状態の取得 • 表示中のウィンドウの名前・座標・状態 • ウィンドウの持つメニューの名前・項目 • ダイアログ中のボタン・文字列の内容・座標 • マウスの座標・状態 • GUIの操作・制御 • マウス・キーボードイベントの発行 • ウィンドウ操作 (最大・最小化・移動・リサイズ・名前変更) • メニューの選択 • ボタンの選択

  21. Windowsから得られる情報 (2) • 内部挙動のモニタ • システムコールによるフックの挿入 • 各アプリケーションとWindowsとのインタラクション中に独自の処理(フック)を挿入可能 • フックは各アプリケーションのコンテキストで動作 • 内部の挙動・状態変化をある程度知ることが可能 • ウィンドウの生成・破棄・アクティベーション • マウス・キーボードイベントの発生 • ウィンドウ内部状態の変化 (子ウィンドウの出現など) • メニュー操作・ダイアログ操作などの操作の発生

  22. Windowsから得られる情報 (3) • 一般的な知識を利用して欠けている情報を補う • 一部のウィンドウの移動:ウィンドウ内でマウスドラッグが起きたら移動の可能性 • ダイアログやポップアップの出現:GUI操作後のウィンドウ内部状態変化の通知 • 標準GUI部品を利用していないボタンなどの抽出:イベント後、GUI操作を示すインタラクションが起きていたらその部分はGUI部品 得られる情報をもとにGUI情報を再現してみたもの。これくらいの情報が得られればなんとかなりそう?

  23. PCリモコン:設計と実装 システムの概要 設計・実装

  24. システム概要 • VRC (Virtual Remote Controller) • サーバ・クライアント構成 • サーバ(制御されるPC):GUI情報のモニタ・転送・制御 • クライアント(リモコン):端末能力にあわせてGUI部品を再現

  25. サーバ(PC側)の概要 (1) • Windows XP/2000で動作 • 途中までCygwinで開発、今はVC++

  26. サーバ(PC側)の概要 (2) • GUI情報の取得・管理 • GUI部品情報を木構造として管理 • フックからの通知をヒントに木構造の加工・再構築 • クライアントからの操作要求を反映 • 複数クライアント対応 • マルチスレッド・シンプルな排他制御 • 専用クライアント・Webブラウザ・XULクライアントに対応 • アダプテーション • クライアントごとに端末情報を管理 • 転送形式の変換 • 座標変換・イベントフィルタリング • 文字コード変換

  27. クライアント(リモコン側)の概要 • Linux/Zaurus, Linux/PC, Windowsで動作 • gcc + Qt/Embedded • シングルスレッド・非同期通信 • トップレベルウィンドウ情報のみ内部に保持

  28. GUI記述形式 • 内部形式としてXUL を試験的に採用 • XMLベースのUI記述言語 • MozillaやGeckoなど、ブラウザや最近のWindow Manager/UI Toolkitで採用され始めている • XUL対応のクライアントであればGUIを転送・共有可能 • XSL による木構造の変換・部分抽出 (未実装) • クライアントに指定されたXSLでGUI情報を変換すれば、GUI部品のポータブルな転送・アダプテーション・部分抽出が可能より大きな目標 • XULをベースとすることで、Windows PCに対するアクセスのためのオープンな基盤を提供できる…かも? • (機能ではなく)操作のポータビリティに着目 • プラットフォーム共通なGUI記述・操作言語 • GUI情報の転送・共有を切り口にしたオープン分散化の試み

  29. XUL表現 (略式) • “?xul” サフィックスをつけることでWebブラウザから参照可能 <window title=“Power Point” width=“80 <menubar> <menu id=“14573”> <menuitem value=“ファイル” id=“632 <menuitem value=“編集” id=“63397” <menuitem value=“表示” id=“63342” …. </menu> </menubar> </window>

  30. HTML表現 • HTMLに変換して出力 • 通常のWebブラウザからメニューの表示・操作が可能

  31. まとめ • PCリモコンを作った。 • アプリケーション非依存なGUIメタ情報のみを抽出・転送するという手法を提案した。 • Windows内部情報を取得するためのアプローチについて説明した。 • XMLベースの記述表現を用いたオープンなGUI転送の構想について述べた。 • 課題・問題点 • たくさん

  32. 参考文献 (1) • Gray-Box アプローチ • Andrea C. Arpaci-Dusseau and Remzi H. Arpaci-Dusseau. Information and Control in Gray-Box Systems. SOSP’18, Oct 2001. • Windows Binary Inspection/Instrumentation • Ted Romer, Brian Bershad and et al. Instrumentation and Optimization of Win32/Intel Executables Usint Etch. USENIX Windows NT Workshop, Aug 1997. • Galen Hunt and Doug Brubacher. Detours: Binary Interception of Win32 Functions. MSR-TR-98-33 Microsoft Research, 1999.

  33. 参考文献 (2) • XMLベースのポータブルUIの試み • M. Abrams, J. Shuster and et al. UIML: An appliance-independent XML user interface language. 8th International World-Wide Web Conference WWW’8, May 2000. • Nikola Mitrovic and Edurado Mena Interactive Systems. Adaptive User Interface for Mobile Devices. Design, Specification and Verification. 9th International Workshop, Jun 2002. • Tzu-Han Kao, Po-Wen Cheng and et al. An XML-Based Context-Aware Transformation Framework for Mobile Execution Environments. 5th Asia-Pacific Web Conference, APWeb 2003, Apr 2003.

More Related