JP2013152545A - Application execution device, system and program - Google Patents
Application execution device, system and program Download PDFInfo
- Publication number
- JP2013152545A JP2013152545A JP2012012257A JP2012012257A JP2013152545A JP 2013152545 A JP2013152545 A JP 2013152545A JP 2012012257 A JP2012012257 A JP 2012012257A JP 2012012257 A JP2012012257 A JP 2012012257A JP 2013152545 A JP2013152545 A JP 2013152545A
- Authority
- JP
- Japan
- Prior art keywords
- application
- mobile terminal
- execution
- processing device
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
Description
本発明は、スマートフォンやタブレット端末などのモバイル(移動)端末におけるアプリケーションプログラムの実行に関し、特に、モバイル端末上で実行されるアプリケーションのバックグラウンド処理をサーバで実行できるようにする技術に関する。 The present invention relates to execution of an application program in a mobile (mobile) terminal such as a smartphone or a tablet terminal, and particularly relates to a technology that enables background processing of an application executed on a mobile terminal to be executed by a server.
スマートフォンやタブレット端末などのモバイル端末は、リチウムイオン電池などの二次電池(バッテリー)からの電力で動作し、モバイルOS(オペレーティングシステム)によるプロセス管理及びメモリ管理の下で各種のアプリケーション(AP;アプリあるいはアプリケーションプログラムとも呼ばれる)を実行可能である。典型的なモバイル端末では、フロントエンドジョブとして1つのアプリケーションの画面がその端末のディスプレイに表示されるが、同時に、種々のアプリケーションのバックグラウンド処理を実行することができる。例えば、モバイルOSの1つであるAndroid(登録商標)OSを用いるモバイル端末では、アプリケーションのGUI(グラフィカルユーザインタフェース)処理に相当するActivityというコンポーネントが実装されて画面処理を実行するが、ユーザ操作によってそのアプリケーションの画面がディスプレイから消えた後も、バックグラウンドで処理を継続できるようになっている。 Mobile terminals such as smartphones and tablet terminals operate with power from a secondary battery (battery) such as a lithium-ion battery, and various applications (AP; applications) under process management and memory management by a mobile OS (operating system) (Also called an application program). In a typical mobile terminal, a screen of one application is displayed on the display of the terminal as a front-end job, but at the same time, background processing of various applications can be executed. For example, in a mobile terminal using an Android (registered trademark) OS that is one of mobile OSs, a component called Activity corresponding to GUI (graphical user interface) processing of an application is mounted and screen processing is executed. Even after the screen of the application disappears from the display, processing can continue in the background.
図9は、モバイル端末におけるアプリケーションのバックグラウンド処理を説明する図である。ここに示した例では、モバイル端末11において実行されるアプリケーション12は、ネットワークを介してウェブサイト90に接続してウェブサイト90から情報を取得し、処理を行い、処理結果を画面に表示するものである。モバイル端末11には、フラッシュメモリなどのメモリカードなどからなるストレージ(記憶装置)13も設けられている。
FIG. 9 is a diagram for explaining background processing of an application in a mobile terminal. In the example shown here, the
ユーザ操作(ステップ101)によってアプリケーション12が起動されると、アプリケーション12は、フロントエンドジョブとして実行され、ウェブサイト90にアクセスして情報を取得し、処理結果を画面に表示する。ユーザはこのアプリケーション12を利用することができる(ステップ102)。ユーザ操作終了が入力されると(ステップ103)、アプリケーション12はモバイル端末11の表示画面上からは消えるものの、バックグラウンド処理を続行し、ウェブサイト90からの情報取得を継続して実行する(ステップ104)。ユーザ操作終了は、例えば、アプリケーションのGUIにおける終了の選択や、他のアプリケーションを起動することなどによって入力される。バックグラウンド処理における情報取得は、例えば、ポーリング動作などによって行われる。その後、ユーザがこのアプリケーションを再開する操作を行うと(ステップ105)、アプリケーション12は再びフロントエンドジョブとしてウェブサイト90からの情報の取得の処理及び結果の画面への表示を行う(ステップ106)。この状態は、次にユーザ操作終了(ステップ107)が入力するまで継続する。
When the
モバイル端末にインストールされるアプリケーションの数の増加に伴って、実行されるバックグラウンド処理の処理量も増加し、モバイル端末の電池消費の加速や処理速度の低下などの問題が生じている。一般にモバイルOSでは、アプリケーションの実行を制御するタスクマネージャと呼ばれる特別なプログラムが実装されており(例えば、非特許文献1を参照)、アプリケーションはこのタスクマネージャによって動作(例えば起動と停止)が制御されるようになっている。モバイル端末にインストールされることを前提とするアプリケーションをモバイルアプリケーションと呼ぶ。一般的なモバイルアプリケーションは、アプリケーションの動作を完全に停止した際にその停止直前の状態からそのアプリケーションを再度開始することができるようにするために、停止時点での実行メモリのデータ(いわゆるメモリイメージ)及びアプリケーションのステータス情報をストレージ13内に保存するデータ永続化処理を行い、また、ストレージ13内に保存されたデータを実行メモリに展開しステータス情報を読出すデータ復元処理をアプリケーションの再開時に行うように構成されている。以下、実行メモリのデータとステータス情報をまとめてアプリケーションデータと呼ぶことにする。永続化処理と復元処理を実行することによって、アプリケーションの再開時には、アプリケーションを停止した時点と同じメモリ状態、ステータス状態となるので、アプリケーションは、実行停止時点の状態からそのまま実行を再開することになる。
As the number of applications installed on mobile terminals increases, the amount of background processing to be executed also increases, causing problems such as acceleration of battery consumption of mobile terminals and reduction of processing speed. In general, in a mobile OS, a special program called a task manager that controls the execution of an application is implemented (for example, see Non-Patent Document 1), and the operation (for example, start and stop) of the application is controlled by the task manager. It has become so. An application that is assumed to be installed on a mobile terminal is called a mobile application. When a general mobile application stops the operation of the application completely, in order to be able to start the application again from the state immediately before the stop, the data of the execution memory at the time of the stop (so-called memory image) ) And data persistence processing for saving application status information in the
図10は、タスクマネージャを備えるモバイル端末におけるアプリケーションの実行を説明する図である。モバイル端末11で実行されるアプリケーション12は、図9において説明したものと同様のものである。モバイル端末11は、ストレージ13を備えるとともに、タスクマネージャ14が実装されている。ユーザ操作(ステップ111)によってアプリケーション12が起動されてフロントエンドジョブとして実行されると、アプリケーション12は、ウェブサイト90からの情報取得と処理結果の画面表示とを実行し、ユーザによるこのアプリケーション12の利用を可能にする(ステップ112)。ユーザ操作終了が入力されると(ステップ113)、タスクマネージャ14がユーザ操作終了の入力を検知し(ステップ114)、アプリケーション12の動作を終了させる(ステップ115)。データ永続化処理により、アプリケーションのデータがストレージ13に保存される(ステップ116)。
FIG. 10 is a diagram illustrating execution of an application in a mobile terminal including a task manager. The
その後、ユーザ操作によってアプリケーション12の再開の指示が入力されると(ステップ117)、ストレージ13からアプリケーションデータが復元され(ステップ118)、アプリケーション12は、先にステップ115で終了した状態から動作を再開し、ウェブサイト90からの情報取得などを実行する(ステップ119)。アプリケーション12は、次にユーザ操作終了(ステップ120)が入力するまで、実行を継続する。
Thereafter, when an instruction to restart the
しかしながら、タスクマネージャ14によりアプリケーション12を完全に終了させた場合には、バックグラウンド処理がなされないので消費電力を削減することはできるものの、アプリケーション12の再開時に最新情報がアプリケーション12に与えられていない。そのため、アプリケーション12を停止していた期間に発生した情報のすべてをウェブサイト90から取得し、取得したデータに対する処理を一括して行わなければならなくなり、それらのための接続時間やデータ処理時間が長くなり、その結果、モバイルアプリケーション特有の速度感が失われ、特に、最新データの表示までに時間がかかるようになる、という問題が生じる。
However, when the
モバイル端末においては、アプリケーションのバックグラウンド処理を実行させると、その分、電池消費が加速し、また、フロントエンドで実行しているアプリケーションの処理速度の低下などの問題が生じる。その一方で、タスクマネージャなどにより、バックグラウンド処理を実行させずにアプリケーションを停止した場合には、アプリケーションの再開時に大量の処理を実行しなければならないので、そのアプリケーション特有の速度感が失われる、という問題を生じる。 In a mobile terminal, when background processing of an application is executed, battery consumption is accelerated correspondingly, and problems such as a decrease in processing speed of an application running on the front end occur. On the other hand, if the application is stopped without executing the background processing by the task manager or the like, a large amount of processing must be executed when the application is restarted. This causes a problem.
本発明の目的は、アプリケーション自体を改変することなく、モバイル端末における電池消費を削減し、しかもアプリケーションの処理の高速化を達成することができるアプリケーション実行装置、システム及びプログラムを提供することにある。 An object of the present invention is to provide an application execution device, system, and program that can reduce battery consumption in a mobile terminal and achieve high-speed processing of an application without modifying the application itself.
本発明の第1のアプリケーション実行装置は、モバイルOS上で動作可能なアプリケーションを実行するアプリケーション実行装置において、アプリケーションの状態制御を行い、アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを他のアプリケーション実行装置との間で共有し、アプリケーションの操作終了が入力されたときに、アプリケーション実行装置でのアプリケーションを終了して他のアプリケーション実行装置に対して共有されたアプリケーションデータに基づいてアプリケーションの実行を継続させ、アプリケーションの操作開始が入力されたときに、共有されているアプリケーションデータに基づいてアプリケーションを起動する連携機能手段を備えることを特徴とする。 A first application execution device of the present invention performs application state control in an application execution device that executes an application operable on a mobile OS, and stores application data indicating a memory state and status information when the application is executed. An application based on application data that is shared with other application execution devices and ends the application on the application execution device and shared with the other application execution devices when an application operation end is input. Is provided, and a cooperation function unit that starts the application based on the shared application data when an operation start of the application is input is provided.
本発明の第2のアプリケーション実行装置は、モバイルOS上で動作可能なアプリケーションを仮想実行するアプリケーション実行装置において、アプリケーションの状態制御を行い、アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを他のアプリケーション実行装置との間で共有し、他のアプリケーション実行装置からの第1の通知があったときに共有されたアプリケーションデータに基づいてアプリケーションを起動し、他のアプリケーション実行装置からの第2の通知があったときにアプリケーションの実行を終了する連携機能手段を備えることを特徴とする。 The second application execution device of the present invention is an application execution device that virtually executes an application operable on the mobile OS, performs application state control, and indicates application data indicating a memory state and status information when the application is executed. Is shared with other application execution devices, the application is started based on the shared application data when there is a first notification from the other application execution devices, and the It is characterized by having a cooperation function means for ending the execution of the application when the notification of 2 is received.
本発明のアプリケーション実行システムは、モバイルOS上で動作可能なアプリケーションを実行する第1の処理装置と、第2の処理装置とがネットワークを介して接続したアプリケーション実行システムにおいて、第1の処理装置は、第1の処理装置でのアプリケーションの状態制御を行い、アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを第2の処理装置との間で共有し、アプリケーションの操作終了が入力されたときに、第1の処理装置でのアプリケーションを終了して第2の処理装置に対して第1の通知を送信し、アプリケーションの操作開始が入力されたときに、第2の処理装置に対して第2の通知を送信するとともに共有されているアプリケーションデータに基づいて第1の処理装置においてアプリケーションを起動する第1の連携機能手段を備え、第2の処理装置は、第2の処理装置でのアプリケーションの仮想実行に関する状態制御を行い、アプリケーションデータを第1の処理装置との間で共有し、第1の処理装置から第1の通知があったときに、共有されたアプリケーションデータに基づいて第2の処理装置においてアプリケーションを起動し、第1の処理装置から第2の通知があったときに第2の処理装置におけるアプリケーションの実行を終了する第2の連携機能手段を備えることを特徴とする。 An application execution system according to the present invention is an application execution system in which a first processing apparatus that executes an application operable on a mobile OS and a second processing apparatus are connected via a network. The application state is controlled in the first processing device, the application data indicating the memory state and status information at the time of execution of the application is shared with the second processing device, and the operation end of the application is input The first processing device is terminated, the first notification is transmitted to the second processing device, and when the application operation start is input, the second processing device is The first processing device based on the shared application data and transmitting the second notification The second processing device performs state control relating to virtual execution of the application in the second processing device, and transfers application data to and from the first processing device. And when the first notification is received from the first processing device, the application is started in the second processing device based on the shared application data, and the second notification is received from the first processing device. And a second link function means for ending the execution of the application in the second processing apparatus when there is a second link.
本発明では、上記の構成を採用し、アプリケーション実行装置と他のアプリケーション実行装置との間で、あるいはモバイル端末とサーバとの間でアプリケーションデータを共有できるようにすることにより、アプリケーションを改変することなく、アプリケーションのバックグラウンド処理の実行をサーバ側にシームレスに移行でき、モバイル端末側での電池消費を削減することができる。特に、バックグラウンド処理がポーリング通信などのデータの有無によらずに通信を行うような処理の場合に、モバイル端末の電池消費を大きく削減することができる。また本発明によれば、モバイル端末でのアプリケーションの再起動を、バックグラウンドアプリケーションでの動作と同程度に高速に行えるようになるようになる。 In the present invention, the application is modified by adopting the above configuration and enabling application data to be shared between the application execution device and another application execution device or between the mobile terminal and the server. In addition, the background processing of the application can be seamlessly shifted to the server side, and battery consumption on the mobile terminal side can be reduced. In particular, when background processing is processing such as polling communication that performs communication regardless of the presence or absence of data, battery consumption of the mobile terminal can be greatly reduced. Further, according to the present invention, the restart of the application on the mobile terminal can be performed at the same speed as the operation in the background application.
次に、本発明の実施の形態について、図面を参照して説明する。 Next, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明の実施の一形態のアプリケーション実行方法が適用されるシステムの全体構成を示している。ネットワーク10に対し、複数のモバイル端末11が接続している。各モバイル端末11は、二次電池で駆動され無線によってネットワーク10に接続する物理的な実体を有するデバイスである。ネットワーク10には、データセンタなどに配置されたサーバ20とウェブサイト90なども接続している。サーバ20には、仮想実行環境として複数の仮想モバイル端末21が、モバイル端末11と例えば1対1の関係になるように構築されている。ここでのサーバ20は、例えば、クラウド基盤上のものとして構成することができる。本実施形態では、モバイル端末11におけるアプリケーション(AP)のバックグラウンド処理を、サーバ20上の仮想モバイル端末21との間でシームレスに実行し、さらに、モバイル端末11と仮想モバイル端末21との間でのデータ共有の仕組みを構築することによって、モバイル端末11でのバックグラウンド処理の実行を抑制してモバイル端末11の電池消費を低減する。また、バックグラウンド処理自体は仮想モバイル端末21で実行しておりその結果をデータ共有によってモバイル端末11において利用可能とするので、モバイル端末11でのアプリケーション実行再開時に直ちに最新のデータを利用できるようになって、アプリケーションの処理速度が向上し、アプリケーションの高速起動が可能になる。
FIG. 1 shows the overall configuration of a system to which an application execution method according to an embodiment of the present invention is applied. A plurality of
図2(a)はモバイル端末11の論理構成の一例を示している。モバイル端末11は、モバイルOS(不図示)によって制御されるものであり、モバイルOS上で動作するアプリケーション12が実装されている。また、モバイル端末11と仮想モバイル端末21との間でバックグラウンド処理をシームレスに実行しデータ共有を実現するための連携機能15が、アプリケーション12からは独立したプログラムとしてモバイル端末11に実装されている。モバイル端末11には、モバイルOSによって制御される記憶装置として、フラッシュメモリなどのメモリカードなどからなるストレージ(記憶装置)13も設けられている。ストレージ13は、モバイルOSでのファイルシステムが構築されるものであってもよいし、他の形態でデータ等を格納するものであってもよい。
FIG. 2A shows an example of the logical configuration of the
ここで連携機能15について説明する。連携機能15は、例えば、モバイルOSにおけるライブラリの1つとして実現できるものであり、図10に示したモバイル端末におけるタスクマネージャの機能を拡張したものである。連携機能15は、(1)アプリケーション12の動作状況がフロントエンド動作なのかバックグラウンド動作なのかあるいは終了動作なのかを把握する機能と、(2)アプリケーション12に対して起動及び終了を指示するアプリケーション状態制御機能と、(3)アプリケーション12の永続化処理のためにアプリケーションデータを取得する機能と、(4)モバイル端末11と仮想モバイル端末21との間でのデータ共有あるいはデータ同期を実際に実行するストレージ共有機能16と、(5)永続化処理のためにアプリケーションデータをストレージ13に書き込むデータ反映機能と、を備えている。これらの機能は、連携機能15の中においてそれぞれ機能ブロックとして実装されるものである。
Here, the
図2(b)はサーバ20において構築される仮想モバイル端末21の論理構成を示している。仮想モバイル端末21は、モバイル端末11と同等の機能を仮想実行環境の下で実現したものであり、モバイル端末11のモバイルOSと同等のOSによって制御され、このOS上で動作するアプリケーション22が実装されている。アプリケーション22は、モバイル端末11のアプリケーション12と同じもの(少なくともバックグラウンド処理に関して同一の処理を実行するもの)である。また、仮想モバイル端末21には、モバイル端末11の連携機能15と連携してモバイル端末11と仮想モバイル端末21との間でバックグラウンド処理をシームレスに実行しデータ共有を実現するための連携機能25が、アプリケーション22からは独立したプログラムとして実装されている。連携機能25の内部には、モバイル端末11と仮想モバイル端末21との間でのデータ同期あるいはデータ共有を実際に実行するストレージ共有機能26も含んでいる。ストレージ23は、仮想モバイル端末21におけるアプリケーションデータを含むデータを格納するためのものであり、仮想モバイル端末21におけるOSでのファイルシステムが構築されるものであってもよいし、他の形態でデータ等を格納するものであってもよい。ストレージ23は、実装形態としては、例えば、サーバ20に設けられたHDD(ハードディスク装置)内の記憶領域として確保されるものである。
FIG. 2B shows a logical configuration of the virtual mobile terminal 21 constructed in the
連携機能25は、連携機能15と同様のものであるが、アプリケーションのバックグラウンド処理のみを行う仮想モバイル端末21に実装されるものであるから、アプリリケーションのフロントエンド動作に関連する機能は含んでいなくてよい。
The
次に、本実施形態におけるアプリケーションの実行の動作について、図3〜図6を用いて説明する。ここでは、アプリケーション12,22は、いずれも、連携機能15,25から終了を指示された場合にストレージ13,23に対してアプリケーションデータの書込みを行う永続化処理と、起動を指示された場合にストレージ13,23からアプリケーションデータを読出す復元処理を実行できるものであるとする。現在、モバイルOSの下で動作するアプリケーションでは、永続化処理及び復元処理の機能を備えているものは一般的である。ここでは、図9及び図10に示したものと同様に、ネットワークを介してウェブサイト90に接続してウェブサイト90から情報を取得し、処理を行い、処理結果を画面に表示するアプリケーションを例に挙げて説明する。
Next, the operation of executing the application in the present embodiment will be described with reference to FIGS. Here, the
まず、図3及び図4により、モバイル端末11からサーバ20上の仮想モバイル端末21へのアプリケーション実行のシームレスな移行について説明する。ここでは、モバイル端末11でのアプリケーションのバックグラウンド処理動作をサーバ20側で実行させることにより、モバイル端末11での電池消費を低減する。
First, a seamless transition of application execution from the
モバイル端末11に対するユーザ操作(図4のステップ131)によってアプリケーション12が起動し、アプリケーション12は、フロントエンドジョブとして実行され、ウェブサイト90にアクセスして情報を取得し、処理結果をモバイル端末11の画面に表示する。ユーザはこのアプリケーション12を利用することができる(ステップ132)。ユーザ操作終了が入力すると(ステップ133)、連携機能25がユーザ操作終了の入力を検知し(ステップ134)、図3の[1]に示すようにアプリケーション12の動作を終了させる(ステップ135)。図3の[2]に示すように、連携機能15はデータ永続化処理を実行し、アプリケーションデータがストレージ13に保存される(ステップ136)。ここでストレージ13に保存されたアプリケーションデータを考えると、このアプリケーションデータをモバイル端末11とは異なる処理装置の記憶装置に転送し、その処理装置においてその記憶装置からアプリケーションデータの復元処理を行い、復元したアプリケーションデータに基づいてアプリケーション12と同じ処理を実行したとすると、結局は、アプリケーション12の実行がモバイル端末11からそのモバイル端末11とは異なる処理装置にマイグレーションされたことになる。この実施形態では、モバイル端末11とは異なる処理装置がサーバ20上の仮想モバイル端末21であるとして、仮想モバイル端末21に対してアプリケーション12のマイグレーションを行う。
The
このマイグレーションのために、モバイル端末11の連携機能15は、ストレージ13に保存されたアプリケーションデータを取得し(ステップ137)、ネットワーク10を介して、サーバ20上の仮想モバイル端末21の連携機能25に対してアプリケーションデータを通知する(ステップ138)。これを受けて仮想モバイル端末21の連携機能25は、受け取ったアプリケーションデータをストレージ23に反映する(ステップ139)。これにより、図3の[2’]に示すように、モバイル端末11と仮想モバイル端末21との間でアプリケーションデータに関しストレージ13,23に格納されている情報が同期し、モバイル端末11と仮想モバイル端末21とはアプリケーションデータを情報として共有することになる。また、ステップ138でのアプリケーションデータの通知は、仮想モバイル端末21に対し、そのアプリケーションデータに基づいてアプリケーション22を起動することを指示するを意味する(図3の[3])。そこで連携機能25は、図3の[4]に示すようにアプリケーション22を起動し(ステップ140)、アプリケーション22はストレージ23からアプリケーションデータを復元して(ステップ141)、実行を開始する(ステップ142)。ここでアプリケーション22は、アプリケーション12でのバックグラウンド処理と同じ処理を実行し、ウェブサイト90からの情報取得を継続して実行する。
For this migration, the
以上の処理により、モバイル端末11から仮想モバイル端末21へのアプリケーションのマイグレーションが実現したことになる。ここでは、モバイル端末11側でアプリケーション12が終了した時の実行結果とそのときのメモリイメージとを表しているアプリケーションデータについて、モバイル端末11のストレージ13と仮想モバイル端末21のストレージ23間で同期させ、その後、仮想モバイル端末21においてアプリケーションデータの復元処理を行い、アプリケーション22を起動している。言い換えれば、アプリケーションのプログラムコード自体はマイグレーションの対象とはなっていない。モバイル端末11でのアプリケーション終了時のメモリ状態が仮想モバイル端末21で復元されるので、仮想モバイル端末21ではアプリケーションの継続動作が可能となる。
With the above processing, application migration from the
次に、図5及び図6を用いて、上述のように仮想モバイル端末21においてアプリケーション22が実行されているとして、モバイル端末11においてアプリケーション11を再度起動した場合の処理を説明する。この場合、アプリケーション実行が仮想モバイル端末21からモバイル端末11にシームレスに移行する。
Next, using FIG. 5 and FIG. 6, a process when the
図4のステップ142に示すように、仮想モバイル端末21上でアプリケーション22がウェブサイト90から情報を取得する処理を実行しているものとする。ここで、図5の[1]に示すようにユーザ操作によりアプリケーション起動の指示がモバイル端末11に入力されると(図6のステップ151)、モバイル端末11の連携機能15はこのユーザ操作の開始を検知し(ステップ152)、仮想モバイル端末22の連携機能25に対してアプリケーションデータを要求する(ステップ153)。このアプリケーションデータの要求は、図5の[2]に示すように、仮想モバイル端末21に対するアプリケーションの終了指示でもある。その結果、仮想モバイル端末21の連携機能25は、アプリケーション22の動作を終了させる(ステップ154)。図5の[3]に示すように、連携機能25はデータ永続化処理を実行し、アプリケーションデータがストレージ23に保存される(ステップ155)。次に、連携機能25は、ストレージ23に保存されたアプリケーションデータを取得し(ステップ156)、ネットワーク10を介して、モバイル端末11の連携機能15に対してアプリケーションデータを通知する(ステップ157)。これを受けてモバイル端末11の連携機能15は、受け取ったアプリケーションデータをストレージ13に反映する(ステップ158)。これにより、図5の[3’]に示すように、仮想モバイル端末21とモバイル端末11との間でアプリケーションデータに関しストレージ23,13に格納されている情報が同期し、仮想モバイル端末21とモバイル端末11とはアプリケーションデータを情報として共有することになる。情報が同期されたのち、連携機能15は、図5の[4]に示すようにアプリケーション12を起動し(ステップ159)、アプリケーション12はストレージ13からアプリケーションデータを復元する(ステップ160)。以上の処理によって、仮想モバイル端末21からモバイル端末11へのアプリケーションのマイグレーションが実現したことになる。この段階では、モバイル端末11上においてアプリケーション12はフロントエンドでは動作してはいない。次に、ユーザ操作が入力すると(ステップ161)、アプリケーション12はフロントエンドでの動作を開始し、ウェブサイト90からの情報取得を行って、ユーザによるアプリケーション利用を可能にする(ステップ162)。この状態は、次にユーザ操作終了(ステップ163)が入力するまで継続する。
As shown in
図5及び図6に示した処理においても、アプリケーションのプログラムコード自体はマイグレーションの対象とはなっておらず、アプリケーションデータについて、仮想モバイル端末21のストレージ23とモバイル端末11のストレージ13間で同期させ、その後、モバイル端末11においてアプリケーションデータの復元処理を行い、アプリケーション12を起動している。この場合も、モバイル端末11でのアプリケーションの継続動作が可能となっている。
In the processing shown in FIGS. 5 and 6, the application program code itself is not subject to migration, and the application data is synchronized between the
次に、本実施形態でのストレージ13,23でのデータ同期、データ共有の機構について説明する。上述した説明から明らかなように、モバイル端末11と仮想モバイル端末21との間でアプリケーション実行をシームレスに移行するためには、一方の端末においてアプリケーションの動作を終了させて永続化処理を行い、そのときのアプリケーションデータを他方の端末のストレージに転送して他方の端末において復元処理を行えばよい。しかしながら、アプリケーションの実行をモバイル端末11と仮想モバイル端末21との間で切り替えるたびに、その時点でのアプリケーションデータの全体を相手方の端末に転送するのは、アプリケーションデータのサイズが大きい場合には効率が悪く、アプリケーションの高速起動の妨げともなり得る。ユーザにとってはモバイル端末11でのアプリケーション起動の速度感が重要であるから、特に、仮想モバイル端末21からモバイル端末11へのアプリケーションデータ通知の効率化、高速化が望まれる。
Next, a data synchronization and data sharing mechanism in the
そこで、アプリケーションデータの全体を1回で送信することを避けて処理の効率化を図るために、例えば、アプリケーションデータをファイルに格納してそのファイル自体をモバイル端末11と仮想モバイル端末21との間で共有することが考えられる。その場合、共有対象のファイルをファイルシステムとして、モバイル端末11では連携機能15内のストレージ共有機能16にマウントポイントを設け、仮想モバイル端末21では連携機能25内のストレージ共有機能26にマウントポイントを設け、それらのマウントポイントに共有対象のファイルをマウントしてしまえばよい。具体的な実装としては、モバイル端末11やサーバ20とは別個に設けられたネットワークストレージをモバイル端末11のモバイルOSと仮想モバイル端末21のOSとがマウントするものや、仮想モバイル端末21のストレージ23をモバイル端末11のストレージ共有機能16内にマウントするものがある。仮想モバイル端末21のストレージ23をモバイル端末11にマウントする場合には、モバイル端末11側にキャッシュ機能を持たせるようにしてもよい。
Therefore, in order to avoid the transmission of the entire application data at a time and improve the processing efficiency, for example, the application data is stored in a file and the file itself is transferred between the
あるいは、モバイル端末11のストレージ13に格納されているアプリケーションデータと仮想モバイル端末21のストレージ23に格納されているアプリケーションデータとの差分情報あるいは更新情報のみをモバイル端末11と仮想モバイル端末21との間で共有することで、アプリケーションデータの全体を1回で送信することを避けて処理の効率化を図ることができる。共有の形態としては、例えば、差分情報あるいは更新情報をモバイル端末11と仮想モバイル端末21との間で転送することが考えられる。この場合、モバイル端末11でのアプリケーション12の起動時にすべての差分情報を送信すると処理が遅くなる恐れがあるので、仮想モバイル端末21においてアプリケーション22が動作している期間中に適度なタイミングで差分情報あるいは更新情報をモバイル端末11に送信し、この送信の都度、モバイル端末11においてストレージ13内のアプリケーションデータを更新するようにしてもよい。本実施形態では、データ共有を実現する連携機能15,25によって差分情報や更新情報の送信やそれに基づくデータ更新を実行するので、モバイル端末11においてアプリケーション12が動作していなくても、アプリケーションデータの更新が可能になる。アプリケーションが対象とするデータのフォーマット(例えば、テキストデータなのか、データベースのデータなのか、静止画像データなのか、動画像データなのか)に応じて、差分情報や更新情報の構成を最適化することによって、差分情報などの送信に要する時間を短縮でき、アプリケーションのより高速な起動と処理とを可能にする。また、アプリケーションデータの差分情報や更新情報の共有の形態としては、上述したファイルシステムを用い、そのファイルシステムに実装されたファイルに差分情報あるいは更新情報を格納し、このファイルをモバイル端末11と仮想モバイル端末21が共有するという形態もある。ファイル共有による形態によれば、差分情報などをモバイル端末11と仮想モバイル端末21との間で実際に転送しなくてよくなるので、差分情報などのファイルサイズが大きい場合に処理の効率化を図ることができる。
Alternatively, only difference information or update information between application data stored in the
モバイル端末11は、一般に無線によってネットワーク10に接続しており、モバイル端末11の移動中にサーバ20との接続が遮断されるなどの可能性もある。その場合、モバイル端末11と仮想モバイル端末21との間のアプリケーションデータの共有が途中で失敗することになる。そのような場合に備え、終状態保持機能としてアプリケーションデータを一時保存するキャッシュメモリをモバイル端末11に設け、仮想モバイル端末21との間でのアプリケーションデータの共有に失敗したときに、キャッシュメモリに保持されているアプリケーションデータに基づいてアプリケーション12を起動するようにしてもよい。このように終状態保持機能を設けると、アプリケーションデータの共有に失敗した場合に、仮想モバイル端末21で実行されたバックグラウンド処理の結果は反映されないが、アプリケーションの動作は確保できる。このような構成は、最終ステータスが重要なアプリケーション(例えば、Twitter(登録商標)API(アプリケーション・プログラミング・インタフェース))の場合に有効である。
The
図7は、モバイル端末11及び仮想モバイル端末21でのソフトウェア実装の一例を示している。モバイル端末11も仮想モバイル端末21も、ソフトウェア階層として、カーネルの上にライブラリがあり、ライブラリの上にミドルウェアがあり、最上位にActivityが位置している。モバイル端末11においてライブラリには、汎用のライブラリlibcと連携機能15が配置されている。カーネルには、ファイル関係の機能として、VFS(仮想ファイルシステム;Virtual File System)とLinux(登録商標)の1モジュールであるFuse(Filesystem in Userspace)が実装されている。アプリケーションであるActivityは、ファイルアクセスに際しては、ファイルAPIによりVFSにアクセスする。バックグラウンド処理を仮想モバイル端末21にシームレスに移行することをしない通常のアプリケーションの場合、そのアプリケーションからのストレージ13内のファイルへのアクセスは、VFSを用いて行われる。一方、連携機能15を利用する場合には、VFSからFuseを介して連携機能15にアクセスする。その結果、連携機能15を介して、モバイル端末11のストレージ13と仮想モバイル端末21のストレージ23との間で、アプリケーションデータの共有が可能になる。
FIG. 7 shows an example of software implementation in the
図8は、本実施形態のアプリケーション実行方法の適用の一例を説明する図である。本実施形態のアプリケーション実行方法は、モバイル端末向けのリソース貸出しサービスに適用することがある。従来もネットワーク上のデータストレージを提供して課金するサービスがあるが、ここで示すリソース貸出しサービスは、モバイル端末11での電池消費の節約を目的とする実行環境を提供する。したがって、課金モデルとしては、例えば、サーバ20上の仮想モバイル端末21でのバックグラウンド処理に係るCPU利用時間やそれに伴って節約されたモバイル端末11での電池節約量に応じた課金を行うものが考えられる。さらに、仮想モバイル端末21側でのストレージ利用量や、モバイル端末11と仮想モバイル端末21との間でのデータ転送量に応じた課金を行ってもよい。
FIG. 8 is a diagram illustrating an example of application of the application execution method of the present embodiment. The application execution method of this embodiment may be applied to a resource lending service for mobile terminals. Conventionally, there is a service for charging by providing data storage on a network, but the resource lending service shown here provides an execution environment for the purpose of saving battery consumption in the
以上、本発明の好ましい実施形態を説明したが、モバイル端末もサーバもハードウェアとしてはコンピュータそのものであるから、上述したモバイル端末及びサーバのいずれの機能もコンピュータ上でプログラムを実行させることによっても実現できる。 Although the preferred embodiments of the present invention have been described above, since both the mobile terminal and the server are computers themselves as hardware, any of the functions of the mobile terminal and the server described above can also be realized by executing a program on the computer. it can.
例えば、モバイル端末11は、ネットワークを介してサーバ20と接続し、アプリケーションを実行するコンピュータに、アプリケーションの状態制御を行う処理と、アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータをサーバ20との間で共有する処理と、アプリケーションの操作終了が入力されたときに、コンピュータでのアプリケーションを終了してサーバ20に対して、共有されたアプリケーションデータに基づいてアプリケーションの実行を継続させる処理と、アプリケーションの操作開始が入力されたときに、共有されているアプリケーションデータに基づいてアプリケーションを起動する処理と、を実行させるプログラムを読み込ませ、そのプログラムを実行させることによって実現できる。
For example, the
同様にサーバ20は、ネットワークを介してモバイル端末11と接続し、モバイル端末11において動作可能なアプリケーションを仮想実行するコンピュータに、仮想実行されるアプリケーションの状態制御を行う処理と、アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータをモバイル端末11との間で共有する処理と、モバイル端末11からの第1の通知があったときに、共有されたアプリケーションデータに基づいてアプリケーションを起動し、モバイル端末11からの第2の通知があったときにアプリケーションの実行を終了する処理と、を実行させるプログラムを読み込ませ、このプログラムを実行させることによって実現できる。ここで第1の通知及び第2通知は、モバイル端末11からコンピュータに対して送信されるイベントメッセージであり、例えば、第1の通知はアプリケーションの起動指示などであり、第2の通知はアプリケーションの終了指示などである。
Similarly, the
10 ネットワーク
11 モバイル端末
12,22 アプリケーション
13,23 ストレージ
14 タスクマネージャ
15,25 連携機能
16,26 ストレージ共有機能
20 サーバ
21 仮想モバイル端末
DESCRIPTION OF
Claims (8)
前記アプリケーションの状態制御を行い、前記アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを他のアプリケーション実行装置との間で共有し、前記アプリケーションの操作終了が入力されたときに、前記アプリケーション実行装置での前記アプリケーションを終了して前記他のアプリケーション実行装置に対して前記共有された前記アプリケーションデータに基づいて前記アプリケーションの実行を継続させ、前記アプリケーションの操作開始が入力されたときに、前記共有されているアプリケーションデータに基づいて前記アプリケーションを起動する連携機能手段を備えることを特徴とするアプリケーション実行装置。 In an application execution device that executes an application operable on a mobile OS,
When performing application state control, sharing application data indicating the memory state and status information at the time of execution of the application with other application execution devices, and when the operation end of the application is input, Ending the application on the application execution device and continuing execution of the application based on the shared application data to the other application execution device, and when an operation start of the application is input, An application execution apparatus comprising: a cooperation function unit that activates the application based on the shared application data.
前記アプリケーションの状態制御を行い、前記アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを他のアプリケーション実行装置との間で共有し、前記他のアプリケーション実行装置からの第1の通知があったときに前記共有された前記アプリケーションデータに基づいて前記アプリケーションを起動し、前記他のアプリケーション実行装置からの第2の通知があったときに前記アプリケーションの実行を終了する連携機能手段を備えることを特徴とするアプリケーション実行装置。 In an application execution device that virtually executes an application operable on a mobile OS,
Application state control is performed, application data indicating a memory state and status information at the time of execution of the application is shared with another application execution device, and a first notification from the other application execution device is received. And a linkage function unit that starts the application based on the shared application data when there is, and terminates the execution of the application when a second notification is received from the other application execution device. An application execution device.
前記第1の処理装置は、前記第1の処理装置での前記アプリケーションの状態制御を行い、前記アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを前記第2の処理装置との間で共有し、前記アプリケーションの操作終了が入力されたときに、前記第1の処理装置での前記アプリケーションを終了して前記第2の処理装置に対して第1の通知を送信し、前記アプリケーションの操作開始が入力されたときに、前記第2の処理装置に対して第2の通知を送信するとともに前記共有されているアプリケーションデータに基づいて前記第1の処理装置において前記アプリケーションを起動する第1の連携機能手段を備え、
前記第2の処理装置は、前記第2の処理装置での前記アプリケーションの仮想実行に関する状態制御を行い、前記アプリケーションデータを前記第1の処理装置との間で共有し、前記第1の処理装置から前記第1の通知があったときに、前記共有された前記アプリケーションデータに基づいて前記第2の処理装置において前記アプリケーションを起動し、前記第1の処理装置から前記第2の通知があったときに前記第2の処理装置における前記アプリケーションの実行を終了する第2の連携機能手段を備えることを特徴とするアプリケーション実行システム。 In an application execution system in which a first processing device that executes an application operable on a mobile OS and a second processing device are connected via a network.
The first processing device performs state control of the application in the first processing device, and provides application data indicating a memory state and status information when the application is executed to and from the second processing device. And when the end of the operation of the application is input, the application in the first processing device is terminated and a first notification is transmitted to the second processing device, and the application When an operation start is input, a first notification is transmitted to the second processing device and the application is started in the first processing device based on the shared application data. With the cooperation function means of
The second processing device performs state control regarding virtual execution of the application in the second processing device, shares the application data with the first processing device, and the first processing device. When the first notification is received, the application is started in the second processing device based on the shared application data, and the second notification is received from the first processing device. An application execution system characterized by comprising second linkage function means for sometimes terminating execution of the application in the second processing device.
前記アプリケーションの状態制御を行う処理と、
前記アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを前記サーバとの間で共有する処理と、
前記アプリケーションの操作終了が入力されたときに、前記コンピュータでの前記アプリケーションを終了して前記サーバに対して前記共有された前記アプリケーションデータに基づいて前記アプリケーションの実行を継続させる処理と、
前記アプリケーションの操作開始が入力されたときに、前記共有されているアプリケーションデータに基づいて前記アプリケーションを起動する処理と、
を実行させるプログラム。 Connect to the server via the network and run the application on the computer
A process for controlling the state of the application;
Processing of sharing application data indicating the memory state and status information during execution of the application with the server;
A process of ending the application on the computer and continuing execution of the application based on the shared application data to the server when an operation end of the application is input;
A process of starting the application based on the shared application data when an operation start of the application is input;
A program that executes
前記仮想実行されるアプリケーションの状態制御を行う処理と、
前記アプリケーションの実行時のメモリ状態とステータス情報とを示すアプリケーションデータを前記モバイル端末との間で共有する処理と、
前記モバイル端末からの第1の通知があったときに前記共有された前記アプリケーションデータに基づいて前記アプリケーションを起動し、
前記モバイル端末からの第2の通知があったときに前記アプリケーションの実行を終了する処理と、
を実行させるプログラム。 A computer that connects to a mobile terminal via a network and virtually executes an application operable on the mobile terminal.
A process for controlling the state of the virtually executed application;
A process of sharing application data indicating the memory state and status information during execution of the application with the mobile terminal;
Activating the application based on the shared application data when there is a first notification from the mobile terminal;
A process of terminating execution of the application when there is a second notification from the mobile terminal;
A program that executes
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012012257A JP5705757B2 (en) | 2012-01-24 | 2012-01-24 | Application execution apparatus, system, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012012257A JP5705757B2 (en) | 2012-01-24 | 2012-01-24 | Application execution apparatus, system, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013152545A true JP2013152545A (en) | 2013-08-08 |
JP5705757B2 JP5705757B2 (en) | 2015-04-22 |
Family
ID=49048850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012012257A Expired - Fee Related JP5705757B2 (en) | 2012-01-24 | 2012-01-24 | Application execution apparatus, system, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5705757B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338378A (en) * | 2005-06-02 | 2006-12-14 | Fujitsu Ltd | Data sharing device and data sharing processing program |
JP2010527057A (en) * | 2007-04-25 | 2010-08-05 | クゥアルコム・インコーポレイテッド | A device that determines whether an application should be launched locally or remotely as a web application |
WO2010095731A1 (en) * | 2009-02-19 | 2010-08-26 | 日本電気株式会社 | Information processing device, information processing system, information processing method, and program recording medium |
-
2012
- 2012-01-24 JP JP2012012257A patent/JP5705757B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338378A (en) * | 2005-06-02 | 2006-12-14 | Fujitsu Ltd | Data sharing device and data sharing processing program |
JP2010527057A (en) * | 2007-04-25 | 2010-08-05 | クゥアルコム・インコーポレイテッド | A device that determines whether an application should be launched locally or remotely as a web application |
WO2010095731A1 (en) * | 2009-02-19 | 2010-08-26 | 日本電気株式会社 | Information processing device, information processing system, information processing method, and program recording medium |
Also Published As
Publication number | Publication date |
---|---|
JP5705757B2 (en) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240095043A1 (en) | Execution of sub-application processes within application program | |
US11803451B2 (en) | Application exception recovery | |
US10310893B2 (en) | Managing container pause and resume | |
CN108616382B (en) | Method and device for upgrading network card firmware, network card and equipment | |
EP3951595A1 (en) | Method and apparatus for graphics rendering | |
CN103282875B (en) | Multi-operating system | |
US20190235904A1 (en) | Cloning services in virtualized computing systems | |
WO2014153479A1 (en) | Decentralized operating system | |
CN110300328B (en) | Video playing control method and device and readable storage medium | |
US9600369B2 (en) | Operating system recovery method and apparatus, and terminal device | |
US9317344B2 (en) | Power efficient brokered communication supporting notification blocking | |
JP2015503784A (en) | Migration between virtual machines in the graphics processor | |
JP2016508647A (en) | Method and system for supporting resource separation in a multi-core architecture | |
CN112148422A (en) | IO processing method and device | |
CN102385523A (en) | Method for installing and managing driver of cloud operating system | |
CN110928935B (en) | Data access command processing method, device and system | |
US11789718B2 (en) | System and method for subscription based solution modification implementation | |
US11588909B1 (en) | System and method for subscription based solution data compatibility | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
EP3213198B1 (en) | Monitoring a mobile device application | |
CN115421787A (en) | Instruction execution method, apparatus, device, system, program product, and medium | |
TWI668634B (en) | Software container based systems and methods for providing cloud services | |
JP2010134710A (en) | Method for migrating virtual machine, server, and program | |
EP4044015A1 (en) | Data processing method and apparatus | |
WO2023066246A1 (en) | Method and system for installing application on cloudphone, and client cloudphone |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141014 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20141027 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20141031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141127 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20141211 |
|
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: 20150224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5705757 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |