JP2017107382A - プログラム実行システム、プログラム実行方法、および、プログラム - Google Patents

プログラム実行システム、プログラム実行方法、および、プログラム Download PDF

Info

Publication number
JP2017107382A
JP2017107382A JP2015240338A JP2015240338A JP2017107382A JP 2017107382 A JP2017107382 A JP 2017107382A JP 2015240338 A JP2015240338 A JP 2015240338A JP 2015240338 A JP2015240338 A JP 2015240338A JP 2017107382 A JP2017107382 A JP 2017107382A
Authority
JP
Japan
Prior art keywords
program
execution
client
request
executed
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
JP2015240338A
Other languages
English (en)
Other versions
JP6740600B2 (ja
Inventor
武 栗田
Takeshi Kurita
武 栗田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2015240338A priority Critical patent/JP6740600B2/ja
Priority to US15/367,352 priority patent/US10382575B2/en
Publication of JP2017107382A publication Critical patent/JP2017107382A/ja
Application granted granted Critical
Publication of JP6740600B2 publication Critical patent/JP6740600B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】スマート端末等のCPUリソースやバッテリーの消費を抑制する。【解決手段】自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信で接続された代理サーバ装置2に送信する、プログラム実行手段105を備えるクライアント装置1と、第1の実行要求を受信して、付加された状態情報に基づいて、プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を、遠距離無線通信で接続されたクラウドサーバ装置3に送信する実行要求管理手段209を備える代理サーバ装置2と、第2の要求を受信して、プログラムを実行する第2の代理実行手段303を備える、クラウドサーバ装置3と、を包含するプログラム実行システム6。【選択図】図1

Description

本発明は、プログラム実行システム、プログラム実行方法、および、プログラム、特に、ユーザが利用するクライアント端末の使用状況に応じて、プログラムの実行場所を選択する、プログラム実行システム、プログラム実行方法、および、プログラムに関する。
プログラムのコンパイルや演算量の多いプログラムの実行は、非常にコストが高く、身に着けて使用するような端末(以降、スマート端末)、例えば、腕時計型端末や眼鏡型端末が実行すると、CPU(Central Processing Unit)リソースや、バッテリーを急激に消費してしまう。一方、ユーザインタフェース関連のプログラムの実行をスマート端末以外の場所で実行すると、レスポンスが悪化してしまう。したがって、プログラムを適切な場所で実行することが重要になる。
上記のような問題を解決する為の技術例が、特許文献1と特許文献2に開示されている。これらの文献の技術は、スマート端末が実行するプログラムを、サーバ装置上でコンパイルしてスマート端末に送信する。サーバ装置上では、スマート端末に合わせたコンパイルが実行される。
特開2000-122871号公報 特許第5529027号公報
上述の文献が開示するシステムは、プログラムのコンパイルはサーバ装置が実施するが、コンパイルされたプログラム自体の実行はスマート端末が実施する。このため、バックグラウンドで実行するようなプログラムの為にも、スマート端末のCPUリソースやバッテリーが消費してしまう。
本発明は、上記問題を解決する、プログラム実行システム、プログラム実行方法、および、プログラムを提供することを目的とする。
本発明の1実施の形態のプログラム実行システムは、自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信で接続された代理サーバ装置に送信する、プログラム実行手段を備えるクライアント装置と、
前記第1の実行要求を受信して、付加された前記状態情報に基づいて、前記プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を、遠距離無線通信で接続されたクラウドサーバ装置に送信する実行要求管理手段を備える前記代理サーバ装置と、
前記第2の要求を受信して、前記プログラムを実行する第2の代理実行手段を備える、前記クラウドサーバ装置と、を包含する。
本発明の1実施の形態のプログラム実行方法は、 クライアント装置が、自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信で接続された代理サーバ装置に送信し、
前記代理サーバ装置が、前記第1の実行要求を受信して、付加された前記状態情報に基づいて、前記プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を、遠距離無線通信で接続されたクラウドサーバ装置に送信し、
前記クラウドサーバ装置が、前記第2の要求を受信して、前記プログラムを実行する。
本発明の1実施の形態のプログラムは、第1のコンピュータに、自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信で接続された第2のコンピュータに送信する処理を実行させる第1のプログラムと、
前記第2のコンピュータに、前記第1の実行要求を受信して、付加された前記状態情報に基づいて、前記プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を、遠距離無線通信で接続された第3のコンピュータに送信する処理を実行させる第2のプログラムと、
前記第3のコンピュータに、前記第2の要求を受信して、前記プログラムを実行する処理を実行させる第3のプログラムを包含する。
本発明にかかるプログラム実行システムは、クライアント端末の使用状況に応じて、プログラムの実行場所を選択することにより、ユーザが使用するスマート端末のCPUリソースやバッテリーの消費を抑制する。
図1は、第1の実施の形態にかかるプログラム実行システム6の構成図である。 図2は、クライアント1、代理サーバ2、クラウド3の各部の関係の一部を示す図である。 図3は、端末状態管理表104の例を示す図である。 図4は、プログラム実行場所判断部1051の動作フローチャートである。 図5は、クライアント管理表202の例を示す図である。 図6は、クラウド管理表203の例を示す図である。 図7は、プログラム管理表206の例を示す図である。 図8は、代理実行環境管理表302の例を示す図である。 図9は、クライアント1の登録動作の様子を示す図である。 図10は、プログラムの登録動作の様子を示す図である。 図11は、端末状態の更新動作の様子を示す図である。 図12は、クラウド3の状態の更新動作の様子を示す図である。 図13は、クライアント1でのプログラム実行動作の様子を示す図である。 図14は、代理サーバ2でのプログラム実行動作の様子を示す図である。 図15は、クラウド3でのプログラム実行動作の様子を示す図である。 図1は、第2の実施の形態にかかるプログラム実行システム6の構成図である。
<第1の実施の形態>
<構成と各部の動作>
図1は、本実施の形態にかかるプログラム実行システム6の構成図である。プログラム実行システム6は、各々1台以上の、クライアント装置(以降、クライアント1)、代理サーバ装置(以降、代理サーバ2)、及び、クラウドサーバ装置(以降、クラウド3)を包含する。
クライアント1は、スマートグラスやスマートウォッチなどの小型の情報端末であり、CPU(Central Processing Unit)の計算能力や記憶容量が小さい。また代理サーバ2は、スマートフォン、タブレット端末などの中型の情報端末であり、CPUの計算能力や記憶容量はクライアント1と比較して大きい。クラウド3は、クライアント1や代理サーバ2と比較して大きなCPUの計算能力や記憶容量を有する。ここで、クラウド3は、複数のデータセンタに分散されて配置されたサーバ群に属するサーバ装置などであるが、オフィスなどに設置された1台のサーバ装置であっても良い。
1台の代理サーバ2には、1台以上のクライアント1が近距離無線通信4で接続されている。近距離無線通信4は、例えば、Bluetooth(登録商標)である。クライアント1と代理サーバ2は、近距離無線通信4経由で、低遅延かつ高速に通信が可能である。1台以上の代理サーバ2と1台以上のクラウド3は、遠距離無線通信5で接続されている。遠距離無線通信5は、例えば、代理サーバ2の近傍に有る無線LAN(Local Area Network)のアクセスポイントを経由したインターネット通信網である。遠距離無線通信5は、近距離無線通信4に比べ、大きな遅延が発生する。
クライアント1は、以下の各部を備えている。
クライアント登録要求部101は、クライアント1が近距離無線通信4を経由して代理サーバ2へ初めて通信する際に、代理サーバ2に自身の識別子(以降、ID(Identification))と計算能力、記憶容量、通信能力等のスペック情報を登録する。
プログラム登録要求部102は、初回の通信時に、代理サーバ2にクライアント1のプログラムを登録する、もしくは新たにプログラムを導入した場合に当該プログラムを代理サーバ2に登録する。
端末状態取得部103は、自装置について、操作状態か未操作状態か、身に着けている状態か外した状態か、端末が移動している状態か停止している状態か、電波が届いているか届いていないかの端末状態情報を一定間隔で取得し端末状態管理表104に記録する。端末状態取得部103は、例えば、所定時間内にタッチパネルやマイクロフォンからの操作入力があれば操作中、温感センサーから人の体温が報告されれば装着中、GPS(Global Positioning System)から位置の変化が報告されれば移動中と判断する。
端末状態管理表104は、端末状態取得部103から得られた状態情報を記録する表である。図3は、端末状態管理表104の例を示す図である。本図において、端末状態管理表104は、操作状態(Yes)か否(No)か、装着されている(Yes)か否(No)か、移動中(Yes)か停止中(No)か、電波の受信可(Yes)か否(No)かを記録する表である。
プログラム実行部105は、クライアント1を操作するユーザやクライアント1の内部プロセスから、プログラムの実行を要求された際に、当該プログラムを、クライアント1、または、他装置(代理サーバ2、クラウド3)の何れで実行するのが適切かを判断し、自装置で実行したり、代理サーバ2に実行を依頼したりする。
プログラム実行部105は、プログラム実行場所判断部1051と、プログラム実行要求部1052を備える。
プログラム実行場所判断部1051は、端末状態管理表104からクライアント1の端末状態を取得し、当該端末状態に基づいて、プログラムを自装置で実行するか、リモート実行環境である他装置、すなわち代理サーバ2またはクラウド3、で実行するかを決定する。
図4は、プログラム実行場所判断部1051の動作フローチャートである。クライアント1が代理サーバ2と通信可能であるかを判定し(S1)、通信不可であれば(S1でNG)、プログラム実行場所判断部1051は、起動されたプログラムを自装置で実行すると決定する。
クライアント1が代理サーバ2と通信可能であれば(S1でOK)、プログラム実行場所判断部1051は、自装置が操作中であるかを判定する(S2)。操作中であれば(S2でYes)、プログラム実行場所判断部1051は、起動されたプログラムは、例えば、ユーザインタフェース関連のプログラムで高いレスポンスが要求されると判断し、自装置で実行すると決定する。
操作中でなければ(S2でNo)、プログラム実行場所判断部1051は、自装置が装着中あるいは移動中であるかを判定する(S3およびS4)。装着中であれば(S3でYes)、プログラム実行場所判断部1051は、起動されたプログラムは、例えば、比較的短時間内に結果が要求されるプログラムで、中くらいのレスポンスが要求されるとして、代理サーバ2またはクラウド3で実行すると決定する。装着中でなく(S3でNo)、移動中である場合も(S4でYes)、プログラム実行場所判断部1051は同様な決定をする。なお、この場合、プログラムを代理サーバ2およびクラウド3の何れで実行するかは、代理サーバ2が、例えば、自身の処理能力に基づいて決定する。
上記の何れでもない場合(S4でNo)、クライアント1は、例えば、机の上などに放置されている。この場合、プログラム実行場所判断部1051は、起動されたプログラムは、例えば、タイマー、センサーの通知、通信メッセージの受信で起動され、バックグラウンドで実行しても問題ないプログラムであると判断する。そして、プログラム実行場所判断部1051は、当該プログラムは低レスポンスで構わないとして、クラウド3で実行すると決定する。
プログラム実行要求部1052は、プログラム実行場所判断部1051がプログラムを他装置で実行すると決定した際に、プログラムの実行要求を代理サーバ2に送信する。
プログラムの実行要求は、プログラム実行場所判断部1051の決定情報、メモリイメージの情報を含む。プログラムの実行要求は、さらに、最後の操作からの経過時間等、代理サーバ2が中くらいのレスポンスが要求されるプログラムの実行場所を決定する為の情報を含んでいても良い。また、プログラムの実行要求は、プログラム実行場所判断部1051の決定情報の代わりに、端末状態管理表104に格納されているような端末状態情報を含んでいても良い。この場合、代理サーバ2で、プログラム実行場所判断部1051のS3、S4のような判断を行えば良い。プログラム実行場所判断部1051の決定情報は、端末の状態情報に基づいて決定される情報である。この意味で、プログラムの実行要求に付加される、プログラム実行場所判断部1051の決定情報と端末状態情報とをまとめて、状態情報と呼ぶ。
リソース情報アクセス部107は、リソース108の情報にアクセスする。また、リソース情報アクセス部107は、代理サーバ2からリソース108へのアクセス要求が発行された場合、リソース108の情報を返信する。リソース情報アクセス部107は、一般的な仮想ファイルシステム(VFS)における仮想的なリソースアクセス手法のような公知技術を用いる。
リソース108は、例えば、クライアント1上のファイルデータやセンサーデータである。
メモリイメージ取得部109は、クライアント1上のメモリの全体および一部のイメージを取得する。
代理サーバ2は、以下の各部を備えている。
クライアント登録部201は、クライアント1のクライアント登録要求部101から送信されたクライアント登録要求から、クライアント1のIDとスペック情報を取り出して、クライアント管理表202に記録する。さらに、クライアント登録部201は、プログラム実行環境生成部204が作成した仮想的な代理実行環境をクライアント管理表202に登録すると共に、クラウド管理表203からクラウド3を選択し、当該クラウド3へ当該代理実行環境を送信する。
クライアント管理表202は、クライアント1の登録番号、ID、スペック情報、代理実行環境を記録する表である。図5は、クライアント管理表202の例を示す図である。ここで、代理実行環境は、例えば、クライアント1から送信されてきた中間言語で記述されたプログラムを代理サーバ2上で実行する仮想マシン(VM:Virtual Machine)、および、そのような仮想マシンをクラウド3上に生成する為の仮想マシン定義情報である。クライアント管理表202は、当該仮想マシンおよび仮想マシン定義情報ファイルへのポインタ情報を格納している。クライアント1、代理サーバ2、および、クラウド3のアーキテクチャが同じであれば、仮想マシンは、共通アーキテクチャの命令を実行する仮想マシンであっても良い。代理実行環境は、クライアント1から送信されたスペック情報を満足するように生成される。
クラウド管理表203は、クラウド3の登録番号、アドレス情報、クライアントリストを記録する表である。図6は、クラウド管理表203の例を示す図である。ここで、アドレス情報は、クラウド3のIP(Internet Protocol)アドレスである。クライアントリストは、代理サーバ2が転送し、当該クラウド3でプログラムを実行中のクライアント1のリストである。接続状態は、現在の通信可否を示す。
プログラム実行環境生成部204は、クライアント1のスペック情報とメモリイメージから仮想的な代理実行環境を生成する。
プログラム登録部205は、クライアント1のプログラム登録要求部102から送信されたクライアント1のプログラムの中間コードやバイナリコードを、プログラム解析コンパイル部207を用いて解析させ、その結果をプログラム管理表206に記録する。送信されてきたプログラムがソースの場合、プログラム登録部205は、プログラム解析コンパイル部207を用いて、ソースプログラムを、中間言語、または、プログラム実行システム6の共通アーキテクチャのバイナリコードにコンパイルする。
プログラム管理表206は、プログラムの登録番号、中間コードまたはバイナリ形式のプログラムを格納するファイルの識別名、バイナリコードのサイズ、I/O有無を記録する表である。図7は、プログラム管理表206の例を示す図である。
プログラム解析コンパイル部207は、クライアント1のプログラムのソースやバイナリコード、中間コードを解析およびコンパイルし、識別名を付与、バイナリコードのサイズやバイナリコード内のオフセット情報、I/O有無を解析する。
クラウド状態取得部208は、クラウド3に対して定期的に接続を確認し、その結果をクラウド管理表203の接続状態列に記録する。
プログラム実行要求管理部209は、クライアント1のプログラム実行要求部1052から送信されたプログラム実行要求から要求プログラムと状態情報、メモリイメージの情報、さらに付加されていれば最後の操作からの経過時間等、を取得する。続いて、プログラム実行要求管理部209は、クライアント管理表202から要求クライアント1の代理実行環境を取得し、プログラム管理表206から要求プログラムを取得する。
プログラム実行要求管理部209は、状態情報が、中レスポンス要求を示していれば、プログラム代理実行部210に依頼して、要求プログラムを代理サーバ2で実行し、クライアント1へ実行した結果のメモリイメージとリソース108への操作情報を返送する。状態情報が低レスポンス要求を示していれば、プログラム実行要求管理部209は、メモリイメージと代理実行環境、プログラムをクラウド3へ送信し、プログラムの実行を要求する。なお、プログラム実行要求管理部209は、状態情報が中レスポンス要求を示していても、最後の操作からの経過時間が一定時間以内である場合に限り、要求プログラムを代理サーバ2で実行することとしても良い。ここで、一定時間は、代理サーバ2がその処理能力に基づいて決定する値である。
また、プログラム実行要求管理部209は、状態情報が中レスポンス要求を示していれば、クライアント管理表202のスペック情報や代理サーバ2の負荷状態から代理サーバ2で実行するかクラウド3で実行するかを判断し、プログラムを代理サーバ2実行またはプログラムの実行をクラウド3に要求しても良い。
プログラム代理実行部210は、プログラム実行要求管理部209からプログラムの代理実行を要求された際に、代理実行環境である仮想マシンに、要求されたプログラムと、クライアント1のメモリイメージをロードしてプログラムを実行し、メモリが変更された後のイメージを取得してプログラム実行要求管理部209に返信する。代理実行環境でプログラムを実行している際に、クライアント1のリソース108へのアクセスが必要になった場合、プログラムは、代理実行環境経由で、クライアントリソースアクセス部211にクライアント1のリソース108のアクセスを依頼し、結果を受け取る。
クライアントリソースアクセス部211は、プログラム代理実行部210が実行するプログラムからクライアント1のリソース108へのアクセスを要求された際、クライアント1のリソース情報アクセス部107にリソース108へのアクセスを要求する。さらに、クライアントリソースアクセス部211は、クライアント1から返却されたリソース108のデータをプログラム代理実行部210で実行されるプログラムに渡す。
クライアントリソースアクセス部211は、クラウド3のプログラム代理実行部303が実行するプログラムからリソース108へのアクセスを要求された際にも、クライアント1のリソース情報アクセス部107にリソース108へのアクセスを要求する。さらに、クライアントリソースアクセス部211は、クライアント1から返却されたリソース108のデータをプログラム代理実行部303が実行するプログラムに渡す。
クライアントリソースアクセス部211は、一般的な仮想ファイルシステム(VFS)における仮想的なリソースアクセス手法のような公知技術を用いる。
クラウド3は、以下の各部を備えている。
代理実行環境登録部301は、代理サーバ2のクライアント登録部201から送信されたクライアント1の代理実行環境に基づいて仮想マシンを生成し、代理実行環境管理表302に記録する。
代理実行環境管理表302は、代理実行環境の登録番号とクライアント1のID、代理サーバ2のID、代理実行環境を記録する表である。図8は、代理実行環境管理表302の例を示す図である。代理実行環境管理表302は、代理実行環境登録部301が生成した仮想マシンへのポインタ情報を格納している。
プログラム代理実行部303は、代理サーバ2のプログラム実行要求管理部209から送信されたメモリイメージと代理実行環境、プログラムを受信する。さらに、プログラム代理実行部303は、代理実行環境管理表302から代理実行環境の仮想マシンにアクセスし、要求されたプログラムおよびメモリイメージを当該代理実行環境にロードし、当該プログラムを実行する。実行後、プログラム代理実行部303は、メモリが変更された後のイメージを取得してプログラム実行要求管理部209経由で、プログラム実行要求部1052へ返信する。
クライアントリソースアクセス部304は、プログラム代理実行部303が実行するプログラムからクライアント1のリソース108へのアクセスを要求された際に、代理サーバ2のクライアントリソースアクセス部211にリソース108へのアクセスを要求する。さらに、クライアントリソースアクセス部304は、代理サーバ2から返却されたリソース108をプログラム代理実行部303が実行するプログラムに渡す。リソース108の情報授受は、代理実行環境を経由して行われる。クライアントリソースアクセス部304は、一般的な仮想ファイルシステム(VFS)における仮想的なリソースアクセス手法のような公知技術を用いる。
図2は、以上説明した、クライアント1、代理サーバ2、クラウド3の各部の関係の一部を示す図である。
クライアント1のクライアント登録要求部101、プログラム登録要求部102、端末状態取得部103、プログラム実行部105、リソース情報アクセス部107、および、メモリイメージ取得部109は、論理回路で構成される。これらの各部は、コンピュータ装置であるクライアント1のメモリ(図示されず)にロードされて、CPU(図示されず)で実行されるプログラムにより実現されても良い。端末状態管理表104は、クライアント1のメモリ(図示されず)内の領域である。
代理サーバ2のクライアント登録部201、プログラム実行環境生成部204、プログラム登録部205、プログラム解析コンパイル部207、クラウド状態取得部208、プログラム実行要求管理部209、プログラム代理実行部210、および、クライアントリソースアクセス部211は、論理回路で構成される。これらの各部は、コンピュータ装置である代理サーバ2のメモリ(図示されず)にロードされて、CPU(図示されず)で実行されるプログラムにより実現されても良い。クライアント管理表202、クラウド管理表203、および、プログラム管理表206は、代理サーバ2のメモリ(図示されず)内の領域である。
クラウド3の代理実行環境登録部301、プログラム代理実行部303、クライアントリソースアクセス部304は、論理回路で構成される。これらの各部は、コンピュータ装置であるクラウド3のメモリ(図示されず)にロードされて、CPU(図示されず)で実行されるプログラムにより実現されても良い。代理実行環境管理表302は、クラウド3のメモリ(図示されず)内の領域である。
<各部の動作連携>
上述した各部の動作連携を、図9から図15を用いて説明する。
図9は、クライアント1の登録動作の様子を示す図である。
クライアント1は、代理サーバ2との初回の接続時に、クライアント登録要求部101で、代理サーバ2に自身のクライアントIDとスペック情報を送信する。
クライアント登録部201は、クライアント1のクライアント登録要求部101から送信されたクライアント登録要求からクライアント1のIDとスペック情報を取り出して、クライアント管理表202に記録する。さらに、クライアント登録部201は、プログラム実行環境生成部204にて作成した仮想的な代理実行環境をクライアント管理表202に登録すると共に、クラウド管理表203から1つのクラウド3を選択し、当該クラウド3へ該当代理実行環境を送信する。
代理実行環境登録部301は、代理サーバ2のクライアント登録部201から送信されたクライアント1の代理実行環境を代理実行環境管理表302に記録する。
図10は、プログラムの登録動作の様子を示す図である。
プログラム登録要求部102は、初回の通信時に、代理サーバ2にクライアント1のプログラムを登録する、もしくは新たにプログラムを導入した場合に当該プログラムを代理サーバ2に登録するため、プログラムのソースやバイナリコード、中間コードを送信する。
プログラム登録部205は、クライアント1のプログラム登録要求部102から送信されたクライアント1のプログラムの中間コードやバイナリコードを、プログラム解析コンパイル部207を用いて解析させ、その結果をプログラム管理表206に記録する。送信されてきたプログラムがソースの場合、プログラム登録部205は、プログラム解析コンパイル部207を用いて、ソースプログラムを、中間言語、または、プログラム実行システム6の共通アーキテクチャのバイナリコードにコンパイルする。
図11は、端末状態の更新動作の様子を示す図である。
端末状態取得部103は、自装置について、操作状態か未操作状態か、身に着けている状態か外した状態か、端末が移動している状態か停止している状態か、電波が届いているか届いていないかの端末状態情報を一定間隔で取得し、端末状態管理表104に記録する。
図12は、クラウド3の状態の更新動作の様子を示す図である。
クラウド状態取得部208は、クラウド3に対して定期的に接続を確認し、その結果をクラウド管理表203に記録する。
図13は、クライアント1でのプログラム実行動作の様子を示す図である。
クライアント1を操作するユーザやクライアント1の内部プロセスからプログラムの実行を要求された際に、プログラム実行部105は、プログラム実行場所判断部1051が、高レスポンスを要求する為自装置で実行すると決定したプログラムを実行する。当該プログラムは、実行の際にリソース108へのアクセスが必要な場合は、リソース情報アクセス部107によってリソース108へアクセスし、情報を取得する。
図14は、代理サーバ2でのプログラム実行動作の様子を示す図である。
これは、クライアント1を操作するユーザやクライアント1の内部プロセスからプログラムの実行を要求された際に、プログラム実行場所判断部1051が、当該プログラムは中くらいのレスポンスを要求すると決定した場合の動作である。この場合、プログラム実行部105は、メモリイメージ取得部109からクライアント1のメモリイメージを取得し、プログラム実行要求部1052によって、代理サーバ2に対してプログラムの実行要求を送信する。
プログラム実行要求管理部209は、クライアント1のプログラム実行要求部1052から送信されたプログラム実行要求から要求プログラムと状態情報、メモリイメージの情報、さらに付加されていれば最後の操作からの経過時間等、を取得する。続いて、プログラム実行要求管理部209は、クライアント管理表202から要求クライアント1の代理実行環境を取得し、プログラム管理表206から要求プログラムを取得する。
プログラム実行要求管理部209は、状態情報が中レスポンス要求を示していれば、プログラム代理実行部210に依頼して、要求プログラムを代理サーバ2で実行し、クライアント1へ実行した結果のメモリイメージとリソース108への操作情報を返送する。なお、プログラム実行要求管理部209は、状態情報が中レスポンス要求を示していても、最後の操作からの経過時間が一定時間以内である場合に限り、プログラム代理実行部210に依頼して、要求プログラムを代理サーバ2で実行しても良い。
プログラム代理実行部210は、プログラム実行要求管理部209からプログラムの代理実行を要求された際に、代理実行環境である仮想マシンに、要求されたプログラムと、クライアント1のメモリイメージをロードしてプログラムを実行する。さらに、プログラム代理実行部210は、メモリが変更された後のイメージを取得してプログラム実行要求管理部209へ返信する。代理実行環境でプログラムを実行している際に、クライアント1のリソース108へのアクセスが必要になった場合、プログラムは、代理実行環境経由で、クライアントリソースアクセス部211にクライアント1のリソース108のアクセスを依頼し、結果を受け取る。
プログラム実行要求部1052は、プログラム実行要求管理部209から返されたメモリイメージをクライアント1のメモリに展開し、リソース操作を実行してクライアント1の状態をプログラム実行後の状態にする。
図15は、クラウド3でのプログラム実行動作の様子を示す図である。
これは、クライアント1を操作するユーザやクライアント1の内部プロセスからプログラムの実行を要求された際に、プログラム実行場所判断部1051が、当該プログラムは中くらいのレスポンス、または、低レスポンスを要求すると決定した場合の動作である。プログラム実行部105は、メモリイメージ取得部109からクライアント1のメモリイメージを取得し、プログラム実行要求部1052によって、代理サーバ2に対してプログラムの実行要求を送信する。
プログラム実行要求管理部209は、クライアント1のプログラム実行要求部1052から送信されたプログラム実行要求から要求プログラムと状態情報、メモリイメージの情報、さらに付加されていれば最後の操作からの経過時間等、を取得する。続いて、プログラム実行要求管理部209は、クライアント管理表202から要求クライアント1の代理実行環境を取得し、プログラム管理表206から要求プログラムを取得する。
プログラム実行要求管理部209は、状態情報が、低レスポンス要求を示していれば、プログラム代理実行部303に依頼して、要求プログラムをクラウド3で実行し、クライアント1へ実行した結果のメモリイメージとリソース108への操作情報を返送する。なお、プログラム実行要求管理部209は、状態情報が中レスポンス要求を示していても、最後の操作からの経過時間が一定時間以内でなければ、プログラム代理実行部303に依頼して、要求プログラムをクラウド3で実行しても良い。
プログラム代理実行部303は、代理サーバ2のプログラム実行要求管理部209から送信されたメモリイメージと代理実行環境、要求プログラムを受信する。さらに、プログラム代理実行部303は、代理実行環境管理表302から代理実行環境の仮想マシンにアクセスし、要求されたプログラムおよびメモリイメージを当該代理実行環境にロードし、当該プログラムを実行する。実行後、プログラム代理実行部303は、メモリが変更された後のイメージを取得してプログラム実行要求管理部209へ返信する。代理実行環境でプログラムを実行している際に、クライアント1のリソース108へのアクセスが必要になった場合、プログラムは、代理実行環境経由で、クライアントリソースアクセス部304にクライアント1のリソース108のアクセスを依頼し、結果を受け取る。
クライアントリソースアクセス部304は、プログラム代理実行部303が実行するプログラムからクライアント1のリソース108へのアクセスを要求された際に、代理サーバ2のクライアントリソースアクセス部211にリソース108へのアクセスを要求する。さらに、クライアントリソースアクセス部304は、代理サーバ2から返却されたリソース108をプログラム代理実行部303が実行するプログラムに渡す。
プログラム実行要求部1052は、プログラム実行要求管理部209から返されたメモリイメージをクライアント1のメモリに展開し、リソース操作を実行してクライアント1の状態をプログラム実行後の状態にする。
<効果>
本発明にかかるプログラム実行システム6は、スマート端末等のクライアント1の使用状況に応じて、プログラムの実行場所を選択することにより、ユーザが使用するクライアント1のCPUリソースやバッテリーの消費を抑制する。
その理由は、プログラム実行部105が、クライアント1の使用状況を判定し、高レスポンスが求められない状況で起動されたプログラムを、代理サーバ2、または、クラウド3に実行させるからである。
<第2の実施形態>
図16は、本実施の形態にかかるプログラム実行システム6の構成図である。
プログラム実行システム6は、プログラム実行部105を備えるクライアント1、プログラム実行要求管理部209を備える代理サーバ2、及び、プログラム代理実行部303を備えるクラウド3を包含する。
プログラム実行部105は、自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信4で接続された代理サーバ2に送信する。
プログラム実行要求管理部209は、第1の実行要求を受信して、付加された状態情報に基づいて、プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を遠距離無線通信5で接続されたクラウド3に送信する。
プログラム代理実行部303は、第2の要求を受信して、プログラムを実行する。
本発明にかかるプログラム実行システム6は、スマート端末等のクライアント1の使用状況に応じて、プログラムの実行場所を選択することにより、ユーザが使用するクライアント1のCPUリソースやバッテリーの消費を抑制する。
その理由は、プログラム実行部105が、クライアント1の使用状況を判定し、高レスポンスが求められない状況で起動されたプログラムを、代理サーバ2、または、クラウド3に実行させるからである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 クライアント
2 代理サーバ
3 クラウド
4 近距離無線通信
5 遠距離無線通信
6 プログラム実行システム
101 クライアント登録要求部
102 プログラム登録要求部
103 端末状態取得部
104 端末状態管理表
105 プログラム実行部
107 リソース情報アクセス部
108 リソース
109 メモリイメージ取得部
201 クライアント登録部
202 クライアント管理表
203 クラウド管理表
204 プログラム実行環境生成部
205 プログラム登録部
206 プログラム管理表
207 プログラム解析コンパイル部
209 プログラム実行要求管理部
210 プログラム代理実行部
211 クライアントリソースアクセス部
301 代理実行環境登録部
302 代理実行環境管理表
303 プログラム代理実行部
304 クライアントリソースアクセス部
1051 プログラム実行場所判断部
1052 プログラム実行要求部

Claims (10)

  1. 自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信で接続された代理サーバ装置に送信する、プログラム実行手段を備えるクライアント装置と、
    前記第1の実行要求を受信して、付加された前記状態情報に基づいて、前記プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を、遠距離無線通信で接続されたクラウドサーバ装置に送信する実行要求管理手段を備える前記代理サーバ装置と、
    前記第2の要求を受信して、前記プログラムを実行する第2の代理実行手段を備える、前記クラウドサーバ装置と、を包含するプログラム実行システム。
  2. 前記クライアント装置の前記プログラム実行手段は、自装置が、操作中である場合、または、前記代理サーバ装置と前記近距離無線通信が不可能なとき、自装置で実行すると決定し、その他の場合は他装置で実行すると決定し、
    前記代理サーバ装置の前記実行要求管理手段は、前記状態情報に基づいて、前記クライアント装置が、装着中若しくは移動中であって、かつ、最後の操作からの経過時間が所定時間以内であると判断した時に自装置で実行し、その他の場合他装置で実行すると判断する、請求項1のプログラム実行システム。
  3. 前記クライアント装置の前記プログラム実行手段は、前記第1の実行要求に、自装置のメモリ情報を付加して送信し、
    前記代理サーバ装置は、さらに、前記クライアントのスペック情報と前記メモリ情報から仮想的な前記クライアントの実行環境を生成する実行環境生成手段と、
    生成された仮想的な前記実行環境で前記プログラムを実行する第1の代理実行手段と、を備え、
    前記クラウドサーバ装置の前記第2の代理実行手段は、前記代理サーバ装置で生成されて自装置に送信された仮想的な前記実行環境で前記プログラムを実行する、請求項1乃至請求項2の何れか1項のプログラム実行システム。
  4. 前記クライアント装置は、さらに、前記プログラムからアクセスされるリソースと、当該リソースへのアクセスを行うリソース情報アクセス手段とを備え、
    前記代理サーバ装置は、自装置、または、前記クラウドサーバ装置で実行される前記プログラムの前記クライアント装置の前記リソースへのアクセス要求を受けて、前記アクセス要求を前記リソースアクセス手段に転送する、クライアントリソースアクセス手段を備える、請求項1乃至請求項3の何れか1項のプログラム実行システム。
  5. クライアント装置が、自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信で接続された代理サーバ装置に送信し、
    前記代理サーバ装置が、前記第1の実行要求を受信して、付加された前記状態情報に基づいて、前記プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を、遠距離無線通信で接続されたクラウドサーバ装置に送信し、
    前記クラウドサーバ装置が、前記第2の要求を受信して、前記プログラムを実行する、プログラム実行方法。
  6. 前記クライアント装置は、自装置が、操作中である場合、または、前記代理サーバ装置と前記近距離無線通信が不可能なとき、自装置で実行すると決定し、その他の場合は他装置で実行すると決定し、
    前記代理サーバ装置は、前記状態情報に基づいて、前記クライアント装置が、装着中若しくは移動中であって、かつ、最後の操作からの経過時間が所定時間以内であると判断した時に自装置で実行し、その他の場合他装置で実行すると判断する、請求項5のプログラム実行方法。
  7. 前記クライアント装置は、前記第1の実行要求に、自装置のメモリ情報を付加して送信し、
    前記代理サーバ装置は、さらに、前記クライアントのスペック情報と前記メモリ情報から仮想的な前記クライアントの実行環境を生成し、
    生成された仮想的な前記実行環境で前記プログラムを実行し、
    前記クラウドサーバ装置は、前記代理サーバ装置で生成されて自装置に送信された仮想的な前記実行環境で前記プログラムを実行する、請求項5乃至請求項6の何れか1項のプログラム実行方法。
  8. 前記クライアント装置は、さらに、前記プログラムからアクセスされるリソースと、当該リソースへのアクセスを行い、
    前記代理サーバ装置は、自装置、または、前記クラウドサーバ装置で実行される前記プログラムの前記クライアント装置の前記リソースへのアクセス要求を受けて、前記アクセス要求を前記クライアント装置に転送する、請求項5乃至請求項7の何れか1項のプログラム実行方法。
  9. 第1のコンピュータに、自装置の状態に基づいて、起動されたプログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、自装置の状態情報を付加した第1の実行要求を、近距離無線通信で接続された第2のコンピュータに送信する処理を実行させる第1のプログラムと、
    前記第2のコンピュータに、前記第1の実行要求を受信して、付加された前記状態情報に基づいて、前記プログラムを自装置または他装置の何れで実行するかを決定し、他装置で実行すると決定した場合、第2の実行要求を、遠距離無線通信で接続された第3のコンピュータに送信する処理を実行させる第2のプログラムと、
    前記第3のコンピュータに、前記第2の要求を受信して、前記プログラムを実行する処理を実行させる第3のプログラムを包含する、プログラム。
  10. 前記第1のプログラムは、前記第1のコンピュータに、自装置が、操作中である場合、または、前記第2のコンピュータと前記近距離無線通信が不可能なとき、自装置で実行すると決定し、その他の場合は他装置で実行すると決定する処理を実行させ、
    前記第2のプログラムは、前記第2のコンピュータに、前記状態情報に基づいて、前記第1のコンピュータが、装着中若しくは移動中であって、かつ、最後の操作からの経過時間が所定時間以内であると判断した時に自装置で実行し、その他の場合他装置で実行すると判断する処理を実行させる、請求項9のプログラム。
JP2015240338A 2015-12-09 2015-12-09 プログラム実行システム、プログラム実行方法、および、プログラム Active JP6740600B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015240338A JP6740600B2 (ja) 2015-12-09 2015-12-09 プログラム実行システム、プログラム実行方法、および、プログラム
US15/367,352 US10382575B2 (en) 2015-12-09 2016-12-02 Program execution system, method of executing program, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015240338A JP6740600B2 (ja) 2015-12-09 2015-12-09 プログラム実行システム、プログラム実行方法、および、プログラム

Publications (2)

Publication Number Publication Date
JP2017107382A true JP2017107382A (ja) 2017-06-15
JP6740600B2 JP6740600B2 (ja) 2020-08-19

Family

ID=59020387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015240338A Active JP6740600B2 (ja) 2015-12-09 2015-12-09 プログラム実行システム、プログラム実行方法、および、プログラム

Country Status (2)

Country Link
US (1) US10382575B2 (ja)
JP (1) JP6740600B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11650886B2 (en) * 2019-06-27 2023-05-16 Netapp, Inc. Orchestrator for orchestrating operations between a computing environment hosting virtual machines and a storage environment
US11330068B2 (en) * 2020-07-24 2022-05-10 Alibaba Group Holding Limited Methods and systems for recording user operations on a cloud management platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186222A (ja) * 2007-01-30 2008-08-14 Seiko Epson Corp アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム
JP2013065207A (ja) * 2011-09-16 2013-04-11 Kyocera Corp 携帯通信システム、携帯通信端末およびサーバ
WO2015103048A1 (en) * 2014-01-03 2015-07-09 Mcafee, Inc. Mechanisms for conserving resources of wearable devices
JP2015201060A (ja) * 2014-04-09 2015-11-12 株式会社日立ソリューションズ センサデータ収集システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000122871A (ja) 1998-10-14 2000-04-28 Hitachi Ltd アプリケーション配布方法
US7886962B2 (en) * 2006-08-17 2011-02-15 Verizon Patent And Licensing Inc. Multi-function transaction device
US8365153B2 (en) 2007-10-26 2013-01-29 Qualcomm Incorporated Server-based code compilation
US20100274626A1 (en) * 2009-04-22 2010-10-28 Mark Carlson Receipt of communications from announcement recipients of consumer data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186222A (ja) * 2007-01-30 2008-08-14 Seiko Epson Corp アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム
JP2013065207A (ja) * 2011-09-16 2013-04-11 Kyocera Corp 携帯通信システム、携帯通信端末およびサーバ
WO2015103048A1 (en) * 2014-01-03 2015-07-09 Mcafee, Inc. Mechanisms for conserving resources of wearable devices
JP2015201060A (ja) * 2014-04-09 2015-11-12 株式会社日立ソリューションズ センサデータ収集システム

Also Published As

Publication number Publication date
US10382575B2 (en) 2019-08-13
US20170171340A1 (en) 2017-06-15
JP6740600B2 (ja) 2020-08-19

Similar Documents

Publication Publication Date Title
EP3798833A1 (en) Methods, system, articles of manufacture, and apparatus to manage telemetry data in an edge environment
EP3764220B1 (en) Automatic application updates
US9146716B2 (en) Automatic resource balancing for multi-device applications
CN107277029B (zh) 一种远程过程调用的方法、装置及计算机设备
US10498625B1 (en) Distributed testing service
KR102513998B1 (ko) 통신 방법 및 장치, 엔티티 및 컴퓨터 판독가능 저장 매체
US10044799B2 (en) Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
KR20130135134A (ko) 원격으로 애플리케이션들을 설치
CN110381131B (zh) Mec节点标识的实现方法、移动终端、服务器和存储介质
CN109510878B (zh) 一种长连接会话保持方法和装置
JP2015537272A (ja) 複数デバイス間の同期中での同期衝突を解決するプロトコルを提供する方法、装置及びコンピュータプログラム
US20170155721A1 (en) Virtual-machine dynamic allocation system and server
US20160180471A1 (en) Method, system and recording medium for managing official account
JP6740600B2 (ja) プログラム実行システム、プログラム実行方法、および、プログラム
Lee A framework for seamless execution of mobile applications in the cloud
Shetty et al. Cloud based application development for mobile devices for accessing LBS
WO2023246757A1 (zh) 算力服务方法、装置及终端
US9124591B2 (en) Automatic resource balancing for multi-device location-based applications
CN115580667B (zh) 数据传输方法、装置、设备及存储介质
US12021949B2 (en) Method for application context transfer between edge servers in 5G networks
Khalaj et al. A proxy-based mobile computing infrastructure
EP3539278A1 (en) Method and system for affinity load balancing
US11979458B2 (en) Systems and methods for providing discovery and hierarchical management of distributed multi-access edge computing
Järvenpää Distributed microservices evaluation in edge computing
JP5768884B2 (ja) データ処理方法およびデータ処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200520

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200706

R150 Certificate of patent or registration of utility model

Ref document number: 6740600

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150