日本ソフトウェア科学会第 34 回大会 (2017 年度) 講演論文集

アプリケーション仮想共有における共有管理機構のインタフェース
岩田 知大囿 忠親

新谷 虎松

我々は以前に WebRTC を用いたアプリケーション仮想共有システムの開発を行ったが，接続方法に関して簡便にアプリケーションの共有ができないという課題があった．本研究では，アプリケーション仮想共有システムにおける共有管理機構インタフェースの開発を行った．本システムではソフトウェアおよびハードウェアを経由し，接続するインタフェースとなっている．これにより，より簡潔な接続を実現した．本稿ではアプリケーション仮想共有システムおよびその共有管理のインタフェースの概要を示す．また，本システムが使用するメモリを測定し，本システムの実用性について評価を行った．

We developed a virtual control mechanism for sharing native applications, but there was a problem about
a user interface for link management. In our study, we developed a user interface for link management.
An interface of this system to connect via software and hardware. The interface realized a simple andeasy connection. In this paper, we show a virtual control mechanism for sharing native applications anda user interface for link management. Moreover, we measure memories used by our system and evaluate
practicality of it.

た，リモートデスクトップのように，表示されたウィ

1 はじめにンドウに対する操作は元のウィンドウに反映される．

VNC 等のリモートデスクトップにより他の PC 上

これにより，複数の PC 間でアプリケーションを仮想で動作するアプリケーションを利用する場合，デスク的に共有することが可能になる．

トップ全体を共有するのではなく，必要なウィンドウホスト上の各ウィンドウをどのゲストと共有するのみを共有したい場合がある．ここで，実際にアプリのかを指定するための方法を簡単にする必要がある．

ケーションが動作する計算機をホストと呼び，仮想的

この時，利便性を高めるために，ウィンドウの共有開にアプリケーションを利用する計算機をゲストと呼ぶ

始を，アクセス管理を考慮しつつ，ホスト側からもゲとする．本研究では，アプリケーション仮想共有シススト側からも簡便に実行できるようにしたい．以前

テムの開発中である [1]．本研究におけるアプリケーに開発したシステムでは，ホストに，異なる PC のション仮想共有システムとは，ある PC のデスクトッ

Web ブラウザ上から接続し，表示された Web ページ

プ上に表示されたネイティブアプリケーションのウィにウィンドウを表示することで，共有を行うというインドウを，異なる PC のデスクトップ上に仮想的なンタフェースとなっていた．しかし，この接続インタウィンドウとして表示する，ウィンドウ単位のリモーフェースには使用性に関して課題があった．本システ

トデスクトップのようなシステムのことを指す．まムでは，アプリケーション仮想共有のために，ホスト

A User Interface for Link Management on a Virtual
Control Mechanism for Sharing Native Applications
Satoru Iwata，Tadachika Ozono，Toramatsu Shintani,
名古屋工業大学大学院情報工学専攻, Department ofComputer Science, Graduate School of Engineering,
Nagoya Institute of Technology.の IP アドレスが必要である．しかし，IP アドレス自体が複雑な数字列であり，暗記や入力が手間である．
また，システムを利用する際は，どの IP アドレスがどの PC へ割り当てられたものなのか確認しなければいけないため，システムに関係のない操作が必要で力を容易にした．また，その場にいるユーザが全員同じウィンドウを共有するために，それぞれ何かしらの情報を入力することは不効率であると考えられるため，簡潔な動作で共有が行える仕組みが必要である．
本研究では USB メモリに焦点を当てた．USB メモ
リは利便性が高く，安価である．持ち運びも容易であり，近年では学会などで論文データを配布する際などにも用いられる [5]．このように，USB メモリはデータを物理世界でやり取りする際には最適なハードウェアであると考え，本システムでも USB メモリをユー
図1

システム概念図

ザ間で回し，共有に必要な情報を PC に接続することで取得するようなインタフェースとした．

ある場合が出てきてしまう．
本研究では，先に挙げた課題を，PC に対するラベ

3 アプリケーション仮想共有システム

ル付けや，USB メモリを用いることで，ソフトウェ

本章では本研究で開発したアプリケーション仮想共

