情報処理学会 インタラクション 2018
IPSJ Interaction 2018

2B30
2018/3/5

即応的なネイティブアプリ仮想共有のための共有管理システムの実現
岩田 知1,a)

大囿 忠親1,b)

新谷 虎松1,c)

概要：PC を用いた協調作業では，ネイティブアプリケーションを共有することで作業の効率化が期待できる．本研究では WebRTC 技術を用いて任意のアプリケーションを低遅延で共有することができる，アプリケーション仮想共有システムを開発した．また，共有開始手続きを円滑に行うための，アプリケーション仮想共有ドングルを実現した．ドングルの挿入をキーとして，アプリケーション共有に必要な手続きを自動化することで，迅速な共有開始を可能とした．また，評価実験により，共有開始に要する時間は，最大でも 2,000ms であり，本システムが実用的であることを示した．

Developing a Management System for
Instant Native Application Virtual Sharing
Satoru Iwata1,a)Tadachika Ozono1,b)Toramatsu Shintani1,c)Abstract: Sharing native application windows of multiple PCs are demanded to help cooperative works
because users can manipulate mixed native windows from diﬀerent PCs by using their own PCs. However,making composite native applications is time consuming. We have developed an application virtual sharing
system with the WebRTC technology. Moreover, we have developed an application virtual sharing dongle
for smooth and eﬀective interface. The dongle helps users to share composite native applications easily. The
time required to start the application sharing was less than 2,000 ms. This paper shows how the system canbe used practically.

1. はじめにレイが用意できない場合が多い．このような場合，デスクトップ単位で画面を共有するリモートデスクトップや，ネPC を用いた協調作業では，参加者間で作業中の画面をイティブアプリケーションのウィンドウ単位で画面を共共有することで，効率的な作業が期待できる．例えば，参有するアプリケーション共有を利用することで，作業中の加者が PC を持参し，システム開発の打ち合わせを行う場PC 画面を共有することができる．本研究ではアプリケー面を想定する．このような場面では，ユーザインタフェーション共有について焦点を当てている．アプリケーション

スの図案などをメンバー全員で共有する際，画面を共有す共有を行うには，共有するアプリケーションと共有相手を，ることで，メンバーの意見を参考にしつつリアルタイムでユーザが選択する手続き (以下，共有開始手続きと呼称す

図案を編集し，かつ編集した図案を共有することができる．

る．) が必要である．この共有開始手続きが円滑に進まな

しかし，アドホックに行われる小規模な協調作業では，作い場合，かえって協調作業を妨げてしまう．そのため，協業中の PC 画面を参加者間で共有するための外部ディスプ

調作業で用いられるアプリケーション共有システムには，

1a)b)c)

円滑な共有開始手続きが行えるインタフェースが必要で
名古屋工業大学大学院情報工学専攻
Department of Computer Science, Graduate School of Engineering, Nagoya Institute of Technology
iwasato@toralab.org
ozono@nitech.ac.jp
tora@nitech.ac.jp© 2018 Information Processing Society of Japan

ある．
本研究の目的は，アプリケーション共有システムの開発および，円滑な共有開始手続きを可能とするインタフェー

636

情報処理学会 インタラクション 2018
IPSJ Interaction 2018

2B30
2018/3/5

スを実装することにより，協調作業の支援を行うことである．ただし，ここで対象とするのは，四，五人で行われる小規模かつ対面式の協調作業である．本研究では，アプリ
ケーション画面を P2P 通信におけるストリーミング配信することでアプリケーションの共有を行うアプリケーション仮想共有システム [1] を開発した．また，USB メモリの挿入を共有開始のキーとして，共有するアプリケーションおよび共有相手の決定を自動で行うアプリケーション仮想共有ドングルを開発した．また，本研究において，アプリケーションを公開する側のユーザをホスト，公開されたアプリケーションを共有する側をゲストと呼称する．また，公開するアプリケーションを実ウィンドウ，共有されたウィンドウを仮ウィンドウと呼称する．
本稿の構成を以下に示す．第 2 章では関連研究について述べる．第 3 章では，開発したアプリケーション仮想共有

図 1 概念図Fig. 1 Conceptual Diagram．

