JP2018501590A - モバイルデバイスに基づくクラスタコンピューティングインフラストラクチャのための方法および装置 - Google Patents

モバイルデバイスに基づくクラスタコンピューティングインフラストラクチャのための方法および装置 Download PDF

Info

Publication number
JP2018501590A
JP2018501590A JP2017544813A JP2017544813A JP2018501590A JP 2018501590 A JP2018501590 A JP 2018501590A JP 2017544813 A JP2017544813 A JP 2017544813A JP 2017544813 A JP2017544813 A JP 2017544813A JP 2018501590 A JP2018501590 A JP 2018501590A
Authority
JP
Japan
Prior art keywords
container
computing device
secure
task
mobile computing
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
JP2017544813A
Other languages
English (en)
Other versions
JP6598391B2 (ja
Inventor
ヤンネ・カルフネン
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2018501590A publication Critical patent/JP2018501590A/ja
Application granted granted Critical
Publication of JP6598391B2 publication Critical patent/JP6598391B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/466Transaction processing
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Abstract

ワイヤレス通信インターフェースに結合されたプロセッサを含み、プロセッサが、initプロセスを実行するように構成され、initプロセスが、コンテナマネージャを含むモバイルコンピューティング装置。プロセッサは、コンテナマネージャを使用して複数のセキュアなコンテナを生成し、複数のセキュアなコンテナのうちの第1のセキュアなコンテナにおいて第1のモバイルデバイスプロセスを実行する。プロセッサは、複数のセキュアなコンテナのうちの第2のセキュアなコンテナにおいてクラスタノードプロセスを実行し、クラスタノードプロセスは、クラウドサービスインフラストラクチャのノードとして動作するように構成される。

Description

本開示の態様は、概して、ワイヤレス通信システムに関し、特に、コンピューティングリソースのクラスタを形成するようにモバイルコンピューティングデバイスを構成することに関する。
通常の大規模コンピューティングシステムは、数千のCPUコアの強力なクラスタに依拠する。たとえば、米国のOak Ridge National LaboratoryにあるCray XK7は、それぞれのOpteron 6274コアが282ギガ浮動小数点演算毎秒(GFlops)を提供するようにして、560,640個のOpteronコアを使用して約17590テラ浮動小数点演算毎秒(TFlops)を提供する。今述べたCray XK7は、約1億米ドルのコストがかかり、設置するのに大きな空間を必要とし、かなりの電力を消費し、定期的なコストのかかる保守を必要とする。これらの大規模なコンピューティングシステムを運用することに関連する高いコストおよびリソースの要件が原因で、ほとんどの企業はそれらのコンピューティングシステムを購入し、運用する余裕を持つことができない。
ユーザの好ましいコンピューティングプラットフォームがデスクトップおよび通常のラップトップコンピュータからスマートフォン、ファブレット、およびタブレットデバイスなどのモバイルデバイスに移るにつれて、利用可能なモバイルコンピューティングデバイスの数が劇的に増加した。いくつかの推定によれば、世界中に十億台を超える利用可能なスマートフォンが存在し、その多くが、通常のネットワークインフラストラクチャを介してアクセスされ得る。これらのモバイルコンピューティングデバイスのほとんどは、人気のあるCortexコアなどのARM Holdings Incorporatedによって開発された命令セットおよびアーキテクチャに基づく処理コアを備えている。これらのモバイルコンピューティングデバイスのほとんどは、Linux(登録商標)に基づくオペレーティングシステムを実行する。単一のCortex A15は、約100GFlopsを提供することができ、3つのCortex A15コアは、単一のOpteron 6274コアに匹敵する計算能力を提供する。たとえば、170万台のモバイルデバイスを使用して、各モバイルデバイスが少なくとも1つのCortex A15コアを含むと仮定すると、世界の最大級のスーパーコンピュータの一部に比肩する計算能力を有するクラスタが形成され得る。
モバイルデバイスの余った計算能力を使用することは、いくつかの課題を突きつける。セル電話およびタブレットなどのモバイルコンピューティングデバイスは、機密の個人のおよび事業に関連する情報にアクセスすることができる。したがって、これらのデバイスの余ったコンピューティングリソースの使用は、強力で信頼性のあるセキュリティを必要とする。セル電話またはその他のモバイルコンピューティングデバイスのユーザは、データのレイテンシーまたは遅い応答時間を許容しない。したがって、モバイルコンピューティングデバイス、特に、電話またはその他のユーザ中心のアプリケーションにおける応答時間およびレイテンシーは、短く保たれなくてはならない。
クラウドに基づくコンピューティングは、通常の広域ネットワークを介して通信する遠隔に展開されたコンピューティングリソースのグループを使用してコンピューティングサービスおよび/またはリソースを提供するための最近発展してきているメタファー(metaphor)である。本明細書において使用されるとき、クラウドサービスインフラストラクチャという用語は、リソースの任意の部分またはすべてがよくあるコンピューティングの問題を解決するかまたはコンピューティングタスクの連携させられた組を実行するように連携させられ得るように、通常のネットワークを介して通信する遠隔に展開されたコンピューティングリソースの集合を指す。クラウドサービスインフラストラクチャは、個々のコンピューティングリソースまたはクラスタノードが分散させられ、広域ネットワークを介して通信し、関連するが必ずしも同じではないコンピューティングタスクを実行する可能性がある一種のコンピューティングクラスタと見なされ得る。
ソフトウェア会社のコンソーシアムによって開発されたLXC Linux(登録商標) Containers、Windowsオペレーティングシステムのために設計されたオープンソースのコンテナテクノロジーであるDocker、および標準に基づくアプリケーションコンテナテクノロジーであるRocketなどのクラスタテクノロジーが、コンピューティングデータセンター内のサーバに広く展開されてきた。これらのテクノロジーは、セキュリティを目的として隔離された環境内でアプリケーションが実行されることを可能にし、異種のハードウェアインフラストラクチャへのアプリケーションの展開を容易にする。
モバイルコンピューティングデバイスなどの組み込みデバイスのためのコンテナテクノロジーは、現在研究され、導入されている。一部の初期の例は、Samsung Corporationによって開発されているKNOX、およびIntel Corporationの子会社によって開発されているMcAfee Secure Container for Androidを含む。これらのコンテナの実装は、デバイス上のすべてのコンテナ内で同じオペレーティングシステムが使用され、特定のアプリケーションがそれらのアプリケーションがコンテナ内でのみ実行され得るように構成されることを必要とする。これらの実装においては、データの隔離が、コンテナによって行われ、したがって、データは、コンテナ内で実行されるアプリケーションに属し、コンテナ外でまたは別のコンテナ内で実行されるいかなるその他のアプリケーションによってもアクセスされ得ない。また、コンテナ内で実行されるアプリケーションは、いかなるその他のアプリケーションのデータにもアクセスすることができない。
一種の仮想化に基づく代替的な解決策が、提案されている。この解決策は、それぞれが独自のオペレーティングシステムを有するいくつかのコンテナを実行することによって、複数の異なるオペレーティングシステムが同じ組み込みデバイス上で実行されることを可能にする。これらのコンテナは、コンテナ内で実行される様々なオペレーティングシステムによって同時にアクセスされ得るワイヤレスアクセスサービスなどのサービスも実行するルート名前空間によって生成される。組み込みデバイスのクラスタを構築するその他の試みも存在したが、これらの手法は、データの隔離のためにコンテナのようなテクノロジーを使用しなかった。
したがって、モバイルコンピューティングデバイス上でセキュアなコンテナのリソースを生成し、管理するための改善された方法および装置、ならびにモバイルコンピューティングデバイスの集団の余ったコンピューティングリソースに基づいてクラウドサービスインフラストラクチャを生成するための方法および装置に対するニーズが存在する。
クラウドサービスインフラストラクチャにモバイルコンピューティングデバイスを組み込むための装置および方法を提供することが、本発明の目的である。本発明のさらなる目的は、モバイルコンピューティング装置のアイドル状態の計算能力に安全にアクセスするための方法および装置を提供することである。
本発明の第1の態様によれば、上述のおよびさらなる目的および利点が、プロセッサを含むモバイルコンピューティング装置によって得られる。プロセッサは、initプロセスを実行するように構成され、initプロセスは、コンテナマネージャを含む。プロセッサは、コンテナマネージャを使用して複数のセキュアなコンテナを生成し、複数のセキュアなコンテナのうちの第1のセキュアなコンテナにおいて第1のモバイルデバイスプロセスを実行する。プロセッサは、複数のセキュアなコンテナのうちの第2のセキュアなコンテナにおいてクラスタノードプロセスを実行するように構成され、クラスタノードプロセスは、クラウドサービスインフラストラクチャのノードとして動作するように構成される。
第1の態様によるモバイルコンピューティング装置の第1のあり得る実装形態においては、モバイルコンピューティング装置のアイドル状態の計算能力が、クラスタコンピューティングインフラストラクチャにとって利用可能とされ得るようにされる可能性があり、モバイルコンピューティング装置が、プロセッサに結合されたワイヤレス通信インターフェースをさらに含み、プロセッサが、クラスタノードプロセスを実行している間に、ワイヤレス通信インターフェースからタスク要求を受信し、initプロセスにタスク要求を渡し、initプロセスからタスクの結果を受信し、ワイヤレス通信インターフェースを介してタスクの結果を送信するように構成される。
第1の態様それ自体によるまたは第1の態様の第1の実装形態によるモバイルコンピューティング装置の第2のあり得る実装形態においては、クラスタコンピューティングインフラストラクチャに関するコンピューティングタスクが、プロセッサによって実行される可能性があり、initプロセスを実行している間に、プロセッサが、タスク要求に対応するタスクコンテナを生成し、タスク要求に対応するタスク環境をダウンロードし、タスクコンテナ内でタスクを実行し、第2のセキュアなコンテナにタスクの結果を送信するように構成される。
第1の態様それ自体によるまたは上述の実装形態のいずれかによるモバイルコンピューティング装置の第3のあり得る実装形態においては、モバイルコンピューティング装置が、プロセッサに結合されたワイヤレス通信インターフェースを含み、クラスタコンピューティングインフラストラクチャが、クラスタノードプロセスを実行している間に、ワイヤレス通信インターフェースからタスクのライフサイクルコマンドを受信し、受信されたタスクのライフサイクルコマンドをinitプロセスに送信し、initプロセスを実行している間に、タスクのライフサイクルコマンドに基づいてタスクコンテナの状態を修正するようにプロセッサを構成することによって実行されるタスクの制御を任され、タスクのライフサイクルコマンドは、開始コマンド、停止コマンド、一時停止コマンド、再開コマンド、および取り消しコマンドのうちの1つである。
第1の態様それ自体によるまたは第1の態様の上述の実装形態のいずれかによるモバイルコンピューティング装置の第4のあり得る実装形態においては、セキュアなコンテナの間のセキュアな通信が、装置によって提供される可能性があり、initプロセスが、仮想的なブリッジを含み、プロセッサが、複数のセキュアなコンテナの中のセキュアなコンテナの各々を仮想的なブリッジと通信可能なように結合し、予め決められたフィルタ基準に基づいて複数のセキュアなコンテナの中のセキュアなコンテナの対の間の通信を制御するように構成される。
第1の態様の第4のあり得る実装形態によるモバイルコンピューティング装置の第5のあり得る実装形態においては、プロセッサが、複数のセキュアなコンテナの中のセキュアなコンテナとinitプロセスとの間の通信を許し、複数のセキュアなコンテナの中のセキュアなコンテナの間の直接(initプロセスを間に挟まない)通信を防止するように構成される。
第1の態様それ自体によるまたは上述の実装形態のいずれかによるモバイルコンピューティング装置の第6のあり得る実装形態においては、initプロセスを実行している間に、ヒューリスティック(heuristic)に基づいて複数のセキュアなコンテナの中のそれぞれのセキュアなコンテナにリソースを割り振るようにプロセッサが構成されるようにして、モバイルコンピューティング装置が、利用可能なコンピューティングリソースの利用を最適化する。
第1の態様それ自体によるまたは上述の実装形態のいずれかによるモバイルコンピューティング装置の第7のあり得る実装形態においては、複数のセキュアなコンテナの中の第3のセキュアなコンテナにおいて第2のモバイルデバイスプロセスを実行するようにプロセッサが構成されるようにすることによって、ユーザが、単一の物理的なコンピューティング装置上で複数のモバイルデバイスを提供される。
第1の態様それ自体の第7のあり得る実装形態によるモバイルコンピューティング装置の第8のあり得る実装形態においては、第2のモバイルデバイスプロセス上で施行されるよりも制限の緩いセキュリティポリシーを第1のモバイルデバイスプロセス上で施行するようにプロセッサが構成されるようにすることによって、モバイルコンピューティング装置が、それぞれのモバイルデバイスプロセスに関してセキュリティポリシーの別々の制御を可能にする。
第1の態様それ自体によるまたは上述の実装形態のいずれかによるモバイルコンピューティング装置の第9のあり得る実装形態においては、プロセッサが、構成ファイルに基づいてセキュアなコンテナを生成するように構成され、構成ファイルは、initプロセスによってのみアクセス可能であり、コンテナの起動ステータスを指定し、コンテナのためのリソースの割当量を指定する。
第1の態様それ自体によるまたは上述の実装形態のいずれかによるモバイルコンピューティング装置の第10のあり得る実装形態においては、モバイルコンピューティング装置が、第1のモバイルデバイスプロセスおよび第2のモバイルデバイスプロセスのうちの1つをアクティブ化し、現在アクティブなモバイルデバイスプロセスにモバイルコンピューティング装置のすべてのリソースへの優先アクセスを提供するようにプロセッサが構成されるようにすることによって、ユーザが望ましいユーザエクスペリエンスを与えられることを保証する。
第1の態様それ自体によるまたは上述の実装形態のいずれかによるモバイルコンピューティング装置の第11のあり得る実装形態においては、モバイルコンピューティング装置が、ユーザインターフェースをさらに含むモバイルコンピューティング装置によるモバイルコンピューティング装置のユーザのユーザエクスペリエンスをクラスタインフラストラクチャが妨げることを防止し、プロセッサが、クラスタプロセスがユーザインターフェースにアクセスすることを防止するように構成される。
第1の態様それ自体によるまたは上述の実装形態のいずれかによるモバイルコンピューティング装置の第12のあり得る実装形態においては、モバイルコンピューティング装置が、複数のセキュアなコンテナの中のセキュアなコンテナの各々が異なるオペレーティングシステムを含むようにすることによってクラスタコンピューティングインフラストラクチャに向上した柔軟性および機能を提供する。
本発明の第2の態様によれば、上述のおよびさらなる目的および利点が、モバイルコンピューティングデバイスのための方法によって得られる。方法は、initプロセスを実行するステップであって、initプロセスがコンテナマネージャを含む、ステップと、コンテナマネージャを使用して複数のセキュアなコンテナを生成するステップと、複数のセキュアなコンテナのうちの第1のセキュアなコンテナにおいて第1のモバイルデバイスプロセスを実行するステップと、複数のセキュアなコンテナのうちの第2のセキュアなコンテナにおいてクラスタノードプロセスを実行するステップとを含み、クラスタノードプロセスは、クラウドサービスインフラストラクチャのノードとして動作するように構成される。
本発明の第3の態様によれば、上述のおよびさらなる目的および利点が、プロセッサによって実行されるときにプロセッサに第2の態様による方法を実行させる非一時的コンピュータプログラム命令を含むコンピュータプログラムによって得られる。
例示的な実施形態のこれらのおよびその他の態様、実装形態、ならびに利点は、添付の図面と併せて考慮される本明細書において説明される実施形態から明らかになるであろう。しかし、説明および図面は、開示される発明の限定の定義としてではなく、例示の目的のためにのみ作られており、開示される発明の限定の定義に関しては、添付の請求項が参照されるべきであることを理解されたい。本発明のさらなる態様および利点が以下に続く説明において述べられ、その説明からある程度明らかになるか、または本発明の実施によって学習され得る。さらに、本発明の態様および利点は、添付の請求項において特に示された手段および組合せによって実現および獲得され得る。
本開示の以下で詳細に説明される部分において、本発明が、図面に示される例示的な実施形態を参照してより詳細に説明される。
開示される実施形態の態様を組み込む、クラスタノードプロセスを展開するための例示的な実施形態を示すモバイルコンピューティングデバイスのブロック図である。 開示される実施形態の態様を組み込む、クラウドサービスインフラストラクチャの例示的な実施形態を示す絵で表した図である。 本開示の実施形態を実装するのに適したモバイルコンピューティングデバイスのブロック図である。 この実施形態の態様を組み込む、モバイルコンピューティングデバイスをクラウドまたはクラスタコンピューティングインフラストラクチャ内のノードとして使用するための例示的な方法の流れ図である。 開示される実施形態の態様を組み込む、クラウドサービスインフラストラクチャにおいてタスクを実行するための方法の例示的な実施形態の流れ図である。
図1は、クラスタノードプロセスを展開するための例示的な実施形態を示すモバイルコンピューティングデバイス100のブロック図を示す。モバイルコンピューティングデバイスは、そのモバイルコンピューティングデバイスのソフトウェアアーキテクチャの中に、複数のセキュアなコンテナ102、104、106を含み、セキュアなコンテナ102、104、106は、本明細書においてはinitと呼ばれる中央制御プロセス108によって管理される。それぞれのセキュアなコンテナ102、104、106は、モバイルデバイスアプリケーションなどのアプリケーションが安全に実行され得る隔離された実行環境またはプロセス空間を提供する。したがって、コンテナは、本明細書においてはプロセスとも呼ばれる可能性がある。モバイルコンピューティングデバイス100は、オペレーティングシステム(OS)のカーネル110が起動した後に開始される第1のエンティティである1つのinitプロセス108を含む。initプロセス108は、独自のコンテナ内で実行される可能性があり、またはOS空間内のプロセスとして直接実行される可能性がある。
initプロセス108がコンテナ内で実行されるとき、コンテナは、すべてのコンテナの管理およびモバイルコンピューティングデバイス100のすべてのコンピューティングリソースの割り振りを可能にするための適切な特権を有するべきである。initプロセス108は、モバイルコンピューティングデバイス100上で実行されるすべてのその他のプロセスを管理する責任を負う。init 108は、プロセスがどのように実行されるのかを制御する責任も負い、つまり、init 108は、各プロセスによって使用されるリソースを管理し、各プロセスのセキュリティ特権を制御する。リソースの管理は、プロセスが使用し得る利用可能な処理時間の量を割り振ること、消費されるメモリの量を割り振ることなど、コンピューティングリソースを制御すること、およびプロセスがユーザインターフェースにアクセスし得るかどうか、ファイルシステムにアクセスし得るかどうかなどを制御することを指す。パーミッションまたは制約とも呼ばれる可能性があるセキュリティ特権は、サービス、リソース、またはデバイス上で実行されるその他のプロセスへのアクセスを制御する、つまり、許すかまたは制約することを指す。
特定の実施形態において、initプロセス108は、3つの別々のセキュアなコンテナ102、104、106を生成し、ホームコンテナ(home container)104内で家庭向けの使用のために構成されたモバイルデバイスプロセスを開始し、ワークコンテナ(work container)102内で仕事向けの使用のために構成されたモバイルデバイスプロセスを開始し、第3のセキュアなコンテナ内でクラスタノードプロセス106を開始する。この説明の全体を通じて、セキュアなコンテナおよびプロセスという用語は、特定のセキュアなコンテナまたはそのセキュアなコンテナ内で実行されるプロセスを指すために交換可能なように使用される可能性があり、意味は、用語が使用される文脈からはっきりする。
ワークコンテナまたはワークプロセス102は、企業またはビジネスネットワークにアクセスするために使用され得る。企業またはビジネスネットワークは機密性のある価値の高い情報にアクセスすることができるので、ワークコンテナ102は、最も厳しいまたは最も制約のあるセキュリティポリシーまたはセキュリティ制御を有するように構成される可能性がある。たとえば、ワークコンテナ102は、ユーザがそれらのユーザの会社の電子メール、文書、および仕事上の連絡先のリストにアクセスすることを可能にする。ワークコンテナ102は、安全でクリーンである、つまり、典型的には制約されていないインターネット上の活動から感染させられるウィルスまたはスパイウェア型のプログラムがないままである必要がある。
ホームコンテナ104は、ユーザがインターネットサーフィンをすること、アプリケーションをダウンロードし、実行すること、またはゲームをすることなどのよりリスクのある活動を実行することを許すより制約のないセキュリティポリシーを有する可能性がある。2つの別々のモバイルデバイスコンテナを提供することは、仕事用に1つおよび個人的なまたは家庭での使用のために1つの複数のセル電話を持ち運ぶ必要をなくす。
ルート名前空間と呼ばれる可能性があるinitプロセス108は、通常のルートプロセス(root process)によって提供されないいくつかの新しい機能を提供する。initプロセス108は、各コンテナを開始および停止する能力を有し、同時に実行されるように複数のコンテナを構成することができる。initプロセス108は、そのinitプロセス108が生成したセキュアなコンテナのうちの任意のセキュアなコンテナを一時停止および再開するようにも構成される。開始、一時停止、再開、停止、および取り消しなどのコマンドが、セキュアなコンテナのライフサイクルおよびそのコンテナ内で実行されるプロセスを制御するために使用され、ライフサイクルコマンドと呼ばれる可能性がある。
また、initプロセス108は、アクティブな部分(active portion)の間に、つまり、コンテナがそのコンテナのライフサイクルの実行状態にある間に利用可能な、それぞれのセキュアなコンテナ102、104、106が有するリソースを構成する。initプロセス108が、構成ファイルからリソースの要件を取得する可能性があり、コンテナの生成をトリガする外部タスク要求からリソースの要件を取得す可能性があり、またはリソースは、様々な人工知能(AI)アルゴリズムのいずれかに基づいて自動的に構成される可能性がある。これらのAIアルゴリズムは、本明細書においてはヒューリスティックと呼ばれる。それぞれのセキュアなコンテナ102、104、106に割り振られたリソースは、処理能力またはCPU時間の量、メモリの量、およびその他のリソースを含む。それぞれのセキュアなコンテナ102、104、106に割り振られるリソースは、モバイルコンピューティングデバイス108のユーザがモバイルコンピューティングデバイスのリソースに最も優先度の高いアクセスを保持することも保証しながら、モバイルコンピューティングデバイス100のアイドル状態の計算能力を効率的に利用するようにして決定される。その他のプロセスがモバイルコンピューティングデバイス100のリソースを共有することによってモバイルコンピューティングデバイス100のユーザの経験が悪影響を受けないことを保証することが、重要である。
クラスタノードプロセス106は、クラスタまたはクラウドサービスインフラストラクチャのノードとして働くように構成される。これを行うために、クラスタノードは、アイドル状態の計算能力、すなわち、外部クラウドサービス(図示せず)によって与えられるコンピューティングタスクの実行のために、モバイルコンピューティングデバイス100によって与えられるユーザエクスペリエンスをサポートするために必要とされない計算能力の使用をネゴシエーションする。ユーザの経験に悪影響を与えることを防止するために、クラスタノードプロセス106は、バックグラウンドで実行されるように構成される。バックグラウンドプロセスまたはバックグラウンドで実行されるプロセスは、フォアグラウンドプロセスよりも低い優先度で実行され、ユーザインターフェースにアクセスしないプロセスを指す。したがって、バックグラウンドプロセスは、モバイルコンピューティングデバイスのユーザに実質的に見えず、ユーザの経験に悪影響を与えない。
コンテナ、または本明細書において参照されるセキュアなコンテナは、隔離されたユーザ空間のインスタンスを生成するために使用されるオペレーティングシステムの仮想化の形態である。各コンテナは、OSのカーネルまたはinitプロセス108によって、アプリケーションまたはプロセスが実行され得るコンピューティングリソースの隔離された組を形成する名前空間の特徴の組を与えられる。ジェイル(jail)とも呼ばれる可能性がある通常のコンテナのデータの隔離によって、データは、コンテナ内で実行されるアプリケーションに属し、別のコンテナにおいて実行されるアプリケーションまたは異なるコンテナにおいて実行されるアプリケーションによってアクセスされ得ない。この隔離は、潜在的に害のあるアプリケーションがオペレーティングシステムまたはその他のコンテナを壊す可能性なしに安全でセキュアな方法で実行されることを可能にする。initプロセス108によって生成されるセキュアなコンテナは、それぞれが異なるLinux(登録商標)ディストリビューションなどの異なるオペレーティングシステムを含む可能性があり、したがって、オペレーティングシステムの仮想化の形態と見なされる可能性がある。
通常のオペレーティングシステムにおいては、OSのカーネルが、コンテナの管理、リソースの割り振りなどの機能を提供するためのルート名前空間を生成する。本明細書において開示される例示的な実施形態において、initプロセス108は、第1のまたはルート名前空間として開始される。initプロセス108は、直接生成される可能性があり、または代替的に、それ自体がコンテナ内でホストされる可能性がある。通常のルート名前空間と比較して、initプロセス108は、様々な追加的な有利な機能を提供する。
initプロセス108は、そのinitプロセス108が生成したセキュアなコンテナ102、104、106のライフサイクルを制御し、コンテナを開始および停止することができ、一度に複数のコンテナを実行することができる。また、initプロセス108は、モバイルコンピューティングデバイス100上で実行されるセキュアなコンテナ102、104、106のうちの任意のセキュアなコンテナを一時停止および再開することができる。
セキュアなコンテナを開始するとき、initプロセス108は、セキュアなコンテナまたはプロセスによって使用されるようにメモリ、処理時間などのコンピューティングリソースを構成する。クラスタコンテナ106に割り振られるべきコンピューティングリソースは、モバイルコンピューティングデバイス100のユーザがユーザエクスペリエンスに悪影響を与えることを防止するために必要とされるすべてのリソースへの優先アクセスを受け取ることも保証しながら、モバイルコンピューティングデバイス100のアイドル状態の計算能力の十分な利用を達成するように決定される。上述のように、セキュアなコンテナに割り振られるリソースは、AIアルゴリズムもしくはヒューリスティックに基づいて自動的に決定される可能性があり、または代替的に、リソースは、構成ファイルに基づいて構成される可能性がある。
コンテナの生成は、予め決められたデフォルトの構成に基づく。デフォルトの構成は、多くのセキュアなコンテナがモバイルコンピューティングデバイス100上でどのように生成され得るのかおよびセキュアなコンテナのためのデフォルトのリソースの構成などのコンテナの生成についての全般的な情報を提供する。それぞれのセキュアなコンテナに関する追加的な情報が、特定のセキュアなコンテナに固有の情報を提供する追加的な構成ファイル内で提供される可能性もある。initプロセス108は、構成ファイルの情報に基づいてセキュアなコンテナを生成し得る。
構成ファイルは、initプロセス108によってアクセスされ得るコンピュータメモリに記憶される可能性があり、しっかりと形成される。各構成ファイルは、対応するセキュアなコンテナのために使用されるべき名前を含む可能性があり、ルートファイルシステムイメージ(root file system image)およびそのイメージのマウントポイントを指定する。コンテナに割り振られるメモリおよびプロセッサ時間の量などのリソースの割当量も、構成ファイル内で与えられる。代替的に、リソースの割当量は、構成ファイルの情報とヒューリスティックとの組合せを使用して発見される可能性がある。構成ファイルは、デフォルトでコンテナを開始すべきかまたは要求に応じてコンテナを開始すべきかなど、対応するセキュアなコンテナに関する起動ステータスも与える可能性がある。デフォルトで開始されるコンテナは、モバイルコンピューティングデバイス100が開始されるときに自動的に開始され、一方、要求に応じて開始される起動ステータスは、initプロセス108が適切な要求を受信した後にのみ起動されるべきであるコンテナを指定する。構成ファイルは、ルートまたはデフォルト名前空間に記憶され、initプロセス108によってのみ修正され得る。
セキュアなコンテナは、それらのセキュアなコンテナが自動的に起動しないように構成される可能性がある。ユーザまたはその他の権限のあるエンティティが、initプロセス108に要求を送信することによってセキュアなコンテナの構成を変更する可能性がある。パーミッションが認証されると、initプロセス108は、それに応じてセキュアなコンテナの構成を修正し、修正は、セキュアなコンテナが次回開始されるときに有効になる。特定の実施形態においては、initプロセス108に要求を送信する権限を与えられるプロセスがそれぞれのセキュアなコンテナに1つだけ存在する。
モバイルコンピューティングデバイス100上で実行されるセキュアなコンテナ102、104、106は、隔離されたプロセス空間内で実行され、互いに通信することを許されない。セキュアなコンテナ102、104、106間の通信は、モバイルコンピューティングデバイス100の起動中に生成される仮想的なブリッジによって提供される。セキュアなコンテナが生成されるとき、ネットワークソケットの組も生成され、一方のネットワークソケットが新しく生成されるセキュアなコンテナに結びつけられ、他方のネットワークソケットが仮想的なブリッジに結びつけられ、それによって、セキュアなコンテナと仮想的なブリッジとの間の通信経路を生成する。特定の実施形態において、仮想的なブリッジは、インターネットプロトコル(IP)を使用して通信する可能性があり、IPアドレスの範囲が、仮想的なブリッジが開始されるときに仮想的なブリッジに割り当てられる。インターネットプロトコルに基づくネットワークソケットは、インターネットソケットと呼ばれる可能性がある。仮想的なブリッジは、セキュアなコンテナ内で実行されるプロセスが、ホストオペレーティングシステムと、または異なるセキュアなコンテナ内で実行されるその他のプロセスと通信することを可能にする。
セキュリティの目的のために、フィルタモジュールを仮想的なブリッジと統合することが特定の実施形態において望ましい。フィルタモジュールは、セキュアなコンテナの間の直接通信を防止し、セキュアなコンテナ102、104、106とinitプロセス108との間の通信のみを許すように構成され得る。特定の実施形態において、initプロセス108は、セキュアなコンテナ内で実行されている可能性もあり、これらの実施形態において、フィルタモジュールは、initプロセス108のコンテナとその他のセキュアなコンテナとの間の通信のみを許すように構成されることに留意されたい。
図2は、上述のモバイルコンピューティングデバイス100などのモバイルコンピューティングデバイス100-1、100-2、100-3が、全体を数字200によって示されるクラウドサービスインフラストラクチャ内のクラスタノードとしてクラウドサービス202にどのようにして関与する可能性があるかを示す絵で表した図を示す。3つのモバイルコンピューティングデバイス100-1、100-2、100-3だけが図2に示されているが、使用中の多数のモバイルコンピューティングデバイスが存在するので、クラウドサービスインフラストラクチャ200は、大きな分散型クラスタを形成するための数百万台のモバイルコンピューティングデバイスを含む可能性がある。したがって、クラウドサービスインフラストラクチャ200は、何百万台ものモバイルコンピューティングデバイス100-1、100-2、100-3のアイドル状態の計算能力を利用することによって大規模なコンピューティング能力を提供するために使用され得る。
それぞれのモバイルコンピューティングデバイス100-1、100-2、100-3は、クラスタコンテナ106-1、106-2、106-3を生成し、クラスタコンテナ106-1、106-2、106-3内でクラスタノードプロセスを実行するように構成される。それぞれのクラスタコンテナ106-1、106-2、106-3は、通信リンク204、206、208を介したクラウドサービス202との通信を確立し、クラスタに加わる。
モバイルコンピューティングデバイス100-3がユーザの要求を満たすことに忙しいとき、クラスタコンテナ106-3は、クラスタノード106-3および通信リンク208のために使用される破線によって示されるクラウドサービス202からの要求を受け付けることを一時的に停止する可能性がある。クラスタノードプロセスを一時停止することによって、モバイルデバイス100-3は、モバイルコンピューティングデバイス100-3を使用する人のユーザエクスペリエンスに悪影響を与えることを防止することができる。
それぞれのモバイルコンピューティングデバイス100-1、100-2、100-3は、それぞれのコンピューティングデバイス100-1、100-2、100-3上で実行されるinitプロセス108-1、108-2、108-3がクラスタコンテナ106-1、106-2、106-3を生成し、クラスタコンテナ106-1、106-2、106-3内でクラスタノードプロセスを実行するように構成される。モバイルコンピューティングデバイス100-3などのモバイルコンピューティングデバイスがその他のユーザのタスクで忙しいとき、そのモバイルコンピューティングデバイスのそれぞれのinitプロセス108-3が、クラスタコンテナ106-3を一時停止する可能性があり、代替的に、ユーザが、望ましいとき、クラスタコンテナ106-3を一時停止するかまたは完全に無効化することを決断する可能性がある。デフォルトで、クラスタコンテナ106-1、106-2、106-3は、グラフィカルユーザインターフェースにアクセスせず、モバイルコンピューティングデバイス100-1、100-2、100-3のユーザといかなるインタラクションもしない可能性がある。
クラスタコンテナ106-1、106-2、106-3内で実行されるクラスタノードプロセスは、クラウドサービス202からタスク要求を得て、対応するinitプロセス108-1、108-2、108-3にこれらのタスク要求を送信する責任を負う。クラスタプロセス106-1、106-2、106-3は、クラウドサービス202と通信する唯一のプロセスまたはセキュアなコンテナである。initプロセス108-1、108-2、108-3は、クラスタコンテナ106-1、106-2、106-3内で実行されるクラスタプロセスからタスク要求を受信するとき、initプロセス108-1、108-2、108-3は、タスク要求と共に含まれるタスクの説明に基づいてクラスタプロセスからタスク環境またはタスクイメージをダウンロードし、タスクを実行するための対応するセキュアなコンテナを生成する。タスクイメージは、タスクの説明によって定義される1つまたは複数のオーバーレイ(overlay)を有するベースイメージ(base image)に基づく可能性があり、イメージは、タスクのために生成されたセキュアなコンテナとセキュアなコンテナにロードされたソフトウェアプログラムとの組合せを指す。タスクの結果が実行されるタスクから利用可能になるとき、initプロセス108-1、108-2、108-3は、この結果を、クラスタコンテナ106-1、106-2、106-3内で実行されるクラスタノードプロセスに送信する。それから、クラスタコンテナ106-1、106-2、106-3内で実行されるクラスタノードプロセスは、クラウドサービス202に結果を送信する。
クラスタノードプロセスは、予め定義されたクラウドプロトコルを使用して、各通信リンク204、206、208を介してクラウドサービス202と通信する。このクラウドプロトコルは、信頼できるメッセージの送達を保証するために、各クラスタノードプロセスとクラウドサービスインフラストラクチャ202との間のハンドシェイクメカニズムをどのように実装すべきかを説明する。クラウドプロトコルは、クラウドサービスインフラストラクチャ202がモバイルコンピューティングデバイス100-1、100-2、100-3上で実行されるタスクを管理することを可能にするためのメッセージを含む。タスク管理は、タスク環境を初期化すること、タスクを開始することまたはディスパッチすること、タスクを中断することまたは一時停止すること、タスクを停止することまたは動かなくすること、およびタスクが完了する前にそのタスクを取り消すことなどの動作を含む可能性がある。クラウドプロトコルは、タスクの結果をクラウドサービスインフラストラクチャ202に返すためのメッセージも含む可能性がある。クラウドプロトコルは、クラウドコンピューティングインフラストラクチャ200がクラウドに加わったモバイルコンピューティングデバイス上で実行されるタスクを管理し、各ノード上で実行されるタスクにデータを送信し、各ノード上で実行されるタスクからデータを受信することを可能にする。
図3は、本開示の実施形態を実装するのに適したモバイルコンピューティングデバイス300のブロック図を示す。示されたモバイルコンピューティングデバイス300は、コンピュータメモリ304、無線周波数(RF)ユニット306、ユーザインターフェース(UI)308、およびディスプレイ310に結合されたプロセッサ302を含む。装置300は、セル電話、スマートフォン、およびタブレットデバイスを含む様々な種類のワイヤレス通信ユーザ機器のいずれかである可能性があるモバイルコンピューティングデバイスとして使用するのに適切である。
プロセッサ302は、単一の処理デバイスである可能性があり、またはたとえば、デジタル信号処理(DSP)デバイスなどの専用デバイス、マイクロプロセッサ、専用の処理デバイス、もしくは多目的コンピュータプロセッサを含む複数の処理デバイスを含む可能性がある。プロセッサ302は、本明細書に記載のプロセスを実行するように構成される。プロセッサは、グラフィックス処理ユニット(GPU)と連携して働くCPUを含み、信号処理タスクを扱うためのDSPを含むことが多い。特定の実施形態において、プロセッサ302は、ARM Cortexコアなどの1つまたは複数の、多くの場合4つのコアを含む。
プロセッサ302は、たとえば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気もしくは光ディスク、またはその他の種類のコンピュータメモリなどの様々な種類の揮発性および不揮発性コンピュータメモリの組合せである可能性があるメモリ304に結合される(312)。メモリ304は、本明細書において説明されるクラスタコンピューティングの方法などの様々な所望のコンピュータによって実施されるプロセスまたは方法をプロセッサに実行させるためにプロセッサ302によってアクセスされ、実行され得るコンピュータプログラム命令を記憶する。
メモリ304に記憶されるプログラム命令は、業界内でプログラム、ソフトウェアコンポーネント、ソフトウェアモジュール、ユニットなどの様々な用語で呼ばれるプログラム命令のセットまたはグループとして編成される。各モジュールは、特定の目的をサポートするように設計された1組の機能を含む可能性がある。たとえば、ソフトウェアモジュールは、オペレーティングシステム、アプリケーション、デバイスドライバ、またはその他の普通に認められている種類のソフトウェアコンポーネントなどの認められた種類のものである可能性がある。メモリ304にさらに含まれるのは、コンピュータプログラム命令によって記憶され、処理されるプログラムデータおよびデータファイルである。
RFユニット306は、プロセッサ302に結合され、プロセッサ302とやりとりされるデジタルデータ312に基づいてRF信号を送信および受信するように構成される。RFユニット306は、たとえば、第3世代パートナーシッププロジェクト(3GPP)によって開発されたロングタームエボリューション(LTE)およびLTEアドバンスト(LTE-A)、米国電気電子学会(IEEE) 802.11規格に基づくWi-Fi、および多くのその他の規格などの、今日使用されているワイヤレス通信規格のうちの1つまたは複数に準拠する可能性がある無線信号を送信および受信するように構成される。特定の実施形態において、RFユニット306は、全地球測位システム(GPS)において衛星から送信されたメッセージを受信し、解釈することができる受信機を含み、デバイス300の位置に関する位置情報を得るためにその他の送信機から受信された情報と一緒に働く。
UI 308は、タッチスクリーン、キーパッド、ボタン、音声コマンドプロセッサ、およびユーザと情報をやりとりするために適合されたその他の要素などの1つまたは複数のユーザインターフェース要素を含み得る。UI 308は、モバイルコンピューティングデバイスまたはモバイルユーザ機器に適した様々な情報を表示するように構成されたディスプレイユニット310も含む可能性があり、たとえば、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)などの任意の適切なディスプレイの種類、およびLEDまたはインジケータランプなどのより複雑でない要素を使用して実装される可能性がある。特定の実施形態において、ディスプレイユニット310は、モバイルコンピューティングデバイス100のユーザから情報を受け取るためのタッチスクリーンを組み込む。
図4は、本発明の実施形態による装置(たとえば、装置のプロセッサ)によって実行され得る、モバイルコンピューティングデバイスをクラウドまたはクラスタコンピューティングインフラストラクチャ内のノードとして使用するための例示的な方法400の流れ図を示す。図1および図3を参照して上で説明されたモバイルコンピューティングデバイスなどのモバイルコンピューティングデバイスは、クラウドサービスによって使用するためにそのモバイルコンピューティングデバイスのアイドル状態のコンピューティングリソースを提供するための方法400を実装することができる。モバイルコンピューティングデバイス100は、最初にオンにされるとき、そのモバイルコンピューティングデバイス100の初期化手順の間にinitプロセス108などのinitプロセスを開始する(402)。とりわけ、initプロセス108は、モバイルコンピューティングデバイス100上で実行されるセキュアなコンテナを管理する。initプロセス108は、リソースを生成し、セキュアなコンテナ102、104、106に割り当て、それぞれのセキュアなコンテナのライフサイクルを管理し、セキュアなコンテナとの仮想的なブリッジを介した通信を管理することができる。
それから、initプロセス108は、モバイルコンピューティングデバイス100のメモリに記憶された構成ファイルに基づいて1つまたは複数のセキュアなコンテナ102、104、106を生成する(404)。代替的に、セキュアなコンテナ102、104、106は、ヒューリスティックもしくはその他のAIアルゴリズムに基づいて生成される可能性があり、または構成ファイルとAIアルゴリズムとの組合せに基づいて生成される可能性がある。そして、initプロセス108は、セキュアなコンテナ102、104、106のうちの1つにおいてモバイルデバイスプログラムを実行する(406)。
本明細書において使用されるとき、モバイルデバイスアプリケーションまたはモバイルデバイスプロセスという用語は、Androidに基づくスマートフォンなどのスマートフォン、タブレットコンピュータ、またはその他の種類のモバイルアプリケーションを指す。モバイルデバイスプログラムは、独自のオペレーティングシステムおよびシステムサービスならびに通常のモバイルユーザ機器に関連するユーザアプリケーションを含む。
特定の実施形態においては、モバイルデバイスを実行するステップ(406)を繰り返し(420)、上述のワークコンテナ102およびホームコンテナ104などの別々のプロセスまたはコンテナ内で複数のモバイルデバイスプログラムを実行することが有利である。複数のモバイルデバイスプログラムを実行する複数のセキュアなコンテナを生成することは、たとえば、仕事用のモバイル電話と個人用のモバイル電話との両方を持ち運ぶ必要をなくすために単一のモバイルコンピューティングデバイスを複数の別々のスマートフォンとして動作させることが望ましいときに行われる。initプロセス108は、クラスタノードプロセスのための別個のセキュアなコンテナを生成し、セキュアなコンテナ内でクラスタノードプロセスを実行する(408)。上述のクラスタノードコンテナ106などのクラスタノードプロセスまたはコンテナは、そのアイドル状態の計算能力をクラウドサービスインフラストラクチャ200による使用に利用され得るようにするために、上述のクラウドプロトコルなどのプロトコルを使用してクラウドサービス202との通信を確立する。特定の実施形態においては、モバイルコンピューティングデバイス100のユーザによって、またはモバイルコンピューティングデバイス100が接続されるワイヤレス通信ネットワークによってクラスタノードプロセスが無効化されるかまたはそれ以外の制御をされることを可能にすることが、望ましい。
タスクがクラウドサービスによって実行される必要があるとき、そのタスクは、モバイルコンピューティングデバイス100にタスク要求を送信する。タスク要求は、モバイルコンピューティングデバイス100上のセキュアなコンテナ内で実行されるクラスタノードプロセスによって受信され(410)、それから、クラスタノードプロセスが、タスク要求をinitプロセス108に送信し(412)、タスクを実行する(414)。下でより詳細に説明されるように、タスクを実行すること(414)は、タスク要求に含まれる情報に基づいてセキュアなコンテナを生成し、セキュアなコンテナにタスク環境をロードし、タスクの実行を制御することによって達成される。
タスクが完了すると、またはタスクの結果が利用可能であるときにはいつも、initプロセス108が、タスクの結果をクラスタノードプロセスに送信し(406)、クラスタノードプロセスが、タスクの結果をクラウドサービスに送信する(410)。タスクの実行中のいつでも、クラスタノードプロセスが、タスクが取り消されることを求めるタスク要求を受信し得る。これが起こるとき、クラスタノードプロセスは、取り消しまたはその他のタスク要求をinitプロセス108に転送し、initプロセス108は、取り消し要求の場合はタスクを止め、コンピューティングリソースを回収するなど、適切な対応を取る。
図5は、本発明の実施形態による、装置によって(たとえば、装置のプロセッサによって)実行され得る、タスクを実行するためにinitプロセス108によって使用される可能性がある方法500の例示的な実施形態の流れ図を示す。方法は、上述のinitプロセス108などのinitプロセスがモバイルコンピューティングデバイス100内のセキュアなコンテナ106内で実行されるクラスタノードプロセスからタスク要求を受信する(502)ときに開始する。initプロセスは、タスク要求に含まれるタスクの説明に基づいてタスクの実行のためのセキュアなコンテナを生成し(504)、タスクの実行のためのセキュアなコンテナに適切なリソースを割り振る。生成され、タスクを実行するために準備されたセキュアなコンテナは、本明細書においてはタスクコンテナと呼ばれる。また、タスクコンテナのためのリソースの割り振りは、タスクの実行がモバイルコンピューティングデバイス上で実行されるいかなるモバイルデバイスプロセスの実行も妨げないようにするように構成されたヒューリスティックまたは予め決められたアルゴリズムに基づく可能性がある。
initプロセス108は、タスク環境をダウンロードし(506)、そうでなければ、タスクの実行のためのタスクコンテナを準備し、タスクコンテナ内でタスクを実行する(508)。タスクの実行(508)中に、initプロセス108は、タスクの適切な完了を保証し、タスクの実行がモバイルコンピューティングデバイス100のユーザエクスペリエンスを妨げないことを保証するようにタスクコンテナのライフサイクルを管理し、タスクの実行を管理する。タスクの実行が完了するとき、またはタスクの実行中に周期的に、initプロセス108は、実行されるタスクからタスクの結果を受信する(510)。これらのタスクの結果は、クラスタノードプロセスに送信され(512)、クラスタノードプロセスにおいて、これらのタスクの結果は、クラウドサービスに転送され得る。タスクが完了すると、initプロセスは、タスクコンテナを破棄し(514)、モバイルコンピューティングデバイス上で実行されるその他のコンテナまたはプロセスによる使用のためにすべてのコンピューティングリソースを回収する。
クラウドサービスインフラストラクチャは、本明細書において説明された方法および装置と一緒に、様々な有用なサービスを提供するために有利に使用され得る。たとえば、クラウドサービスインフラストラクチャを提供するための装置および方法は、モバイルコンピューティングデバイスとクラウドサービスインフラストラクチャとの間のデータ同期、モバイルコンピューティングデバイスのデータバックアップ、ソフトウェアのインストール、モバイルコンピューティングデバイスのための更新、ならびに電話の特徴を一時停止することおよび再開することなどのモバイルデバイスの状態を制御することなどのモバイルコンピューティングデバイスのためのサービスを提供するために使用され得る。また、クラウドサービスインフラストラクチャは、共同コンピューティング(collaborative computing)または大規模なコンピュータシステムの形成のために有利に使用され得る。
したがって、本発明の例示的な実施形態に適用された本発明の基本的な新規性のある特徴が示され、説明され、指摘されたが、示されたデバイスおよび方法ならびにそれらの動作の形態および詳細の様々な省略、置き換え、および変更が本発明の精神および範囲を逸脱することなく当業者によってなされ得ることが、理解されるであろう。さらに、同じ結果を達成するために実質的に同じ方法で実質的に同じ機能を実行するそれらの要素のすべての組合せは本発明の範囲内にあることが、はっきりと意図される。さらに、通常の設計上の選択の問題として、本発明の任意の開示された形態または実施形態に関連して示されたおよび/または説明された構造および/または要素が任意のその他の開示されたまたは説明されたまたは示唆された形態または実施形態に組み込まれる可能性があることを認識されたい。したがって、本明細書に添付された請求項の範囲によって示されるようにだけ限定されることが意図される。
100 モバイルコンピューティングデバイス
100-1 モバイルコンピューティングデバイス
100-2 モバイルコンピューティングデバイス
100-3 モバイルコンピューティングデバイス
102 セキュアなコンテナ
104 セキュアなコンテナ
106 セキュアなコンテナ
106-1 クラスタコンテナ
106-2 クラスタコンテナ
106-3 クラスタコンテナ
108 initプロセス
108-1 initプロセス
108-2 initプロセス
108-3 initプロセス
110 オペレーティングシステム(OS)のカーネル
200 クラウドサービスインフラストラクチャ
202 クラウドサービス
204 通信リンク
206 通信リンク
208 通信リンク
300 モバイルコンピューティングデバイス
302 プロセッサ
304 コンピュータメモリ
306 無線周波数(RF)ユニット
308 ユーザインターフェース(UI)
310 ディスプレイ
312 デジタルデータ
400 方法
500 方法

