[go: up one dir, main page]

JP2013061700A - 情報処理装置、情報処理方法、記録媒体および情報処理システム - Google Patents

情報処理装置、情報処理方法、記録媒体および情報処理システム Download PDF

Info

Publication number
JP2013061700A
JP2013061700A JP2011197974A JP2011197974A JP2013061700A JP 2013061700 A JP2013061700 A JP 2013061700A JP 2011197974 A JP2011197974 A JP 2011197974A JP 2011197974 A JP2011197974 A JP 2011197974A JP 2013061700 A JP2013061700 A JP 2013061700A
Authority
JP
Japan
Prior art keywords
information processing
scheduler
task
processing apparatus
node
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.)
Withdrawn
Application number
JP2011197974A
Other languages
English (en)
Inventor
Shuhei Sonoda
修平 園田
Masayuki Takada
昌幸 高田
Eiji Miyakawa
英治 宮川
Hiroshi Nakayama
浩 中山
Tsutomu Kawachi
勉 河内
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2011197974A priority Critical patent/JP2013061700A/ja
Priority to EP12179789A priority patent/EP2568380A3/en
Priority to US13/603,762 priority patent/US8973005B2/en
Priority to CN2012103363722A priority patent/CN103124228A/zh
Publication of JP2013061700A publication Critical patent/JP2013061700A/ja
Priority to US14/602,757 priority patent/US9626217B2/en
Withdrawn legal-status Critical Current

Links

Images

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • 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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

【課題】ネットワークで接続されたデバイスを有効に活用して、ユーザに提供されるサービスの質を向上させる。
【解決手段】ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、自装置のスケジューラとしての優先度の上記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、上記タスクを上記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、上記1または複数の第2の情報処理装置に上記割り振られたタスクに関する処理の実行要求を送信する送信部とを含む情報処理装置が提供される。
【選択図】図5

Description

本開示は、情報処理装置、情報処理方法、記録媒体および情報処理システムに関する。
従来、マイクロコントローラを有する家電機器などのデバイスをコンピュータにネットワーク経由で接続し、連携して動作させる技術が知られている。例えば、下記の特許文献1には、コンピュータが、一連の動作のための分割されたプログラムを各デバイスの機能に応じて割り当て、さらにデバイス間の通信手順を決定する技術が記載されている。
特開2007−199869号公報
近年、デバイスの高機能化が進んでいる。例えば、高い画像処理能力を有するテレビやゲーム機が普及している。また、スマートフォンやタブレット型PC(Personal Computer)の普及によって、ユーザが複数の情報処理端末を所有することも一般的になってきている。こうしたデバイスは、いずれも高い情報処理能力をもっているが、その分ユーザに提供する機能も高度化しており、各デバイス単独では必ずしも十分なサービスの質を確保できるとは限らない。
そこで、本開示では、ネットワークで接続されたデバイスを有効に活用して、ユーザに提供されるサービスの質を向上させることが可能な、新規かつ改良された情報処理装置、情報処理システム、情報処理方法および記録媒体を提案する。
本開示の一実施形態によれば、ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、自装置のスケジューラとしての優先度の上記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、上記タスクを上記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、上記1または複数の第2の情報処理装置に上記割り振られたタスクに関する処理の実行要求を送信する送信部とを含む情報処理装置が提供される。
また、本開示の別の実施形態によれば、ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信することと、自装置のスケジューラとしての優先度の上記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、上記タスクを上記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振ることと、上記1または複数の第2の情報処理装置に上記割り振られたタスクに関する処理の実行要求を送信することとを含む情報処理方法が提供される。
また、本開示にさらに別の実施形態によれば、ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する機能と、自装置のスケジューラとしての優先度の上記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、上記タスクを上記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振る機能と、上記1または複数の第2の情報処理装置に上記割り振られたタスクに関する処理の実行要求を送信する機能とをコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
また、本開示のさらに別の実施形態によれば、ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、上記タスクを上記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、上記1または複数の第2の情報処理装置に上記割り振られたタスクに関する処理の実行要求を送信する送信部とを有する上記ネットワーク上の複数の情報処理装置を含み、上記複数の情報処理装置のうち、スケジューラとしての優先度の順位が第1の所定の順位以上の情報処理装置は上記スケジューリング部の機能を有効にし、残りの情報処理装置は上記スケジューリング部の機能を無効にする情報処理システムが提供される。
本開示によれば、ネットワーク上のあるデバイス(クライアント)から依頼されたタスクの処理を、ネットワーク上の他のデバイス(ノード)に割り当てるにあたり、割り当ての処理をするスケジューラとして、スケジューラにより適した情報処理装置が用いられる。また、情報処理装置は、一時的にスケジューラとして用いられていなくても、潜在的にスケジューラとして機能することが可能であるため、例えばスケジューラとして機能していた情報処理装置がその機能を果たさなくなった場合にも、別の情報処理装置をスケジューラとして処理を続行することが可能である。従って、タスクの分散処理を効率よく安定して実行することができる。
以上説明したように本開示によれば、ネットワークで接続されたデバイスを有効に活用して、ユーザに提供されるサービスの質を向上させることができる。
本開示の一実施形態に係る情報処理システムの一例を示す図である。 本開示の一実施形態に係る情報処理システムの概略的な機能構成を示す図である。 本開示の一実施形態に係るローディングの処理シーケンスを示す図である。 本開示の一実施形態に係るタスク実行の処理シーケンスを示す図である。 本開示の一実施形態に係るスケジューラの変更手順を示す図である。 本開示の実施形態における機能の動的読み込みの例を示す図である。 本開示の実施形態におけるリソースの借用の例を示す図である。 本開示の実施形態における並行処理の例を示す図である。 本開示の実施形態におけるパイプライン処理の例を示す図である。 本開示の実施形態におけるマルチデバイスインストールの例を示す図である。 本開示の実施形態におけるインタラクティブアプリケーションの例を示す図である。 本開示の実施形態におけるオートスケーリングデプロイの例を示す図である。 本開示の実施形態におけるフェイルオーバーの例を示す図である。 本開示の実施形態におけるオートレプリケーションおよびキャッシュの例を示す図である。 本開示の実施形態における自動再デプロイの例を示す図である。 本開示の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.システム構成
2.タスク処理シーケンス
3.スケジューラの管理
4.その他
5.実現されうる機能の例
6.ハードウェア構成
7.補足
(1.システム構成)
図1は、本開示の一実施形態に係る情報処理システムの一例を示す図である。図1を参照すると、情報処理システム10では、複数の情報処理装置100が、ネットワーク200を介して互いに接続されている。図示された例において、情報処理装置100は、PC(Personal Computer)100a、サーバ100b、モバイル端末100c、およびテレビ100dとして例示されている。なお、以下に説明する本開示の実施形態は、情報処理装置100の種類および数に関わらず適用されうるものであり、図1に示される情報処理装置100はその一例にすぎない。ネットワーク200は、有線および無線を問わない各種のネットワークであり、例えばモバイル端末に接続するための基地局200aなどがその中に含まれてもよい。
ここで、複数の情報処理装置100は、所定の条件に基づく論理的なトポロジを構成している。図示された例において、情報処理装置100は、ユーザUが保持している装置という条件に基づく論理的なトポロジを構成している。なお、ユーザUが保持している装置とは、必ずしもユーザUが物理的に所有している装置を意味するものではなく、ユーザUが利用可能な装置という意味である。従って、例えば、テレビ100dはユーザUが家族と共用しているものでありえ、サーバ100bはユーザUが利用登録をしているサービスを提供するためのサーバでありうる。
図2は、本開示の一実施形態に係る情報処理システムの概略的な機能構成を示す図である。図2を参照すると、情報処理システム10には、機能として、クライアント120と、スケジューラ140と、ノード160とが含まれる。図1において例示された情報処理装置100は、これらの機能のうちの少なくとも1つを有する。つまり、情報処理システム10に含まれる情報処理装置100は、クライアント120であるか、スケジューラ140であるか、ノード160であるか、またはこれらのうちの2つ以上を兼ねる。
上記の各機能は、例えば、各情報処理装置100にインストールされたミドルウェアによって実現されうる。これは、ミドルウェア122,141,161として図示されている。このミドルウェアは、情報処理装置100のそれぞれにインストールされるものであってもよいし、また情報処理装置100のうちの1つにインストールされ、そこからネットワーク200を通じて他の情報処理装置100にロードされるものであってもよい。後述するように、それぞれの情報処理装置100がクライアント120、スケジューラ140、またはノード160の機能のうちのその機能を実現するかは、状況に応じて変化する。それゆえ、各情報処理装置100にインストールされるミドルウェアは、上記の各機能に共通のものであってもよい。
かかる情報処理システム10では、クライアント120が、ユーザからアプリケーションまたはタスクの実行要求を受け付ける。この実行要求に先立って、またはこの実行要求に応じて、クライアント120は、スケジューラ140にアプリケーションのローディングを要求し、さらに上記の実行要求に応じてタスクの実行を要求する。スケジューラ140は、上記の要求に応じてノード160にアプリケーションを構成するタスクをローディングさせ、さらにタスクを実行させる。
なお、クライアント120、スケジューラ140、およびノード160は、いずれも、情報処理システム10に複数存在しうる。クライアント120が複数存在する場合、スケジューラ140は、それぞれのクライアント120からのアプリケーションまたはタスクの実行要求を並列的に処理する。ノード160が複数存在する場合、スケジューラ140は、それぞれのノード160の能力などに応じてタスクを分散させる。スケジューラ140が複数存在する場合、それぞれのスケジューラ140は、協調して1つのスケジューラ140の機能を実現する。
以下、クライアント120、スケジューラ140、およびノード160のそれぞれの機能構成について、詳細に説明する。なお、それぞれの機能は、後述する情報処理装置100のハードウェア構成を用いて実現されうる。
(クライアント)
クライアント120は、アプリケーション121と、ミドルウェア122とを含む。ミドルウェア122は、タスク実行要求受付部123、端末検出部124、およびリクエスト送信部/レスポンス受信部125を含む。
実行要求受付部123は、ユーザによるタスクの実行要求を受け付ける。ここで実行が要求されるタスクは、クライアント120にインストールされているアプリケーション121であってもよいし、またそうではないタスクであってもよい。
リクエスト送信部/レスポンス受信部125は、スケジューラ140に、アプリケーションのローディング要求およびタスクの実行要求を送信する。ここで、タスクの実行要求は、タスク実行要求受付部123が受け付けるユーザの実行要求に応じて送信されるが、アプリケーションのローディング要求は、ユーザの実行要求に先立って送信されてもよい。送信先であるスケジューラ140は、端末検出部124によって予め検出され、その情報はリストとして保持されている。なお、後述するように、タスクの実行要求は、スケジューラ140ではなくノード160に送信されてもよい。
また、リクエスト送信部/レスポンス受信部125は、アプリケーションのローディング要求やタスクの実行要求に対するレスポンスを、スケジューラ140またはノード160から受信する。なお、後述するように、クライアント120がミドルウェア122を搭載しない構成によって同等の機能を実現することも可能である。つまり、クライアント120は、必ずしもミドルウェア122を搭載しなくてよい。
(スケジューラ)
スケジューラ140は、ミドルウェア141を含み、ミドルウェア141は、端末応答部142、リクエスト受信部/レスポンス送信部143、監視部144、習慣解析部145、ノード管理部146、アプリケーション解析部147、レスポンス解析部148、端末検出/応答部149、およびリクエスト送信部/レスポンス受信部150を含む。
端末応答部142は、クライアント120の端末検出部124によるスケジューラの検出に対して、スケジューラ140の存在を通知する。リクエスト受信部/レスポンス送信部143は、クライアント120からアプリケーションのローディング要求およびタスクの実行要求を受信し、これらの要求に対するレスポンスをクライアント120に送信する。
監視部144は、スケジューラ140として機能している情報処理装置100の情報を監視する。監視部144によって取得される情報は、例えば、スペック情報(CPU(Central Processing Unit)の処理能力、メモリの容量、最大回線速度、ストレージの容量、バッテリの容量など)、およびプレゼンス情報(CPUの使用率、メモリの残量、現在の回線速度、ストレージの残量、バッテリの残量など)である。後述するように、ノード160も同様の監視部164を有する。
習慣解析部145は、監視部144が取得する情報のうち、刻々変化するプレゼンス情報のログを解析して、スケジューラ140として機能している情報処理装置100の習慣的な使用状態(電源は頻繁に切られるか、継続的にスタンバイ状態になっているか、継続的にオンラインになっているか、どの時間帯のCPU使用率が高いか、など)の情報を取得する。後述するように、ノード160も同様の習慣解析部165を有する。
ノード管理部146は、ノード160において取得されたスペック情報やプレゼンス情報(監視部164が取得)、習慣的な使用状態の情報(習慣解析部165が取得)、保有するリソースの情報(後述するリソース管理部166が取得)、ノード160にロードされたタスクの情報、タスクの使用状態の情報(後述するタスク監視部168が取得)などの情報を取得し、保持する。これらの情報は、例えば、端末検出/応答部149がノード160を検出するときに取得され、またリクエスト送信部/レスポンス受信部150がノード160からのレスポンスおよびノード160からのノード状態変化の通知を受信したときに更新される。ノード管理部146は、例えば、タスクの使用状態の情報に基づいて、ノード160のタスク読込/実行部169にロードされているタスクのアンロードを指示してもよい。
アプリケーション解析部147は、クライアント120からアプリケーションのローディング要求が受信された場合に、当該アプリケーションに関する情報(後述するアプリケーションマニフェスト)、およびノード管理部146が保持している情報などに基づいて、アプリケーションを複数のタスクに分解し、各タスクを適切なノード160に割り当ててローディングさせる。ここで、アプリケーション解析部147は、各タスクが必要とするプログラムや、所定のサービス指標を満たすために必要とされる実行環境の情報に基づいて、各タスクを割り当てるノード160を決定する。ここで、所定のサービス指標とは、例えば高効率、クライアントへの高レスポンス、低コスト、低消費電力、高可用性、高品質などのKPI(Key Performance Indicator)であり、アプリケーションごとに予め設定されたもの、またはユーザが設定したものでありうる。ここで、アプリケーション解析部147は、各ノード160へのタスクの割り当てを、例えばノード160のプレゼンス情報に基づく現在の処理能力や、習慣的な使用状態の情報に基づく将来の処理能力の予測値などに応じて、動的に変更する。
レスポンス解析部148は、タスクのローディング要求およびタスクの実行要求に対する処理結果のレスポンスがノード160から受信された場合に、レスポンスを解析して適切な処理を実行する。例えば、ノード160から、タスクのローディングまたはタスクの実行においてエラーが発生したことを示すレスポンスが受信された場合、レスポンス解析部148は、ノードの再選択、およびローディング要求または実行要求の再送をアプリケーション解析部147に依頼する。また、レスポンス解析部148は、所定の時間以内にタスクのローディングまたはタスクの実行のレスポンスが取得されない場合にも、ノード160に障害が発生したか、他の処理を実行するために処理能力が低下していると判断し、ノードの再選択、およびローディング要求または実行要求の再送をアプリケーション解析部147に依頼してもよい。
端末検出/応答部149は、上記の各部の処理に先立って、情報処理システム10に含まれる他のスケジューラ140およびノード160を検出し、その情報をリストとして保持する。また、端末検出/応答部149は、他のスケジューラ140の端末検出/応答部149およびノード160の端末検出/応答部162によるスケジューラの検出に対して、スケジューラ140の存在を通知する。
リクエスト送信部/レスポンス受信部150は、アプリケーション解析部147の解析結果に従って、ノード160にタスクのローディング要求およびタスクの実行要求を送信する。また、リクエスト送信部/レスポンス受信部150は、これらの要求に対するレスポンスをノード160から受信する。なお、上記の例では、クライアント120がミドルウェア122を搭載する例を記載したが、ミドルウェアを使わない構成も可能である。例えば、クライアント120に汎用のブラウザを搭載し、同等の機能を実現させることが可能である。具体的には、クライアント120のブラウザが、スケジューラ140のIPアドレス(ホスト名でもよい)をURLとして指定し、実行したいタスク内容をパラメータとして、スケジューラ140に渡す構成も可能である。その場合、リクエスト受信部/レスポンス送信部143にHTTPサーバの機能をもたせることとなる。
(ノード)
ノード160は、ミドルウェア161と、内部リソース171とを含む。ミドルウェア161は、端末検出/応答部162、リクエスト受信部/レスポンス送信部163、監視部164、習慣解析部165、リソース管理部166、タスク解析部167、タスク監視部168、およびタスク読込/実行部169を含む。
端末検出/応答部162は、以下の各部の処理に先立って、情報処理システム10に含まれるスケジューラ140を検出し、その情報をリストとして保持する。また、端末検出/応答部162は、スケジューラ140の端末検出/応答部149の検出に対して、ノード160の存在を通知する。リクエスト受信部/レスポンス送信部163は、スケジューラ140またはクライアント120からタスクのローディング要求およびタスクの実行要求を受信し、これらの要求に対するレスポンスをスケジューラ140またはクライアント120に送信する。
監視部164および習慣解析部165は、上述したようにスケジューラ140の監視部144および習慣解析部145と同様の機能である。監視部164および習慣解析部165は、取得した情報をリクエスト受信部/レスポンス送信部163を介してスケジューラ140に提供する。ここで、監視部164は、例えば、プレゼンス情報(CPUの使用率、メモリの残量、現在の回線速度、ストレージの残量、バッテリの残量など)の値に予め閾値を設定し、それぞれの値が閾値を上回った、または下回った場合に、リクエスト受信部/レスポンス送信部163を介してスケジューラ140にノード状態変化の通知を送信してもよい。
リソース管理部166は、ノード160が保有している内部リソース171の情報を取得し、保持する。内部リソース171は、例えば、ノード160として機能している情報処理装置100のハードウェア、ソフトウェア、およびデータなどの情報である。リソース管理部166は、取得した情報をリクエスト受信部/レスポンス送信部163を介してスケジューラ140に提供する。
タスク解析部167は、スケジューラ140からタスクのローディング要求が受信された場合に、当該タスクに関する情報(後述するタスクマニフェスト)などに基づいて、タスクを実行するのに必要なプログラムをタスク読込/実行部169にロードする。ここで、プログラムは、スケジューラ140、またはその他の情報処理装置100からロードされる。
タスク監視部168は、ノード160にロードされたタスクの使用状況の情報(例えば、それぞれのタスクのCPUの使用率、メモリの使用量、タスクの実行回数または単位時間あたりのアクセス数)を監視する。タスク監視部168は、取得した情報をリクエスト受信部/レスポンス送信部163を介してスケジューラ140に提供する。タスク監視部168は、例えば、タスクの使用頻度に予め閾値を設定し、使用頻度が閾値を上回る、または下回るタスクについての情報をスケジューラ140に提供してもよい。また、タスク監視部168は、この情報に基づいて、タスク読込/実行部169にロードされているタスクのアンロードを指示してもよい。
タスク読込/実行部169は、必要に応じて内部リソースインターフェース170を介して内部リソース171を利用し、タスクをロードおよび実行する。上述のように、タスク読込/実行部169は、タスク解析部167の解析結果に従って、タスクを実行するのに必要なプログラムをロードする。また、タスク読込/実行部169は、タスクA〜タスクDとして図示されているように、ロードしたタスクを並列に保持している。これらのタスクは、例えば使用頻度が低いような場合には、タスク監視部168、またはタスク監視部168からの情報を取得するスケジューラ140のノード管理部146からの指示に従ってアンロードされる。アンロードされたタスクは、ストレージに格納されて再度必要になった場合にはそこから読み出されてもよい。また、アンロードされたタスクは、ストレージの容量が不足するような場合には破棄され、再度必要になった場合には外部からロードされてもよい。
(2.タスク処理シーケンス)
(ローディング)
図3は、本開示の一実施形態に係るローディングの処理シーケンスを示す図である。図3には、クライアント120からアプリケーションのローディング要求が送信される場合の、クライアント120、スケジューラ140およびノード160の間の処理シーケンスが示されている。
ステップS101〜S105は、必ずしもクライアント120によるアプリケーションのローディング要求とは関係なく、スケジューラ140とノード160との間で実行される処理シーケンスである。上述のように、ノード160は、ノード160として機能している情報処理装置100の状態が変化した場合、ノード情報(スペック情報、プレゼンス情報、習慣的な使用状態の情報、保有するリソースの情報など)をアップデートする(ステップS101)。ノード160の監視部164は、このときのアップデート情報をスケジューラ140に送信する(ステップS103)。スケジューラ140では、ノード管理部146がこの情報を受信し、保持しているノード情報を更新する(ステップS105)。
ローディングの処理シーケンスでは、まず、クライアント120のリクエスト送信部/レスポンス受信部125が、アプリケーションのローディング要求をスケジューラ140に送信する(ステップS107)。アプリケーションのローディング要求は、少なくとも対象となるアプリケーションを一意に識別するためのアプリケーション識別子を含む。スケジューラ140では、リクエスト受信部/レスポンス送信部143がこの要求を受信する。
以下のステップS109〜S129は、後にローディングフローS150として参照されるシーケンスである。ここで、まず、スケジューラ140のアプリケーション解析部147は、上記のアプリケーション識別子によって識別される、ローディングの対象となるアプリケーションについて、アプリケーションマニフェストを取得する(ステップS109)。アプリケーションマニフェストは、当該アプリケーションの各タスクを実行するためのプログラム、および当該アプリケーションによって提供されるサービスが所定のサービス指標(例えば高効率、クライアントへの高レスポンス、低コスト、低消費電力、高可用性、高品質などのKPI)を満たすために必要とされる実行環境の情報を少なくとも含む情報である。アプリケーションマニフェストは、スケジューラ140の内外のデータベースから取得されてもよいし、またクライアント120において既知である場合にはクライアント120からスケジューラ140に送信されてもよい。
次に、アプリケーション解析部147は、アプリケーションマニフェストに基づいて、ローディングの対象となるアプリケーションを、タスクに分解する(ステップS111)。アプリケーションはタスクの集合であるため、1または複数のタスクに分解することが可能である。
さらに、アプリケーション解析部147は、アプリケーションマニフェストと、ノード管理部146が保持しているノード情報とに基づいて、アプリケーションを分解したタスクを割り当てるノード160を決定する(ステップS113)。ここで、アプリケーション解析部147は、各ノード160のスペック情報やプレゼンス情報、習慣的な使用状態の情報、保有するリソースの情報などに基づいて、アプリケーションによって提供されるサービスが所定のサービス指標を満たせるように、タスクを割り当てるノード160を決定する。
なお、ステップS111,S113でのアプリケーション解析部147の処理には、ユーザが設定したサービス指標(例えば高効率、クライアントへの高レスポンス、低コスト、低消費電力、高可用性、高品質など)が用いられてもよい。
また、1つのタスクは、1つのノード160に割り当てられてもよいし、複数のノード160に割り当てられてもよい。例えば、アプリケーションが、情報処理システム10に含まれる情報処理装置100のそれぞれに保持されているデータにアクセスして所定の処理を実行するようなものである場合、“保持しているデータに所定の処理を実行する”というタスクが複数の情報処理装置100のそれぞれに割り当てられる。
ここで、ノード160にタスクTが割り当てられた場合、ノード160は、このローディングの処理ではタスクTを実行するために必要なプログラムPをロードし、後のタスク実行の処理では、プログラムPを用いてタスクTを実行する。つまり、このローディングの処理の時点で、後にアプリケーションの各タスクを実行するノード160が決定され、それぞれのノード160に予めタスクを実行するためのプログラムがロードされる。そのため、タスクの実行のときには、予め決定されたノード160に各タスクが割り当てられ、予めロードされたプログラムによって円滑にタスクが実行される。
次に、アプリケーション解析部147は、ステップS113においてすべてのタスクを割り当てるノード160が決定したか否か、すなわちすべてのタスクを割り当て可能であるか否かを判定する(ステップS115)。ここで、すべてのタスクを割り当て可能であると判定されなかった場合、例えばタスクを割り当てるノード160が不足している場合、アプリケーション解析部147は、リクエスト受信部/レスポンス送信部143を介してクライアント120にその旨を示すレスポンスを送信する(ステップS117)。
ここで送信されるレスポンスは、例えば、単純にタスクの割り当てが不能であることを示すものであってもよいし、またユーザにタスク割り当てを可能にするための行動を促すものであってもよい。タスク割り当てを可能にするための行動は、例えば、オフラインになっているためにノード160として機能せず、タスクの割り当てがされない情報処理装置100を、オンラインにしてノード160として機能させることである。また、情報処理システム10に含まれる情報処理装置100だけではすべてのタスクを割り当てることが難しい場合には、共用サーバの利用登録や、新たな情報処理装置の借用、または情報処理装置100への新たな機能のインストールを促してもよい。
ステップS115において、すべてのタスクを割り当て可能であると判定された場合、リクエスト送信部/レスポンス受信部150が、タスクのローディング要求をノード160に送信する(ステップS119)。タスクのローディング要求は、少なくとも対象となるタスクを一意に識別するためのタスク識別子を含む。ノード160では、リクエスト受信部/レスポンス送信部163がこの要求を受信する。
次に、ノード160のタスク解析部167は、上記のタスク識別子によって識別される、ローディングの対象となるタスクについて、タスクマニフェストを取得する(ステップS121)。タスクマニフェストは、当該タスクに関する情報であり、タスクを実行するためのプログラムを少なくとも含む情報である。タスクマニフェストは、スケジューラ140、またはノード160の内外のデータベースから取得されてもよいし、またクライアント120において既知である場合にはクライアント120からノード160に送信されてもよい。
次に、タスク解析部167は、タスクマニフェストに基づいて、タスクを実行するためのプログラムをタスク読込/実行部169にロードする(ステップS123)。それから、リクエスト受信部/レスポンス送信部163が、ローディングの処理結果をレスポンスとしてスケジューラ140に送信する(ステップS125)。
スケジューラ140では、リクエスト送信部/レスポンス受信部150がローディングの処理結果を受信する。レスポンス解析部148は、タスクを割り当てた各ノード160からレスポンスとして受信した処理結果を集約し、確認する。具体的には、レスポンス解析部148は、いずれかのタスクのローディング処理結果でエラーが検出されたか否かを判定する(ステップS127)。ここで、エラーが検出されたと判定された場合、レスポンス解析部148は、エラーが検出されたタスクについて、アプリケーション解析部147にノード160の再決定を依頼し、このタスクについて、ステップS113以降の処理が再度実行される。
一方、ステップS127で、エラーが検出されたと判定されなかった場合、つまりすべてのタスクがいずれかのノード160にロードされた場合、ノード管理部146が、各ノード160にロードされたタスクの情報を保存する(ステップS129)。ノード管理部146は、これ以降、各ノード160にロードされたタスクの使用状態の情報(例えば、各ノードに何のタスクが保存されているかの情報、タスクの保存場所の情報、それぞれのタスクのCPUの使用率、メモリの使用量、タスクの実行回数または単位時間あたりのアクセス数)をタスク監視部168から取得し、この情報を管理する。次に、スケジューラ140で集約されたローディングの処理結果が、レスポンスとしてリクエスト受信部/レスポンス送信部143からクライアント120に送信される(ステップS131)。
以上で、ローディングの処理シーケンスが終了する。これによって、クライアント120がユーザから実行を要求されるアプリケーションまたはタスクを、ノード160の連携によって実行するために、各ノード160にタスクが割り当てられ、実行に必要なプログラムがロードされた状態になった。
なお、上記の例では、ローディングの処理シーケンスはクライアント120からの要求をトリガーとして実行されたが、一旦実行された後は、スケジューラ140の判断によって適宜再実行されうる。具体的には、タスクを割り当てられたノード160として機能していた情報処理装置100がオフラインになったことが検出された場合、ノード管理部146は、そのノード160に割り当てられていたタスクの再割り当て(ステップS113)および再度のローディング要求(ステップS119)をアプリケーション解析部147に依頼する。
また、タスクが実行されるようになった後に、あるノード160に割り当てられた特定のタスクの使用頻度が高いことが検出された場合、ノード管理部146は、そのノードに割り当てられているタスクを複製して新たなタスクとし、この新たなタスクを他のノード160に割り当て(ステップS113)、ローディング要求(ステップS119)することをアプリケーション解析部147に依頼する。
このようにして、スケジューラ140によるノード160へのタスクの割り当ては、ノード管理部146が検出する各ノード160の状態に応じて動的に変化し、その時々の各ノード160の状態に応じた最適な割り当てが実現される。
(タスク実行)
図4は、本開示の一実施形態に係るタスク実行の処理シーケンスを示す図である。図4には、クライアント120からアプリケーションまたはタスクの実行要求が送信される場合の、クライアント120、スケジューラ140およびノード160の間の処理シーケンスが示されている。
まず、クライアント120のリクエスト送信部/レスポンス受信部125が、アプリケーションまたはタスクの実行要求をスケジューラ140に送信する(ステップS201)。アプリケーションまたはタスクの実行要求は、少なくとも対象となるアプリケーションまたはタスクを一意に識別するためのアプリケーション識別子またはタスク識別子を含む。スケジューラ140では、リクエスト受信部/レスポンス送信部143がこの要求を受信する。
ここで、アプリケーションの実行要求が受信された場合、次に、アプリケーション解析部147は、実行対象となるアプリケーションをタスクに分解する(ステップS203)。分解後のタスクについても、タスク識別子が取得される。これによって、アプリケーションの実行が要求された場合も、タスクの実行が要求された場合も、実行対象はタスク識別子によって特定可能になる。一方、タスクの実行要求を受けた場合は、あらかじめ分解されている点が異なるだけで、上記と同じである。
次に、ノード管理部146は、保持している各ノード160の割り当てタスクの情報に対して、実行対象のタスク識別子で検索クエリを発行し、実行対象のタスクを割り当てられているノード160を検索する(ステップS205)。取得された情報に基づいて、ノード管理部146は、実行対象のタスク識別子によって特定されるタスクのすべてが、いずれかのノード160に割り当てられているか否かを判定する(ステップS207)。ここで、いずれのノード160にも割り当てられていないタスクがあると判定された場合、ノード管理部146は、アプリケーション解析部147に依頼して、図3に示すローディングフローS150を再実行する(ステップS209)。
なお、いずれのノード160にも割り当てられていないタスクがある場合は、例えば、ローディングフローS150が予め実行されておらず、実行対象となるタスクがどのノード160にも割り当てられていない場合である。逆に言えば、ローディングフローS150が予め実行されていなくても、実行対象となるタスクのすべてが、偶然、いずれかのノード160に割り当てられていれば、上記のステップS209は実行されなくてもよい。
また、上記の場合の別の例は、ローディングフローS150によって各ノード160にタスクを割り当てたにもかかわらず、タスクの実行時にノード160として機能する情報処理装置100がオフラインになっており、かつタスクの実行が即時性を求められる場合である。例えば、タスクの実行が即時性を求められず、また習慣的な使用状態の情報から当該情報処理装置100がまもなくオンラインになることが予測されるような場合には、上記のステップS209を実行せず、情報処理装置100がオンラインになるまで待機してもよい。
ステップS207において、実行対象となるタスクのすべてが、いずれかのノード160に割り当てられていると判定された場合、および、ステップS209が実行された後、アプリケーション解析部147は、タスクが割り当てられているノード160中からタスク実行ノードを決定する(ステップS211)。それから、リクエスト送信部/レスポンス受信部150が、タスクの実行要求をノード160に送信する(ステップS213)。タスクの実行要求は、少なくとも対象となるタスクを一意に識別するためのタスク識別子を含む。また、タスクの実行要求は、タスクの入力データを含んでもよい。ノード160では、リクエスト受信部/レスポンス送信部163がこの要求を受信する。
ここで、例えば、タスクが1つのノード160に割り当てられている場合、そのノード160がタスク実行ノードになる。また、例えば、タスクが複数のノード160に割り当てられている場合、タスク実行ノードは、その中で最も高いサービス指標を実現できるノードであってもよい。また、例えば、タスクの実行の処理負荷が大きい場合などには、複数のタスク実行ノードが設定されてもよい。この場合、タスクの入力データは、分割されて各タスク実行ノードに送信される。
付加的なステップとして、次に、ノード160の監視部164は、ノード160のプレゼンス情報(CPUの使用率、メモリの残量、現在の回線速度、ストレージの残量、バッテリの残量など)が、タスクの実行に十分なプレゼンスを示しているか否かを判定する(ステップS215)。ここで、例えばプレゼンスがタスクの割り当て時に比べて悪化するなどして、タスクの実行に十分なプレゼンスが示されていない場合、監視部164はリクエスト受信部/レスポンス送信部163を介してスケジューラ140にその旨を通知し(ステップS217)、スケジューラ140のアプリケーション解析部147はタスク実行ノードを決定しなおす(ステップS211)。
ステップS215で、タスクの実行に十分なプレゼンスが示されていると判定された場合、タスク読込/実行部169がタスクを実行する(ステップS219)。上述のように、タスク読込/実行部169は、内部リソースインターフェース170を介して内部リソース171を利用してタスクを実行してもよい。
実行されるタスクが、実行結果を生じるタスクである場合、タスク読込/実行部169によるタスクの実行後に、リクエスト受信部/レスポンス送信部163が、タスクの実行結果をレスポンスとしてスケジューラ140に送信する(ステップS221)。実行結果を生じるタスクとは、例えば、入力データに所定の処理をして出力データにするような処理である。
スケジューラ140では、リクエスト送信部/レスポンス受信部150が、タスクの実行結果を受信する。レスポンス解析部148は、タスクを実行した各ノード160からレスポンスとして受信したタスクの実行結果を集約し、確認する。具体的には、レスポンス解析部148は、いずれかのタスクの実行結果でエラーが検出されたか否かを判定する(ステップS223)。ここで、エラーが検出されたと判定された場合、レスポンス解析部148は、エラーが検出されたタスクについて、アプリケーション解析部147に依頼してタスク実行ノードを決定しなおす(ステップS211)。
ステップS223で、エラーが検出されたと判定されなかった場合、スケジューラ140で集約されたタスクの実行結果が、レスポンスとしてリクエスト受信部/レスポンス送信部143からクライアント120に送信される(ステップS225)。
以上で、タスク実行の処理シーケンスが終了する。これによって、クライアント120がユーザから実行を要求されたアプリケーションまたはタスクが、ノード160の連携によって実行される。
なお、上記の例では、タスク実行の処理シーケンスのトリガーとなるタスクの実行要求がスケジューラ140に向けて送信された。しかし、一度タスクが実行され、その実行結果によって各タスクを実行するノード160の情報がクライアント120に送信される場合、クライアント120はこの情報をキャッシュし、次回のタスク実行では直接ノード160にタスク実行要求を送信してもよい。このとき、ノード160からタスクがアンロードされていたり、ノード160として機能する情報処理装置100がオフラインになっていたりして、ノード160がタスク実行要求に応えない場合、クライアント120は改めてスケジューラ140にタスク実行要求を送信する。
また、図3に示すローディングフローS150が予め実行されていない状態で、クライアント120がユーザからのアプリケーションまたはタスクの実行要求を取得した場合、上記のタスク実行の処理シーケンスに代えて、図3に示すローディングの処理シーケンスを実行し、ノード160にタスクのローディング要求を送信する(ステップS119)とともに必要であればタスクの入力データをも送信し、ノード160にタスクを実行するためのプログラムをロードさせる(ステップS123)とともにタスクを実行させてもよい。
(3.スケジューラの管理)
(スケジューラの選定)
上述のように、本開示の一実施形態に係る情報処理システム10では、複数の情報処理装置100が潜在的にスケジューラ140として機能しうる。これらの情報処理装置100の中から、所定の手順によって、実際にスケジューラ140として機能する1または複数の情報処理装置100が選定される。
タスクのローディングや実行の際には、クライアント120から指定されたアプリケーションの解析やタスクの割り振りの決定、各ノード160からの情報取得やローディングおよび実行の指示などのために、スケジューラ140には演算や通信のための負荷がかかる。この負荷は、クライアント120やノード160の数が多くなるほど増加する。クライアント120の数が多くなると、複数のタスクのローディングや実行の要求が輻輳する可能性があり、ノード160の数が多くなると、タスクのローディングや実行のための情報収集や解析が複雑になる。
そこで、タスクのローディングや実行に関するシステム全体のパフォーマンスを向上させるためには、できるだけ演算や通信の処理能力が高い情報処理装置100がスケジューラ140として機能することが望ましい。本開示の一実施形態では、所定の手順によって、情報処理システム10に含まれる情報処理装置100の状態の変化に合わせて動的にスケジューラ140として機能する情報処理装置100が変更されうる。
例えば、上記のように性能の面から考えると、据置型のゲーム機のように、処理能力が高いのに加えて、スタンバイ状態である時間が長く、有線で安定してネットワーク200に接続されており、また固定電源で安定して電源を供給されているような情報処理装置100が、スケジューラ140に適しているといえる。
また、例えば、通信の面から考えると、ネットワーク200がインターネットなどを含み、情報処理装置100間の通信時の遅延が問題になるような場合には、クライアント120またはノード160として機能しうるそれぞれの情報処理装置100にアクセスするための遅延時間がより短い情報処理装置100が、スケジューラ140に適しているといえる。
この他にも、Bluetooth(登録商標)などの近距離無線通信によって、特定の情報処理装置100xに限って通信が可能である情報処理装置100yがシステムに含まれる場合、情報処理装置100yと直接に通信可能である情報処理装置100xをスケジューラ140として選定してもよい。ただし、この場合、情報処理装置100xを通じて他の情報処理装置100が情報処理装置100yと通信することが可能であれば、他の情報処理装置100をスケジューラ140とし、情報処理装置100xがスケジューラ140からノード160として機能する情報処理装置100yへの通信を中継してもよい。
ところで、上記で言及している情報処理装置100の処理能力は、静的にはスペック情報(CPUの処理能力、メモリの容量、最大回線速度、ストレージの容量、バッテリの容量など)として示されるが、実際にはプレゼンス情報として示されるように動的に変化している。
例えば、上記の据置型のゲーム機の例では、多くの時間はスタンバイ状態であり、プレゼンス情報はスペック情報に近い処理能力を示すが、ひとたびユーザがゲームを始めると、ゲームを実行するために多くのリソースを消費するため、プレゼンス情報によって示される処理能力は、その残りのリソースによるものとなり、つまりスペック情報と比べて大きく低下する場合がある。
本開示の一実施形態では、このような場合に、ゲーム機が本来の機能であるゲームの実行のパフォーマンスを維持し、かつシステムにおけるスケジューラ140の機能のパフォーマンスをも維持するために、ゲーム機から他の情報処理装置100にスケジューラ140の機能が委譲される。このような場合に実行される変更手順について、以下に説明する。
(スケジューラの変更手順)
図5は、本開示の一実施形態に係るスケジューラの変更手順を示す図である。図5には、情報処理システム10に新たな情報処理装置100pが新規に参加し、これが新たにスケジューラ140として機能する場合の、それまでスケジューラ140として機能していた情報処理装置100rと、その他の通常のノード160として機能している情報処理装置100qとの間の処理シーケンスが示されている。
情報処理装置100pは、システムに追加されると、まず、既にシステムに参加していて通信可能な任意の情報処理装置100qに、スケジューラ問い合わせを送信する(ステップS301)。この問い合わせは、システム内のどの情報処理装置100がスケジューラ140として機能しているかを問い合わせるものである。問い合わせを受けた情報処理装置100qは、スケジューラ140として機能しているのが情報処理装置100rであることを示す応答を情報処理装置100pに返信する(ステップS303)。
次に、情報処理装置100pは、自らのスケジューラ140としての優先度を、その時点でスケジューラ140として機能している情報処理装置100rに通知する(ステップS305)。ここで、スケジューラ140としての優先度とは、上記のように性能面または通信面などを考慮した結果、それぞれの情報処理装置100がどのくらいスケジューラ140に適しているかを示す情報である。
次に、この時点でスケジューラ140として機能している情報処理装置100rは、情報処理装置100pを含むそれぞれの情報処理装置100の優先度を解析する。具体的には、受信した情報処理装置100pの優先度を、保持している他の情報処理装置100の優先度と比較する。図示された例では、情報処理装置100pの優先度が、情報処理装置100rを含む他の情報処理装置100の優先度よりも高い。このような場合、スケジューラ140として機能している情報処理装置100rは、情報処理装置100pを新たにスケジューラ140にするという役割変更を決定する(ステップS307)。
ここで、スケジューラ140としての優先度のいくつかの具体的な例について説明する。例えば、優先度は、それぞれの情報処理装置100のプレゼンス情報に基づいて算出される指標値である。この場合、解析が行われるその時点での処理能力が最も高い情報処理装置100が、スケジューラ140として選定されることになる。
また、優先度は、情報処理装置100のプレゼンス情報に加えて、習慣的な使用状態の情報に基づく将来の処理能力の予測値を考慮して算出される指標値であってもよい。この場合、解析が行われるその時点での処理能力がある程度高く、またその後ある程度の期間その処理能力が持続される可能性が高い情報処理装置100が、スケジューラとして選定されることになる。例えば、ユーザがほぼ毎日特定の時間からゲーム機でゲームをプレイする場合、その特定の時間の直前には、ゲーム機の優先度が低く算出される。これによって、例えば、一旦スケジューラ140を選定した後に、使用状況の変化によってすぐに選定しなおす必要が発生することを防ぐことができる。
さらに、優先度は、情報処理装置100の通信状態を考慮して算出される指標値であってもよい。ここでいう通信状態は、例えば上述したように、情報処理装置100がスケジューラになった場合に、クライアント120またはノード160として機能する他の情報処理装置100にアクセスするための遅延時間や、近距離無線通信による特殊な通信環境などである。
次に、役割変更を決定した情報処理装置100rは、役割変更の対象となった情報処理装置100、ここでは情報処理装置100pに、役割変更通知を送信する(ステップS309)。情報処理装置100pに送信される役割変更通知には、新たにスケジューラ140として機能すべきことを示す情報が含まれる。役割変更通知を受信した情報処理装置100pは、スケジューラ140として機能するためのセットアップを実行する(ステップS311)。
ここで、情報処理装置100がスケジューラ140として機能するためのセットアップは、例えば、情報処理装置100に共通してインストールされているミドルウェアの設定を変更して、スケジューラ140の機能を実現するようにすることであってもよい。また、情報処理装置100にインストールされるミドルウェアがクライアント120、スケジューラ140、およびノード160の間で異なっていてもよい。この場合、情報処理装置100pは、例えば、それまでスケジューラ140として機能していた情報処理装置100rからミドルウェアをダウンロードしてインストールすることで、新たにスケジューラ140として機能するためのセットアップを実行してもよい。
スケジューラ140として機能するためのセットアップを完了した情報処理装置100pは、システム内の他の情報処理装置100に役割通知を送信する(ステップS313,S315)。情報処理装置100pから送信される役割通知には、以後は情報処理装置100pがスケジューラ140として機能することを示す情報が含まれる。ステップS313の役割通知を受信した情報処理装置100qは、保持しているスケジューラ140として機能する情報処理装置100の情報を更新し、以後は情報処理装置100pをスケジューラ140として認識する。
一方、ステップS315の役割通知を受信した情報処理装置100rは、他の情報処理装置100がスケジューラ140として機能を開始したことを確認し、自らのスケジューラ140としての機能をOFFにする(ステップS317)。図示された例では、この後、情報処理装置100rは、ノード160としてシステムに参加する。ここで、情報処理装置100rは、以後はノード160(およびクライアント120)として機能することを示す情報を含む役割通知を、システム内の他の情報処理装置100に送信してもよい(ステップS319,S321)。情報処理装置100p,100qは、この役割通知によって、情報処理装置100rをノードとして認識してもよい。
なお、ステップS319,S321の役割通知が送信されない場合、情報処理装置100pは、自らをスケジューラとしてセットアップするときに自動的に情報処理装置100rをノード160として認識してもよい。また、この場合、情報処理装置100qは、情報処理装置100pが新たにスケジューラ140として機能することを示すステップS313の役割通知を受信した時点で、自動的に情報処理装置100rをノード160として認識してもよい。
以上で、スケジューラの変更手順が終了する。なお、図示された例では、情報処理装置100pが新たにシステムに追加された場合に手順が実行されたが、手順が実行されるケースはこれに限られない。例えば、既にシステムに参加している情報処理装置100のプレゼンス情報が変化するなどして、スケジューラ140としての優先度が変化した場合に、上記の手順が実行されうる。また、その時点でのスケジューラ140からの指示によって、定期的に上記の手順が実行されうる。
これらの場合、スケジューラ140として機能している情報処理装置100がどれであるかは既知であるため、ステップS301,S303の手順は省略されうる。また、定期的に上記の手順が実行されるような場合、情報処理装置100pの優先度通知(ステップS305)とともに、情報処理装置100qの優先度通知も実行されうる。
上記の例において、それぞれの情報処理装置100のスケジューラ140としての優先度を解析した結果、スケジューラ140として機能させることが適切な情報処理装置100がないこともありうる。これは、例えば、スケジューラ140として機能しうるだけの処理能力を有する情報処理装置100がシステムに含まれていない(どの情報処理装置100もスペックが足りていない)場合や、それぞれの情報処理装置100がユーザによって使用されていて余裕がない(どの情報処理装置100もプレゼンスが十分ではない)場合である。
このような場合、その時点でのスケジューラ140は、情報処理システム10に、十分な処理能力を有する新たな情報処理装置100を参加させ、その情報処理装置100にスケジューラ140の機能を委譲してもよい。具体的には、例えば、ネットワーク200上に、ユーザが使用可能であるが現在は使用されていないサーバがある場合に、スケジューラ140は、このサーバを情報処理システム10に参加させ、スケジューラ140の機能を委譲する。
なお、上記の例では、それぞれの情報処理装置100が自らのスケジューラ140としての優先度を算出して通知するが、それ以外の場合もありうる。スケジューラ140は、ノード管理部146で各ノード160の情報を管理しているため、これらのノード160について、通知を受けることなくスケジューラ140が優先度を算出して比較する構成とすることも可能である。
また、上記の例では、既に設定されているスケジューラ140が新たなスケジューラ140を選定するが、それ以外の場合もありうる。例えばシステムの使用開始直後や、スケジューラ140がオフラインになった場合などで、スケジューラ140が存在しない場合、情報処理装置100のそれぞれが優先度の情報を交換し、互選のような形でスケジューラ140を決定してもよい。
さらに、上記の例では、スケジューラ140として機能する情報処理装置100は1つであるが、それ以外の場合もありうる。後述するように、情報処理システム10には複数のスケジューラ140が存在することが可能であり、その場合、それぞれのスケジューラ140として機能する情報処理装置100が上記の変更手順と同様の手順によって決定されうる。
(複数のスケジューラが設定される場合)
次に、本開示の一実施形態において、スケジューラ140を複数設定する場合について説明する。上述のように、スケジューラ140として機能する情報処理装置100には、演算や通信のために大きな負荷がかかる。そのために、処理能力が高い情報処理装置100をスケジューラ140として機能させることも1つのやり方ではあるが、複数の情報処理装置100にスケジューラ140の機能を分散させることも可能である。
ここで、複数スケジューラ140が、互いに独立してタスクのローディングや実行を管理すると、例えば、あるノード160の負荷が小さい状態であるときに、その情報を取得した2つのスケジューラ140がほぼ同時にタスクを割り当て、今度はそのノード160に負荷が集中しすぎてしまうといったような不都合が生じる可能性がある。
それゆえ、本開示の実施形態では、複数存在するスケジューラ140が所定の方式で協調してローディングやタスク実行を管理する。これによって、システム全体の状況を考慮した最適なスケジューリングが可能になるとともに、個々のノード160からの情報の取得や、個々のクライアント120からの要求の受付の処理をそれぞれのスケジューラ140に分散し、通信量や処理負荷の集中によるスケジューラ140の処理効率の低下を防ぐことができる。
以下では、本開示の実施形態において複数のスケジューラ140の協働のために用いられうる方式の2つの例について説明する。
(マスタ−スレーブ方式)
マスタ−スレーブ方式の場合、複数のスケジューラ140として、1つのマスタスケジューラ140mと、1または複数のスレーブスケジューラ140sとが選定される。この場合、スケジューラ140は、例えば、上述した優先度を基準にして選定される。具体的には、情報処理装置100の中で優先度が最も高いものがマスタスケジューラ140mに選定され、それに次いで優先度が高いものがスレーブスケジューラ140sに選定される。スレーブスケジューラ140sは、マスタスケジューラ140mのスケジューラ140としての機能の一部を代行する。
ここで、スレーブスケジューラ140sは、上述のスケジューラ140のうちの限定された機能を有する。例えば、スレーブスケジューラ140sは、直接ノード160から情報を取得することはしないが、マスタスケジューラ140mからノード管理部146の機能をレプリケートされる。また、例えば、スレーブスケジューラ140sは、ノード160に割り当てられるタスクの再配置はしないが、クライアント120からの実行要求を受け付ける。
マスタスケジューラ140mとして機能している情報処理装置100がオフラインになったり、ユーザから他の処理を要求されたりして、マスタスケジューラ140mとしての機能に障害が生じた場合、スレーブスケジューラ140sが昇格してマスタスケジューラ140mになる。つまり、この場合、スレーブスケジューラ140sが、それまでのマスタスケジューラ140mの機能の全部を代行する。スレーブスケジューラ140sが複数ある場合は、その中で最も優先度が高いものが昇格する。ここで、マスタスケジューラ140mでもスレーブスケジューラ140sでもない情報処理装置100のうちで、最も優先度が高いものが、新たにスレーブスケジューラ140sとして補充されてもよい。
なお、スレーブスケジューラ140sの数は、システムに含まれる情報処理装置100の数や、クライアント120からの要求の頻度、およびマスタスケジューラ140mやスレーブスケジューラ140sとして機能している情報処理装置の可用性を考慮して決定されうる。
また、スレーブスケジューラ140sは、マスタスケジューラ140mからノード管理部146の情報などをレプリケートされて機能するが、レプリケーションの頻度によっては、情報が古くてタスクの実行に支障をきたす場合がある。これは、例えば、クライアント120からの要求に従ってタスクを実行するときに、タスクを実行可能なノード160がなかったり、タスクが割り当てられているノード160にタスクがロードされていなかったりといったような状態である。
この場合、スレーブスケジューラ140sは、マスタスケジューラ140mに、ノード管理部146の情報を再度レプリケートすることを要求し、最新の情報を取得することで対応しうる。また、スレーブスケジューラ140sは、実行するタスクのタスク識別子をブロードキャストで送信し、当該タスクを実行可能であるノード160を探索してそのノード160にタスクを割り当ててもよい。
上記で図5に示したスケジューラの変更手順は、マスタ−スレーブ方式で複数のスケジューラ140が選定される場合にも適用されうる。例えば、システムに新たに参加した情報処理装置100pが、その時点でマスタスケジューラ140mとして機能している情報処理装置100rよりも優先度が高かった場合、マスタスケジューラ140mは、まず情報処理装置100pをスレーブスケジューラ140sに選定して機能をレプリケートし、その後マスタスケジューラ140mとしての機能を委譲し、自らはスレーブスケジューラ140sになる。
また、情報処理装置100pが、その時点でマスタスケジューラ140mとして機能している情報処理装置100rよりも優先度が低いが、スレーブスケジューラ140sとして機能している情報処理装置100qよりも優先度が高かった場合、マスタスケジューラ140mは、情報処理装置100pをスレーブスケジューラ140sに選定する。これによってスレーブスケジューラ140sの数が過剰になる場合、マスタスケジューラ140mは、情報処理装置100qのスレーブスケジューラ140sとしての機能を停止しうる。
(分散管理方式)
分散管理方式の場合、複数のスケジューラ140は、それぞれが別々のノード160を管理し、互いにノード160の情報をレプリケートしあう。それぞれのスケジューラ140は、タスクのロード、移動、複製、再配置などをする場合には他のスケジューラ140に通知し、同じノード160に同時にタスクがロードされてそのノード160に負荷が集中するといったような事態を防止する。
複数のスケジューラ140は、様々な条件で選定されうる。例えば、複数のスケジューラ140は、クライアント120からの依頼に応じてタスクを実行するときの遅延がなるべく小さくなるように選定される。これは、具体的には、自宅および勤務先のような複数の異なる場所にそれぞれ情報処理装置100が分布しているときに、それぞれの場所にスケジューラ140を配置するような場合である。
この場合、それぞれの場所に位置する情報処理装置100(クライアント120またはノード160として機能する)からスケジューラ140への通信の遅延を最小化することが可能である。従って、それぞれの場所に位置するノード160だけで実行可能なタスクを処理する場合、それぞれの場所の間(自宅から勤務先へ、またはその逆のような)の通信が必ずしも必要ではなくなり、タスクを実行するときの遅延は小さくなる。
また、複数のスケジューラ140は、ネットワーク200内の通信の安定性を考慮して選定されてもよい。例えば、無線通信でネットワーク200に接続される情報処理装置100xと、Bluetooth(登録商標)などの近距離無線通信によって情報処理装置100xに限って通信が可能である情報処理装置100yとがシステムに含まれるとする。この場合、情報処理装置100xをネットワーク200に接続する無線通信が切断されると、情報処理装置100xと情報処理装置100yとは一時的に閉じたネットワークを形成する。
このとき、情報処理装置100x,100yのいずれもがスケジューラ140として選定されていなければ、閉じたネットワークの中にスケジューラ140が存在しなくなるため、無線通信の切断によって情報処理装置100x,100yのいずれかをスケジューラ140として選定することになる。さらに、無線通信が回復すると、情報処理装置100x,100yは、従前のスケジューラ140の管理下に戻ることになる。つまり、無線通信の状態によってスケジューラ140が頻繁に変わる可能性がある。これを防止するためには、例えば、予め、安定性が低い無線通信によって接続されている情報処理装置100xをスケジューラ140として選定しておけばよい。
(4.その他)
本開示の実施形態に係る情報処理システム10では、ユーザおよび情報処理装置100を、アカウントおよびサブアカウントによってそれぞれ管理することが望ましい。それぞれの情報処理装置100は、アカウント情報によってユーザを認証し、第三者による使用を防ぐ。また、ノード160として機能する情報処理装置100は、内部リソース171にアクセスするプログラムがロードされた場合、ロードを依頼したクライアント120を使用しているアカウントに、内部リソース171へのアクセス権限があるか否かを確認する。
また、クライアント120は、アプリケーション121について、アプリケーションマニフェストなどの情報を用いて、利用するノード160の一覧や、アクセスするノード160の内部リソース171の情報をユーザに提示してもよい。これによって、ユーザは、タスクの実行に用いないノード160を指定したり(何らかの理由で特定の情報処理装置100を使用したくない場合)、重視するサービス指標を指定したりすることが可能である。例えば、ユーザが重視するサービス指標として可用性が指定された場合、その情報を提供されたスケジューラ140は、サービスを提供するためのタスクを、常時稼動している可能性が高いネットワーク上のサーバに割り当てる。また、ユーザが重視するサービス指標として高レスポンスが指定された場合、その情報を提供されたスケジューラ140は、クライアント120として機能する情報処理装置100からのルーティング距離がより近い情報処理装置100にタスクを割り当てる。なお、ユーザは、例えば、後述の図16の入力装置915を使って、上述のように重視するサービス指標を指定してもよい。
(5.実現されうる機能の例)
以下、本開示の実施形態によって実現されうる機能のより具体的な例について説明する。
(機能の動的読み込み)
図6は、本開示の実施形態における機能の動的読み込みの例を示す図である。図示された例では、テレビ100dが、モバイル端末100c、またはネットワーク200から機能を動的にローディングしている。
本開示の実施形態では、このように、実行したい機能を情報処理装置100が保持していなくても、他の情報処理装置100やネットワーク200からローディングして実行することが可能である。これは、実行したい機能が、テレビ100dが自ら実行の指示を受けた機能であっても、クライアント120であるモバイル端末100cからスケジューラ140を経てノード160として実行を依頼されたタスクであっても同様である。
これによって、情報処理装置100内に保持する機能を最小限にすることができ、メモリやストレージのリソースを有効に活用することができる。
(リソースの借用)
図7は、本開示の実施形態におけるリソースの借用の例を示す図である。図示された例では、モバイル端末100cが、実行を要求されたタスクをタブレット型PC100eにロードさせ、タスクの実行をタブレット型PC100eに依頼する。
本開示の実施形態では、このように、クライアント120(モバイル端末100c)が要求されたタスクの実行をノード160(タブレット型PC100e)に依頼することが可能である。ここで、ノード160は、クライアント120よりも高い処理能力を有する、または一時的に使用されていない、いわば遊んでいる情報処理装置100でありうる。この依頼は、モバイル端末100cまたはタブレット型PC100eのいずれかがスケジューラ140として機能することで実行されてもよいし、さらに別の情報処理装置100がスケジューラ140として機能することで実行されてもよい。
これによって、ユーザによって操作されているクライアント120(モバイル端末100c)のリソースを節約することができ、操作のレスポンスを早めてユーザビリティを向上させることができる。
(並行処理)
図8は、本開示の実施形態における並行処理の例を示す図である。図示された例では、モバイル端末100cが、実行を要求されたタスクをテレビ100d、タブレット型PC100e,100fに割り振って処理している。
本開示の実施形態では、このように、クライアント120(モバイル端末100c)が要求されたタスクの実行を、複数のノード160(テレビ100d、タブレット型PC100e,100f)に割り振って並行して処理することが可能である。ここで、ノード160は、必ずしもクライアント120よりも高い処理能力を有さなくてもよい。また、クライアント120自身も、ノード160としてタスクの実行に加わってもよい。この割り振りは、図示されている情報処理装置100のいずれかがスケジューラ140として機能することで実行されてもよいし、さらに別の情報処理装置100がスケジューラ140として機能することで実行されてもよい。
これによって、クライアント120(モバイル端末100c)が単独でタスクを実行するよりも高速にタスクを実行することができる。また、それぞれのノード160が保持している情報に対する検索処理のような網羅的な処理も円滑に実行できる。
(パイプライン処理)
図9は、本開示の実施形態におけるパイプライン処理の例を示す図である。図示された例では、モバイル端末100cが実行を要求されたタスクが、まず要求Req1によってテレビ100dによって処理され、次いで要求Req2によってタブレット型PC100eによって処理され、さらに要求Req3によってタブレット型PC100fによって処理され、処理結果がレスポンスResとしてモバイル端末100cに返される。
本開示の実施形態では、このように、クライアント120(モバイル端末100c)が要求されたタスクの実行を、複数のノード160(テレビ100d、タブレット型PC100e,100f)が直列的に処理していくことが可能である。ここで、実行が要求されているタスクは、例えば、まずテレビ100dが有する画像処理機能を利用し、その結果がタブレット型PC100eが有するプログラムを利用して処理され、さらにその結果がタブレット型PC100fが有する別のプログラムを利用して処理される。スケジューラ140は、それぞれの情報処理装置100が有する機能やプログラムなどの能力を考慮して、タスクの実行を複数のノード160に割り振る。
これによって、それぞれの情報処理装置100の特徴的な機能を活かしてタスクを円滑かつ迅速に実行することができる。タスク実行の要求とレスポンスはスケジューラ140によって集約されるため、クライアント120は要求の送信先とレスポンスの送信元が異なることを意識しなくてよい。
(マルチデバイスインストール)
図10は、本開示の実施形態におけるマルチデバイスインストールの例を示す図である。図示された例では、モバイル端末100cが、実行しようとするアプリケーションをネットワーク200からダウンロードした後に、コンポーネントごとに分割してテレビ100d、およびタブレット型PC100e,100fにロードする。
本開示の実施形態では、このように、クライアント120(モバイル端末100c)がダウンロードしたアプリケーションが、コンポーネント単位で分割されノード160(テレビ100d、タブレット型PC100e,100f)にロードされる。ここで、どのノード160にどのコンポーネントをロードするかは、スケジューラ140によって決定される。なお、アプリケーションのダウンロードは、スケジューラ140によって実行されてもよい。
これによって、アプリケーションを自動的に最適な情報処理装置100で実行することができる。また、アプリケーションのコンポーネント単位での分割は、スケジューラ140が行うため、アプリケーション自体は単一のパッケージとして提供することが可能であり、アプリケーションの開発が容易になる。
(インタラクティブアプリケーション)
図11は、本開示の実施形態におけるインタラクティブアプリケーションの例を示す図である。図示された例では、モバイル端末100c、テレビ100d、およびタブレット型PC100e,100fに、それぞれアプリケーションのコンポーネントがロードされており、これらのコンポーネントがメッセージングしながら1つのアプリケーションとして動作している。
本開示の実施形態では、このように、それぞれの情報処理装置100が、クライアント120およびノード160の両方として機能しうる。これによって、複数の情報処理装置100にロードされたコンポーネントを相互作用させて、1つのアプリケーションを実行することが容易になる。
(オートスケーリングデプロイ)
図12は、本開示の実施形態におけるオートスケーリングデプロイの例を示す図である。図示された例では、モバイル端末100cが起動したアプリケーションを実行するためのタスクが、ネットワーク200上のサーバ100b1〜100b3にロードされる。
本開示の実施形態では、このように、クライアント120(モバイル端末100c)がアプリケーションを実行するためのタスクが、そのときの状況に応じて適切なノード160(サーバ100b1〜100b3)にロードされる。ここでタスクがロードされるノード160の数や位置は、クライアント120からのアクセス数やアクセス場所に応じて設定される。つまり、クライアント120からのアクセス数が多ければ、より多くのサーバ100bにタスクがロードされる、また、クライアント120のアクセス場所により近い位置にあるサーバ100bにタスクがロードされてもよい。
これによって、アプリケーションの開発にあたって、負荷の分散や地域的な遅延の問題を考慮する必要がなくなり、開発が容易になる。
(フェイルオーバー)
図13は、本開示の実施形態におけるフェイルオーバーの例を示す図である。図示された例では、図9で示されたのと同様のパイプライン処理において、要求Req2を受けるタブレット型PC100eに障害が発生している。そこで、別の端末装置100gに新たに要求Req2が送信され、端末装置100gからタブレット型PC100fに要求Req3が送信される。
本開示の実施形態では、このように、タスクを実行するノード160に何らかの原因で障害が発生した場合、スケジューラ140が別のノード160にタスクの割り当てを切り替えて処理を継続し、クライアント120には何事もなかったかのようにレスポンスResが返される。これによって、一部のノード160の障害に関わらずタスクを実行することができ、タスク実行の可用性を向上させることができる。
(オートレプリケーション&キャッシュ)
図14は、本開示の実施形態におけるオートレプリケーションおよびキャッシュの例を示す図である。図示された例では、モバイル端末100cからタブレット型PC100fに送られるデータが、別のタブレット型PC100e、またはネットワーク200上にレプリケートまたはキャッシュされる。
本開示の実施形態では、このように、情報処理装置100間でデータなどをやりとりするときに、装置間の通信の低可用性、高遅延性(一方の装置がオフラインになったり、ホッピング数が多かったりすることによる)の影響を回避するため、他の情報処理装置100に自動的にデータをレプリケートしておいたり、ネットワーク200上のより低遅延な位置にあるサーバにデータをキャッシュする。
(自動再デプロイ)
図15は、本開示の実施形態における自動再デプロイの例を示す図である。図示された例では、タスクを実行するモバイル端末100cが移動するのに合わせて、連携先がテレビ100dからネットワーク200上のサーバへ、さらにタブレット型PC100eへと動的に変化する。
本開示の実施形態では、このように、クライアント120(モバイル端末100c)の移動などによる通信状況の変化に合わせて、タスク実行のための連携先となるノード160(テレビ100d、ネットワーク200上のサーバ、およびタブレット型PC100e)が変化する。各ノード160にロードされたプログラムやデータは、連携先の変化に合わせて繰り返し移動、複製または再配置される。連携先の変更やプログラムならびにデータの移動、複製および再配置は、スケジューラ140によって実行される。このとき、スケジューラ140は、クライアント120との間の通信の遅延がより小さくなるノード160を連携先として選択する。
これによって、クライアント120の物理的な位置などの状態が変化しても、タスクの実行時の遅延を最小化することができる。
(6.ハードウェア構成)
以下、図16を参照して、上記で説明された本開示の一実施形態に係る情報処理装置100のハードウェア構成について説明する。図16は、本開示の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。上述した情報処理装置100の各機能構成(クライアント120、スケジューラ140、およびノード160として動作する場合の機能構成を含む)は、以下に説明するハードウェア構成によって実現されうる。
情報処理装置100は、CPU901、ROM903、およびRAM905を含む。さらに、情報処理装置100は、ホストバス907、ブリッジ909、外部バス911、インターフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923、および通信装置925を含んでもよい。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置100内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータなどを記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。CPU901、ROM903、およびRAM905は、CPUバスなどの内部バスにより構成されるホストバス907により相互に接続されている。さらに、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置100の操作に対応した携帯電話などの外部接続機器929であってもよい。入力装置915は、ユーザが入力した情報に基づいて入力信号を生成してCPU901に出力する入力制御回路を含む。ユーザは、この入力装置915を操作することによって、情報処理装置100に対して各種のデータを入力したり処理動作を指示したりする。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、有機EL(Electro-Luminescence)ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置917は、情報処理装置100の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
ストレージ装置919は、情報処理装置100の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体927のためのリーダライタであり、情報処理装置100に内蔵、あるいは外付けされる。ドライブ921は、装着されているリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体927に記録を書き込む。
接続ポート923は、機器を情報処理装置100に直接接続するためのポートである。接続ポート923は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどでありうる。また、接続ポート923は、RS−232Cポート、光オーディオ端子、HDMI(High-Definition Multimedia Interface)ポートなどであってもよい。接続ポート923に外部接続機器929を接続することで、情報処理装置100と外部接続機器929との間で各種のデータが交換されうる。
通信装置925は、例えば、通信ネットワーク931に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カードなどでありうる。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデムなどであってもよい。通信装置925は、例えば、インターネットや他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置925に接続される通信ネットワーク931は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信などである。
以上、情報処理装置100のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
(7.補足)
本開示の実施形態の構成および作用効果についてまとめる。
以上で説明した本開示の一実施形態によれば、ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、自装置のスケジューラとしての優先度の上記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、上記タスクを上記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、上記1または複数の第2の情報処理装置に上記割り振られたタスクに関する処理の実行要求を送信する送信部とを含む情報処理装置が提供される。
かかる構成によれば、スケジューラとして機能しうる情報処理装置の中で、スケジューラに適した情報処理装置が選択的にスケジューラとして機能する。スケジューラに適した情報処理装置とは、例えばスケジューラが実行する通信や演算の能力が高い情報処理装置である。このような情報処理装置がスケジューラに選ばれることによって、スケジューリングに要する処理時間や通信遅延がより少なくなり、システム全体としてのタスク実行時のパフォーマンスが向上する。なお、第1の所定の順位は、例えばスケジューラが1つだけ選定される場合には1、スケジューラがマスタスケジューラとスレーブスケジューラと合わせて3つ選定されるような場合には3といったように、選定されるスケジューラの数に対応した順位でありうる。また、タスクに関する処理は、例えばタスクのローディングおよび実行である。
上記スケジューリング部は、自装置のスケジューラとしての優先度の順位が上記第1の所定の順位よりも下である場合に機能を停止してもよい。
かかる構成によれば、スケジューラとして機能しうる情報処理装置の中で、スケジューラとして機能しない情報処理装置は、そのスケジューラに関する機能を停止させる。従って、これらの情報処理装置は、例えばシステムの中でクライアントやノードとして機能することも可能である。また、一時的に機能を停止させているものの、潜在的にはスケジューラとして機能することが可能な情報処理装置がシステムに存在することで、スケジューラがオフラインになったり、別途にユーザから要求された別の処理などのためにスケジューラとしてのパフォーマンスが低下してしまったりした場合にも、容易に代替のスケジューラを利用することが可能である。
上記スケジューリング部は、自装置のスケジューラとしての優先度の順位が上記第1の所定の順位以上であって第2の所定の順位よりも下である場合に、上記スケジューラとしての優先度の順位が上記第2の所定の順位以上である上記ネットワーク上の他の情報処理装置の上記スケジューリング部の機能の一部を代行してもよい。
かかる構成によれば、スケジューラとして機能する情報処理装置が、より上位のスケジューラ(マスタスケジューラ)と、より下位のスケジューラ(スレーブスケジューラ)に分けられ、スレーブスケジューラによってマスタスケジューラの機能の一部が代行される。これによって、よりスケジューラに適した情報処理装置を、スケジューラの主たる処理を担当するマスタスケジューラとして利用しつつ、その機能の一部をスレーブスケジューラが代行することで、マスタスケジューラのパフォーマンスをさらに向上させることができる。なお、第2の所定の順位は、第1の所定の順位よりも上位の順位であり、例えばマスタスケジューラが1つだけ選定される場合には1、3つ選定される場合(分散管理方式とマスタ−スレーブ方式を組み合わせる場合など)には3といったように、選定されるマスタスケジューラの数に対応した順位でありうる。
上記スケジューリング部は、上記他の情報処理装置の上記スケジューリング部の機能に障害が生じた場合に、該スケジューリング部の機能の全部を代行してもよい。
かかる構成によれば、マスタスケジューラがオフラインになったり、別途にユーザから要求された別の処理などのためにスケジューラとしてのパフォーマンスが低下してしまったりした場合にも、スレーブスケジューラをマスタスケジューラに昇格させることで、スケジューラの機能低下を防ぐことができる。予めマスタスケジューラとスレーブスケジューラとが選定されていると、マスタスケジューラの障害時の代替順位が明確であり、迅速にスケジューラの機能を移行させることができる。
上記スケジューラとしての優先度は、上記情報処理装置の現在の処理能力に基づいて算出されてもよい。
かかる構成によれば、各ノードの情報の取得および解析、タスクの割り振りなどのための演算を効率よく処理することが可能な情報処理装置がスケジューラに適した情報処理装置として選定され、スケジューラのパフォーマンスを向上させることができる。
上記スケジューラとしての優先度は、上記情報処理装置の将来の処理能力の予測値に基づいて算出されてもよい。
かかる構成によれば、情報処理装置がスケジューラに選定された後、その処理能力を維持できるか否かという基準でスケジューラを選定することができ、予測可能な情報処理装置の状態の変化(ユーザの習慣化した使用など)によってスケジューラのパフォーマンス低下が生じるのを防ぐことができる。
上記スケジューラとしての優先度は、上記情報処理装置の通信状態に基づいて算出されてもよい。
かかる構成によれば、クライアントおよびノードとの通信を効率よく処理したり、より少ない遅延時間で通信をしたりすることが可能な情報処理装置がスケジューラに適した情報処理装置として選定され、スケジューラのパフォーマンスを向上させることができる。
上記スケジューリング部は、上記タスクが実行時に所定のサービス指標を達成するように、上記1または複数の第2の情報処理装置の処理能力に応じて上記タスクを割り振ってもよい。
かかる構成によれば、タスクごとに所定のサービス指標を達成することを目標としてタスクがノードに割り振られる。この所定のサービス指標とは、例えば高効率、クライアントへの高レスポンス、低コスト、低消費電力、高可用性、高品質などのKPIであり、タスクまたはアプリケーションごとに設定されているこれらの指標を達成知ることを目標とすることで、ユーザがタスクの実行にあたって必要としている品質を的確に向上させることができる。
上記スケジューリング部は、上記1または複数の第2の情報処理装置の現在の処理能力または将来の処理能力の予測値に応じて上記タスクの割り振りを動的に変更してもよい。
かかる構成によれば、単にノードとして機能する情報処理装置のスペックではなく、その情報処理装置の現時点での処理能力(例えばプレゼンス情報によって表される)や、将来の処理能力予測(例えば習慣的な使用状態の情報によって表される)に基づいてタスクが割り振られる。従って、実際のタスク処理の効率を向上させることができる。
上記受信部は、複数の上記タスクからなるアプリケーションに関する処理の要求として上記タスクに関する処理の要求を受信し、上記スケジューリング部は、上記アプリケーションを上記タスクに分割してもよい。
かかる構成によれば、アプリケーション自体は単一のパッケージであっても、実行時にこれをタスク(コンポーネント)に分割することができる。従ってアプリケーションの開発時にはコンポーネント単位での分割を意識する必要がなく、アプリケーションの開発が容易になる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、
自装置のスケジューラとしての優先度の前記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、
前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信する送信部と
を備える情報処理装置。
(2)前記スケジューリング部は、自装置のスケジューラとしての優先度の順位が前記第1の所定の順位よりも下である場合に機能を停止する、前記(1)に記載の情報処理装置。
(3)前記スケジューリング部は、自装置のスケジューラとしての優先度の順位が前記第1の所定の順位以上であって第2の所定の順位よりも下である場合に、前記スケジューラとしての優先度の順位が前記第2の所定の順位以上である前記ネットワーク上の他の情報処理装置の前記スケジューリング部の機能の一部を代行する、前記(1)または(2)に記載の情報処理装置。
(4)前記スケジューリング部は、前記他の情報処理装置の前記スケジューリング部の機能に障害が生じた場合に、該スケジューリング部の機能の全部を代行する、前記(3)に記載の情報処理装置。
(5)前記スケジューラとしての優先度は、前記情報処理装置の現在の処理能力に基づいて算出される、前記(1)〜(4)のいずれか1項に記載の情報処理装置。
(6)前記スケジューラとしての優先度は、前記情報処理装置の将来の処理能力の予測値に基づいて算出される、前記(1)〜(5)のいずれか1項に記載の情報処理装置。
(7)前記スケジューラとしての優先度は、前記情報処理装置の通信状態に基づいて算出される、前記(1)〜(6)のいずれか1項に記載の情報処理装置。
(8)前記スケジューリング部は、前記タスクが実行時に所定のサービス指標を達成するように、前記1または複数の第2の情報処理装置の処理能力に応じて前記タスクを割り振る、前記(1)〜(7)のいずれか1項に記載の情報処理装置。
(9)前記スケジューリング部は、前記1または複数の第2の情報処理装置の現在の処理能力または将来の処理能力の予測値に応じて前記タスクの割り振りを動的に変更する、前記(8)に記載の情報処理装置。
(10)前記受信部は、複数の前記タスクからなるアプリケーションに関する処理の要求として前記タスクに関する処理の要求を受信し、
前記スケジューリング部は、前記アプリケーションを前記タスクに分割する、前記(1)〜(9)のいずれか1項に記載の情報処理装置。
(11)ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信することと、
自装置のスケジューラとしての優先度の前記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振ることと、
前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信することと
を含む情報処理方法。
(12)ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する機能と、
自装置のスケジューラとしての優先度の前記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振る機能と、
前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信する機能と
をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
(13) ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、
前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、
前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信する送信部と
を有する前記ネットワーク上の複数の情報処理装置を含み、
前記複数の情報処理装置のうち、スケジューラとしての優先度の順位が第1の所定の順位以上の情報処理装置は前記スケジューリング部の機能を有効にし、残りの情報処理装置は前記スケジューリング部の機能を無効にする情報処理システム。
(14)前記残りの情報処理装置は、前記クライアントまたは前記ノードとして機能する、前記(13)に記載の情報処理システム。
(15)前記複数の情報処理装置のうち、前記スケジューラとしての優先度の順位が前記第1の所定の順位以上であって第2の所定の順位以上である情報処理装置は、マスタスケジューラとして機能し、
前記複数の情報処理装置のうち、前記スケジューラとしての優先度の順位が前記第1の所定の順位以上であって第2の所定の順位よりも下である情報処理装置は、スレーブスケジューラとして機能し、
前記スレーブスケジューラとして機能する情報処理装置は、前記マスタスケジューラとして機能する情報処理装置の前記スケジューリング部の機能のうちの一部を代行する、前記(13)または(14)に記載の情報処理システム。
(16)前記マスタスケジューラとして機能する情報処理装置の前記スケジューリング部の機能に障害が生じた場合に、前記スレーブスケジューラとして機能する情報処理装置が代わりに前記マスタスケジューラとして機能する、前記(15)に記載の情報処理システム。
(17)前記スケジューラとしての優先度は、前記情報処理装置の現在の処理能力に基づいて算出される、前記(13)〜(16)のいずれか1項に記載の情報処理システム。
(18)前記スケジューラとしての優先度は、前記情報処理装置の将来の処理能力の予測値に基づいて算出される、前記(13)〜(17)のいずれか1項に記載の情報処理システム。
(19)前記スケジューラとしての優先度は、前記情報処理装置の通信状態に基づいて算出される、前記(13)〜(18)のいずれか1項に記載の情報処理システム。
10 情報処理システム
100 情報処理装置
200 ネットワーク
120 クライアント
122 ミドルウェア
140 スケジューラ
141 ミドルウェア
143 リクエスト受信部/レスポンス送信部
144 監視部
145 習慣解析部
146 ノード管理部
147 アプリケーション解析部
148 レスポンス解析部
150 リクエスト送信部/レスポンス受信部
160 ノード
161 ミドルウェア
164 監視部
165 習慣解析部
169 タスク読込/実行部