システムおよびアプリケーション仮想共有ドングルについて述べる．第 4 章では，本システムの実装について述べる．

運びが容易なハードウェアをインタフェースに応用するこ

第 5 章では，本システムの実用性についての評価実験およとで，共有開始手続きが円滑になる可能性がある．以上のび考察について述べる．最後に第 6 章で本稿についてまとことを踏まえ，本研究では共有開始手続きのためのインタめる．

フェースにはドングルとして USB メモリを用いた．USB

2. 関連研究

メモリは安価で入手が容易である．また，小型な記憶媒体であるため持ち運びも容易である．事前に共有に必要な情本章では関連研究について述べる．協調作業での利用を報を選択しておき，USB メモリの挿入をキーとして共有開想定したアプリケーション共有についての論文は数多く存始手続きが自動で完了するようなインタフェースとするこ在する．佐藤ら [2] はアプリケーションのバージョンを考とで，円滑な共有開始手続きを可能にする．

慮した共有システムを開発した．彼らのシステムでは，各参加者が自分の使い慣れたバージョンの操作性をそのまま3. アプリケーション共有システム保持しながら，アプリケーションを共有できる．彼らは個本章では，実行例や図を用いながら，本研究で開発した人での利用が想定されたアプリケーションをそのまま複数アプリケーション共有システムの機能やインタフェースに人で利用できるようなシステムを目指したが，本研究ではついて述べる．第 1 節ではシステム全体の説明を述べる．

あくまでアプリケーションの操作主はホストであり，複数次に，共有開始手続きにおけるインタフェースについて述のゲストが共有されたアプリケーションを利用する場面はべる．共有開始手続きにおけるインタフェースには，ソフ想定しない．山之上 [3] は P2P 技術を利用したアプリケー

トウェアベースのものと，ドングルを用いたアプリケー

ション共有システムを開発した．彼らのシステムを組み込ション仮想共有ドングルの二つが存在する．第 2 節でソフんでアプリケーションを開発することで，低遅延なアプリトウェアベースのインタフェースについて述べ，第 3 節でケーション共有が可能となる．本研究でも P2P 技術を利用アプリケーション仮想共有ドングルについて述べる．

したアプリケーション共有システムを開発する．加えて，
本研究では Web 技術を利用することで，共有のために事前にアプリケーションへシステムを組み込む必要がなく，任意のアプリケーションを共有することができる．

3.1 アプリケーション仮想共有システム
本システムはホスト側のデスクトップ上に表示されたアプリケーションのウィンドウを，ゲスト側のデスクトップ萩原ら [4] はモバイルカメラによる撮影をキーとして共上に表示する．図 1 は本システムの概念図を示している．

有開始手続きを完了するシステムを開発した．モバイルカ

ウィンドウ w1 は，ホスト h1 のデスクトップ上に存在す

メラは携帯端末であり持ち運びが容易であるため，アドる実ウィンドウを示す．また，ウィンドウ v1 は，実ウィホックな状況における円滑なデバイス間でのデータ共有にンドウ w1 に対応した，ゲスト g1 のデスクトップ上に存在応用できる．本研究では，アプリケーション共有をホスト，する仮想的なウィンドウを示す．プロセス ph はホスト h1

ゲストともに PC 上で行うことを想定している．そのた上で動くプロセスを示し，プロセス pg はゲスト g1 上で動め，計算機に搭載された，もしくは付属のカメラなどを用くプロセスである．プロセス ph は，実ウィンドウ w1 かいたインタフェースは本システムには不適であるが，持ちらビデオストリームを取得する．また，プロセス ph が受© 2018 Information Processing Society of Japan637

情報処理学会 インタラクション 2018
IPSJ Interaction 2018

2B30
2018/3/5

図 3

実行例：公開するアプリケーションの選択

Fig. 3 Example: Selecting Application in Host Side．
図 2

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

Fig. 2 Example: Application Sharing

信したマウスイベントを実ウィンドウ w1 へポストすることである．ここで取得したビデオストリームは仮ウィンド
ウ v1 へ送信される．仮ウィンドウ v1 は受け取ったビデオストリームをウィンドウ上で再生し，画面共有を行う．また，仮ウィンドウ v1 はマウスイベントを検知し，検知したマウスイベントをプロセス ph へ送信する．プロセス pg
は，仮ウィンドウ v1 の作成および削除を行う．
図 2 は本システムを利用した場合の実行例である．実線

