JP5541160B2 - Program acquisition / execution client, program acquisition / execution method and program - Google Patents

Program acquisition / execution client, program acquisition / execution method and program Download PDF

Info

Publication number
JP5541160B2
JP5541160B2 JP2010529688A JP2010529688A JP5541160B2 JP 5541160 B2 JP5541160 B2 JP 5541160B2 JP 2010529688 A JP2010529688 A JP 2010529688A JP 2010529688 A JP2010529688 A JP 2010529688A JP 5541160 B2 JP5541160 B2 JP 5541160B2
Authority
JP
Japan
Prior art keywords
program
server
execution
unit
virtual machine
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.)
Active
Application number
JP2010529688A
Other languages
Japanese (ja)
Other versions
JPWO2010032558A1 (en
Inventor
拓也 荒木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010529688A priority Critical patent/JP5541160B2/en
Publication of JPWO2010032558A1 publication Critical patent/JPWO2010032558A1/en
Application granted granted Critical
Publication of JP5541160B2 publication Critical patent/JP5541160B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2109Game systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体に関する。   The present invention relates to a program acquisition / execution client, a program acquisition / execution method, and a recording medium.

特には、本発明は、クライアントのWeb(ウェブ)ブラウザを用いて利用されるサーバ内のサーバ側プログラムを、クライアント側にダウンロードし、そのサーバ側プログラムを実行する、プログラム入手・実行クライアント、プログラム入手・実行方法およびプログラムに関する。   In particular, the present invention downloads a server-side program in a server used by using a client's Web (web) browser to the client side, and executes the server-side program. -It relates to an execution method and a program.

サーバとクライアントからなるサーバ・クライアントシステムが知られている。   A server / client system including a server and a client is known.

特許文献1には、サーバが、クライアントが単独で使用するプログラムを、クライアントに送信し、クライアントが、そのプログラムを仮想マシンの仮想領域に格納して、そのプログラムを実行する、ソフトウェアレンタルシステムが記載されている。   Patent Document 1 describes a software rental system in which a server transmits a program used by a client alone to the client, the client stores the program in a virtual area of a virtual machine, and executes the program. Has been.

このシステムでは、クライアントは、例えばWebブラウザを用いることなく、仮想マシンの仮想領域内のプログラムを単独で実行する。   In this system, a client independently executes a program in a virtual area of a virtual machine without using a Web browser, for example.

特許文献2には、プログラムを管理する技術が記載されている。具体的には、特許文献2には、あるプロセスが、あるディレクトリ以下のものしか見ることができない(当該ディレクトリが最上位のディレクトリに見える)ようにする技術が記載されている。   Patent Document 2 describes a technique for managing a program. Specifically, Patent Document 2 describes a technique that allows a certain process to see only a certain directory or lower (the directory looks like a top directory).

一方、サーバが、クライアントのWebブラウザからの要求に応じて、プログラム本体を実行し、その実行結果をクライアントに送信し、クライアントのWebブラウザが、その実行結果の表示を行う、サーバ・クライアントシステムが普及している。   On the other hand, in response to a request from the client's Web browser, the server / client system executes the program body, sends the execution result to the client, and the client's Web browser displays the execution result. It is popular.

以下、クライアントのWebブラウザからの要求に応じてサーバ上で実行され、その実行結果をクライアントのWebブラウザに送信するプログラムを、「Webアプリケーション」と呼ぶ。   Hereinafter, a program that is executed on the server in response to a request from the client Web browser and transmits the execution result to the client Web browser is referred to as a “Web application”.

例えば、非特許文献1に記載の、Webブラウザを用いた文書、スプレッドシートおよびプレゼンテーションソフトウェア、並びに、非特許文献2に記載のメールクライアントが、Webアプリケーションとしてあげられる。   For example, a document, spreadsheet and presentation software using a Web browser described in Non-Patent Document 1, and a mail client described in Non-Patent Document 2 are listed as Web applications.

しかし、Webアプリケーションには、以下のような問題点がある。   However, Web applications have the following problems.

まず、サーバがプログラムの本体を動作する。このため、クライアントが、ネットワークを介してサーバに接続されていない場合、クライアントは、Webアプリケーションを利用できない。   First, the server operates the main body of the program. For this reason, if the client is not connected to the server via the network, the client cannot use the Web application.

また、ネットワークの通信速度が遅い場合、クライアントの入力に対するプログラムの応答が遅くなる。   Further, when the network communication speed is low, the response of the program to the client input becomes slow.

さらに、多くのクライアントが同じWebアプリケーションを同時に利用すると、サーバでの計算負荷およびネットワーク負荷が大きくなる。   Furthermore, if many clients use the same Web application at the same time, the computation load and network load on the server will increase.

上記問題点を解決するためのシステムが、特許文献3、特許文献4、非特許文献3、非特許文献4、非特許文献5、非特許文献6、および、非特許文献7に記載されている。   Systems for solving the above problems are described in Patent Document 3, Patent Document 4, Non-Patent Document 3, Non-Patent Document 4, Non-Patent Document 5, Non-Patent Document 6, and Non-Patent Document 7. .

特許文献3、特許文献4、非特許文献3、非特許文献4、非特許文献5、非特許文献6、非特許文献7のそれぞれに記載のシステムでは、クライアントが、サーバと同様の機能を持つ。このため、クライアントがサーバと接続されていなくても、クライアントは、Webアプリケーションをオフラインで実行することができる。以下、各システムについて説明する。   In the systems described in Patent Document 3, Patent Document 4, Non-Patent Document 3, Non-Patent Document 4, Non-Patent Document 5, Non-Patent Document 6, and Non-Patent Document 7, the client has the same function as the server. . Therefore, even when the client is not connected to the server, the client can execute the Web application offline. Hereinafter, each system will be described.

特許文献3に記載のシステムは、WebブラウザおよびWebサーバを持つクライアントと、Webサーバを持つサーバと、から構成される。   The system described in Patent Document 3 includes a client having a Web browser and a Web server, and a server having a Web server.

クライアントが、ネットワークを介してサーバと接続されている場合、クライアント側のWebブラウザが、サーバ側のWebサーバにアクセスする。これにより、Webアプリケーションが実行され、また、クライアント側のWebサーバが、サーバ側のWebサーバと、データを交換する。   When the client is connected to the server via the network, the client-side Web browser accesses the server-side Web server. As a result, the Web application is executed, and the client-side Web server exchanges data with the server-side Web server.

一方、クライアントが、ネットワークを介してサーバと接続されていない場合、クライアント側のWebブラウザは、クライアント側のWebサーバにアクセスする。これにより、Webアプリケーションがオフラインで実行される。   On the other hand, when the client is not connected to the server via the network, the client-side Web browser accesses the client-side Web server. As a result, the Web application is executed offline.

特許文献4に記載のシステムは、Webブラウザを利用した業務システムに関する。このシステムでは、オフライン業務ソフトウェアが、サーバからクライアントにダウンロードされる。オフライン時は、クライアントが、オフライン業務ソフトウェアを利用する。このため、オフラインで業務を実行することが可能となる。   The system described in Patent Document 4 relates to a business system using a Web browser. In this system, offline business software is downloaded from a server to a client. When offline, the client uses offline business software. For this reason, it becomes possible to perform business offline.

非特許文献3に記載のシステムは、Webブラウザのプラグインとして、データベースを用いる。データベース内に、Webアプリケーションの実行に必要な情報が保存される。このシステムでは、Webアプリケーションのプログラムの本体が、JavaScript(登録商標)で記述される。Webアプリケーションのプログラムの本体が、Webブラウザ内で実行される。   The system described in Non-Patent Document 3 uses a database as a plug-in for a Web browser. Information necessary for executing the Web application is stored in the database. In this system, the main body of the Web application program is described in JavaScript (registered trademark). The main body of the Web application program is executed in the Web browser.

これにより、クライアントが、ネットワークを介してサーバに接続されていない場合でも、クライアントは、データベース内の情報と、JavaScriptで記述されたプログラムと、を用いて、Webアプリケーションを実行することができる。   Thus, even when the client is not connected to the server via the network, the client can execute the Web application using the information in the database and the program described in JavaScript.

非特許文献4に記載のシステムは、Webブラウザのプラグインとして、JavaVMを搭載し、Webブラウザ内部で、Java(登録商標)で記述されたプログラムを実行する。   The system described in Non-Patent Document 4 includes JavaVM as a Web browser plug-in, and executes a program written in Java (registered trademark) inside the Web browser.

非特許文献5および6には、非特許文献4に記載のシステムと同様のシステムが記載されている。非特許文献5に記載の技術は、Flash(登録商標)をプラグインとして用い、言語としてActionScriptを用いる必要がある。非特許文献6に記載の技術は、NET Frameworkのサブセットをプラグインとして用い、言語としてNET Frameworkに対応したものを用いる必要がある。   Non-Patent Documents 5 and 6 describe a system similar to the system described in Non-Patent Document 4. The technique described in Non-Patent Document 5 needs to use Flash (registered trademark) as a plug-in and ActionScript as a language. The technology described in Non-Patent Document 6 needs to use a subset of NET Framework as a plug-in and a language corresponding to NET Framework as a language.

非特許文献7に記載のシステムは、ブラウザから透過的にプログラムをダウンロードして実行する。Webブラウザ上のリンクをクリックすることで、必要なプログラムがダウンロードされ実行される。   The system described in Non-Patent Document 7 downloads and executes a program transparently from a browser. By clicking the link on the Web browser, the necessary program is downloaded and executed.

再公表特許WO2002/033543号公報Republished Patent WO2002 / 033543 特開2008−165377号公報JP 2008-165377 A 特開2000−276410号公報JP 2000-276410 A 特開2004−94682号公報JP 2004-94682 A

[平成20年7月16日検索]インターネット<URL:http://www.google.com/google-d-s/intl/ja/tour1.html>[Search July 16, 2008] Internet <URL: http: //www.google.com/google-d-s/intl/en/tour1.html> [平成20年7月16日検索]インターネット<URL: https://mail.google.com/mail/>[Search July 16, 2008] Internet <URL: https://mail.google.com/mail/> [平成20年7月16日検索]インターネット<URL: http://gears.google.com/>[Search July 16, 2008] Internet <URL: http://gears.google.com/> [平成20年7月16日検索]インターネット<URL: http://java.sun.com/applets/>[Search July 16, 2008] Internet <URL: http://java.sun.com/applets/> [平成20年7月16日検索]インターネット<URL: http://www.adobe.com/products/flash/about/>[Search July 16, 2008] Internet <URL: http://www.adobe.com/products/flash/about/> [平成20年7月16日検索]インターネット<URL: http://silverlight.net/>[Search July 16, 2008] Internet <URL: http://silverlight.net/> [平成20年7月16日検索]インターネット<URL: http://msdn.microsoft.com/en-us/library/aa751972(VS.85).aspx>[Search July 16, 2008] Internet <URL: http://msdn.microsoft.com/en-us/library/aa751972 (VS.85) .aspx>

クライアントが、サーバ側にあるプログラムを受け付けて実行することによって、Webアプリケーションをオフラインで実行する技術、つまり、特許文献3、特許文献4、非特許文献3、非特許文献4、非特許文献5、非特許文献6および非特許文献7のそれぞれに記載の技術には、以下のような問題点があった。   A technique in which a client receives and executes a program on the server side to execute a Web application offline, that is, Patent Document 3, Patent Document 4, Non-Patent Document 3, Non-Patent Document 4, Non-Patent Document 5, The technologies described in Non-Patent Document 6 and Non-Patent Document 7 have the following problems.

クライアントが受け付けたプログラムにコンピュータウィルスが組み込まれていた場合、システムが破壊されてしまうという問題点があった。また、クライアントが受け付けたプログラムに不具合がある場合、このプログラムの不具合が、クライアント内の他のプログラムまたはデータに悪影響を与える可能性があるという問題があった。   There was a problem that the system was destroyed when a computer virus was installed in the program accepted by the client. In addition, when a program received by the client has a defect, there is a problem that the defect of this program may adversely affect other programs or data in the client.

つまり、クライアントは、サーバから受け付けたプログラムに対するセキュリティが低いという課題があった。   In other words, the client has a problem that the security for the program received from the server is low.

特許文献1に記載のシステムでも、例えば、クライアントが受け付けたプログラムにコンピュータウィルスが組み込まれていた場合、システムが破壊されてしまう。つまり、特許文献1に記載のシステムでも、クライアントは、サーバから受け付けたプログラムに対するセキュリティが低いという課題があった。   Even in the system described in Patent Document 1, for example, when a computer virus is incorporated in a program received by a client, the system is destroyed. That is, even in the system described in Patent Document 1, there is a problem that the client has low security for the program received from the server.

また、特許文献2、非特許文献1および2には、上記課題が生じるための前提となる技術、具体的には、クライアントが、サーバ側にあるプログラムを受け付けて実行することによって、Webアプリケーションをオフラインで実行する技術が記載されていない。   Further, Patent Document 2 and Non-Patent Documents 1 and 2 describe a technology that is a premise for the occurrence of the above problem, specifically, a Web application by receiving and executing a program on the server side by a client. The technology to be executed offline is not described.

このため、特許文献2、非特許文献1および2に記載の技術では、当然のことながら、上記課題、つまり、クライアントは、サーバから受け付けたプログラムに対するセキュリティが低いという課題は解決されていない。   For this reason, the techniques described in Patent Document 2 and Non-Patent Documents 1 and 2 naturally do not solve the above problem, that is, the problem that the client has low security for the program received from the server.

本発明の目的は、上述した課題を解決する、プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体を提供することにある。   An object of the present invention is to provide a program acquisition / execution client, a program acquisition / execution method, and a recording medium that solve the above-described problems.

本発明のプログラム入手・実行クライアントは、クライアントから所定の要求を受信した場合にサーバ側プログラムを実行して当該所定の要求に応じた実行結果を当該クライアントに送信するサーバと、通信可能なプログラム入手・実行クライアントであって、サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成する仮想マシン生成手段と、前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納する管理手段と、前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記所定の要求を受信した場合に当該所定の要求に応じた実行結果を当該所定の要求の送信元に送信する特定手段を、当該仮想マシン上に生成する実行動作手段と、前記特定手段に前記所定の要求を送信し、当該特定手段から前記所定の要求に応じた実行結果を受信して表示する操作手段と、を含む。   The program acquisition / execution client of the present invention obtains a program that can communicate with a server that executes a server-side program and transmits an execution result corresponding to the predetermined request to the client when a predetermined request is received from the client. An execution client, a virtual machine generation unit that generates a virtual machine having a storage unit for a server and other storage units, and obtains the server-side program from the server and transmits the server-side program to the server The server side program in the server storage unit is executed on the virtual machine while prohibiting writing to the management unit stored in the storage unit and the other storage unit, and the predetermined request is received. In this case, the specifying means for transmitting the execution result corresponding to the predetermined request to the transmission source of the predetermined request Including an execution operation means for generating upward and transmits the predetermined request to the specifying unit, an operation unit that receives and displays the execution result in accordance with the predetermined request from the specific means.

本発明のプログラム入手・実行方法は、クライアントから所定の要求を受信した場合にサーバ側プログラムを実行して当該所定の要求に応じた実行結果を当該クライアントに送信するサーバと、通信可能なプログラム入手・実行クライアントが行うプログラム入手・実行方法であって、サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成し、前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納し、前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記所定の要求を受信した場合に当該所定の要求に応じた実行結果を当該所定の要求の送信元に送信する特定手段を、当該仮想マシン上に生成し、前記特定手段に前記所定の要求を送信し、当該特定手段から前記所定の要求に応じた実行結果を受信して表示する。   The program acquisition / execution method of the present invention obtains a program that can communicate with a server that executes a server-side program and transmits an execution result corresponding to the predetermined request to the client when a predetermined request is received from the client. A program acquisition / execution method performed by an execution client, wherein a virtual machine having server storage means and other storage means is generated, the server side program is obtained from the server, and the server side program is downloaded When the predetermined request is received by executing a server-side program in the server storage unit on the virtual machine while storing in the server storage unit and prohibiting writing to the other storage unit Specific means for transmitting the execution result corresponding to the predetermined request to the transmission source of the predetermined request is generated on the virtual machine. Wherein said sending a predetermined request to a particular unit, to display from the specific unit receives the execution result in accordance with the predetermined request.

本発明の記録媒体は、クライアントから所定の要求を受信した場合にサーバ側プログラムを実行して当該所定の要求に応じた実行結果を当該クライアントに送信するサーバと通信可能であり、かつ、Webブラウザが搭載されているコンピュータに、サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成する仮想マシン生成手順と、前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納する管理手順と、前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記Webブラウザから前記所定の要求を受信した場合に当該所定の要求に応じた実行結果を当該Webブラウザに送信する特定手段を、当該仮想マシン上に生成する実行動作手順と、を実行させるプロクラムが記録されたコンピュータ読み取り可能な記録媒体である。   The recording medium of the present invention can communicate with a server that executes a server-side program and transmits an execution result corresponding to the predetermined request to the client when a predetermined request is received from the client, and a Web browser A virtual machine generation procedure for generating a virtual machine having server storage means and other storage means in a computer on which the server is installed, and obtaining the server side program from the server The management procedure stored in the server storage means and the server side program in the server storage means are executed on the virtual machine while prohibiting writing to the other storage means, and the predetermined program is executed from the Web browser. Specific means for sending the execution result corresponding to the predetermined request to the Web browser when the request is received on the virtual machine. And executing operation instructions to be generated, a computer-readable recording medium which Purokuramu has been recorded to execute.

本発明によれば、クライアントがサーバ側にあるプログラムを受け付けて実行する場合におけるセキュリティを向上させることが可能になる。   According to the present invention, it is possible to improve security when a client receives and executes a program on the server side.

本発明の第1の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. Webアプリケーションをオフラインで利用する際の、Webブラウザの画面遷移を示す図である。It is a figure which shows the screen transition of a web browser at the time of using a web application offline. 非ブラウザアプリケーションを利用する際の、Webブラウザと非ブラウザアプリケーションの画面遷移を示す図である。It is a figure which shows the screen transition of a Web browser and a non-browser application when using a non-browser application. ユーザがプログラムを直接管理する際のブラウザの画面を示す図である。It is a figure which shows the screen of the browser at the time of a user managing a program directly. Webアプリケーションをオフライン化する際の動作を示すシーケンス図である。FIG. 10 is a sequence diagram showing an operation when a Web application is taken offline. オフライン化したWebアプリケーションを利用する際の動作を示すシーケンス図である。FIG. 6 is a sequence diagram showing an operation when using an offline Web application. 非ブラウザアプリケーションを実行する際の動作を示すシーケンス図である。It is a sequence diagram which shows the operation | movement at the time of performing a non-browser application. オフラインで非ブラウザアプリケーションを実行する際の動作を示すシーケンス図である。It is a sequence diagram which shows the operation | movement at the time of executing a non-browser application offline. 本発明の第2の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 2nd Embodiment of this invention.

次に、発明を実施するための形態について図面を参照して詳細に説明する。   Next, embodiments for carrying out the invention will be described in detail with reference to the drawings.

(第1の実施の形態)
図1を参照すると、本発明の第1の実施の形態は、サーバ100と、クライアント110と、を含む。
(First embodiment)
Referring to FIG. 1, the first embodiment of the present invention includes a server 100 and a client 110.

サーバ100は、クライアント110から所定の要求を受信した場合に、サーバ側プログラムを実行して、その所定の要求に応じた実行結果を、クライアント110に送信する。   When the server 100 receives a predetermined request from the client 110, the server 100 executes the server-side program and transmits an execution result corresponding to the predetermined request to the client 110.

サーバ100は、Webサーバ101と、プログラム配信部102と、を含む。なお、Webサーバ101とプログラム配信部102は、別々のサーバ上に存在してもよい。   The server 100 includes a Web server 101 and a program distribution unit 102. The Web server 101 and the program distribution unit 102 may exist on different servers.

クライアント110は、一般的に、プログラム入手・実行クライアントと呼ぶことができる。クライアント110は、サーバ100と通信可能である。   The client 110 can generally be referred to as a program acquisition / execution client. The client 110 can communicate with the server 100.

クライアント110は、Webブラウザ実行部111と、仮想マシン112と、仮想マシン生成部112aと、入出力部120と、を含む。仮想マシン112は、管理モジュール113と、プログラム実行部114と、を含む。管理モジュール113は、プログラム管理部115と、要求受付・返答部116と、実行管理部117と、を含む。プログラム実行部114は、格納部118と、実行部119と、を含む。格納部118は、サーバ用格納部118aおよび118bと、OS(オペレーティングシステム)格納部118cと、を含む。実行管理部117と実行部119とは、実行動作部121に含まれる。プログラム管理部115と要求受付・返答部116は、管理部122に含まれる。Webブラウザ実行部111と入出力部120は、操作部123に含まれる。   The client 110 includes a web browser execution unit 111, a virtual machine 112, a virtual machine generation unit 112a, and an input / output unit 120. The virtual machine 112 includes a management module 113 and a program execution unit 114. The management module 113 includes a program management unit 115, a request reception / response unit 116, and an execution management unit 117. The program execution unit 114 includes a storage unit 118 and an execution unit 119. Storage unit 118 includes server storage units 118a and 118b and an OS (operating system) storage unit 118c. The execution management unit 117 and the execution unit 119 are included in the execution operation unit 121. The program management unit 115 and the request reception / response unit 116 are included in the management unit 122. The web browser execution unit 111 and the input / output unit 120 are included in the operation unit 123.

仮想マシン112は、特定の言語のプログラムしか動作しないソフトウェア(例えば、JavaVM)を仮想マシン生成部112aが実行することによって生成されるものではない。仮想マシン112は、例えば、仮想マシン内で独立したオペレーティングシステムが動作可能なソフトウェア(例えば、VMWare(ブイエムウェア)(登録商標)やXen(ゼン)(登録商標))を仮想マシン生成部112aが実行することによって生成される。   The virtual machine 112 is not generated when the virtual machine generation unit 112a executes software (for example, Java VM) that operates only a program in a specific language. In the virtual machine 112, for example, the virtual machine generation unit 112a executes software (for example, VMWare (registered trademark) or Xen (registered trademark)) capable of operating an independent operating system in the virtual machine. Is generated by

仮想マシン生成部112aは、一般的に仮想マシン生成手段と呼ぶことができる。仮想マシン生成部112aは、VMWare(ブイエムウェア)やXen(ゼン)のようなソフトウェアを実行することによって、クライアント110内に仮想マシン112を生成する。   The virtual machine generation unit 112a can be generally called virtual machine generation means. The virtual machine generation unit 112a generates a virtual machine 112 in the client 110 by executing software such as VMWare or Xen.

サーバ用格納部118aおよび118bのそれぞれは、一般的にサーバ用格納手段と呼ぶことができる。なお、サーバ用格納部の数は、2つに限らず、1以上であればよい。   Each of server storage units 118a and 118b can be generally referred to as server storage means. The number of server storage units is not limited to two but may be one or more.

OS格納部118cは、一般的にOS格納手段または他の格納手段と呼ぶことができる。OS格納部118cは、例えば、サーバ用格納部118aおよび118b内のプログラムを実行する際に用いられるオペレーティングシステム、さらに言えば、仮想マシン112が使用するオペレーティングシステムを格納する。OS格納部118cは、例えば、サーバ100が有するオペレーティングシステムと同じ種類のオペレーティングシステムを格納する。   The OS storage unit 118c can be generally called an OS storage unit or other storage unit. The OS storage unit 118c stores, for example, an operating system used when executing the programs in the server storage units 118a and 118b, more specifically, an operating system used by the virtual machine 112. For example, the OS storage unit 118c stores the same type of operating system as the operating system of the server 100.

要求受付・返答部116は、サーバ側プログラム(以下、単に「プログラム」と称する)を入手する旨の入手指示を、Webブラウザ実行部111から受け付ける。また、要求受付・返答部116は、入手されたプログラムを実行する旨の実行指示を、Webブラウザ実行部111から受け付ける。   The request receiving / replying unit 116 receives from the Web browser executing unit 111 an acquisition instruction for acquiring a server-side program (hereinafter simply referred to as “program”). Further, the request receiving / replying unit 116 receives from the Web browser execution unit 111 an execution instruction to execute the acquired program.

プログラム管理部115は、要求受付・返答部116が入手指示を受け付けた場合に、サーバ100からプログラムを入手して、そのプログラムをサーバ用格納部118aまたは118bに格納し、かつ、格納部118のうちでアクセス可能な領域を、そのプログラムに対応づけて設定する。   When the request reception / response unit 116 receives an acquisition instruction, the program management unit 115 acquires a program from the server 100, stores the program in the server storage unit 118a or 118b, and stores the program in the storage unit 118. The area that can be accessed is set in association with the program.

管理部122は、一般的に管理手段と呼ぶことができる。管理部122は、サーバ100からプログラムを入手して、そのプログラムをサーバ用格納部118aまたは118bに格納する。   Management unit 122 can generally be referred to as management means. The management unit 122 obtains a program from the server 100 and stores the program in the server storage unit 118a or 118b.

実行動作部121は、一般的に実行動作手段と呼ぶことができる。実行動作部121は、サーバ用格納部118aまたは118b内のプログラムを読み出し、格納部118のうち、そのプログラムに対応づけられた領域以外へのアクセスを禁止しながら、仮想マシン112上でそのプログラムを実行して、仮想マシン112上に、サーバ100に対応する特定サーバ(例えば、図1に示したWebサーバ)を生成する。   The execution operation unit 121 can be generally called execution operation means. The execution operation unit 121 reads the program in the server storage unit 118a or 118b, and executes the program on the virtual machine 112 while prohibiting access to the storage unit 118 other than the area associated with the program. As a result, a specific server (for example, the Web server shown in FIG. 1) corresponding to the server 100 is generated on the virtual machine 112.

例えば、実行動作部121は、サーバ用格納部118aまたは118b内のプログラムを読み出し、格納部118のうち、そのプログラムを格納している格納部以外の格納部への書き込みを禁止しながら、仮想マシン112上でそのプログラムを実行して、仮想マシン112上に特定サーバを生成する。   For example, the execution operation unit 121 reads a program in the server storage unit 118a or 118b and prohibits writing to a storage unit other than the storage unit that stores the program in the storage unit 118, while the virtual machine The program is executed on the virtual machine 112 to generate a specific server on the virtual machine 112.

特定サーバは、一般的に特定手段と呼ぶことができる。   The specific server can be generally called a specific means.

特定サーバは、サーバ100が有する機能のうち、クライアントから所定の要求を受信した場合に、その所定の要求に応じた実行結果を、そのクライアントに送信する機能を有する。   The specific server has a function of transmitting an execution result corresponding to the predetermined request to the client when a predetermined request is received from the client among the functions of the server 100.

本実施の形態では、実行動作部121は、OS格納部118c内のオペレーティングシステムを用いてサーバ用格納部118aまたは118b内のプログラムを実行する。   In the present embodiment, the execution operation unit 121 executes a program in the server storage unit 118a or 118b using an operating system in the OS storage unit 118c.

操作部123は、一般的に操作手段と呼ぶことができる。操作部123は、仮想マシン112内の特定サーバに所定の要求を送信し、その特定サーバからその所定の要求に応じた実行結果を受信して表示する。   Operation unit 123 can be generally referred to as operation means. The operation unit 123 transmits a predetermined request to a specific server in the virtual machine 112, receives an execution result corresponding to the predetermined request from the specific server, and displays the result.

Webブラウザ実行部111は、一般的に操作手段または通信手段と呼ぶことができる。   Web browser execution unit 111 can generally be referred to as operation means or communication means.

Webブラウザ実行部111は、Webブラウザを用いることによって、仮想マシン112内の特定サーバに所定の要求を送信し、その特定サーバから所定の要求に応じた実行結果を受信してその実行結果を表示する。   The Web browser execution unit 111 transmits a predetermined request to a specific server in the virtual machine 112 by using the Web browser, receives an execution result corresponding to the predetermined request from the specific server, and displays the execution result To do.

なお、Webブラウザ実行部111は、Webブラウザを用いることによって、サーバ100に所定の要求を送信し、サーバ100からその所定の要求に応じた実行結果を受信する。   The Web browser execution unit 111 transmits a predetermined request to the server 100 by using the Web browser, and receives an execution result corresponding to the predetermined request from the server 100.

入出力部120は、一般的に操作手段と呼ぶことができる。入出力部120は、仮想マシン112内の特定サーバに所定の要求を送信し、仮想マシン112内の特定サーバから所定の要求に応じた実行結果を受信してその実行結果を表示する。   Input / output unit 120 can generally be referred to as operating means. The input / output unit 120 transmits a predetermined request to a specific server in the virtual machine 112, receives an execution result corresponding to the predetermined request from the specific server in the virtual machine 112, and displays the execution result.

これらは、つぎのように動作する。   These operate as follows.

まず、通常の利用形態では、Webブラウザ実行部111が、Webサーバ101にアクセスすると、Webサーバ101上でプログラムすなわちWebアプリケーションが実行され、その実行結果が、Webブラウザ実行部111に提供され、その実行結果が表示される。   First, in a normal usage mode, when the Web browser execution unit 111 accesses the Web server 101, a program, that is, a Web application is executed on the Web server 101, and the execution result is provided to the Web browser execution unit 111. The execution result is displayed.

次に、Webアプリケーションをオフライン化する場合について説明する。   Next, a case where the Web application is taken offline will be described.

図2は、Webアプリケーションをオフライン化する際のWebブラウザ実行部111の画面遷移を説明するための説明図である。   FIG. 2 is an explanatory diagram for explaining the screen transition of the web browser execution unit 111 when the web application is taken offline.

まず、画面201は、オンライン時に、Webサーバ101によってWebブラウザ実行部111に表示される画面である。   First, the screen 201 is a screen displayed on the web browser execution unit 111 by the web server 101 when online.

Webサーバ101は、画面201内に、「オフライン化」等の名前でリンクを用意する。ユーザが、Webブラウザ実行部111を使って、画面201内のリンクをクリックすると、Webブラウザ実行部111は、仮想マシン112内の管理モジュール113内の要求受付・返答部116に、オフライン化の要求を行う。このオフライン化の要求は、一般的に入手指示と呼ぶことができる。   The Web server 101 prepares a link with a name such as “offline” in the screen 201. When the user clicks a link in the screen 201 using the web browser execution unit 111, the web browser execution unit 111 sends a request for offline to the request reception / reply unit 116 in the management module 113 in the virtual machine 112. I do. This off-line request can generally be referred to as an acquisition instruction.

ここで、Webブラウザ実行部111と要求受付・返答部116の通信には、最も簡単にはhttp(HyperText Transfer Protocol)が用いられる。   Here, http (HyperText Transfer Protocol) is most easily used for communication between the Web browser execution unit 111 and the request reception / reply unit 116.

この場合、要求受付・返答部116が、httpサーバを動作させ、上記リンクを、そのhttpサーバへのハイパーリンクとする。例えば、仮想マシン112のIPアドレスとして192.168.0.10を用いるものとすると、そのhttpサーバへのリンクは、http://192.168.0.10/...となる。   In this case, the request receiving / replying unit 116 operates the http server and sets the link as a hyperlink to the http server. For example, assuming that 192.168.0.10 is used as the IP address of the virtual machine 112, the link to the http server is http: //192.168.0.10 / ...

この場合、Webブラウザ実行部111が、ユーザの操作に従って、画面201内のリンクをクリックすることで、要求受付・返答部116に、オフライン化の要求を送ることができる。   In this case, the Web browser execution unit 111 can send a request for off-line to the request reception / reply unit 116 by clicking a link in the screen 201 in accordance with a user operation.

さらに、httpが提供する引数の機能を利用することで、付加的に必要な情報が、要求受付・返答部116に送られることができる。   Furthermore, by using the argument function provided by http, additionally necessary information can be sent to the request reception / reply section 116.

本実施の形態では、必要となるプログラムを特定するためのURL(Uniform Resource Locator)、および、後で仮想マシン112内でプログラムを実行する際に必要となる起動・終了のためのコマンド等が、要求受付・返答部116に渡される。   In the present embodiment, a URL (Uniform Resource Locator) for specifying a necessary program, a command for starting / ending necessary for executing the program in the virtual machine 112 later, and the like, It is passed to the request reception / response unit 116.

さらに、リンク元のページ(画面201)のURLも、Referer(リファラ)の形で要求受付・返答部116に渡される。   Further, the URL of the link source page (screen 201) is also passed to the request reception / reply section 116 in the form of a Referer.

なお、Webブラウザ実行部111と要求受付・返答部116との通信は、上記に限らない。   Communication between the Web browser execution unit 111 and the request reception / response unit 116 is not limited to the above.

例えば、画面201内のリンクのURL scheme(スキーム)を特殊なプロトコルとし、Webブラウザ実行部111が、画面201内のリンクをクリックすることで、プロトコルハンドラとなる外部プログラムを起動し(あるいはプラグインの形で実現し)、Webブラウザ実行部111が、その外部プログラムを使って、要求受付・返答部116と独自のプロトコルで通信してもよい。   For example, the URL scheme (scheme) of the link in the screen 201 is set as a special protocol, and the Web browser execution unit 111 starts an external program serving as a protocol handler (or plug-in) by clicking the link in the screen 201. The Web browser execution unit 111 may communicate with the request reception / reply unit 116 using a unique protocol using the external program.

また、Webブラウザ実行部111と要求受付・返答部116との通信は、Webブラウザ実行部111が仮想マシン112を含む形で実現されてもよい。   Communication between the Web browser execution unit 111 and the request reception / reply unit 116 may be realized in a form in which the Web browser execution unit 111 includes the virtual machine 112.

ただし、Webブラウザ実行部111と要求受付・返答部116との通信は、要求受付・返答部116で動作するhttpサーバへのリンクとして実現された方が、任意のWebブラウザおよび仮想マシンを改造することなく、本実施の形態を実施できるため、好ましい。   However, the communication between the Web browser execution unit 111 and the request reception / response unit 116 is modified as an arbitrary Web browser and virtual machine if it is realized as a link to an http server that operates in the request reception / response unit 116. This is preferable because this embodiment can be implemented without any problem.

画面201内のリンクをクリックすることで、オフライン化の要求が行われると、要求受付・返答部116は、プログラム管理部115に、オフライン化の要求の引数として渡された、プログラムを特定するためのURLを提供して、そのURLにて特定されるプログラムのダウンロードを依頼する。   When a request to go offline is made by clicking a link in the screen 201, the request reception / reply section 116 specifies the program passed to the program management section 115 as an argument of the request to go offline. And request download of the program specified by the URL.

プログラム管理部115は、ダウンロードの依頼を受け付けると、そのURLを用いて、サーバ100のプログラム配信部102から、ダウンロードを依頼されたプログラムをダウンロードする。   When receiving the download request, the program management unit 115 downloads the requested program from the program distribution unit 102 of the server 100 using the URL.

プログラムのダウンロード後、プログラム管理部115は、プログラム実行部114において、ダウンロードしたプログラムのインストールを行う。   After downloading the program, the program management unit 115 causes the program execution unit 114 to install the downloaded program.

ここで、「インストール」とは、ダウンロードしたプログラムをすぐに実行可能な状態にするための作業であり、その具体的内容は、プログラム実行部114の実現方法に依存する。   Here, “installation” is an operation for making the downloaded program ready to be executed, and its specific content depends on the method of realizing the program execution unit 114.

プログラム実行部114の実現方法とその実現方法に応じたインストール方法には、以下のようなものが考えられる。   The following can be considered as a method for realizing the program execution unit 114 and an installation method corresponding to the method.

最も単純には、プログラム管理部115が、プログラム実行部114内のサーバ用格納部内に、ダウンロードしたプログラム毎に、独立したディレクトリ(サーバ用格納部118aおよび118b)を作成し、そのディレクトリ(サーバ用格納部118aおよび118a)のそれぞれに、別々のプログラムを保存すればよい。   Most simply, the program management unit 115 creates an independent directory (server storage units 118a and 118b) for each downloaded program in the server storage unit in the program execution unit 114, and the directory (server use). A separate program may be stored in each of the storage units 118a and 118a).

