JP2014164567A - Processor, distributed processing method and distributed processing program - Google Patents

Processor, distributed processing method and distributed processing program Download PDF

Info

Publication number
JP2014164567A
JP2014164567A JP2013035768A JP2013035768A JP2014164567A JP 2014164567 A JP2014164567 A JP 2014164567A JP 2013035768 A JP2013035768 A JP 2013035768A JP 2013035768 A JP2013035768 A JP 2013035768A JP 2014164567 A JP2014164567 A JP 2014164567A
Authority
JP
Japan
Prior art keywords
processing
server
component
executed
processing device
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
JP2013035768A
Other languages
Japanese (ja)
Other versions
JP5847744B2 (en
Inventor
Shoji Toyama
将司 外山
Kazufuka Chiba
一深 千葉
Kazutomo Tomita
千智 富田
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 JP2013035768A priority Critical patent/JP5847744B2/en
Publication of JP2014164567A publication Critical patent/JP2014164567A/en
Application granted granted Critical
Publication of JP5847744B2 publication Critical patent/JP5847744B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a mechanism for controlling the distributed processing environment of an application in accordance with the situation of a communication environment.SOLUTION: When a call to the component of internal processing is made from the component of a user interface, a mobile terminal 20 determines whether to execute the processing of the component of internal processing by a mobile terminal 20 or by a server 30 in accordance with the situation of communication, and switches the call destination of the call between the mobile terminal 20 and the server 30 in accordance with the result of determination. When the call destination is switched to the mobile terminal 20, the mobile terminal 20 controls the mobile terminal 20 to execute unexecuted methods among methods stored in a queue 25, and when the call destination is switched to a server 30, the mobile terminal 20 controls the server 30 to execute the unexecuted methods among the methods stored in the queue 25.

Description

本発明は、処理装置、分散処理方法および分散処理プログラムに関する。   The present invention relates to a processing apparatus, a distributed processing method, and a distributed processing program.

従来より、実行中のアプリケーションのバックグラウンド処理については実施されており、モバイル端末などの端末上で動作するアプリケーション(以下、「モバイル端末向けアプリ」と記す)においても、様々なバックグラウンド処理が実現可能となっている(例えば、非特許文献1参照)。   Conventionally, background processing of running applications has been performed, and various background processing is realized even for applications that run on terminals such as mobile terminals (hereinafter referred to as “apps for mobile terminals”) (For example, refer nonpatent literature 1).

例えば、モバイル端末向けアプリを動作させるオペレーティング・システム(以下「モバイルOS」と記載する)の代表であるAndroid(登録商標)においては、Serviceとういうコンポーネントにモバイル端末向けアプリのバックグランド処理が実装されており、アプリのGUI操作(Activity)が停止した後もバックグラウンドで処理を継続できる仕組みとなる。   For example, in the Android (registered trademark) representative of an operating system (hereinafter referred to as “mobile OS”) that operates an application for mobile terminals, a background process of the application for mobile terminals is implemented in a component called Service. It is a mechanism that can continue processing in the background even after the GUI operation (Activity) of the application is stopped.

江川 崇、竹端 進、山田 暁通、麻野 耕一、山岡 敏夫、藤井 大助、藤田 泰介、佐野 徹郎 “Google Androidプログラミング入門”、163ページ、アスキー・メディアワークス、ISBN:4048679562、2009年7月1日Egawa Takashi, Takebata Susumu, Yamada Susumu, Asano Koichi, Yamaoka Toshio, Fujii Daisuke, Fujita Taisuke, Sano Tetsuro “Introduction to Google Android Programming”, 163 pages, ASCII Media Works, ISBN: 4048679562, July 1, 2009

しかしながら、モバイル端末にインストールしたアプリケーションの増加と伴に、実行される様々なバックグラウンド処理も増加することになり、これらのバックグラウンド処理の増加が、端末の処理速度の低下などに影響を与えるという問題を生じさせている。この問題は、性能の高くないモバイル端末においてはより顕著である。このため、利用者が意識することなく端末における処理速度を向上させることが課題となる。   However, as the number of applications installed on the mobile terminal increases, the various background processes that are executed also increase, and the increase in these background processes affects the decrease in the processing speed of the terminal. It is causing problems. This problem is more noticeable in mobile terminals that do not have high performance. For this reason, it becomes a subject to improve the processing speed in a terminal, without a user being conscious.

そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、端末における処理速度を向上させることを目的とする。   Therefore, the present invention has been made to solve the above-described problems of the prior art, and an object thereof is to improve the processing speed in the terminal.

上述した課題を解決し、目的を達成するために、本発明に係る処理装置は、ユーザインタフェースに係る処理を実行する第1のコンポーネントと内部処理を実行する第2のコンポーネントとが分離して実装されているアプリケーションを実行する処理装置において、前記処理装置によって実行された処理のメソッド、または、該処理装置とネットワークを介して接続され前記第2のコンポーネントに相当するコンポーネントを実装したサーバによって実行された処理のメソッドを記憶するキューと、前記第1のコンポーネントから前記第2のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、前記第2のコンポーネントの処理を前記処理装置において実行するか、前記サーバにおいて実行するかを判断し、前記判断の結果に応じて、前記呼出しの呼出し先を前記処理装置と前記サーバとの間で切り替える切替部と、前記切替部によって呼出し先が前記処理装置に切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記処理装置において未実行のメソッドを実行させるように制御し、前記切替部によって呼出し先がサーバに切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記サーバにおいて未実行のメソッドを実行させるように制御する制御部と、前記処理装置または前記サーバにより前記コンポーネントの処理が実行された後、実行した処理のメソッドを前記キューに格納する格納部と、を有することを特徴とする。   In order to solve the above-described problems and achieve the object, a processing device according to the present invention is implemented by separating a first component that executes processing related to a user interface and a second component that executes internal processing. In the processing device that executes the application being executed, the processing method executed by the processing device, or a server that is connected to the processing device via a network and that implements a component corresponding to the second component is executed. When a call to the second component is made from the first component and the queue that stores the method of the second processing, the processing of the second component is executed in the processing device according to the communication status Or whether to execute in the server, and the result of the determination Accordingly, when the call destination of the call is switched to the processing device by the switching unit that switches the call destination of the call between the processing device and the server, the method stored in the queue Among the methods stored in the queue, when the call destination is switched to the server by the switching unit, the processing device is controlled to execute the unexecuted method. A control unit that controls to execute a method; and a storage unit that stores a method of the executed process in the queue after the processing of the component is executed by the processing device or the server. To do.

また、本発明に係る分散処理方法は、ユーザインタフェースに係る処理を実行する第1のコンポーネントと内部処理を実行する第2のコンポーネントとが分離して実装されているアプリケーションを実行する処理装置において実行される分散処理方法であって、前記処理装置は、前記処理装置によって実行された処理のメソッド、または、該処理装置とネットワークを介して接続され前記第2のコンポーネントに相当するコンポーネントを実装したサーバによって実行された処理のメソッドを記憶するキューを備え、前記第1のコンポーネントから前記第2のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、前記第2のコンポーネントの処理を前記処理装置において実行するか、前記サーバにおいて実行するかを判断し、前記判断の結果に応じて、前記呼出しの呼出し先を前記処理装置と前記サーバとの間で切り替える切替工程と、前記切替工程によって呼出し先が前記処理装置に切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記処理装置において未実行のメソッドを実行させるように制御し、前記切替工程によって呼出し先がサーバに切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記サーバにおいて未実行のメソッドを実行させるように制御する制御工程と、前記処理装置または前記サーバにより前記コンポーネントの処理が実行された後、実行した処理のメソッドを前記キューに格納する格納工程と、を含んだことを特徴とする。   In addition, the distributed processing method according to the present invention is executed in a processing device that executes an application in which a first component that executes processing related to a user interface and a second component that executes internal processing are separately mounted. A distributed processing method, wherein the processing device is a server on which a method of processing executed by the processing device or a component connected to the processing device via a network and corresponding to the second component is mounted A queue for storing a method of processing executed by the first component, and when the first component is called to the second component, the processing of the second component is performed according to a communication situation. Determine whether to run on the device or on the server A switching step of switching a call destination of the call between the processing device and the server according to a result of the determination, and when the call destination is switched to the processing device by the switching step, Of the stored methods, control is performed to execute an unexecuted method in the processing device, and when the call destination is switched to the server by the switching step, among the methods stored in the queue, the A control step of controlling the server to execute an unexecuted method, and a storage step of storing the method of the executed process in the queue after the processing of the component is executed by the processing device or the server. It is characterized by including.

また、本発明に係る分散処理プログラムは、ユーザインタフェースに係る処理を実行する第1のコンポーネントと内部処理を実行する第2のコンポーネントとが分離して実装されているアプリケーションを実行する処理装置において実行し、前記第2のコンポーネントに相当するコンポーネントを実装したサーバに対してネットワークを介して接続したコンピュータに、前記第1のコンポーネントから前記第2のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、前記第2のコンポーネントの処理を前記処理装置において実行するか、前記サーバにおいて実行するかを判断し、前記判断の結果に応じて、前記呼出しの呼出し先を前記処理装置と前記サーバとの間で切り替える切替ステップと、前記切替ステップによって呼出し先が前記処理装置に切り替えられた場合には、前記処理装置によって実行された処理のメソッド、または、前記サーバによって実行された処理のメソッドを記憶するキューに記憶されたメソッドのうち、前記処理装置において未実行のメソッドを実行させるように制御し、前記切替ステップによって呼出し先がサーバに切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記サーバにおいて未実行のメソッドを実行させるように制御する制御ステップと、前記処理装置または前記サーバにより前記コンポーネントの処理が実行された後、実行した処理のメソッドを前記キューに格納する格納ステップと、を実行させることを特徴とする。   The distributed processing program according to the present invention is executed in a processing device that executes an application in which a first component that executes processing related to a user interface and a second component that executes internal processing are separately mounted. When a computer connected via a network to a server on which a component corresponding to the second component is mounted is called from the first component to the second component, the communication status is changed. Accordingly, it is determined whether the processing of the second component is executed in the processing device or the server, and the call destination of the call is determined as the processing device and the server according to the result of the determination. A switching step for switching between and a call by the switching step. When the destination is switched to the processing device, the processing method executed by the processing device or the method stored in the queue that stores the processing method executed by the server is selected. The device is controlled to execute an unexecuted method, and when the call destination is switched to the server by the switching step, an unexecuted method is executed on the server among the methods stored in the queue. And a storage step of storing a method of the executed processing in the queue after the processing of the component is executed by the processing device or the server.

実施形態に係る処理装置、分散処理方法および分散処理プログラムは、端末における処理速度を向上させ、通信環境の状況に応じてアプリケーションの分散処理環境を制御する仕組みを提供することが可能となる。   The processing device, the distributed processing method, and the distributed processing program according to the embodiment can improve the processing speed in the terminal and provide a mechanism for controlling the distributed processing environment of the application according to the state of the communication environment.

図1は、第一の実施形態に係るシステムの構成の一例を示す図である。FIG. 1 is a diagram illustrating an example of a configuration of a system according to the first embodiment. 図2は、第一の実施形態に係るモバイル端末およびサーバの構成を説明するための図である。FIG. 2 is a diagram for explaining the configuration of the mobile terminal and the server according to the first embodiment. 図3は、従来のモバイル端末のアプリケーションの構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of an application of a conventional mobile terminal. 図4は、第一の実施形態に係るモバイル端末のアプリケーションの構成例を示す図である。FIG. 4 is a diagram illustrating a configuration example of an application of the mobile terminal according to the first embodiment. 図5は、第一の実施形態に係るモバイル端末およびサーバの実装例を説明する図である。FIG. 5 is a diagram illustrating an implementation example of the mobile terminal and the server according to the first embodiment. 図6は、従来のアプリケーション実行時の処理手順を示すシーケンス図である。FIG. 6 is a sequence diagram showing a processing procedure when executing a conventional application. 図7は、第一の実施形態に係るモバイル端末のアプリケーション実行処理の処理手順を示すシーケンス図である。FIG. 7 is a sequence diagram showing a processing procedure of application execution processing of the mobile terminal according to the first embodiment. 図8は、従来のコールバックによる実行処理の処理手順を示すシーケンス図である。FIG. 8 is a sequence diagram showing a processing procedure of execution processing by a conventional callback. 図9は、第一の実施形態に係るモバイル端末のコールバックによる実行処理の処理手順を示すシーケンス図である。FIG. 9 is a sequence diagram showing a processing procedure of execution processing by callback of the mobile terminal according to the first embodiment. 図10は、分散処理プログラムを実行するコンピュータを示す図である。FIG. 10 is a diagram illustrating a computer that executes a distributed processing program.

以下に添付図面を参照して、この発明に係る処理装置、分散処理方法および分散処理プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。   Exemplary embodiments of a processing device, a distributed processing method, and a distributed processing program according to the present invention will be described below in detail with reference to the accompanying drawings. In addition, this invention is not limited by this embodiment.

[第一の実施形態]
以下の実施形態では、第一の実施形態に係るシステムの構成、および影響評価装置による処理の流れを順に説明し、最後に第一の実施形態による効果を説明する。図1は、第一の実施形態に係るシステムの構成の一例を示す図である。第一の実施形態に係るシステムは、ネットワーク10、複数のモバイル端末20および複数のサーバ30を有する。また、各モバイル端末20および各サーバ30は、ネットワーク10を介して接続される。
[First embodiment]
In the following embodiments, the configuration of the system according to the first embodiment and the flow of processing by the impact evaluation apparatus will be described in order, and finally the effects of the first embodiment will be described. FIG. 1 is a diagram illustrating an example of a configuration of a system according to the first embodiment. The system according to the first embodiment includes a network 10, a plurality of mobile terminals 20, and a plurality of servers 30. Each mobile terminal 20 and each server 30 are connected via the network 10.

ここでネットワーク10とは、例えば、3G(3rd Generation)や、LTE(Long Term Evolution)、WiFi(Wireless Fidelity)などである。また、モバイル端末20は、例えば、携帯電話、PHS(Personal Handyphone System)、PDA(Personal Digital Assistant)、タブレットPC(Personal Computer)等、インターネットに接続して、問い合わせサーバや他のユーザ端末との間で情報を送受信できるものであれば、任意の装置であってよい。また、モバイル端末に限定されず、家庭またはオフィスに設置されたコンピュータを使用してもよい。   Here, the network 10 is, for example, 3G (3rd Generation), LTE (Long Term Evolution), WiFi (Wireless Fidelity), or the like. The mobile terminal 20 is connected to the Internet such as a mobile phone, a PHS (Personal Handyphone System), a PDA (Personal Digital Assistant), a tablet PC (Personal Computer), etc., and connected to an inquiry server or other user terminals. Any device can be used as long as it can transmit and receive information. In addition, the computer is not limited to a mobile terminal, and a computer installed in a home or office may be used.

ネットワーク10に対し、1または複数のモバイル端末20と1または複数のサーバ30が接続している。各モバイル端末20は、リチウムイオン電池などの二次電池で駆動され有線または無線によってネットワーク10に接続する物理デバイスである。サーバ30は、例えば、クラウド基盤上のものとして構成することができる。本実施形態では、モバイル端末20におけるアプリケーション(AP)のバックグラウンド処理をサーバ30上で実行させることにより、分散処理を実現している。   One or more mobile terminals 20 and one or more servers 30 are connected to the network 10. Each mobile terminal 20 is a physical device that is driven by a secondary battery such as a lithium ion battery and is connected to the network 10 by wire or wirelessly. For example, the server 30 can be configured on a cloud platform. In the present embodiment, distributed processing is realized by causing the background processing of the application (AP) in the mobile terminal 20 to be executed on the server 30.

本実施形態においては、モバイル端末20のアプリケーションとして、MVC(モデル・ビュー・コントロール;MVC)などのデザインパターンにより、ユーザインタフェース(ビュー及びコントロール)のコンポーネントと内部処理(モデル)のコンポーネントが容易に分割可能なものであるとする。ここでは、モバイル端末20にある既存実行環境を本発明に基づいて改造し、サーバ30にも同等な実行環境を導入し、モバイル端末20のアプリケーションをサーバ30の環境にもインストールして実行できるようにしている。   In the present embodiment, the user interface (view and control) component and the internal processing (model) component can be easily divided as an application of the mobile terminal 20 by a design pattern such as MVC (Model View Control; MVC). Suppose it is possible. Here, the existing execution environment in the mobile terminal 20 is modified based on the present invention, an equivalent execution environment is introduced in the server 30, and the application of the mobile terminal 20 can be installed and executed in the environment of the server 30. I have to.

また、例えば、モバイル端末20は、携帯電話、PHS(Personal Handyphone System)、PDA(Personal Digital Assistant)、タブレットPC(Personal Computer)等、インターネットに接続して、問い合わせサーバや他のユーザ端末との間で情報を送受信できるものであれば、任意の装置であってよい。また、モバイル端末に限定されず、家庭またはオフィスに設置されたコンピュータを使用してもよい。なお、各モバイル端末20および各サーバ30における通信は、無線通信に限定されるものではなく、有線通信であってもよい。   Further, for example, the mobile terminal 20 is connected to the Internet, such as a mobile phone, a PHS (Personal Handyphone System), a PDA (Personal Digital Assistant), a tablet PC (Personal Computer), etc., and connected to an inquiry server or other user terminals. Any device can be used as long as it can transmit and receive information. In addition, the computer is not limited to a mobile terminal, and a computer installed in a home or office may be used. Communication in each mobile terminal 20 and each server 30 is not limited to wireless communication, and may be wired communication.

図2は、本実施形態におけるモバイル端末20とサーバ30の論理的な構成を示している。モバイル端末20において、モバイルOSによって実現される実行環境21が設けられており、実行環境21の上位にアプリケーション22が位置する。この実行環境21における機能として、切替部21a、制御部21bおよび格納部21cが設けられている。   FIG. 2 shows a logical configuration of the mobile terminal 20 and the server 30 in the present embodiment. In the mobile terminal 20, an execution environment 21 realized by the mobile OS is provided, and the application 22 is positioned above the execution environment 21. As functions in the execution environment 21, a switching unit 21a, a control unit 21b, and a storage unit 21c are provided.

切替部21aは、ユーザインタフェースのコンポーネントから内部処理のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、内部処理のコンポーネントの処理をモバイル端末20において実行するか、サーバ30において実行するかを判断し、判断の結果に応じて、呼出しの呼出し先をモバイル端末20とサーバ30との間で切り替える。   Whether the switching unit 21a executes the processing of the internal processing component in the mobile terminal 20 or the server 30 depending on the communication status when a call is made from the user interface component to the internal processing component. The call destination is switched between the mobile terminal 20 and the server 30 according to the determination result.

例えば、切替部21aは、例えば、通信速度や電波強度を測定したり、通信可能か通信不可能かを識別する情報を外部から取得したりすることで、通信の状況を推定する。そして、切替部21aは、推定した通信の状況に応じて、呼出しの呼出し先をモバイル端末20とサーバ30との間で切り替える。例えば、切替部21aは、通信可能であれば、呼出しの呼出し先をサーバ30に切り替え、通信不可能であれば、呼出しの呼出し先をモバイル端末20に切り替える。また、切替部21aは、通信速度が所定の閾値以上であれば、呼出しの呼出し先をサーバ30に切り替え、通信速度が所定の閾値以下であれば、呼出しの呼出し先をモバイル端末20に切り替える。   For example, the switching unit 21a estimates the communication status by, for example, measuring a communication speed or radio wave intensity, or acquiring information identifying whether communication is possible or not from the outside. Then, the switching unit 21 a switches the call destination of the call between the mobile terminal 20 and the server 30 according to the estimated communication status. For example, the switching unit 21 a switches the call destination to the server 30 if communication is possible, and switches the call destination to the mobile terminal 20 if communication is not possible. The switching unit 21 a switches the call destination to the server 30 if the communication speed is equal to or higher than a predetermined threshold, and switches the call destination to the mobile terminal 20 if the communication speed is equal to or lower than the predetermined threshold.

制御部21bは、切替部21aによって呼出し先がモバイル端末20に切り替えられた場合には、キュー25に記憶されたメソッドのうち、モバイル端末20において未実行のメソッドを実行させるように制御し、切替部21aによって呼出し先がサーバ30に切り替えられた場合には、キュー25に記憶されたメソッドのうち、サーバ30において未実行のメソッドを実行させるように制御する。   When the call destination is switched to the mobile terminal 20 by the switching unit 21a, the control unit 21b performs control so that an unexecuted method is executed in the mobile terminal 20 among the methods stored in the queue 25. When the call destination is switched to the server 30 by the unit 21a, control is performed so that an unexecuted method is executed in the server 30 among the methods stored in the queue 25.

格納部21cは、自装置またはサーバ30によりコンポーネントの処理が実行された後、実行したコンポーネントの処理のメソッドをキュー25に格納する。また、格納部21cは、実行した処理のメソッドとともに、該メソッドを実行したのがモバイル端末20であるのかサーバ30であるのかを示す情報を格納する。   After the component processing is executed by the own device or the server 30, the storage unit 21 c stores the executed component processing method in the queue 25. The storage unit 21c stores information indicating whether the method is executed by the mobile terminal 20 or the server 30 together with the method of the executed process.

アプリケーション22は、MVCのデザインパターンによるものであって、ビュー及びコントロールのコンポーネントとモデルのコンポーネントから構成されている。また、実行環境21の下位には、ハードウェアコンポーネントとして、GPS(全地球測位システム;Global Positioning System)センサや電池残量計、加速度センサなどの各種のセンサ23と、アプリケーション22の実行に関連したデータ等を格納するストレージ(記憶装置)24とが設けられている。   The application 22 is based on the MVC design pattern, and includes a view and control component and a model component. Below the execution environment 21, as hardware components, various sensors 23 such as a GPS (Global Positioning System) sensor, a battery fuel gauge, an acceleration sensor, and the application 22 are related. A storage (storage device) 24 for storing data and the like is provided.

ストレージ24は、例えば、フラッシュメモリを有するメモリカードなどによって構成される。同様にサーバ30には、そのOSによって実現される実行環境31が設けられており、実行環境31の上位に、モバイル端末20のアプリケーション22と同等のアプリケーション32が位置する。実行環境21の下位には、ハードウェアコンポーネントとしてセンサをシミュレートする仮想センサ33と、アプリケーション32の実行に関連したデータ等を格納するストレージ(記憶装置)34とが設けられている。ストレージ34は、例えば、HDD(ハードディスク装置)によって構成される。   The storage 24 is configured by, for example, a memory card having a flash memory. Similarly, the server 30 is provided with an execution environment 31 realized by the OS, and an application 32 equivalent to the application 22 of the mobile terminal 20 is located above the execution environment 31. Below the execution environment 21, a virtual sensor 33 that simulates a sensor as a hardware component, and a storage (storage device) 34 that stores data and the like related to the execution of the application 32 are provided. The storage 34 is configured by, for example, an HDD (Hard Disk Device).

従来のモバイル端末では、その実行環境に、アプリケーションにおけるビュー及びコントロールのコンポーネントからモデルのコンポーネントへの関数呼出し(あるいはメソッド呼出し)及びプロセス間通信の機能が設けられている。本実施形態では、モバイル端末20の実行環境21におけるこの機能に、呼出し先(及び通信先)を動的に切り替える仕組みである切替部21aを追加する。具体的には、呼出し先(及び通信先)を動的に切り替える切替部21aは、モバイル端末20の通信環境の状況に応じて、モデル関数の呼出先(及び通信先)を動的に切り替える。ここで、端末の無線通信状況としては、例えば、通信可能・不可能の識別等のほか回線の通信速度や電波強度などが挙げられる。   In a conventional mobile terminal, functions of function calls (or method calls) and inter-process communication from view and control components in an application to model components are provided in the execution environment. In the present embodiment, a switching unit 21 a that is a mechanism for dynamically switching a call destination (and a communication destination) is added to this function in the execution environment 21 of the mobile terminal 20. Specifically, the switching unit 21a that dynamically switches the call destination (and the communication destination) dynamically switches the call destination (and the communication destination) of the model function according to the state of the communication environment of the mobile terminal 20. Here, as the wireless communication status of the terminal, for example, the communication speed of the line, the radio wave intensity, etc., as well as the identification of whether communication is possible, and the like can be mentioned.

また、モバイル端末20は、呼び出し先を切り替える際に、呼び出されるモデル関数と引数を順番に保存しておくキュー25を有する。このキュー25をアプリケーション特性に応じて利用することでサーバ30とモバイル端末20のどちらで実行しても同じ結果が得られるようになる。ここでアプリケーション特性としては、コールバックを利用するかどうか、モデルが内部に状態を持つ(保持する)か、モデル(内部処理)の設定などが考えられる。   In addition, the mobile terminal 20 has a queue 25 that stores a model function and arguments to be called in order when the call destination is switched. By using this queue 25 according to the application characteristics, the same result can be obtained regardless of whether it is executed by the server 30 or the mobile terminal 20. Here, as application characteristics, whether to use a callback, whether the model has an internal state (holds), setting of a model (internal processing), and the like can be considered.

また、呼び出し先を切り替える処理は、処理を実行するたびに決定する。そして、サーバ30側で処理すると決まった場合には、呼出し先をサーバ30側のモデルに指定し、サーバ30側で当該モデルを処理させる。この時、キュー25にたまっている処理があればそれらを先に呼び出してからキュー25内の処理を実行する。また、モバイル端末20で処理すると決まった場合には、呼出し先をモバイル端末20側のモデルに指定し、ローカルで処理させることによって、オフラインでもアプリの実行を可能とする。   In addition, the process of switching the call destination is determined every time the process is executed. If it is determined that the processing is to be performed on the server 30 side, the call destination is designated as a model on the server 30 side, and the model is processed on the server 30 side. At this time, if there are processes accumulated in the queue 25, the processes in the queue 25 are executed after calling them first. If it is determined that the process is to be performed by the mobile terminal 20, the application can be executed even offline by designating the call destination as a model on the mobile terminal 20 side and causing the call to be processed locally.

次に、モバイル端末20における実行環境21を構成するモバイルOSがAndroid(登録商標)OSである場合を例に挙げて、従来のアプリケーション構成の具体例を説明する。図3においては、この場合のモバイルOS上で動作する従来のアプリケーションの構成を示している。ここではAndroidOSを前提としているから、アプリケーション22は、ビュー及びコントロールに相当しユーザインタフェースを担当するActivityコンポーネントと、モデルに相当しバックグラウンド処理を担当するServiceコンポーネントから構成される。   Next, a specific example of a conventional application configuration will be described by taking as an example the case where the mobile OS configuring the execution environment 21 in the mobile terminal 20 is an Android (registered trademark) OS. FIG. 3 shows a configuration of a conventional application that operates on the mobile OS in this case. Since AndroidOS is assumed here, the application 22 includes an Activity component that corresponds to a view and a control and is responsible for a user interface, and a Service component that corresponds to a model and is responsible for background processing.

Androidアプリでは、Activityがビュー・コントロールに相当し、Serviceがモデルのコンポーネントに相当する。また、Activityは、ユーザインタフェース処理を分担し、Serviceはバックグラウンド処理を分担する。また、Activityは、カーネル26にあるBinder Driverにより、呼び出し先のServiceの機能を定義するインタフェースとバインドする。   In the Android application, Activity corresponds to a view control, and Service corresponds to a model component. Activity also shares user interface processing, and Service shares background processing. In addition, Activity is bound to an interface that defines a function of a service to be called by a Binder Driver in the kernel 26.

また、実行環境としてのカーネル26には、メソッド呼出し(例えばActivityコンポーネントからServiceコンポーネントの呼出し)及びプロセス間通信を実行するBinder Driverが設けられている。なお、図3及びそれ以降の図面において、モバイル端末20のカーネル26の中にセンサ23及びストレージ24が設けられ、カーネル36の中に仮想センサ33及びストレージ34が設けられているように記載されているが、これらは、カーネルの中に物理デバイスとしてのセンサ、仮想センサ及びストレージが設けられていることを意味するのではなく、カーネルを介してセンサ、仮想センサ及びストレージにアクセスできることを意味している。   In addition, the kernel 26 as an execution environment is provided with a Binder Driver that executes a method call (for example, a call from an Activity component to a Service component) and inter-process communication. 3 and the subsequent drawings, it is described that the sensor 23 and the storage 24 are provided in the kernel 26 of the mobile terminal 20, and the virtual sensor 33 and the storage 34 are provided in the kernel 36. However, these do not mean that sensors, virtual sensors, and storage are provided as physical devices in the kernel, but means that sensors, virtual sensors, and storage can be accessed via the kernel. Yes.

次に、図4を用いて、本実施形態に係るモバイル端末20およびサーバ30のアプリケーション構成の具体例を説明する。図4に示すように、本実施形態に係るモバイル端末20でのカーネル26におけるBinder Driverを本発明の分散実行方法に適合するように改造し、サーバ30においてモバイル端末20と同等な、改造したBinder Driverを備えたOSの環境を導入する。また、モバイル端末20にあるアプリケーション22と同じアプリケーション32をサーバ30の環境にもインストールする。   Next, specific examples of application configurations of the mobile terminal 20 and the server 30 according to the present embodiment will be described with reference to FIG. As shown in FIG. 4, the Binder Driver in the kernel 26 in the mobile terminal 20 according to the present embodiment is remodeled so as to be compatible with the distributed execution method of the present invention, and the modified Binder equivalent to the mobile terminal 20 in the server 30 Install OS environment with Driver. Further, the same application 32 as the application 22 in the mobile terminal 20 is also installed in the environment of the server 30.

本来、同じアプリケーションのActivityコンポーネントとServiceコンポーネントとは同一の端末に存在することが前提されているが、上述のように改造したBinder Driverにより、インターネットなどのネットワークを経由してモバイル端末20のActivityをサーバ30のServiceにバインドさせることを可能とする。モバイル端末20のBinder Driverは、メソッド呼出しの呼出し先を切り替える切替部21aとして機能する。さらに、モバイル端末20とサーバ30との間でストレージ24、34を同期させ、センサ情報も同期させることにより、サーバ30においてモバイル端末20のコンテキストを把握、利用することを可能とする。これらによって、サーバ30側のServiceコンポーネントは、モバイル端末20のServiceコンポーネントと同等な実行結果を得ることができる。   Originally, it is assumed that the Activity component and the Service component of the same application exist in the same terminal, but with the modified Binder Driver as described above, the activity of the mobile terminal 20 can be changed via a network such as the Internet. It is possible to bind to the service of the server 30. The Binder Driver of the mobile terminal 20 functions as a switching unit 21a that switches a method call destination. Furthermore, by synchronizing the storages 24 and 34 between the mobile terminal 20 and the server 30 and also synchronizing the sensor information, the server 30 can grasp and use the context of the mobile terminal 20. As a result, the Service component on the server 30 side can obtain an execution result equivalent to the Service component of the mobile terminal 20.

図5においては、モバイル端末20とサーバ30との間でストレージ24、34の同期を実現するための既存技術によるソフトウェアの実装例を示している。モバイル端末20もサーバ30も、ソフトウェア階層として、カーネル26、36の上にライブラリがあり、ライブラリの上にアプリケーション22、32が位置している。なお、モバイル端末20においてライブラリには、汎用のライブラリlibcとキャッシュ動作を実現する独自のライブラリECSが含まれている。   FIG. 5 shows an implementation example of software based on the existing technology for realizing the synchronization of the storages 24 and 34 between the mobile terminal 20 and the server 30. Both the mobile terminal 20 and the server 30 have libraries on the kernels 26 and 36 as software layers, and the applications 22 and 32 are located on the libraries. In the mobile terminal 20, the library includes a general-purpose library libc and a unique library ECS that realizes a cache operation.

カーネル26には、ファイル関係の機能として、VFS(仮想ファイルシステム;Virtual File System)とLinux(登録商標)の1モジュールであるFuse(Filesystem in Userspace)が実装されている。アプリケーション22は、ファイルアクセスに際しては、ファイルAPIによりVFSにアクセスする。このアクセスは、VFSからFuseを介してライブラリに送られ、その結果、ライブラリを介して、モバイル端末20のストレージ24とサーバ30のストレージ34との間で、ストレージの同期が達成される。ここで示す例では、ローカルキャッシュとNFS(ネットワークファイルシステム;Network File System)とを組み合わせたファイルシステムを構築することで、SQLiteなどのアプリケーション特有ファイルについてのストレージ同期を実現している。ここに示したもの以外にも、ローカルのストレージとリモートのストレージとを同期させる手法として数多くのものが知られているから、それらの手法を用いてストレージ24、34を同期させるようにしてもよい。   In the kernel 26, as a file-related function, a Fuse (File system in Userspace) which is one module of VFS (Virtual File System) and Linux (registered trademark) is mounted. When accessing the file, the application 22 accesses the VFS using the file API. This access is sent from the VFS to the library via Fuse, and as a result, storage synchronization is achieved between the storage 24 of the mobile terminal 20 and the storage 34 of the server 30 via the library. In the example shown here, storage synchronization for application-specific files such as SQL Lite is realized by building a file system that combines a local cache and NFS (Network File System). In addition to those shown here, many methods are known for synchronizing the local storage and the remote storage. Therefore, the storages 24 and 34 may be synchronized using these methods. .

図6に示す処理では、改造を行っていない従来のBinder Driverを用いた場合の処理を示している。Activityは、従来のAndroidと同じくContextというオブジェクトにサービスの利用を要求し(ステップS101)、サービスを呼び出すためのハンドラーを取得する(ステップS102)。   The process shown in FIG. 6 shows a process when a conventional Binder Driver that has not been modified is used. The Activity requests the use of the service from the object Context as in the conventional Android (Step S101), and obtains a handler for calling the service (Step S102).

Activityは、Binder Driver経由でServiceのメソッドを呼び出す(ステップ103)。Binder Driverは、呼出命令をServiceにリレーし(ステップ104)、Serviceの実行結果を取得して(ステップ105)、それをActivityに返す(ステップ106)。   Activity calls a method of Service via Binder Driver (step 103). The Binder Driver relays the calling instruction to the Service (Step 104), acquires the execution result of the Service (Step 105), and returns it to the Activity (Step 106).

次に、第一の実施形態に係るモバイル端末20のアプリケーション実行処理について説明する。図7は、第一の実施形態に係るモバイル端末20のアプリケーション実行処理の処理手順を示すシーケンス図である。図7においては、改造されたBinder Driverを用いた場合の処理を示している。   Next, application execution processing of the mobile terminal 20 according to the first embodiment will be described. FIG. 7 is a sequence diagram showing a processing procedure of application execution processing of the mobile terminal 20 according to the first embodiment. FIG. 7 shows processing when a modified Binder Driver is used.

図7に示すように、Activityは、従来のAndroidと同じくContextというオブジェクトにサービスの利用を要求し(ステップS201)、サービスを呼び出すためのハンドラーを取得する(ステップS202)。そして、Activityは、Binder Driver経由でServiceのメソッドを呼び出す(ステップ203)。このとき、Binder Driverは、通信状況を評価し、サーバ30側で処理するべきかどうか判断する(ステップS204)。   As shown in FIG. 7, Activity requests the use of a service from an object called Context as in conventional Android (step S201), and obtains a handler for calling the service (step S202). And Activity calls the method of Service via Binder Driver (step 203). At this time, the Binder Driver evaluates the communication status and determines whether or not to process on the server 30 side (step S204).

ステップS204において、Binder Driverは、サーバ30で処理するべきと判断した場合、モバイル端末20で実行されていない呼び出しがあるかをキュー25に確認し(ステップS205)、メソッド(以下、事前実行メソッドという)の応答を受信する(ステップS206)。そして、呼び出しがある場合は、まずその事前実行メソッドの呼び出しを行い(ステップS207)、呼出命令をサーバ30にあるServiceにリレーする(ステップS208)。そして、サーバ30のServiceは、Binder Driverを介してモバイル端末20のBinder Driverに実行結果を返す(ステップS209、210)。ここで、モバイル端末20では、サーバ30のServiceの実行結果を破棄する。   In step S204, when the Binder Driver determines that it should be processed by the server 30, the Binder Driver checks the queue 25 for a call that is not executed on the mobile terminal 20 (step S205), and a method (hereinafter referred to as a pre-execution method). ) Is received (step S206). If there is a call, the pre-execution method is first called (step S207), and the call command is relayed to the service in the server 30 (step S208). Then, the service of the server 30 returns an execution result to the Binder Driver of the mobile terminal 20 via the Binder Driver (Steps S209 and S210). Here, the mobile terminal 20 discards the execution result of the service of the server 30.