図 4 実ウィンドウ選択リスト

で囲まれたウィンドウ A は，ゲスト側の PC のデスクトッ

Fig. 4 Application List for Selecting．

プ上に存在する共有されたアプリケーションのウィンドウを示す．実線で囲まれたウィンドウ B は，ホスト側の PCは赤くハイライトされている．青いハイライトは，選択さのデスクトップ上に存在する公開されたアプリケーションれたウィンドウを示す．また，赤いハイライトは対応するのウィンドウを示す．図のように，ウィンドウ B と同じ行にマウスオーバーしていることを示す．

画面がウィンドウ A に表示されている．また，ウィンドウ

図 4 は図 3 上の実ウィンドウ選択リストを拡大したもの

A に行ったマウスダウン，マウスアップなどの操作はウィである．各行には，左から順にチェックボックス，スクリー

ンドウ B に反映される．

ンショット，アプリケーション名，インフォメーションアイコンが表示されている．チェックボックスにチェックを3.2 ソフトウェアベースのインタフェース入れることで公開するウィンドウを選択できる．インフォ

本節ではソフトウェアベースのインタフェースについて

メーションアイコンは，クリックすると，対応するウィン述べる．本システムのインタフェースは，ホストが公開すドウの詳細情報が表示される．この詳細情報には，ウィンるアプリケーションを選択するインタフェースと，ゲストドウサイズや位置などが含まれている．実ウィンドウ選択が共有するアプリケーションを選択するインタフェース

リスト下部には共有デバイス作成ボタンおよび OK ボタンの二つに分割することができる．まずはホスト側のインタが表示されている．OK ボタンは選択したウィンドウを決フェースについて述べ，次にゲスト側のアプリケーション定するボタンである．共有デバイス作成ボタンは，アプリについて述べる．

ケーション仮想共有ドングルを作成するボタンである．

ホストには，リスト形式で PC 上で起動するアプリケー以上がホスト側のインタフェースになる．次に，ゲストションのウィンドウのスクリーンショットやアプリケー側のインタフェースについて述べる．ゲスト側では，共有ション名などの情報を提示する．図 3 は実際に公開するアするアプリケーションを選択する前に，ホストの選択をプリケーションをホストが選択している場合のデスクトッ行う．

プ画面である．中央に表示されている実線で囲まれたウィ

図 5 はホスト選択リストである．リストにはアプリケー

ンドウは実ウィンドウ選択リストである．リスト中の実線ションを公開しているホストの一覧が表示されている．各で囲まれた行，および点線で囲まれた行は，それぞれデス

行には左から順に，チェックボックス，IP アドレスおよ

クトップ上の実線，および点線で囲まれたウィンドウと対びホスト名が表示されている．チェックボックスにチェッ応している．デスクトップ上の実線で囲まれたウィンドウ

クを入れることでホストを選択したことになる．ホスト名は青くハイライトされており，点線で囲まれたウィンドウは，各ホストが任意に設定することができる．ホスト選択© 2018 Information Processing Society of Japan638

情報処理学会 インタラクション 2018
IPSJ Interaction 2018

図 52B30
2018/3/5

ホスト選択リスト

Fig. 5 Host List for Selecting．
図 7 システム構成図Fig. 7 System Architecture．

され，共有開始手続きが完了する．ソフトウェアベースのインタフェースでは，ゲストはリストからホストやアプリケーションを選択する必要があるが，アプリケーション仮想共有ドングルはホストが公開したアプリケーションをそのまま共有するため，ゲストが選択する手間を減らすことができる．また，ドングルを用いることでパスワードなどを設定しなくてもセキュアなアプリケーション共有が可能となる．
図 6 仮ウィンドウ選択リスト

4. 実装

Fig. 6 Virtual Window List for Selecting．