アおよびハードウェアを経由した，より簡潔な接続を有システムについて，実行例や図を用いながら述べ可能とする接続インタフェースの開発を行った．本稿

る．本システムは PC のデスクトップ上に表示されたではアプリケーション仮想共有システムおよびその共ウィンドウを，異なる PC のデスクトップ上に表示す

有管理のインタフェースの概要と有効性を示す．

る．図 1 は本システムの概念図を示している．実ウィ以降の構成を以下に示す．2 章では関連研究についンドウ wi は，共有されたアプリケーション ai のウィて述べる．3 章では，本研究で開発したアプリケーションドウを示す．また，仮想ウィンドウ vi は，その実ン仮想共有システムの機能および接続インタフェースウィンドウに対応する仮想的なウィンドウを示す．ホについて述べる．4 章では，本システムの実装についスト h は実ウィンドウを持つ PC を示し，ゲスト gて述べる．5 章では，評価実験および考察について述

は仮想ウィンドウを持つ PC を示す．pi と qi は，本べる．最後に 6 章で本稿についてまとめる．

システムのホスト側，ゲスト側で動くそれぞれのシステムを示す．下部の二重線はホストサブシステム pi

2 関連研究とゲストサブシステム qi が通信していることを示す．

複数の計算機間で連携を行うシステムに関する研また，ここでは WebRTC による Peer-to-Peer 通信究が多くされている．池松ら [2] や米澤ら [3] は計算を行なっている．

機間でのファイル共有を直感的に行うためのシステ

本システムは実ウィンドウを仮想ウィンドウとしてムを開発した．また，萩原ら [4] は iPad からデスク表示することができる．また，仮想ウィンドウで発生トップアプリケーションのウィンドウを閲覧するシスしたイベントを実ウィンドウに反映させることができテムを開発した．萩原らの研究は画像処理に焦点を当る．これにより，実ウィンドウを表示している ai のてたものであり，また，操作などはできず閲覧のみをプロセスに対し，外部の計算機からイベントを送るこ行うためのシステムであったが，本研究では複数 PCとができる．これらの機能を実現するために，pi は，を効率的な利用に焦点を当て，デスクトップアプリイベントやビデオストリームを Peer-to-Peer 通信でケーションのウィンドウを共有するシステムの開発をqi とやり取りする．図 1 ではホストとゲストが異な行った．しかし，以前のシステムは第 1 章で挙げたる PC として示されているが，ホストとゲストを同ような課題があり，解決する必要があった．IP アド

一の PC としてでも利用することができる．つまり，レスの入力は手間であるため，PC にラベルを付け入ゲストとしてあるホストの実ウィンドウを仮想ウィン

図2

図3

アプリケーション仮想共有実行例

実ウィンドウ選択画面

ドウとして参照しつつも，ホストとして自分が持つ実また，点線で囲まれた行は点線で囲まれたウィンドウウィンドウを他のゲストへ参照させることもできる．と対応している．実線で囲まれた行はチェックボック
スにチェックが入っているが，これは選択されたこと

3. 1 実行例を示す．また，対応するウィンドウは青色にハイライ

本システムは iPad をゲストとして仮想ウィンドウトされる．また，点線で囲まれた行のように，ある行を表示することもできる．図 2 は iPad をゲストとにマウスが乗った場合，その行に対応したウィンドウして本システムを使用した場合の実行例である．実が赤色にハイライトされ，どのウィンドウを示す行な線で囲まれたものが PC h および iPad g であり，点のかが明確にわかるようになっている．インフォメー

線で囲まれたものがそれぞれ実ウィンドウ wi およションボタンをクリックすると，そのウィンドウの詳びその実ウィンドウに対応する仮想ウィンドウ vi で細が表示される．パスワードを設定したい場合も詳細ある．iPad をゲストとして用いた場合は，マウスやから設定することができる．共有を許可するウィンド

キーボードによる操作ができないため閲覧のみとなっウの選択が終わったら，OK ボタンもしくは USB メてしまうが，タッチ操作によるポインティング機能がモリを共有デバイスとするボタンを押す．OK ボタンある．画面に対しロングタップをすると，実ウィンドを押した場合は，選択されたウィンドウは一般公開とウの相対的に同じ座標がポインティングされる．これなり，ホストに接続したゲストはそれらのウィンドウにより，ゲストが実ウィンドウ上の注目してほしい座から共有したいウィンドウを選択する．もちろんパス標を明確に示すことができる．