その後、サーバ30は、事前実行メソッドの呼び出しがキュー25になかった場合と同様に、モバイル端末20で処理すべきと判断された呼び出しを、従来のBinder Driverの機能と同じく、呼出命令を端末にあるServiceにリレーし(ステップS211)、サーバ30にあるServiceは、Binder Driverを介してモバイル端末20のServiceの実行結果を返す(ステップS212、213)。   After that, as in the case where the call of the pre-execution method is not in the queue 25, the server 30 sends the call instruction determined to be processed by the mobile terminal 20 to the terminal as in the conventional Binder Driver function. Relaying to a certain service (step S211), the service in the server 30 returns the execution result of the service of the mobile terminal 20 via the Binder Driver (steps S212 and 213).

また、ステップS204において、モバイル端末20で処理するべきと判断した場合、モバイル端末20で実行されていない呼び出しがあるかをキュー25に確認し(ステップS214)、事前実行メソッドの応答を受信する(ステップS215)。この結果、呼び出しがある場合は、まずその事前呼び出しを実行し(ステップS216)、実行結果をBinder Driverに返す(ステップS217)。ここで、モバイル端末20では、実行結果を破棄する。つまり、モバイル端末20での実行の場合及びサーバ30での実行の場合とも、キュー25に蓄積された事前呼び出しの実行結果については、すでに結果を受け取っているものであるため、取得された実行結果はそれぞれ破棄してもよい。   If it is determined in step S204 that the mobile terminal 20 should process, the queue 25 is checked to see if there is a call that has not been executed in the mobile terminal 20 (step S214), and a response to the pre-execution method is received (step S214). Step S215). As a result, if there is a call, the advance call is first executed (step S216), and the execution result is returned to the Binder Driver (step S217). Here, the mobile terminal 20 discards the execution result. That is, in the case of execution on the mobile terminal 20 and the case of execution on the server 30, since the execution results of the pre-call accumulated in the queue 25 have already been received, the acquired execution results Each may be discarded.