本章では本システムおよびインタフェースの実装手法にリスト下部には OK ボタンが表示されている．OK ボタンついて述べる．図 7 は本システムの構成図を示す．本シスをクリックすると，次は仮ウィンドウ選択リストが表示さテムは大きくホストプロセス，ゲストプロセス，サーバ，れる．

仮ウィンドウの四つに分けることができる．また，図中に

図 6 は仮ウィンドウ選択リストを示す．リストには，ホスト選択リストで選択したホストが公開しているアプリある USB メモリが，アプリケーション仮想共有ドングルで利用するドングルである．

ケーションのウィンドウの一覧が表示されている．各行にホストプロセスは通信モジュールおよびウィンドウ管理

は，左から順に，チェックボックス，仮ウィンドウのスクモジュールを持っている．ウィンドウ管理モジュールは，リーンショット，アプリケーション名，インフォメーショ

ホスト側のデスクトップ上に表示されているウィンドウのンアイコンが表示されている．各項目の役割は実ウィンド管理を行う．ウィンドウ管理モジュールの役割は，ウィン

ウ選択リストと同じである．仮ウィンドウ選択リスト下ドウのビデオストリームの取得およびマウスイベントをポ部には Back ボタンおよび OK ボタンが表示されており，ストすることである．また，共有に必要な情報を USB メ

Back ボタンを押すと再びホスト選択リストが表示される．

モリへ格納する．通信モジュールはサーバや仮ウィンドウ

OK ボタンを押すと，選択した仮ウィンドウがゲスト側のとの通信を行う．サーバには，ホスト側のデスクトップ上デスクトップ上に表示される．に表示されているウィンドウや，それらを一般公開するかどうかなどの情報を送信する．仮ウィンドウには，ウィン

3.3 アプリケーション仮想共有ドングル
本節ではアプリケーション仮想共有ドングルについて述べる．まずホストは，先に述べた実ウィンドウ選択リスト

ドウ管理モジュールで取得したビデオストリームを送信している．また，仮ウィンドウの通信モジュールとは P2P 通信を行なっている．

により，公開するアプリケーションを選択する．選択を終サーバでは，ホストプロセスおよびゲストプロセス間のえたら，共有デバイス作成ボタンを押す．すると， 記憶媒通信を行なっている．ここでの通信はソケット通信である．

体を選択するダイアログが表示され，任意の記憶媒体を選ホストプロセスから送られたホスト情報はデータベースに択する．ここで選択された記憶媒体がドングルとなる．次格納される．ここで格納されたホスト情報は，ゲストプロに，選択した記憶媒体をゲスト側の PC に挿入する．する

セスからリクエストがあった際はゲストプロセスへ送信すと，ホスト側で選択されたアプリケーションが自動で選択る．また，サーバ内にはアクセス管理モジュールがある．

© 2018 Information Processing Society of Japan639

情報処理学会 インタラクション 2018
IPSJ Interaction 2018

2B30
2018/3/5

表 1

この機構は，ゲストがホストとアプリケーション共有を行

計測項目

う際に，そのホストが通信可能か，ウィンドウを共有可能

Table 1 Measurement Items．

かなどを判断し，可能であった場合にゲストに対しウィン

エンコード処理時間 [ms]ドウ情報や P2P 通信を行うために必要な情報を送信する．

RTT[ms]また，アクセス管理モジュールでは，各ホストが一般公開

デコード処理時間 [ms]するウィンドウ群と，各ホストが USB メモリを用いて公開するウィンドウ群をそれぞれグループ化し管理している．

表 2用いた計算機Table 2 Computer Used for Experiment．

各グループにはユニーク ID が割り振られており，ゲストが共有を開始するには，サーバに対しこのユニーク ID をキーとしてアクセスする必要がある．
ゲストプロセスは通信モジュールおよびウィンドウ管理

OSmacOS Sierra

プロセッサ

2.5 GHz Intel Core i7

メモリ

16 GB 1600 MHz DDR3

グラフィックス

Intel Iris Pro 1536 MB

モジュールを内包する．通信モジュールはサーバとの通信を行う．サーバから受け取ったホスト情報から，ホスト名