Claims (19)

  1. ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、
    自装置のスケジューラとしての優先度の前記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、
    前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信する送信部と
    を備える情報処理装置。
  2. 前記スケジューリング部は、自装置のスケジューラとしての優先度の順位が前記第1の所定の順位よりも下である場合に機能を停止する、請求項1に記載の情報処理装置。
  3. 前記スケジューリング部は、自装置のスケジューラとしての優先度の順位が前記第1の所定の順位以上であって第2の所定の順位よりも下である場合に、前記スケジューラとしての優先度の順位が前記第2の所定の順位以上である前記ネットワーク上の他の情報処理装置の前記スケジューリング部の機能の一部を代行する、請求項1に記載の情報処理装置。
  4. 前記スケジューリング部は、前記他の情報処理装置の前記スケジューリング部の機能に障害が生じた場合に、該スケジューリング部の機能の全部を代行する、請求項3に記載の情報処理装置。
  5. 前記スケジューラとしての優先度は、前記情報処理装置の現在の処理能力に基づいて算出される、請求項1に記載の情報処理装置。
  6. 前記スケジューラとしての優先度は、前記情報処理装置の将来の処理能力の予測値に基づいて算出される、請求項1に記載の情報処理装置。
  7. 前記スケジューラとしての優先度は、前記情報処理装置の通信状態に基づいて算出される、請求項1に記載の情報処理装置。
  8. 前記スケジューリング部は、前記タスクが実行時に所定のサービス指標を達成するように、前記1または複数の第2の情報処理装置の処理能力に応じて前記タスクを割り振る、請求項1に記載の情報処理装置。
  9. 前記スケジューリング部は、前記1または複数の第2の情報処理装置の現在の処理能力または将来の処理能力の予測値に応じて前記タスクの割り振りを動的に変更する、請求項8に記載の情報処理装置。
  10. 前記受信部は、複数の前記タスクからなるアプリケーションに関する処理の要求として前記タスクに関する処理の要求を受信し、
    前記スケジューリング部は、前記アプリケーションを前記タスクに分割する、請求項1に記載の情報処理装置。
  11. ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信することと、
    自装置のスケジューラとしての優先度の前記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振ることと、
    前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信することと
    を含む情報処理方法。
  12. ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する機能と、
    自装置のスケジューラとしての優先度の前記ネットワーク上の情報処理装置の中での順位が第1の所定の順位以上である場合に、前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振る機能と、
    前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信する機能と
    をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  13. ネットワーク上でクライアントとして機能する第1の情報処理装置からのタスクに関する処理の要求を受信する受信部と、
    前記タスクを前記ネットワーク上でノードとして機能する1または複数の第2の情報処理装置に割り振るスケジューリング部と、
    前記1または複数の第2の情報処理装置に前記割り振られたタスクに関する処理の実行要求を送信する送信部と
    を有する前記ネットワーク上の複数の情報処理装置を含み、
    前記複数の情報処理装置のうち、スケジューラとしての優先度の順位が第1の所定の順位以上の情報処理装置は前記スケジューリング部の機能を有効にし、残りの情報処理装置は前記スケジューリング部の機能を無効にする情報処理システム。
  14. 前記残りの情報処理装置は、前記クライアントまたは前記ノードとして機能する、請求項13に記載の情報処理システム。
  15. 前記複数の情報処理装置のうち、前記スケジューラとしての優先度の順位が前記第1の所定の順位以上であって第2の所定の順位以上である情報処理装置は、マスタスケジューラとして機能し、
    前記複数の情報処理装置のうち、前記スケジューラとしての優先度の順位が前記第1の所定の順位以上であって第2の所定の順位よりも下である情報処理装置は、スレーブスケジューラとして機能し、
    前記スレーブスケジューラとして機能する情報処理装置は、前記マスタスケジューラとして機能する情報処理装置の前記スケジューリング部の機能のうちの一部を代行する、請求項13に記載の情報処理システム。
  16. 前記マスタスケジューラとして機能する情報処理装置の前記スケジューリング部の機能に障害が生じた場合に、前記スレーブスケジューラとして機能する情報処理装置が代わりに前記マスタスケジューラとして機能する、請求項15に記載の情報処理システム。
  17. 前記スケジューラとしての優先度は、前記情報処理装置の現在の処理能力に基づいて算出される、請求項13に記載の情報処理システム。
  18. 前記スケジューラとしての優先度は、前記情報処理装置の将来の処理能力の予測値に基づいて算出される、請求項13に記載の情報処理システム。
  19. 前記スケジューラとしての優先度は、前記情報処理装置の通信状態に基づいて算出される、請求項13に記載の情報処理システム。
JP2011197974A 2011-09-12 2011-09-12 情報処理装置、情報処理方法、記録媒体および情報処理システム Withdrawn JP2013061700A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011197974A JP2013061700A (ja) 2011-09-12 2011-09-12 情報処理装置、情報処理方法、記録媒体および情報処理システム
EP12179789A EP2568380A3 (en) 2011-09-12 2012-08-09 Information processing apparatus, information processing method, recording medium and information processing system
US13/603,762 US8973005B2 (en) 2011-09-12 2012-09-05 Information processing apparatus, information processing method, recording medium and information processing system
CN2012103363722A CN103124228A (zh) 2011-09-12 2012-09-05 信息处理设备、信息处理方法、记录介质和信息处理系统
US14/602,757 US9626217B2 (en) 2011-09-12 2015-01-22 Information processing apparatus, information processing method, recording medium and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011197974A JP2013061700A (ja) 2011-09-12 2011-09-12 情報処理装置、情報処理方法、記録媒体および情報処理システム

Publications (1)

Publication Number Publication Date
JP2013061700A true JP2013061700A (ja) 2013-04-04

Family

ID=46934386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011197974A Withdrawn JP2013061700A (ja) 2011-09-12 2011-09-12 情報処理装置、情報処理方法、記録媒体および情報処理システム

Country Status (4)

Country Link
US (2) US8973005B2 (ja)
EP (1) EP2568380A3 (ja)
JP (1) JP2013061700A (ja)
CN (1) CN103124228A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734902A (zh) * 2013-12-23 2015-06-24 展讯通信(上海)有限公司 测试系统及其服务端
WO2015151548A1 (ja) * 2014-04-03 2015-10-08 ソニー株式会社 電子機器および記録媒体
JP2016530598A (ja) * 2013-06-19 2016-09-29 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited 非集中的な分散型コンピューティング・システム
WO2016151654A1 (ja) * 2015-03-23 2016-09-29 日本電気株式会社 並列処理システム
KR101957239B1 (ko) * 2017-10-24 2019-03-12 성균관대학교산학협력단 작업 처리 방법 및 장치
JP2019212248A (ja) * 2018-06-09 2019-12-12 株式会社A.L.I.Technologies 分散型機械学習システム
JP2021105901A (ja) * 2019-12-27 2021-07-26 富士電機株式会社 情報処理管理装置および情報処理管理方法
CN114846115A (zh) * 2019-12-17 2022-08-02 瓦克化学股份公司 细分的颗粒稳定的水性皮克林乳液和由其制备的颗粒
WO2024150305A1 (ja) * 2023-01-11 2024-07-18 日本電信電話株式会社 無線通信システム

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013061700A (ja) 2011-09-12 2013-04-04 Sony Corp 情報処理装置、情報処理方法、記録媒体および情報処理システム
US9411644B2 (en) * 2014-03-07 2016-08-09 Cavium, Inc. Method and system for work scheduling in a multi-chip system
US9529532B2 (en) 2014-03-07 2016-12-27 Cavium, Inc. Method and apparatus for memory allocation in a multi-node system
US10592459B2 (en) 2014-03-07 2020-03-17 Cavium, Llc Method and system for ordering I/O access in a multi-node environment
US9372800B2 (en) 2014-03-07 2016-06-21 Cavium, Inc. Inter-chip interconnect protocol for a multi-chip system
US9047246B1 (en) 2014-07-31 2015-06-02 Splunk Inc. High availability scheduler
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US10108516B2 (en) 2015-01-29 2018-10-23 Knuedge Incorporated Affinity data collection in a computing system
US20160224379A1 (en) * 2015-01-29 2016-08-04 The Intellisis Corporation Mapping Processes to Processors in a Network on a Chip Computing System
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
CN104795072A (zh) * 2015-03-25 2015-07-22 无锡天脉聚源传媒科技有限公司 一种音频数据的编码方法及装置
CN107710176B (zh) * 2015-07-06 2020-10-30 株式会社理光 信息处理装置、方法、程序、系统和记录介质
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10331569B2 (en) 2016-01-05 2019-06-25 Friday Harbor Llc Packet router buffer management
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10884787B1 (en) * 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
CN110431883B (zh) * 2017-03-31 2024-07-12 英特尔公司 用于多无线电接入技术应用管理的装置、方法及介质
US10639550B2 (en) * 2017-04-18 2020-05-05 Bullguard Ltd System and method for dynamically allocating resources to a game process
US10880184B2 (en) * 2017-06-26 2020-12-29 Seagate Technology Llc Datacenter service flow optimization
CN109582433B (zh) * 2017-09-29 2022-02-01 腾讯科技(深圳)有限公司 一种资源调度方法、装置、云计算系统及存储介质
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US10459766B1 (en) * 2018-08-20 2019-10-29 Bank Of America Corporation System for optimizing resource prioritization based on services efficiency
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US10942773B1 (en) * 2018-11-15 2021-03-09 Amazon Technologies, Inc. Ensemble event scheduling by executing a plurality of schedulers having a probabilistic distribution of ticks to ensure a tick within a threshold time
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
JP2022131053A (ja) * 2021-02-26 2022-09-07 キヤノン株式会社 ゲートウェイ装置、ノード装置、情報処理システム、生産システム、物品の製造方法、ゲートウェイ装置の制御方法、ノード装置の制御方法、制御プログラム、記録媒体
US20210327018A1 (en) * 2021-06-26 2021-10-21 Intel Corporation Morphing computer vision pipeline
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2881305A1 (fr) * 2005-01-24 2006-07-28 France Telecom Systeme et procede pour etablir une relation de type client/serveur dans un reseau pair a pair
JP2007199869A (ja) 2006-01-24 2007-08-09 Univ Nagoya デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構
WO2008026874A2 (en) * 2006-08-31 2008-03-06 Lg Electronics Inc. Method of communicating in wireless network
KR100846796B1 (ko) * 2006-10-02 2008-07-16 삼성전자주식회사 고주파 대역을 통하여 데이터를 송수신하기 위한 무선네트워크에서의 핸드오버 방법 및 장치
KR100911146B1 (ko) * 2006-11-15 2009-08-06 삼성전자주식회사 무선 네트워크에서 핸드오버를 수행하는 방법 및 장치
JP5604920B2 (ja) 2010-03-19 2014-10-15 富士通株式会社 表示制御プログラム、情報処理装置および表示制御方法
JP2013061700A (ja) 2011-09-12 2013-04-04 Sony Corp 情報処理装置、情報処理方法、記録媒体および情報処理システム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016530598A (ja) * 2013-06-19 2016-09-29 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited 非集中的な分散型コンピューティング・システム
CN104734902B (zh) * 2013-12-23 2018-03-23 展讯通信(上海)有限公司 测试系统及其服务端
CN104734902A (zh) * 2013-12-23 2015-06-24 展讯通信(上海)有限公司 测试系统及其服务端
JPWO2015151548A1 (ja) * 2014-04-03 2017-04-13 ソニー株式会社 電子機器および記録媒体
WO2015151548A1 (ja) * 2014-04-03 2015-10-08 ソニー株式会社 電子機器および記録媒体
JP2016181016A (ja) * 2015-03-23 2016-10-13 日本電気株式会社 並列計算装置
CN107408061A (zh) * 2015-03-23 2017-11-28 日本电气株式会社 并行处理系统
KR101818410B1 (ko) 2015-03-23 2018-02-21 닛본 덴끼 가부시끼가이샤 병렬 처리 시스템
WO2016151654A1 (ja) * 2015-03-23 2016-09-29 日本電気株式会社 並列処理システム
CN107408061B (zh) * 2015-03-23 2018-10-19 日本电气株式会社 并行处理系统
US10162675B2 (en) 2015-03-23 2018-12-25 Nec Corporation Parallel processing system
KR101957239B1 (ko) * 2017-10-24 2019-03-12 성균관대학교산학협력단 작업 처리 방법 및 장치
JP2019212248A (ja) * 2018-06-09 2019-12-12 株式会社A.L.I.Technologies 分散型機械学習システム
CN114846115A (zh) * 2019-12-17 2022-08-02 瓦克化学股份公司 细分的颗粒稳定的水性皮克林乳液和由其制备的颗粒
JP2021105901A (ja) * 2019-12-27 2021-07-26 富士電機株式会社 情報処理管理装置および情報処理管理方法
JP7434893B2 (ja) 2019-12-27 2024-02-21 富士電機株式会社 情報処理管理装置および情報処理管理方法
WO2024150305A1 (ja) * 2023-01-11 2024-07-18 日本電信電話株式会社 無線通信システム