ワードの設定があるものはパスワードを入力しなければ共有できない．USB メモリを共有デバイスとす3. 2 実ウィンドウの選択るボタンを押した場合は，ホストに接続された USBホストは共有を行うために，事前に共有を許可すメモリの中から一つ選択し，その USB メモリに共有るウィンドウを選択する必要がある．図 3 は実際にに必要な情報を書き込む．するとその USB メモリがウィンドウを選択している場面である．中央の枠で囲共有に必要なデバイスとなり，USB メモリを接続すまれた部分が実ウィンドウ選択テーブルである．このることで，選択したウィンドウが共有できるようにテーブルでは一つの行が一つのウィンドウと対応しなる．ており，行ごとにチェックボックス，サムネイル，アプリケーション名，インフォメーションボタンが表示

3. 3 共有管理のインタフェース

されている．図 3 では，テーブル内の実線で囲まれ本研究で開発した共有管理のインタフェースには，た行が，実線で囲まれたウィンドウと対応している．

ラベル付けによりソフトウェアを経由するものと，USB メモリによりハードウェアを経由するものの二つがある．本節ではそれぞれについて述べる．
まずラベル付けを用いた接続インタフェースについて述べる．ラベル付けでは，ホストの PC に対して，誰の PC なのかを示すためのラベルを，ホストおよびゲストが任意に付けることができる．これにより，ただ IP アドレスをやり取りするより，容易に誰の PCなのかを判断できるようになった．ゲストはホスト選択テーブルから，接続先のホストを選択する．必要に応じてパスワードを入力し OK ボタンを押すと，ウィンドウ選択テーブルが表示される．このテーブルにはホストが共有してもよいと設定したネイティブ

図4

ウィンドウが表示される．ゲストはこのテーブルからホスト選択テーブル

共有したいウィンドウを選択し，OK ボタンを押すことで仮想ウィンドウが表示される．
次に，USB メモリを用いた接続インタフェースについて述べる．ホストは共有したいウィンドウを選択する．その後，PC に接続した USB メモリを選択し，USB メモリを共有デバイスとする操作を行うと，その USB メモリを共有デバイスとして扱うことができる．ゲストはシステムを起動し，PC に USB メモリを接続するだけで，ホストが選択したウィンドウを共有することができる．
図 4 はホスト選択テーブルを示したものである．
テーブルには行ごとにチェックボックスおよびラベル

図5が表示されており，ゲストはチェックボックスにチェッウィンドウ選択テーブル

クすることでホストを選択することができる．ここではホストを一つ選択すると，自動でウィンドウ選択

では複数選択が可能である．選択したら OK ボタン

テーブル上の一番上に当たるウィンドウが共有対象とをクリックすると，ウィンドウ選択テーブルが表示さして選択される．

れる．図 5 がウィンドウ選択テーブルを示したものである．テーブルには行ごとにチェックボックス，サ4 実装

ムネイル，アプリケーション名，インフォメーション

本章では本システムの実装について述べる．本シス

ボタンが表示される．こちらも，チェックボックスにテムにはホストサブシステムとゲストサブシステムチェックすることでウィンドウを選択することができがあり，どちらもデスクトップアプリケーションとしる．また，複数選択も可能である．ウィンドウ選択後て実装した．また，ゲスト側は Web アプリケーショ

は OK ボタンをクリックする．その後選択されたウィンとしても実装を行ったため，Web ブラウザからシンドウが仮想ウィンドウとしてゲストのデスクトップステムを利用することもできる．アプリケーション上に表示され，共有される．iPad 版では，ホスト選の実装には Electron を用いることで，Web ブラウザ択テーブルは表示されるが，複数選択はできなく，ま対応である WebRTC 技術をデスクトップアプリケーたウィンドウ選択テーブルも表示されない．iPad 版

ションで利用可能とした．ホストとゲスト間の通信に

図6

システム構成は WebRTC による Peer-to-Peer 通信を用いた．には JavaScriptAPI の userGetMedia メソッドを用いる．ここで取得したビデオストリームや，ウィンド

4. 1 システム構成図

