JP2013190879A - Computer system and system control method - Google Patents
Computer system and system control method Download PDFInfo
- 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
Links
Images
Abstract
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.
しかしながら、上記の従来技術においては、アプリケーションの開発者(以下、「アプリ開発者」と表記する場合がある)の生産性が低下するおそれがあった。具体的には、アプリ開発者は、物理装置及び仮想装置によって協働して実行されるアプリケーションを開発する場合、物理装置及び仮想装置における資源の位置、性能、設計情報、固有機能等の実行環境を理解して注意深く設計することを要する。このため、アプリ開発者は、アプリケーションの主たる機能を実現するためのロジックをコーディングする他に、実行環境を意識した実行制御ロジックをコーディングすることを要することとなる。このようなことは、アプリ開発における生産性の低下を招く。 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.
以下に、本願に係るコンピュータシステム及びシステム制御方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るコンピュータシステム及びシステム制御方法が限定されるものではない。 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
第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
移動端末200は、例えば、携帯電話機やPDA等の情報処理装置であって、ネットワークNと無線通信を行うことにより、管理装置100と通信可能に接続される。かかる移動端末200は、利用者による操作に従ってアプリケーションを実行したり、所定の時刻になった際にアプリケーションを実行したり、起動中に常駐型のアプリケーションを常に実行したりする。
The
なお、第1の実施形態に係る移動端末200は、スマートフォンであり、Android(登録商標)等のモバイルOS(Operating System)がインストールされているものとする。すなわち、第1の実施形態に係る移動端末200は、例えば、モバイルOS上で動作するアプリケーションを実行する。
Note that the
クラウドサーバ300は、1台以上の物理装置が含まれ、かかる物理装置によって仮想的な移動端末、仮想的なPC、仮想的なサーバ装置、仮想的な通信装置、仮想的な外部記憶装置などを含む仮想装置群が形成される。第1の実施形態に係るクラウドサーバ300は、移動端末200に対応する仮想移動端末301を形成する。そして、クラウドサーバ300は、かかる仮想移動端末301によって、移動端末200において実行されるアプリケーションと同一のアプリケーションを実行する。
The
なお、図1に示した例において、管理装置100は、物理的に存在する物理装置であってもよいし、クラウドサーバ300によって実現される仮想装置であってもよいし、図示しない他のクラウドサーバによって実現される仮想装置であってもよい。
In the example illustrated in FIG. 1, the
[第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
アプリケーション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
また、移動端末200及びクラウドサーバ300は、各種アプリケーションを実行する際に、アプリケーションの実行状況等を確認するタイミングであるチェックポイントが設定される。そして、移動端末200及びクラウドサーバ300は、チェックポイントが設定されている時刻になった場合に、アプリケーションをどこまで実行したかを示す進捗情報を管理装置100に通知する。第1の実施形態では、一定の時間間隔(例えば、1分、5分、30分など)毎にチェックポイントが設定されるものとする。
In addition, when the
このような前提の下、図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
管理装置100は、チェックポイントCP1の時点で、移動端末200及びクラウドサーバ300から進捗情報を受信する。ここでは、管理装置100は、移動端末200及びクラウドサーバ300から受信した進捗情報に差異がないので、移動端末200及びクラウドサーバ300に対して処理を行わない。
The
続いて、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
管理装置100は、チェックポイントCP2の時点において、移動端末200及びクラウドサーバ300から受信した進捗情報に基づいて、移動端末200では部分処理J2まで実行が完了しているが、クラウドサーバ300では部分処理J5まで実行が完了していることを検知する。かかる場合に、管理装置100は、移動端末200及びクラウドサーバ300における実行済みの部分処理数の差が所定の処理数閾値以上であるか否かを判定する。そして、管理装置100は、実行済みの部分処理数の差が処理数閾値(ここでは、処理数閾値「3」とする)以上である場合には、移動端末200及びクラウドサーバ300におけるアプリケーションXの実行状況を同期させる。
The
具体的には、管理装置100は、実行済みの部分処理数が多いクラウドサーバ300から、「継続(continuation)」を取得する。ここで、「継続(continuation)」とは、これから実行する計算処理がデータとして具現化されたデータを示し、これまでの計算処理で到達した計算状態(CPU、スタック、ヒープ、プログラムカウンタ)をスナップショットとして切りとったデータ構造に相当する。
Specifically, the
図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
続いて、チェックポイント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
管理装置100は、チェックポイントCP3の時点において、移動端末200及びクラウドサーバ300における実行済みの部分処理数の差「2」が処理数閾値「3」以上でないと判定する。かかる場合には、管理装置100は、移動端末200及びクラウドサーバ300におけるアプリケーションXの実行状況を同期させない。すなわち、管理装置100は、移動端末200とクラウドサーバ300との間で継続(continuation)の受け渡しを行わせない。
The
このように、第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
これにより、第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
例えば、移動端末200は、アプリケーションの実行中に、IPアドレスが変化したり、電波が届かない環境に置かれたり、電池切れが発生したりすることがある。そして、移動端末200は、このように実行環境が変化した場合には、アプリケーションの実行が遅延、中断又は停止することがある。しかし、第1の実施形態に係るコンピュータシステム1では、移動端末200におけるアプリケーションの実行に遅延等が発生した場合であっても、クラウドサーバ300においてアプリケーションの実行が維持される。このため、コンピュータシステム1では、移動端末200の実行環境が改善された場合に、かかる移動端末200の実行状況をクラウドサーバ300の実行状況に同期させることができる。このようなことから、第1の実施形態に係るコンピュータシステム1では、スマートフォンのような移動端末200における実行環境が変化する場合であっても、アプリケーションを継続的に実行することができる。
For example, the
そして、コンピュータシステム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
なお、上記図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
[第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
チェックポイント定義部111は、アプリケーションの実行状況等を確認するタイミングであるチェックポイントが定義されたチェックポイント設定データを生成する。第1の実施形態に係るチェックポイント定義部111は、所定の時間間隔毎であることが定義されたチェックポイント設定データを生成する。そして、チェックポイント定義部111は、アプリケーションのソースコード及びチェックポイント設定データをチェックポイント合成部112に出力する。
The
なお、チェックポイント定義部111は、例えば、移動端末200によって実行され得るアプリケーションのソースコードを図示しない記憶部に保持する。そして、チェックポイント定義部111は、移動端末200によって所定のアプリケーションが実行される場合に、かかるアプリケーションを識別する情報を移動端末200から受信することで、移動端末200で実行されるアプリケーションに対応するソースコードを記憶部から取得する。また、例えば、チェックポイント定義部111がソースコードを保持するのではなく、移動端末200やクラウドサーバ300や仮想移動端末301や図示しない記憶部がソースコードを保持してもよい。かかる場合には、チェックポイント定義部111は、ソースコードを保持する装置から、移動端末200で実行されるアプリケーションに対応するソースコードを取得する。
Note that the
チェックポイント合成部112は、チェックポイント定義部111によって生成されたチェックポイント設定データに基づいて、チェックポイントが定義された中間コードを生成する。第1の実施形態に係るチェックポイント合成部112は、チェックポイントが所定の時間間隔毎であることが定義された中間コードを生成する。そして、チェックポイント合成部112は、チェックポイント定義済みの中間コードを移動端末200及び仮想移動端末301に出力する。なお、チェックポイント合成部112は、移動端末200及び仮想移動端末301に対して共通の実行態様となるように、チェックポイント定義部111から出力されたソースコードを中間コード化する。
The
分散データ共有部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
継続分散共有部130は、分散データ共有部120によって継続(continuation)の引き渡しを要すると判定された場合に、移動端末200及び仮想移動端末301の一方から継続(continuation)を取得し、取得した継続(continuation)を移動端末200及び仮想移動端末301の他方に提供する。
The continuous
また、図3に示すように、移動端末200は、プログラム配置部211と、実行制御部212と、チェックポイントトリガ部220と、収集部230と、継続データ化部241と、継続適用部242とを有する。
As shown in FIG. 3, the
プログラム配置部211は、チェックポイント合成部112からチェックポイント定義済みの中間コードを受信し、受信した中間コードを実行制御部212に出力する。これにより、プログラム配置部211は、実行制御部212にアプリケーションを実行させる。
The
実行制御部212は、プログラム配置部211から出力されたチェックポイント定義済みの中間コードを処理することで、アプリケーションを実行する。かかる実行制御部212は、物理実行環境Pである移動端末200内の計算資源(CPU時間、メモリ使用量等の計算リソース)を用いて、アプリケーションを実行する。
The
チェックポイントトリガ部220は、実行制御部212による実行制御の動作プロセスに対して、チェックポイント定義部111で定義されたチェックポイントを監視する。そして、チェックポイントトリガ部220は、チェックポイントとなった場合に、イベントを発生させて、収集部230に対して移動端末200(物理実行環境P)における実行状態に関する各種情報を測定させる。
The
また、第1の実施形態に係るチェックポイントトリガ部220は、実行制御部212によって実行済みの部分処理を示す進捗情報を収集部230に通知する。具体的には、実行制御部212によって実行される中間コードには、部分処理の実行完了時に実行制御部212が完了通知するための目印となるマーキングコードが所定の部分処理毎に埋め込まれる。このようなマーキングコードは、例えば、アプリ開発者であるプログラマ等によって埋め込まれる。また、例えば、アプリ開発者がマーキングコードを明示的に埋め込まなくても、メタプログラミング(アスペクト指向プログラミング)等を活用して、関数の評価結果やメソッドが送り返すメッセージを取得する論理的節目を自動的にマークできる手法によって、上記マーキングコードが埋め込まれてもよい。かかる手法を用いた場合には、実行時にどの処理単位(関数評価、メソッド実施)を何回実行したかをメタレベルのハッシュテーブル等に記録して実行状況を管理することが可能となる。そして、チェックポイントトリガ部220は、かかる完了通知を実行制御部212から受信することで、実行制御部212によって進捗情報を取得することができる。
Also, the
なお、第1の実施形態において、チェックポイントトリガ部220は、実行制御レベル(メタ実行レベル)で独立したスレッドを起こし、ローカルタイマを参照しながら一定の時間が経過するたびに(チェックポイントに達した時点で)、収集部230に対して実行状態に関する各種情報を測定するように割り込みを発生させてもよい。ここで、移動端末200(物理実行環境P)に、チェックポイントとなる一定の時間間隔が設定されている場合には、チェックポイント定義部111は、チェックポイント設定データを生成しなくてよく、また、チェックポイント合成部112は、チェックポイントが定義された中間コードを生成しなくてよい。
In the first embodiment, the
収集部230は、チェックポイントトリガ部220からチェックポイントである旨の通知を受け付けた場合に、移動端末200(物理実行環境P)における実行状態に関する各種(移動端末200が消費した資源に関する資源情報等)を収集する。第1の実施形態に係る収集部230は、電力測定部231を有する。
When the
電力測定部231は、移動端末200(物理実行環境P)における実行状態の要素として、移動端末200が要した消費電力を測定する。例えば、電力測定部231は、実行制御部212によってアプリケーションの実行が開始されてから現チェックポイントに至るまでに移動端末200が要した消費電力の累積を測定する。また、例えば、電力測定部231は、前回のチェックポイントから現チェックポイントまでに移動端末200が要した消費電力を測定する。第1の実施形態では、電力測定部231は、消費電力の累積を測定するものとする。なお、電力測定部231は、例えば、消費電力をモニタリングするための専用デバイス等によって移動端末200によって消費された電力を取得することができる。また、例えば、スマートフォン等には消費電力を監視するアプリや機構が一般的に搭載されているので、電力測定部231は、このようなアプリや機構を用いて消費電力を取得することができる。
The
そして、収集部230は、チェックポイントトリガ部220から通知された進捗情報と、電力測定部231によって測定された消費電力を示す消費電力情報を分散データ共有部120に送信する。
Then, the
ここで、第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
また、図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
このような分散データ共有部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
かかる場合に、分散データ共有部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
ここで、分散データ共有部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
また、上記例において、分散データ共有部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
具体的には、分散データ共有部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
このような分散データ共有部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 (
継続データ化部241は、任意の時点における計算状態(CPU、スタック、ヒープ、プログラムカウンタ)をスナップショットとして保存したデータ構造に相当する継続(continuation)を生成する。かかる継続データ化部241は、分散データ共有部120による指示に従って継続(continuation)を生成し、生成した継続(continuation)を継続分散共有部130に送信する。かかる継続分散共有部130は、継続データ化部241から受信した継続(continuation)を、仮想移動端末301の継続適用部342に送信する。また、継続分散共有部130は、仮想移動端末301の継続データ化部341から継続(continuation)を受信した場合には、受信した継続(continuation)を移動端末200の継続適用部242に送信する。
The continuation
継続適用部242は、継続分散共有部130から、仮想移動端末301の継続データ化部341によって生成された継続(continuation)を受信した場合に、受信した継続(continuation)を実行制御部212に適用する。具体的には、継続適用部242は、継続分散共有部130から提供された継続(continuation)を実行することで、移動端末200と仮想移動端末301におけるアプリケーションの実行状況を同期させる。
The
また、図3に示すように、クラウドサーバ300は、プログラム配置部311と、実行制御部312と、チェックポイントトリガ部320と、収集部330と、継続データ化部341と、継続適用部342とを有する。これらの各処理部は、図1に示した仮想移動端末301によって実現される処理部であって、クラウドサーバ300(仮想実行環境V)内において、上記の移動端末200が有する各処理部と同様の処理を行う。なお、一般的には、クラウドサーバ300の計算資源(メモリ、CPUパワー、電力、ストレージ)は安定供給が期待できる。高速・安定電源・確実なデータ保管能力から、不安定な通信状態にある移動端末200より確実な実行結果を達成できる期待がある。
As shown in FIG. 3, the
[第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
移動端末200の実行制御部212は、管理装置100から送信されたチェックポイント定義済みの中間コードを処理することで、アプリケーションを実行制御する(ステップS102)。同様に、仮想移動端末301の実行制御部312は、管理装置100から送信されたチェックポイント定義済みの中間コードを処理することで、アプリケーションを実行制御する(ステップS103)。
The
そして、移動端末200のチェックポイントトリガ部220は、実行制御部212によってアプリケーションが実行されている場合に、チェックポイントとなったか否かを監視する(ステップS104)。同様に、仮想移動端末301のチェックポイントトリガ部320は、実行制御部312によってアプリケーションが実行されている場合に、チェックポイントとなったか否かを監視する(ステップS105)。
Then, the
そして、移動端末200の電力測定部231は、チェックポイントとなった場合に(ステップS104肯定)、消費電力を測定する(ステップS106)。そして、収集部230は、進捗情報、消費電力情報を管理装置100に送信する(ステップS107)。同様に、仮想移動端末301の電力測定部331は、チェックポイントとなった場合に(ステップS105肯定)、消費電力を測定する(ステップS108)。そして、収集部330は、進捗情報、消費電力情報を管理装置100に送信する(ステップS109)。
When the
続いて、管理装置100の分散データ共有部120は、移動端末200及び仮想移動端末301から送信される進捗情報等に基づいて、移動端末200と仮想移動端末301との間で継続(continuation)の引き渡しを行わせるか否かを判定する(ステップS110)。
Subsequently, the distributed data sharing unit 120 of the
ここでは、分散データ共有部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
管理装置100の継続分散共有部130は、仮想移動端末301から受信した継続(continuation)を移動端末200に提供する(ステップS113)。そして、移動端末200の継続適用部242は、管理装置100から受信した継続(continuation)を実行制御部212に適用する(ステップS114)。
The continuous
[第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
これにより、第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
また、例えば、写真の編集処理など高度に専門的で複雑なアプリケーションは、従来では独自のスタンドアロンプログラムで実装されていたが、昨今、スマートフォン(多機能電話装置)等でも利用される動きが加速している。一方、デバイスの省電力化・低コスト化の動きも加速しており、低速デバイスでのコンピューティングは依然としてニーズが高い。すなわち、移動中の低速デバイスで高度で複雑なアプリケーションを利用したいといった相反するコンピューティングニーズが拡大しているといえる。 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
なお、上記第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
例えば、分散データ共有部120は、移動端末200及び仮想移動端末301における双方の合計消費電力を極力低減するために、移動端末200及び仮想移動端末301における消費電力の差異が、移動端末200又は仮想移動端末301が継続(continuation)を送信及び受信するのに要すると想定される消費電力よりも大きいか否かを判定してもよい。
For example, in order to reduce the total power consumption of both the
また、例えば、仮想移動端末301が実現されるクラウドサーバ300環境では安定した電力供給が可能であり消費電力の低減が重要視されない前提が存在する場合には、分散データ共有部120は、移動端末200における消費電力の低減を優先してもよい。具体的には、分散データ共有部120は、仮想移動端末301の継続(continuation)を移動端末200に送信する場合に、上記例のように、移動端末200及び仮想移動端末301における消費電力の差異が、移動端末200が仮想移動端末301の継続(continuation)を受信するのに要すると想定される消費電力よりも大きいか否かを判定する。
For example, in the
また、分散データ共有部120は、移動端末200及び仮想移動端末301における過去の消費電力をプロファイルとして蓄積しておき、移動端末200と仮想移動端末301における消費電力の比率に基づいて、想定消費電力を推定してもよい。例えば、分散データ共有部120は、かかる比率を用いて、仮想移動端末301の消費電力を移動端末200の消費電力に換算するなどして、移動端末200の消費電力を推定する。
Further, the distributed data sharing unit 120 accumulates past power consumption in the
(第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
[第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
管理装置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
管理装置400のチェックポイント定義部411は、アプリケーションのソースコードに含まれる所定の部分処理(関数やメソッド)毎に、チェックポイントが定義されたチェックポイント設定データを生成する。チェックポイントを埋め込む位置は、アプリ開発者であるプログラマ等によって指定される。例えば、第2の実施形態に係るチェックポイント定義部411は、アプリ開発者であるプログラマ等が利用する端末装置の表示装置にソースコードを表示するなどして、アプリ開発者であるプログラマ等と対話的にチェックポイントを埋め込む位置を指定させる。なお、第1の実施形態でも説明したように、メタプログラミング(アスペクト指向プログラミング)等を活用することで、アプリ開発者が明示的にチェックポイントを埋め込まなくても、自動的にチェックポイントを埋め込むこともできる。
The
管理装置400のチェックポイント合成部412は、チェックポイント定義部411によって生成されたチェックポイント設定データに基づいて、チェックポイントが定義された中間コードを生成する。例えば、第2の実施形態に係るチェックポイント合成部412は、アスペクト指向におけるインターセプトのロジックの織り込み又は自己反映計算モデルであるメタロジックの定義に基づくプログラムコードの合成及び翻訳により、チェックポイント定義済みの中間コードを生成する。
Based on the checkpoint setting data generated by the
移動端末500のチェックポイントトリガ部520は、実行制御部212による実行制御の動作プロセスに対して、チェックポイント定義部411で定義されたチェックポイントを監視する。そして、チェックポイントトリガ部520は、チェックポイントとなった場合に、イベントを発生させて、収集部530に対して移動端末500(物理実行環境P)における実行状態を測定させる。
The
また、第2の実施形態に係るチェックポイントトリガ部520は、チェックポイントとなった場合に、かかるチェックポイントを特定するための進捗情報(CP情報)として収集部530に通知する。
In addition, when a checkpoint becomes a checkpoint, the
移動端末500の収集部530は、図5に示すように、電力測定部531と、計時部532とを有する。第2の実施形態に係る電力測定部531は、移動端末500(物理実行環境P)における実行状態の要素として、前回のチェックポイントから現チェックポイントまでに移動端末500が要した消費電力を測定する。
The
計時部532は、移動端末500(物理実行環境P)における実行状態の要素として、移動端末500におけるアプリケーションの処理時間を計時する。例えば、計時部532は、前回のチェックポイントから現チェックポイントまでの経過時間を処理時間として計時する。また、例えば、計時部532は、実行制御部212によってアプリケーションの実行が開始されてから現チェックポイントに至るまでの累積の経過時間を処理時間として計時する。第2の実施形態では、計時部532は、チェックポイント間の経過時間を処理時間として計時するものとする。
The
そして、収集部530は、チェックポイントのたびにチェックポイントトリガ部220から通知される進捗情報(CP情報)と、電力測定部531によって測定された消費電力を示す消費電力情報と、計時部532によって計時された処理時間を示す処理時間情報とをプロファイル生成部540に出力するとともに、進捗情報(CP情報)を分散データ共有部420に送信する。
The
プロファイル生成部540は、収集部530から出力された進捗情報、消費電力情報及び処理時間情報を用いて、常駐プログラムであるアプリケーションの実行プロファイルを生成する。具体的には、プロファイル生成部540は、部分処理間における消費電力及び処理時間を実行プロファイルとして生成し、生成した実行プロファイルを管理装置400のプロファイル記憶部440に格納する。
The
ここで、図6を用いて、プロファイル生成部540によって生成される実行プロファイルについて説明する。図6は、第2の実施形態に係るプロファイル生成部540によって生成される実行プロファイルの一例を概念的に示す図である。
Here, the execution profile generated by the
図6に示すように、プロファイル生成部540は、各チェックポイント間の消費電力情報及び処理時間情報を記録する。図6に示した例では、チェックポイントCP11の次は、チェックポイントCP12又はCP13を通る例を示しており、チェックポイントCP12の次は、チェックポイントCP14又はCP15を通る例を示している。これは、アプリケーションには分岐処理が存在するからであり、アプリケーションに定義されたチェックポイントCP11、CP12、・・・、CP19の順に実行されるとは限らないからである。
As shown in FIG. 6, the
そして、プロファイル生成部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
また、実行制御部212によって中間コードが繰り返し実行されることにより、収集部530によって、チェックポイントCP11を示すCP情報が再度出力された後に、チェックポイントCP13を示すCP情報が出力された場合には、プロファイル生成部540は、図6に示すように、チェックポイントCP11からチェックポイントCP13へ接続する。そして、プロファイル生成部540は、チェックポイントCP11からチェックポイントCP13までの消費電力「Δe」(図6では、「e13」)と、処理時間「Δt」(図6では、「t13」)とを設定する。
In addition, when the
すなわち、プロファイル生成部540によって生成される実行プロファイルは、実行制御部212によるアプリケーションの実行状況として、各チェックポイント間における消費電力及び処理時間を示すこととなる。
That is, the execution profile generated by the
なお、仮想移動端末601のプロファイル生成部640も、図6に例示した実行プロファイルを生成する。ここで、仮想移動端末601は、移動端末500と同一のアプリケーションを実行する。したがって、プロファイル生成部540及びプロファイル生成部640によって生成される各実行プロファイルは、チェックポイント間の接続関係が同一となる。しかし、移動端末500と仮想移動端末601におけるアプリケーションの実行速度等は同一でないので、双方の実行プロファイルに設定される消費電力「Δe」や処理時間「Δt」については異なる。
Note that the
管理装置400のプロファイル記憶部440は、プロファイル生成部540及び640によって生成された実行プロファイルを記憶する。すなわち、プロファイル記憶部440は、図6に例示したような実行プロファイルを所定のデータ構造(例えば、ハッシュテーブル、Key−Value−Store等)により記憶する。
The
管理装置400の分散データ共有部420は、チェックポイントのたびに、移動端末500の収集部530から進捗情報を受信し、仮想移動端末601の収集部630からも進捗情報を受信する。ただし、移動端末500と仮想移動端末601とでは、アプリケーションの実行にかかる処理時間が異なるので、分散データ共有部420は、移動端末500及び仮想移動端末601の双方から同時に進捗情報を受信しないことが多い。
The distributed
分散データ共有部420は、移動端末500及び仮想移動端末601から受信した進捗情報を比較することにより、移動端末500と仮想移動端末601との間でアプリケーションの実行にかかる進捗に差異があるか否かを判定する。
The distributed
具体的には、第2の実施形態に係る分散データ共有部420は、移動端末500から進捗情報を受信した場合に、移動端末500において通過したチェックポイントを蓄積しておき、仮想移動端末601から進捗情報を受信した場合に、仮想移動端末601において通過したチェックポイントを蓄積しておく。例えば、分散データ共有部420は、移動端末500や仮想移動端末601の通過チェックポイントとして、「CP11、CP12、CP14、・・・」といった情報を蓄積する。
Specifically, when the distributed
そして、分散データ共有部420は、移動端末500から進捗情報を受信した場合には、かかる進捗情報(CP情報)によって示される通過チェックポイントと、蓄積しておいた仮想移動端末601の通過チェックポイントとに差異があるか否かを判定する。また、分散データ共有部420は、仮想移動端末601から進捗情報を受信した場合には、かかる進捗情報(CP情報)によって示される通過チェックポイントと、蓄積しておいた移動端末500の通過チェックポイントとに差異があるか否かを判定する。例えば、分散データ共有部420は、移動端末500の通過チェックポイント数と、仮想移動端末601の通過チェックポイント数との差異が所定のCP閾値以上であるか否かを判定する。
When the distributed
そして、分散データ共有部420は、通過チェックポイントに差異がある場合に、プロファイル記憶部440に記憶されている実行プロファイルの消費電力又は処理時間に基づいて、移動端末500と仮想移動端末601との間で継続(continuation)を送受するべきか否かを判定する。
Then, when there is a difference in the passage check point, the distributed
このような分散データ共有部420による処理の一例について説明する。ここでは、CP閾値が「1」であるものとする。また、チェックポイントの接続関係は図6に示した例であるものとする。また、分散データ共有部420が、移動端末500の通過チェックポイントとして「CP11」を蓄積しており、同様に、仮想移動端末601の通過チェックポイントとして「CP11」を蓄積しているものとする。また、分散データ共有部420が、仮想移動端末601から進捗情報「CP12」を受信したものとする。
An example of processing by the distributed
かかる場合に、分散データ共有部420は、仮想移動端末601の通過チェックポイントに「CP12」を追加して「CP11、CP12」を蓄積する。この例の場合、移動端末500の通過チェックポイント数が「1」であり、仮想移動端末601の通過チェックポイント数が「2」であり、その差がCP閾値「1」以上である。このとき、分散データ共有部420は、移動端末500の実行プロファイルにおける消費電力又は処理時間に基づいて、仮想移動端末601の継続(continuation)を移動端末500に提供するか否かを判定する。
In such a case, the distributed
分散データ共有部420が消費電力に基づいて判定する例について説明する。分散データ共有部420は、仮想移動端末601から進捗情報を受信した際に、プロファイル記憶部440から、図6に例示したような移動端末500の実行プロファイルを取得する。この時点では、移動端末500の通過チェックポイントがCP11であり、仮想移動端末601の通過チェックポイントがCP12である。ここで、分散データ共有部420は、図6に示した実行プロファイルを参照して、移動端末500がチェックポイントCP11からチェックポイントCP12までに要する消費電力「Δe=e12」を取得する。
An example in which the distributed
また、分散データ共有部420は、移動端末500が仮想移動端末601の継続(continuation)を受信するのに要すると想定される想定消費電力を取得する。そして、分散データ共有部420は、プロファイル記憶部440から取得した消費電力「Δe=e12」が想定消費電力よりも所定の電力閾値以上大きい場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきであると判定する。これは、移動端末500がチェックポイントCP11からチェックポイントCP12を通過するまでに要する消費電力「Δe=e12」が、少なくとも移動端末500が仮想移動端末601の継続(continuation)を受信するのに要する想定消費電力以上であると判定できるからである。
Further, the distributed
一方、分散データ共有部420は、消費電力「Δe=e12」が想定消費電力よりも所定の電力閾値以上大きくない場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきでないと判定する。
On the other hand, the distributed
続いて、分散データ共有部420が処理時間に基づいて判定する例について説明する。分散データ共有部420は、仮想移動端末601から進捗情報を受信した際に、プロファイル記憶部440から、図6に例示したような移動端末500の実行プロファイルを取得する。この時点では、移動端末500の通過チェックポイントがCP11であり、仮想移動端末601の通過チェックポイントがCP12である。ここで、分散データ共有部420は、図6に示した実行プロファイルを参照して、移動端末500がチェックポイントCP11からチェックポイントCP12までに要する処理時間「Δt=t12」を取得する。
Next, an example in which the distributed
また、分散データ共有部420は、移動端末500が仮想移動端末601の継続(continuation)を受信するのに要すると想定される想定処理時間を取得する。そして、分散データ共有部420は、プロファイル記憶部440から取得した処理時間「Δt=t12」が想定処理時間よりも所定の時間閾値以上大きい場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきであると判定する。これは、移動端末500がチェックポイントCP11からチェックポイントCP12を通過するまでに要する処理時間「Δt=t12」が、少なくとも移動端末500が仮想移動端末601の継続(continuation)を受信するのに要する処理時間以上であると判定できるからである。
In addition, the distributed
一方、分散データ共有部420は、処理時間「Δt=t12」が想定処理時間よりも所定の電力閾値以上大きくない場合には、移動端末500に仮想移動端末601の継続(continuation)を提供するべきでないと判定する。
On the other hand, the distributed
管理装置400のチェックポイント改変部450は、プロファイル記憶部440に記憶されている実行プロファイルを分析し、中間コードに定義されるチェックポイントを改変させる。チェックポイント改変部450は、プロファイル記憶部440に蓄積されている実行プロファイルを分析することにより、毎回同様の消費電力や処理時間が得られるチェックポイントについては自明であると判定し、かかるチェックポイントをスキップするようにチェックポイント定義部411に指示する。例えば、図6に示した例において、「CP11→CP12」における「Δe」及び「Δt」が毎回同様の値である場合には、チェックポイントCP11からチェックポイントCP12までの消費電量や処理時間については自明であるといえる。かかる場合に、チェックポイント改変部450は、チェックポイントCP12を削除するようにチェックポイント定義部411に指示する。
The
かかるチェックポイント定義部411は、チェックポイント改変部450からの指示に従って、新たにチェックポイントが定義されたチェックポイント設定データを生成する。そして、チェックポイント合成部412は、新たなチェックポイントが定義された中間コードを生成し、実行制御部212がかかる中間コードを実行制御することとなる。
The
これにより、第2の実施形態に係るコンピュータシステム2では、プログラマ等によって初期設定されたチェックポイントに固執せずに、自明なチェックポイントについてはスキップすることができ、チェックポイントにおいて発生するオーバヘッドを軽減することができる。
As a result, in the
[第2の実施形態の効果]
上述してきたように、第2の実施形態に係るコンピュータシステム2では、チェックポイントが所定の部分処理毎に設定される場合であっても、移動端末500等の情報処理装置における実行環境が変化する状況において、アプリケーションを継続的に実行することができる実行環境を提供することができるとともに、アプリ開発者のアプリケーション開発にかかる生産性の低下を抑制することができる。
[Effects of Second Embodiment]
As described above, in the
第2の実施形態に係るコンピュータシステム2では、消費電力又は処理時間に基づいて、継続(continuation)の受け渡しを行うか否かを判定するので、分散した計算資源にまたがったアプリケーションを単一のプログラムとして設計・実装可能であり、単一のプログラムで異なる物理処理環境群、仮想処理環境群のいずれかの装置の性能低下や故障トラブルを回避して実行できる。
In the
(第3の実施形態)
上述したコンピュータシステム1及び2は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、第3の実施形態では、上記のコンピュータシステム1及び2の他の実施形態について説明する。
(Third embodiment)
The
[装置の組合せ]
上記の実施形態では、例えば、移動端末及び仮想移動端末を例に挙げて説明した。すなわち、上記の実施形態では、物理装置及び仮想装置に同一のアプリケーションを実行させる例について説明した。しかし、上述したコンピュータシステム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
また、上述したコンピュータシステム1及び2は、移動端末及び仮想移動端末に同一のアプリケーションを実行させるのではなく、物理的に存在する通信装置(ルータ、モバイルルータ、ホームゲートウェイ等)と仮想的な通信装置(ルータ等)に同一のアプリケーションを実行させてもよい。また、上述したコンピュータシステム1及び2は、単一の移動端末及び単一の仮想移動端末に同一のアプリケーションを実行させるのではなく、複数の物理装置により形成される物理装置群と、複数の仮想装置により形成される仮想装置群とに対して同一のアプリケーションを実行させてもよい。
In addition, the
[資源情報]
また、上記の実施形態では、収集部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
[実行プロファイル]
また、第2の実施形態に係るプロファイル生成部540や640は、実行制御部212や312による計算回数の実績値、処理時間の実績値、消費電力の実績値、メモリ使用量の実績値、ファイルアクセスの実績値、ネットワーク通信料の実績値等の履歴を実行プロファイルとして蓄積してもよい。これにより、プロファイル記憶部440に記憶されている実行プロファイルを参照することで、常駐型プログラムの最適な実行環境を選択することができる。例えば、実行プロファイルに含まれる各種パラメータを考慮して、特定の部分処理のみを移動端末500側で実行させ、他の部分処理については仮想移動端末601側で実行させる等の最適化を実現することができる。
Execution profile
Further, the
また、このような実行プロファイルを参照することにより、例えば、部分処理毎に、ファイルアクセスやネットワークトラフィックの実績が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
図7は、管理プログラムを実行するコンピュータ1000を示す図である。図7に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
FIG. 7 is a diagram illustrating a
メモリ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
ここで、図7に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の管理プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。例えば、図3に例示したチェックポイント定義部111と同様の情報処理を実行するチェックポイント定義手順と、チェックポイント合成部112と同様の情報処理を実行するチェックポイント合成手順と、分散データ共有部120と同様の情報処理を実行する判定手順と、継続分散共有部130と同様の情報処理を実行する提供手順とが記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
Here, as illustrated in FIG. 7, the
そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、チェックポイント定義手順、チェックポイント合成手順、判定手順、提供手順を実行する。
Then, the
なお、管理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、管理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
Note that the
1 コンピュータシステム
100 管理装置
120 分散データ共有部(判定部)
130 継続分散共有部(提供部)
200 移動端末
212 実行制御部
230 収集部
231 電力測定部
241 継続データ化部
242 継続適用部
300 クラウドサーバ
301 仮想移動端末
532 計時部
540 プロファイル生成部
DESCRIPTION OF SYMBOLS 1
130 Continuously distributed sharing unit (providing unit)
DESCRIPTION OF
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情報処理装置の方が前記アプリケーションの実行が進行していると判定された場合に、前記第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.
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)
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)
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 |
-
2012
- 2012-03-12 JP JP2012055095A patent/JP5635027B2/en not_active Expired - Fee Related
Patent Citations (6)
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)
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 |