30 秒ごとに 1 枚ずつ増やしていき，10 枚に達したところやウィンドウ情報などを抜き出し，ホスト選択リストや仮で共有を終了する．これらの様子をビデオカメラにより撮ウィンドウ選択リストに表示している．また，P2P 通信影する．撮影後，共有開始の操作を完了してから，決定しに必要な情報もホスト情報中のウィンドウ情報に含まれてた仮ウィンドウ画面が表示されるまでのフレーム数をカウいる．ウィンドウ管理モジュールでは通信モジュールからントする．カウントしたフレーム数をビデオカメラの FPS受け取ったウィンドウ情報から仮ウィンドウ作成イベントで割り，仮ウィンドウ画面が表示されるまでに要した時間を発生させ，仮ウィンドウを表示する．また，挿入されたを計測する．また，今回は FPS が 60 のビデオカメラを用

USB メモリからキーを共有開始に必要な情報として読み取い，共有するウィンドウ画面のサイズは 960x1,200 とした．

り，通信モジュールを経由してサーバへアクセスする．仮次に，内訳の取得方法を説明する．本システムは仮ウィ

ウィンドウは作成時にホストプロセスとの P2P 通信に必要ンドウのフレームが完全に表示されてからホストと P2Pな情報を受け取り，仮ウィンドウが表示されたと同時にホ通信を行うようになっているので，上記の全体時間の計測

ストプロセスとの接続を試みる．接続が完了したら，ウィ時に，共有開始の操作を完了してから仮ウィンドウのフンドウ情報に従いビデオストリームをホストプロセスに要レームが完全に表示されるまでのフレーム数もカウントす求する．また，仮ウィンドウで検出したマウスイベントをる．このフレーム数を同様にすることで，P2P 通信が始まホストプロセスへ送信する．また，P2P 通信やストリーミるまでに要する時間を計測する．また，P2P 通信が始まっングの配信には WebRTC 技術を用いた．てからの内訳には chrome://webrtc-internals/を利用する．

5. 評価実験

これは WebRTC における送受信について，P2P 通信が始まってからの動画のエンコードやデコードに要した時間

本章では評価実験について述べる．評価実験では，ゲスなどの統計データを，1 秒間隔で確認することができるデトが共有する仮ウィンドウを決定してから，その仮ウィンバッグツールである．このツールは上記の全体時間の計測

ドウが表示されるまでの経過時間の計測およびその内訳を時に同時に利用する．また，このツールを用いて計測する調査する．また，その結果について考察し，本システムの項目について，表 2 に示す．また，本実験では P2P 通信が実用性について評価する．

始まってからの内訳として，仮ウィンドウ画面が表示されるまでのエンコード処理時間やデコード処理時間の総和を5.1 計測手法取得する必要がある．そのために，フレーム数をカウント

まずは全体の時間の計測手法について説明する．実際にすることで取得した全体の時間と，P2P 通信が始まるまで仮ウィンドウ画面が表示されたかどうかを判断するために，の時間の差から，P2P 通信が始まってから仮ウィンドウ画ゲスト側のデスクトップをビデオカメラで撮影する．ま面が表示されるまでのおよその時間を取得する．この結果た，ネットワークの環境による影響を抑えるために，サーから，エンコード処理時間などの総和を求める．表??は，バ，ホストプロセスおよびゲストプロセスは全て同じ計算評価実験に用いた計算機のスペックを示すものである．以機上で実行する．以降，仮ウィンドウが表示されるまでの上の手順および条件に従い，各時間を 13 回計測し，それ経過時間の計測手順について説明する．

ぞれの平均値を取得する．

まず，ホストは一つのアプリケーションを公開し，ゲス
トはその公開されたウィンドウ画面を共有する．一定時間

5.2 実験結果

ごとにゲストは同じアプリケーションのウィンドウ画面

図 8 は，ビデオカメラで撮影した結果から取得した各時を，新しい仮ウィンドウとして表示する．仮ウィンドウは間である．横軸は仮ウィンドウ数，縦軸が計測した時間を© 2018 Information Processing Society of Japan640

情報処理学会 インタラクション 2018
IPSJ Interaction 2018

2B30
2018/3/5

5.3 考察図 9 より，エンコード処理時間が大きく仮ウィンドウ数に依存していることがわかる．一方で，デコード時間やRTT は仮ウィンドウ数にほぼ依存しないことがわかった．
現状のシステムでは，ホストは同プロセス上で複数の通信や動画の配信を行っている．一方，ゲストはたとえ同じデスクトップ上で複数の仮ウィンドウを表示していても，各仮ウィンドウごとに異なるプロセスで通信や動画の受信を行なっている．これにより，ホストでは同プロセスにエンコードの処理が集中したため，ゲストに比べ，通信を行うピア数の増加による影響を顕著に受けたのだと考えられる．
図 8

全体時間

Fig. 8 Total Time．

図 8 では，after の値は最小でもおよそ 600ms である．
仮ウィンドウ数が増えるにつれ要する時間も増え，10 枚でおよそ 2,000ms となる．本研究で対象とする協調作業は参加者が四，五人ほどであるので，一人のホストが各ゲストに対し 2 枚の仮ウィンドウ画面を共有するとしても，各ゲストは共有開始の操作を行ってから 2,000ms 以内で共有が開始されることになる．この結果に対して，本研究では実用的であると考えている．

6. おわりに
本稿では円滑な協調作業を支援するための，アプリケーション仮想共有システムおよび共有開始手続きを行うためのインタフェースを開発した．ただし，本研究では少人数かつ対面式の協調作業を対象としている．アプリケーション仮想共有システムでは，Web 技術と P2P 通信を用いる
図 9

P2P 通信開始後の処理時間内訳

Fig. 9 Required Time for Processing．

ことで低遅延なアプリケーション共有を実現した．また，アプリケーション仮想共有ドングルを実現することで，インタフェースにおいて共有開始手続きの自動化を可能とし示す．total が全体の時間，before が仮ウィンドウのフレーた．共有開始に要する時間を計測し，実用性についての評ムが表示されるまでの時間，after が P2P 通信が始まって価実験および考察を行った．結果から，少人数の協調作業から仮ウィンドウ画面が表示されるまでの時間を示す．仮においてであれば，本システムの共有開始に要する時間はウィンドウが増えるに従い，全体時間が大きくなっている

最大でも 2,000ms であり，実用的であると思われる．

ことがわかる．また，P2P 通信が始まってからの処理時間が仮ウィンドウ数に依存しており，それまでの時間はほぼ謝辞

本 研 究 の 一 部 は JSPS 科 研 費 JP15K00422,

JP16K00420 の助成を受けたものです．

一定であることがわかる．
図 8 か ら ，仮 ウ ィ ン ド ウ 数 が 6 枚 の 時 点 で after が
ほ ぼ 1,000ms に 達 し ，10 枚 で は 1,500ms に 達 し た ．

参考文献
[1]

chrome://webrtc-internals/では 1,000s 間隔でのみ計測時間が提供されているので，少数第一位を切り上げた値の時間だけ，エンコード処理時間などの総和を求めた．図 9 は[2]chrome://webrtc-internals/を用いて計測した P2P 通信開始後の内訳である．横軸は仮ウィンドウ数，縦軸が計測した時間を示す．decode はデコード処理時間，encode はエ[3]

ンコード処理時間，RTT は Round Trip Time，RTC total
は全体の総和を示す．decode および RTT は全体を通してほぼ一定であったが，encode は仮ウィンドウ数が増えるにつれて値が大きくなった．

© 2018 Information Processing Society of Japan[4]

Satoru Iwata，Tadachika Ozono and Toramatsu Shintani．“Any-Application Window Sharing Mechanism
based on WebRTC”．Proc. in Society for Cardiovascular
Angiography and Interventions．pp.1-6，2017．
佐藤慶三，村上峻吾，谷口智明，中島誠．“アプリケーションの共有による協調作業を促進する異なるバージョン間での操作互換”．電子情報通信学会論文誌．Vol.J97-D，No.8，pp.1307-1317．
山之上卓．“P2P 技術を利用した分散システム上の実時間操作共有システム”．情報処理学会論文誌，Vol.46，No.2，pp.392-402，2004．
萩原拓真，高嶋和毅，モルテンフィールド，北村喜文．“モバイルカメラを用いたデバイス間アドホックアプリケーション共有”，インタラクション 2017，pp.1-9，2017．

641