Claims (15)

  1. プロセッサ(302)を含み、前記プロセッサ(302)が、
    initプロセス(108)を実行することであって、前記initプロセス(108)がコンテナマネージャを含む、実行することと、
    前記コンテナマネージャを使用して複数のセキュアなコンテナを生成すること(404)と、
    前記複数のセキュアなコンテナのうちの第1のセキュアなコンテナにおいて第1のモバイルデバイスプロセスを実行すること(406)と、
    前記複数のセキュアなコンテナのうちの第2のセキュアなコンテナにおいてクラスタノードプロセス(106)を実行すること(408)であって、前記クラスタノードプロセス(106)が、クラウドサービスインフラストラクチャのノードとして動作するように構成される、実行すること(408)とを行うように構成されるモバイルコンピューティング装置(100)。
  2. 前記プロセッサ(302)に結合されたワイヤレス通信インターフェースをさらに含み、前記クラスタノードプロセス(106)を実行している間に、前記プロセッサ(302)が、
    前記ワイヤレス通信インターフェースからタスク要求を受信し(410)、
    前記initプロセス(108)に前記タスク要求を送信し(412)、
    前記initプロセス(108)からタスクの結果を受信し、
    前記ワイヤレス通信インターフェースを介して前記タスクの結果を送信する(418)ように構成される請求項1に記載のモバイルコンピューティング装置(100)。
  3. 前記initプロセス(108)を実行している間に、前記プロセッサ(302)が、
    タスク要求に対応するタスクコンテナを生成し(504)、
    前記タスク要求に対応するタスク環境をダウンロードし(506)、
    前記タスクコンテナ内でタスクを実行し(508)、
    前記第2のセキュアなコンテナにタスクの結果を送信する(512)ように構成される請求項1または2に記載のモバイルコンピューティング装置(100)。
  4. 前記プロセッサ(302)に結合されたワイヤレス通信インターフェースをさらに含み、前記プロセッサ(302)が、前記クラスタノードプロセスを実行している間に、前記ワイヤレス通信インターフェースからタスクのライフサイクルコマンドを受信し、受信されたタスクのライフサイクルコマンドを前記initプロセス(108)に送信し、
    前記initプロセス(108)を実行している間に、前記タスクのライフサイクルコマンドに基づいて前記タスクコンテナの状態を修正するように構成され、
    前記タスクのライフサイクルコマンドが、開始コマンド、停止コマンド、一時停止コマンド、再開コマンド、および取り消しコマンドのうちの1つである請求項3に記載のモバイルコンピューティング装置(100)。
  5. 前記initプロセス(108)が、仮想的なブリッジを含み、前記プロセッサ(302)が、
    前記複数のセキュアなコンテナの中の前記セキュアなコンテナの各々を前記仮想的なブリッジと通信可能なように結合し、
    予め決められたフィルタ基準に基づいて前記複数のセキュアなコンテナの中のセキュアなコンテナの対の間の通信を制御するように構成される請求項1から4のいずれかに記載のモバイルコンピューティング装置(100)。
  6. 前記プロセッサ(302)が、前記複数のセキュアなコンテナの中のセキュアなコンテナと前記initプロセス(108)との間の通信を許し、前記複数のセキュアなコンテナの中のセキュアなコンテナの間の直接通信を防止するように構成される請求項5に記載のモバイルコンピューティング装置(100)。
  7. 前記プロセッサが、前記initプロセス(108)を実行している間に、ヒューリスティックに基づいて前記複数のセキュアなコンテナの中のそれぞれのセキュアなコンテナにリソースを割り振る請求項1から6のいずれかに記載のモバイルコンピューティング装置(100)。
  8. 前記プロセッサ(302)が、前記複数のセキュアなコンテナの中の第3のセキュアなコンテナにおいて第2のモバイルデバイスプロセスを実行するように構成される請求項1から7のいずれかに記載のモバイルコンピューティング装置(100)。
  9. 前記プロセッサ(302)が、前記第2のモバイルデバイスプロセス上で施行されるよりも制限の緩いセキュリティポリシーを前記第1のモバイルデバイスプロセス上で施行するように構成される請求項8に記載のモバイルコンピューティング装置(100)。
  10. 前記プロセッサ(302)が、構成ファイルに基づいてセキュアなコンテナを生成するように構成され、前記構成ファイルが、
    前記initプロセス(108)によってのみアクセス可能であり、
    前記コンテナの起動ステータスを指定し、
    前記コンテナのためのリソースの割当量を指定する請求項1から9のいずれかに記載のモバイルコンピューティング装置(100)。
  11. 前記プロセッサ(302)が、
    前記第1のモバイルデバイスプロセスおよび第2のモバイルデバイスプロセスのうちの1つをアクティブ化し、
    現在アクティブなモバイルデバイスプロセスに、前記モバイルコンピューティング装置のすべてのリソースへの優先アクセスを提供するように構成される請求項1から10のいずれかに記載のモバイルコンピューティング装置(100)。
  12. ユーザインターフェース(308)をさらに含み、前記プロセッサ(302)が、前記クラスタノードプロセス(106)が前記ユーザインターフェース(308)にアクセスすることを防止するように構成される請求項1から11のいずれかに記載のモバイルコンピューティング装置(100)。
  13. 前記複数のセキュアなコンテナの中の前記セキュアなコンテナの各々が、異なるオペレーティングシステムを含む請求項1から12のいずれかに記載のモバイルコンピューティング装置(100)。
  14. モバイルコンピューティングデバイス(300)のための方法(400)であって、
    initプロセス(108)を実行するステップ(402)であって、前記initプロセス(108)がコンテナマネージャを含む、ステップ(402)と、
    前記コンテナマネージャを使用して複数のセキュアなコンテナを生成するステップ(404)と、
    前記複数のセキュアなコンテナのうちの第1のセキュアなコンテナにおいて第1のモバイルデバイスプロセスを実行するステップ(406)と、
    前記複数のセキュアなコンテナのうちの第2のセキュアなコンテナにおいてクラスタノードプロセスを実行するステップ(408)とを含み、
    前記クラスタノードプロセス(106)が、クラウドサービスインフラストラクチャのノードとして動作するように構成される、方法。
  15. プロセッサ(302)によって実行されるときに前記プロセッサ(302)に請求項14に記載の方法を実行させる非一時的コンピュータプログラム命令を含むコンピュータプログラム。
