JP2014215672A - 仮想Webサーバプログラム及び機能代行方法 - Google Patents

仮想Webサーバプログラム及び機能代行方法 Download PDF

Info

Publication number
JP2014215672A
JP2014215672A JP2013090317A JP2013090317A JP2014215672A JP 2014215672 A JP2014215672 A JP 2014215672A JP 2013090317 A JP2013090317 A JP 2013090317A JP 2013090317 A JP2013090317 A JP 2013090317A JP 2014215672 A JP2014215672 A JP 2014215672A
Authority
JP
Japan
Prior art keywords
web
web server
function
execution
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013090317A
Other languages
English (en)
Other versions
JP6055366B2 (ja
Inventor
隆文 山添
Takafumi Yamazoe
隆文 山添
力 三井
Tsutomu Mitsui
力 三井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2013090317A priority Critical patent/JP6055366B2/ja
Publication of JP2014215672A publication Critical patent/JP2014215672A/ja
Application granted granted Critical
Publication of JP6055366B2 publication Critical patent/JP6055366B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】OS及びWebブラウザに依存しない、高度な機能を有するWebアプリケーションの実行を実現すること。【解決手段】仮想Webサーバプログラム100により実現される仮想Webサーバ1は、OS機能を実行する機能モジュールをWebAPIの識別情報と対応付けて予め格納する格納部10と、Webアプリケーション2からWebAPIを介してOS機能の実行要求を取得する取得部11と、取得部11によって取得された実行要求に含まれるWebAPIの識別情報を抽出し、抽出したWebAPIの識別情報と対応付いて格納部10によって格納された機能モジュールを実行する実行部12と、実行部12による実行結果を、取得部11によって取得された実行要求の取得元であるWebアプリケーション2に出力する出力部13と、を備える。【選択図】図3

Description

本発明は、仮想Webサーバプログラム及び機能代行方法に関する。
現在、スマートフォン等のマルチOS(Operating System)環境でのアプリケーション開発のスピード向上やコスト削減のために、HTML5によるWebアプリケーションの実現が行われている。ここで、HTML5とは、ウェブ上のドキュメントを記述するためのマークアップ言語であるHTML(HyperText Markup Language)の第5版である。また、Webアプリケーションとは、HTML5やJavaScript(登録商標)等のWeb標準技術で実現された、表現力豊か(リッチ)なアプリケーション(Webコンテンツ)である。
例えば、下記特許文献1では、HTML5に対応したブラウザとHTMLファイルの組み合わせにて、原画像を色変換して高速表示する機能が開示されている。
特開2013−59110号公報
図1に、OSであるAndroid(登録商標)上で実現された、2パターンのWebアプリケーションの全体アーキテクチャの一例を示す。なお、図1に示す各パターンのアーキテクチャは、スマートフォン、タブレット、PC(Personal Computer)等のコンピュータ装置上にて実現される。また、図1に示す各パターンのアーキテクチャは階層構造で表現されており、上位の階層ほど、抽象的で論理的にインターネットユーザやアプリケーションに近い機能を提供し、下位の階層ほど、より具体的で論理的に物理媒体に近い機能を提供する。
まず、図1(a)及び(b)において共通的な下位4階層について最下位層から上位階層に向かって順に説明する。最下位層はデバイス層であり、例えばスマートフォンの構成要素であるディスプレイやスピーカ等の物理的なデバイスに対応する。続くLinux(登録商標)カーネル層、ライブラリ層及びアプリケーションフレームワーク層は、それぞれAndroid(登録商標)が提供する機能の層である。Linux(登録商標)カーネル層は、例えば、セキュリティ、メモリやプロセスの管理、ネットワークスタック及びドライバモデル等の基本機能を提供する。また、ライブラリ層は、例えば、C言語またはC++言語のライブラリを含む。なお、ライブラリ層は、アプリケーションの実行環境であるDalvik(登録商標)を含む。また、アプリケーションフレームワーク層は、例えば、アプリケーションのライフサイクルを管理するフレームワーク等、Android(登録商標)アプリケーション開発者にとって有用な、再利用可能なフレームワークを提供する。
図1(a)は、アプリ一体型Webアプリケーションのアーキテクチャ図である。図1(a)において、アプリケーションフレームワーク層の上で、Android(登録商標)アプリケーション開発者等が作成した、WebViewを利用したアプリケーションが実行されている。ここでWebViewとは、Webコンテンツをアプリケーション上で読み込み、アプリケーション上のコンテンツとして利用する仕組みであり、下位層のアプリケーションフレームワーク層に依存する。そして、WebViewを利用したアプリケーション上で、HTML5やJavaScript(登録商標)で実現されたWebアプリケーションが実行されている。なお、WebViewを利用したアプリケーションとその上で実行されているWebアプリケーションとをまとめて、Android(登録商標)アプリと呼ぶ。
アプリ一体型Webアプリケーションでは、WebアプリケーションのJavaScript(登録商標)から、WebViewを介して、アプリケーションフレームワーク層等が提供するAPI(Application Programming Interface)を呼び出すことができるため、当該APIが提供する範囲内の豊富な機能を利用することができる。しかしながら、当該APIはOS依存のため、アプリ一体型Webアプリケーションでは、マルチOS環境でのアプリケーション開発を行うことはできない。
図1(b)は、ブラウザ型Webアプリケーションのアーキテクチャ図である。図1(b)において、アプリケーションフレームワーク層の上ではブラウザアプリケーションであるWebブラウザが起動しており、Webブラウザ上で、HTML5やJavaScript(登録商標)で実現されたWebアプリケーションが実行されている。なお、当該Webアプリケーションは、Webブラウザ上にて実行されているため、Webサイトとして捉えることもできる。
ブラウザ型Webアプリケーションは、Webブラウザのみで動作する、すなわち、Webの標準的な技術のみで動作するため、開発スピード及び開発コストを削減することができる。また、ブラウザ型Webアプリケーションは、Webサイトとして動作させることができるため、ポータルサイトからの一貫したサービス提供を行うこともできる。しかしながら、ブラウザ型Webアプリケーションは、Webブラウザのみで動作するため、WebブラウザにおけるHTML5 APIの実装状況の違いや、Webブラウザのセキュリティの設定の違いにより、利用できる機能にばらつきがある。そのため、ブラウザ型Webアプリケーションは、Webブラウザ依存となる可能性もある。また、ブラウザ型Webアプリケーションでは、利用できるHTML5 APIは限られ、デバイス制御やファイルアクセス等の高度な機能を実現すること、すなわちネイティブアプリケーション相当の機能を実現することは難しい。
そこで、本発明は、かかる課題に鑑みて為されたものであり、OS及びWebブラウザに依存しない、高度な機能を有するWebアプリケーションの実行を実現することができる仮想Webサーバプログラム及び機能代行方法を提供することを目的とする。
上記課題を解決するため、本発明の仮想Webサーバプログラムは、OS上で動作しているWebブラウザが実行するWebアプリケーションに対し、Webアクセスが可能なインタフェースであるWebAPIを介して、OSが提供する機能であるOS機能の実行を代行する仮想Webサーバを実現する仮想Webサーバプログラムであって、コンピュータを、OS機能を実行する機能モジュールをWebAPIの識別情報と対応付けて予め格納する格納手段と、WebアプリケーションからWebAPIを介してOS機能の実行要求を取得する取得手段と、取得手段によって取得された実行要求に含まれるWebAPIの識別情報を抽出し、抽出したWebAPIの識別情報と対応付いて格納手段によって格納された機能モジュールを実行する実行手段と、実行手段による実行結果を、取得手段によって取得された実行要求の取得元であるWebアプリケーションに出力する出力手段、として機能させる。
このような仮想Webサーバプログラムにより実現された仮想Webサーバによれば、Webアプリケーションは、OS機能を実行し、実行結果を得ることができる。すなわち、Webアプリケーションは、Webブラウザ上にて実行可能な機能以外のOS機能を実行することができる。例えば、仮想Webサーバがデバイス制御やファイルアクセスを実現する機能モジュールを格納している場合、Webアプリケーションは、デバイス制御やファイルアクセスを実現することができ、ネイティブアプリケーション相当の機能を実現することできる。また、Webアプリケーションは、WebAPIを介してOS機能を実行するため、標準的なWebブラウザが備えるWebアクセス機能でOS機能を実行することができる、すなわち、OS及びWebブラウザに依存せずにOS機能を実行することができる。以上の通り、このような仮想Webサーバによれば、OS及びWebブラウザに依存しない、高度な機能を有するWebアプリケーションの実行を実現することができる。
また、本発明の仮想Webサーバプログラムにおいて、コンピュータを、WebAPIを介して起動要求又は停止要求を取得し、取得した要求に基づいて仮想Webサーバの起動又は停止を行う制御手段、としてさらに機能させることが好ましい。かかる構成を採れば、標準的なWebブラウザが備えるWebアクセス機能を用いて、仮想Webサーバプログラムにより実現される仮想Webサーバの起動及び停止が行えるため、Webブラウザにおける一般的なプラグインと同様の動作を実現することができ、それゆえにユーザの利便性が向上すると共に、仮想Webサーバの配布コストも低減することができる。
ところで、本発明は、上記のように装置の発明として記述できる他に、以下のように方法の発明としても記述することができる。これはカテゴリが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
即ち、本発明に係る機能代行方法は、OS上で動作しているWebブラウザが実行するWebアプリケーションに対し、Webアクセスが可能なインタフェースであるWebAPIを介して、OSが提供する機能であるOS機能の実行を代行する仮想Webサーバであって、OS機能を実行する機能モジュールをWebAPIの識別情報と対応付けて予め格納する格納手段を備える仮想Webサーバによる機能代行方法であって、WebアプリケーションからWebAPIを介してOS機能の実行要求を取得する取得ステップと、取得ステップにおいて取得された実行要求に含まれるWebAPIの識別情報を抽出し、抽出したWebAPIの識別情報と対応付いて格納手段によって格納された機能モジュールを実行する実行ステップと、実行ステップにおける実行結果を、取得ステップにおいて取得された実行要求の取得元であるWebアプリケーションに出力する出力ステップと、を含む。
本発明によれば、OS及びWebブラウザに依存しない、高度な機能を有するWebアプリケーションの実行を実現することができる。
Android(登録商標)上で実現された、2パターンのWebアプリケーションの全体アーキテクチャの一例を示す図である。 Android(登録商標)上で実現された本発明の第1実施形態に係る仮想Webサーバプログラムにより実現された仮想Webサーバの全体アーキテクチャを示す図である。 本発明の第1実施形態に係る仮想Webサーバプログラムにより実現された仮想Webサーバの機能ブロック図である。 本発明の実施形態に係る仮想Webサーバプログラムのモジュール構成図である。 本発明の実施形態に係る仮想Webサーバプログラムにより実現された仮想Webサーバで実行される処理(機能代行方法)を示すフローチャートである。 Android(登録商標)上で実現された本発明の第2実施形態に係る仮想Webサーバプログラムにより実現された仮想Webサーバの全体アーキテクチャを示す図である。 本発明の実施形態に係る仮想Webサーバプログラムにより実現された仮想Webサーバに関するプラグイン処理を示すフローチャートである。
以下、図面とともに本発明による仮想Webサーバプログラム及び機能代行方法の好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
[第1実施形態]
まず、本発明の第1実施形態に係る仮想Webサーバプログラム100を実行することによりコンピュータ上で実現される仮想Webサーバ1について説明する。図2は、Android(登録商標)上で実現された仮想Webサーバプログラム100により実現された仮想Webサーバ1の全体アーキテクチャを示す図であり、図1(b)で示したブラウザ型Webアプリケーションに対して仮想Webサーバ1を適用した状況を示す。以降、図2を用いて仮想Webサーバ1の動作の概要について説明する。なお、図2に示すアーキテクチャの構成要素のうち、図1を用いて説明した構成要素の説明は省略する。
仮想Webサーバ1は、Webアプリケーションに対し、Webアクセスが可能なインタフェースであるWebAPIを介して、Android(登録商標)のアプリケーションフレームワーク層が提供する機能であるOS機能の実行を代行する擬似的(仮想的)なWebサーバである。仮想Webサーバ1は、OSから独立した、Android(登録商標)アプリケーションとして動作する。
図2に示す(ブラウザ型)Webアプリケーションは、HTML5 API等の標準で定義されている機能を実行する一方、仮想Webサーバ1が提供するWebAPIを実行することができる。WebアプリケーションがWebAPIを実行する際、Webブラウザが、ライブラリ層やLinux(登録商標)カーネル層に含まれるIPネットワーク層を介して仮想Webサーバ1にWebアクセスを行い、WebAPIを実行する。このように、Webアプリケーションによる仮想Webサーバ1が提供するWebAPIの実行は、一般的なWebブラウザが備えるWebアクセス機能を利用して行われる。なお、図2ではWebアプリケーションは1つのみが実行されているが、同時に複数のWebアプリケーションが実行されていてもよい。
仮想Webサーバ1は、Webアプリケーション(Webブラウザ)からWebAPIが実行されると、対応する、アプリケーションフレームワーク層が提供するOS機能を実行し、実行結果を、WebAPIの実行の戻り値としてWebアプリケーションに返却する。
続いて、仮想Webサーバプログラム100により実現された仮想Webサーバ1の機能の詳細について説明する。図3は、仮想Webサーバ1の機能ブロック図である。図3に示す通り、仮想Webサーバ1は、格納部10(格納手段)、取得部11(取得手段)、実行部12(実行手段)、出力部13(出力手段)及び制御部14(制御手段)を含んで構成される。
図3に示す仮想Webサーバ1の各機能ブロックの機能は、仮想Webサーバ1が動作するデバイスが備えるCPU、RAM等のハードウェア上に仮想Webサーバプログラム100(後述)を読み込ませることにより、CPUの制御のもとで入出力装置、通信モジュール、及び補助記憶装置を動作させるとともに、RAMにおけるデータの読み出し及び書き込みを行うことで実現される。
以下、図3に示す仮想Webサーバ1の各機能ブロックについて説明する。
格納部10は、OS機能を実行する機能モジュールをWebAPIの識別情報と対応付けて予め格納する。例えば、格納部10は、OS機能であるファイルアクセスを実行するファイルアクセス機能モジュールを、WebAPIの識別情報であるAPI名“fileAccess”と対応付けて格納する。なお、機能モジュールは、単機能であってもよいし、機能群をまとめたものであってもよい。
取得部11は、Webアプリケーション2からWebAPIを介してOS機能の実行要求を取得する。具体的には、Webアプリケーション2が実行要求をWebブラウザ3に送信し、当該送信された実行要求をWebブラウザ3がIPネットワーク層を介して仮想Webサーバ1のWebAPI宛に送信し、当該送信された実行要求を取得部11が取得する。実行要求の具体例としては、URL文字列“http://localhost:8765/api/fileAccess?para1=fileName&para2=true”が挙げられる。ここで、“http://localhost:8765”は仮想Webサーバ1のネットワーク上でのアドレス(ローカルホストのポート番号8765番)を示し、“fileAccess”はWebAPIの識別情報(関数名)を示し、“fileName”及び“true”はそれぞれ“fileAccess”が示すWebAPIを呼び出す際の引数を示す。
実行部12は、取得部11によって取得された実行要求に含まれるWebAPIの識別情報を抽出し、抽出したWebAPIの識別情報と対応付いて格納部10によって格納された機能モジュールを実行する。例えば、上記の例で言えば、実行部12は、WebAPIの識別情報である“fileAccess”を抽出し、“fileAccess”と対応付いて格納部10によって格納されたファイルアクセス機能モジュールを取得し、当該モジュールを実行する。
出力部13は、実行部12による実行結果を、取得部11によって取得された実行要求の取得元であるWebアプリケーション2に出力する。例えば、上記の例で言えば、出力部13は、ファイルアクセス機能モジュールの実行結果である、ファイル名が“fileName”のファイルのデータを、Webアプリケーション2に出力する。
制御部14は、WebAPIを介して起動要求又は停止要求を取得し、取得した要求に基づいて仮想Webサーバ1の起動又は停止を行う。例えば、制御部14は、Webアプリケーション2から起動要求であるURL文字列“http://localhost:8765/api/command=start”を取得すると、仮想Webサーバ1の起動を行う。また例えば、制御部14は、Webアプリケーション2から停止要求であるURL文字列“http://localhost:8765/api/command=stop”を取得すると、仮想Webサーバ1の停止を行う。なお、仮想Webサーバ1は、制御部14を備えなくてもよい。
引き続いて、上述した一連の仮想Webサーバ1による処理をコンピュータに実行させるための仮想Webサーバプログラム100を説明する。図4に示すように、仮想Webサーバプログラム100は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える記録媒体50に形成されたプログラム格納領域51内に格納される。より具体的には、仮想Webサーバプログラム100は、仮想Webサーバ1を実現するデバイスが備える記録媒体50に形成されたプログラム格納領域51内に格納される。
仮想Webサーバプログラム100は、格納モジュール101と、取得モジュール102と、実行モジュール103と、出力モジュール104と、制御モジュール105とを備えて構成される。格納モジュール101と、取得モジュール102と、実行モジュール103と、出力モジュール104と、制御モジュール105とを実行させることにより実現される機能は、上述した仮想Webサーバ1の格納部10と、取得部11と、実行部12と、出力部13と、制御部14との機能とそれぞれ同様である。
なお、仮想Webサーバプログラム100は、その一部若しくは全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録(インストールを含む)される構成としてもよい。また、仮想Webサーバプログラム100の各モジュールは、1つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の仮想Webサーバプログラム100の処理が行われる。
続いて、図5に示すシーケンス図を用いて、本実施形態に係る仮想Webサーバプログラム100により実現される仮想Webサーバ1における機能代行方法の処理について説明する。
まず、Webアプリケーション2において、OS機能の実行要求が仮想Webサーバ1に送信される(ステップS1)。次に、仮想Webサーバ1において、取得部11により、ステップS1にて送信されたOS機能の実行要求が取得される(ステップS2、取得ステップ)。次に、実行部12により、ステップS2にて取得されたOS機能の実行要求に含まれるWebAPIの識別情報が抽出され、抽出されたWebAPIの識別情報と対応付いて格納部10によって格納された機能モジュールが実行される(ステップS3、実行ステップ)。次に、出力部13により、ステップS3における実行結果が、Webアプリケーション2に出力される(ステップS4、出力ステップ)。次に、Webアプリケーション2において、ステップS4にて出力された実行結果が受信される(ステップS5)。
次に、本実施形態のように構成された仮想Webサーバプログラム100により実現される仮想Webサーバ1の作用効果について説明する。
本実施形態の仮想Webサーバ1によれば、Webアプリケーション2は、OS機能を実行し、実行結果を得ることができる。すなわち、Webアプリケーション2は、Webブラウザ3上にて実行可能な機能以外のOS機能を実行することができる。例えば、仮想Webサーバ1がデバイス制御やファイルアクセスを実現する機能モジュールを格納している場合、Webアプリケーション2は、デバイス制御やファイルアクセスを実現することができ、ネイティブアプリケーション相当の機能を実現することできる。また、Webアプリケーション2は、WebAPIを介してOS機能を実行するため、標準的なWebブラウザ3が備えるWebアクセス機能でOS機能を実行することができる、すなわち、OS及びWebブラウザ3に依存せずにOS機能を実行することができる。以上の通り、このような仮想Webサーバ1によれば、OS及びWebブラウザ3に依存しない、高度な機能を有するWebアプリケーションの実行を実現することができる。
また、本実施形態の仮想Webサーバ1は、制御部14を備えることで、標準的なWebブラウザ3が備えるWebアクセス機能を用いて、仮想Webサーバ1の起動及び停止が行えるため、Webブラウザ3における一般的なプラグインと同様の動作を実現することができ、それゆえにユーザの利便性が向上すると共に、仮想Webサーバ1の配布コストも低減することができる。
以上の通り、本実施形態の仮想Webサーバプログラム100により実現される仮想Webサーバ1は、スマートフォン等のコンピュータ内に仮想的なWeb環境を構築し、Webブラウザ3から利用できない機能をローカルで動作するWebAPI化することで、OSやデバイスに依存しない、Webブラウザ3上でのリッチコンテンツを実現する。また、デバイスの差異をWebAPIとして吸収した上でWebアプリケーション2から用いることで、個別の作りこみや互換性の問題の解消が実現できる。
また、本実施形態の仮想Webサーバ1によれば、Webブラウザ3からデバイス制御やファイルアクセスができる。また、Webアプリケーション2について、OS依存が少ない開発ができる。また、Webアプリケーション2について、ローカル機能とクラウド機能を同じ画面で融合させることができる。
また、本実施形態の仮想Webサーバ1は、OSから独立しているため、OSとして作り込む必要がなく、あらゆる既存OSと共存することができる。また、図2の通り、既存のアーキテクチャを修正することなく、容易に追加及び共存することができる。また、仮想Webサーバ1は、Android(登録商標)アプリケーションとして動作するため、ユーザは仮想Webサーバ1を通常のアプリケーションと同様に容易にインストール及び利用することができる。
[第2実施形態]
次に、本発明の第2実施形態に係る仮想Webサーバプログラム100aを実行することによりコンピュータ上で実現される仮想Webサーバ1aについて説明する。図6は、Android(登録商標)上で実行された仮想Webサーバプログラム100aにより実現された仮想Webサーバ1aの全体アーキテクチャを示す図であり、図1(b)で示したブラウザ型Webアプリケーションに対して仮想Webサーバ1aを適用した状況を示す。以降、図6を用いて仮想Webサーバ1aの動作の概要について説明する。なお、図6に示すアーキテクチャの構成要素のうち、図2を用いて説明した構成要素の説明は省略し、Webサーバプログラム100a及び仮想Webサーバ1aについてはそれぞれ仮想Webサーバプログラム100及び仮想Webサーバ1との差分についてのみ説明する。なお、仮想Webサーバプログラム100aの機能モジュールは、図4に示した仮想Webサーバプログラム100の機能モジュールと同様であり、仮想Webサーバ1aの機能ブロックは、図3に示した仮想Webサーバ1の機能ブロックと同様である。
図6において、仮想Webサーバ1aは、Linux(登録商標)カーネル層の上で実行されるシステムサービスとして実現される。このように、仮想Webサーバ1又は仮想Webサーバ1aは、IPネットワーク層を経由してアクセスされるため、アーキテクチャ上、どの層に実現されてもよい。
第1実施形態に係る仮想Webサーバ1は、アプリケーションフレームワーク層の上でAndroid(登録商標)アプリケーションとして実現されているため、OS機能は、アプリケーションフレームワーク層が提供するOS機能に制限される。一方、本第2実施形態に係る仮想Webサーバ1aは、Linux(登録商標)カーネル層の上でシステムサービスとして実現されているため、OS機能として、Linux(登録商標)カーネル層が提供する豊富はOS機能を利用することができる。
なお、本第2実施形態及び第1実施形態では、OSとしてAndroid(登録商標)を用いて説明しているが、これに限らず、仮想Webサーバプログラム100により実現される仮想Webサーバ1は、他のOSに対しても適用することができる。
<プラグイン動作>
次に、第1実施形態に係る仮想Webサーバ1のプラグイン動作について説明する。仮想Webサーバ1は、前述の制御部14を備えることでプラグイン動作を実現することができる。図7に示すシーケンス図を用いて、プラグイン動作の処理について説明する。なお、本プラグイン動作は、第2実施形態に係る仮想Webサーバ1aについても同様に実現可能である。
まず、Webブラウザ3により、ネットワーク通信が可能か否かが判定される(ステップS10)。ステップS10にて、ネットワーク通信が可能であると判定された場合、ユーザは、接続サイトやソーシャルボタンを利用して仮想Webサーバ1に接続を試みる(ステップS11)。ステップS10にて、ネットワーク通信が可能でないと判定された場合、ユーザは、ブックマークレットを利用して仮想Webサーバ1に接続を試みる(ステップS12)。
ステップS11及びステップS12に続き、Webブラウザ3により、仮想Webサーバ1に接続可能か否かが判定される(ステップS13)。ステップS13にて、仮想Webサーバ1に接続可能であると判定された場合、Webアプリケーション2から仮想Webサーバ1を利用する(ステップS14)。ステップS13にて、仮想Webサーバ1に接続可能でないと判定された場合、ユーザは、URLスキームを利用して仮想Webサーバ1の起動を試みる(ステップS15)。例えば、“localwebapi”という独自に定義したURLスキームを利用して、ローカルホストのポート番号8765番で待ち受けている仮想Webサーバ1の起動を試みる場合、Webブラウザ3を用いて“localwebapi://localhost:8765”のアドレスに接続する。
S15に続き、Webブラウザ3により、仮想Webサーバ1に接続可能か否かが判定される(ステップS16)。ステップS16にて、仮想Webサーバ1に接続可能であると判定された場合、前述のステップS14に移る。ステップS16にて、仮想Webサーバ1に接続可能でないと判定された場合、Webブラウザ3により、ブラウザプラグインのような使い勝手で、ユーザは仮想Webサーバ1のダウンロード先に誘導され、ユーザは誘導に従い仮想Webサーバ1をインストールし(ステップS17)、ステップS13に戻る。
以上の通り、第1実施形態に係る仮想Webサーバ1は、制御部14を備えることで、Webの標準的な仕組みのみで、OSやWebブラウザ3に依存せずに、例えばFlash(登録商標)のようなプラグイン動作を実現することができる。また、このように、Webブラウザ3から仮想Webサーバ1をプラグイン的に使うことで、高度なWebアプリケーション2(Webコンテンツ)を実現することができる。
<スマートデバイスの統合管理>
次に、第1実施形態に係る仮想Webサーバ1を利用したスマートデバイスの統合管理について説明する。ここで、スマートデバイスとは、様々なアプリケーションが実現できる単機能デバイスやセンサー機器のことである。機器によって搭載されている機能が異なり、それぞれ独自のライブラリやフレームワークが用意されている。スマートフォン等から様々なスマートデバイスを利用する場合、同様の機能をもったデバイスでもメーカーによって仕様が異なり、それぞれのデバイスのライブラリやフレームワークを利用して個別にアプリケーションを作りこむ必要がある。スマートデバイスの連携も独自の仕様や、新たに規格化されて古いデバイスでは利用できない仕組みにより実現される場合が多い。
スマートデバイスの統合管理に仮想Webサーバ1を利用すれば、例えば、デバイスごとに異なる仕様を仮想Webサーバ1が提供するWebAPIとして整理することで、デバイスの差異を吸収し、従来では実現できなかったWebブラウザ3からのスマートデバイス利用を実現することができる。すなわち、仮想Webサーバ1を利用することで、仕様の異なるスマートデバイス群を統合的に取り扱える。
1…仮想Webサーバ、2…Webアプリケーション、3…Webブラウザ、10…格納部、11…取得部、12…実行部、13…出力部、14…制御部、50…記憶媒体、51…プログラム格納領域、100…仮想Webサーバプログラム、101…格納モジュール、102…取得モジュール、103…実行モジュール、104…出力制御モジュール、105…制御モジュール。

Claims (3)

  1. OS(オペレーティングシステム)上で動作しているWebブラウザが実行するWebアプリケーションに対し、Webアクセスが可能なインタフェースであるWebAPI(Application Programming Interface)を介して、OSが提供する機能であるOS機能の実行を代行する仮想Webサーバを実現する仮想Webサーバプログラムであって、コンピュータを、
    OS機能を実行する機能モジュールをWebAPIの識別情報と対応付けて予め格納する格納手段と、
    WebアプリケーションからWebAPIを介してOS機能の実行要求を取得する取得手段と、
    前記取得手段によって取得された実行要求に含まれるWebAPIの識別情報を抽出し、抽出したWebAPIの識別情報と対応付いて前記格納手段によって格納された機能モジュールを実行する実行手段と、
    前記実行手段による実行結果を、前記取得手段によって取得された実行要求の取得元であるWebアプリケーションに出力する出力手段、
    として機能させるための仮想Webサーバプログラム。
  2. コンピュータを、
    WebAPIを介して起動要求又は停止要求を取得し、取得した要求に基づいて仮想Webサーバの起動又は停止を行う制御手段、
    としてさらに機能させるための請求項1に記載の仮想Webサーバプログラム。
  3. OS(オペレーティングシステム)上で動作しているWebブラウザが実行するWebアプリケーションに対し、Webアクセスが可能なインタフェースであるWebAPI(Application Programming Interface)を介して、OSが提供する機能であるOS機能の実行を代行する仮想Webサーバであって、OS機能を実行する機能モジュールをWebAPIの識別情報と対応付けて予め格納する格納手段を備える仮想Webサーバによる機能代行方法であって、
    WebアプリケーションからWebAPIを介してOS機能の実行要求を取得する取得ステップと、
    前記取得ステップにおいて取得された実行要求に含まれるWebAPIの識別情報を抽出し、抽出したWebAPIの識別情報と対応付いて前記格納手段によって格納された機能モジュールを実行する実行ステップと、
    前記実行ステップにおける実行結果を、前記取得ステップにおいて取得された実行要求の取得元であるWebアプリケーションに出力する出力ステップと、
    を含む機能代行方法。
JP2013090317A 2013-04-23 2013-04-23 仮想Webサーバプログラム及び機能代行方法 Active JP6055366B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013090317A JP6055366B2 (ja) 2013-04-23 2013-04-23 仮想Webサーバプログラム及び機能代行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013090317A JP6055366B2 (ja) 2013-04-23 2013-04-23 仮想Webサーバプログラム及び機能代行方法

Publications (2)

Publication Number Publication Date
JP2014215672A true JP2014215672A (ja) 2014-11-17
JP6055366B2 JP6055366B2 (ja) 2016-12-27

Family

ID=51941405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013090317A Active JP6055366B2 (ja) 2013-04-23 2013-04-23 仮想Webサーバプログラム及び機能代行方法

Country Status (1)

Country Link
JP (1) JP6055366B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101788296B1 (ko) * 2015-12-30 2017-10-20 (주)네모랩스 에뮬레이터 기반 웹 어플리케이션 소스코드 보안방법
US11438482B2 (en) 2019-03-04 2022-09-06 Canon Kabushiki Kaisha Controlling an image forming device via a web application
EP4191410A1 (en) 2021-12-02 2023-06-07 Ricoh Company, Ltd. Information processing apparatus, method, computer program, and recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048595A (ja) * 2004-08-09 2006-02-16 Epson Toyocom Corp クライアントサーバ型アプリケーション・インタフェ一ス
WO2010032558A1 (ja) * 2008-09-19 2010-03-25 日本電気株式会社 プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048595A (ja) * 2004-08-09 2006-02-16 Epson Toyocom Corp クライアントサーバ型アプリケーション・インタフェ一ス
WO2010032558A1 (ja) * 2008-09-19 2010-03-25 日本電気株式会社 プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101788296B1 (ko) * 2015-12-30 2017-10-20 (주)네모랩스 에뮬레이터 기반 웹 어플리케이션 소스코드 보안방법
US11438482B2 (en) 2019-03-04 2022-09-06 Canon Kabushiki Kaisha Controlling an image forming device via a web application
EP4191410A1 (en) 2021-12-02 2023-06-07 Ricoh Company, Ltd. Information processing apparatus, method, computer program, and recording medium

Also Published As

Publication number Publication date
JP6055366B2 (ja) 2016-12-27

Similar Documents

Publication Publication Date Title
US11188353B2 (en) Runtime extension system for bundled web application
US20220318336A1 (en) Method and Terminal Device for Extracting Web Page Content
JP6092249B2 (ja) 埋込まれたプロセス通信のための仮想チャネル
JP7451825B2 (ja) マイクロフロントエンドシステム、サブアプリケーションロード方法、電子機器、及びコンピュータープログラム製品
US20170123764A1 (en) Method for operating tool in working environment and machine using such method
EP3063673A1 (en) Establishment of state representation of a web page represented in a web browser
US11537367B1 (en) Source code conversion from application program interface to policy document
US10506017B2 (en) Manipulation of PDF file content through HTTP requests
JP6055366B2 (ja) 仮想Webサーバプログラム及び機能代行方法
KR101907660B1 (ko) 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법
US20090049423A1 (en) Javascripttm programming extension
Khanna et al. Ionic: Hybrid Mobile App Development
Kozlovics The Web Computer and Its Operating System: A New Approach for Creating Web Applications.
Bretet Spring mvc cookbook
Amarasinghe Service worker development cookbook
Haja et al. Location, proximity, affinity–the key factors in FaaS
Han et al. Reconstructing Software Architecture for J2EE Web Applications.
Khanna Getting Started with Ionic
MacDonald Pro ASP. NET 1.1 in C#: From professional to expert
Katamreddy et al. Web Applications with Spring Boot
Martola An evaluation of implementing a progressive web application with micro frontend architecture
Schmeling et al. Writing Kubernetes-Native Applications
EP3164798A1 (en) Method for operating tool in working environment and machine using such method
Northwood et al. Front End
KOSOGLOU Design and Implementation of a Multi-client API for Wahlzeit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161202

R150 Certificate of patent or registration of utility model

Ref document number: 6055366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250