DEIM Forum 2014 F2-3

Wemu:Web ブラウザ上の仮想マシンによるブラウザ機能拡張技術―教育的応用への検討―
笠江優美子†

千葉 一深†

車谷 駿介†

赤間浩樹†† NTT ソフトウェアイノベーションセンタ 〒 180-8585 東京都武蔵野市緑町 3-9-11
E-mail: †{kasae.yumiko,chiba.hitomi,kurumatani.shunsuke,akama.hiroki}@lab.ntt.co.jp
あらまし Web のプラットフォーム化の潮流に伴い，HTML5 や Javascript を活用した Web アプリケーションの開発が進んでいる．Web ブラウザを利用したサービスは，端末へのソフトウェアのインストールが不要であり，デバイスフリーで利用できるなどのメリットがある．本研究では，Javascript 実装の x86 エミュレータであり，Web ブラウザ上で動く仮想マシンを実現する Javascript PC Emulator（JSlinux）に注目し，JSlinux をベースとして，Web ブラウザの機能的拡張を実現する技術である，Wemu を提案する．Wemu では，JSlinux に対し，３つの機能拡張を行っている．1 つ目は，Web ブラウザ上の仮想マシンに対する外部接続インタフェースのエミュレータの追加である．2 つ目は，エミュレートされたインタフェースから送受信されるデータを，外部ネットワークと送受信可能な状態に変換するための機能を搭載した外部モジュールの設置である．3 つ目は，Web ブラウザ上の仮想マシンと，Web アプリケーションとの Javascript 上での連携機能の追加である．Wemu により，Web ブラウザ上でこれまで実現出来なかったWeb サービスの実現が可能となる．本論文では，特に，Wemu の教育的応用への検討を示す．本技術によって，Webブラウザ上のサービスである利点を活かしつつ，従来の IT 教育環境に比べ，簡単かつ安全なプログラミングや Linuxなどの IT 教育学習環境を実現できることを示す．
キーワード

Web，エミュレータ，教育Wemu:Extension Method of Web Browser’s Functions
by Virtual Machine on the Web Browser:
A Study for Educational Applications
Yumiko KASAE† , Hitomi CHIBA† , Shunsuke KURUMATANI† , and Hiroki AKAMA†† NTT Software Innovation Center 3-9-11, Midori-cho, Musashino-shi, Tokyo, 180-8585, Japan
E-mail: †{kasae.yumiko,chiba.hitomi,kurumatani.shunsuke,akama.hiroki}@lab.ntt.co.jp

1. は じ め にとになり，従来より簡単に仮想マシンにアクセスできる．また，

Web ブラウザで仮想マシンが動作可能なため，ホスト OS に対

近年，Web ブラウザを共通基盤としたサービスの構築，提し仮想マシンを動作させるためのソフトウェアのインストール供が進んでおり，HTML5 や Javascript を活用した Web アプが不要であり，デバイスフリーで利用できる．仮想マシン上でリケーションが増加している．その中に，Web ブラウザ上での出来事が，ホスト OS へ影響を与えることはなく，ブラウザLinux カーネルを動作させる技術の開発がある．代表例として，のタブを消すことによって，元の状態に戻ることができる．さ2011 年に開発された，Javascript PC Emulator(JSlinux) [2] がらに，一度コンテンツをダウンロードしておけば，オフラインある．JSlinux とは，Javascript 実装の x86 エミュレータであ環境においても，仮想マシンを動作させることができる．

る．JSlinux が，Web ブラウザ上の Javascript の上で動作する

しかし，現行の JSlinux では，外部ネットワークとの接続機ことにより，ブラウザ上で仮想マシンを動作することができる．

能がなく，他のアプリケーションとの連携が出来なかったりな

つまり，JSlinux と Linux バイナリを通常の Web コンテンツ

ど，機能的な制限があり，Web ブラウザ上で仮想マシンが実行と同様に配信することで，仮想マシンが URL で配信されるこできる利点を活かしきれていなかった．

そこで本研究では，JSlinux をベースとして機能追加を行う接続機能と，同一ブラウザ上の他の Web アプリケーションとことで，Web ブラウザの機能的拡張を実現した，Wemu を提の Javascript 間での連携機能を追加した．具体的には，以下の案している [1]．

３つを実装している．1 つ目は，Web ブラウザ上の仮想マシン

Wemu では，JSlinux に対し，３つの拡張を行っている．1

に対する外部接続インタフェースのエミュレータの追加である．

つ目は，Web ブラウザ上の仮想マシンに対する外部接続インタ

2 つ目は，このエミュレートされたインタフェースから送受信フェースのエミュレータの追加である．2 つ目は，エミュレーされる情報を外部ネットワークと送受信可能な状態に変換する

トされたインタフェースから送受信されるデータを，外部ネッための機能を搭載した外部モジュールの設置である．3 つ目は，トワークと送受信可能な状態に変換するための機能を搭載した

Web ブラウザ上の仮想マシンと，同一ブラウザ上で動く Web外部モジュールの設置である．3 つ目は，Web ブラウザ上の仮アプリケーションとの Javascript 間での連携技術である．

想マシンと，Web アプリケーションとの Javascript 上での連

図 2 に Wemu の構造を示す．Wemu では，Web ブラウザの携機能の追加である．これらの機能追加により，Web ブラウザ持つネットワーク制約の回避を可能とする．例えば，演算機能だの利用可能性を広げ，Web ブラウザ上でこれまで実現出来なけが必要な CPU デバイスは，Web ブラウザ単体でエミュレーかった様々な Web サービスの実現が可能となる．

トすることができる．しかし，ネットワークデバイスにおいて本論文は，その中でも，Wemu を用いた教育的応用に対するは，任意のプロトコルで送受信する必要があるため，ブラウザ検討を行った．近年では，クラウド技術の発展に伴い，クラウ単体ではエミュレートすることが出来ない．そのため，Wemu

ドが提供する様々なサービスは，社会において欠かせないもの

では，デバイスエミュレーションを補助する外部モジュールをとなりつつある．そのため，これからの社会，子供から大人の設けている．つまり，図 2 にあるように，例えば WebSocket全世代に対して求められる IT 技術は高まっている．これらのを利用して，Web ブラウザ上の仮想マシンと，外部モジュール需要に対し，プログラミングなどの初歩的な概念や知識、サー間で双方向通信を確立する．外部モジュールでは，Web ブラウビス基盤となり得る Linux に関する初歩的知識を，簡単かつ安ザ上の仮想マシンと外部のネットワークとの接続を実現するた全に学習できる環境が必要である．

め，送受信されるデータに対してプロトコル変換を行っている．

本論文では，Wemu を IT 技術学習環境に利用することにより，Web アプリケーションである利点を活かしつつ，従来のIT 教育環境に比べ，簡単かつ安全に学べる IT 技術学習環境を実現できることを述べる．

このことにより，Web ブラウザ上の仮想マシンは，外部ネットワークとのデータの送受信を実現できる．
また，Wemu では，Web ブラウザ上で動作する仮想マシンと，同一ブラウザ上で動作する Web アプリケーションとの連携を可能とする．具体的には，JSlinux でエミュレートされる物

2. Wemu

理メモリ空間と，同一ブラウザ上で動作する Web アプリケー

Wemu とは，JSlinux を技術ベースとして機能追加を行い，Web ブラウザ上で動作する仮想マシンにより，ブラウザの機能的拡張を行うアーキテクチャを意味する．JSlinux とは，Javascript 実装の x86 エミュレータである．図 1 に，JSlinuxのスタックを示す．

ションを，Javascript 内で連携させることで，データ等の授受を実現する．
これらのことにより，Web ブラウザの機能拡張が可能であり，Web ブラウザ上で実現出来なかったサービスが実現できる．

3. 教育的応用への検討
3. 1 概要

Wemu による Web ブラウザの機能拡張により，Web ブラウザ上で様々なことが実現できる．本稿は，その中でも，具体例として，Wemu を IT 教育環境に応用した場合の議論を行う．
本章では，既存の教育システムに対し，Wemu を学習環境に利用することの優位性と，その利用具体例を挙げてく．

3. 2 既存の IT 教育に関するシステムに対する Wemu の教育的応用への優位性
図 1 JSlinux のスタック

近年において，プログラミングなどの情報処理に関する基礎的な知識の学習は，IT 業界で働く大人だけでなく，これからのJSlinux を用いることで，Web ブラウザ上の Javascript の上で，x86 のバイナリを動作させることができる．つまり，JSlinuxと Linux バイナリを，通常の Web コンテンツと同様に配信することで，URL ベースで仮想マシンにアクセスできる技術である．

Wemu では，JSlinux で未実装であった，外部ネットワーク社会を担う子どもたちにおいても，重要な学習の 1 つである．
事実，2012 年からの新学習指導要領に基づき，中学校の技術家
庭科で「プログラムによる計測・制御」が必修になり，簡単なプログラミングが行えることが求められている [3]．このような動向に対し，子供から大人の全世代に対して，IT 教育へ向けた取り組みが活発に行われている．例えば，オンライン教育プ
ラットフォーム Udemy [4] を利用したプログラミング学習があ図 2 Wemu の構造

る．これは，講師が授業をする様子をオンラインで配信しながイン環境でも利用可能である点である．例えばタブレット等のら、ユーザが学習するものである．しかし，学習するためのプ持ち運び可能なデバイスを用いて学習を行った場合，その利用ログラミング環境は，ユーザ自身で構築する必要がある．また，した仮想マシンを Web ブラウザのタブにそのまま残しておく

簡単にプログラミング教育を行えるアプリケーションも数多くことで，自宅やオフライン環境に移動した際にも，授業と同一開発されている．その中に，子供が直感的にプログラミングを環境での振り返り学習を容易に行うことができる．

行えるビジュアルプログラミング環境 Scratch [5] というものが

図 3 に，Wemu を使った IT 教育環境の利用イメージを示す．

ある．Scratch では，条件や動作を指定する「ブロック」と画像

Wemu を用いた学習を行う場合，教師は配信サーバが配信するなどを開発画面上で組み合わせることにより，インタラクティ仮想マシンイメージを利用し，生徒へその仮想マシンの URL

ブなアニメーションやプレゼンテーション，ゲームなどを作成を伝える．生徒は，各自のデバイスの Web ブラウザから URLすることができる．また，Scratch は，Web ブラウザベースのにアクセスすることで，簡単に学習環境が手元に構築できる．

アプリケーションとなっており，ユーザは手元にプログラミング環境を構築する必要がなく，手軽にプログラミングを体験することができるメリットがある．しかし，Scratch では，ビジュアル的にプログラミングを体験できるものであり，任意の言語のプログラミングを体験するものではない．特定言語のプログラミングを Web ブラウザ上で学べるアプリケーションもいく
つか存在するが，言語が限られ，自由度が低い．
これらに対し，Wemu によるブラウザ上の仮想マシンをベースとして，プログラミングや Linux システムに関する学習を行う場合，安全かつ手軽に，自由度の高い学習環境を実現できる．

Wemu を教育学習環境に適用するメリットとして，以下の 4 つがある．1 つ目は，プログラミング環境を Web ブラウザ上で簡単に配布できる点である．ユーザは，Wemu で提供する仮想マ
シンへの URL を知っていれば，プログラミング環境へ簡単にアクセスできる．デバイスへ特別な仮想マシン用のアプリケーションをインストールする必要がない．2 つ目は，安全性である．すべての環境が Web ブラウザ上に存在するため，ホスト

図 3 Wemu を用いた IT 教育環境の利用イメージOS へ影響を及ぼさない．プログラミングや Linux システムで何か学習する際に，ユーザが不安に思う要素の 1 つに，ホスト

3. 3 具体例 : プログラミング学習

OS への悪影響がある．Wemu では，どのようなプログラムやWemu では，プログラミングの学習環境を簡単に実現できる．

Linux コマンドを実行しようとも，ホスト OS への影響は出な

現在，C，Perl，Ruby の言語学習が可能である．また，Wemuいため，臆することなく，気軽に，様々な試みを実行できる．3

によるネットワーク機能の拡張により，API を使ったプログラ

つ目は，自由度の高さである．Wemu では，言語に関わらず，ミングも可能となった．図 4 に，Web ブラウザ上の仮想マシン自由にプログラミング学習環境が実現できる．Web ブラウザ上で，C プログラミングを実行した例を示す．Wemu の環境におで仮想マシンが動くことにより，C や，Ruby，Perl，SQL 言いても，通常の仮想マシンと同様に，プログラムのコンパイル語などのプログラミング環境を利用できる．4 つ目は，オフラが可能である．

にも，簡単に Web ブラウザ上でシステムを構築できる．

3. 6 具体例 : 教材との連携による学習
Wemu では，学習時において，Web ブラウザ上の Javascriptを通して，ブラウザ上のアプリケーションと連携できる．例えば，Linux コマンドに関する教材を，Web アプリケーションとして用意し，仮想マシンで実行されたコマンドと教材を連携して動作させることもできる．この機能を使うことで，ユーザは，例えばマニュアルや本と，PC の画面を目で往復しながら学習する必要がなくなり，より効率的に学習可能である．

4. ま と め
図 4 Wemu によるプログラミング学習本論文では， Web ブラウザ上で動作する仮想マシンを用いて，ブラウザの持つ機能の拡張技術である Wemu について述べ

3. 4 具体例 : Linux システムに関する学習た．Wemu では，Web ブラウザ上で仮想マシン実行環境をエWemu では，Web ブラウザ上の仮想マシンで，Linux コマミュレートする既存技術 JSlinux を元に，外部ネットワーク接ンドの学習を行うことができる．現在，上記仮想マシン内では，続機能と，Web アプリケーションとの連携技術を追加した．こ

通常の Linux 環境にて実行される，基本的なコマンドを実行れにより，Web ブラウザの機能拡張とともに，ブラウザの特性可能である．この時に，通常ならば Linux マシン内に影響をを活かした新たな Web アプリケーションを実現可能となった．

及ぼすようなコマンドも実行することができる．例えば，「rm

本稿では，その具体例の１つとして，教育的応用に注目し，-rf /」などである．上記コマンドの場合，通常の仮想マシンや従来の IT 教育環境に比べ，簡単かつ安全なプログラミングや物理マシン上で実行すると，そのマシンは使うことが出来なくLinux システムなどの IT 教育学習環境を，Wemu により実現なり，別のマシンを用意するまでに時間がかかってしまうが，できることを示した．

Wemu を使った Web ブラウザ上の仮想マシンは，URL にア

5. 今後の課題

クセスし直すことにより，すぐにマシンを立ち上げ直すことができる．また，Wemu における JSlinux への機能拡張により，ネットワークに関わるコマンドの実行も可能になった．

今後の課題として，Wemu では，Web ブラウザ上で動作する仮想マシン環境を提供するため，Web ブラウザの処理性能さらに，ブラウザ上の仮想マシンをサーバ環境としても利用に，大きく依存してしまう点が挙げられる．ブラウザ上の仮想可能となった．図 5 に，ブラウザ上の仮想マシンを Web サー

マシンにおいて，メモリやディスク容量などの制限があり，快バとして利用し，別のマシンからアクセスした様子を示す．

適な動作環境を提供するには，これらの課題に対する取り組みが必要となる．
また，本論文では，特に，Wemu を IT 教育学習環境に適用した場合の議論を行ったが，Wemu を他の技術に適用することにより，Web ブラウザ上で様々なことが可能になる．今後，本研究が目指す先としては，Web ブラウザへの機能拡張により，新たな Web アプリケーションの拡張可能性について検討を行うとともに，3.5 節で示すような，手元に気軽なクラウド環境を構築できることで，ユーザ端末上のリソースと，クラウド上のリソース間で動的な連携技術を実現することを考えている．例
えば，クラウド上の仮想マシンを，ユーザ端末の Web ブラウザ上へマイグレーションできる技術である．これにより，クラウドサービスなどのサービス提供側からすれば，データセンタ

図 5 Wemu を用いた Web サーバ構築等の処理負荷の分散先をユーザ端末まで拡張出来，エンドユーザからすれば，より便利に仮想マシンへアクセスできる，また，このように，サーバ構築に関する学習も，Wemu を用いることで容易に可能である．

Web ブラウザがデバイスフリーで利用できることにより，Webブラウザ間での仮想マシンのマイグレーション技術の確立も目

3. 5 具体例：手軽なクラウド環境の実現指している．これにより，例えば，デスクトップ PC のブラウ

Wemu では，Web ブラウザ上のタブそれぞれに，仮想マシザで使っていた仮想マシンを，スマートフォンやタブレットなンを立ち上げることができる．つまり，ユーザの手元のリソー

どのブラウザ上にマイグレーションすることで，外出先においスの上で，小さなクラウド環境を構築できる．これにより，クても，普段と変わらない開発環境で作業可能となる．また，一ラウド環境が必要となるようなシステムについて学習を行う際

度ブラウザ上にダウンロードしておけば，オフラインでも作業可能となる．本研究により，Web ブラウザの機能拡張と，クラウド技術の更なる拡大を目指していきたい．

謝辞

本研究を進めるにあたり，Javascript PC Emulator の開発者である Fabrice Bellard 氏に深く感謝致します．
文献[1] 車谷駿介，外山将司，赤間浩樹：任意の TCP/IP プロトコルで通信する Web アプリケーションの実現手法，第 76 回情報処理学会全国大会，4A-5[2] Javascprit PC Emulator(JSlinux) : http://bellard.org/jslinux/[3] 文部科学省 新学習指導要領・生きる力 中学校学習指導要領
各教科 第８節 技術・家庭[4] Udemy : https://www.udemy.com/[5] Scratch : http://scratch.mit.edu/[6] 高橋 一志 : 利用可能性の高い仮想計算転送技術, 東京大学情報理工学系研究科 創造情報学専攻 博士論文