JP2017544813A 2015-04-07 2015-10-29 モバイルデバイスに基づくクラスタコンピューティングインフラストラクチャのための方法および装置 Active JP6598391B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15162565.4A EP3079059A1 (en) 2015-04-07 2015-04-07 Method and apparatus for a mobile device based cluster computing infrastructure
EP15162565.4 2015-04-07
PCT/CN2015/093237 WO2016161799A1 (en) 2015-04-07 2015-10-29 Method and apparatus for mobile device based cluster computing infrastructure

Publications (2)

Publication Number Publication Date
JP2018501590A true JP2018501590A (ja) 2018-01-18
JP6598391B2 JP6598391B2 (ja) 2019-10-30

Family

ID=52874960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017544813A Active JP6598391B2 (ja) 2015-04-07 2015-10-29 モバイルデバイスに基づくクラスタコンピューティングインフラストラクチャのための方法および装置

Country Status (7)

Country Link
US (1) US9910720B2 (ja)
EP (2) EP3561672B1 (ja)
JP (1) JP6598391B2 (ja)
KR (2) KR102095441B1 (ja)
CN (1) CN106471791B (ja)
TW (1) TWI588677B (ja)
WO (1) WO2016161799A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133424A (ja) * 2018-01-31 2019-08-08 沖電気工業株式会社 通信システム、通信方法、管理装置、管理プログラム、管理方法、情報処理装置、情報処理プログラム、及び情報処理方法
WO2020031675A1 (ja) * 2018-08-08 2020-02-13 株式会社 Preferred Networks スケジューリング装置、スケジューリングシステム、スケジューリング方法、プログラム及び非一時的コンピュータ可読媒体
US11392694B2 (en) 2018-10-04 2022-07-19 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033693B2 (en) 2013-10-01 2018-07-24 Nicira, Inc. Distributed identity-based firewalls
US11350254B1 (en) * 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10324746B2 (en) 2015-11-03 2019-06-18 Nicira, Inc. Extended context delivery for context-based authorization
US10310893B2 (en) * 2016-04-05 2019-06-04 Microsoft Technology Licensing, Llc Managing container pause and resume
US10523581B2 (en) * 2016-10-31 2019-12-31 Microsoft Technology Licensing Llc Flighting of node controller in pilot mode in resource management system
US11032246B2 (en) 2016-12-22 2021-06-08 Nicira, Inc. Context based firewall services for data message flows for multiple concurrent users on one machine
JP6937372B2 (ja) * 2016-12-22 2021-09-22 ニシラ, インコーポレイテッド ホスト上のコンテキスト属性の収集と処理
US10802858B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Collecting and processing contextual attributes on a host
CN108446159A (zh) * 2017-02-16 2018-08-24 中标软件有限公司 基于Docker容器的移动端双系统实现系统及方法
CN109922106B (zh) * 2017-12-13 2021-09-17 中标软件有限公司 基于Docker容器实现的云端手机系统
CN108089925B (zh) * 2017-12-29 2021-12-31 北京元心科技有限公司 管控进程占用资源的方法及装置
CN108345497A (zh) * 2018-01-17 2018-07-31 千寻位置网络有限公司 Gnss离线定位模拟的执行方法及系统、定位装置
US10476745B1 (en) * 2018-05-31 2019-11-12 Illumio, Inc. Infrastructure-agnostic network-level visibility and policy enforcement for containers
KR102147310B1 (ko) 2018-09-05 2020-10-14 주식회사 나눔기술 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템
CN109375873B (zh) * 2018-09-27 2022-02-18 郑州云海信息技术有限公司 一种分布式存储集群中数据处理守护进程的初始化方法
CN109508225A (zh) * 2018-11-15 2019-03-22 珠海市知安全科技有限公司 一种windows操作系统下的应用容器系统
KR20200109819A (ko) * 2019-03-14 2020-09-23 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11144418B2 (en) 2019-09-23 2021-10-12 International Business Machines Corporation Mutation event detection for integrity monitoring
CN111026499B (zh) * 2019-11-13 2021-09-17 广州文远知行科技有限公司 容器处理方法、装置、计算机设备和存储介质
US11539718B2 (en) 2020-01-10 2022-12-27 Vmware, Inc. Efficiently performing intrusion detection
CN111796909B (zh) * 2020-06-24 2024-04-02 浙江大学 一种轻量级移动应用虚拟化系统
US11108728B1 (en) 2020-07-24 2021-08-31 Vmware, Inc. Fast distribution of port identifiers for rule processing
CN113612643B (zh) * 2021-08-03 2023-06-06 北京百度网讯科技有限公司 云手机的网络配置方法、装置、设备以及存储介质
US11914686B2 (en) 2021-10-15 2024-02-27 Pure Storage, Inc. Storage node security statement management in a distributed storage cluster
US20230142107A1 (en) * 2021-11-05 2023-05-11 Dragos, Inc. Data pipeline management in operational technology hardware and networks
US20230155984A1 (en) * 2021-11-18 2023-05-18 International Business Machines Corporation Trusted execution environment for service mesh
CN113934464A (zh) * 2021-12-14 2022-01-14 北京鲸鲮信息系统技术有限公司 Linux系统中启动安卓应用的方法、装置和电子设备
CN114679391A (zh) * 2022-02-23 2022-06-28 网宿科技股份有限公司 采集docker容器网络流量的方法、电子设备及存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098447A1 (en) * 2002-11-14 2004-05-20 Verbeke Jerome M. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
JP2004287803A (ja) * 2003-03-20 2004-10-14 Fujitsu Ltd 分散型情報処理システム
US20060070067A1 (en) * 2004-06-03 2006-03-30 Dell Products L.P. Method of using scavenger grids in a network of virtualized computers
JP2008503011A (ja) * 2004-06-08 2008-01-31 ダートデバイセズ コーポレーション ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法
JP2009508184A (ja) * 2005-07-27 2009-02-26 ミケイル ヴァシリエヴィチ ベリャーエフ グラフィカルユーザインターフェイスの提示のためのクライアント−サーバ情報システム及び方法
JP2010231759A (ja) * 2009-03-26 2010-10-14 Korea Electronics Telecommun モバイルクラウドプラットホームを具備したモバイル端末装置
JP2013012865A (ja) * 2011-06-29 2013-01-17 Fujitsu Ltd 情報処理装置、情報処理プログラムおよび管理方法
US20140007254A1 (en) * 2012-06-27 2014-01-02 Research In Motion Limited Selection of sandbox for initiating application
WO2014018145A1 (en) * 2012-07-23 2014-01-30 Enterproid Hk Ltd Usage metering for custom application containers
US20140059226A1 (en) * 2012-08-21 2014-02-27 Rackspace Us, Inc. Multi-Level Cloud Computing System
US20140068611A1 (en) * 2012-09-06 2014-03-06 Michael P. McGrath Mechanism for Automatic Scaling of Application Resources in a Multi-Tenant Platform-as-a-Service (PaaS) Environment in a Cloud Computing System
JP2014232150A (ja) * 2013-05-28 2014-12-11 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2015014570A1 (en) * 2013-07-31 2015-02-05 International Business Machines Corporation Running software application with dynamic action delegation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4378967B2 (ja) 2003-02-10 2009-12-09 日本電気株式会社 移動通信システム、無線ネットワーク制御装置及びそれに用いるリソース割り当て制御方法
US20080214215A1 (en) * 2007-03-02 2008-09-04 Aaltonen Janne L Systems and methods for facilitating information control of a device by proxy
TWM343338U (en) * 2007-05-25 2008-10-21 Interdigital Tech Corp Protocol architecture for access mobility in wireless communications
US20100005410A1 (en) 2008-07-03 2010-01-07 Pang Xin Mobile device application framework
US8909781B2 (en) * 2010-05-24 2014-12-09 Pi-Coral, Inc. Virtual access to network services
US8776055B2 (en) * 2011-05-18 2014-07-08 Vmware, Inc. Combining profiles based on priorities
US9143529B2 (en) * 2011-10-11 2015-09-22 Citrix Systems, Inc. Modifying pre-existing mobile applications to implement enterprise security policies
US20140109176A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
CN103685563A (zh) * 2013-12-31 2014-03-26 湖南师范大学 一种基于移动通信网络的云计算系统及其资源管理方法
CN104010045B (zh) * 2014-06-12 2018-01-19 国家计算机网络与信息安全管理中心 基于云平台的移动节点执行任务的方法
CN104573507A (zh) * 2015-02-05 2015-04-29 浪潮电子信息产业股份有限公司 一种安全容器及其设计方法
US20170131987A1 (en) * 2015-11-11 2017-05-11 Relay2, Inc. Mobile Application Service Engine (MASE)

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098447A1 (en) * 2002-11-14 2004-05-20 Verbeke Jerome M. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
JP2004287803A (ja) * 2003-03-20 2004-10-14 Fujitsu Ltd 分散型情報処理システム
US20060070067A1 (en) * 2004-06-03 2006-03-30 Dell Products L.P. Method of using scavenger grids in a network of virtualized computers
JP2008503011A (ja) * 2004-06-08 2008-01-31 ダートデバイセズ コーポレーション ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法
JP2009508184A (ja) * 2005-07-27 2009-02-26 ミケイル ヴァシリエヴィチ ベリャーエフ グラフィカルユーザインターフェイスの提示のためのクライアント−サーバ情報システム及び方法
JP2010231759A (ja) * 2009-03-26 2010-10-14 Korea Electronics Telecommun モバイルクラウドプラットホームを具備したモバイル端末装置
JP2013012865A (ja) * 2011-06-29 2013-01-17 Fujitsu Ltd 情報処理装置、情報処理プログラムおよび管理方法
US20140007254A1 (en) * 2012-06-27 2014-01-02 Research In Motion Limited Selection of sandbox for initiating application
WO2014018145A1 (en) * 2012-07-23 2014-01-30 Enterproid Hk Ltd Usage metering for custom application containers
US20140059226A1 (en) * 2012-08-21 2014-02-27 Rackspace Us, Inc. Multi-Level Cloud Computing System
US20140068611A1 (en) * 2012-09-06 2014-03-06 Michael P. McGrath Mechanism for Automatic Scaling of Application Resources in a Multi-Tenant Platform-as-a-Service (PaaS) Environment in a Cloud Computing System
JP2014232150A (ja) * 2013-05-28 2014-12-11 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2015014570A1 (en) * 2013-07-31 2015-02-05 International Business Machines Corporation Running software application with dynamic action delegation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANTONIO CORONATO, GUISEPPE DE PIETRO, LUIGI GALLO: "Dynamic Distribution and Execution of Tasks in Pervasive Grids", PROCEEDINGS OF 15TH EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED AND NETWORK-BASED PR, JPN6018024073, 7 February 2007 (2007-02-07), pages 5, ISSN: 0004001709 *
中井悦司: "Dockerが目指す世界とその基礎技術", SOFTWARE DESIGN, vol. 発刊第290号, JPN6018024077, 18 December 2014 (2014-12-18), JP, pages 18 - 26, ISSN: 0004001708 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133424A (ja) * 2018-01-31 2019-08-08 沖電気工業株式会社 通信システム、通信方法、管理装置、管理プログラム、管理方法、情報処理装置、情報処理プログラム、及び情報処理方法
JP7151087B2 (ja) 2018-01-31 2022-10-12 沖電気工業株式会社 通信システム、通信方法、管理装置、管理プログラム、管理方法、情報処理装置、情報処理プログラム、及び情報処理方法
WO2020031675A1 (ja) * 2018-08-08 2020-02-13 株式会社 Preferred Networks スケジューリング装置、スケジューリングシステム、スケジューリング方法、プログラム及び非一時的コンピュータ可読媒体
US11392694B2 (en) 2018-10-04 2022-07-19 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof

Also Published As

Publication number Publication date
EP3079059A1 (en) 2016-10-12
TW201702923A (zh) 2017-01-16
EP3561672B1 (en) 2022-06-01
US20170293762A1 (en) 2017-10-12
EP3561672A1 (en) 2019-10-30
CN106471791B (zh) 2019-12-24
KR20170067829A (ko) 2017-06-16
KR102095441B1 (ko) 2020-03-31
TWI588677B (zh) 2017-06-21
KR20190014580A (ko) 2019-02-12
CN106471791A (zh) 2017-03-01
WO2016161799A1 (en) 2016-10-13
JP6598391B2 (ja) 2019-10-30
KR101945422B1 (ko) 2019-02-07
US9910720B2 (en) 2018-03-06

Similar Documents

Publication Publication Date Title
JP6598391B2 (ja) モバイルデバイスに基づくクラスタコンピューティングインフラストラクチャのための方法および装置
US20190318240A1 (en) Training machine learning models in distributed computing systems
US9503475B2 (en) Self-adaptive and proactive virtual machine images adjustment to environmental security risks in a cloud environment
US11093271B2 (en) Enforcing compliance rules using host management components
CN107003889B (zh) 用于提供全球平台兼容可信执行环境的系统和方法
JP5718525B2 (ja) マルチモーダルコンピューティングデバイス
US10025612B2 (en) Enforcing compliance rules against hypervisor and host device using guest management components
EP3588296A1 (en) Dynamically scaled hyperconverged system
CN106776067B (zh) 多容器系统中系统资源的管理方法及管理装置
JP2010514028A (ja) 単一データ処理を共有するために複数の実行環境を有効化するシステム
US20140067864A1 (en) File access for applications deployed in a cloud environment
US20220255941A1 (en) Method and System for Secure Container Application Framework
US9591489B2 (en) Controlling application access to applications and resources via graphical representation and manipulation
CN109526249A (zh) 用于管理通信设备的通信接口的设备和方法
CN116848528A (zh) 用于自动配置用于容器应用的最小云服务访问权限的技术
JP2021099879A (ja) 開発マシン操作タスクの処理方法、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム
US20210334126A1 (en) On-demand code execution with limited memory footprint
US20230344716A1 (en) Methods and apparatus to autonomously implement policies at the edge

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190621

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190930

R150 Certificate of patent or registration of utility model

Ref document number: 6598391

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250