その後、事前実行メソッドの呼び出しがキュー25になかった場合と同様に、モバイル端末20で処理すべきと判断された呼び出しを、従来のBinder Driverの機能と同じく、呼出命令をモバイル端末20にあるServiceにリレーし(ステップS218)、Serviceの実行結果をBinder Driverに返す(ステップS219、S220)。   After that, as in the case where the call of the pre-execution method is not in the queue 25, the call that is determined to be processed by the mobile terminal 20 is transmitted to the service in the mobile terminal 20 as in the conventional Binder Driver function. (Step S218), and returns the execution result of Service to the Binder Driver (Steps S219 and S220).

その後、Binder Driverは、今回実行された呼び出しについて、所定の条件に基づいて、キュー25に保存するか否かを判定する(ステップS221)。例えば、Binder Driverは、キュー25に入れる条件として、メソッドが、アプリケーションの設定を置くもの、アプリケーションが内部で状態を持つもの、コールバック関数を登録するもののいずれかに該当するか判定する。   Thereafter, the Binder Driver determines whether or not to save the call executed this time in the queue 25 based on a predetermined condition (step S221). For example, the Binder Driver determines whether the method to be put in the queue 25 corresponds to one of a method for setting an application, a method for which the application has a state, or a method for registering a callback function.

この結果、キュー25に保存すると判定した場合には、メソッドをキュー25に入れて(ステップS222)、実行結果をActivityに返す。つまり、上記の条件にマッチするメソッドのみをキュー25に格納することで、呼び出し場所がモバイル端末20またはサーバ30に切り替えられた場合であっても実行結果が変わってしまうことを防止しつつ、アプリケーションの効率性を向上させることができる。例えば、アプリケーションが内部で状態を持つものについては、呼び出し場所が変更になると、処理結果が変わってしまうため、過程をキュー25に入れておくことで呼び出し場所が変更されても同じ実行結果を得ることができるようにする。なお、処理を簡潔化するために、上記の判定処理を省略し、全てのメソッドをキュー25に入れてもよい。   As a result, if it is determined to save in the queue 25, the method is put in the queue 25 (step S222), and the execution result is returned to Activity. That is, by storing only methods that match the above conditions in the queue 25, the execution result can be prevented from changing even when the calling location is switched to the mobile terminal 20 or the server 30, while the application The efficiency of the can be improved. For example, for an application having an internal state, the processing result changes when the calling location is changed. Therefore, the same execution result is obtained even if the calling location is changed by putting the process in the queue 25. To be able to. In order to simplify the processing, the above determination processing may be omitted and all the methods may be put in the queue 25.

また、ステップS222の処理において、キュー25には、今回実行されたメソッドとともに、該メソッドをモバイル端末20またはサーバ30のいずれが実行したかを示す処理対象情報を格納する。つまり、上記の事前実行メソッドの呼び出し(ステップS207、216)時において、キュー25に記憶されたメソッドが、モバイル端末20またはサーバ30側で未実行であるかを、この処理対象情報から判断できるようにしている。一方、ステップS222において、キュー25に保存しないと判定した場合には、メソッドをキュー25に入れずに、実行結果をActivityに返す(ステップS223)。   In the process of step S222, the queue 25 stores processing target information indicating which of the mobile terminal 20 and the server 30 has executed the method, together with the method executed this time. That is, at the time of calling the pre-execution method (steps S207 and 216), it can be determined from the processing target information whether the method stored in the queue 25 is not executed on the mobile terminal 20 or the server 30 side. I have to. On the other hand, if it is determined in step S222 that the method is not stored in the queue 25, the execution result is returned to Activity without entering the method in the queue 25 (step S223).

また、上記の説明では、ActivityがBinder Driver経由でServiceのメソッドを呼び出した際に、Binder Driverが、通信状況を評価してサーバ30側で処理するべきと判断した場合に、サーバ30がキュー25に格納されたメソッドを実行する場合について説明した。しかし、これに限定されるものではなく、キュー25に格納されたメソッドについて、特にサーバ30で実行されるものについては、ネットワーク状態が変更された際に実行しておくことが考えられる。例えば、主なケースとしては、サーバ30は、ネットワーク断の際において、キュー25に入れられたものを、ネットワーク10がつながった際に実行するようにしてもよい。   In the above description, when Activity calls a service method via the Binder Driver, if the Binder Driver evaluates the communication status and determines that the server 30 should process, the server 30 queues 25. The case where the method stored in was executed was explained. However, the present invention is not limited to this. Methods stored in the queue 25, particularly those executed by the server 30, may be executed when the network state is changed. For example, as a main case, the server 30 may execute what is put in the queue 25 when the network is disconnected when the network 10 is connected.

また、次に、図8および図9を用いて、コールバックを利用した実行について説明する。コールバックを利用した実行とは、主に時間がかかる処理や非同期に結果が返されることを想定する呼び出しに対し、呼び出し元が生成したオブジェクトを事前に保存し、呼び出しの際には同オブジェクトを介して非同期結果を返却する実行方法の1つである。   Next, execution using a callback will be described with reference to FIGS. 8 and 9. Execution using callback means that an object generated by the caller is saved in advance for a call that mainly takes time and a result is assumed to be returned asynchronously. It is one of the execution methods that return asynchronous results via

まず、図8を用いて、従来のコールバックオブジェクトを利用した呼出の例について説明する。図8に示すように、Activityは、従来のAndroidと同じくContextというオブジェクトにサービスの利用を要求し(ステップS301)、Serviceを呼び出すためのハンドラーを取得する(ステップS302)。   First, an example of a call using a conventional callback object will be described with reference to FIG. As shown in FIG. 8, Activity requests the use of a service from an object called Context as in the conventional Android (Step S301), and acquires a handler for calling Service (Step S302).

そして、Activityは、コールバックオブジェクトの登録をServiceに要求する(ステップS303)。そして、Serviceは、コールバックオブジェクトをメモリに格納する(ステップS304)。Activityは、コールバック利用メソッドの呼出しを行う(ステップS305)。そして、Serviceは、受付応答をActivityに返す(ステップS306)。   Then, Activity requests the Service to register the callback object (Step S303). Then, the Service stores the callback object in the memory (Step S304). Activity calls the callback usage method (step S305). Then, the Service returns a reception response to Activity (Step S306).

その後、Serviceは、実際に処理を行った後、処理結果をコールバック利用メソッドに通知し(ステップS307)、コールバックメソッドを介してActivityに実行結果を返す(ステップS308)。   Thereafter, after actually performing the processing, the Service notifies the callback usage method of the processing result (Step S307), and returns the execution result to the Activity via the callback method (Step S308).

次に、図9を用いて、本実施形態におけるコールバックオブジェクトを利用した呼出の例について説明する。なお、図9では、コールバックオブジェクトの登録時は通信断(オフライン)、呼び出しの際は通信ありで、オフロードする場合の事例であることを前提に説明する。図9に示すように、まずActivityは、従来のAndroidと同じくContextというオブジェクトにサービスの利用を要求し(ステップS401)、Serviceを呼び出すためのハンドラーを取得する(ステップS402)。   Next, an example of a call using a callback object in this embodiment will be described with reference to FIG. In FIG. 9, description will be made on the assumption that communication is interrupted (offline) when a callback object is registered, communication is present when calling, and an offload is performed. As shown in FIG. 9, first, Activity requests the use of a service from an object called Context as in the conventional Android (Step S401), and obtains a handler for calling Service (Step S402).

そして、Activityは、コールバックオブジェクトの登録をBinder Driverに要求する(ステップS403)。そして、Binder Driverは、Serviceに要求するとともに(ステップS404)、キュー25にコールバックオブジェクトを登録する(ステップS405)。そして、Serviceは、コールバックオブジェクトをメモリに格納する(ステップS406)。つまり、コールバックオブジェクトの登録時は、通信断のためコールバックオブジェクトをサーバ30側に登録できないことから、モバイル端末20でコールバックオブジェクトの登録を実行する。このとき、メソッドの種類がコールバックオブジェクトを含むことから、上記したようにキュー25にも保存する。   Then, Activity requests the Binder Driver to register a callback object (Step S403). Then, the Binder Driver makes a request to the Service (step S404) and registers a callback object in the queue 25 (step S405). Then, the Service stores the callback object in the memory (Step S406). That is, when the callback object is registered, the callback object cannot be registered on the server 30 side due to communication disconnection. At this time, since the type of method includes a callback object, the method is also stored in the queue 25 as described above.

次にServiceのメソッドに対する呼び出しがかかると(ステップS407)、サーバ30側で処理をすべきか判断し(ステップS408)、この時は通信があるためサーバ30での実行と決まる。その際に、Binder Driverは、まずキュー25の事前実行メソッドを確認し(ステップS409)、コールバック登録の応答を受け付けて、先ほどモバイル端末20のキュー25に登録したコールバックオブジェクトの登録メソッドを抽出する(ステップS410)。そして、モバイル端末20のBinder Driverは、まずコールバックオブジェクトの登録をサーバ30側のBinder Driverに行い(ステップS411)、呼出命令をサーバ30にあるServiceにリレーする(ステップS412)。   Next, when a call is made to the Service method (step S407), it is determined whether the processing should be performed on the server 30 side (step S408). At this time, since there is communication, execution on the server 30 is determined. At that time, the Binder Driver first checks the pre-execution method of the queue 25 (step S409), accepts the callback registration response, and extracts the callback object registration method registered in the queue 25 of the mobile terminal 20 earlier. (Step S410). The Binder Driver of the mobile terminal 20 first registers the callback object with the Binder Driver on the server 30 side (Step S411), and relays the calling instruction to the Service in the server 30 (Step S412).

そして、サーバ30のServiceは、Binder Driverを介してモバイル端末20のBinder Driverに登録結果を返すとともに(ステップS413、S414)、メモリにコールバックオブジェクトを登録する(ステップS415)。続いて、モバイル端末20のServiceは、コールバック利用メソッドの呼び出しを行い、サーバ30側のBinder Driverを介してServiceにリレーする(ステップS416)。   Then, the service of the server 30 returns a registration result to the Binder Driver of the mobile terminal 20 via the Binder Driver (Steps S413 and S414), and registers a callback object in the memory (Step S415). Subsequently, the service of the mobile terminal 20 calls a callback usage method and relays it to the service via the Binder Driver on the server 30 side (step S416).

そして、サーバ30のServiceは、Binder Driverを介して受付応答をモバイル端末20のBinder Driverに返す(ステップS417、418)。その後、サーバ30側のServiceは、実際に処理を行った後、処理結果をコールバック利用メソッドに通知し(ステップS419)、コールバックメソッドを介してActivityに実行結果を返す(ステップS420〜423)。   Then, the Service of the server 30 returns an acceptance response to the Binder Driver of the mobile terminal 20 via the Binder Driver (Steps S417 and 418). Thereafter, the Service on the server 30 side actually performs processing, then notifies the callback usage method of the processing result (Step S419), and returns the execution result to Activity through the callback method (Steps S420 to 423). .

[第一の実施形態の効果]
上述してきたように、第一の実施形態にかかるモバイル端末20は、ユーザインタフェースのコンポーネントから内部処理のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、内部処理のコンポーネントの処理をモバイル端末20において実行するか、サーバ30において実行するかを判断し、判断の結果に応じて、呼出しの呼出し先をモバイル端末20とサーバ30との間で切り替える。そして、モバイル端末20は、呼出し先がモバイル端末20に切り替えられた場合には、キュー25に記憶されたメソッドのうち、モバイル端末20において未実行のメソッドを実行させるように制御し、切替部21aによって呼出し先がサーバ30に切り替えられた場合には、キュー25に記憶されたメソッドのうち、サーバ30において未実行のメソッドを実行させるように制御する。そして、モバイル端末20またはサーバ30によりコンポーネントの処理が実行された後、実行したコンポーネントの処理のメソッドをキュー25に格納する。これにより、通信環境の状況に応じてアプリケーションの分散処理環境を制御する仕組みを提供することが可能となる。
[Effect of the first embodiment]
As described above, when the mobile terminal 20 according to the first embodiment is called from the user interface component to the internal processing component, the mobile terminal 20 moves the processing of the internal processing component according to the communication status. It is determined whether it is executed at the terminal 20 or the server 30, and the call destination of the call is switched between the mobile terminal 20 and the server 30 according to the determination result. Then, when the call destination is switched to the mobile terminal 20, the mobile terminal 20 performs control so that an unexecuted method is executed in the mobile terminal 20 among the methods stored in the queue 25, and the switching unit 21 a When the call destination is switched to the server 30 by the control, the server 30 is controlled to execute an unexecuted method among the methods stored in the queue 25. Then, after the component processing is executed by the mobile terminal 20 or the server 30, the processing method of the executed component is stored in the queue 25. As a result, it is possible to provide a mechanism for controlling the distributed processing environment of the application according to the state of the communication environment.