ただし、ダウンロードしたプログラムにコンピュータウィルス等が組み込まれていると、他のプログラムの記憶領域(ディレクトリ)、および、仮想マシン112内の他の記憶領域(他のサーバ用格納部およびOS格納部)が破壊される可能性がある。   However, if a computer virus or the like is incorporated in the downloaded program, other program storage areas (directories) and other storage areas in the virtual machine 112 (other server storage units and OS storage units) It can be destroyed.

このため、プログラム管理部115は、プログラム毎に、ユーザアカウントを分け、各プログラムが実行された際にアクセスできるディレクトリ(記憶領域、格納部)を制限する必要がある。   Therefore, the program management unit 115 needs to divide user accounts for each program and restrict directories (storage area, storage unit) that can be accessed when each program is executed.

すなわち、プログラム管理部115は、ダウンロード要求のあったプログラム毎に、ユーザアカウントを新たに生成し、サーバ用格納部内にディレクトリを作成した上で、そのディレクトリへのアクセス許可を、その生成したユーザアカウントに与え、他のディレクトリへのアクセス許可を、その生成したユーザアカウントに与えず、ダウンロードしたプログラムを、そのディレクトリにコピー(保存)する。   That is, the program management unit 115 newly generates a user account for each program requested to be downloaded, creates a directory in the server storage unit, and grants access permission to the directory to the generated user account. The downloaded program is copied (saved) to the directory without giving the access permission to the other directory to the generated user account.