ウに関する情報はまずホストサブシステムの通信モ

図 6 は本システムの構成図を示したものである．本

ジュールに送られ，その後ゲストサブシステムの通信システムはホスト側およびゲスト側でそれぞれホストモジュールへ Peer-to-Peer により送られる．ゲスト

サブシステム，ゲストサブシステムが動いており，各サブシステムのウィンドウ管理モジュールでは，仮想サブシステム内にはどちらもウィンドウ管理モジューウィンドウの管理を行う．具体的には，ホストサブシ

ルと通信モジュールが存在する．通信モジュールはステムから送られるウィンドウのビデオストリームをシステム間の Peer-to-Peer 通信およびシグナリング仮想ウィンドウで再生する．また，仮想ウィンドウ上サーバを兼ねたサーバとのソケット通信を行う．シグ

で発火したマウスイベントを検知し，検知したイベン

ナリングサーバとは，Peer-to-Peero 通信を行うためト情報を通信モジュールへ送る．に，必要な情報を Peer 間で交換するためのサーバでサーバではシグナリングサーバとして，Peer-to-ある．ウィンドウ管理モジュールは文字通りウィンドPeer 通信に必要な情報をやり取りすると同時に，通ウを管理する機構であるが，ホストサブシステムとゲ信するホストの情報を管理する．ホストの情報にはストサブシステムで役割が異なる．ホストサブシス

IP アドレスやデスクトップ上の実ウィンドウの情報，テム内のウィンドウ管理モジュールでは，実ウィンドホストに付けられたラベルなどが含まれる．ゲストはウの管理を行う．具体的には，CocoaAPI によりデスサーバから受け取ったホスト情報から，通信可能なホクトップ上のウィンドウ情報（アプリケーション名，ストのラベル一覧を取得する．ゲストに表示されるホタイトル，位置，サイズ，ナンバー）を取得する．まスト選択テーブルには，ここで取得したラベル一覧がた，取得したウィンドウ番号およびウィンドウのビデ表示される．

オストリームを取得する．ビデオストリームの取得

4. 2 共有管理機構のインタフェース

表1

実行環境

アクセス管理を考慮しつつ，ウィンドウの共有管理

機種

MackBook Proを，ホスト側からもゲスト側からも柔軟かつ簡便にOSmacOS Sierra

実行可能にするためのインタフェースを実現した．こプロセッサ

2.5 GHz Intel Core i7

こでは，ホスト h 上の実ウィンドウ w をゲスト g 上

メモリ

16 GB 1600 MHz DDR3の仮想ウィンドウ v として，利用可能にすることを起動ディスク

Macintosh HD共有と呼ぶ．この時，w と v を紐付けることを共有

グラフィックス

Intel Iris Pro 1536 MB

管理と呼び．共有に必要な情報は，ホスト情報およびウィンドウ番号の二つである．以下，これらの情報から共有管理をするための方法を示す．

ゲストサブシステムは，常にドングルの有無を監視しており，接続されたドングルの妥当性を検証す

ホスト情報とは，ホストの SDP や ICE Candidate

る．具体的には，ID が書かれたテキストファイルがなどの，Peer-to-Peer 通信に必要な情報である．ホ

存在するかどうかを調べる．もし存在していた場合

スト情報を取得するために，ホストの IP アドレスがは，ウィンドウ共有に必要な情報を取得し，自動で必要である．しかし，IP アドレスによる指定は，利ウィンドウ共有を行う．

便性が悪い．本システムでは，システム内で独自の名前管理を行うことで，ホスト h に割り当てられたラ5 評価ベルにより，ホストを指定可能である．ゲスト上でホ

5. 1 評価実験

スト選択テーブルからホストを選択すると，そのラ本システムは他のアプリケーションと同時に用いらベルがサーバに送信され，サーバはデータベースをれると考えられる．そのため，本システムが他のアプ用いてラベルで指定されたホスト h，および h のウィリケーションにどれだけの負荷を与えるのか評価する

ンドウ番号の一覧を取得し，ゲストへ送信する．