Also Published As

Publication number Publication date
US8973005B2 (en) 2015-03-03
EP2568380A2 (en) 2013-03-13
US20130067484A1 (en) 2013-03-14
US9626217B2 (en) 2017-04-18
US20150143379A1 (en) 2015-05-21
CN103124228A (zh) 2013-05-29
EP2568380A3 (en) 2013-03-27

Similar Documents

Publication Publication Date Title
JP2013061700A (ja) 情報処理装置、情報処理方法、記録媒体および情報処理システム
US9693252B1 (en) Detecting device presence for a layer 3 connection using layer 2 discovery information
KR101593765B1 (ko) 네트워크 저장 시스템의 셋업 및 구성
US9678735B2 (en) Data caching among interconnected devices
EP2656215B1 (en) Scheduling and management in a personal datacenter
US8799459B2 (en) Event-driven detection of device presence for layer 3 services using layer 2 discovery information
JP2017525295A (ja) 効率良いアプリケーション同期化をトリガするための方法およびシステム
US9075660B2 (en) Apparatus and method for providing service availability to a user via selection of data centers for the user
KR101602760B1 (ko) p2p 연결을 이용한 클라우드 서비스 트래픽의 절감 방법 및 그 장치
GB2477092A (en) Selecting virtual machine host servers based on client device location
EP2867788A2 (en) System and method for clustering of mobile devices and applications
JP5352367B2 (ja) 仮想マシン起動端末および仮想マシン起動プログラム
CN109428839B (zh) 一种cdn调度方法、设备及系统
WO2013185651A1 (zh) 一种终端能力信息同步方法、系统及设备
CN114765613A (zh) 客户端驱动的云网络访问系统和方法
WO2013097363A1 (zh) 一种调度数据共享装置的方法及系统
CN111357259B (zh) 服务层操作的自适应控制机制
US8279802B1 (en) Cellular-telephone-based servers
CN114143569B (zh) 一种网页录制和直播方法及系统
JP5687255B2 (ja) 端末装置、方法、プログラム及び無線通信システム
CN115733703A (zh) 一种多设备同步播放方法及装置
KR102783722B1 (ko) 로컬 클라우드를 위한 근거리 통신망(lan)과 함께 논스톱 컨트롤러를 사용하는 방법 및 장치
CN116450199A (zh) 节点发布方法、装置及存储介质
KR20170035314A (ko) p2p 연결을 이용한 클라우드 서비스 트래픽의 절감 방법 및 그 장치
WO2006004378A1 (en) Event interfacing method and apparatus between applications and a library of a master on home network

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141202