あるいは、プログラム実行部114の実現方法とその実現方法に応じたインストール方法として、特許文献2に記載のシステムを用いてもよい。   Alternatively, the system described in Patent Literature 2 may be used as a method for realizing the program execution unit 114 and an installation method corresponding to the method.

すなわち、プログラム管理部115は、特許文献2に記載された、あるプロセスが、あるディレクトリ以下のものしか見ることができない(当該ディレクトリが最上位のディレクトリに見える)ようにする仕組みを利用して、プログラム間の隔離を実現する。   That is, the program management unit 115 uses a mechanism described in Patent Document 2 that allows a certain process to see only a certain directory or lower (the directory looks like the top directory). Achieve isolation between programs.

また、プログラム管理部115は、UnionFSなどの、ディレクトリを層構造で重ねる手法を用いてもよい。   Further, the program management unit 115 may use a method of overlapping directories in a layer structure such as UnionFS.

この場合、プログラム管理部115は、新しい版のプログラムをインストールする際は、新しい版と古い版の差分のみをダウンロードし、そのダウンロードされた内容を古い版のディレクトリ上に重ねる。このため、プログラムのダウンロードを効率的に行うことが可能になる。また、プログラム管理部115は、プログラムのインストールが指定されると、そのプログラムに依存する他のプログラムを含め、自動的に必要な差分をダウンロードする。   In this case, when installing a new version of the program, the program management unit 115 downloads only the difference between the new version and the old version, and superimposes the downloaded contents on the old version directory. For this reason, it is possible to efficiently download the program. Further, when installation of a program is designated, the program management unit 115 automatically downloads necessary differences including other programs depending on the program.

さらに、プログラム実行部114として、仮想マシンが利用されてもよい。   Further, a virtual machine may be used as the program execution unit 114.

この場合、仮想マシン112のさらに内側で仮想マシンが実行されることになる。この場合、ダウンロードしたプログラムは、仮想マシンのイメージとなり、プログラムの実行は仮想マシンの起動となる。   In this case, the virtual machine is executed further inside the virtual machine 112. In this case, the downloaded program is an image of the virtual machine, and execution of the program is activation of the virtual machine.

インストール終了後、要求受付・返答部116は、要求に応じてプログラムを起動・終了できるように、プログラム実行部114内のプログラムを設定する。   After the installation is completed, the request receiving / replying unit 116 sets the program in the program execution unit 114 so that the program can be started and terminated in response to the request.

具体的には、要求受付・返答部116は、ある特定のURL(引数付きのものでもよい)に対するアクセスがあった場合に、そのURLに対応するプログラムを起動・終了するように、プログラム実行部114内のプログラムを設定する。   Specifically, the request receiving / replying unit 116 is configured to start and end the program corresponding to the URL when there is an access to a specific URL (which may include an argument). The program in 114 is set.

なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、要求受付・返答部116は、独自プロトコルを用いることで、要求に応じてプログラムを起動・終了できるように、プログラム実行部114内のプログラムを設定する。   The communication between the Web browser execution unit 111 and the virtual machine 112 is realized by a plug-in to the Web browser execution unit 111 or the virtual browser 112 is included inside the Web browser execution unit 111. If so, the request receiving / replying unit 116 sets the program in the program execution unit 114 so that the program can be started and terminated according to the request by using a unique protocol.

