JP2006092432A - Information processing device, method, and program - Google Patents
Information processing device, method, and program Download PDFInfo
- Publication number
- JP2006092432A JP2006092432A JP2004279525A JP2004279525A JP2006092432A JP 2006092432 A JP2006092432 A JP 2006092432A JP 2004279525 A JP2004279525 A JP 2004279525A JP 2004279525 A JP2004279525 A JP 2004279525A JP 2006092432 A JP2006092432 A JP 2006092432A
- Authority
- JP
- Japan
- Prior art keywords
- function
- information processing
- execution
- peripheral device
- distributed
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
Description
本発明は、情報処理装置および方法並びにプログラムに関し、特に、分散機器の状態変化やネットワークの環境変化を考慮した分散処理ができる情報処理装置および方法並びにプログラムに関する。 The present invention relates to an information processing apparatus, method, and program, and more particularly, to an information processing apparatus, method, and program capable of distributed processing in consideration of a change in the state of a distributed device and a change in a network environment.
近年、グリッドコンピューティングが注目されている。グリッドコンピューティングとは、ネットワークにつながる複数の情報処理装置を協調動作させて高い演算性能を実現する技術である。この技術は例えば、特許文献1乃至5に開示されている。
In recent years, grid computing has attracted attention. Grid computing is a technology that realizes high computing performance by cooperating a plurality of information processing devices connected to a network. This technique is disclosed in
この技術を利用することで、複数の情報処理装置による分散処理が容易に実現可能になる。
しかしながら、特許文献1乃至5等の従来の技術を単体または組合せで利用して分散処理が実行される場合、分散機器の現在の状態を把握することなく、かつ、その実行環境のネットワークとの距離や現在の状態に関わらず、動作可能と仮定された分散機器が実行対象機器として固定されて利用されることになる。
However, when distributed processing is executed by using conventional techniques such as
このため、固定された分散機器の現在の状態やネットワークの現在の環境によっては、分散処理のリアルタイム性が保たれないばかりか、最悪、分散処理の実行が不可能になる恐れがある、という課題があった。換言すると、従来、分散機器の状態変化やネットワークの環境変化を考慮しない分散処理が行われていた、という課題があった。 For this reason, depending on the current state of fixed distributed devices and the current network environment, the real-time performance of distributed processing may not be maintained, and in the worst case, it may become impossible to execute distributed processing. was there. In other words, there has conventionally been a problem that distributed processing that does not take into account state changes of distributed devices and changes in the network environment has been performed.
本発明は、このような状況に鑑みてなされたものであり、分散機器の状態変化やネットワークの環境変化を考慮した分散処理ができるようにするものである。 The present invention has been made in view of such a situation, and makes it possible to perform distributed processing in consideration of a state change of a distributed device and a network environment change.
本発明の情報処理装置は、所定の通信インフラを用いて周辺機器と通信を行うことで、周辺機器と協調動作して所定の機能の分散処理を実行する情報処理装置である。詳細には、本発明の情報処理装置は、ソフトウエアとしての複数の機能要素から構成される機能を実行対象として、情報処理装置自身と周辺機器のそれぞれが略現時点で要求しているハードウエア条件、実行対象が略現時点で要求しているソフトウエア条件、および、通信インフラの略現時点の帯域に基づいて、情報処理装置自身と周辺機器とによる実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、実行対象を構成する複数の機能要素のそれぞれの処理を、情報処理装置自身と周辺機器のうちのいずれかに割り振る正当性判断手段と、正当性判断手段により正当性がないと判断された場合、実行対象を自分自身で実行し、正当性判断手段により正当性があると判断された場合、実行対象を構成する複数の機能要素のうちの、正当性判断手段により情報処理装置自身に割り振られた第1の機能要素を自分自身で実行し、正当性判断手段により周辺機器に割り振られた第2の機能要素を周辺機器に実行させる制御を行い、第1の機能要素と第2の機能要素とのそれぞれの実行結果を合成することで、実行対象の分散処理を実行する機能実行手段とを備えることを特徴とする。 The information processing apparatus of the present invention is an information processing apparatus that performs distributed processing of a predetermined function in cooperation with the peripheral device by performing communication with the peripheral device using a predetermined communication infrastructure. Specifically, the information processing apparatus according to the present invention is configured to execute a function composed of a plurality of functional elements as software, and the hardware conditions currently requested by the information processing apparatus itself and each peripheral device are substantially Based on the software conditions that the execution target is requesting at the present time and the current bandwidth of the communication infrastructure, the validity of the execution of the distributed processing of the execution target by the information processing device itself and the peripheral device is determined. If it is determined that the process is valid, the process of each of the plurality of functional elements constituting the execution target is allocated to either the information processing apparatus itself or the peripheral device, and the validity determination unit When it is determined that the execution target is not legitimate, the execution target is executed by itself. Among the functional elements, the first functional element assigned to the information processing apparatus itself by the validity judging means is executed by itself, and the second functional element assigned to the peripheral equipment by the validity judging means is used as the peripheral equipment. And a function execution means for executing the distributed processing to be executed by combining the execution results of the first function element and the second function element.
通信インフラを用いて通信を行うことが可能な他の情報処理装置の中から、実行対象を構成する複数の機能要素のうちの少なくとも1つを保有し、かつ、略現在それを実行可能な他の情報処理装置を周辺機器として検索する検索手段をさらに設け、正当性判断手段は、情報処理装置自身と検索手段により検索された周辺機器とによる実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、実行対象を構成する複数の機能要素のうちの、周辺機器が略現在実行可能な機能要素を第2の機能要素として周辺機器に割り当て、それ以外の機能要素を第1の機能要素として情報処理装置自身に割り当てるようにすることができる。 Other information processing apparatuses that can communicate using a communication infrastructure, and that have at least one of a plurality of functional elements that constitute an execution target, and that can currently execute it The information processing apparatus is further provided with a search means for searching as a peripheral device, and the validity determination means determines the validity of the execution of the distributed processing to be executed by the information processing apparatus itself and the peripheral device searched by the search means. If it is determined that the function is legitimate, a function element that can be executed by the peripheral device substantially among the plurality of function elements constituting the execution target is assigned to the peripheral device as the second function element, and other functions The element can be assigned to the information processing apparatus itself as the first functional element.
本発明の情報処理方法は、所定の通信インフラを用いて周辺機器と通信を行うことで、周辺機器と協調動作して所定の機能の分散処理を実行する情報処理装置の情報処理方法である。詳細には、本発明の情報処理方法は、ソフトウエアとしての複数の機能要素から構成される機能を実行対象として、情報処理装置自身と周辺機器のそれぞれが略現時点で要求しているハードウエア条件、実行対象が略現時点で要求しているソフトウエア条件、および、通信インフラの略現時点の帯域に基づいて、情報処理装置自身と周辺機器とによる実行対象の分散処理の実行について正当性を判断し、正当性があると判断した場合、実行対象を構成する複数の機能要素のそれぞれの処理を、情報処理装置自身と周辺機器のうちのいずれかに割り振る正当性判断ステップと、正当性判断ステップの処理により正当性がないと判断された場合、実行対象を情報処理装置自身に実行させる制御を行い、正当性判断手段により正当性がないと判断された場合、実行対象を構成する複数の機能要素のうちの、正当性判断ステップの処理により情報処理装置自身に割り振られた第1の機能要素を情報処理装置自身に実行させる制御を行い、正当性判断ステップの処理により周辺機器に割り振られた第2の機能要素を周辺機器に実行させる制御を行い、第1の機能要素と第2の機能要素とのそれぞれの実行結果を合成することで、実行対象の分散処理の実行を制御する機能実行制御ステップとを含むことを特徴とする。 The information processing method of the present invention is an information processing method for an information processing apparatus that performs distributed processing of a predetermined function in cooperation with a peripheral device by communicating with the peripheral device using a predetermined communication infrastructure. Specifically, the information processing method according to the present invention has a hardware condition that each of the information processing apparatus itself and the peripheral device requests substantially at the present time, with a function composed of a plurality of functional elements as software being executed. Based on the software conditions that the execution target is currently requesting and the current bandwidth of the communication infrastructure, the validity of the distributed processing executed by the information processing device itself and peripheral devices is judged. If it is determined that there is a legitimacy, the processing of each of the plurality of functional elements constituting the execution target is assigned to either the information processing apparatus itself or the peripheral device, and the legitimacy judgment step When it is determined that the processing is not legitimate, the information processing apparatus itself is controlled to execute the execution target, and the legitimacy judging unit judges that the legitimacy is not legitimate. In this case, control is performed to cause the information processing apparatus itself to execute the first functional element allocated to the information processing apparatus itself by the process of the validity determination step among the plurality of functional elements constituting the execution target. Execute by controlling the peripheral device to execute the second functional element allocated to the peripheral device by the processing of the determination step, and by combining the execution results of the first functional element and the second functional element And a function execution control step for controlling the execution of the target distributed processing.
本発明のプログラムは、所定の通信インフラを用いて周辺機器と通信を行うことで、周辺機器と協調動作して所定の機能の分散処理を実行する主装置と、周辺機器とを制御するコンピュータに実行させるプログラムである。詳細には、本発明のプログラムは、ソフトウエアとしての複数の機能要素から構成される機能を実行対象として、主装置と周辺機器のそれぞれが略現時点で要求しているハードウエア条件、実行対象が略現時点で要求しているソフトウエア条件、および、通信インフラの略現時点の帯域に基づいて、主装置と周辺機器とによる実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、実行対象を構成する複数の機能要素のそれぞれの処理を、主装置と周辺機器のうちのいずれかに割り振る正当性判断ステップと、正当性判断ステップの処理により正当性がないと判断された場合、実行対象を主装置に実行させる制御を行い、正当性判断手段により正当性がないと判断された場合、実行対象を構成する複数の機能要素のうちの、正当性判断ステップの処理により主装置に割り振られた第1の機能要素を主装置に実行させる制御を行い、正当性判断ステップの処理により周辺機器に割り振られた第2の機能要素を周辺機器に実行させる制御を行い、第1の機能要素と第2の機能要素とのそれぞれの実行結果を合成することで、実行対象の分散処理の実行を制御する機能実行制御ステップとを含むことを特徴とする。 The program of the present invention is a computer that controls a peripheral device and a main device that performs a distributed operation of a predetermined function in cooperation with the peripheral device by communicating with the peripheral device using a predetermined communication infrastructure. It is a program to be executed. Specifically, the program according to the present invention has a function composed of a plurality of functional elements as software as execution targets, and the hardware conditions and execution targets requested by the main device and peripheral devices are almost the same at present. Based on the software conditions requested at the present time and the current bandwidth of the communication infrastructure, the validity of the execution of the distributed processing of the execution target by the main device and the peripheral device is judged and valid. If it is determined that there is no legitimacy due to the legitimacy determination step of allocating the processing of each of the plurality of functional elements constituting the execution target to either the main device or the peripheral device and the legitimacy determination step If it is determined, control is performed to cause the execution target to be executed by the main device, and if the validity determination means determines that the execution target is not valid, a plurality of functional elements constituting the execution target are required. The second functional element assigned to the peripheral device by the process of the legitimacy determination step is performed to control the main apparatus to execute the first functional element allocated to the main apparatus by the legitimacy judgment step process. A function execution control step for controlling the execution of the distributed processing to be executed by combining the execution results of the first functional element and the second functional element. It is characterized by that.
本発明の情報処理装置および方法、並びにプログラムにおいては、所定の通信インフラを用いて周辺機器と通信が行われることで、周辺機器と協調動作して所定の機能の分散処理が実行される。詳細には、ソフトウエアとしての複数の機能要素から構成される機能が実行対象とされて、情報処理装置自身または主装置自身(以下、情報処理装置のみを記述すると周辺機器のそれぞれが略現時点で要求しているハードウエア条件、実行対象が略現時点で要求しているソフトウエア条件、および、通信インフラの略現時点の帯域に基づいて、情報処理装置自身と周辺機器とによる実行対象の分散処理の実行についての正当性が判断される。正当性がないと判断された場合、実行対象が情報処理装置自身単体により実行される。これに対して、正当性があると判断された場合、上述した略現時点のハードウエアおよびソフトウエア条件並びに通信インフラの略現在の帯域に基づいて、実行対象を構成する複数の機能要素のそれぞれの処理が、情報処理装置自身と周辺機器のうちのいずれかに割り振られ、情報処理装置自身に割り振られた第1の機能要素が情報処理装置自身により実行され、周辺機器に割り振られた第2の機能要素が周辺機器により実行され、第1の機能要素と第2の機能要素とのそれぞれの実行結果が合成されることで、実行対象の分散処理が実行される。 In the information processing apparatus, method, and program according to the present invention, communication with a peripheral device is performed using a predetermined communication infrastructure, whereby distributed processing of a predetermined function is executed in cooperation with the peripheral device. Specifically, a function composed of a plurality of functional elements as software is targeted for execution, and the information processing device itself or the main device itself (hereinafter, only the information processing device is described, each of the peripheral devices is substantially Based on the requested hardware conditions, the software conditions that the execution target is requesting at the present time, and the approximate current bandwidth of the communication infrastructure, the distributed processing of the execution targets by the information processing device itself and peripheral devices When it is determined that there is no validity, the execution target is executed by the information processing apparatus itself. Based on the current hardware and software conditions and the current bandwidth of the communication infrastructure, the processing of each of the plurality of functional elements constituting the execution target is The first functional element allocated to one of the information processing apparatus itself and the peripheral device, the first functional element allocated to the information processing apparatus itself is executed by the information processing apparatus itself, and the second functional element allocated to the peripheral apparatus is The execution processing is executed by the peripheral device, and the execution results of the first functional element and the second functional element are combined to execute the distributed processing to be executed.
以上のごとく、本発明によれば、所定の機能の分散処理が可能になる。特に、分散機器の状態変化やネットワークの環境変化を考慮した分散処理が可能になる。 As described above, according to the present invention, it is possible to perform distributed processing of a predetermined function. In particular, distributed processing can be performed in consideration of changes in the state of distributed devices and changes in the network environment.
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。 Embodiments of the present invention will be described below. Correspondences between constituent elements described in the claims and specific examples in the embodiments of the present invention are exemplified as follows. This description is to confirm that specific examples supporting the invention described in the claims are described in the embodiments of the invention. Therefore, even though there are specific examples that are described in the embodiment of the invention but are not described here as corresponding to the configuration requirements, the specific examples are not included in the configuration. It does not mean that it does not correspond to a requirement. On the contrary, even if a specific example is described here as corresponding to a configuration requirement, this means that the specific example does not correspond to a configuration requirement other than the configuration requirement. not.
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。 Further, this description does not mean that all the inventions corresponding to the specific examples described in the embodiments of the invention are described in the claims. In other words, this description is an invention corresponding to the specific example described in the embodiment of the invention, and the existence of an invention not described in the claims of this application, that is, in the future, a divisional application will be made. Nor does it deny the existence of an invention added by amendment.
本発明によれば、情報処理装置が提供される。この情報処理装置(例えば、図1の情報処理装置1や2)は、所定の通信インフラ(例えば、図1のネットワーク3を含む通信インフラ)を用いて周辺機器(例えば、図1の情報処理装置1に着目している場合には情報処理装置2であり、情報処理装置2に着目している場合には情報処理装置1である)と通信を行うことで、前記周辺機器と協調動作して所定の機能の分散処理を実行する情報処理装置である。詳細にはこの情報処理装置は、ソフトウエアとしての複数の機能要素から構成される機能(例えば、図3の機能要素A,B,C,Dから構成される機能Pや、機能要素A,D,E,Fから構成される機能Q)を実行対象として、前記情報処理装置自身と前記周辺機器のそれぞれが略現時点で要求しているハードウエア条件、前記実行対象が略現時点で要求しているソフトウエア条件(例えば、これらのハードウエア条件やソフトウエア条件として、図11の情報処理装置1の機器情報、図12の情報処理装置2の機器情報、および、図13の機能Qの機能情報のそれぞれの各項目のうちの少なくとも1つの記述値が利用可能である)、および、前記通信インフラの略現時点の帯域(例えば、図4のステップS4の算出値であり、算出方法の具体例については後述する)に基づいて、前記情報処理装置自身と前記周辺機器とによる前記実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、前記実行対象を構成する複数の前記機能要素のそれぞれの処理を、前記情報処理装置自身と前記周辺機器のうちのいずれかに割り振る正当性判断手段(例えば、図1の情報処理コントローラ11−1または11−2に設けられる図2の分散正当性判断部64−1または64−2)と、前記正当性判断手段により正当性がないと判断された場合、前記実行対象を自分自身で実行し、前記正当性判断手段により正当性があると判断された場合、前記実行対象を構成する複数の前記機能要素のうちの、前記正当性判断手段により前記情報処理装置自身に割り振られた第1の機能要素を自分自身で実行し、前記正当性判断手段により前記周辺機器に割り振られた第2の機能要素を前記周辺機器に実行させる制御を行い、前記第1の機能要素と前記第2の機能要素とのそれぞれの実行結果を合成することで、前記実行対象の分散処理を実行する機能実行手段(例えば、図1の情報処理コントローラ11−1または11−2に設けられる図2の分散機能実行部65−1または65−2)とを備えることを特徴とする。
According to the present invention, an information processing apparatus is provided. This information processing apparatus (for example, the
この情報処理装置(例えば、図1と図2の情報処理装置2)は、前記通信インフラを用いて通信を行うことが可能な他の情報処理装置の中から、前記実行対象を構成する複数の前記機能要素のうちの少なくとも1つを保有し、かつ、略現在それを実行可能な他の情報処理装置(例えば、図3の機能Qに含まれる機能要素A,D,E,Fのうちの機能要素A,Dを含む機能Pを保有する情報処理装置1)を前記周辺機器として検索する検索手段(例えば、図1の情報処理コントローラ11−1または11−2に設けられる図2の分散機器検索部63−1または63−2)をさらに設け、前記正当性判断手段は、前記情報処理装置自身と前記検索手段により検索された前記周辺機器とによる前記実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、前記実行対象を構成する複数の前記機能要素のうちの、前記周辺機器が略現在実行可能な機能要素を前記第2の機能要素として前記周辺機器に割り当て、それ以外の機能要素を前記第1の機能要素として前記情報処理装置自身に割り当てる(例えば、図14に示されるように、機能Qに含まれる機能要素A,D,E,Fのうちの、機能要素A,Dを情報処理装置(周辺機器)1に割り当て、機能要素E,Fを情報処理装置2自身に割り当てる)ようにすることができる。
The information processing apparatus (for example, the
本発明によれば、情報処理方法が提供される。この情報処理方法は、所定の通信インフラ(例えば、図1のネットワーク3を含む通信インフラ)を用いて周辺機器(例えば、図1の情報処理装置1に着目している場合には情報処理装置2であり、情報処理装置2に着目している場合には情報処理装置1である)と通信を行うことで、前記周辺機器と協調動作して所定の機能の分散処理を実行する情報処理装置(例えば、図1の情報処理装置1や2)の情報処理方法である。詳細には、この情報処理方法は、ソフトウエアとしての複数の機能要素から構成される機能を実行対象として、前記情報処理装置自身と前記周辺機器のそれぞれが略現時点で要求しているハードウエア条件、前記実行対象が略現時点で要求しているソフトウエア条件、および、前記通信インフラの略現時点の帯域に基づいて、前記情報処理装置自身と前記周辺機器とによる前記実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、前記実行対象を構成する複数の前記機能要素のそれぞれの処理を、前記情報処理装置自身と前記周辺機器のうちのいずれかに割り振る正当性判断ステップ(例えば、図4の「分散準備処理」のうちのステップS7以降の処理)と、前記正当性判断ステップの処理により正当性がないと判断された場合、前記実行対象を前記情報処理装置自身に実行させる制御を行い、前記正当性判断手段により正当性があると判断された場合、前記実行対象を構成する複数の前記機能要素のうちの、前記正当性判断ステップの処理により前記情報処理装置自身に割り振られた第1の機能要素を前記情報処理装置自身に実行させる制御を行い、前記正当性判断ステップの処理により前記周辺機器に割り振られた第2の機能要素を前記周辺機器に実行させる制御を行い、前記第1の機能要素と前記第2の機能要素とのそれぞれの実行結果を合成することで、前記実行対象の分散処理の実行を制御する機能実行制御ステップ(例えば、図6と図7の「実行元による機能実行処理」)とを含むことを特徴とする。
According to the present invention, an information processing method is provided. This information processing method uses a predetermined communication infrastructure (for example, a communication infrastructure including the
本発明よれば、プログラムが提供される。このプログラムは、上述した本発明の情報処理方法に対応するプログラムであって、例えば図1の情報処理コントローラ11−1や11−2等のコンピュータにより実行されるプログラムである。なお、この本発明のプログラムで言う主装置とは、上述した本発明の情報処理方法で言う情報処理装置に対応する。 According to the present invention, a program is provided. This program is a program corresponding to the information processing method of the present invention described above, and is executed by a computer such as the information processing controllers 11-1 and 11-2 in FIG. The main device referred to in the program of the present invention corresponds to the information processing device referred to in the information processing method of the present invention described above.
さらに本発明によれば、当然ながら、上述した本発明のプログラムが記録された記録媒体も提供される。 Furthermore, according to the present invention, of course, a recording medium on which the above-described program of the present invention is recorded is also provided.
次に、図面を参照して、本発明の実施の形態について説明する。 Next, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明が適用される情報処理システムの構成例を示している。換言すると、図1は、本発明が適用されるN個(Nは、1以上の任意の整数値である。ただし図1の例では2とされている)の情報処理装置からなる情報処理システムの構成例を示している。 FIG. 1 shows a configuration example of an information processing system to which the present invention is applied. In other words, FIG. 1 shows an information processing system composed of N information processing devices to which the present invention is applied (N is an arbitrary integer value of 1 or more, but 2 in the example of FIG. 1). The example of a structure is shown.
図1に示されるように、この情報処理システムは、情報処理装置1,2のそれぞれが所定のネットワーク3を介して相互に接続されることで構成されている。
As shown in FIG. 1, this information processing system is configured by connecting
以下、係る情報処理装置1,2のハードウエア構成例について説明していく。はじめに、情報処理装置1のハードウエア構成例について説明する。
Hereinafter, a hardware configuration example of the
情報処理装置1は、情報処理コントローラ11−1、ネットワークインタフェース12−1、メインメモリ13−1、記憶装置14−1、および、ドライブ15−1を含むように構成される。
The
情報処理コントローラ11−1は、メインメモリ13−1や記憶装置14−1に記憶された各種のプログラムを実行し、情報処理装置1全体を制御する。
The information processing controller 11-1 executes various programs stored in the main memory 13-1 and the storage device 14-1, and controls the entire
情報処理コントローラ11−1は、メインプロセスユニット(MPU : Main Processing Unit)21−1、および、サブプロセスユニット(SPU : Sub Processing Unit)31−1乃至33−1のそれぞれがバス51−1を介して相互に接続されることで構成されている。 The information processing controller 11-1 includes a main process unit (MPU) 21-1 and sub-process units (SPUs) 31-1 to 33-1 via a bus 51-1. Are connected to each other.
MPU21−1には、専用のメモリ22−1が接続されている。従って、MPU21−1は、メインメモリ13−1等からロードしたデータやプログラムを、メモリ22−1に一時的に記憶させることができる。そして、MPU21−1は、メモリ22−1からデータやプログラムを読み出し、それらのデータやプログラムに基づいて各種処理を実行することができる。 A dedicated memory 22-1 is connected to the MPU 21-1. Therefore, the MPU 21-1 can temporarily store data and programs loaded from the main memory 13-1 and the like in the memory 22-1. The MPU 21-1 can read out data and programs from the memory 22-1, and can execute various processes based on the data and programs.
例えばMPU21−1は、SPU31−1乃至33−1によるプログラムの実行のスケジュール管理、および、情報処理コントローラ11−1(情報処理装置1)全体の管理を行うための各種処理を実行することができる。 For example, the MPU 21-1 can execute various processes for performing schedule management of program execution by the SPUs 31-1 to 33-1 and managing the entire information processing controller 11-1 (information processing apparatus 1). .
また例えば、MPU21−1は、分散処理を実行する他の情報処理装置の管理を行うための各種処理を実行することができる。ここで言う他の情報処理装置とは、図1の例では、情報処理装置2が該当する
Further, for example, the MPU 21-1 can execute various processes for managing other information processing apparatuses that execute distributed processes. The other information processing apparatus mentioned here corresponds to the
このように、MPU21−1は、管理のためのプログラムを実行するように構成されていると言える。ただし、MPU21−1は、管理のためのプログラム以外のプログラムを実行するように構成することもできる。この場合、MPU21−1はSPUとして機能する。 Thus, it can be said that the MPU 21-1 is configured to execute a management program. However, the MPU 21-1 can be configured to execute a program other than the management program. In this case, the MPU 21-1 functions as an SPU.
SPU31−1乃至33−1のそれぞれは、MPU21−1の制御に基づいて、並列的かつ独立にプログラムを実行してデータを処理する。さらに、必要に応じて、MPU21−1が実行するプログラムが、SPU31−1乃至33−1のそれぞれが実行するプログラムのそれぞれと連携して動作するように構成することも可能である。 Each of the SPUs 31-1 to 33-1 processes data by executing programs in parallel and independently based on the control of the MPU 21-1. Furthermore, if necessary, the program executed by the MPU 21-1 can be configured to operate in cooperation with each of the programs executed by the SPUs 31-1 to 33-1.
SPU31−1乃至33−1のそれぞれには、専用のメモリ41−1乃至43−1のそれぞれが接続されている。従って、SPU31−1乃至33−1のそれぞれは、自分自身専用のメモリ41−1乃至43−1のそれぞれに対して、データやプログラムを必要に応じて一時的に記憶させることができる。そして、SPU31−1乃至33−1のそれぞれは、自分自身専用のメモリ41−1乃至43−1のそれぞれからデータやプログラムを読み出し、それらのデータやプログラムに基づいて各種の処理を実行することができる。 Dedicated memories 41-1 to 43-1 are connected to the SPUs 31-1 to 33-1 respectively. Accordingly, each of the SPUs 31-1 to 33-1 can temporarily store data and programs in the memories 41-1 to 43-1 dedicated to the SPU 31-1 to 33-1 as necessary. Each of the SPUs 31-1 to 33-1 can read data and programs from the memories 41-1 to 43-1 dedicated to the SPUs 31-1 to 33-1 and execute various processes based on the data and programs. it can.
このように、図1の例では、情報処理装置1には3つのSPU31−1乃至33−1が設けられている。ただし当然ながら、SPUの個数は、図1の例に限定されず任意の個数で構わない。
As described above, in the example of FIG. 1, the
係る構成の情報処理コントローラ11−1には、ネットワークインタフェース12−1、メインメモリ13−1、記憶装置14−1、およびドライブ15−1が接続されている。より正確には図1の例では、情報処理コントローラ11−1のうちの、MPU21−1にはネットワークインタフェース12−1およびメインメモリ13−1が接続されており、バス51−1には記憶装置14−1およびドライブ15−1が接続されている。 The information processing controller 11-1 having such a configuration is connected to the network interface 12-1, the main memory 13-1, the storage device 14-1, and the drive 15-1. More precisely, in the example of FIG. 1, the network interface 12-1 and the main memory 13-1 are connected to the MPU 21-1 of the information processing controller 11-1, and a storage device is connected to the bus 51-1. 14-1 and the drive 15-1 are connected.
ネットワークインタフェース12−1は、例えば、モデム、ターミナルアダプタ、無線通信機器等より構成される。係る構成のネットワークインタフェース12−1は、ネットワーク3を介する他の情報処理装置との間の通信を制御する。ここで言う他の情報処理装置とは、図1の例では、情報処理装置2が該当する
The network interface 12-1 is configured by, for example, a modem, a terminal adapter, a wireless communication device, and the like. The network interface 12-1 having such a configuration controls communication with other information processing apparatuses via the
メインメモリ13−1は、例えばRAM(Random Access Memory)等により構成される。メインメモリ13−1には、MPU21−1およびSPU31−1乃至33−1のうちの少なくとも1つが実行する各種のプログラムや、それらの各種のプログラムの実行時に利用される若しくは生成される各種データが適宜記憶される。 The main memory 13-1 is composed of, for example, a RAM (Random Access Memory). The main memory 13-1 stores various programs executed by at least one of the MPU 21-1 and the SPUs 31-1 to 33-1 and various data used or generated when executing these various programs. Stored as appropriate.
記憶装置14−1は、例えば、フラッシュメモリ、ハードディスクドライブ等の1以上の外部記憶装置により構成される。即ち、記憶装置14−1は、複数個の外部記憶装置から構成されることも多々ある。記憶装置14−1には、MPU21−1およびSPU31−1乃至33−1のうちの少なくとも1つが実行する各種のプログラムや、それらの各種のプログラムの実行時に利用される若しくは生成される各種データが適宜記憶される。さらに、記憶装置14−1には、情報処理コントローラ11−1から供給されたデータ等、その他のデータも適宜記憶される。 The storage device 14-1 is configured by one or more external storage devices such as a flash memory and a hard disk drive, for example. That is, the storage device 14-1 is often composed of a plurality of external storage devices. The storage device 14-1 stores various programs executed by at least one of the MPU 21-1 and the SPUs 31-1 to 33-1, and various data used or generated when executing these various programs. Stored as appropriate. Further, the storage device 14-1 appropriately stores other data such as data supplied from the information processing controller 11-1.
ドライブ15−1は、必要に応じてバス51−1に接続される。ドライブ15−1には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブル記録媒体16−1が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶装置14−1やメインメモリ13−1等にインストールされる。 The drive 15-1 is connected to the bus 51-1 as necessary. A removable recording medium 16-1 made of a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is appropriately attached to the drive 15-1, and a computer program read therefrom is stored in the storage device 14 as necessary. -1 and the main memory 13-1.
以上、情報処理装置1の構成例について説明した。
The configuration example of the
情報処理装置2も、上述した情報処理装置1と基本的に同様の構成を有する。即ち、図1に示される情報処理装置2の各ブロックのそれぞれは、ハイフォン“−”の前の符号が同一の情報処理装置1のブロックに対応する。例えば、情報処理装置2の情報処理コントローラ11−2は、情報処理装置1の情報処理コントローラ11−1に対応する。このように、情報処理装置2は、情報処理装置1と基本的に同様の構成を有することから、情報処理装置1と基本的に同様の動作(処理)を行うことが当然ながらできる。
The
また、情報処理装置1,2のそれぞれは、上述した構成に限定されず、必要に応じて、各種機能を追加したり削除したりすることが可能であり、各種機能のそれぞれに対応した構成(ブロック等)をそれぞれもつことが可能である。
Further, each of the
さらにまた、図1の例では、ネットワーク3には2台の情報処理装置1,2が接続されているが、ネットワーク3に接続される情報処理装置の台数は、図1の例に限定されず、任意の台数でよい。この場合、ネットワーク3に接続される図示せぬ他の情報処理装置は、情報処理装置1,2と基本的に同様の構成を有していると好適であるが、他の構成を有していても勿論よい。
Furthermore, in the example of FIG. 1, two
係る図1の構成の情報処理装置1,2からなる情報処理システムは、上述したグリッドコンピューティングを実現することが可能である。即ち、例えば情報処理装置1,2は、ネットワーク3を含む通信インフラを利用して相互に通信を行うことで協調動作して、所定の機能を実現する分散処理を実行することができる。この場合、情報処理装置1,2のそれぞれは、例えば図2に示されるような機能的構成を有することができる。即ち、図2は、情報処理装置1,2からなる情報処理システムの機能的構成例を示している。
The information processing system including the
以下、情報処理装置1,2の機能的構成例について説明する。はじめに、情報処理装置1の機能的構成例について説明する。
Hereinafter, functional configuration examples of the
メインメモリ13−1には、機能格納部61−1と機器情報格納部62−1とが設けられている。 The main memory 13-1 is provided with a function storage unit 61-1 and a device information storage unit 62-1.
機能格納部61−1には、1以上の機能プログラムが格納される。 The function storage unit 61-1 stores one or more function programs.
機能プログラムとは、ユーザに提供する機能を実現するためのプログラムを指す。例えば、機能プログラムとしては、映像や音声の記録再生機能を実現するためのプログラムや、記録された映像データの中から所定の映像データを探すための検索機能を実現するためのプログラムが存在する。この機能プログラムは、主にSPU31−1乃至33−1のうちの少なくともひとつにより実行される。 The function program refers to a program for realizing a function provided to the user. For example, as the function program, there are a program for realizing a video / audio recording / playback function and a program for realizing a search function for searching predetermined video data from recorded video data. This function program is mainly executed by at least one of the SPUs 31-1 to 33-1.
機能格納部61−1にはさらに、各機能プログラムのそれぞれの識別IDやバージョン、各機能プログラムのそれぞれが要求するソフトウエア条件等を含む情報(以下、機能情報と称する)も格納されている。 The function storage unit 61-1 further stores information (hereinafter referred to as function information) including the identification ID and version of each function program, software conditions required by each function program, and the like.
なお、以下、機能プログラムを、機能と単に称する。また、機能格納部61−1に格納されている機能の具体例については、図3を参照して後述し、機能情報の具体例については、図13を参照して後述する。 Hereinafter, the function program is simply referred to as a function. A specific example of the function stored in the function storage unit 61-1 will be described later with reference to FIG. 3, and a specific example of the function information will be described later with reference to FIG.
機器情報格納部62−1には、情報処理装置1自身の特徴、性能、略現在の状態等を示す情報(以下、機器情報と称する)が格納される。略現在の状態の中には、略現在実行可能な機能も含む。即ち、具体例については図11を参照して後述するが、情報処理装置1の機器情報には、情報処理装置1が要求しているハードウエア条件が主に含まれ、必要に応じて、略現在実行可能な機能が要求しているソフトウエア条件等他の情報も含まれる。
The device information storage unit 62-1 stores information (hereinafter referred to as device information) indicating the characteristics, performance, current state, etc. of the
さらに機器情報格納部62−1には、必要に応じて、他の情報処理装置の機器情報も格納されることもある。即ち、詳細については後述するが、図2の例では、機器情報格納部62−1には、情報処理装置2の機器情報も格納されることがある。
Furthermore, the device information storage unit 62-1 may store device information of other information processing apparatuses as necessary. That is, although details will be described later, in the example of FIG. 2, the device information of the
なお、機能格納部61−1と機器情報格納部62−1とのそれぞれは、図1の例ではメインメモリ13−1に設けられているが、必要に応じて、記憶装置14−1等に設けられてもよい。この場合、機能格納部61−1と機器情報格納部62−1とは特に組になる必要は無い。即ち例えば、機能格納部61−1と機器情報格納部62−1とのうちの一方がメインメモリ13−1に設けられ、他方が記憶装置14−1に設けられてもよい。 Each of the function storage unit 61-1 and the device information storage unit 62-1 is provided in the main memory 13-1 in the example of FIG. 1, but may be stored in the storage device 14-1 or the like as necessary. It may be provided. In this case, the function storage unit 61-1 and the device information storage unit 62-1 do not need to be paired. That is, for example, one of the function storage unit 61-1 and the device information storage unit 62-1 may be provided in the main memory 13-1, and the other may be provided in the storage device 14-1.
情報処理コントローラ11−1には、分散機器検索部63−1乃至機器情報提供部66−1が設けられている。 The information processing controller 11-1 is provided with a distributed device searching unit 63-1 to a device information providing unit 66-1.
より正確には例えば、分散機器検索部63−1乃至機器情報提供部66−1のそれぞれはソフトウエアとして構成され、メインメモリ13−1や記憶装置14−1に格納されている。そこで、情報処理コントローラ11−1は、分散機器検索部63−1乃至機器情報提供部66−1のそれぞれを必要に応じてメインメモリ13−1や記憶装置14−1からロードして、実行する。 More precisely, for example, each of the distributed device searching unit 63-1 to the device information providing unit 66-1 is configured as software and stored in the main memory 13-1 or the storage device 14-1. Therefore, the information processing controller 11-1 loads and executes each of the distributed device searching unit 63-1 to the device information providing unit 66-1 from the main memory 13-1 or the storage device 14-1 as necessary. .
分散機能実行部65−1を除く分散機器検索部63−1乃至機器情報提供部66−1を実行するプロセッサは、主にMPU21−1とされるが、SPU31−1乃至33−1とされてもよいし、或いは、MPU21−1およびSPU31−1乃至33−1のうちの任意の数の任意の組合せとされてもよい。 The processors that execute the distributed device search unit 63-1 to the device information providing unit 66-1 except the distributed function execution unit 65-1 are mainly the MPU 21-1, but are the SPUs 31-1 to 33-1. Alternatively, any number of arbitrary combinations of the MPU 21-1 and the SPUs 31-1 to 33-1 may be used.
同様に、分散機能実行部65−1を実行するプロセッサは、主にSPU31−1乃至33−1のうちの1以上とされるが、MPU21−1とされてもよいし、或いは、MPU21−1およびSPU31−1乃至33−1のうちの任意の数の任意の組合せとされてもよい。例えば、所定の機能が情報処理装置1,2とで分散処理される場合、SPU31−1乃至33−1のうちの1以上は、その機能のうちの情報処理装置1に割り当てられた部分(後述する機能要素に対応)を実行し、かつ、MPU21−1は、情報処理装置2に割り当てられた部分を情報処理装置2に実行させるための制御を行ったり、分散処理全体の管理を行うことで、分散機能実行部65−1を実行してもよい。
Similarly, the processor that executes the distributed function execution unit 65-1 is mainly one or more of the SPUs 31-1 to 33-1, but may be the MPU 21-1 or the MPU 21-1. And any number of arbitrary combinations of SPUs 31-1 to 33-1 may be used. For example, when a predetermined function is distributedly processed by the
分散機器検索部63−1は、機能格納部61−1に格納されている所定の機能が実行される場合、その機能の分散機器の候補となる周辺機器を検索する。なお、ここで言う分散機器とは、その機能の分散処理を負担させる機器を指す。また、ここで言う周辺機器とは、ネットワーク3に接続されている情報処理装置のうちの、情報処理装置1自身を除く他の情報処理装置を指す。従って、例えば図1と図2の例では、情報処理装置2が、周辺機器として分散機器検索部63−1により検索されることになる。
When a predetermined function stored in the function storage unit 61-1 is executed, the distributed device search unit 63-1 searches for peripheral devices that are candidates for the distributed device of the function. Note that the distributed device here refers to a device that bears distributed processing of the function. Further, the peripheral device referred to here refers to an information processing apparatus other than the
従って、以下、情報処理装置1に着目して説明を行っている場合、情報処理装置1を自機器1と称し、情報処理装置2を周辺機器2と称する。逆に、情報処理装置2に着目して説明を行っている場合、情報処理装置2を自機器2と称し、情報処理装置1を周辺機器1と称する。
Therefore, in the following description, the
このとき、分散機器検索部63−1は、周辺機器2の機器情報を取得し、機器情報格納部62−1に格納する。
At this time, the distributed device search unit 63-1 acquires the device information of the
また、分散機器検索部63−1は、自機器1と周辺機器2との間の通信インフラの略現在の帯域(略現在の通信速度)を算出する。
In addition, the distributed device search unit 63-1 calculates a substantially current band (substantially current communication speed) of the communication infrastructure between the
さらにまた必要に応じて、分散機器検索部63−1は、検索された周辺機器が、実行対象の機能のうちの少なくとも一部分(後述する機能要素)を保有し、かつ、略現在それを実行可能な状態であるか否かを判定する。実行可能な状態とは、実行対象の機能のうちの少なくとも一部分が、メモリマップされたプログラム実行可能領域にロードされている状態を指す。メモリマップされたプログラム実行可能領域とは、例えば図1の例では、メモリ22−1、メモリ41−1乃至43−1等の少なくとも一部の領域を指す。 Furthermore, if necessary, the distributed device search unit 63-1 has at least a part of the execution target function (a functional element described later) in the searched peripheral device and can execute it almost now. It is determined whether or not the current state is correct. The executable state refers to a state in which at least a part of a function to be executed is loaded in a memory-mapped program executable area. For example, in the example of FIG. 1, the memory-executable program executable area refers to at least a part of the memory 22-1, the memories 41-1 to 43-1 and the like.
そして、分散機器検索部63−1は、上述した各種処理結果を分散正当性判断部64−1に提供する。 Then, the distributed device search unit 63-1 provides the above-described various processing results to the distributed validity determination unit 64-1.
なお、分散機器検索部63−1は、ネットワーク3に接続された周辺機器を1つも検索できなかった場合、即ち、ネットワーク3に周辺機器が接続されていない場合、上述した各処理を特に行わずに、その時点で、「周辺機器が存在しない」という処理結果を分散正当性判断部64−1に提供する。
Note that the distributed device search unit 63-1 does not particularly perform the above-described processes when no peripheral device connected to the
分散正当性判断部64−1は、分散機器検索部63−1の処理結果が提供されると、自機器1と周辺機器2とで実行対象の機能の分散処理を実行することについての正当性を判断する。即ち、分散正当性判断部64−1は、自機器1と周辺機器2とで実行対象の機能の分散処理を実行するのが妥当であるか否かを判断する。このとき、分散正当性判断部64−1は、分散機器検索部63−1の処理結果、例えば、分散機器検索部63−1により算出された通信インフラの略現在の帯域を、その判断材料として利用することができる。さらに、分散正当性判断部64−1は、機器情報格納部62−1に格納されている自機器1自身と周辺機器2とのそれぞれの機器情報等を、その判断材料として利用することもできる。
When the processing result of the distributed device search unit 63-1 is provided, the distributed validity judgment unit 64-1 is valid for executing the distributed processing of the function to be executed by the
分散正当性判断部64−1は、自機器1と周辺機器2とで実行対象の機能の分散処理を行うことについて正当性がないと判断した場合、即ち、自機器1のみで実行対象の機能を実行すると判断した場合またはその実行自体を行わないと判断した場合、その判断結果を分散機能実行部65−1に通知する。
When the distributed validity determining unit 64-1 determines that there is no validity in performing the distributed processing of the function to be executed between the
これに対して、分散正当性判断部64−1は、自機器1と周辺機器2とで実行対象の機能の分散処理を行うことについて正当性があると判断した場合、自機器1と周辺機器2とのそれぞれに対する機能の割り振りを行う。即ち、分散正当性判断部64−1は、その機能のうちのどの部分の処理を自機器1で受け持たせ、また、どの部分の処理を周辺機器2で受け持たせるのかを決定する。このとき、分散正当性判断部64−1は、機器情報格納部62−1に格納されている自機器1自身と周辺機器2とのそれぞれの機器情報、および、分散機器検索部63−1から提供された通信インフラの略現在の帯域等を、その割り振りの判断材料として必要に応じて利用することができる。
On the other hand, when the distributed validity determining unit 64-1 determines that the distributed processing of the function to be executed between the
具体的には例えば、詳細については図3を参照して後述するが、機能格納部61−1に格納されている機能がモジュール化されている場合がある。即ち、その機能が複数のモジュールにより構成されている場合がある。このような場合、分散正当性判断部64−1は、その機能のうちのどのモジュールの処理を自機器1で受け持たせ、また、どのモジュールの処理を周辺機器2で受け持たせるのかを決定する。なお、以下、機能を構成する各モジュールのそれぞれを、機能要素と称する。
Specifically, for example, although details will be described later with reference to FIG. 3, the function stored in the function storage unit 61-1 may be modularized. That is, the function may be configured by a plurality of modules. In such a case, the distributed legitimacy determination unit 64-1 determines which module of the functions is to be handled by the
この場合、「周辺機器2は、実行対象の機能を構成する機能要素のうちの少なくとも1つを保有し、かつ、略現在それを実行可能である」ということが、分散機器検索部63−1により認識されて分散正当性判断部64−1に通知されているときには、分散正当性判断部64−1は、実行対象の機能を構成する各機能要素の割り振りを行う際に、周辺機器2で略現在実行可能な機能要素を周辺機器2に割り振り、それ以外の機能要素を自機器1に割り振ることができる。
In this case, “the
以上の内容をまとめると、分散正当性判断部64−1は、機能格納部61−1に格納されている実行対象の機能についての機能情報、および、機器情報格納部62−1に格納されている自機器1と周辺機器2とのそれぞれの機器情報から、自機器1と周辺機器2とのそれぞれが略現在要求しているハードウエア条件と、実行対象の機能が略現在要求しているソフトウエア条件とを認識する。分散正当性判断部64−1は、これらの略現在のハードウエア条件とソフトウエア条件とに加えて、分散機器検索部63−1から通知された通信インフラの略現在の帯域に基づいて、自機器1と周辺機器2とが協調動作して実行対象の分散処理を実行することについての正当性を判断する。
In summary, the distributed validity judgment unit 64-1 is stored in the function information on the function to be executed stored in the function storage unit 61-1, and in the device information storage unit 62-1. From the respective device information of the
そして、分割正当性判断部64−1は、正当性があると判断した場合、これらの略現在のハードウエア条件およびソフトウエア条件並びに通信インフラの帯域等を適宜利用しながら、実行対象の機能を構成する各機能要素のそれぞれを、自機器1と周辺機器2とのうちのいずれか一方に割り振る。このとき必要に応じて、分散正当性判断部64−1は、周辺機器2で略現在実行可能な機能要素を周辺機器2に割り振り、それ以外の機能要素を自機器1に割り振ることができる。
If the division validity determining unit 64-1 determines that there is a validity, the division validity determining unit 64-1 appropriately uses these substantially current hardware conditions and software conditions, the bandwidth of the communication infrastructure, and the like. Each functional element to be configured is allocated to one of the
その後、分割正当性判断部64−1は、その処理結果を分散機能実行部65−1に通知する。 Thereafter, the division validity determining unit 64-1 notifies the distributed function execution unit 65-1 of the processing result.
この通知を受けた分散機能実行部65−1は、機能格納部61−1に格納されている機能のうちの、実行対象の機能を実行する。 Upon receiving this notification, the distributed function execution unit 65-1 executes a function to be executed among the functions stored in the function storage unit 61-1.
詳細には例えば、「自機器1のみで実行対象の機能を実行させる」という内容の情報が処理結果として分散正当性判断部64−1から通知された場合、分散機能実行部65−1は、実行対象の機能の全てを機能格納部61−1からロードして、実行する。
Specifically, for example, when the information indicating that “the function to be executed is executed only by the
これに対して例えば、「自機器1と周辺機器2とで実行対象の機能の分散処理を行わせる」という内容の第1の情報、および、「実行対象の機能を構成する各機能要素のそれぞれの割り振り結果」を示す第2の情報が処理結果として分散正当性判断部64−1から通知された場合、分散機能実行部65−1は、その第2の情報に基づいて、実行対象の機能を構成する各機能要素のうちの、自機器1に割り振られた第1の機能要素を機能格納部61からロードし、かつ、周辺機器2に割り振られた第2の機能要素の実行依頼を周辺機器2に発行する。周辺機器2は、この実行依頼を受けると、第2の機能要素を実行して、その実行結果を自機器1に送信する。分散機能実行部65−1は、第1の機能要素を実行し、かつ、第2の機能要素の実行結果を周辺機器2から取得し、第1の機能要素の実行結果と第2の機能要素の実行結果とを合成する。このようにして、自機器1と周辺機器2とで実行対象の機能の分散処理が行われる。
On the other hand, for example, each of the first information with the content “perform distributed processing of the function to be executed between the
以上の内容をまとめると、実行対象の機能の分散処理の実行に正当性がないと自機器1の分散正当性判断部64−1により判断された場合、分散機器検索部63−1は、実行対象を自分自身で実行する。これに対して、分散機器検索部63−1は、実行対象の機能の分散処理の実行に正当性があると分散正当性判断部64−1により判断された場合、実行対象を構成する複数の機能要素のうちの、分散正当性判断部64−1により自機器1自身に割り振られた第1の機能要素を自分自身で実行し、分散正当性判断部64−1により周辺機器2に割り振られた第2の機能要素を周辺機器2に実行させる制御を行い、第1の機能要素と第2の機能要素とのそれぞれの実行結果を合成することで、実行対象を実行する。
In summary, when the distributed validity determining unit 64-1 of the
ところで、この分散機能実行部65−1に対応する周辺機器2側の分散機能実行部65−2から自機器1に対して、所定の機能を構成する機能要素のうちの少なくとも1つの実行依頼が発行される場合も当然ながらある。このような場合、自機器1の分散機能実行部65−1は、実行依頼を受けた機能要素を機能格納部61−1からロードして実行し、その実行結果を周辺機器2に送信する。このとき、分散機能実行部65−1は、必要に応じてその他情報も周辺機器2に送信する。なお、詳細については後述するように、この実行依頼を受けた時点では、実行依頼された機能要素はロード済みである場合が多く、このような場合、分散機能実行部65−1は、その機能要素を直ちに実行することが可能である。
By the way, the distributed function execution unit 65-2 on the
機器情報提供部66−1は、上述した分散機器検索部63−1に対応する周辺機器2側の分散機器検索部63−2から機器情報の取得依頼を受けたとき、機器情報格納部62−1から自機器1の機器情報を取得して、周辺機器2に送信する(提供する)。
When the device information providing unit 66-1 receives a device information acquisition request from the distributed device search unit 63-2 on the
換言すると、自機器1の分散機器検索部63−1が、上述したように、周辺機器2の機器情報を取得する場合、周辺機器2の機器情報の取得依頼を周辺機器2に対して発行する。
すると、周辺機器2の機器情報提供部66−2は、機器情報格納部62−2から周辺機器2の機器情報を取得して、自機器1に送信してくる。そこで、自機器1の分散機器検索部63−1は、周辺機器2の機器情報を受信し、機器情報格納部62−1に記憶させる。
In other words, when the distributed device search unit 63-1 of the
Then, the device information providing unit 66-2 of the
なお、この機器情報の取得依頼は、周辺機器2宛てに送信されてもよいが、ブロードキャスト信号として送信されてもよい。詳細については後述するが、後者の場合、分散機器検索部63−1は、機器情報を受信することで、その機器情報で特定される周辺機器を認識(検索)することができる。即ち、後者の場合、周辺機器の検索とその機器情報の取得とを一括して行うことが可能になる。
The device information acquisition request may be transmitted to the
以上説明したように、図2の例の情報処理コントローラ11−1においては、4つの分散機器検索部63−1乃至機器情報提供部66−1といった機能ブロックが設けられている。即ち、図2の例では、情報処理コントローラ11−1の処理単位は、4つの分散機器検索部63−1乃至機器情報提供部66−1であると言える。ただし当然ながら、情報処理コントローラ11−1の処理単位は、図2の例に限定されず任意の単位でよい。即ち、情報処理コントローラ11−1にとっては、上述した分散機器検索部63−1乃至機器情報提供部66−1のそれぞれに対応する処理の全てを総合的に実行可能であればよく、その処理単位は特に限定されない。従って例えば、分散機器検索部63−1乃至機器情報提供部66−1を、任意の数の任意の処理を行う機能ブロックに分割または統合することが可能である。 As described above, the information processing controller 11-1 in the example of FIG. 2 is provided with functional blocks such as the four distributed device search units 63-1 to the device information providing unit 66-1. That is, in the example of FIG. 2, it can be said that the processing units of the information processing controller 11-1 are the four distributed device search units 63-1 to the device information providing unit 66-1. However, as a matter of course, the processing unit of the information processing controller 11-1 is not limited to the example of FIG. 2 and may be an arbitrary unit. That is, it is sufficient for the information processing controller 11-1 to be able to comprehensively execute all the processes corresponding to each of the above-described distributed device search unit 63-1 to device information providing unit 66-1, and the processing unit. Is not particularly limited. Therefore, for example, it is possible to divide or integrate the distributed device search unit 63-1 to the device information providing unit 66-1 into functional blocks that perform an arbitrary number of arbitrary processes.
以上、情報処理装置1の機能的構成例について説明した。
Heretofore, the functional configuration example of the
情報処理装置2も、上述した情報処理装置1と基本的に同様の機能的構成を有する。即ち、図2に示される情報処理装置2の各機能ブロックのそれぞれは、ハイフォン“−”の前の符号が同一の情報処理装置1の機能ブロックに対応する。例えば、情報処理装置2の分散正当性判断部64−2と分散機能実行部65−2とのそれぞれは、情報処理装置1の分散正当性判断部64−1と分散機能実行部65−1とのそれぞれに対応する。このように、情報処理装置2は、情報処理装置1と基本的に同様の機能的構成を有することから、情報処理装置1と基本的に同様の動作(処理)を行うことができる。
The
さらにまた、上述したように、ネットワーク3に接続される情報処理装置の台数は、図1の例に限定されず、任意の台数でよい。この場合、ネットワーク3に接続される図示せぬ他の情報処理装置は、情報処理装置1,2と基本的に同様の機能的構成を有していると好適であるが、他の機能的構成を有していても勿論よい。ただし、情報処理装置1または2が、図示せぬ他の情報処理装置も分散機器として利用する場合、即ち、図示せぬ他の情報処理装置に対しても分散処理を負担させる場合、図示せぬ他の情報処理装置は、機器情報提供部66−1,66−2および分散機能実行部65−1,65−2のそれぞれに対応するソフトウエアまたはハードウエアを有している必要がある。
Furthermore, as described above, the number of information processing apparatuses connected to the
次に、図3以降の図面を参照して、係る機能的構成を有する情報処理装置1,2とで実行される所定の機能の分散処理の詳細について説明する。
Next, with reference to FIG. 3 and subsequent drawings, details of the distributed processing of a predetermined function executed by the
なお、以下、周辺機器からの実行依頼ではなく、自機器の判断で所定の機能のうちの少なくとも一部を実行する場合、その自機器を実行元の自機器(情報処理装置)と称する。この場合、後述するように、実行元の自機器が、その機能のうちの少なくとも一部の実行依頼を周辺機器に対して発行することがある。このようなとき、その周辺機器を依頼先の周辺機器(情報処理装置)と称する。 In the following description, when at least a part of a predetermined function is executed based on the determination of the own device, rather than an execution request from a peripheral device, the own device is referred to as an execution source own device (information processing apparatus). In this case, as described later, the execution source device may issue an execution request of at least a part of the function to the peripheral device. In such a case, the peripheral device is referred to as a requested peripheral device (information processing apparatus).
上述したように、情報処理装置1,2は、相互分散可能である環境下に存在している。また、情報処理装置1,2のそれぞれは、実行または保持している機能(プログラム)またはデータの情報を相互交換することが可能である。相互交換される機能としては、例えば画像処理コーデック等のプログラム群が該当する。また、相互交換される情報としては、その機能に必要な情報の他、例えばユーザの嗜好情報等が該当する。これらの機能やデータの抽象度(粒度や階層)は、情報処理システムにおけるロード/実行アーキテクチャや、情報処理システム内の通信インフラの略現在の帯域(略現在の通信速度)によって変化する。ロード/実行アーキテクチャとは、情報処理装置1,2が要求するハードウエア条件や、機能が要求するソフトウエア条件等を指す。
As described above, the
また、上述したように、情報処理装置1,2は、メモリマップされたプログラム実行可能領域にプログラムをロードして実行することができる。例えば図1の例では、情報処理装置1,2は、大容量のプログラム格納領域として利用されるNAND Flash memory等からなる記憶装置14−1,14−2、或いは、メインメモリ13−1,13−2に記憶されている所定の機能を、所定の1以上のプロセッサの実行可能メモリ領域へロードして実行することができる。ここで言うプロセッサとは、図1の例では、MPU21−1およびSPU31−1乃至33−1、並びに、MPU21−2およびSPU31−2乃至33−2のうちの少なくとも1つを指す。従って、ここで言う実行可能メモリ領域とは、図1の例では、メモリ22−1およびメモリ41−1乃至43−1、並びに、メモリ22−2およびメモリ41−2乃至43−2のうちの少なくとも1つの領域を指す。なお、メインメモリ13−1,13−2は、本実施の形態ではプログラム格納領域として取り扱われているが、必要に応じて、実行可能メモリ領域として取り扱うことも可能である。
Further, as described above, the
以上のような情報処理装置1,2は、図3に示されるような機能P,Qのそれぞれを保有しているとする。即ち、図3に示されるように、情報処理装置1の機能格納部61−1には機能Pが格納され、その機能Pの実行指示があった場合には、情報処理コントローラ11−1によりその機能Pがロードされて実行されることが可能であるとする。同様に、情報処理装置2の機能格納部61−2には機能Qが格納され、その機能Qの実行指示があった場合には、情報処理コントローラ11−2によりその機能Qがロードされて実行されることが可能であるとする。
The
さらに、機能格納部61−1には、機能Pの識別IDやバージョン、機能Pが要求する各種ソフトウエア条件等を含む機能情報が、機能Pと対応付けられて格納されているとする。同様に、機能格納部61−2には、機能Qの識別IDやバージョン、機能Qが要求する各種ソフトウエア条件等を含む機能情報が、機能Qと対応付けられて格納されているとする。なお、機能情報の具体例については、図13を参照して後述する。 Furthermore, it is assumed that function information including an identification ID and version of the function P, various software conditions required by the function P, and the like is stored in the function storage unit 61-1 in association with the function P. Similarly, it is assumed that function information including the identification ID and version of the function Q, various software conditions required by the function Q, and the like is stored in the function storage unit 61-2 in association with the function Q. A specific example of the function information will be described later with reference to FIG.
機能Pは、4つの機能要素A,B,C,D、および、データx,yから構成されている。 The function P is composed of four functional elements A, B, C, D and data x, y.
機能要素A,B,C,Dのそれぞれは、同時に変更される共通データが少なく、高い独立性が保たれており、かつ、分散処理可能な単位であるとする。さらにここでは簡略化し、機能要素A,B,C,Dのそれぞれは、共通データが全くなく、全く独立した構成要素群とする。 It is assumed that each of the functional elements A, B, C, and D is a unit that has few common data to be changed at the same time, maintains high independence, and can be distributed. Furthermore, it is simplified here, and each of the functional elements A, B, C, and D has no common data and is a completely independent component group.
データxは、機能Pを実行するために必要なデータを示すとする。データyは、機能Pを実行することによって得られる結果を示すとする。 It is assumed that data x indicates data necessary for executing the function P. Data y represents the result obtained by executing function P.
機能Qは、機能要素A,D,E,F、および、データx,wから構成されているとする。 The function Q is assumed to be composed of functional elements A, D, E, and F and data x and w.
機能要素A,D,E,Fのそれぞれも、同時に変更される共通データが少なく、高い独立性が保たれており、かつ、分散処理可能な単位であるとする。さらにここでは簡略化し、機能要素A,D,E,Fのそれぞれも、共通データが全くなく、全く独立した構成要素群とする。 It is assumed that each of the functional elements A, D, E, and F is a unit that has few common data to be changed at the same time, maintains high independence, and can be distributed. Furthermore, it is simplified here, and each of the functional elements A, D, E, and F has no common data and is a completely independent component group.
データxは、機能Qを実行するために必要なデータを示すとする。データwは、機能Qを実行することによって得られる結果を示すとする。 It is assumed that data x indicates data necessary for executing the function Q. The data w represents the result obtained by executing the function Q.
ここで注目すべき点は、機能要素A,Dおよびデータxは機能P,Qの両者共に存在する共通構成要素である、という点である。これらの共通構成要素は、情報処理装置1,2において、プログラム性能は同一であるとする。プログラム性能とは、実行速度、実時間性能、品質等を指す。
What should be noted here is that the functional elements A and D and the data x are common components that exist in both the functions P and Q. These common components are assumed to have the same program performance in the
以下、この図3に示される機能P,Qがロードされていない状態で、最初に、情報処理装置1が機能Pを実行し、次に、情報処理装置1,2が協調動作して機能Qの分散処理を実行するとする。
Hereinafter, in a state in which the functions P and Q shown in FIG. 3 are not loaded, the
この場合、情報処理装置1,2からなる情報処理システムは、例えば、図4乃至図8に示される各フローチャートに従った処理を実行する。
In this case, the information processing system including the
即ち、図4のフローチャートは、実行元の自機器が実行対象の機能を実行する場合におけるその前処理、即ち、準備処理の例を示している。即ち、図4のフローチャートは、自機器だけでその機能を実行するのか、或いは、自機器と周辺機器との分散処理でその機能を実行するのか等、実行対象の機能の処理形態を判断し、分散処理でその機能を実行すると判定した場合には、その機能を構成する各機能要素の割り振りを行う、といった実行元の自機器が実行する処理の例を示している。以下、このような図4の処理を「分散準備処理」と称する。 That is, the flowchart of FIG. 4 shows an example of pre-processing, that is, preparation processing when the execution source device executes a function to be executed. That is, the flowchart of FIG. 4 determines the processing mode of the function to be executed, such as whether the function is executed only by the own device, or whether the function is executed by distributed processing between the own device and the peripheral device, An example of processing executed by the execution source device such as allocating each functional element constituting the function when it is determined that the function is executed in the distributed processing is shown. Hereinafter, such processing in FIG. 4 is referred to as “distributed preparation processing”.
図5のフローチャートは、実行元の自機器が図4の「分散準備処理」を実行している場合に周辺機器側で実行される処理である。即ち、図5のフローチャートは、図4の「分散準備処理」に必要な情報のうちの周辺機器の機器情報を、周辺機器から実行元の自機器に提供するために、周辺機器が実行する処理の例を示している。以下、このような図5の処理を「機器情報送信処理」と称する。 The flowchart of FIG. 5 is a process executed on the peripheral device side when the execution source device executes the “distribution preparation process” of FIG. That is, the flowchart of FIG. 5 is a process executed by the peripheral device in order to provide the peripheral device information of the information necessary for the “distributed preparation process” of FIG. 4 from the peripheral device to the execution source device. An example is shown. Hereinafter, such processing in FIG. 5 is referred to as “device information transmission processing”.
図6と図7のフローチャートは、実行元の自機器が図4の「分散準備処理」の実行後に実行する処理である。即ち、図6と図7のフローチャートは、自機器自身が所定の機能を実行する、または、自機器が周辺機器と協調動作して所定の機能の分散処理を実行する、といった処理の例を示している。以下、このような図6と図7の処理を「実行元による機能実行処理」と称する。 The flowcharts of FIGS. 6 and 7 are processes executed after the execution of the “distributed preparation process” in FIG. That is, the flowcharts of FIGS. 6 and 7 show an example of processing in which the own device itself executes a predetermined function, or the own device cooperates with the peripheral device to execute distributed processing of the predetermined function. ing. Hereinafter, such processing in FIGS. 6 and 7 is referred to as “function execution processing by the execution source”.
図8のフローチャートは、実行元の自機器が図6と図7(特に図7)の「実行元による機能実行処理」を実行している場合に周辺機器側が実行する処理である。即ち、図8のフローチャートは、実行対象の機能を構成する各機能要素のうちの実行元から要請された機能要素を実行する、といった周辺機器が実行する処理の例を示している。以下、このような図8の処理を「依頼先による機能実行処理」と称する。 The flowchart in FIG. 8 is a process executed by the peripheral device when the execution source device executes the “function execution process by the execution source” in FIGS. 6 and 7 (particularly FIG. 7). That is, the flowchart of FIG. 8 illustrates an example of processing executed by the peripheral device such as executing a functional element requested by the execution source among the functional elements constituting the function to be executed. Hereinafter, such processing in FIG. 8 is referred to as “function execution processing by the request destination”.
ところで、いまの場合、上述したように、図3に示される機能P,Qがロードされていない状態で、最初に、情報処理装置1が機能Pを実行する。従って、最初に、情報処理装置1が実行元の自機器として図4の「分散準備処理」を実行することになる。これに伴い、情報処理装置2が周辺機器として図5の「機器情報送信処理」を実行することになる。その後、情報処理装置1が図6と図7(特に図6)の「実行元による機能実行処理」を実行することになる。
In this case, as described above, the
このように情報処理装置1が機能Pを最初に実行する場合の、情報処理装置1,2の処理の相互の関係が図9のアローチャートに示されている。そこで、以下、図4、図5および図6のフローチャート並びに図9のアローチャートを主に参照して、情報処理装置1が機能Pを最初に実行する場合の情報処理装置1,2の処理について説明する。
The mutual relationship between the processes of the
はじめに、ステップS1において、情報処理装置1の図2の分散機器検索部63−1は、ネットワーク3に接続された周辺機器のサーチを行う。
First, in step S <b> 1, the distributed device search unit 63-1 in FIG. 2 of the
詳細には例えば、ステップS1において、分散機器検索部63−1は、Ethernet(登録商標),IEEE802.11或いはBluetooth等で規定された通信インフラを用いて、ネットワーク3に対してブロードキャスト信号を送信する。即ち、分散機器検索部63−1は、物理層での接続を試みる。そして、分散機器検索部63−1は、その接続後、リンク層やアプリケーション層の接続を行い、最終的に機器情報の受信を行うためのコマンド(上述した機器情報の取得要求に対応)を発行し、それに対する返信を待つ。
Specifically, for example, in step S1, the distributed device search unit 63-1 transmits a broadcast signal to the
この間、情報処理装置2の機器情報提供部66−2は、ステップS21において、周辺機器からサーチを受けたか否かを判定している。
During this time, the device information providing unit 66-2 of the
なお、図5の「機器情報送信処理」においては当然ながら、それを実行する情報処理装置2が自機器となり、図4の「分散準備処理」を実行する情報処理装置1が他機器となる。ただし、これまで、実行元である情報処理装置1に着目して説明を行っており、ここで、図面の記載通りに説明すること、即ち、周辺機器と自機器とを逆転して説明することはいたずらに混乱を招くことになる。そこで、図5の「機器情報送信処理」を説明している範囲内では、自機器や周辺機器といった名称は使用せずに説明していく。
In the “apparatus information transmission process” in FIG. 5, the
ブロードキャスト信号が受信されない限り、ステップS21において、サーチを受けていないと判定されて、処理はステップS21に戻され、サーチを受けたか否かが再度判定される。即ち、いまの場合、ネットワーク3には2台の情報処理装置1,2が接続されているだけなので、情報処理装置1からのブロードキャスト信号が受信されるまで、ステップS21の判定処理が繰り返される。
Unless a broadcast signal is received, it is determined in step S21 that the search has not been received, the process returns to step S21, and it is determined again whether the search has been received. That is, in this case, since only two
従って、ステップS1の処理で情報処理装置1から送信されたブロードキャスト信号が情報処理装置2のネットワークインタフェース12−2に受信されると、ステップS21において、情報処理装置2の機器情報提供部66−2は、それを取得することで、情報処理装置1からサーチを受けたと判定して、処理をステップS22に進める。
Therefore, when the broadcast signal transmitted from the
ステップS22において、情報処理装置2の機器情報提供部66−2は、情報処理装置2自身の機器情報を機器情報格納部62−2から取得して、情報処理装置1に対してネットワークインタフェース12−2およびネットワーク3を介して送信する。
In step S22, the device information providing unit 66-2 of the
この間、ステップS2において、情報処理装置1の分散機器検索部63−1は、周辺機器が存在するか否かを判定している。
During this time, in step S2, the distributed device search unit 63-1 of the
仮に、所定の時間が経過しても、ブロードキャスト信号に対する返信、即ち、周辺機器の機器情報が全く送信されてこない場合、ステップS2において、周辺機器が存在しないと判定されて、「分散準備処理」は終了となる。この場合、自機器1単体で実行対象の機能の実行が可能であるならば、その機能は自機器1のみにより実行される。即ち、詳細については後述するが、ステップS11の処理が完了して「分散準備処理」が終了した場合には、実行対象の機能は自機器と周辺機器との分散処理により実行される。これに対して、ステップS2の処理でNOであると判定された等、それ以外の理由で「分散準備処理」が終了した場合には、その機能は自機器のみにより実行されるか、或いは、その機能は実行されない。
If the reply to the broadcast signal, that is, the device information of the peripheral device is not transmitted at all even if the predetermined time has elapsed, it is determined in step S2 that the peripheral device does not exist, and “distributed preparation process” is performed. Ends. In this case, if the function to be executed can be executed by the
これに対して、いまの場合、上述したようにステップS22の処理で周辺機器2の機器情報が送信されてくるので、情報処理装置1のネットワークインタフェース12−1は、周辺機器2の機器情報を受信することになる。
On the other hand, in this case, since the device information of the
すると、情報処理装置1の分散機器検索部63−1は、ステップS2において、周辺機器2が存在すると判定し、ステップS3において、周辺機器2の機器情報を取得して、機器情報格納部61−1に記憶させる。
Then, the distributed device search unit 63-1 of the
なお、機器情報の具体例については、図11と図12とを参照して後述する。 A specific example of the device information will be described later with reference to FIGS.
ステップS4において、情報処理装置1の分散機器検索部63−1は、自機器1と周辺機器2との間の通信インフラの略現在の帯域(略現在の通信速度)を算出する。
In step S <b> 4, the distributed device search unit 63-1 of the
なお、この通信インフラの略現在の帯域は、後述するステップS9の処理で利用される。ただし、いまの場合には、即ち、情報処理装置1が機能Pを最初に実行する場合には、ステップS9の処理は実行されない。そこで、通信インフラの略現在の帯域の演算方法等については後述する。
Note that the substantially current bandwidth of this communication infrastructure is used in the process of step S9 described later. However, in this case, that is, when the
ステップS5において、情報処理装置1の分散機器検索部63−1は、自機器1の保有機能Pの識別IDと同一の識別IDの機能が、周辺機器2に既にロードされているか否かを判定する。
In step S5, the distributed device search unit 63-1 of the
即ち、このステップS5の処理で(正確には後述するステップS6も含む)、周辺機器2は、実行対象の機能Pを構成する機能要素A,B,C,Dのうちの少なくとも1つを保有し、かつ、略現在それを実行可能な状態であるか否かの判定が行われるのである。
That is, in the process of step S5 (including step S6 to be described later precisely), the
いまの場合、周辺機器2において機能Qはまだロードされていないので、ステップS5において、自機器1の保有機能Pの識別IDと同一の識別IDの機能が、周辺機器2に既にロードされていないと判定されて、「分散準備処理」は終了となる。この場合にも、上述したように、実行対象の機能は自機器のみにより実行されるか、或いは、実行されない。即ち、いまの場合、後述するように、機能Pは情報処理装置1のみにより実行される。
In this case, since the function Q is not yet loaded in the
なお、情報処理装置1が機能Pを最初に実行する場合におけるステップS5の判定処理に関連する事項のうちの、ステップS5の判定処理でNOであると判定されること以外の事項の説明については、ここでは省略し、後述することにする。ステップS5の判定処理でNOであると判定されること以外の事項とは、例えば、機能の識別ID、ステップS5の判定処理のさらなる詳細内容、および、ステップS5の判定処理でYESであると判定された際のそれ以降の処理といった事項を指す。
Of the matters related to the determination process of step S5 when the
情報処理装置1の分散機器検索部63−1は、ステップS5の処理でNOであると判定したこと、即ち、機能Pは自機器1のみにより実行されるべきであることを、分散正当性判断部64−1を介して分散機能実行部65−1に通知すると、「分散準備処理」を終了させる。
The distributed device search unit 63-1 of the
なお、より正確には、分散正当性判断部64−1は、分散機器検索部63−1からの通知を受けると、自機器1単体で機能Pの実行が可能か否かを判断し、実行可能であると判断した場合にのみ、機能Pは自機器1のみにより実行されるべきであることを、分散機能実行部65−1に通知することになる。即ち、分散正当性判断部64−1が実行不可能であると判断した場合には、機能Pは実行されずに、所定のエラー処理が実行されることになる。
More precisely, when receiving the notification from the distributed device search unit 63-1, the distributed validity determining unit 64-1 determines whether or not the function P can be executed by the
ただし、ここでは、分散正当性判断部64−1は、実行可能であると判断して、機能Pは自機器1のみにより実行されるべきであることを、分散機能実行部65−1に通知するとする。この場合、情報処理装置1の分散機能実行部65−1は、この通知を受け取ると、機能Pを実行するための図6の「実行元による機能実行処理」を開始させる。
However, here, the distributed legitimacy determination unit 64-1 determines that it can be executed, and notifies the distributed function execution unit 65-1 that the function P should be executed only by its
即ち、ステップS41において、情報処理装置1の分散機能実行部65−1は、周辺機器2との間で分散実行するか否かを判定する。
That is, in step S <b> 41, the distributed function execution unit 65-1 of the
いまの場合、ステップS5の処理でNOであると判定したこと、即ち、機能Pは自機器1のみにより実行されるべきであることが分散正当性判断部64−1から通知されたので、ステップS41の処理でNOであると判定されて、処理はステップS42に進む。
In this case, since it has been determined that the determination in step S5 is NO, that is, the function P should be executed only by the
このように、情報処理装置1が機能Pを最初に実行する場合においては、ステップS41の判定処理でNOであると判定されることになるので、ステップS41の判定処理でYESであると判定された際のそれ以降の処理については、ここでは省略し、後述することにする。
As described above, when the
ステップS42において、情報処理装置1の分散機能実行部65−1は、機能Pに含まれる全構成要素A,B,C,Dを機能格納部61−1からロードする。
In step S42, the distributed function execution unit 65-1 of the
また、ステップS43において、情報処理装置1の分散機能実行部65−1は、機能Pに含まれる全データx,yを機能格納部61−1からロードする。
In step S43, the distributed function execution unit 65-1 of the
そして、ステップS44において、情報処理装置1の分散機能実行部65−1は、機能Pを実行する。即ち、分散機能実行部65−1は、データx,yを適宜用いて全構成要素A,B,C,Dのそれぞれを実行することで、機能Pを実行する。
In step S44, the distributed function execution unit 65-1 of the
なお、機能Pの実行が完了すると、情報処理装置1による機能Pについての図6の「実行元により機能実行処理」も終了となるが、ここでは、情報処理装置1が機能Pを実行中に、今度は、情報処理装置2が機能Qを実行するための処理を開始したとする。
When the execution of the function P is completed, the “function execution process by the execution source” of FIG. 6 for the function P by the
以下、情報処理装置1が機能Pを実行中に(より正確には、機能Pを実行可能な状態で)情報処理装置2が機能Qを実行する場合における、情報処理装置1,2の処理(以下、機能Q用処理と称する)について説明する。
Hereinafter, processing of the
この機能Q用処理を実現するためには、今度は、情報処理装置2が実行元の自機器として図4の「分散準備処理」を実行することになる。これに伴い、情報処理装置1が周辺機器として図5の「機器情報送信処理」を実行することになる。次に、情報処理装置2が図6と図7(特に図7)の「実行元による機能実行処理」を実行することになる。これに伴い、情報処理装置1が図8の「依頼先による機能実行処理」を実行することになる。
In order to realize the function Q processing, the
このような機能Q用処理の相互の関係が図10のアローチャートに示されている。そこで、以下、図4乃至図8のフローチャート並びに図10のアローチャートを主に参照して、機能Q用処理について説明する。 The mutual relationship of such processing for function Q is shown in the arrow chart of FIG. The function Q process will be described below mainly with reference to the flowcharts of FIGS. 4 to 8 and the arrow chart of FIG.
はじめに、ステップS1において、情報処理装置2の図2の分散機器検索部63−2は、ネットワーク3に接続された周辺機器のサーチを行う。即ち上述したように、分散機器検索部63−2は、ネットワーク3に対してブロードキャスト信号を送信する。
First, in step S <b> 1, the distributed device search unit 63-2 in FIG. 2 of the
この間、情報処理装置1の機器情報提供部66−1は、ステップS21において、周辺機器からサーチを受けたか否かを判定している。
During this time, the device information providing unit 66-1 of the
なお、上述したように、図5の「機器情報送信処理」においては当然ながら、それを実行する情報処理装置1が自機器となり、図4の「分散準備処理」を実行する情報処理装置2が他機器となる。ただし、上述したように、図5の「機器情報送信処理」を説明している範囲内では、自機器や周辺機器といった名称は使用せずに説明していく。
As described above, in the “apparatus information transmission process” in FIG. 5, naturally, the
ステップS1の処理で情報処理装置2から送信されたブロードキャスト信号が情報処理装置1のネットワークインタフェース12−1に受信されると、ステップS21において、機器情報提供部66−1は、それを取得することで、情報処理装置2からサーチを受けたと判定して、処理をステップS22に進める。
When the broadcast signal transmitted from the
ステップS22において、情報処理装置1の機器情報提供部66−1は、情報処理装置1自身の機器情報を機器情報格納部62−1から取得して、情報処理装置2に対してネットワークインタフェース12−1およびネットワーク3を介して送信する。
In step S22, the device information providing unit 66-1 of the
この間、ステップS2において、情報処理装置2の分散機器検索部63−2は、周辺機器が存在するか否かを判定している。
During this time, in step S2, the distributed device search unit 63-2 of the
仮に、所定の時間が経過しても、ブロードキャスト信号に対する返信、即ち、周辺機器の機器情報が全く送信されてこない場合、ステップS2において、周辺機器が存在しないと判定されて、「分散準備処理」は終了となる。この場合、上述したように、機能Qは自機器2のみにより実行されるか或いは実行されない。
If the reply to the broadcast signal, that is, the device information of the peripheral device is not transmitted at all even if the predetermined time has elapsed, it is determined in step S2 that the peripheral device does not exist, and “distributed preparation process” is performed. Ends. In this case, as described above, the function Q is executed only by the
これに対して、いまの場合、上述したようにステップS22の処理で周辺機器1の機器情報が送信されてくるので、情報処理装置2のネットワークインタフェース12−2は、周辺機器1の機器情報を受信することになる。
On the other hand, in this case, since the device information of the
すると、情報処理装置2の分散機器検索部63−2は、ステップS2において、周辺機器1が存在すると判定し、ステップS3において、周辺機器1の機器情報を取得して、機器情報格納部62−2に記憶させる。
Then, the distributed device search unit 63-2 of the
具体的には例えばいま、周辺機器1の機器情報として、図11に示される機器情報が取得されて、機器情報格納部62−2に格納されたとする。
Specifically, for example, assume that the device information shown in FIG. 11 is acquired as device information of the
また、このとき例えば、自機器2の機器情報として、図12に示される機器情報も機器情報格納部62−2に格納されているとする。
At this time, for example, it is assumed that the device information shown in FIG. 12 is also stored in the device information storage unit 62-2 as the device information of the
即ち、図11と図12とのそれぞれは、情報処理装置1,2のそれぞれの機器情報の例を示している。
That is, FIG. 11 and FIG. 12 show examples of device information of the
図11と図12に示されるように、機器情報には、「CPU」、「メモリ」、「動作周波数」、「プロセッサ利用率」、「プロセッサ利用率予測値」、「空きメモリ」、「OFFスケジュール」、および「保持プログラム 識別ID : version」といった項目が設けられている。 As shown in FIGS. 11 and 12, the device information includes “CPU”, “memory”, “operating frequency”, “processor usage rate”, “processor usage rate predicted value”, “free memory”, “OFF” Items such as “Schedule” and “Holding program identification ID: version” are provided.
「CPU」には、MPUとSPUに関する情報が記述される。例えば、「内容」に示されるように、「CPU」には、数、バージョン、ベンダ、およびMIPS(Million Instructions Per Second)値のそれぞれがその順番に記述される。 In “CPU”, information on the MPU and the SPU is described. For example, as shown in “Content”, “CPU” describes a number, a version, a vendor, and a MIPS (Million Instructions Per Second) value in that order.
具体的には例えば、図11の例の情報処理装置1の機器情報の「CPU」には、“2”,“0.53/0.53”,“sany”.500と記述されている。これにより、情報処理装置1には、“2”個のプロセッサが設けられ、それぞれのバージョンは“0.53/0.53”であり、ベンダは“sany”であり、かつ、MIPS値は500であることがわかる。一方、図12の例の情報処理装置2の機器情報の「CPU」には、“1”,“0.53/0.53”,“sany”.300と記述されている。これにより、情報処理装置2には、“1”個のプロセッサが設けられ、そのバージョンは“0.53/0.53”であり、ベンダは“sany”であり、かつ、MIPS値は300であることがわかる。
Specifically, for example, “2”, “0.53 / 0.53”, and “sany” .500 are described in the “CPU” of the device information of the
なお、図1の例では、情報処理装置1には、1つのMPU21−1と3つのSPU31−1乃至33−1との総計4個のプロセッサが設けられており、図1の例に併せると、情報処理装置1の機器情報の「CPU」の数としては、“4”が記述されることになる。ただし、上述したように、SPUの個数は、図1の例に特に限定されない。そこで、この機能Q用処理の説明の範囲内では、図11の機器情報の記述に併せて、情報処理装置1には2つのプロセッサ、即ち、1つのMPU21−1と1つのSCPU31−1とが設けられているとする。
In the example of FIG. 1, the
同様に、図1の例では、情報処理装置2には、1つのMPU21−2と3つのSPU31−2乃至33−2との総計4個のプロセッサが設けられており、図1の例に併せると、情報処理装置2の機器情報の「CPU」の数としては、“4”が記述されることになる。ただし、上述したように、SPUの個数は、図1の例に特に限定されない。そこで、この機能Q用処理の説明の範囲内では、図12の機器情報の記述に併せて、情報処理装置2には1つのプロセッサ、即ち、1つのMPU21−2のみが設けられているとする。
Similarly, in the example of FIG. 1, the
「メモリ」には、「内容」に示されるように、プログラム実行可能領域を有するメモリの総サイズが記述される。具体的には例えば、図11の例の情報処理装置1の機器情報の「メモリ」には、“1024Mbit”と記述されている。これにより、情報処理装置1のMPU21−1用の専用メモリ22−1とSPU31−1用の専用メモリ41−1との総サイズは、“1024Mbit”であることがわかる。一方、図12の例の情報処理装置2の機器情報の「メモリ」には、“256Mbit”と記述されている。これにより、情報処理装置2のMPU21−2用の専用メモリ22−2のサイズは、“256Mbit”であることがわかる。
In the “memory”, as shown in “content”, the total size of the memory having the program executable area is described. Specifically, for example, “1024 Mbit” is described in the “memory” of the device information of the
「動作周波数」には、プロセッサの動作クロックが、プロセッサの数だけ記述される。なお、動的に変化するクロックは通常状態での値が記述される。具体的には例えば、図11の例の情報処理装置1の機器情報の「動作周波数」には、“2G/2GHz”と記述されている。これにより、情報処理装置1において、MPU21−1の動作クロックは“2GHz”であり、かつ、SPU31−1の動作クロックは“2GHz”であることがわかる。一方、図12の例の情報処理装置2の機器情報の「動作周波数」には、“500MHz”と記述されている。これにより、情報処理装置2のMPU21−2の動作クロックは“500MHz”であることがわかる。
The “operation frequency” describes the operation clock of the processor by the number of processors. Note that the value in the normal state is described for the dynamically changing clock. Specifically, for example, “2G / 2 GHz” is described in the “operating frequency” of the device information of the
「プロセッサ利用率」には、プロセッサの略現在の利用率[%]が、プロセッサの数だけ記述される。具体的には例えば、図11の例の情報処理装置1の機器情報の「プロセッサ利用率」には、“30%/30%”と記述されている。これにより、情報処理装置1において、MPU21−1の略現在の利用率は“30%”であり、かつ、SPU31−1の略現在の利用率は“30%”であることがわかる。一方、図12の例の情報処理装置2の機器情報の「プロセッサ利用率」には、“90%”と記述されている。これにより、情報処理装置2のMPU21−2の略現在の利用率は“90%”であることがわかる。
In the “processor usage rate”, approximately the current usage rate [%] of the processor is described by the number of processors. Specifically, for example, “30% / 30%” is described in the “processor usage rate” of the device information of the
「プロセッサ利用率予測値」には、プロセッサのスケジュールが組まれている場合に所定の時間[min]経過後に予め予想されるプロセッサ利用率[%]が記述される。具体的には例えば、図11の例の情報処理装置1の機器情報の「プロセッサ利用率予測値」には、“5min:20%/10%;10min:10%/5%”と記述されている。これにより、情報処理装置1のMPU21−1の利用率は略現在“30%”であるが、“5min”後には“20%”まで下がり、さらに“10min”後には“10%”まで下がることが予測されていることがわかる。また、情報処理装置1のSPU31−1の利用率は略現在“30%”であるが、“5min”後には“10%”まで下がり、さらに“10min”後には“5%”まで下がることが予測されていることがわかる。一方、図12の例の情報処理装置2の機器情報の「プロセッサ利用率予測値」には、“5min:90%;10min:90%”と記述されている。これにより、情報処理装置2のMPU21−2の利用率は、“5min”後にも、さらに“10min”後にも“90%”のまま維持されることが予測されていることがわかる。
The “processor usage rate prediction value” describes the processor usage rate [%] expected in advance after a predetermined time [min] has elapsed when a processor schedule is set. Specifically, for example, “5 min: 20% / 10%; 10 min: 10% / 5%” is described in the “processor utilization rate prediction value” of the device information of the
「空きメモリ」には、上述した「メモリ」に記述されたサイズのうちの、現在使用可能な総空きサイズが記述される。具体的には例えば、図11の例の情報処理装置1の機器情報の「空きメモリ」には、“800Mbit”と記述されている。これにより、情報処理装置1のMPU21−1用の専用メモリ22−1とSPU31−1用の専用メモリ41−1との総空きサイズは、即ち、使用可能なサイズは“800Mbit”であることがわかる。一方、図12の例の情報処理装置2の機器情報の「空きメモリ」には、“100Mbit”と記述されている。これにより、情報処理装置2のMPU21−2用の専用メモリ22−2の空きサイズは、即ち、使用可能なサイズは、“100Mbit”であることがわかる。
“Free memory” describes the total available free size among the sizes described in the “memory” described above. Specifically, for example, “800 Mbit” is described in “free memory” of the device information of the
「OFFスケジュール」には、「内容」に示されるように、電源OFFがスケジュールされている場合に、そのことを示す情報が記述される。なお、図11の例の情報処理装置1の機器情報の「OFFスケジュール」にも、図12の例の情報処理装置2の機器情報の「OFFスケジュール」にも、何も記述されていないので(Noneであるので)、情報処理装置1,2何れにおいても、電源OFFが特にスケジュールされていないことがわかる。
In “OFF schedule”, as shown in “contents”, information indicating that a power supply OFF is scheduled is described. Note that nothing is described in the “OFF schedule” of the device information of the
「保持プログラム 識別ID : version」には、自機器が保持している機能(プログラム)の識別IDとバージョン(version)とが記述される。 “Holding program identification ID: version” describes the identification ID and version (version) of the function (program) held by the device itself.
自機器が保持している機能とは、プログラム実行可能領域にロードされた機能を指す場合もあるし、プログラム実行可能領域へのロードの有無に関わらず、プログラム格納領域に格納されている機能を指す場合もある。本実施の形態では例えば、前者が採用されているとする。 The function held by the device itself may refer to the function loaded in the program executable area, or the function stored in the program storage area regardless of whether the program is loaded into the program executable area. Sometimes it points. In the present embodiment, for example, it is assumed that the former is adopted.
識別IDとは、機能毎に一意に付されたユニークな値を指す。この識別IDにより、所定の機能が識別可能になる。ただし、所定の識別IDを有する機能を構成する機能要素やデータのうちの所定の一部のみが更新された場合には、識別IDはそのままで、バージョンだけが変更されることがある。例えば、図3の例では、機能P,Qのそれぞれには、識別IDとして“uniqidxx”が付されているとする。ただし、機能Pの機能要素A,B,C,Dのうちの機能要素B,Cのそれぞれが、例えば機能要素D,Eのそれぞれに更新され(それに伴い、データyがデータwに更新され)、その結果として機能Qになったとする。この場合、機能P,Qのそれぞれを識別するためには、異なるバージョンが付されることになる。例えば、機能Pにはバージョンとして”1.1a”が付されていたとすると、機能Qにはバージョンとして“1.1b”が付されることになる。 The identification ID refers to a unique value uniquely assigned to each function. A predetermined function can be identified by this identification ID. However, when only a predetermined part of functional elements and data constituting a function having a predetermined identification ID is updated, the identification ID remains unchanged and only the version may be changed. For example, in the example of FIG. 3, it is assumed that “uniqidxx” is assigned to each of the functions P and Q as an identification ID. However, among the functional elements A, B, C, and D of the function P, each of the functional elements B and C is updated to, for example, each of the functional elements D and E (accordingly, the data y is updated to the data w). Suppose that the result is function Q. In this case, different versions are assigned to identify each of the functions P and Q. For example, if “1.1a” is attached to the function P as a version, “1.1b” is attached to the function Q as a version.
この識別IDとバージョンとは、各機能のそれぞれに対応付けられた機能情報から得られる。なお、機能情報の詳細については、図13を参照して後述する。 The identification ID and version are obtained from function information associated with each function. Details of the function information will be described later with reference to FIG.
具体的には例えば、図11の例の情報処理装置1の機器情報の「保持プログラム 識別ID : version」には、“uniqidxx:1.1a/uniqidyy:1.4”と記述されている。これにより、情報処理装置1のMPU21−1用の専用メモリ22−1とSPU31−1用の専用メモリ41−1とのうちのいずれか一方には、識別IDが“uniqidxx”であってバージョンが“1.1a”である機能Pがロードされていることがわかる。また、情報処理装置1のMPU21−1用の専用メモリ22−1とSPU31−1用の専用メモリ41−1とのうちのいずれか一方には、識別IDが“uniqidyy”であってバージョンが“1.4”である図3には図示せぬ機能がロードされていることがわかる。
Specifically, for example, “uniqidxx: 1.1a / uniqidyy: 1.4” is described in “holding program identification ID: version” of the device information of the
また例えば、図12の例の情報処理装置2の機器情報の「保持プログラム 識別ID : version」には、“uniqidxx:1.1b/uniqidyy:1.6”と記述されている。これにより、情報処理装置1のMPU21−2用の専用メモリ22−2には、識別IDが“uniqidxx”であってバージョンが“1.1b”である機能Qがロードされていることがわかる。また、情報処理装置2のMPU21−2用の専用メモリ22−2には、識別IDが“uniqidyy”であってバージョンが“1.6”である図3には図示せぬ機能がロードされていることがわかる。
Further, for example, “uniqidxx: 1.1b / uniqidyy: 1.6” is described in “holding program identification ID: version” of the device information of the
なお、いまの場合、即ち、機能Q用処理が実行される場合、図4と図10のステップS3の処理の時点では、情報処理装置2は機能Qをまだロードしていないので、情報処理装置2の機器情報の「保持プログラム 識別ID : version」には、“uniqidxx:1.1b”は記述されていないことになる。
In this case, that is, when the function Q process is executed, the
係る機器情報のうちの情報処理装置1の機器情報が、図4と図10のステップS3の処理で取得されると、処理はステップS4に進む。
When the device information of the
ステップS4において、情報処理装置2の図2の分散機器検索部63−2は、自機器2と周辺機器1との間の通信インフラの略現在の帯域(略現在の通信速度)を算出する。
In step S <b> 4, the distributed device search unit 63-2 in FIG. 2 of the
例えばステップS4において、分散機器検索部63−2は、所定のデータ量のデータ(周辺機器1の機器情報等)が周辺機器1から返信されてくるまでの通信時間に基づいて、略現在の通信速度を演算する。具体的には例えば、データ量が1024kbitであるデータの通信時間(接続までの時間等除く)が500msecであった場合、略現在の通信速度として2048(=1024/500)kbpsが算出される。
For example, in step S 4, the distributed device search unit 63-2 determines the current communication based on the communication time until a predetermined amount of data (device information of the peripheral device 1) is returned from the
ステップS5において、情報処理装置2の分散機器検索部63−2は、自機器2の保有機能の識別IDと同一の識別IDの機能が、周辺機器1に既にロードされているか否かを判定する。
In step S <b> 5, the distributed device search unit 63-2 of the
例えばいまの場合、自機器2の保有機能とは、機能格納部61−2に格納されている機能Qである。機能Qの識別IDは上述したように“uniqidxx”であって、同じく機能格納部61−2に格納されている「機能Qの機能情報」から取得可能である。具体的には例えば、図13に示されるような「機能Qの機能情報」が機能格納部61−2に格納されており、この「機能Qの機能情報」から機能Qの識別IDが取得可能である。即ち、図13は、「機能Qの機能情報」の一例を示している。この「機能Qの機能情報」には、「識別ID」という項目が含まれており、この「識別ID」に、機能Qの識別IDとして“uniqidxx”が記述されている。なお、「機能Qの機能情報」のその他の項目については後述する。
For example, in this case, the possessed function of the
また、周辺機器1にこの時点でロードされている機能Pの識別IDも上述したように、“uniqidxx”であり、この機能Pの識別IDは、ステップS3の処理で取得された図11の「周辺機器1の機器情報」に記述されている。
Further, as described above, the identification ID of the function P loaded in the
従って、分散機器検索部63−1は、自機器2に保有されている「機能Qの機能情報」と、「周辺機器1の機器情報」とを比較し、共に“uniqidxx”が記述されていることを認識すると、ステップS5の処理でYESであると判定して、処理をステップS6に進める。
Therefore, the distributed device search unit 63-1 compares the “function Q function information” stored in the
なお、仮に、自機器2に保有されている「機能Qの機能情報」と、「周辺機器1の機器情報」とに共通する識別IDが存在しない場合、ステップS5の処理でNOであると判定されて、「分散準備処理」は終了となる。この場合、上述したように、機能Qは情報処理装置2のみにより実行されるか或いは実行されない。
If there is no identification ID common to the “function Q function information” and the “device information of the
ステップS6において、情報処理装置2の分散機器検索部63−2は、自機器2と周辺機器1との機能がコンパチビリティ(互換性)を有しているか否かを判定する。
In step S <b> 6, the distributed device search unit 63-2 of the
なお、ここでは例えば、2つの機能において、共通する機能要素が少なくとも1つ存在すれば、2つの機能はコンパチビリティを有しているとする。また、共通する機能要素が存在するか否かの判定手法は特に限定されない。例えば機能要素単位で識別IDを付与し、識別IDが一致する機能要素が存在するか否かを判定する、といった判定手法を採用することができる。ただしここでは、説明の簡略上例えば、2つの機能のバージョンを比較することで、共通する機能要素が存在するか否かを判定する、といった判定手法が採用されているとする。 Here, for example, in the two functions, if at least one common functional element exists, it is assumed that the two functions have compatibility. In addition, a method for determining whether or not a common functional element exists is not particularly limited. For example, it is possible to adopt a determination method in which an identification ID is assigned in units of functional elements, and it is determined whether or not there is a functional element with a matching identification ID. However, here, for simplification of description, for example, it is assumed that a determination method is adopted in which it is determined whether or not a common functional element exists by comparing versions of two functions.
この場合、機能Qのバージョンは上述したように“1.1b”であって、例えば図3と図14に示されるように、機能格納部61−2に格納されている「機能Qの機能情報」から取得可能である。即ち、図13に示されるように、「機能Qの機能情報」には、「バージョン」という項目が含まれており、この「バージョン」に、機能Qのバージョンとして“1.1b”が記述されている。なお、「機能Qの機能情報」のその他の項目については後述する。 In this case, the version of the function Q is “1.1b” as described above. For example, as shown in FIGS. 3 and 14, “function Q function information” stored in the function storage unit 61-2. Can be obtained from That is, as shown in FIG. 13, “function Q function information” includes an item “version”, and “version” includes “1.1b” as the version of function Q. Yes. The other items of “function Q function information” will be described later.
また、機能Pのバージョンは上述したように、“1.1a”であり、この機能Pのバージョンは、ステップS3の処理で取得された図11の「周辺機器1の機器情報」に記述されている。
Further, as described above, the version of the function P is “1.1a”, and the version of the function P is described in “apparatus information of the
なお、バージョン“1.1a”の機能Pとバージョン“1.1b”の機能Qとはコンパチビリティを有しているとされ、そのこと自体は情報処理装置2にとって既知であるとする。
It is assumed that the function P of the version “1.1a” and the function Q of the version “1.1b” are compatible, and this is known to the
この場合、情報処理装置2の分散機器検索部63−2は、自機器2に保有されている「機能Qの機能情報」と、取得された「周辺機器1の機器情報」とを比較し、その結果として、ステップS6の処理で、バージョン“1.1a”の機能Pとバージョン“1.1b”の機能Qとはコンパチビリティを有していると判定する。
In this case, the distributed device search unit 63-2 of the
なお、仮にバージョン“1.1a”の機能Pとバージョン“1.1b”の機能Qとがコンパチビリティを有していない(互換性が無い)場合、ステップS6の処理でNOであると判定されて、「分散準備処理」は終了となる。この場合、上述したように、機能Qは情報処理装置2のみにより実行されるか、或いは実行されない。
Note that if the function P of the version “1.1a” and the function Q of the version “1.1b” are not compatible (not compatible), it is determined as NO in the process of step S6, The “distributed preparation process” ends. In this case, as described above, the function Q is executed only by the
このように、情報処理装置2の分散機器検索部63−2は、ステップS1乃至S6の処理を実行することで、ネットワーク3を含む通信インフラを用いて通信を行うことが可能な周辺機器の中から、「実行対象の機能Qを構成する機能要素A,D,E,Fのうちの少なくとも1つを保有し、かつ、略現在それを実行可能な周辺機器」として周辺機器1を検索するとともに、通信インフラの略現在の帯域を算出するのである。
As described above, the distributed device search unit 63-2 of the
ステップS6の処理でYESであると判定されると、ステップS1乃至S6の処理結果、即ち、「実行対象の機能Qを構成する機能要素A,D,E,Fのうちの少なくとも1つを保有し、かつ、略現在それを実行可能な周辺機器とは、情報処理装置1であること」、および、「自機器2と周辺機器1との間の略現在の通信インフラの略現在の帯域(略現在の通信速度)」が、分散機器検索部63−2から分散正当性判断部64−2に供給される。これにより、処理はステップS7に進む。
If it is determined as YES in the process of step S6, the process result of steps S1 to S6, that is, “having at least one of functional elements A, D, E, and F constituting the function Q to be executed” is held. In addition, the peripheral device that can currently execute it is the
ステップS7において、情報処理装置2の分散正当性判断部64−2は、自機器2のメモリ空き容量は充分に存在するか否かを判定する。
In step S7, the distribution validity determining unit 64-2 of the
メモリ空き容量が充分であるとは、図12の「自機器2の機器情報」の「空きメモリ」の記述サイズが、機能Qを実行するために必要なサイズであることを指す。
That the memory free capacity is sufficient means that the description size of “free memory” in “device information of
機能Qを実行するために必要なサイズは、機能Qがメモリに展開されたときのプログラムサイズと、プログラム実行に必要なヒープやスタックのメモリサイズとの加算サイズであって、それぞれ図13の「機能Qの機能情報」から取得可能である。即ち、図13の「機能Qの機能情報」の「プログラムサイズ」の項目には、機能Qがメモリに展開されたときのプログラムサイズが記述される。例えば図13の例では、「プログラムサイズ」には“100Mbit”が記述されている。また、「メモリサイズ」の項目には、プログラム実行に必要なヒープやスタックのメモリサイズが記述される。例えば図13の例では、“500Mbit/100Mbit”が記述されている。なお、「機能Qの機能情報」のその他の項目については後述する。 The size required to execute the function Q is the sum of the program size when the function Q is expanded in the memory and the memory size of the heap and stack required for program execution. It can be obtained from “Function Q Function Information”. That is, in the item “program size” of “function Q function information” in FIG. 13, the program size when the function Q is expanded in the memory is described. For example, in the example of FIG. 13, “100 Mbit” is described in “program size”. In the “memory size” item, the memory size of the heap and stack necessary for program execution is described. For example, in the example of FIG. 13, “500 Mbit / 100 Mbit” is described. The other items of “function Q function information” will be described later.
そこで、ステップS7において、情報処理装置2の分散正当性判断部64−2は、「機能Qの機能情報」の「プログラムサイズ」の記述値100Mbit”および「メモリサイズ」の記述値“500Mbit/100Mbit”に基づいて、機能Qを実現するために必要なサイズは700(=100+500+100)Mbitであると算出する。そして、分散正当性判断部64−2は、機能Qを実現するために必要なサイズである700Mbitと、「自機器2の機器情報」の「空きメモリ」の記述値である“100Mbit”とを比較し、その比較の結果として、自機器2のメモリ空き容量は充分に存在しないと判定し、処理をステップS8に進める。
Therefore, in step S7, the distribution validity judgment unit 64-2 of the
即ち、自機器2のメモリ空き容量が充分に存在しない場合、機能Qの実行のためには周辺機器1との分散処理が必要になる。即ち、ステップS7の処理でNOであると判定されると、分散処理の正当性を判断するための処理はさらに継続される必要がある。そこで、ステップS7の処理でNOであると判定されると、ステップS8に処理が進められるのである。
In other words, if the memory capacity of the
換言すると、仮に「自機器2の機器情報」の「空きメモリ」の記述値が“700Mbit”を超えているような場合、機能Qの実行のために分散処理は特に必須ではなくなり、このため、ステップS7の処理でYESであると判定されて、「分散準備処理」は終了となる。この場合、上述したように、機能Qは情報処理装置2のみにより実行される。
In other words, if the description value of “free memory” of “device information of
なお、周辺機器1側にもメモリ空き容量が充分に存在しないと機能Qの分散処理の実行は不可能である。そこで、図4には図示されていないが実際には、分散正当性判断部64−2は、自機器2と全く同様に、周辺機器1に対しても、そのメモリ空き容量が充分に存在するか否かを判定すると好適である。
Note that the distributed processing of the function Q cannot be performed unless there is sufficient memory space on the
そして、分散正当性判断部64−2は、周辺機器1側にメモリ空き容量が充分に存在しないと判定した場合、「機能Qの実行は不可能」といったメッセージをユーザに呈示する等、所定のエラー処理を実行した後、「分散準備処理」を終了させると好適である。
Then, when it is determined that there is not enough free memory on the
ただし、いまの場合には、ステップS3の処理で取得された図11の「周辺機器1の機器情報」の「空きメモリ」の記述値は“800Mbit”とされており、周辺機器1のメモリ空き容量が充分に存在すると判定されることになる。即ち、自機器2と周辺機器1との分散処理により、機能Qの実行は可能であると判定されることになる。
However, in this case, the description value of “free memory” of “device information of
従って、周辺機器1側の「空きメモリ」のチェックが行われたとしても、いまの場合結局、処理はステップS8に進むことになる。
Accordingly, even if the “free memory” on the
ステップS8において、情報処理装置2の分散正当性判断部64−2は、自機器2と周辺機器1とのそれぞれの予測実行時間を算出する。
In step S <b> 8, the distribution legitimacy determination unit 64-2 of the
ここでは例えば、機器の性能に依存しない正規化された値で表現された「機能Qの予測実行時間」が、ステップS8の処理で算出されるとする。具体的には例えば、「機能Qの予測実行時間」は、「機能Qの標準実行時間」÷「機器の性能比(対100MIPS)」で演算される。「機能Qの標準実行時間」は、「機能Qの機能情報」の「実行時間」に記述されている。例えば図13の例では、「実行時間」には“15sec”が記述されている。また、「機器の性能比(対100MIPS)」は、各機器の機器情報の「CPU」のMIPS値として記述されている。例えば図11の例の「周辺機器1の機器情報」では、「CPU」のMIPS値として500が記述されている。従って、周辺機器1側で機能Qを実行する場合の「機能Qの予測実行時間」は3sec(=15/(500/100)sec)となる。同様に、図12の例の「自機器2の機器情報」では、「CPU」のMIPS値として300が記述されている。従って、自機器2で機能Qを実行する場合の「機能Qの予測実行時間」は5sec(15/(300/100)sec)となる。
Here, for example, it is assumed that the “predicted execution time of function Q” expressed by a normalized value that does not depend on the performance of the device is calculated in the process of step S8. Specifically, for example, the “predicted execution time of function Q” is calculated by “standard execution time of function Q” ÷ “performance ratio of device (vs. 100 MIPS)”. “Standard execution time of function Q” is described in “execution time” of “function Q function information”. For example, in the example of FIG. 13, “15 sec” is described in the “execution time”. Further, the “performance ratio of device (vs. 100 MIPS)” is described as the MIPS value of “CPU” in the device information of each device. For example, in “device information of
ステップS9において、情報処理装置2の分散正当性判断部64−2は、要求リアルタイム性能と比較するための値を算出する。
In step S9, the distribution validity judgment unit 64-2 of the
要求リアルタイム性能とは、例えば、実行対象の機能が被分割機能であれば、他分割機能要素との結合度を示す許容通信を指す。その他例えば、割込み遅延時間、プログラムメモリ転送時間、スタックメモリ転送時間、および、ヒープメモリ転送時間等も、要求リアルタイム性能のひとつである。さらに例えば、分割元や他分割機能要素とデータの関連性を示すデータ結合度等も、要求リアルタイム性能のひとつである。 The required real-time performance indicates, for example, allowable communication indicating the degree of coupling with other divided function elements if the function to be executed is a divided function. In addition, for example, interrupt delay time, program memory transfer time, stack memory transfer time, heap memory transfer time, and the like are one of the required real-time performances. Further, for example, the data coupling degree indicating the relationship between the division source and other division functional elements and the data is one of the required real-time performances.
これらの要求リアルタイム性能は、「機能Qの機能情報」の「要求リアルタイム性能」に記述(定義)されている。例えば、図13の例では、「要求リアルタイム性能」には、“許容スタックメモリ転送時間:50sec”が記述されている。即ち、図13の例では、要求リアルタイム性能として、許容スタックッメモリ転送時間のみが定義されている。 These required real-time performances are described (defined) in “Required real-time performance” of “Function Q function information”. For example, in the example of FIG. 13, “required real-time performance” describes “allowable stack memory transfer time: 50 sec”. That is, in the example of FIG. 13, only the allowable stack memory transfer time is defined as the required real-time performance.
従って、この場合、情報処理装置2の分散正当性判断部64−2は、ステップS9において、要求リアルタイム性能と比較するための値として「略現在のスタックメモリ転送時間」を算出することになる。「略現在のスタックメモリ転送時間」は例えば、「転送スタックメモリ量(bit)」÷「通信インフラの略現在の帯域(略現在の通信速度)(bps)」で算出可能である。「転送スタックメモリ量(bit)」は、「機能Qの機能情報」の「メモリサイズ」のスタックメモリサイズに記述されている。例えば図13の例では、「メモリサイズ」には“100Mbit”が記述されている。また、「通信インフラの略現在の帯域(略現在の通信速度)(bps)」は、上述したステップS4の処理で算出済みである、いまの場合、上述したように2048(kbps)が算出されている。従って、「略現在のスタックメモリ転送時間」として48.82sec(=100M/2048k)が算出される。
Therefore, in this case, the distribution validity judgment unit 64-2 of the
ステップS10において、情報処理装置2の分散正当性判断部64−2は、予測実行時間や要求リアルタイム性能等の観点から、自機器2と周辺機器1との機能Qの分散処理は可能であるか否かを判定する。
In step S10, the distributed validity judgment unit 64-2 of the
具体的には例えば、ステップS9の処理で「略現在のスタックメモリ転送時間」として48.82sec(=100M/2048k)が算出されており、かつ、図13の「機能Qの機能情報」には要求スタックメモリ転送時間が“50sec”と定義されていることから、分散正当性判断部64−2は、要求リアルタイム性能の観点からは、自機器2と周辺機器1との機能Qの分散処理は可能であると判定することができる。
Specifically, for example, 48.82 sec (= 100M / 2048k) is calculated as the “substantially current stack memory transfer time” in the process of step S9, and the “function Q function information” in FIG. Since the stack memory transfer time is defined as “50 sec”, the distributed validity judgment unit 64-2 can perform distributed processing of the function Q between the
なお、「予測実行時間や要求リアルタイム性能等の観点から」と「等」を記述したのは、予測実行時間や要求リアルタイム性能以外の観点からも、自機器2と周辺機器1との機能Qの分散処理は可能であるか否かを判定することが当然ながら可能であるからである。具体的には例えば、図13の例では定義されていないが、「機能Qの機能情報」には「オプション」の項目が設けられている。従って、この「オプション」の記述値に基づいても、自機器2と周辺機器1との機能Qの分散処理は可能であるか否かを判定することが可能であるからである。なお、「オプション」の項目には、「内容」に示される通り、バイトアラインする等の特殊Load方法に関する情報が記述される。
Note that “from the viewpoint of predicted execution time, required real-time performance, etc.” and “etc.” are described in terms of the function Q between the
ステップS10において、自機器2と周辺機器1との機能Qの分散処理は不可能であると判定された場合、「分散準備処理」は終了となる。この場合、ステップS7の処理で自機器2のメモリ空き容量は充分に存在しないと既に判定されていることから、機能Qは、分散処理のみならず、自機器2単体での実行も不可能であることがわかる。そこで、このような場合、図4には図示していないが、自機器2は、「機能Qの実行は不可能」といったメッセージをユーザに呈示する等、所定のエラー処理を実行した後、「分散準備処理」を終了させると好適である。
If it is determined in step S10 that the distributed processing of the function Q between the
これに対して、ステップS10において、自機器2と周辺機器1との機能Qの分散処理は可能であると判定された場合、処理はステップS11に進む。
On the other hand, if it is determined in step S10 that the function Q can be distributed between the
ステップS11において、情報処理装置2の分散正当性判断部64−2は、周辺機器1に分散実行させるべき機能要素を決定する。
In step S <b> 11, the distributed legitimacy determination unit 64-2 of the
なお、以下、周辺機器に分散実行させるべき機能要素を、周辺機器機能要素と称する。一方、自機器に分散実行させるべき機能要素を、自機器機能要素と称する。 Hereinafter, functional elements that are to be distributed and executed by peripheral devices are referred to as peripheral device functional elements. On the other hand, functional elements that should be distributed and executed by the own device are referred to as own device function elements.
具体的には例えば、上述したステップS5とS6の処理で、「周辺機器1は、実行対象の機能Qを構成する機能要素A,D,E,Fのうちの少なくとも1つを保有し、かつ、略現在それを実行可能である」ということが、分散機器検索部63−2により認識されて分散正当性判断部64−2に既に通知されている。
Specifically, for example, in the processing of steps S5 and S6 described above, “the
また、ここでは、機能Pと機能Qとの同一機能要素や異なる機能要素は、バージョンにより判定可能であるとする。即ち、バージョン“1.1b”の機能Qのうちの、機能要素A,Dが、バージョン“1.1a”の機能Pにも含まれており、機能E,Fが、機能Pには含まれていないことが、分散正当性判断部64−2にとって既知のことであるとする。 In addition, here, it is assumed that the same or different function elements of the function P and the function Q can be determined by version. That is, among the function Q of the version “1.1b”, the functional elements A and D are also included in the function P of the version “1.1a”, and the functions E and F are not included in the function P. Is known to the distribution validity judgment unit 64-2.
即ち、ステップS11の処理開始時点で、分散正当性判断部64−2は、機能Qを構成する機能要素A,D,E,Fのうちの機能要素A,Dが、周辺機器1で略現在実行可能であることがわかっているとする。
That is, at the start of the processing in step S11, the distributed validity judgment unit 64-2 determines that the functional elements A, D out of the functional elements A, D, E, and F constituting the function Q are substantially present in the
この場合、ステップS11において、分散正当性判断部64−2は、図14に示されるように、機能Qのうちの、機能要素A,Dを周辺機器1機能要素として決定し、残りの機能E,Fを自機器2機能要素として決定することが可能である。
In this case, in step S11, the distribution validity judgment unit 64-2 determines the function elements A and D of the function Q as the
なお、機能Pと機能Qとの同一機能要素や異なる機能要素が、バージョンにより判定不可能な場合、例えば、上述したように、機能要素単位で識別IDを付し、この機能要素単位の識別IDを比較することで判定可能になる。 In addition, when the same functional element of function P and function Q or different functional elements cannot be determined depending on the version, for example, as described above, an identification ID is given in units of functional elements, and the identification ID of this functional element unit It becomes possible to determine by comparing.
以上説明したように、分散正当性判断部64−2は、結局、ステップS7乃至S11の処理を実行することで、自機器2と周辺機器1とのそれぞれが略現在要求しているハードウエア条件、実行対象の機能Qが略現在要求しているソフトウエア条件、および、通信インフラの略現在の帯域(略現在の通信速度)に基づいて、自機器2と周辺機器1とによる機能Qの分散処理の正当性を判断し、正当性があると判断した場合、その機能Qを構成する各機能要素のそれぞれを、自機器1と周辺機器2とのうちのいずれか一方に割り振る。
As described above, the distributed validity judgment unit 64-2 eventually executes the processing of steps S7 to S11, so that the hardware conditions that each of the
なお、ここで言う、自機器2と周辺機器1とのそれぞれが略現在要求しているハードウエア条件、および、実行対象の機能Qが略現在要求しているソフトウエア条件とは、情報述したように、「周辺機器1の機器情報(図11参照)」、「自機器2の機器情報(図12参照)」、および、「機能Qの機能情報(図13参照)」の記述値のうちの少なくとも1つを指す。
It should be noted that the hardware conditions that each of the
このようにして、ステップS10の処理で、自機器2と周辺機器1との機能Qの分散処理は可能であると判定されて、ステップS11の処理で周辺機器1機能要素が決定されると、ステップS10およびS11の処理結果は、情報処理装置2の分散正当性判断部64−2から分散機能実行部65−2に通知される。
In this way, when it is determined in the process of step S10 that the function Q can be distributed between the
すると、図10に示されるように、情報処理装置2は、図4の「分散準備処理」を終了させ、図6の「実行元による機能実行処理」を開始させる。
Then, as illustrated in FIG. 10, the
即ち、情報処理装置2の分散機能実行部65−2は、ステップS41において、周辺機器1との間で分散実行すると判定して、処理を図7のステップS45に進める。
That is, the distributed function execution unit 65-2 of the
ステップS45において、情報処理装置2の分散機能実行部65−2は、機能Qに含まれる機能要素A,D,E,Fのうちの周辺機器1機能要素A,Dについて、その実行依頼を周辺機器1に対して発行する。
In step S45, the distributed function execution unit 65-2 of the
この間、図8の「依頼先による機能実行処理」のステップS71において、情報処理装置1の機器情報提供部65−1は、実行依頼が情報処理装置2から発行されたか否かを判定している。
During this time, in step S <b> 71 of “function execution process by request destination” in FIG. 8, the device information providing unit 65-1 of the
なお、当然ながら、図8の「依頼先による機能実行処理」を実行する情報処理装置1から見た場合、情報処理装置2が周辺機器となり、情報処理装置1が自機器となる。ただし、これまで、実行元である情報処理装置2に着目して説明を行っており、ここで、図面の記載通りに説明すること、即ち、周辺機器と自機器とを逆転して説明することはいたずらに混乱を招くことになる。そこで、図8の「依頼先による機能実行処理」を説明している範囲内では、自機器や周辺機器といった名称は使用せずに説明していく。これに伴い、図8の「依頼先による機能実行処理」を説明している範囲内では、周辺機器1機能要素A,Dを、依頼機能要素A,Dと称することにする。
Naturally, when viewed from the
実行依頼が発行されない限り、ステップS71において、実行依頼が情報処理装置2から発行されていないと判定されて、処理はステップS71に戻され、実行依頼が情報処理装置2から発行されたか否かが再度判定される。即ち、情報処理装置2から実行依頼が発行されるまで、ステップS71の判定処理が繰り返される。
Unless an execution request is issued, it is determined in step S71 that the execution request has not been issued from the
そして、依頼機能要素A,Dの実行依頼が情報処理装置2から発行されると、ステップS71においてYESであると判定されて、処理はステップS72に進む。
Then, when an execution request for the requested functional elements A and D is issued from the
ステップS72において、情報処理装置1の分散機能実行部65−1は、図14に示されるように、データx(以下、機能実行必要データxと称する)を利用して、依頼機能要素A,Dを少なくとも実行する。「少なくとも」と記述したのは、このとき、分散機能実行部65−1は、機能要素B,Cも実行する可能性があるからである。
In step S72, the distributed function execution unit 65-1 of the
ステップS73において、情報処理装置1の分散機能実行部65−1は、機能実行必要データxと、依頼機能要素A,Dの実行結果とを、ネットワークインタフェース12−1とネットワーク3とを介して情報処理装置2に送信する。
In step S73, the distributed function execution unit 65-1 of the
この間、情報処理装置2の分散機能実行部65−2は、ステップS46において、図14に示されるように、機能Qに含まれる機能要素A,D,E,Fのうちの、自機器2機能要素E,Fをロードし、ステップS47において、機能Qに含まれるデータx,wのうちのデータw(以下、機能実行結果データwと称する)をロードする。
During this time, the distributed function execution unit 65-2 of the
ステップS48において、情報処理装置2の分散機能実行部65−2は、機能実行必要データxと、周辺機器1機能要素A,Dの実行結果とを、周辺機器1からネットワークインタフェース12−12を介して取得する。
In step S48, the distributed function execution unit 65-2 of the
図7のステップS49において、情報処理装置2の分散機能実行部65−2は、周辺機器1から取得された機能実行必要データxは、そのままの状態で使用可能であるか否かを判定する。
In step S49 of FIG. 7, the distributed function execution unit 65-2 of the
情報処理装置2の分散機能実行部65−2は、図7のステップS49において、周辺機器1から取得された機能実行必要データxは、そのままの状態で使用不可能である(使用可能ではない)と判定した場合、図7のステップS50において、周辺機器1から取得された機能実行必要データxと、自機器2で保有している機能実行必要データxとを合成する。その後、処理はステップS51に進む。
The distributed function execution unit 65-2 of the
即ち、機能実行必要データxが情報処理装置1,2の相互で変更される可能性がある場合には、情報処理装置1,2のうちの何れかがマスタとなって、各機能実行必要データxのそれぞれを管理するか、或いは、各機能実行必要データxのそれぞれに時間情報を付けるかして、各機能実行必要データxを最後にマージする処理が必要になる。この処理が、図7の例ではステップS50の処理に対応する。
That is, when there is a possibility that the function execution necessary data x may be changed between the
これに対して、図7のステップS49において、周辺機器1から取得された機能実行必要データxは、そのままの状態で使用可能であると判定された場合、図7のステップS50の処理は実行されずに、そのまま処理はステップS51に進む。
On the other hand, when it is determined in step S49 of FIG. 7 that the function execution necessary data x acquired from the
ステップS51において、情報処理装置2の分散機能実行部65−2は、機能実行必要データxを利用して、図14に示されるように、自機器2機能要素E,Fを実行する。
In step S51, the distributed function execution unit 65-2 of the
なお、ここでは、説明の簡略上、ステップS51の処理は、ステップS48の処理の後とされているが、ステップS48とS51の処理の順番は、後述するステップS52の前であれば特に限定されない。即ち、ステップS51の処理がステップS48の処理の前に実行されることもあるし、ステップS48とS51の処理がほぼ同時に実行されることもある。 Here, for simplification of explanation, the processing of step S51 is performed after the processing of step S48, but the order of the processing of steps S48 and S51 is not particularly limited as long as it is before step S52 described later. . That is, the process of step S51 may be executed before the process of step S48, or the processes of steps S48 and S51 may be executed almost simultaneously.
ステップS52において、情報処理装置2の分散機能実行部65−2は、ステップS48の処理で取得された周辺機器1機能要素A,Dの実行結果と、ステップS51の処理により実行された自機器2機能要素E,Fの実行結果とを合成することで、機能Qを実行する。
In step S52, the distributed function execution unit 65-2 of the
ステップS53において、情報処理装置2の分散機能実行部65−2は、機能Qの実行の終了が指示されたか否かを判定する。
In step S <b> 53, the distributed function execution unit 65-2 of the
なお、ステップS53の判定条件は特に限定されず、例えば、ユーザからの終了指示があったことを判定条件としてもよいし、或いは、所定の単位量のデータ毎に機能Qが実行される場合には、1単位量の最後のデータに対する機能Qの実行が完了したことを判定条件としてもよい。 The determination condition in step S53 is not particularly limited. For example, the determination condition may be that there is an end instruction from the user, or the function Q is executed for each predetermined unit amount of data. The determination condition may be that the execution of the function Q for the last data of one unit amount is completed.
ステップS53において、機能Qの実行の終了がまだ指示されていないと判定された場合、処理はステップS48に戻され、それ以降の処理が繰り返される。 If it is determined in step S53 that the end of execution of the function Q has not been instructed yet, the process returns to step S48, and the subsequent processes are repeated.
即ち、この間、情報処理装置1の分散機能実行部65−1は、ステップS73の処理で、機能実行必要データxと、依頼機能要素A,Dの実行結果とを情報処理装置2に送信すると、ステップS74において、機能実行停止依頼が情報処理装置2から発行されたか否かを判定する。そして、分散機能実行部65−1は、それが発行されていないと判定すると、処理をステップS72に戻し、それ以降の処理を繰り返す。即ち、機能実行停止依頼が情報処理装置2から発行されるまで、ステップS72乃至S74のループ処理が繰り返され、機能実行必要データxと、依頼機能要素A,Dの実行結果とが、情報処理装置1から情報処理装置2に対して順次(例えば、所定の1単位量のデータ毎に)転送されてくる。
That is, during this time, the distributed function execution unit 65-1 of the
そこで、情報処理装置2の分散機能実行部65−2も、ステップS48乃至S53のループ処理を繰り返すことで、周辺機器1から順次転送されてくる周辺機器1機能要素A,Dの実行結果と、自分自身で順次実行した自機器2機能要素E,Fの実行結果とを順次合成していくことで、機能Qを順次(例えば、所定の1単位量のデータ毎に)実行する。
Therefore, the distributed function execution unit 65-2 of the
その後、機能Qの実行の終了が指示されると、次のステップS53の処理でYESであると判定されて、処理はステップS54に進む。 Thereafter, when an instruction to end the execution of the function Q is given, it is determined as YES in the process of the next step S53, and the process proceeds to step S54.
ステップS54において、情報処理装置2の分散機能実行部65−2は、機能実行停止依頼を、周辺機器1に対してネットワークインタフェース12−2とネットワーク3を介して発行する。これにより、図6と図7の「実行元による機能実行処理」は終了となる。
In step S54, the distributed function execution unit 65-2 of the
一方、情報処理装置1の分散機能実行部65−1は、その機能実行停止依頼をネットワークインタフェース12−1を介して取得すると、次のステップS74の処理でYESであると判定する。これにより、図8の「依頼先による機能実行処理」も終了となる。
On the other hand, when the distributed function execution unit 65-1 of the
以上、図3乃至図14を参照して、情報処理装置1,2とで実行される機能Qの分散処理の詳細について説明した。即ち、図3乃至図14を参照して説明した分散処理とその前処理こそが、本発明の分散処理とその前処理の一例である。
The details of the distributed processing of the function Q executed by the
係る本発明の分散処理とその前処理が実行されることで、上述した従来の課題を解決できる効果を奏することが可能になる。即ち、上述したように、情報処理装置1または2は、自機器と周辺機器とのそれぞれが略現在要求しているハードウエア条件、実行対象の機能が略現在要求しているソフトウエア条件、および、通信インフラの略現在の帯域(略現在の通信速度)に基づいて、自機器と周辺機器とによる機能の分散処理の実行の正当性を判断し、正当性があると判断した場合、その機能を構成する各機能要素のそれぞれを、自機器と周辺機器とのうちのいずれか一方に割り振る、といった分散処理の前処理を実行することができる。これにより、分散機器の状態やネットワークの環境の変化を考慮した分散処理を行うことができる、という効果を奏することが可能になる。
By executing the distributed processing and the preprocessing thereof according to the present invention, it is possible to achieve an effect that can solve the conventional problems described above. That is, as described above, the
さらに、情報処理装置1または2は、上述したように、実行対象の機能を構成する機能要素のうちの少なくとも1つを保有し、かつ、略現在それを実行可能な周辺機器を検索し、機能要素の割り振りを行う際に、その周辺機器で略現在実行可能な機能要素をその周辺機器に割り振る、といった分散処理の前処理を実行することができる。これによりさらに例えば、次の第1の効果と第2の効果を奏することが可能になる。
Furthermore, as described above, the
第1の効果とは、実行リソースを二重にメモリ(プログラム実行領域を有するメモリ)に展開する必要がなくなるために、例えば上述した例では機能Qのうちの機能要素A,Dを情報処理装置1,2の両方のメモリに展開する必要がなくなるために、他のプログラムを実行できる等のメモリリソースの有効活用が可能になるという効果である。
The first effect is that it is not necessary to doublely execute execution resources in a memory (a memory having a program execution area). For example, in the above-described example, the function elements A and D of the function Q are assigned to the information processing apparatus. Since there is no need to expand to both
第2の効果とは、周辺機器機能要素の依頼先である周辺機器の状態は、例えば上述した図10の例の情報処理装置1の状態は、その周辺機器機能要素を既に実行できる状態であるため、それを改めてロードする必要がなく、その結果、ロードするための時間が削減可能になるという効果である。
The second effect is that the state of the peripheral device to which the peripheral device functional element is requested is, for example, the state of the
なお、本発明に係る分散処理の容易な理解を目的として、上述した例では、2台の情報処理装置1,2からなる情報処理システムが利用され、機能P,Qが利用された。ただし当然ながら、3台以上の情報処理装置からなる情報処理システムであっても、上述した一連の処理を基本的に実行することで、所定の機能の上述した分散処理の実行が容易に可能になる。また、機能P,Qのみならず、何れの機能であっても、2以上の情報処理装置からなる情報処理システムが上述した一連の処理を基本的に実行することで、その機能の上述した分散処理の実行が容易に可能になる。
For the purpose of easy understanding of distributed processing according to the present invention, in the above-described example, an information processing system including two
また、上述した例では、機器情報は基本的に自機器に格納されており、図4の「分散準備処理」が行われた時点、より正確には、ステップS3の終了時点で、周辺機器の機器情報が自機器に取得される。即ち、自機器と周辺機器との機器情報の共有タイミングは、上述した例ではステップS3の終了時点とされている。ただし当然ながら、機器情報の共有タイミングは、上述した例に限定されず、任意のタイミングでよい。例えば、自機器がロードしたプログラムやデータのリストを分散処理可能な機器に対して、任意のタイミングでブロードキャスト(broadcast)通信することにより、情報共有しておくこともできる。 In the above-described example, the device information is basically stored in the own device. When the “distributed preparation process” in FIG. 4 is performed, more precisely, at the end of step S3, the peripheral information of the peripheral device is stored. Device information is acquired by the device itself. That is, the sharing timing of the device information between the own device and the peripheral device is the end point of step S3 in the above-described example. However, as a matter of course, the device information sharing timing is not limited to the above-described example, and may be any timing. For example, information can be shared by performing broadcast communication at an arbitrary timing to a device capable of distributed processing of a list of programs and data loaded by the device itself.
さらに、機器情報に含まれる機能の識別IDは、上述した例では、プログラム実行可能エリアへダウンロードされた機能の識別IDとされたが、共有実行可能な機能の識別IDとされてもよい。 Furthermore, in the above-described example, the function identification ID included in the device information is the function identification ID downloaded to the program executable area. However, the function identification ID may be a shared executable function identification ID.
さらにまた、上述した例では、機能がモジュール化されている場合におけるその機能の分散処理を行うための一連の処理とされたが、機能が階層化されている場合であっても、この一連の処理と基本的に同様の処理を実行することで、その機能の分散処理が可能になる。 Furthermore, in the above-described example, a series of processing for performing distributed processing of the function when the function is modularized is described. However, even if the function is hierarchized, this series of processing is performed. By executing basically the same processing as the processing, it is possible to distribute the functions.
ところで、上述した一連の処理は、上述したようにソフトウエアにより実行させることもできるが、ハードウエアにより実行させることができる。 By the way, the series of processes described above can be executed by software as described above, but can also be executed by hardware.
また、上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。 In addition, when the above-described series of processing is executed by software, a program constituting the software is installed in a dedicated hardware or a computer, or various programs are installed to install various programs. For example, a general-purpose personal computer that can execute the function is installed from a network or a recording medium.
このようなプログラムを含む記録媒体は、図1に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブル記録媒体(パッケージメディア)16−1や16−2により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているメインメモリ13−1や13−2や、記憶装置14−1や14−2に含まれるハードディスクなどで構成される。 As shown in FIG. 1, the recording medium including such a program is distributed to provide a program to the user separately from the apparatus main body, and a magnetic disk (including a floppy disk) on which the program is recorded. , Removable recording media (package media) consisting of optical disks (including compact disk-read only memory (CD-ROM), DVD (digital versatile disk)), magneto-optical disks (including MD (mini disk)), or semiconductor memory ) Main memory 13-1 or 13-2 in which a program is recorded, which is not only configured by 16-1 and 16-2 but also provided to the user in a state of being incorporated in the apparatus main body in advance, and a storage device It is composed of hard disks included in 14-1 and 14-2.
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。 In the present specification, the step of describing the program recorded on the recording medium is not limited to the processing performed in time series along the order, but is not necessarily performed in time series, either in parallel or individually. The process to be executed is also included.
また、本明細書において、システムとは、複数の装置や処理部により構成される装置全体を表すものである。 Further, in the present specification, the system represents the entire apparatus including a plurality of apparatuses and processing units.
1,2 情報処理装置 3 ネットワーク, 11−1,11−2 情報処理コントローラ, 12−1,12−2 ネットワークインタフェース, 13−1,13−2 メインメモリ, 14−1,14−2 記憶装置, 15−1,15−2 ドライブ, 16−1,16−2 リムーバブル記録媒体, 21−1,21−2 MPU, 22−1,22−2 メモリ, 31−1乃至33−1,31−2乃至33−2 SPU, 41−1乃至43−1,41−2乃至43−2 メモリ, 51−1,51−2 バス, 61−1,61−2 機能格納部, 62−1,62−2 機器情報格納部, 63−1,63−2 分散機器検索部, 64−1,64−2 分散正当性判断部, 65−1,65−2 分散機能実行部, 66−1,66−2 機器情報提供部
1, 2
Claims (4)
ソフトウエアとしての複数の機能要素から構成される機能を実行対象として、前記情報処理装置自身と前記周辺機器のそれぞれが略現時点で要求しているハードウエア条件、前記実行対象が略現時点で要求しているソフトウエア条件、および、前記通信インフラの略現時点の帯域に基づいて、前記情報処理装置自身と前記周辺機器とによる前記実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、前記実行対象を構成する複数の前記機能要素のそれぞれの処理を、前記情報処理装置自身と前記周辺機器のうちのいずれかに割り振る正当性判断手段と、
前記正当性判断手段により正当性がないと判断された場合、前記実行対象を自分自身で実行し、前記正当性判断手段により正当性があると判断された場合、前記実行対象を構成する複数の前記機能要素のうちの、前記正当性判断手段により前記情報処理装置自身に割り振られた第1の機能要素を自分自身で実行し、前記正当性判断手段により前記周辺機器に割り振られた第2の機能要素を前記周辺機器に実行させる制御を行い、前記第1の機能要素と前記第2の機能要素とのそれぞれの実行結果を合成することで、前記実行対象の分散処理を実行する機能実行手段と
を備えることを特徴とする情報処理装置。 In an information processing apparatus that performs distributed processing of a predetermined function in cooperation with the peripheral device by performing communication with the peripheral device using a predetermined communication infrastructure,
A hardware condition that each of the information processing device itself and the peripheral device requests at the present time, and the execution target is requested at a substantially current time. On the basis of the current software conditions and the current bandwidth of the communication infrastructure, the validity of the execution of the distributed processing of the execution target by the information processing apparatus itself and the peripheral device is determined, and the validity is When it is determined that there is a legitimacy determining unit that allocates each of the plurality of functional elements constituting the execution target to either the information processing apparatus itself or the peripheral device;
When the validity determining unit determines that there is no validity, the execution target is executed by itself, and when the validity determining unit determines that there is validity, a plurality of items constituting the execution target Of the functional elements, the first functional element allocated to the information processing apparatus itself by the validity determining means is executed by itself, and the second functional element allocated to the peripheral device by the validity determining means. Function execution means for executing distributed processing of the execution target by performing control of causing the peripheral device to execute the function element and combining the execution results of the first function element and the second function element An information processing apparatus comprising:
前記正当性判断手段は、前記情報処理装置自身と前記検索手段により検索された前記周辺機器とによる前記実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、前記実行対象を構成する複数の前記機能要素のうちの、前記周辺機器が略現在実行可能な機能要素を前記第2の機能要素として前記周辺機器に割り当て、それ以外の機能要素を前記第1の機能要素として前記情報処理装置自身に割り当てる
ことを特徴とする請求項1に記載の情報処理装置。 Holds at least one of the plurality of functional elements constituting the execution target from among other information processing apparatuses capable of performing communication using the communication infrastructure, and is currently executing it. Further comprising a search means for searching other possible information processing devices as the peripheral device,
The validity determination means determines the validity of the execution of the distributed processing of the execution target by the information processing apparatus itself and the peripheral device searched by the search means, and determines that there is validity, Of the plurality of functional elements constituting the execution target, a functional element that is substantially executable by the peripheral device is assigned to the peripheral device as the second functional element, and other functional elements are assigned to the first functional element. The information processing apparatus according to claim 1, wherein the information processing apparatus is assigned as a functional element to the information processing apparatus itself.
ソフトウエアとしての複数の機能要素から構成される機能を実行対象として、前記情報処理装置自身と前記周辺機器のそれぞれが略現時点で要求しているハードウエア条件、前記実行対象が略現時点で要求しているソフトウエア条件、および、前記通信インフラの略現時点の帯域に基づいて、前記情報処理装置自身と前記周辺機器とによる前記実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、前記実行対象を構成する複数の前記機能要素のそれぞれの処理を、前記情報処理装置自身と前記周辺機器のうちのいずれかに割り振る正当性判断ステップと、
前記正当性判断ステップの処理により正当性がないと判断された場合、前記実行対象を前記情報処理装置自身に実行させる制御を行い、前記正当性判断手段により正当性があると判断された場合、前記実行対象を構成する複数の前記機能要素のうちの、前記正当性判断ステップの処理により前記情報処理装置自身に割り振られた第1の機能要素を前記情報処理装置自身に実行させる制御を行い、前記正当性判断ステップの処理により前記周辺機器に割り振られた第2の機能要素を前記周辺機器に実行させる制御を行い、前記第1の機能要素と前記第2の機能要素とのそれぞれの実行結果を合成することで、前記実行対象の分散処理の実行を制御する機能実行制御ステップと
を含むことを特徴とする情報処理方法。 In an information processing method of an information processing apparatus that performs distributed processing of a predetermined function in cooperation with the peripheral device by communicating with the peripheral device using a predetermined communication infrastructure,
A hardware condition that each of the information processing device itself and the peripheral device requests at the present time, and the execution target is requested at a substantially current time. On the basis of the current software conditions and the current bandwidth of the communication infrastructure, the validity of the execution of the distributed processing of the execution target by the information processing apparatus itself and the peripheral device is determined, and the validity is When it is determined that there is a legitimacy determining step of allocating the processing of each of the plurality of functional elements constituting the execution target to either the information processing apparatus itself or the peripheral device;
When it is determined that there is no legitimacy by the processing of the legitimacy judgment step, the information processing apparatus itself is controlled to execute the execution target, and when the legitimacy judgment unit determines that the legitimacy is legitimate, Among the plurality of functional elements constituting the execution target, performing control to cause the information processing apparatus itself to execute the first functional element allocated to the information processing apparatus itself by the process of the validity determination step, Control is performed to cause the peripheral device to execute the second functional element allocated to the peripheral device by the process of the legitimacy determining step, and the respective execution results of the first functional element and the second functional element And a function execution control step for controlling the execution of the distributed processing to be executed by synthesizing the information.
ソフトウエアとしての複数の機能要素から構成される機能を実行対象として、前記主装置と前記周辺機器のそれぞれが略現時点で要求しているハードウエア条件、前記実行対象が略現時点で要求しているソフトウエア条件、および、前記通信インフラの略現時点の帯域に基づいて、前記主装置と前記周辺機器とによる前記実行対象の分散処理の実行についての正当性を判断し、正当性があると判断した場合、前記実行対象を構成する複数の前記機能要素のそれぞれの処理を、前記主装置と前記周辺機器のうちのいずれかに割り振る正当性判断ステップと、
前記正当性判断ステップの処理により正当性がないと判断された場合、前記実行対象を前記主装置に実行させる制御を行い、前記正当性判断手段により正当性があると判断された場合、前記実行対象を構成する複数の前記機能要素のうちの、前記正当性判断ステップの処理により前記主装置に割り振られた第1の機能要素を前記主装置に実行させる制御を行い、前記正当性判断ステップの処理により前記周辺機器に割り振られた第2の機能要素を前記周辺機器に実行させる制御を行い、前記第1の機能要素と前記第2の機能要素とのそれぞれの実行結果を合成することで、前記実行対象の分散処理の実行を制御する機能実行制御ステップと
を含むことを特徴とするプログラム。 A program executed by a computer that controls a peripheral device and a main apparatus that performs a distributed operation of a predetermined function in cooperation with the peripheral device by communicating with the peripheral device using a predetermined communication infrastructure. There,
Hardware functions requested by each of the main device and the peripheral device at substantially the current time, and the execution objects are requested at the substantially current time, with a function composed of a plurality of functional elements as software being executed. Based on the software conditions and the approximate current bandwidth of the communication infrastructure, the validity of the execution of the distributed processing of the execution target by the main device and the peripheral device is determined, and the validity is determined In this case, a legitimacy determination step of allocating the processing of each of the plurality of functional elements constituting the execution target to either the main device or the peripheral device;
When it is determined by the process of the legitimacy determination step that the legitimacy is not legitimate, the main device is controlled to execute the execution target. Of the plurality of functional elements constituting the object, control is performed to cause the main apparatus to execute the first functional element allocated to the main apparatus by the process of the validity determining step. By performing control to cause the peripheral device to execute the second functional element allocated to the peripheral device by processing, and combining the execution results of the first functional element and the second functional element, A function execution control step for controlling execution of the distributed processing to be executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004279525A JP2006092432A (en) | 2004-09-27 | 2004-09-27 | Information processing device, method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004279525A JP2006092432A (en) | 2004-09-27 | 2004-09-27 | Information processing device, method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006092432A true JP2006092432A (en) | 2006-04-06 |
Family
ID=36233320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004279525A Withdrawn JP2006092432A (en) | 2004-09-27 | 2004-09-27 | Information processing device, method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006092432A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009139437A1 (en) * | 2008-05-14 | 2009-11-19 | 日本電気株式会社 | Client device, control method thereof, program, server device, control method thereof, communication system, and control method thereof |
WO2013030908A1 (en) * | 2011-08-26 | 2013-03-07 | 富士通株式会社 | Scheduling system, data processing system and scheduling method |
JP2013258600A (en) * | 2012-06-13 | 2013-12-26 | Mitsubishi Electric Corp | Video display terminal |
-
2004
- 2004-09-27 JP JP2004279525A patent/JP2006092432A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009139437A1 (en) * | 2008-05-14 | 2009-11-19 | 日本電気株式会社 | Client device, control method thereof, program, server device, control method thereof, communication system, and control method thereof |
US20110066681A1 (en) * | 2008-05-14 | 2011-03-17 | Naoki Shiota | Client device, control method thereof, program, server device, control method thereof, communication system, and control method thereof |
WO2013030908A1 (en) * | 2011-08-26 | 2013-03-07 | 富士通株式会社 | Scheduling system, data processing system and scheduling method |
JP2013258600A (en) * | 2012-06-13 | 2013-12-26 | Mitsubishi Electric Corp | Video display terminal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467864B2 (en) | Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system | |
WO2018149221A1 (en) | Device management method and network management system | |
US9185160B2 (en) | Resource reservation protocol over unreliable packet transport | |
EP2012234A2 (en) | Job management device, cluster system, and job management program | |
WO2019218708A1 (en) | Task processing method and device, and computer system | |
EP1310872A2 (en) | Circuit group control system | |
WO2021227999A1 (en) | Cloud computing service system and method | |
CN1330782A (en) | Interrupt architecture for non-uniform memory access (NUMA) data processing system | |
CN105339917A (en) | Separate memory controllers to access data in memory | |
EP3114589B1 (en) | System and method for massively parallel processing database | |
CN111625364B (en) | Task allocation method, device, electronic equipment and computer readable medium | |
CN1159657C (en) | Bus system and its data transmitting method | |
CN108170417B (en) | Method and device for integrating high-performance job scheduling framework in MESOS cluster | |
JP2006092432A (en) | Information processing device, method, and program | |
CN103827830A (en) | System and method for preventing single-point bottleneck in a transactional middleware machine environment | |
US9317098B2 (en) | Server, power management system, power management method, and program | |
US9690619B2 (en) | Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory | |
CN114265713A (en) | RDMA event management method, device, computer equipment and storage medium | |
WO2022111466A1 (en) | Task scheduling method, control method, electronic device and computer-readable medium | |
CN112769966B (en) | Address information distribution method and device and electronic equipment | |
CN113608861A (en) | Software load computing resource virtualization distribution method and device | |
JP2016178536A (en) | Image processing apparatus, program and control method | |
CN108255820B (en) | Method and device for data storage in distributed system and electronic equipment | |
CN110069287B (en) | Multi-system coexistence method and device and storage equipment | |
US20240160486A1 (en) | Computing resource management system and method using software modularization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071204 |