JP5541160B2 - Program acquisition / execution client, program acquisition / execution method and program - Google Patents
Program acquisition / execution client, program acquisition / execution method and program Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2109—Game 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.
クライアントが、サーバ側にあるプログラムを受け付けて実行することによって、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.
次に、発明を実施するための形態について図面を参照して詳細に説明する。 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
サーバ100は、クライアント110から所定の要求を受信した場合に、サーバ側プログラムを実行して、その所定の要求に応じた実行結果を、クライアント110に送信する。
When the
サーバ100は、Webサーバ101と、プログラム配信部102と、を含む。なお、Webサーバ101とプログラム配信部102は、別々のサーバ上に存在してもよい。
The
クライアント110は、一般的に、プログラム入手・実行クライアントと呼ぶことができる。クライアント110は、サーバ100と通信可能である。
The
クライアント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
仮想マシン112は、特定の言語のプログラムしか動作しないソフトウェア(例えば、JavaVM)を仮想マシン生成部112aが実行することによって生成されるものではない。仮想マシン112は、例えば、仮想マシン内で独立したオペレーティングシステムが動作可能なソフトウェア(例えば、VMWare(ブイエムウェア)(登録商標)やXen(ゼン)(登録商標))を仮想マシン生成部112aが実行することによって生成される。
The
仮想マシン生成部112aは、一般的に仮想マシン生成手段と呼ぶことができる。仮想マシン生成部112aは、VMWare(ブイエムウェア)やXen(ゼン)のようなソフトウェアを実行することによって、クライアント110内に仮想マシン112を生成する。
The virtual
サーバ用格納部118aおよび118bのそれぞれは、一般的にサーバ用格納手段と呼ぶことができる。なお、サーバ用格納部の数は、2つに限らず、1以上であればよい。
Each of
OS格納部118cは、一般的にOS格納手段または他の格納手段と呼ぶことができる。OS格納部118cは、例えば、サーバ用格納部118aおよび118b内のプログラムを実行する際に用いられるオペレーティングシステム、さらに言えば、仮想マシン112が使用するオペレーティングシステムを格納する。OS格納部118cは、例えば、サーバ100が有するオペレーティングシステムと同じ種類のオペレーティングシステムを格納する。
The
要求受付・返答部116は、サーバ側プログラム(以下、単に「プログラム」と称する)を入手する旨の入手指示を、Webブラウザ実行部111から受け付ける。また、要求受付・返答部116は、入手されたプログラムを実行する旨の実行指示を、Webブラウザ実行部111から受け付ける。
The request receiving / replying
プログラム管理部115は、要求受付・返答部116が入手指示を受け付けた場合に、サーバ100からプログラムを入手して、そのプログラムをサーバ用格納部118aまたは118bに格納し、かつ、格納部118のうちでアクセス可能な領域を、そのプログラムに対応づけて設定する。
When the request reception /
管理部122は、一般的に管理手段と呼ぶことができる。管理部122は、サーバ100からプログラムを入手して、そのプログラムをサーバ用格納部118aまたは118bに格納する。
実行動作部121は、一般的に実行動作手段と呼ぶことができる。実行動作部121は、サーバ用格納部118aまたは118b内のプログラムを読み出し、格納部118のうち、そのプログラムに対応づけられた領域以外へのアクセスを禁止しながら、仮想マシン112上でそのプログラムを実行して、仮想マシン112上に、サーバ100に対応する特定サーバ(例えば、図1に示したWebサーバ)を生成する。
The
例えば、実行動作部121は、サーバ用格納部118aまたは118b内のプログラムを読み出し、格納部118のうち、そのプログラムを格納している格納部以外の格納部への書き込みを禁止しながら、仮想マシン112上でそのプログラムを実行して、仮想マシン112上に特定サーバを生成する。
For example, the
特定サーバは、一般的に特定手段と呼ぶことができる。 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
本実施の形態では、実行動作部121は、OS格納部118c内のオペレーティングシステムを用いてサーバ用格納部118aまたは118b内のプログラムを実行する。
In the present embodiment, the
操作部123は、一般的に操作手段と呼ぶことができる。操作部123は、仮想マシン112内の特定サーバに所定の要求を送信し、その特定サーバからその所定の要求に応じた実行結果を受信して表示する。
Webブラウザ実行部111は、一般的に操作手段または通信手段と呼ぶことができる。
Web
Webブラウザ実行部111は、Webブラウザを用いることによって、仮想マシン112内の特定サーバに所定の要求を送信し、その特定サーバから所定の要求に応じた実行結果を受信してその実行結果を表示する。
The Web
なお、Webブラウザ実行部111は、Webブラウザを用いることによって、サーバ100に所定の要求を送信し、サーバ100からその所定の要求に応じた実行結果を受信する。
The Web
入出力部120は、一般的に操作手段と呼ぶことができる。入出力部120は、仮想マシン112内の特定サーバに所定の要求を送信し、仮想マシン112内の特定サーバから所定の要求に応じた実行結果を受信してその実行結果を表示する。
Input /
これらは、つぎのように動作する。 These operate as follows.
まず、通常の利用形態では、Webブラウザ実行部111が、Webサーバ101にアクセスすると、Webサーバ101上でプログラムすなわちWebアプリケーションが実行され、その実行結果が、Webブラウザ実行部111に提供され、その実行結果が表示される。
First, in a normal usage mode, when the Web
次に、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
まず、画面201は、オンライン時に、Webサーバ101によってWebブラウザ実行部111に表示される画面である。
First, the
Webサーバ101は、画面201内に、「オフライン化」等の名前でリンクを用意する。ユーザが、Webブラウザ実行部111を使って、画面201内のリンクをクリックすると、Webブラウザ実行部111は、仮想マシン112内の管理モジュール113内の要求受付・返答部116に、オフライン化の要求を行う。このオフライン化の要求は、一般的に入手指示と呼ぶことができる。
The
ここで、Webブラウザ実行部111と要求受付・返答部116の通信には、最も簡単にはhttp(HyperText Transfer Protocol)が用いられる。
Here, http (HyperText Transfer Protocol) is most easily used for communication between the Web
この場合、要求受付・返答部116が、httpサーバを動作させ、上記リンクを、そのhttpサーバへのハイパーリンクとする。例えば、仮想マシン112のIPアドレスとして192.168.0.10を用いるものとすると、そのhttpサーバへのリンクは、http://192.168.0.10/...となる。
In this case, the request receiving / replying
この場合、Webブラウザ実行部111が、ユーザの操作に従って、画面201内のリンクをクリックすることで、要求受付・返答部116に、オフライン化の要求を送ることができる。
In this case, the Web
さらに、httpが提供する引数の機能を利用することで、付加的に必要な情報が、要求受付・返答部116に送られることができる。
Furthermore, by using the argument function provided by http, additionally necessary information can be sent to the request reception /
本実施の形態では、必要となるプログラムを特定するための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
さらに、リンク元のページ(画面201)のURLも、Referer(リファラ)の形で要求受付・返答部116に渡される。
Further, the URL of the link source page (screen 201) is also passed to the request reception /
なお、Webブラウザ実行部111と要求受付・返答部116との通信は、上記に限らない。
Communication between the Web
例えば、画面201内のリンクのURL scheme(スキーム)を特殊なプロトコルとし、Webブラウザ実行部111が、画面201内のリンクをクリックすることで、プロトコルハンドラとなる外部プログラムを起動し(あるいはプラグインの形で実現し)、Webブラウザ実行部111が、その外部プログラムを使って、要求受付・返答部116と独自のプロトコルで通信してもよい。
For example, the URL scheme (scheme) of the link in the
また、Webブラウザ実行部111と要求受付・返答部116との通信は、Webブラウザ実行部111が仮想マシン112を含む形で実現されてもよい。
Communication between the Web
ただし、Webブラウザ実行部111と要求受付・返答部116との通信は、要求受付・返答部116で動作するhttpサーバへのリンクとして実現された方が、任意のWebブラウザおよび仮想マシンを改造することなく、本実施の形態を実施できるため、好ましい。
However, the communication between the Web
画面201内のリンクをクリックすることで、オフライン化の要求が行われると、要求受付・返答部116は、プログラム管理部115に、オフライン化の要求の引数として渡された、プログラムを特定するためのURLを提供して、そのURLにて特定されるプログラムのダウンロードを依頼する。
When a request to go offline is made by clicking a link in the
プログラム管理部115は、ダウンロードの依頼を受け付けると、そのURLを用いて、サーバ100のプログラム配信部102から、ダウンロードを依頼されたプログラムをダウンロードする。
When receiving the download request, the
プログラムのダウンロード後、プログラム管理部115は、プログラム実行部114において、ダウンロードしたプログラムのインストールを行う。
After downloading the program, the
ここで、「インストール」とは、ダウンロードしたプログラムをすぐに実行可能な状態にするための作業であり、その具体的内容は、プログラム実行部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
プログラム実行部114の実現方法とその実現方法に応じたインストール方法には、以下のようなものが考えられる。
The following can be considered as a method for realizing the
最も単純には、プログラム管理部115が、プログラム実行部114内のサーバ用格納部内に、ダウンロードしたプログラム毎に、独立したディレクトリ(サーバ用格納部118aおよび118b)を作成し、そのディレクトリ(サーバ用格納部118aおよび118a)のそれぞれに、別々のプログラムを保存すればよい。
Most simply, the
ただし、ダウンロードしたプログラムにコンピュータウィルス等が組み込まれていると、他のプログラムの記憶領域(ディレクトリ)、および、仮想マシン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
すなわち、プログラム管理部115は、ダウンロード要求のあったプログラム毎に、ユーザアカウントを新たに生成し、サーバ用格納部内にディレクトリを作成した上で、そのディレクトリへのアクセス許可を、その生成したユーザアカウントに与え、他のディレクトリへのアクセス許可を、その生成したユーザアカウントに与えず、ダウンロードしたプログラムを、そのディレクトリにコピー(保存)する。
That is, the
あるいは、プログラム実行部114の実現方法とその実現方法に応じたインストール方法として、特許文献2に記載のシステムを用いてもよい。
Alternatively, the system described in Patent Literature 2 may be used as a method for realizing the
すなわち、プログラム管理部115は、特許文献2に記載された、あるプロセスが、あるディレクトリ以下のものしか見ることができない(当該ディレクトリが最上位のディレクトリに見える)ようにする仕組みを利用して、プログラム間の隔離を実現する。
That is, the
また、プログラム管理部115は、UnionFSなどの、ディレクトリを層構造で重ねる手法を用いてもよい。
Further, the
この場合、プログラム管理部115は、新しい版のプログラムをインストールする際は、新しい版と古い版の差分のみをダウンロードし、そのダウンロードされた内容を古い版のディレクトリ上に重ねる。このため、プログラムのダウンロードを効率的に行うことが可能になる。また、プログラム管理部115は、プログラムのインストールが指定されると、そのプログラムに依存する他のプログラムを含め、自動的に必要な差分をダウンロードする。
In this case, when installing a new version of the program, the
さらに、プログラム実行部114として、仮想マシンが利用されてもよい。
Further, a virtual machine may be used as the
この場合、仮想マシン112のさらに内側で仮想マシンが実行されることになる。この場合、ダウンロードしたプログラムは、仮想マシンのイメージとなり、プログラムの実行は仮想マシンの起動となる。
In this case, the virtual machine is executed further inside the
インストール終了後、要求受付・返答部116は、要求に応じてプログラムを起動・終了できるように、プログラム実行部114内のプログラムを設定する。
After the installation is completed, the request receiving / replying
具体的には、要求受付・返答部116は、ある特定のURL(引数付きのものでもよい)に対するアクセスがあった場合に、そのURLに対応するプログラムを起動・終了するように、プログラム実行部114内のプログラムを設定する。
Specifically, the request receiving / replying
なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、要求受付・返答部116は、独自プロトコルを用いることで、要求に応じてプログラムを起動・終了できるように、プログラム実行部114内のプログラムを設定する。
The communication between the Web
一方、プログラムのダウンロード・インストール・起動・終了設定を行っている間、Webブラウザ実行部111には、「現在オフライン化を行っています」といった内容の情報(例えば、「ただいまオフライン化中」)が表示される(画面202参照)。
On the other hand, while the program is being downloaded, installed, started, and terminated, the Web
Webブラウザ実行部111が画面202を表示することは、要求受付・返答部116が、画面202の内容を表示するためにHTMLで記載されたファイルを、Webブラウザ実行部111に返すことで実現できる。
The display of the
そして、ダウンロード・インストールが終了すると、つまり、プログラム実行部114内のプログラムのオフライン化が完了すると、Webブラウザ実行部111には、「オフライン化が終了しました」といった内容の情報が表示される(画面203参照)。
When the download / installation is completed, that is, when the offline processing of the program in the
Webブラウザ実行部111が画面203を表示することは、画面202で表示したHTMLのファイルを自動的にリフレッシュするように、要求受付・返答部116が、meta(メタ)タグでrefresh指定をすることなどで実現できる。
When the Web
さらに、画面203の表示と同時に、Webブラウザ実行部111には、オフライン化したプログラムを起動するためのURLをブックマークすることをユーザに促す画面が表示される(画面204参照)。
Furthermore, simultaneously with the display of the
Webブラウザ実行部111が画面204を表示することは、JavaScriptの機能を用いることで実現することが可能である。
The Web
なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、Webブラウザ実行部111が、プログラム実行部114内のプログラムの状態に応じて、「現在オフライン化を行っています」、「オフライン化が終了しました」といった内容の情報を表示すればよい。
The communication between the Web
また、ブックマークへの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
次に、オフライン化した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
そのURLへのアクセスが実行されると、要求受付・返答部116は、そのURLにて特定されるプログラムを実行する旨の実行指示を受け付ける。要求受付・返答部116は、その実行指示を受け付けると、実行管理部117に、そのURLに対応するプログラムの起動を依頼する。
When access to the URL is executed, the request reception /
実行管理部117は、起動の依頼を受け付けると、実行部119に、起動を依頼されたプログラムの実行を開始する指示を与える。
When receiving the activation request, the execution management unit 117 gives an instruction to the
実行を開始するための具体的な処理は、プログラム実行部114の実現方法に依存する。
The specific process for starting execution depends on the implementation method of the
プログラム実行部114が、プログラム毎に、ディレクトリおよびアカウントを分けることで実現されている場合は、実行管理部117は、起動を依頼されたプログラムに対応するディレクトリおよびアカウントを用いて、起動を依頼されたプログラムを、実行部119に起動させればよい。
When the
この場合、実行部119は、仮想サーバ用格納部118aまたは118b内のプログラムを、少なくとも、格納部118のうちでそのプログラムに対応づけられている領域以外へのアクセスを禁止しながら実行する。
In this case, the
プログラム実行部114が、特許文献2に記載のシステムを用いる場合は、実行管理部117は、そのシステムに起動を依頼することで、起動を依頼されたプログラムを起動できる。
When the
この場合も、少なくとも、格納部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
プログラム実行部114が仮想マシンで実現される場合は、実行管理部117は、プログラム実行部114として設定されている仮想マシンの起動を行う。
When the
この場合も、少なくとも、格納部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
実行管理部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 /
ここでは、起動したプログラムをプログラムAとする。 Here, the activated program is referred to as program A.
プログラムAは、Webアプリケーションのサーバ100側のプログラムである。プログラムAは、起動されると、サーバ100に対応するWebサーバ(特定サーバ)として動作する。
Program A is a program on the
ここで、プログラム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 /
利用するポート番号は、一般には、プログラム、または、その設定ファイルに埋め込まれるため、なんらかのルールにより、あらかじめ重ならないように決められているものと仮定する。 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
Webブラウザ実行部111が画面205を表示することは、要求受付・返答部116が、その内容を表示するための、HTMLで記載されたファイルを、Webブラウザ実行部111に返すことで実現できる。
The display of the
そして、起動処理が終了し、プログラムが利用可能になったことが、実行管理部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 /
要求受付・返答部116がWebブラウザ実行部111にリダイレクトする旨の返答を提供することは、画面202から画面203への遷移と同様、要求受付・返答部116が、metaタグでrefresh指定をすることなどで実現できる。
The request acceptance /
なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、Webブラウザ実行部111が、起動を依頼されたプログラムの状態に応じて、上記のような画面遷移を行えばよい。
The communication between the Web
これにより、Webブラウザ実行部111は、画面206を表示する。
Thereby, the Web
画面206は、仮想マシン112内で動作するプログラムAがWebサーバとして動作することによって表示される。以上により、オフラインでのWebアプリケーションの実行が可能となる。
The
Webアプリケーションの種類によっては、Webサーバ101が持つ情報と、仮想マシン112内で動作するプログラムAが持つ情報とを、同期させる必要がある。
Depending on the type of Web application, it is necessary to synchronize the information held by the
その場合は、情報を同期のための機能を、プログラムAが持ち、プログラムAを実行する実行部119が、ネットワーク接続が可能な際にWebサーバ101と通信し、情報の同期を行う。あるいは、特許文献2に記載の方法が用いられてもよい。
In this case, the program A has a function for synchronizing information, and the
特許文献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
ユーザが、Webブラウザ実行部111を用いて、画面207内のリンクをクリックすると、要求受付・返答部116に、そのWebサーバを実現しているプログラムAの停止が要求される。
When the user clicks a link in the
この処理を実現するために、このリンクを、要求受付・返答部116で動作しているhttpサーバへのリンクとする。
In order to realize this processing, this link is a link to the http server operating in the request receiving / replying
要求受付・返答部116は、このリンクへのアクセスがあった際、要求元のWebページのRefererを参照する。
When receiving the link, the request receiving / replying
Referer内にはWebサーバのポートが記述されているため、要求受付・返答部116は、このポートを参照することで、どのプログラムからの停止要求かを判定することができる。
Since the referrer describes the port of the Web server, the request reception /
要求受付・返答部116は、停止の要求を受け付けると、実行管理部117に、要求のあったプログラムの停止を依頼する。実行管理部117は、その依頼に基づいて、要求のあったプログラムを実行部119が実行することを停止する。
When receiving a stop request, the request reception /
なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、直接、どのプログラムからの停止要求かを知ることができる。
The communication between the Web
以上では、すでにオフライン化済みのプログラムを更新する方法については触れなかったが、オフライン化済みのプログラムの更新を行うには、以下の方法が考えられる。 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
また、別の方法は、画面205で、オフラインでプログラムを実行しようとした際、もし、ネットワーク接続が可能であれば、実行管理部117がプログラムの実行を開始する前に、プログラム管理部115が、プログラム配信部102に対し、現在のプログラムの版を尋ね、その版が既にダウンロード・インストール済みのプログラムの版よりも新しければ、現在の版のプログラムをダウンロード・インストールする。これにより、プログラムの更新が行われ、更新されたプログラムが実行される。
Another method is that when the program is to be executed offline on the
さらに別の方法として、プログラムの更新機能を、プログラム内部に作りこむことも考えられる。 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
この場合の動作も、プログラム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
まず、画面301は、オンライン時に、Webサーバ101によってWebブラウザ実行部111に表示されるWebページの画面である。
First, the
Webサーバ101は、画面301内に、非ブラウザアプリケーションのそれぞれに対応する複数のリンクを用意する。ユーザが、Webブラウザ実行部111を使って、画面301内のいずれかのリンクをクリックすると、図2の画面201においてリンクがクリックされた場合と同様、Webブラウザ実行部111は、要求受付・返答部116に、要求を送る。なお、この要求は、入手指示と実行指示とを兼ねる。
The
要求受付・返答部116は、この要求を受け取ると、クリックされたリンクに対応するプログラムのダウンロードとインストールを、プログラム管理部115に実行させる。ダウンロード・インストールの手順は、プログラムAをオフライン化する際と同様である。
When receiving the request, the request reception /
ダウンロード・インストール中は、Webブラウザ実行部111に「お待ち下さい」のような画面(画面302参照)が表示される。この手順も、プログラムAをオフライン化する際と同様である。
During the download and installation, a screen like “Please wait” (see screen 302) is displayed on the Web
ダウンロード・インストールが終了すると、要求受付・返答部116は、実行管理部117に対し、そのプログラムの実行を要求する。
When the download / installation is completed, the request receiving / replying
実行管理部117は、その要求を受け付けると、実行部119に、そのプログラムの実行を開始させ、仮想マシン112上に特定サーバを生成する。このとき、入出力部120は、画面305を表示する。
When the execution management unit 117 receives the request, the execution management unit 117 causes the
入出力部120は、画面305を表示している間に、ユーザからの所定の要求(例えば、計算の依頼要求など)を受け付けると、その要求を、実行部119、すなわち、仮想マシン112上の特定サーバに送信し、その後、特定サーバから、その要求に応じた実行結果を受信し表示する。
When the input /
ここで、プログラムB(非ブラウザアプリケーション)を実行している実行部119、つまり、仮想マシン112上の特定サーバが、入出力部120に、画面305を表示させる方法はいくつか考えられる。
Here, there are several methods by which the
第1の方法は、クライアント110内の入出力部120で、X Window Systemのサーバ(Xサーバ)が動作し、Xサーバが仮想マシン112内で動作するプログラムBとXプロトコルで通信することにより、入出力部120に、画面305を表示する方法である。
In the first method, an input /
同様の手法として、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
また、別の方法としては、仮想マシン112自身が提供する画面内に、画面305を表示する方法も考えられる。
Another possible method is to display the
ここで、仮想マシン112自身が提供する画面とは、仮想マシン112が、グラフィック関係のハードウェアを仮想化して有することで表示される表示である。この場合も、画面をWebブラウザ実行部111のウインドウ内で表示することも考えられる。
Here, the screen provided by the
このように、Webブラウザ実行部111を介さず、プログラムBが直接画面描画を行えるようにできるため、Webブラウザ実行部111のユーザインタフェースの制限をなくすことができる。
As described above, since the program B can directly perform screen drawing without using the web
プログラムBの起動が開始すると、Webブラウザ実行部111の画面は、画面302から画面303に遷移する。この実現方法は、プログラムAをオフライン化する際の画面202から画面203への遷移と同様である。
When the program B starts to be started, the screen of the web
さらに、プログラム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 /
プログラム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
この操作により、要求受付・返答部116は、実行管理部117に、登録されたプログラムBの起動を依頼する。
By this operation, the request receiving / replying
実行管理部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
以上の動作は、オフライン化したプログラム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
さらに、ダウンロード・インストールしたプログラム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
この場合、Webブラウザ実行部111が、ユーザからの指示に従って、要求受付・返答部116のhttpサーバ上の管理用の特定のURLにアクセスする。
In this case, the Web
図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 /
なお、Webブラウザ実行部111と仮想マシン112との通信が、Webブラウザ実行部111に対するプラグインで実現されている場合、または、Webブラウザ実行部111の内部に仮想マシン112を含む形で実現されている場合は、Webブラウザ実行部111自身に組込みの特定のメニューから、図4に示した画面が表示される。
The communication between the Web
図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 /
プログラムの更新および削除が要求された場合は、要求受付・返答部116は、プログラム管理部115に、その要求を行う。
When update and deletion of a program are requested, the request reception /
仮想マシン112の再起動が要求された場合は、要求受付・返答部116は、仮想マシン112の再起動を行うコマンドを実行することで、再起動を行う。
When the restart of the
次に、動作の概要を説明する。 Next, an outline of the operation will be described.
Webブラウザ実行部111が、Webサーバ101が提供するWebページを表示し、そのページ上のリンクをクリックすることで、仮想マシン112上で動作する管理モジュール113に、プログラムを入手する旨の要求が送られる。
When the web
管理モジュール113は、プログラムを入手する旨の要求を受けると、プログラム配信部102から、プログラムをダウンロードし、仮想マシン112内にインストールする。
When receiving a request to obtain a program, the
そして、Webブラウザ実行部111が、管理モジュール113に、プログラムを実行する旨の要求を送ると、仮想マシン112内で、ダウンロードしたプログラムが実行される。
Then, when the Web
ダウンロードするプログラムとして、サーバ100で動作するWebサーバプログラムと同じ機能を提供するプログラムを用いることで、Webアプリケーションをオフラインで実行することができる。
By using a program that provides the same function as the Web server program running on the
また、ダウンロードするプログラムとして、Webブラウザ実行部111を介さずにユーザと直接対話する処理を実行させるプログラムを用いることで、Webブラウザのユーザインタフェースの制限を無くすことができる。
Further, by using a program that executes a process of directly interacting with a user without using the Web
次に、図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
次に、図2の画面201内の「オフライン化」等の名前のリンクをクリックすることで、Webブラウザ実行部111は、要求受付・返答部116に対し、オフライン化を要求する(ステップ502)。
Next, by clicking a link with a name such as “offline” in the
要求受付・返答部116は、オフライン化の要求を受け付けると、「現在オフライン化を行っています」といった内容の返答を、Webブラウザ実行部111に対して返す(ステップ503)。
When the request acceptance /
続いて、要求受付・返答部116は、プログラム管理部115に対して、オフライン化が要求されたプログラムのダウンロード・インストールの要求を行う(ステップ504)。
Subsequently, the request receiving / replying
プログラム管理部115は、ダウンロード・インストールの要求を受け付けると、サーバ100のプログラム配信部102に対して、ダウンロード要求を行い、オフライン化が要求されたプログラムのダウンロードを行う(ステップ505)。
When receiving the download / installation request, the
続いて、プログラム管理部115は、ダウンロードしたプログラムを、プログラム実行部114にインストールし(ステップ506)、終了通知を、要求受付・返答部116に送る(ステップ507)。
Subsequently, the
要求受付・返答部116は、終了通知を受け取ると、まず、ダウンロードしたプログラムを起動・終了するためのインタフェース(URLなど)を設定する(ステップ508)。
Upon receiving the end notification, the request reception /
次に、要求受付・返答部116は、Webブラウザ実行部111に対して「オフライン化が終了しました」といった内容の返答を返す。同時に、要求受付・返答部116は、Webブラウザ実行部111から直接ステップ508で設定したインタフェースにアクセスして、プログラムを起動できるように、URLをブックマークするなどの設定を行う(ステップ509)。
Next, the request reception /
図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
プログラムの起動要求が行われると、要求受付・返答部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 /
続いて、要求受付・返答部116は、実行管理部117に対し、アクセスされたURLに対応するプログラムの実行を要求する(ステップ604)。
Subsequently, the request reception /
実行管理部117は、プログラムの実行の要求を受け付けると、プログラム実行部114において、そのプログラムを実行する(ステップ605)。
When the execution management unit 117 receives a request to execute a program, the
プログラムの実行が開始すると、実行管理部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 /
Webブラウザ実行部111は、その返答を受け、実行が開始されたプログラムにて提供されるWebサーバにアクセスし(ステップ608)、Webアプリケーションのオフラインでの利用を開始する(ステップ609)。
Upon receiving the response, the Web
例えば、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 /
要求受付・返答部116は、プログラムの終了要求を受け付けると、実行管理部117に停止要求を行う(ステップ611)。
When the request acceptance /
実行管理部117は、停止要求を受け付けると、プログラム実行部114において、終了が要求されたプログラムを停止する(ステップ612)。
When the execution management unit 117 receives the stop request, the
図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
そのリンクがクリックされることで、Webブラウザ実行部111は、要求受付・返答部116に対して、そのリンクに対応するプログラム(以下「対応プログラム」と称する)のダウンロード・インストール、さらに、その実行を要求する(ステップ702)。
When the link is clicked, the Web
要求受付・返答部116は、それらの要求を受け付けると、「処理中です。お待ち下さい」といった内容の返答を、Webブラウザ実行部111に返す(ステップ703)。
When receiving the request, the request receiving / replying
続いて、要求受付・返答部116は、プログラム管理部115に対し、対応プログラムのダウンロード・インストールの要求を行う(ステップ704)。
Subsequently, the request reception /
プログラム管理部115は、その要求を受け付けると、サーバ100のプログラム配信部102に対して、ダウンロード要求を行い、対応プログラムのダウンロードを行う(ステップ705)。
Upon receiving the request, the
続いて、プログラム管理部115は、ダウンロードした対応プログラムをインストールし(ステップ706)、終了通知を、要求受付・返答部116に送る(ステップ707)。
Subsequently, the
次に、要求受付・返答部116は、終了通知を受け付けると、実行管理部117に対し、対応プログラムの実行要求を行う(ステップ708)。
Next, when accepting the end notification, the request accepting / replying
実行管理部117は、対応プログラムの実行要求を受け付けると、プログラム実行部114において、対応プログラムを実行する(ステップ709)。
When the execution management unit 117 receives an execution request for the corresponding program, the
実行が開始されると、対応プログラムを実行するプログラム実行部114は、対応プログラム自身が管理する画面を表示する(ステップ710)。
When the execution is started, the
続いて、実行管理部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 /
次に、要求受付・返答部116は、Webブラウザ実行部111に対して「プログラムを起動しました」といった内容の返答を返す。同時に、要求受付・返答部116は、Webブラウザ実行部111がステップ712で設定されたインタフェースに直接アクセスしてプログラムを起動できるように、URLをブックマークするなどの設定を行う(ステップ713)。
Next, the request reception /
プログラムの利用が終了し、ユーザが終了処理を行うと(ステップ714)、プログラム実行部114が、それを検知し、プログラムの終了を、実行管理部117に通知する(ステップ715)。
When the use of the program ends and the user performs the end process (step 714), the
図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
プログラムの起動要求が生成されると、要求受付・返答部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
続いて、要求受付・返答部116は、実行管理部117に対し、起動が要求されたプログラム(以下「要求プログラム」と称する)の実行を要求する(ステップ804)。
Subsequently, the request reception /
実行管理部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 /
プログラムの利用が終了し、ユーザが終了処理を行うと(ステップ809)、プログラム実行部114が、それを検知し、プログラムの終了を、実行管理部117に通知する(ステップ810)。
When the use of the program ends and the user performs the end process (step 809), the
次に、本実施の形態の効果を説明する。 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
この特定サーバは、クライアント110内の操作部123から、所定の要求(例えば、計算要求)を受信し、操作部123に、その所定の要求の実行結果を送信する。
The specific server receives a predetermined request (for example, a calculation request) from the
このため、特定サーバが書き込み(アクセス)できる領域を制限しながら、例えば、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
よって、例えば、ダウンロードしたプログラムにコンピュータウィルスが組み込まれていても、その影響をクライアント本体側に及ぼすことを防止することが可能になる。従って、クライアントにおいて、サーバから受け付けたプログラムに対するセキュリティを向上することができる。 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
この場合、サーバ100に対応する機能を実現する構成部を、仮想マシン112内にまとめることが可能になる。
In this case, components that realize functions corresponding to the
また、本実施の形態では、特定サーバからOS格納部118cへのアクセスが制限される。この場合、ダウンロードしたプログラムにコンピュータウィルスが組み込まれていても、仮想マシン112のオペレーティングシステムにコンピュータウィルスの影響が及ぶことを防止可能になる。
In this embodiment, access from the specific server to the
また、本実施の形態では、OS格納部118cには、サーバ100格納されているオペレーティングシステムと同じ種類のオペレーティングシステムが格納される。この場合、サーバ100内のプログラムを変更することなく、サーバ用格納部118aまたは118bに格納することが可能になる。
In the present embodiment, the
また、本実施の形態では、Webブラウザ実行部111は、Webブラウザを用いることによって、サーバ100に所定の要求を送信し、サーバ100からその所定の要求に応じた実行結果を受信して表示し、また、Webブラウザを用いることによって、特定サーバに所定の要求を送信し、特定サーバからその所定の要求に応じた実行結果を受信して表示する。
In this embodiment, the Web
この場合、Webブラウザ実行部111を用いることによって、サーバ100と仮想マシン112内の特定サーバとのいずれとも通信することが可能になる。よって、ユーザは、Webブラウザ実行部111を用いることによって、サーバ100と仮想マシン112内の特定サーバとを同じように使うことが可能になる。
In this case, it is possible to communicate with both the
また、本実施の形態では、Webブラウザ実行部111は、Webブラウザを用いることによって、サーバ100に所定の要求を送信し、サーバ100からその所定の要求に応じた実行結果を受信して表示する。入出力部120は、仮想マシン112内の特定サーバに所定の要求を送信し、特定サーバからその所定の要求に応じた実行結果を受信して表示する。
In the present embodiment, the Web
この場合、仮想マシン112内の特定サーバは、Webブラウザ実行部111ではなく、入出力部120と通信する。よって、仮想マシン112内の特定サーバからの実行結果を、Webブラウザ実行部111のインターフェースで表示できない形式で記載することも可能になる。
In this case, the specific server in the
(第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
サーバコンピュータ900は、Webサーバプログラム901およびプログラム配信プログラム902を搭載している。
The
例えば、サーバコンピュータ900は、Webサーバプログラム901とプログラム配信プログラム902とが記載された、バードディスク等のコンピュータにて読み取り可能な記録媒体を含む。
For example, the
サーバコンピュータ900は、その記録媒体からWebサーバプログラム901を読み取り実行することによって、図1に示したWebサーバ101として機能する。また、サーバコンピュータ900は、その記録媒体からプログラム配信プログラム902を読み取り実行することによって、図1に示したプログラム配信部102として機能する。
The
クライアントコンピュータ910は、Webブラウザプログラム911および仮想マシンプログラム912を搭載している。
The
例えば、クライアントコンピュータ910は、Webブラウザプログラム911と仮想マシンプログラム912とが記載された、バードディスク等のコンピュータにて読み取り可能な記録媒体を含む。
For example, the
クライアントコンピュータ910は、その記録媒体からWebブラウザプログラム911を読み取り実行することによって、図1に示したWebブラウザ実行部111(さらに言えば、操作部113)として機能する。また、クライアントコンピュータ910は、その記録媒体から仮想マシンプログラム912を読み取り実行することによって、図1に示した仮想マシン112および仮想マシン生成部112aとして機能する。
The
上記各実施の形態は、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
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;
前記仮想マシンは、前記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.
サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成し、
前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納し、
前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記所定の要求を受信した場合に当該所定の要求に応じた実行結果を当該所定の要求の送信元に送信する特定手段を、当該仮想マシン上に生成し、
前記特定手段に前記所定の要求を送信し、当該特定手段から前記所定の要求に応じた実行結果を受信して表示する、プログラム入手・実行方法。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格納手段内のオペレーティングシステムで動作する、請求項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.
サーバ用格納手段と、他の格納手段と、を有する仮想マシンを生成する仮想マシン生成手順と、
前記サーバから前記サーバ側プログラムを入手して当該サーバ側プログラムを前記サーバ用格納手段に格納する管理手順と、
前記他の格納手段への書き込みを禁止しながら、前記仮想マシン上で前記サーバ用格納手段内のサーバ側プログラムを実行して、前記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格納手段内のオペレーティングシステムで動作する、請求項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.
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)
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)
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 |
-
2009
- 2009-07-28 WO PCT/JP2009/063411 patent/WO2010032558A1/en active Application Filing
- 2009-07-28 JP JP2010529688A patent/JP5541160B2/en active Active
Patent Citations (2)
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 |