また、モバイル端末内部で動作しているサービスを通信環境の状況に応じて動的にクラウド等のサーバ30側で実行させるような切替の制御を行うことができる。これにより、サーバの豊富なリソース(回線・メモリ等)を用いることで高速化を実現することが可能となる。また、キュー25を利用することで、呼び出し場所が変わることによる実行結果が変わってしまうことを防止することできる。さらに、実行環境の切替による処理の中断、処理結果の中間状態のリセット等が発生せず、切替えて利用する複数の実行環境のシームレス化を実現することが可能である。   In addition, it is possible to perform switching control such that a service operating in the mobile terminal is dynamically executed on the server 30 side such as a cloud according to the state of the communication environment. As a result, it is possible to increase the speed by using abundant resources (lines, memories, etc.) of the server. In addition, by using the queue 25, it is possible to prevent the execution result from being changed due to a change in the calling location. In addition, it is possible to realize seamless execution of a plurality of execution environments that are switched and used without interruption of processing due to switching of execution environments, reset of intermediate states of processing results, and the like.

特に、Androidサービスなどモバイル環境下においてモバイル端末20で無線通信を行うような場合は、モバイル端末20の性能や無線通信環境の制約の影響を受けやすいため、端末通信状態に応じてクラウド側で動作させることによって上記のとおり、モバイル端末以上の処理性能を実行環境の切替を意識せずに得ることができる。   In particular, when wireless communication is performed with the mobile terminal 20 in a mobile environment such as an Android service, the mobile terminal 20 is easily affected by the performance of the mobile terminal 20 and restrictions on the wireless communication environment. As described above, the processing performance higher than that of the mobile terminal can be obtained without being aware of the switching of the execution environment.

[システム構成]
また、本実施形態において説明した各処理の内、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[System configuration]
In addition, among the processes described in the present embodiment, all or part of the processes described as being automatically performed can be manually performed, 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, control procedures, specific names, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.

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

[プログラム]
図10は、開示の技術に係る分散処理プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図10に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU(Central Processing Unit)1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。コンピュータ1000の各部はバス1080によって接続される。
[program]
FIG. 10 is a diagram illustrating that information processing by the distributed processing program according to the disclosed technique is specifically realized using a computer. As illustrated in FIG. 10, the computer 1000 includes, for example, a memory 1010, a CPU (Central Processing Unit) 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, A network interface 1070. Each part of the computer 1000 is connected by a bus 1080.

メモリ1010は、図10に例示するように、ROM1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図10に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図10に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図10に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図10に例示するように、例えばディスプレイ1061に接続される。   The memory 1010 includes a ROM 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 1041. 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.

ここで、図10に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、開示の技術に係る分散処理プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール1093として、例えばハードディスクドライブ1031に記憶される。   Here, as illustrated in FIG. 10, 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 distributed processing program according to the disclosed technology is stored in, for example, the hard disk drive 1031 as the program module 1093 in which a command to be executed by the computer is described.

また、分散処理プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えばハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種の手順を実行する。   Data used for information processing by the distributed processing program is stored as program data 1094 in, for example, the hard disk drive 1031. The CPU 1020 reads out the program module 1093 and the program data 1094 stored in the hard disk drive 1031 to the RAM 1012 as necessary, and executes various procedures.

なお、分散処理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られない。例えば、プログラムモジュール1093やプログラムデータ1094は、着脱可能な記憶媒体に記憶されても良い。この場合、CPU1020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、分散処理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されても良い。この場合、CPU1020は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。   Note that the program module 1093 and the program data 1094 related to the distributed processing program are not limited to being stored in the hard disk drive 1031. For example, the program module 1093 and the program data 1094 may be stored in a removable storage medium. In this case, the CPU 1020 reads data via a removable storage medium such as a disk drive. Similarly, the program module 1093 and the program data 1094 related to the distributed processing program may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). good. In this case, the CPU 1020 reads various data by accessing another computer via the network interface.

[その他]
なお、本実施形態で説明した分散処理プログラムは、インターネットなどのネットワークを介して配布することができる。また、制御プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
[Others]
Note that the distributed processing program described in the present embodiment can be distributed via a network such as the Internet. The control program can also be executed by being recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO, and a DVD, and being read from the recording medium by the computer.

10 ネットワーク
20 モバイル端末
21、31 実行環境
21a 切替部
21b 制御部
21c 格納部
22、32 アプリケーション
23 センサ
24、34 ストレージ
30 サーバ
33 仮想センサ
DESCRIPTION OF SYMBOLS 10 Network 20 Mobile terminal 21, 31 Execution environment 21a Switching part 21b Control part 21c Storage part 22, 32 Application 23 Sensor 24, 34 Storage 30 Server 33 Virtual sensor

Claims (7)

ユーザインタフェースに係る処理を実行する第1のコンポーネントと内部処理を実行する第2のコンポーネントとが分離して実装されているアプリケーションを実行する処理装置において、
前記処理装置によって実行された処理のメソッド、または、該処理装置とネットワークを介して接続され前記第2のコンポーネントに相当するコンポーネントを実装したサーバによって実行された処理のメソッドを記憶するキューと、
前記第1のコンポーネントから前記第2のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、前記第2のコンポーネントの処理を前記処理装置において実行するか、前記サーバにおいて実行するかを判断し、前記判断の結果に応じて、前記呼出しの呼出し先を前記処理装置と前記サーバとの間で切り替える切替部と、
前記切替部によって呼出し先が前記処理装置に切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記処理装置において未実行のメソッドを実行させるように制御し、前記切替部によって呼出し先がサーバに切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記サーバにおいて未実行のメソッドを実行させるように制御する制御部と、
前記処理装置または前記サーバにより前記コンポーネントの処理が実行された後、実行した処理のメソッドを前記キューに格納する格納部と、
を有することを特徴とする処理装置。
In a processing apparatus that executes an application in which a first component that executes processing related to a user interface and a second component that executes internal processing are separately mounted,
A queue that stores a method of processing executed by the processing device, or a method of processing executed by a server that is connected to the processing device via a network and has a component corresponding to the second component;
When a call is made from the first component to the second component, it is determined whether the processing of the second component is executed in the processing device or the server depending on the communication status A switching unit that switches a call destination of the call between the processing device and the server according to a result of the determination;
When the switching unit is switched to the processing device by the switching unit, control is performed so that an unexecuted method is executed in the processing device among the methods stored in the queue, and the calling unit is controlled by the switching unit. Is switched to a server, among the methods stored in the queue, a control unit that controls to execute an unexecuted method in the server;
After the processing of the component is executed by the processing device or the server, a storage unit that stores a method of the executed processing in the queue;
A processing apparatus comprising:
アプリケーションの実行に係るデータを記憶するストレージと、
前記処理装置のストレージと前記サーバのストレージとの間でデータを同期させる同期部と、
をさらに備えることを特徴とする請求項1に記載の処理装置。
Storage for storing data related to the execution of the application;
A synchronization unit for synchronizing data between the storage of the processing device and the storage of the server;
The processing apparatus according to claim 1, further comprising:
前記切替部は、通信速度に関する情報、電波強度に関する情報、通信可能か通信不可能かを識別する識別情報のいずれか一つまたは複数を取得し、取得した情報を用いて、通信の状況を推定し、該通信の状況に応じて、前記第2のコンポーネントの処理を前記処理装置において実行するか、前記サーバにおいて実行するかを判断することを特徴とする請求項1または2に記載の処理装置。   The switching unit acquires one or more of information on communication speed, information on radio wave intensity, and identification information for identifying whether communication is possible or not, and estimates the communication status using the acquired information The processing device according to claim 1, wherein the processing device determines whether the processing of the second component is executed in the processing device or the server according to the communication status. . 前記格納部は、前記実行した処理のメソッドが、アプリケーションの設定を置くもの、アプリケーションが内部で状態を持つもの、コールバック関数を登録するもののいずれかに該当するか判定し、該当すると判定した場合には、前記メソッドを前記キューに格納することを特徴とする請求項1〜3のいずれか一つに記載の処理装置。   The storage unit determines whether the method of the executed process corresponds to one that places an application setting, one that has an internal state, or one that registers a callback function. The processing apparatus according to claim 1, wherein the method is stored in the queue. 前記格納部は、実行した処理のメソッドとともに、該メソッドを実行したのが前記処理装置であるのか前記サーバであるのかを示す情報を格納することを特徴とする請求項1〜4のいずれか一つに記載の処理装置。   The said storage part stores the information which shows whether it is the said processing apparatus or the said server that performed this method with the method of the performed process. The processing apparatus as described in one. ユーザインタフェースに係る処理を実行する第1のコンポーネントと内部処理を実行する第2のコンポーネントとが分離して実装されているアプリケーションを実行する処理装置において実行される分散処理方法であって、
前記処理装置は、前記処理装置によって実行された処理のメソッド、または、該処理装置とネットワークを介して接続され前記第2のコンポーネントに相当するコンポーネントを実装したサーバによって実行された処理のメソッドを記憶するキューを備え、
前記第1のコンポーネントから前記第2のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、前記第2のコンポーネントの処理を前記処理装置において実行するか、前記サーバにおいて実行するかを判断し、前記判断の結果に応じて、前記呼出しの呼出し先を前記処理装置と前記サーバとの間で切り替える切替工程と、
前記切替工程によって呼出し先が前記処理装置に切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記処理装置において未実行のメソッドを実行させるように制御し、前記切替工程によって呼出し先がサーバに切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記サーバにおいて未実行のメソッドを実行させるように制御する制御工程と、
前記処理装置または前記サーバにより前記コンポーネントの処理が実行された後、実行した処理のメソッドを前記キューに格納する格納工程と、
を含んだことを特徴とする分散処理方法。
A distributed processing method executed in a processing device that executes an application in which a first component that executes processing related to a user interface and a second component that executes internal processing are separately implemented,
The processing device stores a method of processing executed by the processing device or a method of processing executed by a server that is connected to the processing device via a network and has a component corresponding to the second component. With a queue to
When a call is made from the first component to the second component, it is determined whether the processing of the second component is executed in the processing device or the server depending on the communication status And a switching step of switching a call destination of the call between the processing device and the server according to a result of the determination;
When the call destination is switched to the processing device by the switching step, control is performed so that an unexecuted method is executed in the processing device among the methods stored in the queue. Is switched to a server, among the methods stored in the queue, a control process for controlling to execute an unexecuted method in the server;
After the processing of the component is executed by the processing device or the server, a storing step of storing a method of the executed processing in the queue;
The distributed processing method characterized by including.
ユーザインタフェースに係る処理を実行する第1のコンポーネントと内部処理を実行する第2のコンポーネントとが分離して実装されているアプリケーションを実行する処理装置において実行し、前記第2のコンポーネントに相当するコンポーネントを実装したサーバに対してネットワークを介して接続したコンピュータに、
前記第1のコンポーネントから前記第2のコンポーネントに対する呼出しがあったときに、通信の状況に応じて、前記第2のコンポーネントの処理を前記処理装置において実行するか、前記サーバにおいて実行するかを判断し、前記判断の結果に応じて、前記呼出しの呼出し先を前記処理装置と前記サーバとの間で切り替える切替ステップと、
前記切替ステップによって呼出し先が前記処理装置に切り替えられた場合には、前記処理装置によって実行された処理のメソッド、または、前記サーバによって実行された処理のメソッドを記憶するキューに記憶されたメソッドのうち、前記処理装置において未実行のメソッドを実行させるように制御し、前記切替ステップによって呼出し先がサーバに切り替えられた場合には、前記キューに記憶されたメソッドのうち、前記サーバにおいて未実行のメソッドを実行させるように制御する制御ステップと、
前記処理装置または前記サーバにより前記コンポーネントの処理が実行された後、実行した処理のメソッドを前記キューに格納する格納ステップと、
を実行させることを特徴とする分散処理プログラム。
A component corresponding to the second component that is executed in a processing device that executes an application in which a first component that executes processing related to a user interface and a second component that executes internal processing are separately mounted. To a computer connected via a network to a server with
When a call is made from the first component to the second component, it is determined whether the processing of the second component is executed in the processing device or the server depending on the communication status A switching step of switching a call destination of the call between the processing device and the server according to a result of the determination;
When the call destination is switched to the processing device by the switching step, the method of the process executed by the processing device or the method stored in the queue that stores the method of the processing executed by the server is stored. Of these, when the processing device is controlled to execute an unexecuted method and the call destination is switched to the server by the switching step, among the methods stored in the queue, the unexecuted method is executed on the server. A control step that controls the execution of the method;
After the processing of the component is executed by the processing device or the server, a storage step of storing a method of the executed processing in the queue;
A distributed processing program characterized by causing
JP2013035768A 2013-02-26 2013-02-26 Processing device, distributed processing method, and distributed processing program Expired - Fee Related JP5847744B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013035768A JP5847744B2 (en) 2013-02-26 2013-02-26 Processing device, distributed processing method, and distributed processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013035768A JP5847744B2 (en) 2013-02-26 2013-02-26 Processing device, distributed processing method, and distributed processing program

Publications (2)

Publication Number Publication Date
JP2014164567A true JP2014164567A (en) 2014-09-08
JP5847744B2 JP5847744B2 (en) 2016-01-27

Family

ID=51615106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013035768A Expired - Fee Related JP5847744B2 (en) 2013-02-26 2013-02-26 Processing device, distributed processing method, and distributed processing program

Country Status (1)

Country Link
JP (1) JP5847744B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019135578A (en) * 2018-02-05 2019-08-15 株式会社東芝 Cloud system, cloud server, edge server and user device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306151A (en) * 1998-04-27 1999-11-05 Fujitsu Ltd Decentralized object processor and program storage medium
JP2005011346A (en) * 2003-06-20 2005-01-13 Docomo Communications Laboratories Usa Inc Method and system for performing adaptive replication of application using server side code unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11306151A (en) * 1998-04-27 1999-11-05 Fujitsu Ltd Decentralized object processor and program storage medium
JP2005011346A (en) * 2003-06-20 2005-01-13 Docomo Communications Laboratories Usa Inc Method and system for performing adaptive replication of application using server side code unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019135578A (en) * 2018-02-05 2019-08-15 株式会社東芝 Cloud system, cloud server, edge server and user device

Also Published As

Publication number Publication date
JP5847744B2 (en) 2016-01-27

Similar Documents

Publication Publication Date Title
CN110063051B (en) System and method for reconfiguring server and server
CN110062924B (en) Capacity reservation for virtualized graphics processing
JP6571161B2 (en) Method, apparatus, and system for exploring application topology relationships
US10515056B2 (en) API for resource discovery and utilization
KR100928603B1 (en) Method and system for optimizing virtual machine information, machine accessible media
TWI559153B (en) Distributed computing framework
TW201905686A (en) Processing method, device, virtualization device and readable storage medium for interrupt request
WO2018157836A1 (en) Resource management method for programmable hardware, programmable hardware device, and storage medium
WO2019127191A1 (en) File system sharing method and apparatus for multi-operating system, and electronic device
US20150186192A1 (en) System and method for selecting a synchronous or asynchronous interprocess communication mechanism
JP7100154B6 (en) Processor core scheduling method, device, terminal and storage medium
CN109144972B (en) Data migration method and data node
JP5751711B2 (en) Processing apparatus, method, and program capable of distributed processing in context-aware
US20210144515A1 (en) Systems and methods for multi-access edge computing node selection
WO2013114620A1 (en) Virtual machine control program, virtual machine control method and information processing device
CN109697114B (en) Method and machine for application migration
JP5847744B2 (en) Processing device, distributed processing method, and distributed processing program
US11314559B2 (en) Method for balanced scale out of resources in distributed and collaborative container platform environment
CN107688479B (en) Android system network cluster, construction method thereof, and Android system network cluster data processing method and system
JP5557612B2 (en) Computer and transfer program
CN114448909A (en) Ovs-based network card queue polling method and device, computer equipment and medium
US11030013B2 (en) Systems and methods for splitting processing between device resources and cloud resources
US10374893B1 (en) Reactive non-blocking input and output for target device communication
US20110191638A1 (en) Parallel computer system and method for controlling parallel computer system
JP2017107382A (en) Program execution system, program execution method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150226

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151001

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151013

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151125

R150 Certificate of patent or registration of utility model

Ref document number: 5847744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees