JP2013190879A - Computer system and system control method - Google Patents

Computer system and system control method Download PDF

Info

Publication number
JP2013190879A
JP2013190879A JP2012055095A JP2012055095A JP2013190879A JP 2013190879 A JP2013190879 A JP 2013190879A JP 2012055095 A JP2012055095 A JP 2012055095A JP 2012055095 A JP2012055095 A JP 2012055095A JP 2013190879 A JP2013190879 A JP 2013190879A
Authority
JP
Japan
Prior art keywords
mobile terminal
information processing
unit
application
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012055095A
Other languages
Japanese (ja)
Other versions
JP5635027B2 (en
Inventor
Keitaro Horikawa
桂太郎 堀川
Chen Eric
チェン エリック
Shoji Toyama
将司 外山
Shunsuke Kurumaya
駿介 車谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012055095A priority Critical patent/JP5635027B2/en
Publication of JP2013190879A publication Critical patent/JP2013190879A/en
Application granted granted Critical
Publication of JP5635027B2 publication Critical patent/JP5635027B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To suppress deterioration of productivity concerning development of an application by a developer who develops the application.SOLUTION: A computer system according to an embodiment includes: a plurality of information processors which execute the same application; and a management device which manages the information processors. The management device determines whether or not there is difference in progress concerning execution of the application among the plurality of information processors. In addition, the management device makes the plurality of information processors transfer continuation according to the presence/absence of the difference in progress.

Description

本発明の実施形態は、コンピュータシステム及びシステム制御方法に関する。   Embodiments described herein relate generally to a computer system and a system control method.

一般的に、様々なアプリケーション(「アプリケーションプログラム」、「アプリ」等とも呼ばれる)が各種多様なコンピュータ上で実行されている。例えば、アプリケーションは、物理的に存在する物理装置において実行される場合もあれば、仮想的に形成された仮想装置において実行される場合もある。物理装置の例としては、携帯電話機やPDA(Personal Digital Assistant)等の移動端末(「モバイル端末」などとも呼ばれる)や、PC(Personal Computer)や、サーバ装置等が挙げられる。仮想装置の例としては、仮想的な移動端末やPCやサーバ装置等が挙げられる。   In general, various applications (also referred to as “application programs”, “applications”, etc.) are executed on various computers. For example, the application may be executed in a physical device that physically exists, or may be executed in a virtual device that is virtually formed. Examples of physical devices include mobile terminals (also called “mobile terminals”) such as mobile phones and PDAs (Personal Digital Assistants), PCs (Personal Computers), server devices, and the like. Examples of virtual devices include virtual mobile terminals, PCs, server devices, and the like.

また、アプリケーションは、上記例に限られず、物理的に存在する移動端末、PC、サーバ装置、通信装置、外部記憶装置などによって形成される物理装置群によって協働して実行される場合もある。同様に、アプリケーションは、仮想的な移動端末、仮想的なPC、仮想的なサーバ装置、仮想的な通信装置、仮想的な外部記憶装置などによって形成される仮想装置群によって協働して実行される場合もある。なお、仮想的な各種装置は、例えば、クラウドサーバ上に形成されることが多い。   The application is not limited to the above example, and may be executed in cooperation with a physical device group formed by a mobile terminal, a PC, a server device, a communication device, an external storage device, and the like that physically exist. Similarly, an application is executed in cooperation by a virtual device group formed by a virtual mobile terminal, a virtual PC, a virtual server device, a virtual communication device, a virtual external storage device, and the like. There is also a case. Note that various virtual devices are often formed on a cloud server, for example.

近年、アプリケーションは、実行環境が多様化している中でも継続的に実行されることが求められている。例えば、スマートフォン(Smart Phone)のような移動端末は、移動中にIPアドレスが変化したり、電波が届かない環境に置かれたり、電池切れが発生する場合がある。このように実行環境が変化する場合であっても、移動端末において実行されるアプリケーションは、継続的に実行されることが求められている。   In recent years, applications have been required to be executed continuously even in a diversified execution environment. For example, a mobile terminal such as a smart phone may change its IP address during movement, be placed in an environment where radio waves do not reach, or may run out of battery. Even when the execution environment changes in this way, the application executed on the mobile terminal is required to be executed continuously.

このような状況下において、アプリケーションは、物理装置及び仮想装置によって協働して実行される場合がある。例えば、アプリケーションは、ローカル環境又はリモート環境における物理装置や仮想装置の資源において実行される場合がある。   Under such circumstances, the application may be executed cooperatively by the physical device and the virtual device. For example, an application may be executed on a resource of a physical device or a virtual device in a local environment or a remote environment.

木南英夫著 「Google Android(登録商品) アプリケーション開発入門」、日経BP社、P.274−275、2009年6月18日Hideo Kinan “Google Android (Registered Product) Application Development Introduction”, Nikkei Business Publications, Inc. 274-275, June 18, 2009

しかしながら、上記の従来技術においては、アプリケーションの開発者(以下、「アプリ開発者」と表記する場合がある)の生産性が低下するおそれがあった。具体的には、アプリ開発者は、物理装置及び仮想装置によって協働して実行されるアプリケーションを開発する場合、物理装置及び仮想装置における資源の位置、性能、設計情報、固有機能等の実行環境を理解して注意深く設計することを要する。このため、アプリ開発者は、アプリケーションの主たる機能を実現するためのロジックをコーディングする他に、実行環境を意識した実行制御ロジックをコーディングすることを要することとなる。このようなことは、アプリ開発における生産性の低下を招く。   However, in the above-described conventional technology, there is a possibility that productivity of an application developer (hereinafter sometimes referred to as “application developer”) may be reduced. Specifically, when an application developer develops an application that is executed in cooperation with a physical device and a virtual device, an execution environment such as the location of resources, performance, design information, and unique functions in the physical device and virtual device. It is necessary to understand and carefully design. For this reason, the application developer needs to code execution control logic that is conscious of the execution environment in addition to coding logic for realizing the main functions of the application. This causes a decrease in productivity in application development.

本願の開示する技術は、上記に鑑みてなされたものであって、アプリケーションの生産性の低下を抑制することができるコンピュータシステム及びシステム制御方法を提供することを目的とする。   The technology disclosed in the present application has been made in view of the above, and an object thereof is to provide a computer system and a system control method capable of suppressing a decrease in productivity of an application.

実施形態に係るコンピュータシステムは、同一のアプリケーションを実行する複数の情報処理装置と、前記情報処理装置を管理する管理装置とを含むコンピュータシステムであって、前記情報処理装置は、前記アプリケーションを実行制御する実行制御部と、前記実行制御部における前記アプリケーションの実行にかかる進捗を示す進捗情報を収集する収集部と、前記管理装置の指示に従って、前記アプリケーションを実行中の前記実行制御部における計算状態を示す計算状態情報を生成する生成部と、前記管理装置から計算状態情報が提供された場合に、当該計算状態情報によって示される計算状態を当該実行制御部における計算状態に適用する適用部とを備え、前記管理装置は、前記複数の情報処理装置における前記収集部によって収集された各進捗情報を比較することにより、当該複数の情報処理装置の間で前記アプリケーションの実行にかかる進捗に差異があるか否かを判定する判定部と、前記判定部による進捗の差異の有無に応じて、第1情報処理装置よりも前記アプリケーションの実行が進行している第2情報処理装置に対して前記計算状態情報を生成させ、生成された計算状態情報を前記第1情報処理装置に提供する提供部とを備えることを特徴とする。   A computer system according to an embodiment is a computer system including a plurality of information processing apparatuses that execute the same application and a management apparatus that manages the information processing apparatus, and the information processing apparatus controls execution of the application An execution control unit, a collection unit that collects progress information indicating the progress of execution of the application in the execution control unit, and a calculation state in the execution control unit that is executing the application according to an instruction of the management device A generation unit that generates calculation state information to be displayed; and an application unit that applies the calculation state indicated by the calculation state information to the calculation state in the execution control unit when the calculation state information is provided from the management device. The management device collects data by the collection unit in the plurality of information processing devices. A determination unit that determines whether or not there is a difference in the progress of execution of the application among the plurality of information processing devices by comparing each progress information, and whether or not there is a difference in progress by the determination unit In response, the second information processing apparatus in which the execution of the application is proceeding more than the first information processing apparatus generates the calculation state information, and the generated calculation state information is transmitted to the first information processing apparatus. And a providing unit to provide.

実施形態に係るコンピュータシステム及びシステム制御方法は、アプリケーションの生産性の低下を抑制することができるという効果を奏する。   The computer system and the system control method according to the embodiment have an effect of being able to suppress a decrease in application productivity.

図1は、第1の実施形態に係るコンピュータシステムの構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of a computer system according to the first embodiment. 図2は、第1の実施形態に係るコンピュータシステムによる処理の一例を説明するための説明図である。FIG. 2 is an explanatory diagram for explaining an example of processing by the computer system according to the first embodiment. 図3は、第1の実施形態に係るコンピュータシステムに含まれる各装置の構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of each device included in the computer system according to the first embodiment. 図4は、第1の実施形態に係るコンピュータシステムによる処理手順を示すフローチャートである。FIG. 4 is a flowchart illustrating a processing procedure performed by the computer system according to the first embodiment. 図5は、第2の実施形態に係るコンピュータシステムに含まれる各装置の構成例を示す図である。FIG. 5 is a diagram illustrating a configuration example of each device included in the computer system according to the second embodiment. 図6は、第2の実施形態に係るプロファイル生成部によって生成される実行プロファイルの一例を概念的に示す図である。FIG. 6 is a diagram conceptually illustrating an example of an execution profile generated by the profile generation unit according to the second embodiment. 図7は、管理プログラムを実行するコンピュータを示す図である。FIG. 7 is a diagram illustrating a computer that executes a management program.

以下に、本願に係るコンピュータシステム及びシステム制御方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るコンピュータシステム及びシステム制御方法が限定されるものではない。   Hereinafter, embodiments of a computer system and a system control method according to the present application will be described in detail with reference to the drawings. The computer system and the system control method according to the present application are not limited by this embodiment.

(第1の実施形態)
[第1の実施形態に係るコンピュータシステムの構成]
まず、図1を用いて、第1の実施形態に係るコンピュータシステムについて説明する。図1は、第1の実施形態に係るコンピュータシステム1の構成例を示す図である。図1に例示するように、第1の実施形態に係るコンピュータシステム1には、管理装置100と、移動端末200と、クラウドサーバ300とが含まれる。
(First embodiment)
[Configuration of Computer System According to First Embodiment]
First, the computer system according to the first embodiment will be described with reference to FIG. FIG. 1 is a diagram illustrating a configuration example of a computer system 1 according to the first embodiment. As illustrated in FIG. 1, the computer system 1 according to the first embodiment includes a management device 100, a mobile terminal 200, and a cloud server 300.

第1の実施形態に係るコンピュータシステム1では、移動端末200及びクラウドサーバ300において同一のアプリケーションが実行される。管理装置100は、移動端末200及びクラウドサーバ300におけるアプリケーションの実行状況を管理する。かかる管理装置100は、ネットワークNを介して移動端末200と通信可能に接続される。また、管理装置100は、クラウドサーバ300とも通信可能に接続される。   In the computer system 1 according to the first embodiment, the same application is executed in the mobile terminal 200 and the cloud server 300. The management device 100 manages the execution status of applications in the mobile terminal 200 and the cloud server 300. The management apparatus 100 is connected to the mobile terminal 200 via the network N so as to be communicable. The management apparatus 100 is also connected to the cloud server 300 so as to be communicable.

移動端末200は、例えば、携帯電話機やPDA等の情報処理装置であって、ネットワークNと無線通信を行うことにより、管理装置100と通信可能に接続される。かかる移動端末200は、利用者による操作に従ってアプリケーションを実行したり、所定の時刻になった際にアプリケーションを実行したり、起動中に常駐型のアプリケーションを常に実行したりする。   The mobile terminal 200 is an information processing apparatus such as a mobile phone or a PDA, and is connected to the management apparatus 100 so as to be communicable by performing wireless communication with the network N. The mobile terminal 200 executes an application according to an operation by a user, executes an application when a predetermined time comes, and always executes a resident application during startup.

なお、第1の実施形態に係る移動端末200は、スマートフォンであり、Android(登録商標)等のモバイルOS(Operating System)がインストールされているものとする。すなわち、第1の実施形態に係る移動端末200は、例えば、モバイルOS上で動作するアプリケーションを実行する。   Note that the mobile terminal 200 according to the first embodiment is a smartphone, and a mobile OS (Operating System) such as Android (registered trademark) is installed. That is, the mobile terminal 200 according to the first embodiment executes an application that operates on the mobile OS, for example.

クラウドサーバ300は、1台以上の物理装置が含まれ、かかる物理装置によって仮想的な移動端末、仮想的なPC、仮想的なサーバ装置、仮想的な通信装置、仮想的な外部記憶装置などを含む仮想装置群が形成される。第1の実施形態に係るクラウドサーバ300は、移動端末200に対応する仮想移動端末301を形成する。そして、クラウドサーバ300は、かかる仮想移動端末301によって、移動端末200において実行されるアプリケーションと同一のアプリケーションを実行する。   The cloud server 300 includes one or more physical devices, and a virtual mobile terminal, a virtual PC, a virtual server device, a virtual communication device, a virtual external storage device, and the like are included in the physical device. A virtual device group is formed. The cloud server 300 according to the first embodiment forms a virtual mobile terminal 301 corresponding to the mobile terminal 200. Then, the cloud server 300 uses the virtual mobile terminal 301 to execute the same application as the application executed on the mobile terminal 200.

なお、図1に示した例において、管理装置100は、物理的に存在する物理装置であってもよいし、クラウドサーバ300によって実現される仮想装置であってもよいし、図示しない他のクラウドサーバによって実現される仮想装置であってもよい。   In the example illustrated in FIG. 1, the management apparatus 100 may be a physical apparatus that physically exists, a virtual apparatus that is realized by the cloud server 300, or another cloud that is not illustrated. It may be a virtual device realized by a server.

[第1の実施形態に係るコンピュータシステムによる処理例]
次に、図2を用いて、第1の実施形態に係るコンピュータシステム1による処理について説明する。図2は、第1の実施形態に係るコンピュータシステム1による処理の一例を説明するための説明図である。
[Example of Processing by Computer System According to First Embodiment]
Next, processing performed by the computer system 1 according to the first embodiment will be described with reference to FIG. FIG. 2 is an explanatory diagram for explaining an example of processing by the computer system 1 according to the first embodiment.

図2に示した例において、移動端末200及びクラウドサーバ300は、同一のアプリケーションXを同時に実行する。移動端末200におけるアプリケーションXの実行環境は、物理的な装置で実行されることを示す物理実行環境Pに該当する。また、クラウドサーバ300におけるアプリケーションXの実行環境は、仮想的な仮想移動端末301で実行されることを示す仮想実行環境Vに該当する。   In the example illustrated in FIG. 2, the mobile terminal 200 and the cloud server 300 simultaneously execute the same application X. The execution environment of the application X in the mobile terminal 200 corresponds to the physical execution environment P indicating that it is executed by a physical device. Further, the execution environment of the application X in the cloud server 300 corresponds to a virtual execution environment V indicating that it is executed by the virtual virtual mobile terminal 301.

アプリケーションXは、移動端末200及びクラウドサーバ300に対して共通の実行態様となるように、中間コード(バイトコード)化されている。すなわち、移動端末200及びクラウドサーバ300は、アプリケーションXに対応する同一のバイナリコードを実行することで、それぞれ同一の実行結果を得る。かかるアプリケーションXの実行時に行われる全体処理は、所定の部分処理毎に区分けすることができる。部分処理の一例としては、関数型プログラムの場合には「関数」、オブジェクト指向プログラムの場合には「メソッド」などが挙げられる。図2では、アプリケーションXによる全体処理が部分処理J1〜J10に区分けされる例を示している。   The application X is converted into an intermediate code (byte code) so as to be a common execution mode for the mobile terminal 200 and the cloud server 300. That is, the mobile terminal 200 and the cloud server 300 obtain the same execution result by executing the same binary code corresponding to the application X, respectively. The entire process performed when the application X is executed can be classified for each predetermined partial process. An example of partial processing includes “function” in the case of a functional program, and “method” in the case of an object-oriented program. FIG. 2 shows an example in which the entire process by the application X is divided into partial processes J1 to J10.

また、移動端末200及びクラウドサーバ300は、各種アプリケーションを実行する際に、アプリケーションの実行状況等を確認するタイミングであるチェックポイントが設定される。そして、移動端末200及びクラウドサーバ300は、チェックポイントが設定されている時刻になった場合に、アプリケーションをどこまで実行したかを示す進捗情報を管理装置100に通知する。第1の実施形態では、一定の時間間隔(例えば、1分、5分、30分など)毎にチェックポイントが設定されるものとする。   In addition, when the mobile terminal 200 and the cloud server 300 execute various applications, a check point that is a timing for confirming the execution status of the application is set. Then, the mobile terminal 200 and the cloud server 300 notify the management apparatus 100 of progress information indicating how far the application has been executed when the check point is reached. In the first embodiment, it is assumed that checkpoints are set at regular time intervals (for example, 1 minute, 5 minutes, 30 minutes, etc.).

このような前提の下、図2に示した例において、移動端末200(物理実行環境P)は、1番目のチェックポイントCP1の時点で、部分処理J1の実行を完了している。このとき、移動端末200は、部分処理J1の実行が完了したことを示す進捗情報を管理装置100に通知する。同様に、クラウドサーバ300(仮想実行環境V)は、チェックポイントCP1の時点で、部分処理J1の実行を完了しており、部分処理J1の実行が完了したことを示す進捗情報を管理装置100に通知する。   Under such a premise, in the example shown in FIG. 2, the mobile terminal 200 (physical execution environment P) has completed the execution of the partial process J1 at the time of the first checkpoint CP1. At this time, the mobile terminal 200 notifies the management apparatus 100 of progress information indicating that the execution of the partial process J1 is completed. Similarly, the cloud server 300 (virtual execution environment V) has completed the execution of the partial process J1 at the time of the checkpoint CP1, and sends progress information indicating that the execution of the partial process J1 has been completed to the management apparatus 100. Notice.

管理装置100は、チェックポイントCP1の時点で、移動端末200及びクラウドサーバ300から進捗情報を受信する。ここでは、管理装置100は、移動端末200及びクラウドサーバ300から受信した進捗情報に差異がないので、移動端末200及びクラウドサーバ300に対して処理を行わない。   The management device 100 receives progress information from the mobile terminal 200 and the cloud server 300 at the time of the checkpoint CP1. Here, since there is no difference in the progress information received from the mobile terminal 200 and the cloud server 300, the management apparatus 100 does not perform processing on the mobile terminal 200 and the cloud server 300.

続いて、2番目のチェックポイントCP2の時点において、移動端末200は、図中に点線で示した部分処理J2まで実行を完了しているものとする。かかる場合に、移動端末200は、部分処理J1及びJ2の実行が完了したことを示す進捗情報を管理装置100に通知する。一方、クラウドサーバ300は、チェックポイントCP2の時点で、部分処理J5の実行を完了しているものとする。かかる場合に、クラウドサーバ300は、部分処理J1〜J5の実行が完了したことを示す進捗情報を管理装置100に通知する。   Subsequently, at the time of the second checkpoint CP2, it is assumed that the mobile terminal 200 has completed execution up to the partial process J2 indicated by the dotted line in the drawing. In such a case, the mobile terminal 200 notifies the management apparatus 100 of progress information indicating that the execution of the partial processes J1 and J2 has been completed. On the other hand, it is assumed that the cloud server 300 has completed the execution of the partial process J5 at the time of the checkpoint CP2. In such a case, the cloud server 300 notifies the management apparatus 100 of progress information indicating that the execution of the partial processes J1 to J5 has been completed.

管理装置100は、チェックポイントCP2の時点において、移動端末200及びクラウドサーバ300から受信した進捗情報に基づいて、移動端末200では部分処理J2まで実行が完了しているが、クラウドサーバ300では部分処理J5まで実行が完了していることを検知する。かかる場合に、管理装置100は、移動端末200及びクラウドサーバ300における実行済みの部分処理数の差が所定の処理数閾値以上であるか否かを判定する。そして、管理装置100は、実行済みの部分処理数の差が処理数閾値(ここでは、処理数閾値「3」とする)以上である場合には、移動端末200及びクラウドサーバ300におけるアプリケーションXの実行状況を同期させる。   The management device 100 has completed execution up to the partial process J2 in the mobile terminal 200 based on the progress information received from the mobile terminal 200 and the cloud server 300 at the time of the checkpoint CP2, but the partial process is not performed in the cloud server 300. It is detected that execution has been completed up to J5. In such a case, the management apparatus 100 determines whether or not the difference in the number of partial processes already executed in the mobile terminal 200 and the cloud server 300 is equal to or greater than a predetermined process number threshold. When the difference in the number of executed partial processes is equal to or greater than the process number threshold (here, the process number threshold is “3”), the management apparatus 100 determines whether the application X of the mobile terminal 200 and the cloud server 300 Synchronize execution status.

具体的には、管理装置100は、実行済みの部分処理数が多いクラウドサーバ300から、「継続(continuation)」を取得する。ここで、「継続(continuation)」とは、これから実行する計算処理がデータとして具現化されたデータを示し、これまでの計算処理で到達した計算状態(CPU、スタック、ヒープ、プログラムカウンタ)をスナップショットとして切りとったデータ構造に相当する。   Specifically, the management apparatus 100 acquires “continuation” from the cloud server 300 with a large number of executed partial processes. Here, “continuation” means data in which the calculation process to be executed is embodied as data, and snaps the calculation state (CPU, stack, heap, program counter) reached in the previous calculation process This corresponds to the data structure cut out as a shot.

図2の例では、実行済みの部分処理数の差「3」が処理数閾値「3」以上であるので、管理装置100は、部分処理J5が完了した時点での継続(continuation)をクラウドサーバ300から取得し、取得した継続(continuation)を移動端末200に送信する。移動端末200は、管理装置100から受信した継続(continuation)を実行することで、アプリケーションXの実行状況を部分処理J5の実行完了まで進めることができる。   In the example of FIG. 2, since the difference “3” in the number of executed partial processes is greater than or equal to the process number threshold “3”, the management apparatus 100 continues the continuation at the time when the partial process J5 is completed. The continuation acquired from 300 is transmitted to the mobile terminal 200. The mobile terminal 200 can advance the execution status of the application X until the execution of the partial process J5 is completed by executing the continuation received from the management apparatus 100.

続いて、チェックポイントCP3の時点では、移動端末200は、図中に点線で示した部分処理J8まで実行を完了しているものとする。かかる場合に、移動端末200は、部分処理J1〜J8の実行が完了したことを示す進捗情報を管理装置100に通知する。一方、クラウドサーバ300は、チェックポイントCP3の時点で、部分処理J10まで実行を完了しているものとする。かかる場合に、クラウドサーバ300は、部分処理J1〜J10の実行が完了したことを示す進捗情報を管理装置100に通知する。   Subsequently, at the time of the check point CP3, it is assumed that the mobile terminal 200 has completed the execution up to the partial process J8 indicated by the dotted line in the drawing. In such a case, the mobile terminal 200 notifies the management apparatus 100 of progress information indicating that the execution of the partial processes J1 to J8 has been completed. On the other hand, it is assumed that the cloud server 300 has completed execution up to the partial process J10 at the time of the checkpoint CP3. In such a case, the cloud server 300 notifies the management apparatus 100 of progress information indicating that the execution of the partial processes J1 to J10 has been completed.

管理装置100は、チェックポイントCP3の時点において、移動端末200及びクラウドサーバ300における実行済みの部分処理数の差「2」が処理数閾値「3」以上でないと判定する。かかる場合には、管理装置100は、移動端末200及びクラウドサーバ300におけるアプリケーションXの実行状況を同期させない。すなわち、管理装置100は、移動端末200とクラウドサーバ300との間で継続(continuation)の受け渡しを行わせない。   The management apparatus 100 determines that the difference “2” in the number of partial processes already executed in the mobile terminal 200 and the cloud server 300 is not greater than or equal to the process number threshold “3” at the time of the checkpoint CP3. In such a case, the management apparatus 100 does not synchronize the execution status of the application X in the mobile terminal 200 and the cloud server 300. That is, the management apparatus 100 does not perform continuation delivery between the mobile terminal 200 and the cloud server 300.

このように、第1の実施形態に係るコンピュータシステム1では、複数の情報処理装置である移動端末200及びクラウドサーバ300におけるアプリケーションの実行状況を同期させる。具体的には、コンピュータシステム1では、一方の情報処理装置(移動端末200又はクラウドサーバ300)よりも他方の情報処理装置(移動端末200又はクラウドサーバ300)の方がアプリケーションの実行が進行している場合に、実行が遅れている一方の情報処理装置の実行状況を、実行が進行している他方の情報処理装置の実行状況に同期させる。   As described above, in the computer system 1 according to the first embodiment, the execution states of applications in the mobile terminal 200 and the cloud server 300 that are a plurality of information processing apparatuses are synchronized. Specifically, in the computer system 1, the execution of the application is progressed in the other information processing apparatus (mobile terminal 200 or cloud server 300) than in the one information processing apparatus (mobile terminal 200 or cloud server 300). The execution status of one information processing device whose execution is delayed is synchronized with the execution status of the other information processing device whose execution is progressing.

これにより、第1の実施形態に係るコンピュータシステム1では、移動端末200におけるアプリケーションの実行状況がクラウドサーバ300よりも遅れている場合には、移動端末200におけるアプリケーションの実行状況をクラウドサーバ300における実行状況まで進行させることができる。また、第1の実施形態に係るコンピュータシステム1では、クラウドサーバ300におけるアプリケーションの実行状況が移動端末200よりも遅れている場合には、クラウドサーバ300におけるアプリケーションの実行状況を移動端末200における実行状況まで進行させることができる。すなわち、コンピュータシステム1では、移動端末200等の情報処理装置における実行環境が変化する場合であっても、アプリケーションの実行を維持することができる。   Thereby, in the computer system 1 according to the first embodiment, when the execution state of the application in the mobile terminal 200 is delayed from the cloud server 300, the execution state of the application in the mobile terminal 200 is executed in the cloud server 300. You can make progress to the situation. In the computer system 1 according to the first embodiment, when the execution state of the application in the cloud server 300 is behind the mobile terminal 200, the execution state of the application in the cloud server 300 is changed to the execution state in the mobile terminal 200. Can be advanced. That is, the computer system 1 can maintain application execution even when the execution environment of the information processing apparatus such as the mobile terminal 200 changes.

例えば、移動端末200は、アプリケーションの実行中に、IPアドレスが変化したり、電波が届かない環境に置かれたり、電池切れが発生したりすることがある。そして、移動端末200は、このように実行環境が変化した場合には、アプリケーションの実行が遅延、中断又は停止することがある。しかし、第1の実施形態に係るコンピュータシステム1では、移動端末200におけるアプリケーションの実行に遅延等が発生した場合であっても、クラウドサーバ300においてアプリケーションの実行が維持される。このため、コンピュータシステム1では、移動端末200の実行環境が改善された場合に、かかる移動端末200の実行状況をクラウドサーバ300の実行状況に同期させることができる。このようなことから、第1の実施形態に係るコンピュータシステム1では、スマートフォンのような移動端末200における実行環境が変化する場合であっても、アプリケーションを継続的に実行することができる。   For example, the mobile terminal 200 may change its IP address, be placed in an environment where radio waves do not reach, or run out of battery during execution of an application. When the execution environment changes in this way, the mobile terminal 200 may delay, interrupt, or stop the execution of the application. However, in the computer system 1 according to the first embodiment, even when a delay or the like occurs in the execution of the application in the mobile terminal 200, the execution of the application is maintained in the cloud server 300. For this reason, in the computer system 1, when the execution environment of the mobile terminal 200 is improved, the execution status of the mobile terminal 200 can be synchronized with the execution status of the cloud server 300. For this reason, the computer system 1 according to the first embodiment can continuously execute an application even when the execution environment of the mobile terminal 200 such as a smartphone changes.

そして、コンピュータシステム1では、移動端末200(物理実行環境P)と、クラウドサーバ300(仮想実行環境V)のように、複数の実行環境でアプリケーションが実行されるが、同一のアプリケーションが双方の実行環境内において実行される。すなわち、コンピュータシステム1において実行されるアプリケーションを開発するアプリ開発者は、物理装置内で実行されるアプリケーションを開発すればよいので、物理装置及び仮想装置における資源の位置、性能、設計情報、固有機能等の実行環境を理解して注意深く設計することを要せず、実行環境を意識した実行制御ロジックをコーディングすることを要しない。このようなことから、第1の実施形態に係るコンピュータシステム1は、移動端末200等の情報処理装置における実行環境が変化する場合であっても、アプリケーションを継続的に実行することができる実行環境を提供することができるとともに、アプリ開発のアプリケーション開発にかかる生産性の低下を抑制することができる。   In the computer system 1, applications are executed in a plurality of execution environments such as the mobile terminal 200 (physical execution environment P) and the cloud server 300 (virtual execution environment V). Executed in the environment. In other words, an application developer who develops an application to be executed in the computer system 1 only needs to develop an application to be executed in the physical device. It is not necessary to understand and carefully design the execution environment, and to code execution control logic that is conscious of the execution environment. Thus, the computer system 1 according to the first embodiment can execute an application continuously even when the execution environment in the information processing apparatus such as the mobile terminal 200 changes. Can be provided, and a decrease in productivity of application development can be suppressed.

なお、上記図2では、部分処理J1、J2、・・、J10の順に実行される例を示したが、部分処理の実行順序はこの例に限られない。例えば、アプリケーション実行時には、同一の部分処理が繰り返し実行される場合や、分岐処理によって実行されない部分処理が存在する場合もある。したがって、移動端末200や仮想移動端末301が管理装置100に送信する進捗情報には、「部分処理J1=1回実行、部分処理J2=3回実行」といった例も含まれる。   2 shows an example in which the partial processes J1, J2,..., J10 are executed in this order, but the execution order of the partial processes is not limited to this example. For example, when the application is executed, the same partial process may be repeatedly executed, or there may be a partial process that is not executed by the branch process. Accordingly, the progress information transmitted from the mobile terminal 200 or the virtual mobile terminal 301 to the management apparatus 100 includes an example of “partial process J1 = 1 execution, partial process J2 = 3 execution”.

[第1の実施形態に係る各装置の構成]
次に、図3を用いて、第1の実施形態に係るコンピュータシステム1に含まれる各装置の構成について説明する。図3は、第1の実施形態に係る各装置の構成例を示す図である。なお、図3に示したクラウドサーバ300が有する各処理部は、仮想移動端末301によって実現される。図3に示すように、管理装置100は、チェックポイント定義部111と、チェックポイント合成部112と、分散データ共有部120と、継続分散共有部130とを有する。
[Configuration of each apparatus according to the first embodiment]
Next, the configuration of each device included in the computer system 1 according to the first embodiment will be described with reference to FIG. FIG. 3 is a diagram illustrating a configuration example of each apparatus according to the first embodiment. Each processing unit included in the cloud server 300 illustrated in FIG. 3 is realized by the virtual mobile terminal 301. As illustrated in FIG. 3, the management device 100 includes a checkpoint definition unit 111, a checkpoint synthesis unit 112, a distributed data sharing unit 120, and a continuous distribution sharing unit 130.

チェックポイント定義部111は、アプリケーションの実行状況等を確認するタイミングであるチェックポイントが定義されたチェックポイント設定データを生成する。第1の実施形態に係るチェックポイント定義部111は、所定の時間間隔毎であることが定義されたチェックポイント設定データを生成する。そして、チェックポイント定義部111は、アプリケーションのソースコード及びチェックポイント設定データをチェックポイント合成部112に出力する。   The checkpoint definition unit 111 generates checkpoint setting data in which a checkpoint that is a timing for confirming the execution status of the application is defined. The checkpoint definition unit 111 according to the first embodiment generates checkpoint setting data defined to be every predetermined time interval. Then, the checkpoint definition unit 111 outputs the application source code and checkpoint setting data to the checkpoint synthesis unit 112.

なお、チェックポイント定義部111は、例えば、移動端末200によって実行され得るアプリケーションのソースコードを図示しない記憶部に保持する。そして、チェックポイント定義部111は、移動端末200によって所定のアプリケーションが実行される場合に、かかるアプリケーションを識別する情報を移動端末200から受信することで、移動端末200で実行されるアプリケーションに対応するソースコードを記憶部から取得する。また、例えば、チェックポイント定義部111がソースコードを保持するのではなく、移動端末200やクラウドサーバ300や仮想移動端末301や図示しない記憶部がソースコードを保持してもよい。かかる場合には、チェックポイント定義部111は、ソースコードを保持する装置から、移動端末200で実行されるアプリケーションに対応するソースコードを取得する。   Note that the checkpoint definition unit 111 holds, for example, a source code of an application that can be executed by the mobile terminal 200 in a storage unit (not shown). Then, when a predetermined application is executed by the mobile terminal 200, the checkpoint definition unit 111 receives information identifying the application from the mobile terminal 200, thereby corresponding to the application executed on the mobile terminal 200. The source code is acquired from the storage unit. Further, for example, the checkpoint definition unit 111 does not hold the source code, but the mobile terminal 200, the cloud server 300, the virtual mobile terminal 301, or a storage unit (not shown) may hold the source code. In such a case, the checkpoint definition unit 111 acquires the source code corresponding to the application executed on the mobile terminal 200 from the device that holds the source code.

チェックポイント合成部112は、チェックポイント定義部111によって生成されたチェックポイント設定データに基づいて、チェックポイントが定義された中間コードを生成する。第1の実施形態に係るチェックポイント合成部112は、チェックポイントが所定の時間間隔毎であることが定義された中間コードを生成する。そして、チェックポイント合成部112は、チェックポイント定義済みの中間コードを移動端末200及び仮想移動端末301に出力する。なお、チェックポイント合成部112は、移動端末200及び仮想移動端末301に対して共通の実行態様となるように、チェックポイント定義部111から出力されたソースコードを中間コード化する。   The checkpoint synthesis unit 112 generates intermediate code in which checkpoints are defined based on the checkpoint setting data generated by the checkpoint definition unit 111. The checkpoint synthesis unit 112 according to the first embodiment generates an intermediate code in which it is defined that the checkpoint is every predetermined time interval. Then, the checkpoint synthesis unit 112 outputs the checkpoint-defined intermediate code to the mobile terminal 200 and the virtual mobile terminal 301. Note that the checkpoint synthesis unit 112 converts the source code output from the checkpoint definition unit 111 into an intermediate code so that the execution mode is common to the mobile terminal 200 and the virtual mobile terminal 301.

分散データ共有部120は、移動端末200及び仮想移動端末301から送信される進捗情報等に基づいて、移動端末200と仮想移動端末301との間で継続(continuation)の引き渡しを行わせるか否かを判定する。なお、分散データ共有部120による処理については後述する。   The distributed data sharing unit 120 determines whether or not to allow continuation to be transferred between the mobile terminal 200 and the virtual mobile terminal 301 based on progress information transmitted from the mobile terminal 200 and the virtual mobile terminal 301. Determine. The processing by the distributed data sharing unit 120 will be described later.

継続分散共有部130は、分散データ共有部120によって継続(continuation)の引き渡しを要すると判定された場合に、移動端末200及び仮想移動端末301の一方から継続(continuation)を取得し、取得した継続(continuation)を移動端末200及び仮想移動端末301の他方に提供する。   The continuous distribution sharing unit 130 acquires continuation from one of the mobile terminal 200 and the virtual mobile terminal 301 when the distributed data sharing unit 120 determines that continuation needs to be delivered, and acquires the continuation. (Continuation) is provided to the other of the mobile terminal 200 and the virtual mobile terminal 301.

また、図3に示すように、移動端末200は、プログラム配置部211と、実行制御部212と、チェックポイントトリガ部220と、収集部230と、継続データ化部241と、継続適用部242とを有する。   As shown in FIG. 3, the mobile terminal 200 includes a program placement unit 211, an execution control unit 212, a checkpoint trigger unit 220, a collection unit 230, a continuous data conversion unit 241, and a continuous application unit 242. Have

プログラム配置部211は、チェックポイント合成部112からチェックポイント定義済みの中間コードを受信し、受信した中間コードを実行制御部212に出力する。これにより、プログラム配置部211は、実行制御部212にアプリケーションを実行させる。   The program placement unit 211 receives the checkpoint-defined intermediate code from the checkpoint synthesis unit 112, and outputs the received intermediate code to the execution control unit 212. Thereby, the program placement unit 211 causes the execution control unit 212 to execute the application.

実行制御部212は、プログラム配置部211から出力されたチェックポイント定義済みの中間コードを処理することで、アプリケーションを実行する。かかる実行制御部212は、物理実行環境Pである移動端末200内の計算資源(CPU時間、メモリ使用量等の計算リソース)を用いて、アプリケーションを実行する。   The execution control unit 212 executes the application by processing the checkpoint-defined intermediate code output from the program placement unit 211. The execution control unit 212 executes the application using the calculation resources (calculation resources such as CPU time and memory usage) in the mobile terminal 200 which is the physical execution environment P.

チェックポイントトリガ部220は、実行制御部212による実行制御の動作プロセスに対して、チェックポイント定義部111で定義されたチェックポイントを監視する。そして、チェックポイントトリガ部220は、チェックポイントとなった場合に、イベントを発生させて、収集部230に対して移動端末200(物理実行環境P)における実行状態に関する各種情報を測定させる。   The checkpoint trigger unit 220 monitors the checkpoints defined by the checkpoint definition unit 111 for the operation process of execution control by the execution control unit 212. And when it becomes a checkpoint, the checkpoint trigger part 220 generates an event, and makes the collection part 230 measure various information regarding the execution state in the mobile terminal 200 (physical execution environment P).

また、第1の実施形態に係るチェックポイントトリガ部220は、実行制御部212によって実行済みの部分処理を示す進捗情報を収集部230に通知する。具体的には、実行制御部212によって実行される中間コードには、部分処理の実行完了時に実行制御部212が完了通知するための目印となるマーキングコードが所定の部分処理毎に埋め込まれる。このようなマーキングコードは、例えば、アプリ開発者であるプログラマ等によって埋め込まれる。また、例えば、アプリ開発者がマーキングコードを明示的に埋め込まなくても、メタプログラミング(アスペクト指向プログラミング)等を活用して、関数の評価結果やメソッドが送り返すメッセージを取得する論理的節目を自動的にマークできる手法によって、上記マーキングコードが埋め込まれてもよい。かかる手法を用いた場合には、実行時にどの処理単位(関数評価、メソッド実施)を何回実行したかをメタレベルのハッシュテーブル等に記録して実行状況を管理することが可能となる。そして、チェックポイントトリガ部220は、かかる完了通知を実行制御部212から受信することで、実行制御部212によって進捗情報を取得することができる。   Also, the checkpoint trigger unit 220 according to the first embodiment notifies the collection unit 230 of progress information indicating the partial processing that has been executed by the execution control unit 212. Specifically, in the intermediate code executed by the execution control unit 212, a marking code serving as a mark for the execution control unit 212 to notify the completion when the execution of the partial process is completed is embedded for each predetermined partial process. Such a marking code is embedded by, for example, a programmer who is an application developer. Also, for example, even if the application developer does not explicitly embed the marking code, it uses metaprogramming (aspect-oriented programming) etc. to automatically obtain the logical milestones for obtaining the function evaluation results and messages sent back by the method. The marking code may be embedded by a technique capable of marking the mark. When such a method is used, it is possible to manage the execution status by recording which processing unit (function evaluation, method execution) and how many times it is executed at the time of execution in a meta-level hash table or the like. The checkpoint trigger unit 220 can acquire progress information by the execution control unit 212 by receiving the completion notification from the execution control unit 212.

なお、第1の実施形態において、チェックポイントトリガ部220は、実行制御レベル(メタ実行レベル)で独立したスレッドを起こし、ローカルタイマを参照しながら一定の時間が経過するたびに(チェックポイントに達した時点で)、収集部230に対して実行状態に関する各種情報を測定するように割り込みを発生させてもよい。ここで、移動端末200(物理実行環境P)に、チェックポイントとなる一定の時間間隔が設定されている場合には、チェックポイント定義部111は、チェックポイント設定データを生成しなくてよく、また、チェックポイント合成部112は、チェックポイントが定義された中間コードを生成しなくてよい。   In the first embodiment, the checkpoint trigger unit 220 wakes up an independent thread at the execution control level (meta-execution level), and whenever a certain time elapses while referring to the local timer (the checkpoint is reached). At that time, an interrupt may be generated so that the collection unit 230 measures various information related to the execution state. Here, when a certain time interval serving as a checkpoint is set in the mobile terminal 200 (physical execution environment P), the checkpoint definition unit 111 does not have to generate checkpoint setting data. The checkpoint synthesis unit 112 does not have to generate intermediate code in which checkpoints are defined.

収集部230は、チェックポイントトリガ部220からチェックポイントである旨の通知を受け付けた場合に、移動端末200(物理実行環境P)における実行状態に関する各種(移動端末200が消費した資源に関する資源情報等)を収集する。第1の実施形態に係る収集部230は、電力測定部231を有する。   When the collection unit 230 receives a notification that the check point is a check point from the check point trigger unit 220, the collection unit 230 performs various types related to the execution state in the mobile terminal 200 (physical execution environment P) (resource information about resources consumed by the mobile terminal 200, etc.) ). The collection unit 230 according to the first embodiment includes a power measurement unit 231.