一方、プログラムのダウンロード・インストール・起動・終了設定を行っている間、Webブラウザ実行部111には、「現在オフライン化を行っています」といった内容の情報(例えば、「ただいまオフライン化中」)が表示される(画面202参照)。   On the other hand, while the program is being downloaded, installed, started, and terminated, the Web browser execution unit 111 has information such as “currently going offline” (for example, “currently going offline”). Is displayed (see screen 202).

Webブラウザ実行部111が画面202を表示することは、要求受付・返答部116が、画面202の内容を表示するためにHTMLで記載されたファイルを、Webブラウザ実行部111に返すことで実現できる。   The display of the screen 202 by the Web browser execution unit 111 can be realized by the request reception / response unit 116 returning a file described in HTML to display the contents of the screen 202 to the Web browser execution unit 111. .

そして、ダウンロード・インストールが終了すると、つまり、プログラム実行部114内のプログラムのオフライン化が完了すると、Webブラウザ実行部111には、「オフライン化が終了しました」といった内容の情報が表示される(画面203参照)。   When the download / installation is completed, that is, when the offline processing of the program in the program execution unit 114 is completed, the Web browser execution unit 111 displays information such as “offline has been completed”. Screen 203).

Webブラウザ実行部111が画面203を表示することは、画面202で表示したHTMLのファイルを自動的にリフレッシュするように、要求受付・返答部116が、meta(メタ)タグでrefresh指定をすることなどで実現できる。   When the Web browser execution unit 111 displays the screen 203, the request reception / response unit 116 specifies refresh with a meta tag so that the HTML file displayed on the screen 202 is automatically refreshed. This can be achieved.

さらに、画面203の表示と同時に、Webブラウザ実行部111には、オフライン化したプログラムを起動するためのURLをブックマークすることをユーザに促す画面が表示される(画面204参照)。   Furthermore, simultaneously with the display of the screen 203, the Web browser execution unit 111 displays a screen that prompts the user to bookmark the URL for starting the offline program (see screen 204).

Webブラウザ実行部111が画面204を表示することは、JavaScriptの機能を用いることで実現することが可能である。   The Web browser execution unit 111 can display the screen 204 by using a JavaScript function.

なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、Webブラウザ実行部111が、プログラム実行部114内のプログラムの状態に応じて、「現在オフライン化を行っています」、「オフライン化が終了しました」といった内容の情報を表示すればよい。   The communication between the Web browser execution unit 111 and the virtual machine 112 is realized by a plug-in to the Web browser execution unit 111 or the virtual browser 112 is included inside the Web browser execution unit 111. If it is, the Web browser execution unit 111 displays information such as “currently going offline” or “offline finished” according to the state of the program in the program execution unit 114. That's fine.

また、ブックマークへのURLの追加については、ブックマークを利用せず、自動的にそのURLを表示する専用のメニューを追加して実現することもできる。   You can also add a URL to a bookmark by adding a dedicated menu that automatically displays the URL without using the bookmark.

「オフライン化が終了しました」といった内容の情報を表示する際には、Webブラウザ実行部111は、必要に応じて、元のURL(画面201に対応するURL)に戻るリンクを付加しておく。これは、Refererとして与えられたURLを利用することによって実現できる。   When displaying information of content such as “offline has been completed”, the Web browser execution unit 111 adds a link to return to the original URL (URL corresponding to the screen 201) as necessary. . This can be realized by using the URL given as Referer.

次に、オフライン化したWebアプリケーションを利用する場合について説明する。   Next, the case where an offline Web application is used will be described.

まず、ユーザが、画面204を用いてブックマークしたURLに、Webブラウザ実行部111を使ってアクセスする。   First, the user accesses the URL bookmarked using the screen 204 using the Web browser execution unit 111.

そのURLへのアクセスが実行されると、要求受付・返答部116は、そのURLにて特定されるプログラムを実行する旨の実行指示を受け付ける。要求受付・返答部116は、その実行指示を受け付けると、実行管理部117に、そのURLに対応するプログラムの起動を依頼する。   When access to the URL is executed, the request reception / reply section 116 receives an execution instruction to execute the program specified by the URL. When receiving the execution instruction, the request reception / reply unit 116 requests the execution management unit 117 to start a program corresponding to the URL.

実行管理部117は、起動の依頼を受け付けると、実行部119に、起動を依頼されたプログラムの実行を開始する指示を与える。   When receiving the activation request, the execution management unit 117 gives an instruction to the execution unit 119 to start execution of the program requested to be activated.

実行を開始するための具体的な処理は、プログラム実行部114の実現方法に依存する。   The specific process for starting execution depends on the implementation method of the program execution unit 114.

プログラム実行部114が、プログラム毎に、ディレクトリおよびアカウントを分けることで実現されている場合は、実行管理部117は、起動を依頼されたプログラムに対応するディレクトリおよびアカウントを用いて、起動を依頼されたプログラムを、実行部119に起動させればよい。   When the program execution unit 114 is realized by dividing a directory and an account for each program, the execution management unit 117 is requested to start using the directory and account corresponding to the program requested to start. The execution unit 119 may activate the program.

この場合、実行部119は、仮想サーバ用格納部118aまたは118b内のプログラムを、少なくとも、格納部118のうちでそのプログラムに対応づけられている領域以外へのアクセスを禁止しながら実行する。   In this case, the execution unit 119 executes the program in the virtual server storage unit 118a or 118b while prohibiting access to at least the area of the storage unit 118 that is associated with the program.

プログラム実行部114が、特許文献2に記載のシステムを用いる場合は、実行管理部117は、そのシステムに起動を依頼することで、起動を依頼されたプログラムを起動できる。   When the program execution unit 114 uses the system described in Patent Document 2, the execution management unit 117 can start the program requested to start by requesting the system to start.

この場合も、少なくとも、格納部118のうちで、そのプログラムに対応づけられている領域以外へのアクセスが禁止されながら、そのプログラムが実行される。   Also in this case, the program is executed while at least access to an area other than the area associated with the program in the storage unit 118 is prohibited.

プログラム実行部114が仮想マシンで実現される場合は、実行管理部117は、プログラム実行部114として設定されている仮想マシンの起動を行う。   When the program execution unit 114 is realized by a virtual machine, the execution management unit 117 starts up the virtual machine set as the program execution unit 114.

この場合も、少なくとも、格納部118のうちで、そのプログラムに対応づけられている領域以外へのアクセスが禁止されながら、そのプログラムが実行される。   Also in this case, the program is executed while at least access to an area other than the area associated with the program in the storage unit 118 is prohibited.

実行管理部117は、現在実行中のプログラムを示す情報を記憶しておき、後でそのプログラムを終了する際等に備える。   The execution management unit 117 stores information indicating a program that is currently being executed, and prepares for the end of the program later.

また、実行管理部117は、起動処理が完了し、プログラムが利用可能になった時点で、その旨を要求受付・返答部116に伝える。   Further, the execution management unit 117 notifies the request reception / reply unit 116 to the effect when the activation process is completed and the program becomes available.

ここでは、起動したプログラムをプログラムAとする。   Here, the activated program is referred to as program A.

プログラムAは、Webアプリケーションのサーバ100側のプログラムである。プログラムAは、起動されると、サーバ100に対応するWebサーバ(特定サーバ)として動作する。   Program A is a program on the server 100 side of the Web application. When the program A is activated, it operates as a Web server (specific server) corresponding to the server 100.

ここで、プログラムAにて実現されるWebサーバが利用する、TCP(Transmission Control Protocol)プロトコルにおけるポート番号と、要求受付・返答部116が利用するポート番号、および、他のプログラムが利用するポート番号は、互いに異なるようにする必要がある。   Here, the port number in the TCP (Transmission Control Protocol) protocol used by the Web server realized by the program A, the port number used by the request reception / response unit 116, and the port number used by other programs Need to be different from each other.

利用するポート番号は、一般には、プログラム、または、その設定ファイルに埋め込まれるため、なんらかのルールにより、あらかじめ重ならないように決められているものと仮定する。   Since the port number to be used is generally embedded in a program or its setting file, it is assumed that it is determined in advance so as not to overlap by some rule.

同時に、プログラムが起動を開始し、利用可能になるまでの間、Webブラウザ実行部111では、「現在プログラムを起動しています」といった内容の情報が表示される(画面205参照)。   At the same time, the Web browser execution unit 111 displays information such as “currently starting the program” until the program starts to be used and can be used (see screen 205).

Webブラウザ実行部111が画面205を表示することは、要求受付・返答部116が、その内容を表示するための、HTMLで記載されたファイルを、Webブラウザ実行部111に返すことで実現できる。   The display of the screen 205 by the Web browser execution unit 111 can be realized by the request reception / response unit 116 returning a file described in HTML for displaying the contents to the Web browser execution unit 111.

そして、起動処理が終了し、プログラムが利用可能になったことが、実行管理部117から伝えられると、要求受付・返答部116は、Webブラウザ実行部111が表示している画面を、プログラムAが提供するWebサーバのURLにて特定される画面に、リダイレクトする旨の返答を、Webブラウザ実行部111に返す。   Then, when the execution management unit 117 informs that the activation process is completed and the program is available, the request reception / reply unit 116 displays the screen displayed by the Web browser execution unit 111 as the program A. A response to redirect to the screen specified by the URL of the Web server provided by the server is returned to the Web browser execution unit 111.

要求受付・返答部116がWebブラウザ実行部111にリダイレクトする旨の返答を提供することは、画面202から画面203への遷移と同様、要求受付・返答部116が、metaタグでrefresh指定をすることなどで実現できる。   The request acceptance / response unit 116 provides a response indicating that the request is to be redirected to the Web browser execution unit 111. Similarly to the transition from the screen 202 to the screen 203, the request reception / response unit 116 specifies refresh with a meta tag. This can be achieved.

なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、Webブラウザ実行部111が、起動を依頼されたプログラムの状態に応じて、上記のような画面遷移を行えばよい。   The communication between the Web browser execution unit 111 and the virtual machine 112 is realized by a plug-in to the Web browser execution unit 111 or the virtual browser 112 is included inside the Web browser execution unit 111. In such a case, the web browser execution unit 111 may perform the screen transition as described above according to the state of the program requested to start.

これにより、Webブラウザ実行部111は、画面206を表示する。   Thereby, the Web browser execution unit 111 displays the screen 206.

画面206は、仮想マシン112内で動作するプログラムAがWebサーバとして動作することによって表示される。以上により、オフラインでのWebアプリケーションの実行が可能となる。   The screen 206 is displayed when the program A operating in the virtual machine 112 operates as a Web server. As described above, the offline Web application can be executed.

Webアプリケーションの種類によっては、Webサーバ101が持つ情報と、仮想マシン112内で動作するプログラムAが持つ情報とを、同期させる必要がある。   Depending on the type of Web application, it is necessary to synchronize the information held by the Web server 101 and the information held by the program A operating in the virtual machine 112.

その場合は、情報を同期のための機能を、プログラムAが持ち、プログラムAを実行する実行部119が、ネットワーク接続が可能な際にWebサーバ101と通信し、情報の同期を行う。あるいは、特許文献2に記載の方法が用いられてもよい。   In this case, the program A has a function for synchronizing information, and the execution unit 119 that executes the program A communicates with the Web server 101 to synchronize information when the network connection is possible. Alternatively, the method described in Patent Document 2 may be used.

特許文献2に記載の技術では、層構造を持ったディレクトリが利用され、ある時点以降に変更があったファイルだけが別の層に置かれる。そして、同期時には、サーバとクライアントのうち、新しい版のプログラムを有している方から、古い版のプログラムを有している方に、変更があったファイルを送ることで、データの同期が行われる。   In the technique described in Patent Document 2, a directory having a layer structure is used, and only files that have changed since a certain point are placed in another layer. At the time of synchronization, data synchronization is performed by sending the changed file from the server and client having the new version of the program to the one having the old version of the program. Is called.

オフラインでのWebアプリケーションの利用が終了すると(画面207参照)、ローカルで動作していたWebサーバ(プログラムA)を停止させる必要がある。   When the use of the offline web application ends (see screen 207), it is necessary to stop the local web server (program A).

このために、画面207に「ローカルサーバを停止します」といった内容のリンクが付加される。   For this purpose, a link such as “Stop local server” is added to the screen 207.

ユーザが、Webブラウザ実行部111を用いて、画面207内のリンクをクリックすると、要求受付・返答部116に、そのWebサーバを実現しているプログラムAの停止が要求される。   When the user clicks a link in the screen 207 using the Web browser execution unit 111, the request reception / reply unit 116 is requested to stop the program A that realizes the Web server.

この処理を実現するために、このリンクを、要求受付・返答部116で動作しているhttpサーバへのリンクとする。   In order to realize this processing, this link is a link to the http server operating in the request receiving / replying unit 116.

要求受付・返答部116は、このリンクへのアクセスがあった際、要求元のWebページのRefererを参照する。   When receiving the link, the request receiving / replying unit 116 refers to the Referer of the requesting Web page.

Referer内にはWebサーバのポートが記述されているため、要求受付・返答部116は、このポートを参照することで、どのプログラムからの停止要求かを判定することができる。   Since the referrer describes the port of the Web server, the request reception / reply section 116 can determine which program the stop request is by referring to this port.

要求受付・返答部116は、停止の要求を受け付けると、実行管理部117に、要求のあったプログラムの停止を依頼する。実行管理部117は、その依頼に基づいて、要求のあったプログラムを実行部119が実行することを停止する。   When receiving a stop request, the request reception / reply unit 116 requests the execution management unit 117 to stop the requested program. Based on the request, the execution management unit 117 stops the execution unit 119 from executing the requested program.

なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、直接、どのプログラムからの停止要求かを知ることができる。   The communication between the Web browser execution unit 111 and the virtual machine 112 is realized by a plug-in to the Web browser execution unit 111 or the virtual browser 112 is included inside the Web browser execution unit 111. If so, it is possible to know directly from which program the stop request is.

以上では、すでにオフライン化済みのプログラムを更新する方法については触れなかったが、オフライン化済みのプログラムの更新を行うには、以下の方法が考えられる。   The method for updating a program that has already been taken offline has not been described above, but the following method can be considered for updating a program that has already been taken offline.

まず、第1の方法は、画面201で、オフライン化のリンク(あるいは同様の別の名前のリンク)がクリックされた際に、プログラム管理部115が、プログラム配信部102に対し、現在のプログラムの版を尋ね、現在のプログラムの版が既にダウンロード・インストール済みのプログラムの版よりも新しければ、現在の版のプログラムをダウンロード・インストールする。これにより、プログラムの更新が行われる。   First, in the first method, when an offline link (or a link with a different name) is clicked on the screen 201, the program management unit 115 instructs the program distribution unit 102 of the current program. Ask for the version, and if the version of the current program is newer than the version of the program already downloaded and installed, download and install the current version of the program. Thereby, the program is updated.

また、別の方法は、画面205で、オフラインでプログラムを実行しようとした際、もし、ネットワーク接続が可能であれば、実行管理部117がプログラムの実行を開始する前に、プログラム管理部115が、プログラム配信部102に対し、現在のプログラムの版を尋ね、その版が既にダウンロード・インストール済みのプログラムの版よりも新しければ、現在の版のプログラムをダウンロード・インストールする。これにより、プログラムの更新が行われ、更新されたプログラムが実行される。   Another method is that when the program is to be executed offline on the screen 205, if the network connection is possible, the program management unit 115 starts before the execution management unit 117 starts executing the program. The program distribution unit 102 is asked for the version of the current program, and if the version is newer than the version of the program that has already been downloaded and installed, the current version of the program is downloaded and installed. Thereby, the program is updated, and the updated program is executed.

さらに別の方法として、プログラムの更新機能を、プログラム内部に作りこむことも考えられる。   As another method, a program update function may be built in the program.

この場合、オフラインで実行中のプログラムが、もしネットワーク接続が可能であれば、自身で新しい版の存在を確認し、自らを更新する。   In this case, if the program being executed offline can connect to the network, it checks the existence of a new version by itself and updates itself.

次に、Webブラウザ実行部111のユーザインタフェースの制限をなくす場合について説明する。以降、このアプリケーション(プログラム)を「非ブラウザアプリケーション」と呼ぶ。なお、図1では、非ブラウザアプリケーションは、プログラムBとして表されている。   Next, a case where the restriction on the user interface of the Web browser execution unit 111 is removed will be described. Hereinafter, this application (program) is referred to as a “non-browser application”. In FIG. 1, the non-browser application is represented as program B.

この場合の動作も、プログラムAをオフライン化する場合に類似している。   The operation in this case is similar to the case where the program A is made offline.

図3は、非ブラウザアプリケーションをオフライン化する際のWebブラウザ実行部111の画面遷移を説明するための説明図である。   FIG. 3 is an explanatory diagram for explaining the screen transition of the Web browser execution unit 111 when the non-browser application is taken offline.

まず、画面301は、オンライン時に、Webサーバ101によってWebブラウザ実行部111に表示されるWebページの画面である。   First, the screen 301 is a screen of a web page displayed on the web browser execution unit 111 by the web server 101 when online.

Webサーバ101は、画面301内に、非ブラウザアプリケーションのそれぞれに対応する複数のリンクを用意する。ユーザが、Webブラウザ実行部111を使って、画面301内のいずれかのリンクをクリックすると、図2の画面201においてリンクがクリックされた場合と同様、Webブラウザ実行部111は、要求受付・返答部116に、要求を送る。なお、この要求は、入手指示と実行指示とを兼ねる。   The Web server 101 prepares a plurality of links corresponding to each non-browser application in the screen 301. When the user clicks on any link in the screen 301 using the Web browser execution unit 111, the Web browser execution unit 111 receives and responds to the request, as in the case where the link is clicked on the screen 201 in FIG. The request is sent to the unit 116. This request also serves as an acquisition instruction and an execution instruction.

要求受付・返答部116は、この要求を受け取ると、クリックされたリンクに対応するプログラムのダウンロードとインストールを、プログラム管理部115に実行させる。ダウンロード・インストールの手順は、プログラムAをオフライン化する際と同様である。   When receiving the request, the request reception / reply unit 116 causes the program management unit 115 to download and install the program corresponding to the clicked link. The procedure for download / installation is the same as that for taking program A offline.

ダウンロード・インストール中は、Webブラウザ実行部111に「お待ち下さい」のような画面(画面302参照)が表示される。この手順も、プログラムAをオフライン化する際と同様である。   During the download and installation, a screen like “Please wait” (see screen 302) is displayed on the Web browser execution unit 111. This procedure is the same as that when the program A is made offline.

ダウンロード・インストールが終了すると、要求受付・返答部116は、実行管理部117に対し、そのプログラムの実行を要求する。   When the download / installation is completed, the request receiving / replying unit 116 requests the execution managing unit 117 to execute the program.

実行管理部117は、その要求を受け付けると、実行部119に、そのプログラムの実行を開始させ、仮想マシン112上に特定サーバを生成する。このとき、入出力部120は、画面305を表示する。   When the execution management unit 117 receives the request, the execution management unit 117 causes the execution unit 119 to start executing the program, and generates a specific server on the virtual machine 112. At this time, the input / output unit 120 displays a screen 305.

入出力部120は、画面305を表示している間に、ユーザからの所定の要求(例えば、計算の依頼要求など)を受け付けると、その要求を、実行部119、すなわち、仮想マシン112上の特定サーバに送信し、その後、特定サーバから、その要求に応じた実行結果を受信し表示する。   When the input / output unit 120 receives a predetermined request (for example, a request for calculation) from the user while the screen 305 is displayed, the input / output unit 120 sends the request to the execution unit 119, that is, the virtual machine 112. It transmits to the specific server, and then receives and displays the execution result according to the request from the specific server.

ここで、プログラムB(非ブラウザアプリケーション)を実行している実行部119、つまり、仮想マシン112上の特定サーバが、入出力部120に、画面305を表示させる方法はいくつか考えられる。   Here, there are several methods by which the execution unit 119 executing the program B (non-browser application), that is, the specific server on the virtual machine 112 causes the input / output unit 120 to display the screen 305.

第1の方法は、クライアント110内の入出力部120で、X Window Systemのサーバ(Xサーバ)が動作し、Xサーバが仮想マシン112内で動作するプログラムBとXプロトコルで通信することにより、入出力部120に、画面305を表示する方法である。   In the first method, an input / output unit 120 in the client 110 operates an X Window System server (X server), and the X server communicates with the program B operating in the virtual machine 112 using the X protocol. In this method, a screen 305 is displayed on the input / output unit 120.

同様の手法として、VNC(Virtual Network Computing)(登録商標)やMicrosoft(登録商標) Windows(登録商標)のRemote Desktop Protocolなど、他の画面制御プロトコルを利用する方法も考えられる。   As a similar method, a method using other screen control protocols such as VNC (Virtual Network Computing) (registered trademark) or Microsoft (registered trademark) Windows (registered trademark) Remote Desktop Protocol may be considered.

この場合、Xサーバ、あるいは、他のプロトコルでXサーバに相当するもの(入出力部120)が、Webブラウザ実行部111に組み込まれてもよい。この場合、起動するプログラムの画面をWebブラウザ実行部111のウインドウ内で表示することができる。   In this case, an X server or another protocol equivalent to the X server (input / output unit 120) may be incorporated in the Web browser execution unit 111. In this case, the screen of the program to be started can be displayed in the window of the Web browser execution unit 111.

また、別の方法としては、仮想マシン112自身が提供する画面内に、画面305を表示する方法も考えられる。   Another possible method is to display the screen 305 in the screen provided by the virtual machine 112 itself.

ここで、仮想マシン112自身が提供する画面とは、仮想マシン112が、グラフィック関係のハードウェアを仮想化して有することで表示される表示である。この場合も、画面をWebブラウザ実行部111のウインドウ内で表示することも考えられる。   Here, the screen provided by the virtual machine 112 itself is a display that is displayed when the virtual machine 112 has virtual hardware related to graphics. Also in this case, it is conceivable to display the screen within the window of the Web browser execution unit 111.

このように、Webブラウザ実行部111を介さず、プログラムBが直接画面描画を行えるようにできるため、Webブラウザ実行部111のユーザインタフェースの制限をなくすことができる。   As described above, since the program B can directly perform screen drawing without using the web browser execution unit 111, the user interface restriction of the web browser execution unit 111 can be eliminated.

プログラムBの起動が開始すると、Webブラウザ実行部111の画面は、画面302から画面303に遷移する。この実現方法は、プログラムAをオフライン化する際の画面202から画面203への遷移と同様である。   When the program B starts to be started, the screen of the web browser execution unit 111 changes from the screen 302 to the screen 303. This realization method is the same as the transition from the screen 202 to the screen 203 when the program A is made offline.

さらに、プログラムAをオフライン化する際と同様、プログラムBの起動を行うためのURLをブックマークすることをユーザに促す画面が、Webブラウザ実行部111に表示される(画面304参照)。   Further, a screen prompting the user to bookmark the URL for starting the program B is displayed on the Web browser execution unit 111 (see screen 304), as in the case of taking the program A offline.

プログラムBの終了は、プログラムB自身が提供する画面(画面305)、例えば、入出力部120が表示する画面を用いて行われる。   The program B is terminated using a screen (screen 305) provided by the program B itself, for example, a screen displayed by the input / output unit 120.

プログラムBが終了すると、終了を示す通知が、プログラム実行部114(具体的には、実行部119)から実行管理部117に送られる。この通知により、実行管理部117は、プログラムBの実行状態を把握できる。   When the program B ends, a notification indicating the end is sent from the program execution unit 114 (specifically, the execution unit 119) to the execution management unit 117. By this notification, the execution management unit 117 can grasp the execution state of the program B.

実行管理部117が、プログラムの終了を検知する方法は、実行管理部117の実装に依存するが、最も簡単には、定期的に、実行中のプログラムのプロセスの状態を監視すればよい。   The method by which the execution management unit 117 detects the end of the program depends on the implementation of the execution management unit 117, but the simplest is to periodically monitor the process status of the program being executed.

次に、非ブラウザアプリケーションをオフラインで利用する場合について説明する。   Next, a case where a non-browser application is used offline will be described.

これも、オフライン化したプログラムAを利用する場合と同様、ユーザが、Webブラウザ実行部111を使って、画面304でブックマークしたURLにアクセスする。   Similarly to the case of using the offline program A, the user accesses the URL bookmarked on the screen 304 using the Web browser execution unit 111.

この操作により、要求受付・返答部116は、実行管理部117に、登録されたプログラムBの起動を依頼する。   By this operation, the request receiving / replying unit 116 requests the execution managing unit 117 to start the registered program B.

実行管理部117は、プログラムBの実行を開始する。   The execution management unit 117 starts executing the program B.

Webブラウザ実行部111は、プログラムBが起動するまでは、画面306のように、「ただいま起動中です」というような画面を表示し、起動が完了した時点で、表示画面を、画面307のような「プログラムを起動しました」というような画面に遷移する。   Until the program B is started, the Web browser execution unit 111 displays a screen such as “currently starting” like the screen 306, and when the startup is completed, the display screen is displayed as a screen 307. The screen transitions to a screen like “The program has started”.

以上の動作は、オフライン化したプログラムAを利用する場合と同様である。   The above operation is the same as that when the offline program A is used.

プログラムBが実行部119で起動され、仮想マシン112上で特定サーバが起動すると、入出力部120は、画面308を表示する。この場合も、プログラムBの実行が終了すると、終了を示す通知が、実行部119(仮想マシン112上の特定サーバ)から実行管理部117に送られる。   When the program B is activated by the execution unit 119 and the specific server is activated on the virtual machine 112, the input / output unit 120 displays a screen 308. Also in this case, when the execution of the program B ends, a notification indicating the end is sent from the execution unit 119 (a specific server on the virtual machine 112) to the execution management unit 117.

さらに、ダウンロード・インストールしたプログラムBの更新についても、オフライン化したプログラムAの場合と同様である。   Further, the update of the downloaded and installed program B is the same as in the case of the offline program A.

また、仮想マシン112上で実行しているプログラムに、何らかのトラブルが起こったときのため、ユーザが、プログラムの停止・再起動・起動や、更新および削除、さらに仮想マシン112の再起動を直接行うためのインタフェースを用意することも考えられる。   Further, when some trouble occurs in the program running on the virtual machine 112, the user directly stops, restarts, starts, updates and deletes the program, and further restarts the virtual machine 112. It is possible to prepare an interface for this purpose.

この場合、Webブラウザ実行部111が、ユーザからの指示に従って、要求受付・返答部116のhttpサーバ上の管理用の特定のURLにアクセスする。   In this case, the Web browser execution unit 111 accesses a specific URL for management on the http server of the request reception / reply unit 116 in accordance with an instruction from the user.

図4は、要求受付・返答部116のhttpサーバ上の管理用の特定のURLにアクセスされた際に表示される画面例を示した説明図である。   FIG. 4 is an explanatory diagram showing an example of a screen displayed when a specific URL for management on the http server of the request reception / response unit 116 is accessed.

なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、Webブラウザ実行部111自身に組込みの特定のメニューから、図4に示した画面が表示される。   The communication between the Web browser execution unit 111 and the virtual machine 112 is realized by a plug-in to the Web browser execution unit 111 or the virtual browser 112 is included inside the Web browser execution unit 111. If so, the screen shown in FIG. 4 is displayed from a specific menu built in the Web browser execution unit 111 itself.

図4に示した画面を通じて、ユーザは、プログラムの状態の確認や、停止・再起動・起動や更新および削除、さらに仮想マシンの再起動を直接行う。   Through the screen shown in FIG. 4, the user directly checks the status of the program, stops, restarts, starts up, updates and deletes, and directly restarts the virtual machine.

プログラムの停止・再起動・起動が要求された場合は、要求受付・返答部116は、実行管理部117に、その要求を行う。   When a program stop / restart / start is requested, the request reception / response unit 116 makes a request to the execution management unit 117.

プログラムの更新および削除が要求された場合は、要求受付・返答部116は、プログラム管理部115に、その要求を行う。   When update and deletion of a program are requested, the request reception / reply unit 116 makes a request to the program management unit 115.

仮想マシン112の再起動が要求された場合は、要求受付・返答部116は、仮想マシン112の再起動を行うコマンドを実行することで、再起動を行う。   When the restart of the virtual machine 112 is requested, the request reception / reply unit 116 restarts the virtual machine 112 by executing a command for restarting the virtual machine 112.

次に、動作の概要を説明する。   Next, an outline of the operation will be described.

Webブラウザ実行部111が、Webサーバ101が提供するWebページを表示し、そのページ上のリンクをクリックすることで、仮想マシン112上で動作する管理モジュール113に、プログラムを入手する旨の要求が送られる。   When the web browser execution unit 111 displays a web page provided by the web server 101 and clicks a link on the page, the management module 113 operating on the virtual machine 112 is requested to obtain the program. Sent.

管理モジュール113は、プログラムを入手する旨の要求を受けると、プログラム配信部102から、プログラムをダウンロードし、仮想マシン112内にインストールする。   When receiving a request to obtain a program, the management module 113 downloads the program from the program distribution unit 102 and installs it in the virtual machine 112.

そして、Webブラウザ実行部111が、管理モジュール113に、プログラムを実行する旨の要求を送ると、仮想マシン112内で、ダウンロードしたプログラムが実行される。   Then, when the Web browser execution unit 111 sends a request to the management module 113 to execute the program, the downloaded program is executed in the virtual machine 112.

ダウンロードするプログラムとして、サーバ100で動作するWebサーバプログラムと同じ機能を提供するプログラムを用いることで、Webアプリケーションをオフラインで実行することができる。   By using a program that provides the same function as the Web server program running on the server 100 as the program to be downloaded, the Web application can be executed offline.

また、ダウンロードするプログラムとして、Webブラウザ実行部111を介さずにユーザと直接対話する処理を実行させるプログラムを用いることで、Webブラウザのユーザインタフェースの制限を無くすことができる。   Further, by using a program that executes a process of directly interacting with a user without using the Web browser execution unit 111 as a program to be downloaded, it is possible to eliminate the restriction on the user interface of the Web browser.

次に、図5から図8のシーケンス図を参照して本実施の形態の全体の動作について説明する。   Next, the overall operation of the present embodiment will be described with reference to the sequence diagrams of FIGS.

図5は、Webアプリケーションをオフライン化する際の動作を示したシーケンス図である。以下、Webアプリケーションをオフライン化する際の動作を、図5を用いて説明する。   FIG. 5 is a sequence diagram showing an operation when the Web application is taken offline. Hereinafter, the operation when the Web application is taken offline will be described with reference to FIG.

まず、ステップ501では、通常のWebアプリケーションと同様、Webブラウザ実行部111は、Webサーバ101にアクセスすることで、Webアプリケーションを利用する。   First, in step 501, the Web browser execution unit 111 uses the Web application by accessing the Web server 101 as in the case of a normal Web application.

次に、図2の画面201内の「オフライン化」等の名前のリンクをクリックすることで、Webブラウザ実行部111は、要求受付・返答部116に対し、オフライン化を要求する(ステップ502)。   Next, by clicking a link with a name such as “offline” in the screen 201 of FIG. 2, the Web browser execution unit 111 requests the request reception / reply unit 116 to go offline (step 502). .

要求受付・返答部116は、オフライン化の要求を受け付けると、「現在オフライン化を行っています」といった内容の返答を、Webブラウザ実行部111に対して返す(ステップ503)。   When the request acceptance / reply section 116 accepts the request to go offline, the request acceptance / reply section 116 returns a response of “currently going offline” to the Web browser execution section 111 (step 503).

続いて、要求受付・返答部116は、プログラム管理部115に対して、オフライン化が要求されたプログラムのダウンロード・インストールの要求を行う(ステップ504)。   Subsequently, the request receiving / replying unit 116 requests the program managing unit 115 to download / install the program requested to be offline (step 504).

プログラム管理部115は、ダウンロード・インストールの要求を受け付けると、サーバ100のプログラム配信部102に対して、ダウンロード要求を行い、オフライン化が要求されたプログラムのダウンロードを行う(ステップ505)。   When receiving the download / installation request, the program management unit 115 makes a download request to the program distribution unit 102 of the server 100 and downloads the program requested to be offline (step 505).

続いて、プログラム管理部115は、ダウンロードしたプログラムを、プログラム実行部114にインストールし(ステップ506)、終了通知を、要求受付・返答部116に送る(ステップ507)。   Subsequently, the program management unit 115 installs the downloaded program in the program execution unit 114 (step 506), and sends an end notification to the request reception / reply unit 116 (step 507).

要求受付・返答部116は、終了通知を受け取ると、まず、ダウンロードしたプログラムを起動・終了するためのインタフェース(URLなど)を設定する(ステップ508)。   Upon receiving the end notification, the request reception / reply section 116 first sets an interface (such as a URL) for starting and ending the downloaded program (step 508).

次に、要求受付・返答部116は、Webブラウザ実行部111に対して「オフライン化が終了しました」といった内容の返答を返す。同時に、要求受付・返答部116は、Webブラウザ実行部111から直接ステップ508で設定したインタフェースにアクセスして、プログラムを起動できるように、URLをブックマークするなどの設定を行う(ステップ509)。   Next, the request reception / reply section 116 returns a reply with the content “offline has been completed” to the Web browser execution section 111. At the same time, the request reception / reply unit 116 directly accesses the interface set in step 508 from the web browser execution unit 111 and performs settings such as bookmarking the URL so that the program can be started (step 509).

図6は、オフライン化したWebアプリケーションを利用する際の動作を示したシーケンス図である。以下、オフライン化したWebアプリケーションを利用する際の動作を、図6を用いて説明する。   FIG. 6 is a sequence diagram showing an operation when the offline Web application is used. Hereinafter, the operation when using the offline Web application will be described with reference to FIG.

まず、ステップ601で、ブックマークからURLがアクセスされる等、先に設定したインタフェースから、プログラムの起動要求が行われる。   First, in step 601, a program activation request is made from the previously set interface, for example, a URL is accessed from a bookmark.

プログラムの起動要求が行われると、要求受付・返答部116に対し、実行要求が行われる(ステップ602)。   When a program activation request is made, an execution request is made to the request reception / reply section 116 (step 602).

要求受付・返答部116は、Webブラウザ実行部111に対し、「現在起動中です」といった内容の返答を返す(ステップ603)。   The request reception / reply section 116 returns a reply with a content such as “currently running” to the Web browser execution section 111 (step 603).

続いて、要求受付・返答部116は、実行管理部117に対し、アクセスされたURLに対応するプログラムの実行を要求する(ステップ604)。   Subsequently, the request reception / response unit 116 requests the execution management unit 117 to execute the program corresponding to the accessed URL (step 604).

実行管理部117は、プログラムの実行の要求を受け付けると、プログラム実行部114において、そのプログラムを実行する(ステップ605)。   When the execution management unit 117 receives a request to execute a program, the program execution unit 114 executes the program (step 605).

プログラムの実行が開始すると、実行管理部117は、起動が終了したという通知を、要求受付・返答部116に返す(ステップ606)。   When the execution of the program starts, the execution management unit 117 returns a notification that the activation has ended to the request reception / reply unit 116 (step 606).

要求受付・返答部116は、起動が終了したという通知を受け付けると、Webブラウザ実行部111に、起動が終了したという返答を返す(ステップ607)。   When the request reception / reply unit 116 receives the notification that the activation has ended, the request reception / reply unit 116 returns a response that the activation has ended to the Web browser execution unit 111 (step 607).

Webブラウザ実行部111は、その返答を受け、実行が開始されたプログラムにて提供されるWebサーバにアクセスし(ステップ608)、Webアプリケーションのオフラインでの利用を開始する(ステップ609)。   Upon receiving the response, the Web browser execution unit 111 accesses the Web server provided by the program that has been started (Step 608), and starts using the Web application offline (Step 609).

例えば、Webアプリケーション中の「ローカルサーバを停止します」といった内容のリンクがクリックされるなどして、Webアプリケーションのオフラインでの利用が終了すると、要求受付・返答部116に、プログラムの終了要求が送られる(ステップ610)。   For example, when the use of the web application is terminated by clicking on a link with content such as “stop local server” in the web application, a request for termination of the program is sent to the request reception / reply section 116. Sent (step 610).

要求受付・返答部116は、プログラムの終了要求を受け付けると、実行管理部117に停止要求を行う(ステップ611)。   When the request acceptance / response unit 116 accepts the program termination request, it makes a stop request to the execution management unit 117 (step 611).

実行管理部117は、停止要求を受け付けると、プログラム実行部114において、終了が要求されたプログラムを停止する(ステップ612)。   When the execution management unit 117 receives the stop request, the program execution unit 114 stops the program requested to be terminated (step 612).

図7は、非ブラウザアプリケーションを実行する際の動作を示したシーケンス図である。以下、非ブラウザアプリケーションを実行する際の動作を、図7を用いて説明する。   FIG. 7 is a sequence diagram illustrating an operation when a non-browser application is executed. Hereinafter, the operation when executing the non-browser application will be described with reference to FIG.

ステップ701では、Webブラウザ実行部111は、Webサーバ101にアクセスすることで、非ブラウザアプリケーションを実行するためのリンクを表示する。   In step 701, the web browser execution unit 111 displays a link for executing a non-browser application by accessing the web server 101.

そのリンクがクリックされることで、Webブラウザ実行部111は、要求受付・返答部116に対して、そのリンクに対応するプログラム(以下「対応プログラム」と称する)のダウンロード・インストール、さらに、その実行を要求する(ステップ702)。   When the link is clicked, the Web browser execution unit 111 downloads and installs a program corresponding to the link (hereinafter referred to as “corresponding program”) to the request reception / reply unit 116, and further executes the execution. Is requested (step 702).

要求受付・返答部116は、それらの要求を受け付けると、「処理中です。お待ち下さい」といった内容の返答を、Webブラウザ実行部111に返す(ステップ703)。   When receiving the request, the request receiving / replying unit 116 returns a response of “processing in progress. Please wait” to the Web browser executing unit 111 (step 703).

続いて、要求受付・返答部116は、プログラム管理部115に対し、対応プログラムのダウンロード・インストールの要求を行う(ステップ704)。   Subsequently, the request reception / reply section 116 requests the program management section 115 to download and install the corresponding program (step 704).

プログラム管理部115は、その要求を受け付けると、サーバ100のプログラム配信部102に対して、ダウンロード要求を行い、対応プログラムのダウンロードを行う(ステップ705)。   Upon receiving the request, the program management unit 115 makes a download request to the program distribution unit 102 of the server 100 and downloads the corresponding program (step 705).

続いて、プログラム管理部115は、ダウンロードした対応プログラムをインストールし(ステップ706)、終了通知を、要求受付・返答部116に送る(ステップ707)。   Subsequently, the program management unit 115 installs the downloaded corresponding program (step 706), and sends an end notification to the request reception / reply unit 116 (step 707).

次に、要求受付・返答部116は、終了通知を受け付けると、実行管理部117に対し、対応プログラムの実行要求を行う(ステップ708)。   Next, when accepting the end notification, the request accepting / replying unit 116 makes an execution request for the corresponding program to the execution managing unit 117 (step 708).

実行管理部117は、対応プログラムの実行要求を受け付けると、プログラム実行部114において、対応プログラムを実行する(ステップ709)。   When the execution management unit 117 receives an execution request for the corresponding program, the program execution unit 114 executes the corresponding program (step 709).

実行が開始されると、対応プログラムを実行するプログラム実行部114は、対応プログラム自身が管理する画面を表示する(ステップ710)。   When the execution is started, the program execution unit 114 that executes the corresponding program displays a screen managed by the corresponding program itself (step 710).

続いて、実行管理部117は、起動が終了したという通知を、要求受付・返答部116に返す(ステップ711)。   Subsequently, the execution management unit 117 returns a notification that activation has ended to the request reception / reply unit 116 (step 711).

要求受付・返答部116は、起動が終了したという通知を受け取ると、まず、ダウンロードしたプログラムを起動・終了するためのインタフェース(URLなど)を設定する(ステップ712)。   Upon receiving the notification that the activation has been completed, the request reception / response unit 116 first sets an interface (such as a URL) for activating / terminating the downloaded program (step 712).

次に、要求受付・返答部116は、Webブラウザ実行部111に対して「プログラムを起動しました」といった内容の返答を返す。同時に、要求受付・返答部116は、Webブラウザ実行部111がステップ712で設定されたインタフェースに直接アクセスしてプログラムを起動できるように、URLをブックマークするなどの設定を行う(ステップ713)。   Next, the request reception / reply section 116 returns a reply with a content such as “Program started” to the Web browser execution section 111. At the same time, the request receiving / replying unit 116 performs setting such as bookmarking the URL so that the Web browser execution unit 111 can directly access the interface set in Step 712 and start the program (Step 713).

プログラムの利用が終了し、ユーザが終了処理を行うと(ステップ714)、プログラム実行部114が、それを検知し、プログラムの終了を、実行管理部117に通知する(ステップ715)。   When the use of the program ends and the user performs the end process (step 714), the program execution unit 114 detects this and notifies the execution management unit 117 of the end of the program (step 715).

図8は、オフラインで非ブラウザアプリケーションを実行する際の動作を説明するためのシーケンス図である。以下、オフラインで非ブラウザアプリケーションを実行する際の動作を、図8を用いて説明する。   FIG. 8 is a sequence diagram for explaining an operation when a non-browser application is executed offline. Hereinafter, the operation when the non-browser application is executed offline will be described with reference to FIG.

まず、ステップ801で、ブックマークからURLをアクセスする等、先に設定したインタフェースから、プログラムの起動要求が生成される。   First, in step 801, a program activation request is generated from the previously set interface, such as accessing a URL from a bookmark.

プログラムの起動要求が生成されると、要求受付・返答部116に対し、実行要求が送信される(ステップ802)。   When a program activation request is generated, an execution request is transmitted to the request reception / reply section 116 (step 802).

要求受付・返答部116は、実行要求を受け付けると、Webブラウザ実行部111に対し、「現在起動中です」といった内容の返答を返す(ステップ803)。   When receiving the execution request, the request receiving / replying unit 116 returns a response of “currently activated” to the Web browser executing unit 111 (step 803).

続いて、要求受付・返答部116は、実行管理部117に対し、起動が要求されたプログラム(以下「要求プログラム」と称する)の実行を要求する(ステップ804)。   Subsequently, the request reception / reply section 116 requests the execution management section 117 to execute a program requested to be activated (hereinafter referred to as “request program”) (step 804).

実行管理部117は、その要求に応じて、プログラム実行部114において、要求プログラムを実行する(ステップ805)。   In response to the request, the execution management unit 117 executes the requested program in the program execution unit 114 (step 805).

要求プログラムの実行が開始されると、要求プログラムは、自身が管理する画面を表示する(ステップ806)。   When the execution of the requested program is started, the requested program displays a screen managed by itself (step 806).

また、要求プログラムの実行が開始されると、実行管理部117は、起動が終了したという通知を、要求受付・返答部116に返す(ステップ807)。   When the execution of the request program is started, the execution management unit 117 returns a notification that the activation has been completed to the request reception / reply unit 116 (step 807).

要求受付・返答部116は、その通知を受け付けると、Webブラウザ実行部111に、起動が終了したという返答を返す(ステップ808)。   When receiving the notification, the request reception / response unit 116 returns a response indicating that the activation has been completed to the Web browser execution unit 111 (step 808).

プログラムの利用が終了し、ユーザが終了処理を行うと(ステップ809)、プログラム実行部114が、それを検知し、プログラムの終了を、実行管理部117に通知する(ステップ810)。   When the use of the program ends and the user performs the end process (step 809), the program execution unit 114 detects this and notifies the execution management unit 117 of the end of the program (step 810).

次に、本実施の形態の効果を説明する。   Next, the effect of this embodiment will be described.

第1の効果は、Webアプリケーションのサーバ側で動作するプログラムが、クライアントにダウンロードされ、オフライン時には、クライアントが、そのプログラムに従ってクライアント上で動作するWebサーバにアクセスすることで、Webアプリケーションをオフラインで実行できることである。   The first effect is that a program that runs on the server side of the Web application is downloaded to the client, and when the client is offline, the client accesses the Web server that runs on the client according to the program, thereby executing the Web application offline. It can be done.

ここで、サーバ側で動作するプログラムをダウンロードする際には、インストールに相当するユーザの作業を不要にでき、また、クライアントのオペレーティングシステムの種類による制限がなく、セキュリティ上の危険性も無く、かつ、既存のWebアプリケーションを大幅に改変する必要もなくなる。   Here, when downloading a program that runs on the server side, the user's work corresponding to installation can be made unnecessary, there is no restriction due to the type of client operating system, there is no security risk, and No need to drastically modify existing web applications.

その理由は、クライアント側で仮想マシンを動作させ、ダウンロードしたプログラムを仮想マシン上で実行するためである。   This is because the virtual machine is operated on the client side and the downloaded program is executed on the virtual machine.

これにより、ダウンロードしたプログラムを自動的にインストールするように仮想マシンにおける実行環境を設定することができる。   Thereby, the execution environment in the virtual machine can be set so that the downloaded program is automatically installed.

また、ダウンロードしたプログラムは、仮想マシン上で動作するため、ダウンロードしたプログラムにコンピュータウィルスが組み込まれていても、その影響をクライアント本体側に及ぼすことを防止することが可能になる。   In addition, since the downloaded program operates on the virtual machine, even if a computer virus is incorporated in the downloaded program, it is possible to prevent the influence on the client body side.

また、仮想マシン上で動作するオペレーティングシステムは、クライアントのオペレーティングシステムに依存しないため、サーバからダウンロードするプログラムは、クライアントのオペレーティングシステムに対応しなくてもよい。   Further, since the operating system operating on the virtual machine does not depend on the client operating system, the program downloaded from the server may not correspond to the client operating system.

さらに、既存のWebアプリケーションのサーバ側のオペレーティングシステムと、仮想マシン上で動作するオペレーティングシステムを同じものにすることで、既存のWebアプリケーションのサーバ側で動作するプログラムを、ほとんど変更すること無しに、クライアントの仮想マシン上で動作させることができる。   Furthermore, by making the operating system on the server side of the existing web application the same as the operating system that runs on the virtual machine, the program that runs on the server side of the existing web application is almost unchanged, It can be run on the client's virtual machine.

第2の効果は、HTMLとその拡張(JavaScriptなど)で記述できる範囲に制限された、Webブラウザのユーザインタフェースの制限をなくせることである。   The second effect is that the restriction of the user interface of the Web browser, which is limited to a range that can be described by HTML and its extension (JavaScript, etc.), can be eliminated.

ここで、アプリケーションは、Javaなどの特定の言語ではなく、任意のプログラミング言語を利用できる。   Here, the application can use any programming language instead of a specific language such as Java.

その理由は、クライアント側で仮想マシンを動作させ、ダウンロードしたプログラムを仮想マシン上で実行するためである。これにより、仮想マシン上で動作するプログラムなら、どのような言語で記述しても動作する。   This is because the virtual machine is operated on the client side and the downloaded program is executed on the virtual machine. As a result, any program that runs on the virtual machine can be run in any language.

本実施の形態によれば、クライアント110内の実行動作部121は、実行予定のプログラムが格納されていない記憶領域への書き込みを禁止しながら、仮想マシン112上でサーバ用格納部118aまたは118b内のプログラムを実行して、仮想マシン112上にサーバ100に対応する特定サーバを生成する。   According to the present embodiment, the execution operation unit 121 in the client 110 prohibits writing to a storage area in which a program to be executed is not stored, while in the server storage unit 118a or 118b on the virtual machine 112. The specific server corresponding to the server 100 is generated on the virtual machine 112 by executing the above program.

この特定サーバは、クライアント110内の操作部123から、所定の要求(例えば、計算要求)を受信し、操作部123に、その所定の要求の実行結果を送信する。   The specific server receives a predetermined request (for example, a calculation request) from the operation unit 123 in the client 110 and transmits an execution result of the predetermined request to the operation unit 123.

このため、特定サーバが書き込み(アクセス)できる領域を制限しながら、例えば、Webアプリケーションをオフラインで実行でき、それにより、ユーザの入力に対する応答を高速にし、また、サーバ100の計算負荷およびネットワーク負荷を軽減できるシステムを、セキュリティ上の危険性を低くしながら実現できる。   For this reason, for example, a Web application can be executed offline while limiting the area in which a specific server can write (access), thereby speeding up a response to a user input, and reducing the calculation load and network load of the server 100. A system that can be mitigated can be realized while reducing security risks.

よって、例えば、ダウンロードしたプログラムにコンピュータウィルスが組み込まれていても、その影響をクライアント本体側に及ぼすことを防止することが可能になる。従って、クライアントにおいて、サーバから受け付けたプログラムに対するセキュリティを向上することができる。   Therefore, for example, even if a computer virus is incorporated in the downloaded program, it is possible to prevent the influence on the client body side. Therefore, the security for the program received from the server can be improved at the client.

また、本実施の形態では、管理部122と実行動作部121とは、仮想マシン112に含まれる。   In the present embodiment, the management unit 122 and the execution operation unit 121 are included in the virtual machine 112.

この場合、サーバ100に対応する機能を実現する構成部を、仮想マシン112内にまとめることが可能になる。   In this case, components that realize functions corresponding to the server 100 can be collected in the virtual machine 112.

また、本実施の形態では、特定サーバからOS格納部118cへのアクセスが制限される。この場合、ダウンロードしたプログラムにコンピュータウィルスが組み込まれていても、仮想マシン112のオペレーティングシステムにコンピュータウィルスの影響が及ぶことを防止可能になる。   In this embodiment, access from the specific server to the OS storage unit 118c is restricted. In this case, even if a computer virus is incorporated in the downloaded program, it is possible to prevent the computer virus from affecting the operating system of the virtual machine 112.

また、本実施の形態では、OS格納部118cには、サーバ100格納されているオペレーティングシステムと同じ種類のオペレーティングシステムが格納される。この場合、サーバ100内のプログラムを変更することなく、サーバ用格納部118aまたは118bに格納することが可能になる。   In the present embodiment, the OS storage unit 118c stores the same type of operating system as the operating system stored in the server 100. In this case, the program in the server 100 can be stored in the server storage unit 118a or 118b without changing.

また、本実施の形態では、Webブラウザ実行部111は、Webブラウザを用いることによって、サーバ100に所定の要求を送信し、サーバ100からその所定の要求に応じた実行結果を受信して表示し、また、Webブラウザを用いることによって、特定サーバに所定の要求を送信し、特定サーバからその所定の要求に応じた実行結果を受信して表示する。   In this embodiment, the Web browser execution unit 111 transmits a predetermined request to the server 100 by using the Web browser, and receives and displays an execution result corresponding to the predetermined request from the server 100. Further, by using a Web browser, a predetermined request is transmitted to the specific server, and an execution result corresponding to the predetermined request is received from the specific server and displayed.

この場合、Webブラウザ実行部111を用いることによって、サーバ100と仮想マシン112内の特定サーバとのいずれとも通信することが可能になる。よって、ユーザは、Webブラウザ実行部111を用いることによって、サーバ100と仮想マシン112内の特定サーバとを同じように使うことが可能になる。   In this case, it is possible to communicate with both the server 100 and the specific server in the virtual machine 112 by using the Web browser execution unit 111. Therefore, the user can use the server 100 and the specific server in the virtual machine 112 in the same way by using the Web browser execution unit 111.

また、本実施の形態では、Webブラウザ実行部111は、Webブラウザを用いることによって、サーバ100に所定の要求を送信し、サーバ100からその所定の要求に応じた実行結果を受信して表示する。入出力部120は、仮想マシン112内の特定サーバに所定の要求を送信し、特定サーバからその所定の要求に応じた実行結果を受信して表示する。   In the present embodiment, the Web browser execution unit 111 transmits a predetermined request to the server 100 by using the Web browser, and receives and displays an execution result corresponding to the predetermined request from the server 100. . The input / output unit 120 transmits a predetermined request to a specific server in the virtual machine 112, and receives and displays an execution result corresponding to the predetermined request from the specific server.

この場合、仮想マシン112内の特定サーバは、Webブラウザ実行部111ではなく、入出力部120と通信する。よって、仮想マシン112内の特定サーバからの実行結果を、Webブラウザ実行部111のインターフェースで表示できない形式で記載することも可能になる。   In this case, the specific server in the virtual machine 112 communicates with the input / output unit 120 instead of the web browser execution unit 111. Therefore, the execution result from the specific server in the virtual machine 112 can be described in a format that cannot be displayed on the interface of the Web browser execution unit 111.

(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.

図9を参照すると、本発明の第2の実施の形態は、プログラム制御により動作するサーバコンピュータ900と、プログラム制御により動作するクライアントコンピュータ910と、を含む。   Referring to FIG. 9, the second embodiment of the present invention includes a server computer 900 that operates under program control and a client computer 910 that operates under program control.

サーバコンピュータ900は、Webサーバプログラム901およびプログラム配信プログラム902を搭載している。   The server computer 900 includes a web server program 901 and a program distribution program 902.

例えば、サーバコンピュータ900は、Webサーバプログラム901とプログラム配信プログラム902とが記載された、バードディスク等のコンピュータにて読み取り可能な記録媒体を含む。   For example, the server computer 900 includes a computer-readable recording medium such as a bird disk in which a Web server program 901 and a program distribution program 902 are described.

サーバコンピュータ900は、その記録媒体からWebサーバプログラム901を読み取り実行することによって、図1に示したWebサーバ101として機能する。また、サーバコンピュータ900は、その記録媒体からプログラム配信プログラム902を読み取り実行することによって、図1に示したプログラム配信部102として機能する。   The server computer 900 functions as the Web server 101 shown in FIG. 1 by reading and executing the Web server program 901 from the recording medium. The server computer 900 functions as the program distribution unit 102 shown in FIG. 1 by reading and executing the program distribution program 902 from the recording medium.

クライアントコンピュータ910は、Webブラウザプログラム911および仮想マシンプログラム912を搭載している。   The client computer 910 includes a web browser program 911 and a virtual machine program 912.

例えば、クライアントコンピュータ910は、Webブラウザプログラム911と仮想マシンプログラム912とが記載された、バードディスク等のコンピュータにて読み取り可能な記録媒体を含む。   For example, the client computer 910 includes a computer-readable recording medium such as a bird disk in which a Web browser program 911 and a virtual machine program 912 are described.

クライアントコンピュータ910は、その記録媒体からWebブラウザプログラム911を読み取り実行することによって、図1に示したWebブラウザ実行部111(さらに言えば、操作部113)として機能する。また、クライアントコンピュータ910は、その記録媒体から仮想マシンプログラム912を読み取り実行することによって、図1に示した仮想マシン112および仮想マシン生成部112aとして機能する。   The client computer 910 functions as the Web browser execution unit 111 (more specifically, the operation unit 113) illustrated in FIG. 1 by reading and executing the Web browser program 911 from the recording medium. The client computer 910 functions as the virtual machine 112 and the virtual machine generation unit 112a illustrated in FIG. 1 by reading and executing the virtual machine program 912 from the recording medium.

上記各実施の形態は、Webアプリケーションを用いてきた分野、すなわち、文書編集、スプレッドシート、プレゼンテーションソフトウェア、メールクライアント、さらにEコマースやブログ、SNS(Social Networking Service)、ゲームといった用途に適用できる。また、上記各実施の形態は、企業における業務アプリケーション用途にも適用可能である。   Each of the above-described embodiments can be applied to fields where Web applications have been used, that is, document editing, spreadsheets, presentation software, mail clients, e-commerce, blogs, SNS (Social Networking Service), and games. Each of the above embodiments can also be applied to business application use in a company.

以上、各実施形態を参照して本願発明を説明したが、本願発明は上記各実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to each embodiment, the present invention is not limited to each of the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

この出願は、2008年9月19日に出願された日本出願特願2008−241372を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2008-241372 for which it applied on September 19, 2008, and takes in those the indications of all here.

100 サーバ
101 Webサーバ
102 プログラム配信部
110 クライアント
111 Webブラウザ実行部
112 仮想マシン
112a 仮想マシン生成部
113 管理モジュール
114 プログラム実行部
115 プログラム管理部
116 要求受付・返答部
117 実行管理部
118 格納部
118a、118b サーバ用格納部
118c OS格納部
119 実行部
120 入出力部
121 実行動作部
122 管理部
123 操作部
900 サーバコンピュータ
910 クライアントコンピュータ
DESCRIPTION OF SYMBOLS 100 Server 101 Web server 102 Program delivery part 110 Client 111 Web browser execution part 112 Virtual machine 112a Virtual machine production | generation part 113 Management module 114 Program execution part 115 Program management part 116 Request reception / reply part 117 Execution management part 118 Storage part 118a, 118b server storage unit 118c OS storage unit 119 execution unit 120 input / output unit 121 execution operation unit 122 management unit 123 operation unit 900 server computer 910 client computer

Claims (12)

クライアントから所定の要求を受信した場合にサーバ側プログラムを実行して当該所定の要求に応じた実行結果を当該クライアントに送信するサーバと、通信可能なプログラム入手・実行クライアントであって、
サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成する仮想マシン生成手段と、
前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納する管理手段と、
前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記所定の要求を受信した場合に当該所定の要求に応じた実行結果を当該所定の要求の送信元に送信する特定手段を、当該仮想マシン上に生成する実行動作手段と、
前記特定手段に前記所定の要求を送信し、当該特定手段から前記所定の要求に応じた実行結果を受信して表示する操作手段と、を含むプログラム入手・実行クライアント。
A program acquisition / execution client capable of communicating with a server that executes a server-side program when a predetermined request is received from a client and transmits an execution result corresponding to the predetermined request to the client;
Virtual machine generation means for generating a virtual machine having server storage means and other storage means;
Management means for obtaining the server-side program from the server and storing the server-side program in the server storage means;
Executing a server-side program in the server storage unit on the virtual machine while prohibiting writing to the other storage unit, and executing the predetermined request when the predetermined request is received An execution operation means for generating on the virtual machine a specific means for transmitting the result to the transmission source of the predetermined request;
An operation means for transmitting the predetermined request to the specifying means, and receiving and displaying an execution result corresponding to the predetermined request from the specifying means;
前記管理手段と前記実行動作手段とは、前記仮想マシンに含まれる、請求項1に記載のプログラム入手・実行クライアント。   The program acquisition / execution client according to claim 1, wherein the management unit and the execution operation unit are included in the virtual machine. 前記他の格納手段は、前記仮想マシン用のオペレーティングシステムを格納するOS格納手段を含み、
前記仮想マシンは、前記OS格納手段内のオペレーティングシステムで動作する、請求項1または2に記載のプログラム入手・実行クライアント。
The other storage means includes OS storage means for storing an operating system for the virtual machine,
The program acquisition / execution client according to claim 1, wherein the virtual machine operates with an operating system in the OS storage unit.
前記OS格納手段は、前記サーバに格納されているオペレーティングシステムと同じ種類のオペレーティングシステムを格納する、請求項3に記載のプログラム入手・実行クライアント。   4. The program acquisition / execution client according to claim 3, wherein the OS storage means stores the same type of operating system as the operating system stored in the server. 前記操作手段は、Webブラウザを用いることによって、前記サーバに前記所定の要求を送信し、前記サーバから当該所定の要求に応じた実行結果を受信して表示し、また、前記Webブラウザを用いることによって、前記特定手段に前記所定の要求を送信し、当該特定手段から前記所定の要求に応じた実行結果を受信して表示する、請求項1から4のいずれか1項に記載のプログラム入手・実行クライアント。   The operation means transmits the predetermined request to the server by using a Web browser, receives and displays an execution result corresponding to the predetermined request from the server, and uses the Web browser. 5. The program acquisition / transmission according to claim 1, wherein the predetermined request is transmitted to the specifying unit, and an execution result corresponding to the predetermined request is received and displayed from the specifying unit. Execution client. Webブラウザを用いることによって、前記サーバに前記所定の要求を送信し、前記サーバから当該所定の要求に応じた実行結果を受信する通信手段をさらに含む、請求項1から4のいずれか1項に記載のプログラム入手・実行クライアント。   5. The communication device according to claim 1, further comprising: a communication unit that transmits the predetermined request to the server by using a Web browser and receives an execution result corresponding to the predetermined request from the server. The program acquisition / execution client. クライアントから所定の要求を受信した場合にサーバ側プログラムを実行して当該所定の要求に応じた実行結果を当該クライアントに送信するサーバと、通信可能なプログラム入手・実行クライアントが行うプログラム入手・実行方法であって、
サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成し、
前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納し、
前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記所定の要求を受信した場合に当該所定の要求に応じた実行結果を当該所定の要求の送信元に送信する特定手段を、当該仮想マシン上に生成し、
前記特定手段に前記所定の要求を送信し、当該特定手段から前記所定の要求に応じた実行結果を受信して表示する、プログラム入手・実行方法。
A program acquisition / execution method performed by a server that executes a server-side program and transmits an execution result corresponding to the predetermined request to the client when a predetermined request is received from the client, and a program acquisition / execution client capable of communication Because
Creating a virtual machine having server storage means and other storage means;
Obtaining the server-side program from the server and storing the server-side program in the server storage means;
Executing a server-side program in the server storage unit on the virtual machine while prohibiting writing to the other storage unit, and executing the predetermined request when the predetermined request is received A specific means for transmitting the result to the transmission source of the predetermined request is generated on the virtual machine,
A program acquisition / execution method for transmitting the predetermined request to the specifying unit and receiving and displaying an execution result corresponding to the predetermined request from the specifying unit.
前記他の格納手段は、前記仮想マシン用のオペレーティングシステムを格納するOS格納手段を含み、
前記仮想マシンは、前記OS格納手段内のオペレーティングシステムで動作する、請求項7に記載のプログラム入手・実行方法。
The other storage means includes OS storage means for storing an operating system for the virtual machine,
8. The program acquisition / execution method according to claim 7, wherein the virtual machine operates on an operating system in the OS storage unit.
前記OS格納手段は、前記サーバに格納されているオペレーティングシステムと同じ種類のオペレーティングシステムを格納する、請求項8に記載のプログラム入手・実行方法。   9. The program acquisition / execution method according to claim 8, wherein the OS storage means stores the same type of operating system as the operating system stored in the server. クライアントから所定の要求を受信した場合にサーバ側プログラムを実行して当該所定の要求に応じた実行結果を当該クライアントに送信するサーバと通信可能であり、かつ、Webブラウザが搭載されているコンピュータに、
サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成する仮想マシン生成手順と、
前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納する管理手順と、
前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記Webブラウザから前記所定の要求を受信した場合に当該所定の要求に応じた実行結果を当該Webブラウザに送信する特定手段を、当該仮想マシン上に生成する実行動作手順と、を実行させるためのプログラム。
A computer capable of communicating with a server that executes a server-side program and transmits an execution result corresponding to the predetermined request to the client when a predetermined request is received from the client, and that is equipped with a Web browser. ,
A virtual machine generation procedure for generating a virtual machine having server storage means and other storage means;
A management procedure for obtaining the server-side program from the server and storing the server-side program in the server storage means;
Executing a server-side program in the server storage unit on the virtual machine while prohibiting writing to the other storage unit, and receiving the predetermined request from the Web browser, the predetermined request program for a specific means for the execution result to send to the Web browser to execute an execution operation instructions generated on the virtual machine in accordance with the.
前記他の格納手段は、前記仮想マシン用のオペレーティングシステムを格納するOS格納手段を含み、
前記仮想マシンは、前記OS格納手段内のオペレーティングシステムで動作する、請求項10に記載のプログラム
The other storage means includes OS storage means for storing an operating system for the virtual machine,
The program according to claim 10, wherein the virtual machine operates on an operating system in the OS storage unit.
前記OS格納手段は、前記サーバに格納されているオペレーティングシステムと同じ種類のオペレーティングシステムを格納する、請求項11に記載のプログラムThe program according to claim 11, wherein the OS storage unit stores an operating system of the same type as an operating system stored in the server.
JP2010529688A 2008-09-19 2009-07-28 Program acquisition / execution client, program acquisition / execution method and program Active JP5541160B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010529688A JP5541160B2 (en) 2008-09-19 2009-07-28 Program acquisition / execution client, program acquisition / execution method and program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008241372 2008-09-19
JP2008241372 2008-09-19
PCT/JP2009/063411 WO2010032558A1 (en) 2008-09-19 2009-07-28 Program acquiring/executing client, program acquiring/executing method, and recording medium
JP2010529688A JP5541160B2 (en) 2008-09-19 2009-07-28 Program acquisition / execution client, program acquisition / execution method and program

Publications (2)

Publication Number Publication Date
JPWO2010032558A1 JPWO2010032558A1 (en) 2012-02-09
JP5541160B2 true JP5541160B2 (en) 2014-07-09

Family

ID=42039400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010529688A Active JP5541160B2 (en) 2008-09-19 2009-07-28 Program acquisition / execution client, program acquisition / execution method and program

Country Status (2)

Country Link
JP (1) JP5541160B2 (en)
WO (1) WO2010032558A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5852103B2 (en) * 2011-04-27 2016-02-03 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Virtual computer system, virtual computer control method, virtual computer control program, and semiconductor integrated circuit
WO2013042411A1 (en) * 2011-09-22 2013-03-28 九州日本電気ソフトウェア株式会社 Application management apparatus, application management method, and computer readable storage medium
JP6055366B2 (en) * 2013-04-23 2016-12-27 株式会社Nttドコモ Virtual Web server program and function substitution method
CN114327504A (en) * 2021-12-01 2022-04-12 阿里巴巴(中国)有限公司 Communication method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107185A (en) * 2004-10-06 2006-04-20 Hitachi Ltd Computer system with terminal allowing off-line work
JP2008083897A (en) * 2006-09-27 2008-04-10 Nec Corp Load reducing system, load reducing method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107185A (en) * 2004-10-06 2006-04-20 Hitachi Ltd Computer system with terminal allowing off-line work
JP2008083897A (en) * 2006-09-27 2008-04-10 Nec Corp Load reducing system, load reducing method, and program

Also Published As

Publication number Publication date
JPWO2010032558A1 (en) 2012-02-09
WO2010032558A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
JP6774499B2 (en) Providing access to hybrid applications offline
JP5389829B2 (en) XML-based web feed for remote resource web access
EP2815311B1 (en) Using an application cache to update resources of installed applications
JP6410280B2 (en) Website access method, apparatus, and website system
US20070260702A1 (en) Web browser architecture for virtual machine access
JP4857349B2 (en) Method, system, and computer program for providing asynchronous portal pages within a portal system
JP4748819B2 (en) Client program, terminal, method, server system, and server program
JP2019032883A (en) Method, apparatus, server and system for implementing web application
KR101661784B1 (en) Input content to application via web browser
US8527862B2 (en) Methods for making ajax web applications bookmarkable and crawlable and devices thereof
KR20130093006A (en) Web application home button
US20110191431A1 (en) Method and system for updating display screens
JP2018045704A (en) Opening unsupported file types through remoting sessions
US8370467B1 (en) Method for seamlessly providing incremental application updates to users while serving continuous live traffic
CN108287836A (en) A kind of resource caching method and device
JP2007328419A (en) Control program and communication system
JP2014534537A (en) System and method for managing a dedicated cache
EP1872208A1 (en) Method and apparatus to select and deliver portable portlets
AU2016202576B2 (en) Techniques for evaluating applications through use of an auxiliary application
JP5936103B2 (en) System, computer, method and program for calling Java method on client
KR20140036229A (en) Techniques for adapting an interpretive run time application to multiple clients
JP5541160B2 (en) Program acquisition / execution client, program acquisition / execution method and program
JP2015114844A (en) Method, apparatus, and program for switching application execution environment
GB2519113A (en) Generation of combined documents from content and layout documents based on semantically neutral elements
CN112887440A (en) IP address management method and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131129

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: 20140408

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140421

R150 Certificate of patent or registration of utility model

Ref document number: 5541160

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150