必要がある．本研究では，一つのホストが複数のゲスウィンドウ番号とは，ウィンドウ w を一意に特定トに対しビデオストリームを配信する場合を想定し，するための数値であり，w のビデオストリームの取得ゲストの数が増えるに従い，ホストサブシステムがどに利用される．インタフェース上ではゲスト g がウィれだけのメモリを使用するのかを測定した．使用メモ

ンドウ選択テーブルからウィンドウを選択した時点

リの値は，Electron の Process オブジェクトが持つで，内部的にウィンドウ番号が取得され，w に対応すgetProcessMemoryInfo メソッドで取得したメモリ使る仮想ウィンドウ v を生成可能になる．ラベルに基づ用統計情報の中から，workingSetSize プロパティのく名前解決によりホストを特定することで，IP アド値を使用メモリとして取得した．表 1 は評価実験をレスを用いる場合よりも簡潔な接続が可能になった．

行った計算機のスペックを示すものである．図 7 が実共有管理を簡便化するために，ハードウェアに基づ験結果を示したものである．横軸はホストが通信する

く直感的な共有管理を実現した．ここでは，特別なゲストの数を表し，縦軸は使用する物理メモリ [メガUSB メモリ（以降，ドングルと呼ぶ）を用いた共有バイト] を表す．また，今回の実験はウィンドウサイ管理を実現した．ドングルを用いた共有管理時は，上ズが 1,920x1,200 であるウィンドウを実ウィンドウと記の 2 つの情報と ID をドングル内に保存する．具体した．

的には，ホスト上にて，上記の 2 つの情報と ID が，テキストファイルとして，USB メモリに隠しファイ5. 2 考察ルとして保存される．ID は，本システムによって生ゲスト数が 0〜10 の時は，使用する物理メモリはお成された情報であることを識別するための記号列でよそ 100[MB] であり，大きな変化も見られない．ゲある．その後，ゲストにドングルを接続することで，スト数が 10 を超えると，使用する物理メモリも大き自動的に共有を開始する．

く増え始め，最終的には 120[MB] を超える値になっし，以前の接続インタフェースの使用性についての課
題を，ホストに対するラベル付けおよび USB メモリを用いた共有管理のインタフェースにより解決した．
また，本システムの使用メモリ量を測定し，実用性について評価した．その結果，一つのホストに対し，ゲスト数が 0〜10 であれば安定して共有が可能であることがわかった．本システムにより，WebRTC を用いたリアルタイムなアプリケーション仮想共有が可能になる．例えば情報技術の授業や会議などで応用できると考えられる．
謝辞 本研究の一部は JSPS 科研費 JP15K00422，JP16K00420 の助成を受けたものです．
図7

使用メモリた．これらのことから，通信するゲスト数が増えるほど使用する物理メモリは増えていくと思われるが，一つのホストに対し，ゲスト数が 0〜10 であれば比較的安定して共有が可能であることがわかった．

6 おわりに
本稿ではアプリケーション仮想共有システムおよびその共有管理のインタフェースの概要と有効性を示した．アプリケーション仮想共有システムは，ウィンドウ単位のリモートデスクトップを実現し，複数の PC間でアプリケーションを仮想的に共有することが可能となった．また，共有管理のインタフェースを開発

参 考 文 献[1] Satoru Iwata, Tadachika Ozono and Toramatsu
Shintani: Any-Application Window Sharing Mechanism based on WebRTC, Proc. 5th International
Conference on Smart Computing and Artificial Intelligence, 2017, pp. 1–6.
[2] 池松香，椎尾一郎: 記憶の石：マルチタッチを利用したデバイス間情報移動, 情報処理学会論文誌, Vol. 55,
No. 4(2014), pp. 1344–1352.
[3] 米澤拓郎，中澤仁，永田智大，徳田英幸: Vinteraction: スマート端末のための振動を利用した情報送
信インタラクション, 情報処理学会論文誌, Vol. 54,
No. 4(2013), pp. 1498–1506.
[4] 萩原拓真，高嶋和毅，モルテンフィールド，北村喜文:
モバイルカメラを用いたデバイス間アドホックアプリ
ケーション共有, インタラクション 2017, pp. 1–9.
[5] 横森励士，青山幹雄，井上克郎: 第 31 回ソフトウェ
ア工学国際会議（ICSE2009）参加報告, 情報処理学会
研究報告, No. 2(2009), pp. 1–8.