電力測定部231は、移動端末200(物理実行環境P)における実行状態の要素として、移動端末200が要した消費電力を測定する。例えば、電力測定部231は、実行制御部212によってアプリケーションの実行が開始されてから現チェックポイントに至るまでに移動端末200が要した消費電力の累積を測定する。また、例えば、電力測定部231は、前回のチェックポイントから現チェックポイントまでに移動端末200が要した消費電力を測定する。第1の実施形態では、電力測定部231は、消費電力の累積を測定するものとする。なお、電力測定部231は、例えば、消費電力をモニタリングするための専用デバイス等によって移動端末200によって消費された電力を取得することができる。また、例えば、スマートフォン等には消費電力を監視するアプリや機構が一般的に搭載されているので、電力測定部231は、このようなアプリや機構を用いて消費電力を取得することができる。   The power measurement unit 231 measures the power consumption required by the mobile terminal 200 as an element of the execution state in the mobile terminal 200 (physical execution environment P). For example, the power measurement unit 231 measures the accumulation of power consumption required by the mobile terminal 200 from the start of execution of the application by the execution control unit 212 to the current checkpoint. For example, the power measurement unit 231 measures the power consumption required by the mobile terminal 200 from the previous check point to the current check point. In the first embodiment, the power measurement unit 231 measures the accumulation of power consumption. Note that the power measuring unit 231 can acquire the power consumed by the mobile terminal 200 by, for example, a dedicated device for monitoring power consumption. In addition, for example, since an application or a mechanism for monitoring power consumption is generally installed in a smartphone or the like, the power measurement unit 231 can acquire power consumption using such an application or mechanism.

そして、収集部230は、チェックポイントトリガ部220から通知された進捗情報と、電力測定部231によって測定された消費電力を示す消費電力情報を分散データ共有部120に送信する。   Then, the collection unit 230 transmits the progress information notified from the checkpoint trigger unit 220 and the power consumption information indicating the power consumption measured by the power measurement unit 231 to the distributed data sharing unit 120.

ここで、第1の実施形態において、管理装置100の分散データ共有部120は、チェックポイントのたびに、移動端末200の収集部230から進捗情報及び消費電力情報を受信するとともに、クラウドサーバ300上に形成された仮想移動端末301の収集部330からも進捗情報及び消費電力情報を受信する。かかる分散データ共有部120は、双方から受信した進捗情報を比較することにより、移動端末200と仮想移動端末301との間でアプリケーションの実行にかかる進捗に差異があるか否かを判定する。具体的には、分散データ共有部120は、移動端末200において実行済みの部分処理の数と、仮想移動端末301において実行済みの部分処理の数との差異が所定の処理数閾値以上であるか否かを判定する。   Here, in the first embodiment, the distributed data sharing unit 120 of the management device 100 receives the progress information and the power consumption information from the collection unit 230 of the mobile terminal 200 at each checkpoint, and on the cloud server 300. The progress information and the power consumption information are also received from the collection unit 330 of the virtual mobile terminal 301 formed in the above. The distributed data sharing unit 120 determines whether or not there is a difference in the progress of application execution between the mobile terminal 200 and the virtual mobile terminal 301 by comparing the progress information received from both sides. Specifically, the distributed data sharing unit 120 determines whether the difference between the number of partial processes executed in the mobile terminal 200 and the number of partial processes executed in the virtual mobile terminal 301 is equal to or greater than a predetermined process number threshold. Determine whether or not.

また、図2の説明では省略したが、分散データ共有部120は、実行済みの部分処理の数の差異が所定の処理数閾値以上である場合であっても、移動端末200及び仮想移動端末301から受信した消費電力情報に基づいて、移動端末200と仮想移動端末301との間で継続(continuation)を送受するべきか否かを判定する。具体的には、分散データ共有部120は、移動端末200の消費電力と仮想移動端末301の消費電力との差異を算出する。そして、分散データ共有部120は、算出した消費電力の差異が、移動端末200又は仮想移動端末301が継続(continuation)を受信するのに要すると想定される消費電力(以下、「想定消費電力」と表記する場合がある)よりも大きいか否かを判定する。そして、分散データ共有部120は、消費電力の差異が想定消費電力よりも大きい場合には、継続(continuation)を送受するべきであると判定し、消費電力の差異が受信側の想定消費電力以下である場合には、継続(continuation)を送受するべきでないと判定する。   Further, although omitted in the description of FIG. 2, the distributed data sharing unit 120 is configured so that the mobile terminal 200 and the virtual mobile terminal 301 can be used even when the difference in the number of executed partial processes is equal to or greater than a predetermined process number threshold. Whether or not to continue transmission / reception between the mobile terminal 200 and the virtual mobile terminal 301 is determined based on the power consumption information received from the mobile terminal 200. Specifically, the distributed data sharing unit 120 calculates the difference between the power consumption of the mobile terminal 200 and the power consumption of the virtual mobile terminal 301. Then, the distributed data sharing unit 120 uses the calculated power consumption difference that is assumed to be necessary for the mobile terminal 200 or the virtual mobile terminal 301 to receive continuation (hereinafter, “assumed power consumption”). It is determined whether or not it is larger. Then, when the difference in power consumption is larger than the assumed power consumption, the distributed data sharing unit 120 determines that continuation should be transmitted and received, and the difference in power consumption is less than or equal to the assumed power consumption on the receiving side. If it is, it is determined that continuation should not be transmitted / received.

このような分散データ共有部120による処理の一例について説明する。ここでは、処理数閾値が「3」であるものとする。また、分散データ共有部120が、移動端末200から進捗情報「J1〜J5」及び消費電力情報「50」を受信し、仮想移動端末301から進捗情報「J1〜J10」及び消費電力情報「200」を受信したものとする。   An example of processing performed by the distributed data sharing unit 120 will be described. Here, it is assumed that the processing number threshold is “3”. Also, the distributed data sharing unit 120 receives the progress information “J1 to J5” and the power consumption information “50” from the mobile terminal 200, and the progress information “J1 to J10” and the power consumption information “200” from the virtual mobile terminal 301. Is received.

かかる場合に、分散データ共有部120は、移動端末200よりも仮想移動端末301の方が実行済みの部分処理が5個多く、双方の実行済みの部分処理数の差異が処理数閾値「3」以上であると判定する。この例の場合、分散データ共有部120は、消費電力情報に基づいて、仮想移動端末301の継続(continuation)を移動端末200に提供するか否かを判定する。具体的には、分散データ共有部120は、仮想移動端末301の消費電力情報「200」と、移動端末200の消費電力情報「50」との差「150」を算出する。これにより、分散データ共有部120は、移動端末200が部分処理「J6〜J10」を実行するのに消費電力「150」を要すると推定できる。   In this case, in the distributed data sharing unit 120, the virtual mobile terminal 301 has five more partial processes that have been executed than the mobile terminal 200, and the difference in the number of partial processes that have been executed is the process number threshold “3”. It determines with it being above. In the case of this example, the distributed data sharing unit 120 determines whether to provide the continuation of the virtual mobile terminal 301 to the mobile terminal 200 based on the power consumption information. Specifically, the distributed data sharing unit 120 calculates a difference “150” between the power consumption information “200” of the virtual mobile terminal 301 and the power consumption information “50” of the mobile terminal 200. Thereby, the distributed data sharing unit 120 can estimate that the power consumption “150” is required for the mobile terminal 200 to execute the partial processes “J6 to J10”.

ここで、分散データ共有部120は、移動端末200が仮想移動端末301の継続(continuation)を受信するのに要すると想定される消費電力を取得する。例えば、分散データ共有部120は、移動端末200が継続(continuation)を受信及び適用するのに要する既知の想定消費電力を所定の記憶部に記憶しておき、かかる記憶部から想定消費電力を取得する。ここでは、分散データ共有部120によって取得される想定消費電力が「100」であるものとする。すなわち、ここの例では、上記において算出された消費電力情報の差「150」が想定消費電力「100」よりも大きい。かかる場合に、分散データ共有部120は、移動端末200が部分処理「J6〜J10」を実行するのに要する消費電力「150」が、仮想移動端末301の継続(continuation)を移動端末200が受信するのに要する想定消費電力「100」よりも大きいと判定できる。このため、分散データ共有部120は、移動端末200に仮想移動端末301の継続(continuation)を提供した方が消費電力を抑制することができるので、継続(continuation)を送受するべきであると判定する。   Here, the distributed data sharing unit 120 acquires power consumption that is assumed to be required for the mobile terminal 200 to receive the continuation of the virtual mobile terminal 301. For example, the distributed data sharing unit 120 stores a known assumed power consumption required for the mobile terminal 200 to receive and apply continuation in a predetermined storage unit, and obtains the assumed power consumption from the storage unit. To do. Here, it is assumed that the assumed power consumption acquired by the distributed data sharing unit 120 is “100”. That is, in this example, the power consumption information difference “150” calculated above is larger than the assumed power consumption “100”. In this case, the distributed data sharing unit 120 receives the power consumption “150” required for the mobile terminal 200 to execute the partial processing “J6 to J10”, and the mobile terminal 200 receives the continuation of the virtual mobile terminal 301. It can be determined that the power consumption is greater than the assumed power consumption “100” required for the operation. For this reason, the distributed data sharing unit 120 determines that the continuation of the virtual mobile terminal 301 should be transmitted to and received from the mobile terminal 200 because it can reduce power consumption. To do.

また、上記例において、分散データ共有部120が、移動端末200から進捗情報「J1〜J7」及び消費電力情報「150」を受信し、仮想移動端末301から進捗情報「J1〜J10」及び消費電力情報「200」を受信したものとする。この例の場合、分散データ共有部120は、消費電力情報に基づいて、仮想移動端末301の継続(continuation)を移動端末200に提供するか否かを判定する。   In the above example, the distributed data sharing unit 120 receives the progress information “J1 to J7” and the power consumption information “150” from the mobile terminal 200, and the progress information “J1 to J10” and the power consumption from the virtual mobile terminal 301. It is assumed that the information “200” is received. In the case of this example, the distributed data sharing unit 120 determines whether to provide the continuation of the virtual mobile terminal 301 to the mobile terminal 200 based on the power consumption information.

具体的には、分散データ共有部120は、仮想移動端末301の消費電力情報「200」と、移動端末200の消費電力情報「150」との差「50」を算出する。これにより、分散データ共有部120は、移動端末200が部分処理「J8〜J10」を実行するのに消費電力「50」を要すると推定できる。また、分散データ共有部120は、上記例と同様に、移動端末200が継続(continuation)を受信するのに要すると想定される消費電力「100」を取得する。かかる場合に、分散データ共有部120は、移動端末200が部分処理「J8〜J10」を実行するのに要する消費電力「50」が、仮想移動端末301の継続(continuation)を移動端末200が受信するのに要する想定消費電力「100」以下であると判定できる。このため、分散データ共有部120は、移動端末200に仮想移動端末301の継続(continuation)を提供しない方が消費電力を抑制することができるので、継続(continuation)を送受するべきでないと判定する。   Specifically, the distributed data sharing unit 120 calculates a difference “50” between the power consumption information “200” of the virtual mobile terminal 301 and the power consumption information “150” of the mobile terminal 200. Thereby, the distributed data sharing unit 120 can estimate that the power consumption “50” is required for the mobile terminal 200 to execute the partial processing “J8 to J10”. Similarly to the above example, the distributed data sharing unit 120 acquires the power consumption “100” that is assumed to be required for the mobile terminal 200 to receive continuation. In such a case, the distributed data sharing unit 120 receives the power consumption “50” required for the mobile terminal 200 to execute the partial processing “J8 to J10”, and the mobile terminal 200 receives the continuation of the virtual mobile terminal 301. It can be determined that the power consumption is “100” or less. For this reason, the distributed data sharing unit 120 determines that the continuation should not be transmitted and received because the power consumption can be suppressed if the continuation of the virtual mobile terminal 301 is not provided to the mobile terminal 200. .

このような分散データ共有部120は、一方の情報処理装置(移動端末200又は仮想移動端末301)に対して、他方の情報処理装置(移動端末200又は仮想移動端末301)の継続(continuation)を提供すべきであると判定した場合には、他方の情報処理装置に対して継続(continuation)を生成するように指示する。例えば、分散データ共有部120は、仮想移動端末301の継続(continuation)を移動端末200に提供すべきであると判定した場合には、仮想移動端末301の継続データ化部341に対して、継続(continuation)を生成するように指示する。   Such a distributed data sharing unit 120 continues the continuation of the other information processing device (mobile terminal 200 or virtual mobile terminal 301) with respect to one information processing device (mobile terminal 200 or virtual mobile terminal 301). If it is determined that it should be provided, the other information processing apparatus is instructed to generate a continuation. For example, when the distributed data sharing unit 120 determines that the continuation of the virtual mobile terminal 301 should be provided to the mobile terminal 200, the distributed data sharing unit 120 continues to the continuous data conversion unit 341 of the virtual mobile terminal 301. (Continuation) is generated.

継続データ化部241は、任意の時点における計算状態(CPU、スタック、ヒープ、プログラムカウンタ)をスナップショットとして保存したデータ構造に相当する継続(continuation)を生成する。かかる継続データ化部241は、分散データ共有部120による指示に従って継続(continuation)を生成し、生成した継続(continuation)を継続分散共有部130に送信する。かかる継続分散共有部130は、継続データ化部241から受信した継続(continuation)を、仮想移動端末301の継続適用部342に送信する。また、継続分散共有部130は、仮想移動端末301の継続データ化部341から継続(continuation)を受信した場合には、受信した継続(continuation)を移動端末200の継続適用部242に送信する。   The continuation data conversion unit 241 generates a continuation corresponding to a data structure in which a calculation state (CPU, stack, heap, program counter) at an arbitrary time point is saved as a snapshot. The continuous data converting unit 241 generates a continuation according to an instruction from the distributed data sharing unit 120 and transmits the generated continuation to the continuous distribution sharing unit 130. The continuous distribution sharing unit 130 transmits the continuation received from the continuous data conversion unit 241 to the continuation application unit 342 of the virtual mobile terminal 301. When the continuation sharing unit 130 receives a continuation from the continuation data converting unit 341 of the virtual mobile terminal 301, the continuation sharing unit 130 transmits the received continuation to the continuation application unit 242 of the mobile terminal 200.

継続適用部242は、継続分散共有部130から、仮想移動端末301の継続データ化部341によって生成された継続(continuation)を受信した場合に、受信した継続(continuation)を実行制御部212に適用する。具体的には、継続適用部242は、継続分散共有部130から提供された継続(continuation)を実行することで、移動端末200と仮想移動端末301におけるアプリケーションの実行状況を同期させる。   The continuation application unit 242 applies the received continuation to the execution control unit 212 when the continuation generated by the continuous data generation unit 341 of the virtual mobile terminal 301 is received from the continuous distribution sharing unit 130. To do. Specifically, the continuation application unit 242 synchronizes the execution status of the application in the mobile terminal 200 and the virtual mobile terminal 301 by executing the continuation provided from the continuous distribution sharing unit 130.

また、図3に示すように、クラウドサーバ300は、プログラム配置部311と、実行制御部312と、チェックポイントトリガ部320と、収集部330と、継続データ化部341と、継続適用部342とを有する。これらの各処理部は、図1に示した仮想移動端末301によって実現される処理部であって、クラウドサーバ300(仮想実行環境V)内において、上記の移動端末200が有する各処理部と同様の処理を行う。なお、一般的には、クラウドサーバ300の計算資源(メモリ、CPUパワー、電力、ストレージ)は安定供給が期待できる。高速・安定電源・確実なデータ保管能力から、不安定な通信状態にある移動端末200より確実な実行結果を達成できる期待がある。   As shown in FIG. 3, the cloud server 300 includes a program placement unit 311, an execution control unit 312, a checkpoint trigger unit 320, a collection unit 330, a continuous data conversion unit 341, and a continuous application unit 342. Have Each of these processing units is a processing unit realized by the virtual mobile terminal 301 illustrated in FIG. 1, and is the same as each processing unit included in the mobile terminal 200 in the cloud server 300 (virtual execution environment V). Perform the process. In general, the computing resources (memory, CPU power, power, storage) of the cloud server 300 can be expected to be stably supplied. There is an expectation that a reliable execution result can be achieved from the mobile terminal 200 in an unstable communication state due to the high speed, stable power supply, and reliable data storage capability.

[第1の実施形態に係るコンピュータシステムによる処理手順]
次に、図4を用いて、第1の実施形態に係るコンピュータシステム1による処理の手順について説明する。図4は、第1の実施形態に係るコンピュータシステム1による処理手順を示すフローチャートである。
[Processing Procedure by Computer System According to First Embodiment]
Next, the procedure of processing by the computer system 1 according to the first embodiment will be described with reference to FIG. FIG. 4 is a flowchart illustrating a processing procedure performed by the computer system 1 according to the first embodiment.

図4に示すように、管理装置100のチェックポイント合成部112は、チェックポイント定義済みの中間コードを生成し、生成したチェックポイント定義済みの中間コードを、移動端末200とクラウドサーバ300に形成された仮想移動端末301に送信する(ステップS101)。   As illustrated in FIG. 4, the checkpoint synthesis unit 112 of the management apparatus 100 generates a checkpoint-defined intermediate code, and the generated checkpoint-defined intermediate code is formed in the mobile terminal 200 and the cloud server 300. Is transmitted to the virtual mobile terminal 301 (step S101).

移動端末200の実行制御部212は、管理装置100から送信されたチェックポイント定義済みの中間コードを処理することで、アプリケーションを実行制御する(ステップS102)。同様に、仮想移動端末301の実行制御部312は、管理装置100から送信されたチェックポイント定義済みの中間コードを処理することで、アプリケーションを実行制御する(ステップS103)。   The execution control unit 212 of the mobile terminal 200 controls the execution of the application by processing the checkpoint-defined intermediate code transmitted from the management apparatus 100 (step S102). Similarly, the execution control unit 312 of the virtual mobile terminal 301 performs execution control of the application by processing the checkpoint-defined intermediate code transmitted from the management apparatus 100 (step S103).

そして、移動端末200のチェックポイントトリガ部220は、実行制御部212によってアプリケーションが実行されている場合に、チェックポイントとなったか否かを監視する(ステップS104)。同様に、仮想移動端末301のチェックポイントトリガ部320は、実行制御部312によってアプリケーションが実行されている場合に、チェックポイントとなったか否かを監視する(ステップS105)。   Then, the checkpoint trigger unit 220 of the mobile terminal 200 monitors whether or not the application has been executed by the execution control unit 212 (step S104). Similarly, the checkpoint trigger unit 320 of the virtual mobile terminal 301 monitors whether or not the application has been executed by the execution control unit 312 (step S105).

そして、移動端末200の電力測定部231は、チェックポイントとなった場合に(ステップS104肯定)、消費電力を測定する(ステップS106)。そして、収集部230は、進捗情報、消費電力情報を管理装置100に送信する(ステップS107)。同様に、仮想移動端末301の電力測定部331は、チェックポイントとなった場合に(ステップS105肯定)、消費電力を測定する(ステップS108)。そして、収集部330は、進捗情報、消費電力情報を管理装置100に送信する(ステップS109)。   When the power measuring unit 231 of the mobile terminal 200 becomes a checkpoint (Yes at Step S104), the power measuring unit 231 measures the power consumption (Step S106). Then, the collection unit 230 transmits progress information and power consumption information to the management apparatus 100 (step S107). Similarly, the power measuring unit 331 of the virtual mobile terminal 301 measures the power consumption when the check point is reached (Yes at Step S105) (Step S108). Then, the collection unit 330 transmits progress information and power consumption information to the management apparatus 100 (step S109).

続いて、管理装置100の分散データ共有部120は、移動端末200及び仮想移動端末301から送信される進捗情報等に基づいて、移動端末200と仮想移動端末301との間で継続(continuation)の引き渡しを行わせるか否かを判定する(ステップS110)。   Subsequently, the distributed data sharing unit 120 of the management apparatus 100 continues between the mobile terminal 200 and the virtual mobile terminal 301 based on progress information transmitted from the mobile terminal 200 and the virtual mobile terminal 301. It is determined whether or not delivery is to be performed (step S110).

ここでは、分散データ共有部120は、仮想移動端末301の継続(continuation)を移動端末200に引き渡しさせると判定するものとする。かかる場合に、分散データ共有部120は、仮想移動端末301に対して、継続(continuation)を生成するよう指示する(ステップS111)。かかる指示を受け付けた仮想移動端末301の継続データ化部341は、継続(continuation)を生成して管理装置100に送信する(ステップS112)。   Here, it is assumed that the distributed data sharing unit 120 determines to continue the continuation of the virtual mobile terminal 301 to the mobile terminal 200. In such a case, the distributed data sharing unit 120 instructs the virtual mobile terminal 301 to generate a continuation (step S111). The continuous data converting unit 341 of the virtual mobile terminal 301 that has received such an instruction generates a continuation and transmits it to the management device 100 (step S112).

管理装置100の継続分散共有部130は、仮想移動端末301から受信した継続(continuation)を移動端末200に提供する(ステップS113)。そして、移動端末200の継続適用部242は、管理装置100から受信した継続(continuation)を実行制御部212に適用する(ステップS114)。   The continuous distribution sharing unit 130 of the management apparatus 100 provides the continuation received from the virtual mobile terminal 301 to the mobile terminal 200 (step S113). Then, the continuation application unit 242 of the mobile terminal 200 applies the continuation received from the management device 100 to the execution control unit 212 (step S114).

[第1の実施形態の効果]
上述してきたように、第1の実施形態に係るコンピュータシステム1には、同一のアプリケーションを実行する複数の情報処理装置として、移動端末200及び仮想移動端末301が含まれる。また、コンピュータシステム1には、移動端末200及び仮想移動端末301を管理する管理装置100が含まれる。そして、移動端末200は、アプリケーションを実行制御する実行制御部212と、実行制御部212におけるアプリケーションの実行にかかる進捗を示す進捗情報を収集する収集部230と、管理装置100の指示に従って、アプリケーションを実行中の実行制御部212における計算状態を示す計算状態情報として継続(continuation)を生成する継続データ化部241と、管理装置100から継続(continuation)が提供された場合に、かかる継続(continuation)を実行制御部212における計算状態に適用する継続適用部242とを有する。また、仮想移動端末301は、移動端末200と同様の構成を有する。また、管理装置100は、移動端末200及び仮想移動端末301の収集部によって収集された各進捗情報を比較することにより、移動端末200とクラウドサーバ300との間でアプリケーションの実行にかかる進捗に差異があるか否かを判定する分散データ共有部120と、分散データ共有部120による進捗の差異の有無に応じて、移動端末200又はクラウドサーバ300に対して継続(continuation)を生成させ、生成された継続(continuation)を移動端末200又はクラウドサーバ300に提供する継続分散共有部130とを有する。
[Effect of the first embodiment]
As described above, the computer system 1 according to the first embodiment includes the mobile terminal 200 and the virtual mobile terminal 301 as a plurality of information processing apparatuses that execute the same application. The computer system 1 also includes a management device 100 that manages the mobile terminal 200 and the virtual mobile terminal 301. Then, the mobile terminal 200 executes an application according to an instruction from the execution control unit 212 that controls the execution of the application, a collection unit 230 that collects progress information indicating the progress of execution of the application in the execution control unit 212, and the management device 100. In the case where the continuation data generation unit 241 that generates continuation as calculation state information indicating the calculation state in the execution control unit 212 being executed and the management device 100 are provided with continuation, the continuation is performed. Is applied to the calculation state in the execution control unit 212. Further, the virtual mobile terminal 301 has the same configuration as the mobile terminal 200. In addition, the management apparatus 100 compares the progress information collected by the collection units of the mobile terminal 200 and the virtual mobile terminal 301, thereby making a difference in the progress of application execution between the mobile terminal 200 and the cloud server 300. Is generated by causing the mobile terminal 200 or the cloud server 300 to generate a continuation according to whether there is a difference in progress between the distributed data sharing unit 120 and the distributed data sharing unit 120. And a continuous distribution sharing unit 130 that provides the continuation to the mobile terminal 200 or the cloud server 300.

これにより、第1の実施形態に係るコンピュータシステム1では、移動端末200等の情報処理装置における実行環境が変化する場合であっても、アプリケーションを継続的に実行することができる実行環境を提供することができるとともに、アプリ開発者のアプリケーション開発にかかる生産性の低下を抑制することができる。   As a result, the computer system 1 according to the first embodiment provides an execution environment capable of continuously executing an application even when the execution environment in the information processing apparatus such as the mobile terminal 200 changes. In addition, it is possible to suppress a decrease in productivity related to application development by application developers.

また、例えば、写真の編集処理など高度に専門的で複雑なアプリケーションは、従来では独自のスタンドアロンプログラムで実装されていたが、昨今、スマートフォン(多機能電話装置)等でも利用される動きが加速している。一方、デバイスの省電力化・低コスト化の動きも加速しており、低速デバイスでのコンピューティングは依然としてニーズが高い。すなわち、移動中の低速デバイスで高度で複雑なアプリケーションを利用したいといった相反するコンピューティングニーズが拡大しているといえる。   Also, for example, highly specialized and complex applications such as photo editing processing have been implemented with original stand-alone programs. However, recently, the use of smartphones (multifunctional telephone devices) has been accelerated. ing. On the other hand, the trend toward power saving and cost reduction of devices is accelerating, and the need for computing with low-speed devices is still high. In other words, it can be said that conflicting computing needs such as wanting to use sophisticated and complicated applications on low-speed moving devices are expanding.

第1の実施形態に係るコンピュータシステム1では、移動端末200と仮想移動端末301におけるアプリケーションの実行状況を同期させるので、例えば、移動中の低速デバイスは、高度なアプリケーションを実行した場合であっても、省電力かつ高速にレスポンス結果を得ることができる。また、アプリ開発者は、デバイスの違い(高速、低速)を予め意識せずにアプリケーションの設計・実装を行うことができるので、既存のアプリ開発スタイル(ノウハウ)を大胆におき変えずに設計・実装することができる。   In the computer system 1 according to the first embodiment, the execution status of the application in the mobile terminal 200 and the virtual mobile terminal 301 is synchronized. For example, even when the low-speed device being moved executes an advanced application Response results can be obtained at high speed with low power consumption. In addition, application developers can design and implement applications without being aware of device differences (high speed and low speed) in advance, so they can design and implement existing application development styles (know-how) without bold changes. Can be implemented.

なお、上記第1の実施形態において、分散データ共有部120は、移動端末200の消費電力と仮想移動端末301の消費電力との差異が、移動端末200又は仮想移動端末301が継続(continuation)を受信するのに要すると想定される消費電力(想定消費電力)よりも大きいか否かを判定する。しかし、分散データ共有部120による判定処理はこの例に限られない。   In the first embodiment, the distributed data sharing unit 120 determines that the difference between the power consumption of the mobile terminal 200 and the power consumption of the virtual mobile terminal 301 indicates that the mobile terminal 200 or the virtual mobile terminal 301 continues (continuation). It is determined whether or not it is larger than the power consumption (assumed power consumption) assumed to be required for reception. However, the determination process by the distributed data sharing unit 120 is not limited to this example.

例えば、分散データ共有部120は、移動端末200及び仮想移動端末301における双方の合計消費電力を極力低減するために、移動端末200及び仮想移動端末301における消費電力の差異が、移動端末200又は仮想移動端末301が継続(continuation)を送信及び受信するのに要すると想定される消費電力よりも大きいか否かを判定してもよい。   For example, in order to reduce the total power consumption of both the mobile terminal 200 and the virtual mobile terminal 301 as much as possible, the distributed data sharing unit 120 determines that the difference in power consumption between the mobile terminal 200 and the virtual mobile terminal 301 is the mobile terminal 200 or the virtual mobile terminal 301. It may be determined whether or not the mobile terminal 301 is larger than the power consumption assumed to be required for transmitting and receiving continuation.

また、例えば、仮想移動端末301が実現されるクラウドサーバ300環境では安定した電力供給が可能であり消費電力の低減が重要視されない前提が存在する場合には、分散データ共有部120は、移動端末200における消費電力の低減を優先してもよい。具体的には、分散データ共有部120は、仮想移動端末301の継続(continuation)を移動端末200に送信する場合に、上記例のように、移動端末200及び仮想移動端末301における消費電力の差異が、移動端末200が仮想移動端末301の継続(continuation)を受信するのに要すると想定される消費電力よりも大きいか否かを判定する。   For example, in the cloud server 300 environment in which the virtual mobile terminal 301 is realized, when there is a premise that stable power supply is possible and reduction in power consumption is not important, the distributed data sharing unit 120 is A reduction in power consumption at 200 may be prioritized. Specifically, when the distributed data sharing unit 120 transmits the continuation of the virtual mobile terminal 301 to the mobile terminal 200, the difference in power consumption between the mobile terminal 200 and the virtual mobile terminal 301 as in the above example. However, it is determined whether or not the mobile terminal 200 is larger than the power consumption assumed to be required for the continuation of the virtual mobile terminal 301 to be received.

また、分散データ共有部120は、移動端末200及び仮想移動端末301における過去の消費電力をプロファイルとして蓄積しておき、移動端末200と仮想移動端末301における消費電力の比率に基づいて、想定消費電力を推定してもよい。例えば、分散データ共有部120は、かかる比率を用いて、仮想移動端末301の消費電力を移動端末200の消費電力に換算するなどして、移動端末200の消費電力を推定する。   Further, the distributed data sharing unit 120 accumulates past power consumption in the mobile terminal 200 and the virtual mobile terminal 301 as a profile, and assumes the assumed power consumption based on the ratio of the power consumption in the mobile terminal 200 and the virtual mobile terminal 301. May be estimated. For example, the distributed data sharing unit 120 estimates the power consumption of the mobile terminal 200 by converting the power consumption of the virtual mobile terminal 301 into the power consumption of the mobile terminal 200 using the ratio.

(第2の実施形態)
上記第1の実施形態では、チェックポイントが一定の時間間隔毎に設定される例を示した。しかし、チェックポイントは、所定の部分処理毎に設定されてもよい。第2の実施形態では、チェックポイントが所定の部分処理毎に設定される例について説明する。なお、第2の実施形態では、以下に説明する移動端末500及びクラウドサーバ600によって、同一のアプリケーションが長期間に渡って繰り返し実行されるものとする。例えば、第2の実施形態におけるアプリケーションは、何度も繰り返し実行される常住プログラム等に該当する。
(Second Embodiment)
In the first embodiment, an example is shown in which checkpoints are set at regular time intervals. However, checkpoints may be set for each predetermined partial process. In the second embodiment, an example in which checkpoints are set for each predetermined partial process will be described. In the second embodiment, it is assumed that the same application is repeatedly executed over a long period of time by the mobile terminal 500 and the cloud server 600 described below. For example, the application in the second embodiment corresponds to a permanent residence program that is repeatedly executed.

[第2の実施形態に係る各装置の構成]
まず、図5を用いて、第2の実施形態に係るコンピュータシステム2に含まれる各装置の構成について説明する。図5は、第2の実施形態に係る各装置の構成例を示す図である。図5に示すように、第2の実施形態に係るコンピュータシステム2には、管理装置400と、移動端末500と、クラウドサーバ600とが含まれる。なお、以下では、既に示した構成部位と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。また、第2の実施形態に係るコンピュータシステム2の構成は、図1に示した構成例と同様であるので、以下では説明を省略する。
[Configuration of Each Device According to Second Embodiment]
First, the configuration of each device included in the computer system 2 according to the second embodiment will be described with reference to FIG. FIG. 5 is a diagram illustrating a configuration example of each device according to the second embodiment. As shown in FIG. 5, the computer system 2 according to the second embodiment includes a management device 400, a mobile terminal 500, and a cloud server 600. In addition, below, the detailed description is abbreviate | omitted as attaching | subjecting the same code | symbol to the site | part which has the function similar to the already shown component site | part. The configuration of the computer system 2 according to the second embodiment is the same as the configuration example shown in FIG.

管理装置400は、図5に示すように、チェックポイント定義部411と、チェックポイント合成部412と、分散データ共有部420と、プロファイル記憶部440と、チェックポイント改変部450とを有する。また、移動端末500は、チェックポイントトリガ部520と、収集部530と、プロファイル生成部540とを有する。また、クラウドサーバ600は、移動端末500に対応する仮想移動端末(以下、「仮想移動端末601」とする)を形成し、かかる仮想移動端末601によって実現される処理部として、収集部630と、プロファイル生成部640とを有する。なお、収集部630及びプロファイル生成部640は、収集部530及びプロファイル生成部540に対応する処理部であるので、以下では説明を省略する。また、以下では、管理装置400及び移動端末500が有する処理部について、処理の順序に沿って説明する。   As illustrated in FIG. 5, the management apparatus 400 includes a checkpoint definition unit 411, a checkpoint synthesis unit 412, a distributed data sharing unit 420, a profile storage unit 440, and a checkpoint modification unit 450. In addition, the mobile terminal 500 includes a checkpoint trigger unit 520, a collection unit 530, and a profile generation unit 540. Further, the cloud server 600 forms a virtual mobile terminal (hereinafter referred to as “virtual mobile terminal 601”) corresponding to the mobile terminal 500, and as a processing unit realized by the virtual mobile terminal 601, a collection unit 630, And a profile generation unit 640. Note that the collection unit 630 and the profile generation unit 640 are processing units corresponding to the collection unit 530 and the profile generation unit 540, and thus description thereof will be omitted below. Hereinafter, the processing units included in the management device 400 and the mobile terminal 500 will be described in the order of processing.

管理装置400のチェックポイント定義部411は、アプリケーションのソースコードに含まれる所定の部分処理(関数やメソッド)毎に、チェックポイントが定義されたチェックポイント設定データを生成する。チェックポイントを埋め込む位置は、アプリ開発者であるプログラマ等によって指定される。例えば、第2の実施形態に係るチェックポイント定義部411は、アプリ開発者であるプログラマ等が利用する端末装置の表示装置にソースコードを表示するなどして、アプリ開発者であるプログラマ等と対話的にチェックポイントを埋め込む位置を指定させる。なお、第1の実施形態でも説明したように、メタプログラミング(アスペクト指向プログラミング)等を活用することで、アプリ開発者が明示的にチェックポイントを埋め込まなくても、自動的にチェックポイントを埋め込むこともできる。   The checkpoint definition unit 411 of the management apparatus 400 generates checkpoint setting data in which checkpoints are defined for each predetermined partial process (function or method) included in the application source code. The position where the checkpoint is embedded is specified by a programmer who is an application developer. For example, the checkpoint definition unit 411 according to the second embodiment interacts with a programmer who is an application developer by displaying source code on a display device of a terminal device used by the programmer who is an application developer. To specify where to embed checkpoints. As described in the first embodiment, by utilizing meta-programming (aspect-oriented programming) or the like, checkpoints are automatically embedded even if the application developer does not explicitly embed checkpoints. You can also.

管理装置400のチェックポイント合成部412は、チェックポイント定義部411によって生成されたチェックポイント設定データに基づいて、チェックポイントが定義された中間コードを生成する。例えば、第2の実施形態に係るチェックポイント合成部412は、アスペクト指向におけるインターセプトのロジックの織り込み又は自己反映計算モデルであるメタロジックの定義に基づくプログラムコードの合成及び翻訳により、チェックポイント定義済みの中間コードを生成する。   Based on the checkpoint setting data generated by the checkpoint definition unit 411, the checkpoint synthesis unit 412 of the management apparatus 400 generates an intermediate code in which checkpoints are defined. For example, the checkpoint synthesis unit 412 according to the second embodiment has checkpoints defined by synthesis and translation of program code based on the definition of metalogic that is an aspect-oriented interception logic weaving or reflection model. Generate intermediate code.

移動端末500のチェックポイントトリガ部520は、実行制御部212による実行制御の動作プロセスに対して、チェックポイント定義部411で定義されたチェックポイントを監視する。そして、チェックポイントトリガ部520は、チェックポイントとなった場合に、イベントを発生させて、収集部530に対して移動端末500(物理実行環境P)における実行状態を測定させる。   The checkpoint trigger unit 520 of the mobile terminal 500 monitors the checkpoint defined by the checkpoint definition unit 411 for the operation process of execution control by the execution control unit 212. Then, the checkpoint trigger unit 520 generates an event and causes the collection unit 530 to measure the execution state in the mobile terminal 500 (physical execution environment P) when it becomes a checkpoint.

また、第2の実施形態に係るチェックポイントトリガ部520は、チェックポイントとなった場合に、かかるチェックポイントを特定するための進捗情報(CP情報)として収集部530に通知する。   In addition, when a checkpoint becomes a checkpoint, the checkpoint trigger unit 520 according to the second embodiment notifies the collection unit 530 as progress information (CP information) for specifying the checkpoint.

移動端末500の収集部530は、図5に示すように、電力測定部531と、計時部532とを有する。第2の実施形態に係る電力測定部531は、移動端末500(物理実行環境P)における実行状態の要素として、前回のチェックポイントから現チェックポイントまでに移動端末500が要した消費電力を測定する。   The collection unit 530 of the mobile terminal 500 includes a power measurement unit 531 and a timer unit 532 as illustrated in FIG. The power measurement unit 531 according to the second embodiment measures the power consumption required by the mobile terminal 500 from the previous checkpoint to the current checkpoint as an element of the execution state in the mobile terminal 500 (physical execution environment P). .

計時部532は、移動端末500(物理実行環境P)における実行状態の要素として、移動端末500におけるアプリケーションの処理時間を計時する。例えば、計時部532は、前回のチェックポイントから現チェックポイントまでの経過時間を処理時間として計時する。また、例えば、計時部532は、実行制御部212によってアプリケーションの実行が開始されてから現チェックポイントに至るまでの累積の経過時間を処理時間として計時する。第2の実施形態では、計時部532は、チェックポイント間の経過時間を処理時間として計時するものとする。   The timer 532 measures the application processing time in the mobile terminal 500 as an element of the execution state in the mobile terminal 500 (physical execution environment P). For example, the time measuring unit 532 measures the elapsed time from the previous check point to the current check point as the processing time. Further, for example, the time counting unit 532 counts the accumulated elapsed time from the start of execution of the application by the execution control unit 212 to the current check point as the processing time. In the second embodiment, it is assumed that the time measuring unit 532 measures the elapsed time between check points as a processing time.

そして、収集部530は、チェックポイントのたびにチェックポイントトリガ部220から通知される進捗情報(CP情報)と、電力測定部531によって測定された消費電力を示す消費電力情報と、計時部532によって計時された処理時間を示す処理時間情報とをプロファイル生成部540に出力するとともに、進捗情報(CP情報)を分散データ共有部420に送信する。   The collection unit 530 uses the progress information (CP information) notified from the checkpoint trigger unit 220 at each checkpoint, the power consumption information indicating the power consumption measured by the power measurement unit 531, and the time measuring unit 532. The processing time information indicating the measured processing time is output to the profile generation unit 540, and the progress information (CP information) is transmitted to the distributed data sharing unit 420.

プロファイル生成部540は、収集部530から出力された進捗情報、消費電力情報及び処理時間情報を用いて、常駐プログラムであるアプリケーションの実行プロファイルを生成する。具体的には、プロファイル生成部540は、部分処理間における消費電力及び処理時間を実行プロファイルとして生成し、生成した実行プロファイルを管理装置400のプロファイル記憶部440に格納する。   The profile generation unit 540 uses the progress information, power consumption information, and processing time information output from the collection unit 530 to generate an execution profile of an application that is a resident program. Specifically, the profile generation unit 540 generates power consumption and processing time between partial processes as an execution profile, and stores the generated execution profile in the profile storage unit 440 of the management apparatus 400.

ここで、図6を用いて、プロファイル生成部540によって生成される実行プロファイルについて説明する。図6は、第2の実施形態に係るプロファイル生成部540によって生成される実行プロファイルの一例を概念的に示す図である。   Here, the execution profile generated by the profile generation unit 540 will be described with reference to FIG. FIG. 6 is a diagram conceptually illustrating an example of an execution profile generated by the profile generation unit 540 according to the second embodiment.

図6に示すように、プロファイル生成部540は、各チェックポイント間の消費電力情報及び処理時間情報を記録する。図6に示した例では、チェックポイントCP11の次は、チェックポイントCP12又はCP13を通る例を示しており、チェックポイントCP12の次は、チェックポイントCP14又はCP15を通る例を示している。これは、アプリケーションには分岐処理が存在するからであり、アプリケーションに定義されたチェックポイントCP11、CP12、・・・、CP19の順に実行されるとは限らないからである。   As shown in FIG. 6, the profile generation unit 540 records power consumption information and processing time information between checkpoints. In the example illustrated in FIG. 6, the example following the checkpoint CP11 shows an example passing through the checkpoint CP12 or CP13, and the example following the checkpoint CP12 shows an example passing through the checkpoint CP14 or CP15. This is because a branch process exists in the application, and the checkpoints CP11, CP12,..., CP19 defined in the application are not necessarily executed in this order.

そして、プロファイル生成部540は、収集部530から順次出力される進捗情報であるCP情報を図6に示した例のようにマッピングする。例えば、収集部530によって、チェックポイントCP11を示すCP情報が出力された後に、チェックポイントCP12を示すCP情報が出力された場合には、プロファイル生成部540は、図6に示すように、チェックポイントCP11からチェックポイントCP12へ接続する。さらに、プロファイル生成部540は、チェックポイントCP11からチェックポイントCP12までに移動端末500が要した消費電力「Δe」として、チェックポイントCP12において収集部530から出力された消費電力情報(図6では、「e12」)を設定する。また、プロファイル生成部540は、チェックポイントCP11からチェックポイントCP12までの処理時間「Δt」として、チェックポイントCP12において収集部530から出力された処理時間情報(図6では、「t12」)を設定する。   Then, the profile generation unit 540 maps the CP information, which is progress information sequentially output from the collection unit 530, as in the example illustrated in FIG. For example, when the CP information indicating the checkpoint CP12 is output after the CP information indicating the checkpoint CP11 is output by the collection unit 530, the profile generation unit 540, as shown in FIG. Connect from CP11 to checkpoint CP12. Further, the profile generation unit 540 uses the power consumption information output from the collection unit 530 at the checkpoint CP12 as the power consumption “Δe” required by the mobile terminal 500 from the checkpoint CP11 to the checkpoint CP12 (in FIG. e12 "). Further, the profile generation unit 540 sets the processing time information (“t12” in FIG. 6) output from the collection unit 530 at the checkpoint CP12 as the processing time “Δt” from the checkpoint CP11 to the checkpoint CP12. .

また、実行制御部212によって中間コードが繰り返し実行されることにより、収集部530によって、チェックポイントCP11を示すCP情報が再度出力された後に、チェックポイントCP13を示すCP情報が出力された場合には、プロファイル生成部540は、図6に示すように、チェックポイントCP11からチェックポイントCP13へ接続する。そして、プロファイル生成部540は、チェックポイントCP11からチェックポイントCP13までの消費電力「Δe」(図6では、「e13」)と、処理時間「Δt」(図6では、「t13」)とを設定する。   In addition, when the execution control unit 212 repeatedly executes the intermediate code, the CP information indicating the checkpoint CP13 is output after the collection unit 530 outputs the CP information indicating the checkpoint CP11 again. The profile generation unit 540 connects from the checkpoint CP11 to the checkpoint CP13 as shown in FIG. Then, the profile generation unit 540 sets the power consumption “Δe” (“e13” in FIG. 6) from the checkpoint CP11 to the checkpoint CP13 and the processing time “Δt” (“t13” in FIG. 6). To do.

すなわち、プロファイル生成部540によって生成される実行プロファイルは、実行制御部212によるアプリケーションの実行状況として、各チェックポイント間における消費電力及び処理時間を示すこととなる。   That is, the execution profile generated by the profile generation unit 540 indicates the power consumption and processing time between checkpoints as the application execution status by the execution control unit 212.

なお、仮想移動端末601のプロファイル生成部640も、図6に例示した実行プロファイルを生成する。ここで、仮想移動端末601は、移動端末500と同一のアプリケーションを実行する。したがって、プロファイル生成部540及びプロファイル生成部640によって生成される各実行プロファイルは、チェックポイント間の接続関係が同一となる。しかし、移動端末500と仮想移動端末601におけるアプリケーションの実行速度等は同一でないので、双方の実行プロファイルに設定される消費電力「Δe」や処理時間「Δt」については異なる。   Note that the profile generation unit 640 of the virtual mobile terminal 601 also generates the execution profile illustrated in FIG. Here, the virtual mobile terminal 601 executes the same application as the mobile terminal 500. Therefore, each execution profile generated by the profile generation unit 540 and the profile generation unit 640 has the same connection relationship between checkpoints. However, since the application execution speed and the like in the mobile terminal 500 and the virtual mobile terminal 601 are not the same, the power consumption “Δe” and the processing time “Δt” set in both execution profiles are different.

管理装置400のプロファイル記憶部440は、プロファイル生成部540及び640によって生成された実行プロファイルを記憶する。すなわち、プロファイル記憶部440は、図6に例示したような実行プロファイルを所定のデータ構造(例えば、ハッシュテーブル、Key−Value−Store等)により記憶する。   The profile storage unit 440 of the management device 400 stores the execution profile generated by the profile generation units 540 and 640. That is, the profile storage unit 440 stores the execution profile illustrated in FIG. 6 in a predetermined data structure (for example, a hash table, Key-Value-Store, etc.).

管理装置400の分散データ共有部420は、チェックポイントのたびに、移動端末500の収集部530から進捗情報を受信し、仮想移動端末601の収集部630からも進捗情報を受信する。ただし、移動端末500と仮想移動端末601とでは、アプリケーションの実行にかかる処理時間が異なるので、分散データ共有部420は、移動端末500及び仮想移動端末601の双方から同時に進捗情報を受信しないことが多い。   The distributed data sharing unit 420 of the management apparatus 400 receives progress information from the collection unit 530 of the mobile terminal 500 and also receives progress information from the collection unit 630 of the virtual mobile terminal 601 at every checkpoint. However, since the processing time required for application execution differs between the mobile terminal 500 and the virtual mobile terminal 601, the distributed data sharing unit 420 may not receive progress information from both the mobile terminal 500 and the virtual mobile terminal 601 at the same time. Many.

分散データ共有部420は、移動端末500及び仮想移動端末601から受信した進捗情報を比較することにより、移動端末500と仮想移動端末601との間でアプリケーションの実行にかかる進捗に差異があるか否かを判定する。   The distributed data sharing unit 420 compares the progress information received from the mobile terminal 500 and the virtual mobile terminal 601 to determine whether or not there is a difference in the progress of application execution between the mobile terminal 500 and the virtual mobile terminal 601. Determine whether.

具体的には、第2の実施形態に係る分散データ共有部420は、移動端末500から進捗情報を受信した場合に、移動端末500において通過したチェックポイントを蓄積しておき、仮想移動端末601から進捗情報を受信した場合に、仮想移動端末601において通過したチェックポイントを蓄積しておく。例えば、分散データ共有部420は、移動端末500や仮想移動端末601の通過チェックポイントとして、「CP11、CP12、CP14、・・・」といった情報を蓄積する。   Specifically, when the distributed data sharing unit 420 according to the second embodiment receives progress information from the mobile terminal 500, the distributed data sharing unit 420 accumulates checkpoints passed by the mobile terminal 500, and from the virtual mobile terminal 601. When the progress information is received, the check points that have passed in the virtual mobile terminal 601 are accumulated. For example, the distributed data sharing unit 420 accumulates information such as “CP11, CP12, CP14,...” As a passing checkpoint of the mobile terminal 500 or the virtual mobile terminal 601.

そして、分散データ共有部420は、移動端末500から進捗情報を受信した場合には、かかる進捗情報(CP情報)によって示される通過チェックポイントと、蓄積しておいた仮想移動端末601の通過チェックポイントとに差異があるか否かを判定する。また、分散データ共有部420は、仮想移動端末601から進捗情報を受信した場合には、かかる進捗情報(CP情報)によって示される通過チェックポイントと、蓄積しておいた移動端末500の通過チェックポイントとに差異があるか否かを判定する。例えば、分散データ共有部420は、移動端末500の通過チェックポイント数と、仮想移動端末601の通過チェックポイント数との差異が所定のCP閾値以上であるか否かを判定する。   When the distributed data sharing unit 420 receives progress information from the mobile terminal 500, the shared check point of the virtual mobile terminal 601 and the passing checkpoint indicated by the progress information (CP information) are stored. It is determined whether or not there is a difference. In addition, when the distributed data sharing unit 420 receives progress information from the virtual mobile terminal 601, the passing checkpoint indicated by the progress information (CP information) and the passing checkpoint of the stored mobile terminal 500 are stored. It is determined whether or not there is a difference. For example, the distributed data sharing unit 420 determines whether or not the difference between the number of passing checkpoints of the mobile terminal 500 and the number of passing checkpoints of the virtual mobile terminal 601 is greater than or equal to a predetermined CP threshold.

そして、分散データ共有部420は、通過チェックポイントに差異がある場合に、プロファイル記憶部440に記憶されている実行プロファイルの消費電力又は処理時間に基づいて、移動端末500と仮想移動端末601との間で継続(continuation)を送受するべきか否かを判定する。   Then, when there is a difference in the passage check point, the distributed data sharing unit 420 determines whether the mobile terminal 500 and the virtual mobile terminal 601 are based on the power consumption or processing time of the execution profile stored in the profile storage unit 440. It is determined whether or not a continuation should be sent and received.

このような分散データ共有部420による処理の一例について説明する。ここでは、CP閾値が「1」であるものとする。また、チェックポイントの接続関係は図6に示した例であるものとする。また、分散データ共有部420が、移動端末500の通過チェックポイントとして「CP11」を蓄積しており、同様に、仮想移動端末601の通過チェックポイントとして「CP11」を蓄積しているものとする。また、分散データ共有部420が、仮想移動端末601から進捗情報「CP12」を受信したものとする。   An example of processing by the distributed data sharing unit 420 will be described. Here, it is assumed that the CP threshold is “1”. In addition, it is assumed that the connection relationship of checkpoints is the example shown in FIG. Further, it is assumed that the distributed data sharing unit 420 accumulates “CP11” as the passage check point of the mobile terminal 500 and similarly accumulates “CP11” as the passage check point of the virtual mobile terminal 601. Further, it is assumed that the distributed data sharing unit 420 has received the progress information “CP12” from the virtual mobile terminal 601.

かかる場合に、分散データ共有部420は、仮想移動端末601の通過チェックポイントに「CP12」を追加して「CP11、CP12」を蓄積する。この例の場合、移動端末500の通過チェックポイント数が「1」であり、仮想移動端末601の通過チェックポイント数が「2」であり、その差がCP閾値「1」以上である。このとき、分散データ共有部420は、移動端末500の実行プロファイルにおける消費電力又は処理時間に基づいて、仮想移動端末601の継続(continuation)を移動端末500に提供するか否かを判定する。   In such a case, the distributed data sharing unit 420 adds “CP12” to the passing checkpoint of the virtual mobile terminal 601 and accumulates “CP11, CP12”. In this example, the number of passing checkpoints of the mobile terminal 500 is “1”, the number of passing checkpoints of the virtual mobile terminal 601 is “2”, and the difference is equal to or greater than the CP threshold “1”. At this time, the distributed data sharing unit 420 determines whether to provide the mobile terminal 500 with continuation of the virtual mobile terminal 601 based on the power consumption or the processing time in the execution profile of the mobile terminal 500.

分散データ共有部420が消費電力に基づいて判定する例について説明する。分散データ共有部420は、仮想移動端末601から進捗情報を受信した際に、プロファイル記憶部440から、図6に例示したような移動端末500の実行プロファイルを取得する。この時点では、移動端末500の通過チェックポイントがCP11であり、仮想移動端末601の通過チェックポイントがCP12である。ここで、分散データ共有部420は、図6に示した実行プロファイルを参照して、移動端末500がチェックポイントCP11からチェックポイントCP12までに要する消費電力「Δe=e12」を取得する。   An example in which the distributed data sharing unit 420 determines based on power consumption will be described. When the distributed data sharing unit 420 receives the progress information from the virtual mobile terminal 601, the distributed data sharing unit 420 acquires the execution profile of the mobile terminal 500 as illustrated in FIG. 6 from the profile storage unit 440. At this time, the passing checkpoint of the mobile terminal 500 is CP11, and the passing checkpoint of the virtual mobile terminal 601 is CP12. Here, the distributed data sharing unit 420 refers to the execution profile shown in FIG. 6 and acquires the power consumption “Δe = e12” required for the mobile terminal 500 from the checkpoint CP11 to the checkpoint CP12.

また、分散データ共有部420は、移動端末500が仮想移動端末601の継続(continuation)を受信するのに要すると想定される想定消費電力を取得する。そして、分散データ共有部420は、プロファイル記憶部440から取得した消費電力「Δe=e12」が想定消費電力よりも所定の電力閾値以上大きい場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきであると判定する。これは、移動端末500がチェックポイントCP11からチェックポイントCP12を通過するまでに要する消費電力「Δe=e12」が、少なくとも移動端末500が仮想移動端末601の継続(continuation)を受信するのに要する想定消費電力以上であると判定できるからである。   Further, the distributed data sharing unit 420 acquires the assumed power consumption that is assumed to be necessary for the mobile terminal 500 to receive the continuation of the virtual mobile terminal 601. When the power consumption “Δe = e12” acquired from the profile storage unit 440 is larger than the assumed power consumption by a predetermined power threshold or more, the distributed data sharing unit 420 causes the mobile terminal 500 to continue the virtual mobile terminal 601 ( continuation) should be provided. This is based on the assumption that the power consumption “Δe = e12” required for the mobile terminal 500 to pass from the checkpoint CP11 to the checkpoint CP12 is required for at least the mobile terminal 500 to receive the continuation of the virtual mobile terminal 601. This is because it can be determined that the power consumption is greater than or equal to the power consumption.

一方、分散データ共有部420は、消費電力「Δe=e12」が想定消費電力よりも所定の電力閾値以上大きくない場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきでないと判定する。   On the other hand, the distributed data sharing unit 420 should provide continuation of the virtual mobile terminal 601 to the mobile terminal 500 when the power consumption “Δe = e12” is not larger than the assumed power consumption by a predetermined power threshold or more. It is determined that it is not.

続いて、分散データ共有部420が処理時間に基づいて判定する例について説明する。分散データ共有部420は、仮想移動端末601から進捗情報を受信した際に、プロファイル記憶部440から、図6に例示したような移動端末500の実行プロファイルを取得する。この時点では、移動端末500の通過チェックポイントがCP11であり、仮想移動端末601の通過チェックポイントがCP12である。ここで、分散データ共有部420は、図6に示した実行プロファイルを参照して、移動端末500がチェックポイントCP11からチェックポイントCP12までに要する処理時間「Δt=t12」を取得する。   Next, an example in which the distributed data sharing unit 420 determines based on the processing time will be described. When the distributed data sharing unit 420 receives the progress information from the virtual mobile terminal 601, the distributed data sharing unit 420 acquires the execution profile of the mobile terminal 500 as illustrated in FIG. 6 from the profile storage unit 440. At this time, the passing checkpoint of the mobile terminal 500 is CP11, and the passing checkpoint of the virtual mobile terminal 601 is CP12. Here, the distributed data sharing unit 420 refers to the execution profile shown in FIG. 6 and acquires the processing time “Δt = t12” required for the mobile terminal 500 from the checkpoint CP11 to the checkpoint CP12.

また、分散データ共有部420は、移動端末500が仮想移動端末601の継続(continuation)を受信するのに要すると想定される想定処理時間を取得する。そして、分散データ共有部420は、プロファイル記憶部440から取得した処理時間「Δt=t12」が想定処理時間よりも所定の時間閾値以上大きい場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきであると判定する。これは、移動端末500がチェックポイントCP11からチェックポイントCP12を通過するまでに要する処理時間「Δt=t12」が、少なくとも移動端末500が仮想移動端末601の継続(continuation)を受信するのに要する処理時間以上であると判定できるからである。   In addition, the distributed data sharing unit 420 acquires an assumed processing time that is required for the mobile terminal 500 to receive the continuation of the virtual mobile terminal 601. When the processing time “Δt = t12” acquired from the profile storage unit 440 is longer than the assumed processing time by a predetermined time threshold or more, the distributed data sharing unit 420 causes the mobile terminal 500 to continue the virtual mobile terminal 601 ( continuation) should be provided. This is because the processing time “Δt = t12” required for the mobile terminal 500 to pass from the checkpoint CP11 to the checkpoint CP12 is at least the processing required for the mobile terminal 500 to receive the continuation of the virtual mobile terminal 601. This is because it can be determined that the time is over.

一方、分散データ共有部420は、処理時間「Δt=t12」が想定処理時間よりも所定の電力閾値以上大きくない場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきでないと判定する。   On the other hand, the distributed data sharing unit 420 should provide continuation of the virtual mobile terminal 601 to the mobile terminal 500 when the processing time “Δt = t12” is not larger than the assumed processing time by a predetermined power threshold or more. It is determined that it is not.

管理装置400のチェックポイント改変部450は、プロファイル記憶部440に記憶されている実行プロファイルを分析し、中間コードに定義されるチェックポイントを改変させる。チェックポイント改変部450は、プロファイル記憶部440に蓄積されている実行プロファイルを分析することにより、毎回同様の消費電力や処理時間が得られるチェックポイントについては自明であると判定し、かかるチェックポイントをスキップするようにチェックポイント定義部411に指示する。例えば、図6に示した例において、「CP11→CP12」における「Δe」及び「Δt」が毎回同様の値である場合には、チェックポイントCP11からチェックポイントCP12までの消費電量や処理時間については自明であるといえる。かかる場合に、チェックポイント改変部450は、チェックポイントCP12を削除するようにチェックポイント定義部411に指示する。   The checkpoint modification unit 450 of the management device 400 analyzes the execution profile stored in the profile storage unit 440 and modifies the checkpoint defined in the intermediate code. The checkpoint modification unit 450 analyzes the execution profile stored in the profile storage unit 440 to determine that the checkpoint that can obtain the same power consumption and processing time every time is obvious, and determines the checkpoint. Instructs the checkpoint definition unit 411 to skip. For example, in the example shown in FIG. 6, when “Δe” and “Δt” in “CP11 → CP12” are the same values every time, the power consumption and processing time from the checkpoint CP11 to the checkpoint CP12 are as follows. It can be said that it is self-evident. In such a case, the checkpoint modification unit 450 instructs the checkpoint definition unit 411 to delete the checkpoint CP12.

かかるチェックポイント定義部411は、チェックポイント改変部450からの指示に従って、新たにチェックポイントが定義されたチェックポイント設定データを生成する。そして、チェックポイント合成部412は、新たなチェックポイントが定義された中間コードを生成し、実行制御部212がかかる中間コードを実行制御することとなる。   The checkpoint definition unit 411 generates checkpoint setting data in which a new checkpoint is defined in accordance with an instruction from the checkpoint modification unit 450. Then, the checkpoint synthesis unit 412 generates an intermediate code in which a new checkpoint is defined, and the execution control unit 212 executes and controls the intermediate code.

これにより、第2の実施形態に係るコンピュータシステム2では、プログラマ等によって初期設定されたチェックポイントに固執せずに、自明なチェックポイントについてはスキップすることができ、チェックポイントにおいて発生するオーバヘッドを軽減することができる。   As a result, in the computer system 2 according to the second embodiment, obvious checkpoints can be skipped without sticking to the checkpoints initially set by a programmer or the like, and the overhead generated at the checkpoints is reduced. can do.

[第2の実施形態の効果]
上述してきたように、第2の実施形態に係るコンピュータシステム2では、チェックポイントが所定の部分処理毎に設定される場合であっても、移動端末500等の情報処理装置における実行環境が変化する状況において、アプリケーションを継続的に実行することができる実行環境を提供することができるとともに、アプリ開発者のアプリケーション開発にかかる生産性の低下を抑制することができる。
[Effects of Second Embodiment]
As described above, in the computer system 2 according to the second embodiment, the execution environment in the information processing apparatus such as the mobile terminal 500 changes even when a checkpoint is set for each predetermined partial process. In the situation, it is possible to provide an execution environment in which an application can be continuously executed, and to suppress a decrease in productivity related to application development by an application developer.

第2の実施形態に係るコンピュータシステム2では、消費電力又は処理時間に基づいて、継続(continuation)の受け渡しを行うか否かを判定するので、分散した計算資源にまたがったアプリケーションを単一のプログラムとして設計・実装可能であり、単一のプログラムで異なる物理処理環境群、仮想処理環境群のいずれかの装置の性能低下や故障トラブルを回避して実行できる。   In the computer system 2 according to the second embodiment, since it is determined whether or not to continue the continuation based on the power consumption or the processing time, an application over distributed computing resources can be executed as a single program. Can be designed and implemented, and can be executed with a single program while avoiding performance degradation and failure troubles in different physical processing environment groups and virtual processing environment groups.

(第3の実施形態)
上述したコンピュータシステム1及び2は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、第3の実施形態では、上記のコンピュータシステム1及び2の他の実施形態について説明する。
(Third embodiment)
The computer systems 1 and 2 described above may be implemented in various different forms other than the above embodiment. Therefore, in the third embodiment, another embodiment of the computer systems 1 and 2 will be described.

[装置の組合せ]
上記の実施形態では、例えば、移動端末及び仮想移動端末を例に挙げて説明した。すなわち、上記の実施形態では、物理装置及び仮想装置に同一のアプリケーションを実行させる例について説明した。しかし、上述したコンピュータシステム1及び2は、複数の物理装置に同一のアプリケーションを実行させて、複数の物理装置におけるアプリケーションの実行状況を同期させてもよい。また、この例に限られず、上述したコンピュータシステム1及び2は、複数の仮想装置に同一のアプリケーションを実行させてもよい。
[Combination of devices]
In the above embodiment, for example, a mobile terminal and a virtual mobile terminal have been described as examples. That is, in the above-described embodiment, the example in which the same application is executed by the physical device and the virtual device has been described. However, the computer systems 1 and 2 described above may cause a plurality of physical devices to execute the same application to synchronize the execution status of the applications in the plurality of physical devices. Further, the present invention is not limited to this example, and the computer systems 1 and 2 described above may cause a plurality of virtual devices to execute the same application.

また、上述したコンピュータシステム1及び2は、移動端末及び仮想移動端末に同一のアプリケーションを実行させるのではなく、物理的に存在する通信装置(ルータ、モバイルルータ、ホームゲートウェイ等)と仮想的な通信装置(ルータ等)に同一のアプリケーションを実行させてもよい。また、上述したコンピュータシステム1及び2は、単一の移動端末及び単一の仮想移動端末に同一のアプリケーションを実行させるのではなく、複数の物理装置により形成される物理装置群と、複数の仮想装置により形成される仮想装置群とに対して同一のアプリケーションを実行させてもよい。   In addition, the computer systems 1 and 2 described above do not cause the mobile terminal and the virtual mobile terminal to execute the same application, but perform virtual communication with physically existing communication devices (routers, mobile routers, home gateways, etc.). A device (such as a router) may be caused to execute the same application. The computer systems 1 and 2 described above do not cause a single mobile terminal and a single virtual mobile terminal to execute the same application, but a physical device group formed by a plurality of physical devices and a plurality of virtual devices. The same application may be executed for a virtual device group formed by the devices.

[資源情報]
また、上記の実施形態では、収集部230や530等が、チェックポイント時に、移動端末200が消費した資源情報として「消費電力」や「処理時間」等を収集する例を示した。しかし、収集部230や530等は、チェックポイント時に、メモリ使用量、ネットワーク通信状態(ネットワーク負荷)などを収集してもよい。そして、例えば、分散データ共有部120は、仮想移動端末301のメモリ使用量が閾値以上である場合や、管理装置100と仮想移動端末301とのネットワーク負荷が閾値以上である場合には、仮想移動端末301の継続(continuation)を移動端末200に提供しないと判定してもよい。
[Resource information]
Further, in the above embodiment, an example is shown in which the collection units 230 and 530 collect “power consumption”, “processing time”, and the like as resource information consumed by the mobile terminal 200 at the checkpoint. However, the collection units 230, 530, and the like may collect memory usage, network communication status (network load), and the like at checkpoints. For example, the distributed data sharing unit 120 performs virtual migration when the memory usage of the virtual mobile terminal 301 is equal to or greater than the threshold, or when the network load between the management apparatus 100 and the virtual mobile terminal 301 is equal to or greater than the threshold. It may be determined that continuation of the terminal 301 is not provided to the mobile terminal 200.

[実行プロファイル]
また、第2の実施形態に係るプロファイル生成部540や640は、実行制御部212や312による計算回数の実績値、処理時間の実績値、消費電力の実績値、メモリ使用量の実績値、ファイルアクセスの実績値、ネットワーク通信料の実績値等の履歴を実行プロファイルとして蓄積してもよい。これにより、プロファイル記憶部440に記憶されている実行プロファイルを参照することで、常駐型プログラムの最適な実行環境を選択することができる。例えば、実行プロファイルに含まれる各種パラメータを考慮して、特定の部分処理のみを移動端末500側で実行させ、他の部分処理については仮想移動端末601側で実行させる等の最適化を実現することができる。
Execution profile
Further, the profile generation units 540 and 640 according to the second embodiment include the actual value of the number of calculations by the execution control units 212 and 312, the actual value of processing time, the actual value of power consumption, the actual value of memory usage, and the file A history such as an actual value of access and an actual value of network communication charges may be accumulated as an execution profile. Thereby, by referring to the execution profile stored in the profile storage unit 440, the optimal execution environment of the resident program can be selected. For example, in consideration of various parameters included in the execution profile, optimization is performed such that only specific partial processing is executed on the mobile terminal 500 side, and other partial processing is executed on the virtual mobile terminal 601 side. Can do.

また、このような実行プロファイルを参照することにより、例えば、部分処理毎に、ファイルアクセスやネットワークトラフィックの実績が0のまま推移している場合には、故障やデータ損失の危険性を察知し回避する活用が可能になる。このように長期間の実行プロファイルを活用することで、1日前より1日後、1週間前より1週間後、1ヶ月前より1ヶ月後の実行制御を見直し、最適な計算資源の利用を再計画しながら、高速処理、データ保全、省電力処理、セキュリティ遵守の処理制御指針に合わせたセルフチューニングが容易となる。   In addition, by referring to such an execution profile, for example, if the performance of file access or network traffic remains 0 for each partial process, the risk of failure or data loss is detected and avoided. Can be used. By utilizing the long-term execution profile in this way, the execution control after one day from one day ago, one week from one week ago, one month from one month ago is reviewed, and the optimal use of computing resources is re-planned. However, self-tuning according to the process control guidelines for high-speed processing, data maintenance, power-saving processing, and security compliance becomes easy.

[システム構成]
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図6に示したチェックポイントの通過順序は一例であって任意に変更することができる。
[System configuration]
In addition, among the processes described in the above embodiment, all or part of the processes described as being automatically performed can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedures, specific names, and information including various data and parameters shown in the document and drawings can be arbitrarily changed unless otherwise specified. For example, the order of passing checkpoints shown in FIG. 6 is an example and can be arbitrarily changed.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.

[プログラム]
また、上記実施形態において説明した管理装置100や移動端末200や仮想移動端末301等の各種装置が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、管理装置100が実行する処理をコンピュータが実行可能な言語で記述した管理プログラムを作成することもできる。また、例えば、移動端末200が実行する処理をコンピュータが実行可能な言語で記述した情報処理プログラムを作成することもできる。この場合、コンピュータが管理プログラムや情報処理プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる管理プログラムや情報処理プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された管理プログラムや情報処理プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、一例として、図3に示した管理装置100と同様の機能を実現する管理プログラムを実行するコンピュータの一例を説明する。
[program]
In addition, it is possible to create a program in which processing executed by various devices such as the management device 100, the mobile terminal 200, and the virtual mobile terminal 301 described in the above embodiment is described in a language that can be executed by a computer. For example, a management program in which processing executed by the management apparatus 100 is described in a language that can be executed by a computer can be created. Further, for example, an information processing program in which processing executed by the mobile terminal 200 is described in a language that can be executed by a computer can be created. In this case, when the computer executes the management program or the information processing program, the same effect as in the above embodiment can be obtained. Further, the management program and the information processing program are recorded on a computer-readable recording medium, and the management program and the information processing program recorded on the recording medium are read into the computer and executed, thereby executing the same as in the above embodiment. Processing may be realized. Hereinafter, as an example, an example of a computer that executes a management program that realizes the same function as the management device 100 illustrated in FIG. 3 will be described.

図7は、管理プログラムを実行するコンピュータ1000を示す図である。図7に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。   FIG. 7 is a diagram illustrating a computer 1000 that executes a management program. As illustrated in FIG. 7, the computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080.

メモリ1010は、図7に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図7に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図7に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース1050は、図7に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図7に例示するように、例えばディスプレイ1061に接続される。   The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012 as illustrated in FIG. The ROM 1011 stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to the hard disk drive 1031 as illustrated in FIG. The disk drive interface 1040 is connected to the disk drive 1041 as illustrated in FIG. For example, a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive. The serial port interface 1050 is connected to, for example, a mouse 1051 and a keyboard 1052 as illustrated in FIG. The video adapter 1060 is connected to a display 1061, for example, as illustrated in FIG.

ここで、図7に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の管理プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。例えば、図3に例示したチェックポイント定義部111と同様の情報処理を実行するチェックポイント定義手順と、チェックポイント合成部112と同様の情報処理を実行するチェックポイント合成手順と、分散データ共有部120と同様の情報処理を実行する判定手順と、継続分散共有部130と同様の情報処理を実行する提供手順とが記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。   Here, as illustrated in FIG. 7, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the above management program is stored in, for example, the hard disk drive 1031 as a program module in which a command executed by the computer 1000 is described. For example, a checkpoint definition procedure for executing information processing similar to the checkpoint definition unit 111 illustrated in FIG. 3, a checkpoint synthesis procedure for executing information processing similar to the checkpoint synthesis unit 112, and a distributed data sharing unit 120 The hard disk drive 1031 stores a program module 1093 in which a determination procedure for executing the same information processing as described above and a provision procedure for executing the same information processing as the continuous distribution sharing unit 130 are described.

そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、チェックポイント定義手順、チェックポイント合成手順、判定手順、提供手順を実行する。   Then, the CPU 1020 reads the program module 1093 and program data 1094 stored in the memory 1010 and the hard disk drive 1031 to the RAM 1012 as necessary, and executes a checkpoint definition procedure, a checkpoint composition procedure, a determination procedure, and a provision procedure.

なお、管理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、管理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。   Note that the program module 1093 and the program data 1094 related to the management program are not limited to being stored in the hard disk drive 1031, but may be stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk drive or the like. Good. Alternatively, the program module 1093 and the program data 1094 related to the management program are stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.), and via the network interface 1070. May be read by the CPU 1020.

1 コンピュータシステム
100 管理装置
120 分散データ共有部(判定部)
130 継続分散共有部(提供部)
200 移動端末
212 実行制御部
230 収集部
231 電力測定部
241 継続データ化部
242 継続適用部
300 クラウドサーバ
301 仮想移動端末
532 計時部
540 プロファイル生成部
DESCRIPTION OF SYMBOLS 1 Computer system 100 Management apparatus 120 Distributed data sharing part (determination part)
130 Continuously distributed sharing unit (providing unit)
DESCRIPTION OF SYMBOLS 200 Mobile terminal 212 Execution control part 230 Collection part 231 Power measurement part 241 Continuous data conversion part 242 Continuation application part 300 Cloud server 301 Virtual mobile terminal 532 Time measuring part 540 Profile generation part

Claims (7)

同一のアプリケーションを実行する複数の情報処理装置と、前記情報処理装置を管理する管理装置とを含むコンピュータシステムであって、
前記情報処理装置は、
前記アプリケーションを実行制御する実行制御部と、
前記実行制御部における前記アプリケーションの実行にかかる進捗を示す進捗情報を収集する収集部と、
前記管理装置の指示に従って、前記アプリケーションを実行中の前記実行制御部における計算状態を示す計算状態情報を生成する生成部と、
前記管理装置から計算状態情報が提供された場合に、当該計算状態情報によって示される計算状態を当該実行制御部における計算状態に適用する適用部とを備え、
前記管理装置は、
前記複数の情報処理装置における前記収集部によって収集された各進捗情報を比較することにより、当該複数の情報処理装置の間で前記アプリケーションの実行にかかる進捗に差異があるか否かを判定する判定部と、
前記判定部による進捗の差異の有無に応じて、第1情報処理装置よりも前記アプリケーションの実行が進行している第2情報処理装置に対して前記計算状態情報を生成させ、生成された計算状態情報を前記第1情報処理装置に提供する提供部と
を備えたことを特徴とするコンピュータシステム。
A computer system including a plurality of information processing devices that execute the same application and a management device that manages the information processing devices,
The information processing apparatus includes:
An execution control unit for controlling execution of the application;
A collection unit that collects progress information indicating the progress of execution of the application in the execution control unit;
A generation unit that generates calculation state information indicating a calculation state in the execution control unit that is executing the application in accordance with an instruction of the management device;
An application unit that applies the calculation state indicated by the calculation state information to the calculation state in the execution control unit when calculation state information is provided from the management device;
The management device
Judgment that determines whether or not there is a difference in the progress of execution of the application among the plurality of information processing devices by comparing the progress information collected by the collection unit in the plurality of information processing devices And
The calculation state information is generated by causing the second information processing device in which the execution of the application is progressing more than the first information processing device to generate the calculation state information according to whether there is a difference in progress by the determination unit. A computer system comprising: a providing unit that provides information to the first information processing apparatus.
前記情報処理装置は、
前記アプリケーションとして、複数の部分処理に分割可能なアプリケーションを実行し、
前記収集部は、
実行制御部によって実行済みの部分処理を示す進捗情報を収集し、
前記判定部は、
前記複数の情報処理装置において実行済みの部分処理の数の差異が所定の閾値以上であるか否かを判定し、
前記提供部は、
前記判定部によって、前記第2情報処理装置において実行済みの部分処理の数が、前記第1情報処理装置において実行済みの部分処理の数よりも前記閾値以上多いと判定された場合に、前記第2情報処理装置によって生成された計算状態情報を前記第1情報処理装置に提供する
ことを特徴とする請求項1に記載のコンピュータシステム。
The information processing apparatus includes:
As the application, an application that can be divided into a plurality of partial processes is executed,
The collector is
Collect progress information indicating the partial processing executed by the execution control unit,
The determination unit
Determining whether a difference in the number of partial processes executed in the plurality of information processing apparatuses is equal to or greater than a predetermined threshold;
The providing unit includes:
When the determination unit determines that the number of partial processes executed in the second information processing apparatus is greater than the threshold value than the number of partial processes executed in the first information processing apparatus, 2. The computer system according to claim 1, wherein calculation state information generated by the two information processing devices is provided to the first information processing device.
前記収集部は、
前記実行制御部によって前記アプリケーションが実行されている場合に、当該情報処理装置によって消費された資源に関する資源情報を収集し、
前記判定部は、
前記複数の情報処理装置の間で前記アプリケーションの実行にかかる進捗に差異がある場合に、前記収集部によって収集された資源情報に基づいて、当該複数の情報処理装置間で前記計算状態情報を送受させるか否かを判定する
ことを特徴とする請求項1又は2に記載のコンピュータシステム。
The collector is
When the application is executed by the execution control unit, collect resource information about the resource consumed by the information processing apparatus,
The determination unit
When there is a difference in the execution progress of the application among the plurality of information processing devices, the calculation state information is transmitted and received between the plurality of information processing devices based on the resource information collected by the collection unit. The computer system according to claim 1, wherein whether or not to perform the determination is determined.
前記情報処理装置は、
所定の部分処理毎に監視タイミングを示す情報が定義され、
前記収集部は、
前記実行制御部によって前記アプリケーションが実行されている間において監視タイミングとなった場合に、前回の監視タイミングから当該監視タイミングまでの監視タイミング間において当該情報処理装置によって消費された資源に関する資源情報と、当該監視タイミング間における当該情報処理装置の処理時間とを収集し、
前記情報処理装置は、
前記収集部によって収集された資源情報と処理時間とが監視タイミング間毎に対応付けられた実行プロファイルを生成するプロファイル生成部をさらに備え、
前記判定部は、
前記プロファイル生成部によって生成された実行プロファイルに基づいて、当該複数の情報処理装置間で前記計算状態情報を送受させた方が消費資源又は処理時間の浪費が小さいか否かを推定することで、当該複数の情報処理装置間で前記計算状態情報を送受させるか否かを判定する
ことを特徴とする請求項2に記載のコンピュータシステム。
The information processing apparatus includes:
Information indicating the monitoring timing is defined for each predetermined partial process,
The collector is
When it is a monitoring timing while the application is being executed by the execution control unit, resource information regarding resources consumed by the information processing apparatus between the monitoring timings from the previous monitoring timing to the monitoring timing, Collect the processing time of the information processing device between the monitoring timings,
The information processing apparatus includes:
A profile generation unit that generates an execution profile in which resource information and processing time collected by the collection unit are associated with each other between monitoring timings;
The determination unit
Based on the execution profile generated by the profile generation unit, by estimating whether it is less waste of consumption resources or processing time to send and receive the calculation state information between the plurality of information processing devices, The computer system according to claim 2, wherein it is determined whether or not the calculation state information is transmitted and received between the plurality of information processing apparatuses.
前記管理装置は、
前記収集部によって収集された同一の監視タイミングに対応する複数の消費資源が類似する場合、又は、前記収集部によって収集された同一の監視タイミングにおける複数の処理時間が類似する場合に、当該監視タイミングを監視タイミングから除外する改変部
をさらに備えたことを特徴とする請求項4に記載のコンピュータシステム。
The management device
When a plurality of consumption resources corresponding to the same monitoring timing collected by the collection unit are similar, or when a plurality of processing times at the same monitoring timing collected by the collection unit are similar, the monitoring timing The computer system according to claim 4, further comprising: a modification unit that excludes from the monitoring timing.
前記複数の情報処理装置は、
物理的な物理装置、仮想的に形成された仮想装置、複数の物理的な物理装置、又は、仮想的に形成された複数の仮想装置のいずれかである
ことを特徴とする請求項1〜4のいずれか一つに記載のコンピュータシステム。
The plurality of information processing devices include:
It is one of a physical physical device, a virtual device formed virtually, a plurality of physical physical devices, or a plurality of virtual devices formed virtually. The computer system according to any one of the above.
同一のアプリケーションを実行する第1情報処理装置及び第2情報処理装置と、前記第1情報処理装置及び前記第2情報処理装置を管理する管理装置とを含むコンピュータシステムで実行されるシステム制御方法であって、
前記第1情報処理装置及び前記第2情報処理装置は、
前記アプリケーションを実行制御する実行制御工程と、
前記実行制御工程における前記アプリケーションの実行にかかる進捗を示す進捗情報を収集する収集工程と、を含み、
前記管理装置は、
前記収集工程によって収集された前記第1情報処理装置及び第2情報処理装置に対応する進捗情報を比較することにより、前記第1情報処理装置よりも前記第2情報処理装置の方が前記アプリケーションの実行が進行しているか否かを判定する判定工程と、
前記判定工程において前記第1情報処理装置よりも前記第2情報処理装置の方が前記アプリケーションの実行が進行していると判定された場合に、前記第2情報処理装置に対して、前記アプリケーションを実行中の前記実行制御工程における計算状態を示す計算状態情報を生成するよう指示する指示工程と、を含み、
前記第2情報処理装置は、
前記管理装置の指示に従って、前記計算状態情報を生成する生成工程を含み、
前記管理装置は、
前記第2情報処理装置の生成工程において生成された計算状態情報を前記第1情報処理装置に提供する提供工程を含み、
前記第1情報処理装置は、
前記管理装置から提供された計算状態情報によって示される計算状態を当該第1情報処理装置の実行制御工程における計算状態に適用する適用工程を含む
ことを特徴とするシステム制御方法。
A system control method executed by a computer system including a first information processing apparatus and a second information processing apparatus that execute the same application, and a management apparatus that manages the first information processing apparatus and the second information processing apparatus There,
The first information processing apparatus and the second information processing apparatus are:
An execution control step for controlling the execution of the application;
A collection step of collecting progress information indicating a progress of execution of the application in the execution control step;
The management device
By comparing the progress information corresponding to the first information processing device and the second information processing device collected by the collecting step, the second information processing device is more likely to have the application information than the first information processing device. A determination step of determining whether or not execution is in progress;
In the determination step, when it is determined that the second information processing apparatus is executing the application more than the first information processing apparatus, the application is applied to the second information processing apparatus. An instruction step for instructing to generate calculation state information indicating a calculation state in the execution control step being executed,
The second information processing apparatus
Including a generation step of generating the calculation state information according to an instruction of the management device;
The management device
Including a providing step of providing the first information processing device with the calculation state information generated in the generating step of the second information processing device;
The first information processing apparatus
The system control method characterized by including the application process which applies the calculation state shown by the calculation state information provided from the said management apparatus to the calculation state in the execution control process of the said 1st information processing apparatus.
JP2012055095A 2012-03-12 2012-03-12 Computer system and system control method Expired - Fee Related JP5635027B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012055095A JP5635027B2 (en) 2012-03-12 2012-03-12 Computer system and system control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012055095A JP5635027B2 (en) 2012-03-12 2012-03-12 Computer system and system control method

Publications (2)

Publication Number Publication Date
JP2013190879A true JP2013190879A (en) 2013-09-26
JP5635027B2 JP5635027B2 (en) 2014-12-03

Family

ID=49391080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012055095A Expired - Fee Related JP5635027B2 (en) 2012-03-12 2012-03-12 Computer system and system control method

Country Status (1)

Country Link
JP (1) JP5635027B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9822428B2 (en) 2014-09-10 2017-11-21 Shin-Etsu Chemical Co., Ltd. Extraction/separation method
JP2021526670A (en) * 2018-06-08 2021-10-07 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. General-purpose machine learning model, model file generation and analysis method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233576A (en) * 1992-02-25 1993-09-10 Matsushita Electric Works Ltd Duplex system
JPH09237138A (en) * 1996-02-26 1997-09-09 Internatl Business Mach Corp <Ibm> Device and method for managing power consumption
JP2002318862A (en) * 2001-04-19 2002-10-31 Nippon Telegr & Teleph Corp <Ntt> Method for providing clustering service
JP2003529826A (en) * 2000-02-24 2003-10-07 シーメンス アクチエンゲゼルシヤフト Method and apparatus for synchronizing a program on a first computer with a program on a server, a computer-readable storage medium, and a computer program element
JP2009199197A (en) * 2008-02-20 2009-09-03 Hitachi Ltd Computer system, data matching method and data matching program
JP2011253390A (en) * 2010-06-02 2011-12-15 Trytech Co Ltd Distributed computing system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233576A (en) * 1992-02-25 1993-09-10 Matsushita Electric Works Ltd Duplex system
JPH09237138A (en) * 1996-02-26 1997-09-09 Internatl Business Mach Corp <Ibm> Device and method for managing power consumption
JP2003529826A (en) * 2000-02-24 2003-10-07 シーメンス アクチエンゲゼルシヤフト Method and apparatus for synchronizing a program on a first computer with a program on a server, a computer-readable storage medium, and a computer program element
JP2002318862A (en) * 2001-04-19 2002-10-31 Nippon Telegr & Teleph Corp <Ntt> Method for providing clustering service
JP2009199197A (en) * 2008-02-20 2009-09-03 Hitachi Ltd Computer system, data matching method and data matching program
JP2011253390A (en) * 2010-06-02 2011-12-15 Trytech Co Ltd Distributed computing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9822428B2 (en) 2014-09-10 2017-11-21 Shin-Etsu Chemical Co., Ltd. Extraction/separation method
JP2021526670A (en) * 2018-06-08 2021-10-07 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. General-purpose machine learning model, model file generation and analysis method
US11726754B2 (en) 2018-06-08 2023-08-15 Shanghai Cambricon Information Technology Co., Ltd. General machine learning model, and model file generation and parsing method
JP7386706B2 (en) 2018-06-08 2023-11-27 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド General-purpose machine learning model, model file generation and analysis method

Also Published As

Publication number Publication date
JP5635027B2 (en) 2014-12-03

Similar Documents

Publication Publication Date Title
US20120102503A1 (en) Green computing via event stream management
CN101981531B (en) Aggregating recurrent schedules to optimize resource consumption
US9354686B2 (en) Monitoring and managing processor activity in power save mode of portable electronic device
CN102789305B (en) Postponing suspend
US11683396B2 (en) Efficient context monitoring
WO2016041468A1 (en) Wakeup method, device and terminal
TWM539648U (en) Predictive control systems
TW201205441A (en) Multi-CPU domain mobile electronic device and operation method thereof
CN105528366B (en) A kind of data synchronization control method and device
US20100318663A1 (en) Optimizing mobile device synchronization with multiple data sources
JP2008546274A (en) Resource management with periodically distributed time
US8806246B1 (en) Enforcing and complying with a computing device power policy
JP5635027B2 (en) Computer system and system control method
Ciraci et al. Synchronization algorithms for co-simulation of power grid and communication networks
US10928877B2 (en) Communication device for predicting power consumption of mobile application, communication system including same, method of predicting power consumption of mobile application and method of providing predicted power consumption of mobile application, using same
CN108733536A (en) Monitoring management system and method
US9794881B2 (en) Method and apparatus for controlling aperiodic traffic in electronic device
CN114490091B (en) Method and device for monitoring rule engine performance in industrial data acquisition management system
CN106559861B (en) Bluetooth equipment data transmission method and device
Moinzadeh et al. The time-keeping anomaly of energy-saving sensors: Manifestation, solution, and a structural monitoring case study
Vergara et al. Fairness and incentive considerations in energy apportionment policies
Xiao et al. Power management for wireless data transmission using complex event processing
Maracic et al. Context-aware multi-agent system in machine-to-machine communication
US11765789B1 (en) Intelligently managing automatic performance of distributed tests
La et al. An Efficient Context Acquisition for'n'Mobile Apps

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141015

R150 Certificate of patent or registration of utility model

Ref document number: 5635027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees