JP6427697B1 - 情報処理装置、情報処理方法、プログラムおよび情報処理システム - Google Patents

情報処理装置、情報処理方法、プログラムおよび情報処理システム Download PDF

Info

Publication number
JP6427697B1
JP6427697B1 JP2018008069A JP2018008069A JP6427697B1 JP 6427697 B1 JP6427697 B1 JP 6427697B1 JP 2018008069 A JP2018008069 A JP 2018008069A JP 2018008069 A JP2018008069 A JP 2018008069A JP 6427697 B1 JP6427697 B1 JP 6427697B1
Authority
JP
Japan
Prior art keywords
information processing
data
algorithm
processing apparatus
result
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.)
Active
Application number
JP2018008069A
Other languages
English (en)
Other versions
JP2019128645A (ja
Inventor
研太郎 今津
研太郎 今津
章弘 宮本
章弘 宮本
侑亮 野村
侑亮 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Triart
Original Assignee
Triart
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Triart filed Critical Triart
Priority to JP2018008069A priority Critical patent/JP6427697B1/ja
Application granted granted Critical
Publication of JP6427697B1 publication Critical patent/JP6427697B1/ja
Priority to CN201980021190.6A priority patent/CN111902808A/zh
Priority to PCT/JP2019/000872 priority patent/WO2019142767A1/ja
Priority to EP19741155.6A priority patent/EP3745274A4/en
Priority to US16/963,520 priority patent/US11875134B2/en
Publication of JP2019128645A publication Critical patent/JP2019128645A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数の情報処理装置が有するデータを用いて所定の演算を実行することを効率化することが可能な情報処理装置を提供する。
【解決手段】情報処理装置は、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能を有するデータ受信部と、前記データ受信部により受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて演算を実行する機能を有する演算実行部と、前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置に送信する機能を有するデータ送信部と、を備える。
【選択図】図1

Description

本発明は、情報処理装置、情報処理方法、プログラムおよび情報処理システムに関する。
ネットワークに多数の情報処理装置が備えられた情報処理システムにおいて、サーバの機能を有する情報処理装置が、他の情報処理装置のそれぞれに記憶されたデータを収集し、収集されたデータについて所定の演算を実行することがあった。つまり、サーバと多数のクライアントとが、1対多の関係でデータの配信および収集を行っていた。
しかしながら、上記のような情報処理システムでは、例えば、多数の情報処理装置により膨大な量のデータが記憶される場合に、1個のサーバ装置がすべての情報処理装置に記憶されたデータを収集して所定の演算を実行するために、多大な負荷となり、膨大な時間および膨大なリソースを費やしてしまうことがあった。
また、上記のような情報処理システムでは、サーバの機能を担った情報処理装置以外の情報処理装置では、前記した演算を行うことができなかった。
なお、従来技術の一例として、非特許文献1に記載されるように、Ethereumと呼ばれている技術があった(非特許文献1参照。)。この技術は、ブロックチェーンを利用して分散アプリケーションを実行するためのプラットフォームに関する技術である。
しかしながら、非特許文献1に記載された技術においても、上記のような従来の問題は解消されていなかった。
DR.GAVIN WOOD、FOUNDER、ETHEREUM & ETHCORE、"ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER" EIP−150 REVISION(759dccd−2017−08−07)、[online]、2017−08−07、[平成29年12月6日検索]、インターネット<URL:https://ethereum.github.io/yellowpaper/paper.pdf>
上述のように、従来では、複数の情報処理装置が有するデータを用いた処理を効率化することが十分ではない場合があった。
本発明の実施形態は、このような事情に鑑み、複数の情報処理装置が有するデータを用いて所定の演算を実行することを効率化することが可能な情報処理装置、情報処理方法、プログラムおよび情報処理システムを提供する。
本発明の実施形態に係る情報処理装置は、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能を有するデータ受信部と、前記データ受信部により受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用する機能を有する演算実行部と、前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置に送信する機能を有するデータ送信部と、を備え、前記第2のアルゴリズムデータを前記第2の情報処理装置と少なくとも一つの他の情報処理装置に送信し、前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、前記演算の結果に関するデータについて所定の判定を行う機能を有する第2の演算結果判定部を備え、前記第2の演算結果判定部は、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う機能を有する。
本発明の一態様に係る情報処理装置において、前記データ送信部は、初期的な第3のアルゴリズムが記述されたデータである第3のアルゴリズムデータを次の情報処理装置に送信する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記演算実行部は、第4のアルゴリズムに基づいて演算を実行する機能を有し、前記データ送信部は、前記第4のアルゴリズムに応じたアルゴリズムを前記第3のアルゴリズムとして、前記第3のアルゴリズムデータを前記次の情報処理装置に送信する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第3のアルゴリズムに応じたアルゴリズムを伝送する経路に含まれるすべての情報処理装置および伝送の順序を決定する機能を有する第1の経路決定部を備える、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第1の経路決定部は、前記情報処理装置の属性に基づいて、前記情報処理装置および前記順序を決定する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第1の経路決定部は、前記情報処理装置の属性として、過去に前記アルゴリズムの伝送に加わった回数、過去における質問に対する回答の数、または、過去における質問に対する回答の頻度のうちのいずれかに基づいて、前記情報処理装置および前記順序を決定する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第2のアルゴリズムに応じたアルゴリズムを伝送する経路に含まれる前記第2の情報処理装置を含む1以上の情報処理装置および伝送の順序を決定する機能を有する第2の経路決定部を備える、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第2の経路決定部は、前記情報処理装置の属性に基づいて、前記情報処理装置および前記順序を決定する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第2の経路決定部は、前記情報処理装置の属性として、過去に前記アルゴリズムの伝送に加わった回数、過去における質問に対する回答の数、または、過去における質問に対する回答の頻度のうちのいずれかに基づいて、前記情報処理装置および前記順序を決定する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第2のアルゴリズムは、前記第1のアルゴリズムと同じである、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第2のアルゴリズムは、前記第1のアルゴリズムとは異なる、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ受信部は、前記第1の情報処理装置における演算の結果に関するデータを前記第1の情報処理装置から受信する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ受信部は、前記第1の情報処理装置における演算の結果に関するデータと、前記第1のアルゴリズムデータとを同時に前記第1の情報処理装置から受信する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ送信部は、前記演算実行部による演算の結果に関するデータを前記第2の情報処理装置に送信する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ送信部は、前記演算実行部による演算の結果に関するデータと、前記第2のアルゴリズムデータとを同時に前記第2の情報処理装置に送信する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、データを記憶する前記第1の記憶部を備え、前記演算実行部は、前記第1の記憶部に記憶された前記データを用いて、前記演算を実行する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ送信部は、前記演算実行部による演算の結果に関するデータを通知対象となる1以上の所定の情報処理装置に送信する機能を有する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記所定の情報処理装置は、少なくとも、アルゴリズムデータの発信元の情報処理装置を含む、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記演算実行部による前記演算の結果に関するデータを最終的なデータとするか否かを判定する機能を有する第1の演算結果判定部を備える、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記第1の演算結果判定部は、既に前記アルゴリズムに応じた前記演算を実行した前記情報処理装置の数が所定の閾値以上である場合に前記演算の結果に関するデータを最終的なデータとするという判定基準、または、得られた前記演算の結果に含まれる情報の量が所定の閾値以上である場合に前記演算の結果に関するデータを最終的なデータとするという判定基準を用いて、前記演算実行部による前記演算の結果に関するデータを最終的なデータとするか否かを判定する機能を有する、構成とされてもよい。
発明の一態様に係る情報処理装置において、前記データ受信部は、他の装置から送信されるデータを受信し、前記演算実行部は、前記データ受信部により前記他の装置から受信された前記データに基づいて前記演算を実行する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記他の装置は、アルゴリズムが伝送される対象以外の装置である、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ受信部により受信された前記データのうちの一部または全部を記憶する第2の記憶部を備える、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ送信部により送信した前記データのうちの一部または全部を記憶する第3の記憶部を備える、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記演算実行部は、前記データ受信部により前記第1のアルゴリズムデータを受信したことに応じて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、前記データ送信部は、前記演算実行部により前記演算が実行されたことに応じて、前記第2のアルゴリズムデータを前記第2の情報処理装置に送信する、構成とされてもよい。
本発明の一態様に係る情報処理装置において、前記データ受信部は、前記第1のアルゴリズムデータとともに第1のパラメーターを前記第1の情報処理装置から受信し、前記演算実行部は、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算において前記データ受信部により受信された前記第1のパラメーターを使用し、前記データ送信部は、前記第2のアルゴリズムデータとともに第2のパラメーターを前記第2の情報処理装置に送信する、構成とされてもよい。
本発明の実施形態に係る情報処理方法は、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信し、受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用し、前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置と少なくとも一つの他の情報処理装置に送信し、前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う。
本発明の実施形態に係るプログラムは、情報処理装置を構成するコンピュータに、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能と、受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用する機能と、前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置と少なくとも一つの他の情報処理装置に送信する機能と、前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う機能と、を実現させるためのプログラムである。
本発明の実施形態に係る情報処理システムは、情報処理装置を含む情報処理システムにおいて、前記情報処理装置は、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能を有するデータ受信部と、前記データ受信部により受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用する機能を有する演算実行部と、前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置に送信する機能を有するデータ送信部と、を備え、前記第2のアルゴリズムデータを前記第2の情報処理装置と少なくとも一つの他の情報処理装置に送信し、前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、前記演算の結果に関するデータについて所定の判定を行う機能を有する第2の演算結果判定部を備え、前記第2の演算結果判定部は、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う機能を有する。
上記した情報処理装置、情報処理方法、プログラムおよび情報処理システムによれば、複数の情報処理装置が有するデータを用いて所定の演算を実行することを効率化することが可能である。
本発明の一実施形態(第1実施形態)に係る情報処理システムの概略的な構成例を示す図である。 本発明の一実施形態に係る1番目の情報処理装置の概略的な構成例を示す図である。 本発明の一実施形態に係るj(j=2〜N−1)番目の情報処理装置の概略的な構成例を示す図である。 本発明の一実施形態に係るN番目の情報処理装置の概略的な構成例を示す図である。 本発明の一実施形態に係る情報処理装置テーブルの一例を示す図である。 本発明の一実施形態に係る1番目の情報処理装置から送信されるデータの概略的な一例を示す図である。 本発明の一実施形態に係るj(j=2〜N−1)番目の情報処理装置から送信されるデータの概略的な一例を示す図である。 本発明の一実施形態に係るN番目の情報処理装置から送信されるデータの概略的な一例を示す図である。 本発明の一実施形態(第1実施形態)に係る情報処理システムにおける全体的な動作の概略を示す図である。 本発明の一実施形態に係る1番目の情報処理装置において行われる処理の手順の一例を示す図である。 本発明の一実施形態に係るj(j=2〜N−1)番目の情報処理装置において行われる処理の手順の一例を示す図である。 本発明の一実施形態に係るN番目の情報処理装置において行われる処理の手順の一例を示す図である。 本発明の一実施形態(第2実施形態)に係る情報処理システムにおける全体的な動作の概略を示す図である。 本発明の一実施形態(第3実施形態)に係るz(z=2〜N)番目の情報処理装置の概略的な構成例を示す図である。 本発明の一実施形態(第3実施形態)に係るz(z=2〜N)番目の情報処理装置において行われる処理の手順の一例を示す図である。 本発明の一実施形態(第4実施形態)に係る階層化部分の概略的な構成例を示す図である。 本発明の一実施形態(第4実施形態)に係る情報処理装置における制御部の概略的な構成例を示す図である。 本発明の一実施形態(第4実施形態)に係る情報処理装置において行われる処理の手順の一例を示す図である。 本発明の一実施形態(第5実施形態)に係る情報処理装置において行われるデータ集約の概略を示す図である。 本発明の一実施形態(第5実施形態)に係る情報処理装置において行われるデータ集約の概略を示す図である。 本発明の一実施形態(第5実施形態)に係る情報処理装置において行われるデータ集約の概略を示す図である。 本発明の一実施形態(第5実施形態)に係る情報処理システムの概略的な構成例を示す図である。 本発明の一実施形態(第5実施形態)に係る情報処理システムにおいて行われる処理の手順の一例を示す図である。 通信システムの一例を示す図である。 サーバレスの通信システムの一例を示す図である。 本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。 本発明の一実施形態(第6実施形態)に係る情報処理装置の概略的な構成例を示す図である。 本発明の一実施形態(第6実施形態)に係る2個の情報処理装置において行われる処理の一例を示す図である。 本発明の一実施形態(第6実施形態)に係る2個の情報処理装置において行われる処理の一例を示す図である。 本発明の一実施形態(第6実施形態)に係る2個の情報処理装置において行われる処理の一例を示す図である。
本発明の実施形態について図面を参照して詳細に説明する。
(第1実施形態)
[情報処理システムの概要]
図1は、本発明の一実施形態(第1実施形態)に係る情報処理システム1の概略的な構成例を示す図である。
本実施形態に係る情報処理システム1は、N(本実施形態において、Nは3以上の整数であるとする。)個の情報処理装置A(1)〜A(N)を備える。
なお、図1では、説明の便宜上、5個以上の情報処理装置A(1)〜A(N)を例示してあるが、N=3あるいはN=4であってもよい。
それぞれの情報処理装置A(1)〜A(N)は、通信相手となる他の情報処理装置A(1)〜A(N)との間で、通信を行う機能を有する。当該通信は、例えば、有線の通信であってもよく、無線の通信であってもよく、あるいは、有線と無線の両方の通信であってもよい。
また、それぞれの情報処理装置A(1)〜A(N)により行われる通信は、例えば、1対1(P2P)の通信であってもよく、また、サーバクライアントの通信であってもよく、また、他の方式の通信であってもよい。また、それぞれの情報処理装置A(1)〜A(N)により行われる通信は、例えば、VPN(Virtual Private Network)接続を用いた通信であってもよい。
それぞれの情報処理装置A(1)〜A(N)は、様々な装置であってもよい。それぞれの情報処理装置A(1)〜A(N)は、例えば、サーバの機能を有していない装置であってもよく、あるいは、サーバの機能を有する装置であってもよい。それぞれの情報処理装置A(1)〜A(N)は、例えば、ノート型のコンピュータであってもよく、デスクトップ型のコンピュータであってもよく、タブレット型のコンピュータであってもよく、スマートフォンのようなコンピュータであってもよく、あるいは、他のコンピュータであってもよい。当該他のコンピュータとしては、例えば、自動車などの乗り物に備えられたコンピュータであってもよい。それぞれの情報処理装置A(1)〜A(N)は、例えば、物理端末として構成されてもよく、あるいは、仮想端末として構成されてもよい。それぞれの情報処理装置A(1)〜A(N)は、例えば、社内ネットワーク上にあってもよく、あるいは、インターネット上にあってもよい。
このような装置の種類に関し、それぞれの情報処理装置A(1)〜A(N)は、例えば、同じ種類の装置であってもよく、あるいは、異なる種類の装置であってもよい。
また、それぞれの情報処理装置A(1)〜A(N)は、例えば、いわゆるIoT(Internet of Things)あるいはICT(Information and Communication Technology)の装置であってもよい。
また、それぞれの情報処理装置A(1)〜A(N)は、任意の者によって管理されてもよい。それぞれの情報処理装置A(1)〜A(N)は、例えば、個人(例えば、所有者)によって管理されてもよく、あるいは、組織(例えば、所有などする組織)によって管理されてもよい。このような管理者の種類に関し、それぞれの情報処理装置A(1)〜A(N)は、例えば、同じ種類の者によって管理されてもよく、あるいは、異なる種類の者によって管理されてもよい。
[情報処理システムの動作の概要]
図1を参照して、本実施形態に係る情報処理システム1において行われる動作の概要を示す。
本実施形態では、1個の情報処理装置A(1)(説明の便宜上、「1番目の情報処理装置A(1)」という。)は、主導となり、2番目からN番目までの他の情報処理装置A(2)〜A(N)を設定する。
なお、図1では図示していないが、情報処理システム1には、N個の情報処理装置A(1)〜A(N)以外の情報処理装置が備えられていてもよい。この場合、1番目の情報処理装置A(1)は、N個より多い情報処理装置のうちから、2番目からN番目までの他の情報処理装置A(2)〜A(N)を選択して設定する。
ここで、本実施形態では、1番目の情報処理装置A(1)は、例えば、あらかじめ定められていてもよく、あるいは、任意のタイミングで定められてもよい。具体例として、1番目の情報処理装置A(1)は、任意のタイミングで、ユーザ(人)により行われる操作に応じて定められてもよい。具体例として、1番目の情報処理装置A(1)は、任意のタイミングで、所定の条件が満たされたことが任意の装置によって自動的に判定されたことに応じて定められてもよい。
また、本実施形態では、2番目〜N番目の情報処理装置A(2)〜A(N)は、例えば、あらかじめ定められてもよく、あるいは、任意のタイミングで定められてもよい。具体例として、2番目〜N番目の情報処理装置A(2)〜A(N)は、任意のタイミングで、ユーザ(人)により行われる操作に応じて定められてもよい。具体例として、2番目〜N番目の情報処理装置A(2)〜A(N)は、1番目の情報処理装置A(1)からの発信が行われる前における任意のタイミングで、所定の条件に基づいて、1番目の情報処理装置A(1)によって定められてもよい。
また、具体例として、2番目〜N番目の情報処理装置A(2)〜A(N)は、自装置よりも順番が前である別の情報処理装置からの発信(図1の例では、アルゴリズムデータa(1)の送信)が行われる前における任意のタイミングで、所定の条件に基づいて、当該別の情報処理装置によって定められてもよい。このような一例として、i(ここでは、i=2〜N)番目の情報処理装置A(i)は、自装置よりも順番が1つ前である情報処理装置A(i−1)によって定められてもよい。
1番目の情報処理装置A(1)は、所定のアルゴリズムデータa(1)を2番目の情報処理装置A(2)に送信する。
ここで、アルゴリズムデータa(1)は、所定のアルゴリズムが記述されたデータであり、当該アルゴリズムを示す情報を含むデータである。なお、このようなデータは、例えば、プログラム(あるいは、プログラムのデータ)などと呼ばれてもよい。また、アルゴリズムは、例えば、ロジックなどと呼ばれてもよい。
当該所定のアルゴリズムは、例えば、あらかじめ定められてもよく、あるいは、任意のタイミングで定められてもよい。具体例として、当該所定のアルゴリズムは、任意のタイミングで、ユーザ(人)により行われる操作に応じて定められてもよい。具体例として、当該所定のアルゴリズムは、1番目の情報処理装置A(1)からの発信(図1の例では、アルゴリズムデータa(1)の送信)が行われる前における任意のタイミングで、所定の条件に基づいて、1番目の情報処理装置A(1)によって定められてもよい。
2番目の情報処理装置A(2)は、1番目の情報処理装置A(1)から送信されたアルゴリズムデータa(1)を受信する。また、2番目の情報処理装置A(2)は、受信されたアルゴリズムデータa(1)に含まれる情報によって示されるアルゴリズムに応じた演算を、自装置において記憶されているデータを用いて、実行する。2番目の情報処理装置A(2)は、当該演算を実行した結果のデータ(演算結果データb(1))を取得する。
そして、2番目の情報処理装置A(2)は、所定のアルゴリズムデータa(2)および演算結果データb(1)を3番目の情報処理装置A(3)に送信する。
ここで、アルゴリズムデータa(2)は、所定のアルゴリズムが記述されたデータであり、当該アルゴリズムを示す情報を含むデータである。
3番目の情報処理装置A(3)は、2番目の情報処理装置A(2)から送信されたアルゴリズムデータa(2)および演算結果データb(1)を受信する。また、3番目の情報処理装置A(3)は、受信されたアルゴリズムデータa(2)に含まれる情報によって示されるアルゴリズムに応じた演算を、自装置において記憶されているデータを用いて、実行する。3番目の情報処理装置A(3)は、当該演算を実行した結果のデータ(演算結果データb(2))を取得する。
ここで、本実施形態では、演算結果データb(2)には、それよりも前における演算結果データb(1)が反映されている。一例として、演算結果データb(2)には、それよりも前における演算結果データb(1)が含まれてもよい。他の例として、演算結果データb(2)が演算されるときに、それよりも前における演算結果データb(1)がその演算に用いられてもよい。
そして、3番目の情報処理装置A(3)は、所定のアルゴリズムデータa(3)および演算結果データb(2)を4番目の情報処理装置A(4)に送信する。
ここで、アルゴリズムデータa(3)は、所定のアルゴリズムが記述されたデータであり、当該アルゴリズムを示す情報を含むデータである。
4番目の情報処理装置A(4)〜(N−1)番目の情報処理装置A(N−1)においても、3番目の情報処理装置A(3)と同様な動作を行う。
すなわち、i(ここでは、i=4〜N−1)番目の情報処理装置A(i)は、(i−1)番目の情報処理装置A(i−1)から送信されたアルゴリズムデータa(i−1)および演算結果データb(i−2)を受信する。また、i番目の情報処理装置A(i)は、受信されたアルゴリズムデータa(i−1)に含まれる情報によって示されるアルゴリズムに応じた演算を、自装置において記憶されているデータを用いて、実行する。i番目の情報処理装置A(i)は、当該演算を実行した結果のデータ(演算結果データb(i−1))を取得する。
ここで、本実施形態では、演算結果データb(i−1)には、それよりも前における演算結果データb(i−2)が反映されている。一例として、演算結果データb(i−1)には、それよりも前における演算結果データb(i−2)が含まれてもよい。他の例として、演算結果データb(i−1)が演算されるときに、それよりも前における演算結果データb(i−2)がその演算に用いられてもよい。
そして、i番目の情報処理装置A(i)は、所定のアルゴリズムデータa(i)および演算結果データb(i−1)を(i+1)番目の情報処理装置A(i+1)に送信する。
ここで、アルゴリズムデータa(i)は、所定のアルゴリズムが記述されたデータであり、当該アルゴリズムを示す情報を含むデータである。
N番目の情報処理装置は、(N−1)番目の情報処理装置A(N−1)から送信されたアルゴリズムデータa(N−1)を受信する。また、N番目の情報処理装置A(N)は、受信されたアルゴリズムデータa(N−1)に含まれる情報によって示されるアルゴリズムに応じた演算を、自装置において記憶されているデータを用いて、実行する。N番目の情報処理装置A(N)は、当該演算を実行した結果のデータ(演算結果データb(N−1))を取得する。
ここで、本実施形態では、演算結果データb(N−1)には、それよりも前における演算結果データb(N−2)が反映されている。一例として、演算結果データb(N−1)には、それよりも前における演算結果データb(N−2)が含まれてもよい。他の例として、演算結果データb(N−1)が演算されるときに、それよりも前における演算結果データb(N−2)がその演算に用いられてもよい。
そして、N番目の情報処理装置A(N)は、演算結果データb(N−1)を1番目の情報処理装置A(1)に送信する。
[情報処理装置の概要]
図2は、本発明の一実施形態に係る1番目の情報処理装置A(1)の概略的な構成例を示す図である。
図3は、本発明の一実施形態に係るj(j=2〜N−1)番目の情報処理装置A(j)の概略的な構成例を示す図である。
図4は、本発明の一実施形態に係るN番目の情報処理装置A(N)の概略的な構成例を示す図である。
ここで、本実施形態では、説明の便宜上、1番目の情報処理装置A(1)、j(j=2〜N−1)番目の情報処理装置A(j)、N番目の情報処理装置A(N)に分けて説明するが、これらのうちの任意の2つの各々として機能することが可能な情報処理装置が用いられてもよく、あるいは、これらのうちの任意の3つの各々として機能することが可能な情報処理装置が用いられてもよい。
一例として、図1に示されるそれぞれの情報処理装置A(1)〜A(N)は、任意の順番にある情報処理装置になり得る機能(つまり、図2、図3、図4に示されるすべての機能を包含する機能)を有してもよい。
<1番目の情報処理装置の概要>
図2を参照して説明する。
1番目の情報処理装置A(1)は、入力部111と、出力部112と、記憶部113と、通信部114と、制御部115を備える。
入力部111は、外部から情報を入力する。
一例として、入力部111は、ユーザ(人)により操作される操作部を備え、当該ユーザにより当該操作部に対して行われた操作に応じた情報を入力する。当該操作部は、例えば、キーボード、あるいは、マウスなどであってもよい。
他の例として、入力部111は、外部の装置から出力される情報を入力してもよい。当該外部の装置は、例えば、USB(Universal Serial Bus)のメモリなどのような可搬型の記憶媒体であってもよい。
出力部112は、外部に情報を出力する。
一例として、出力部112は、ユーザに対して情報を表示出力する表示部を備えてもよい。当該表示部は、例えば、液晶パネルなどであってもよい。他の一例として、出力部112は、ユーザに対して情報を音出力する音出力部を備えてもよい。当該音出力部は、例えば、スピーカなどであってもよい。
他の例として、出力部112は、外部の装置に対して情報を出力してもよい。当該外部の装置は、例えば、可搬型の記憶媒体であってもよい。
なお、例えば、入力部111に備えられる操作部と、出力部112に備えられる表示部とが、タッチパネルとして、共通化されてもよい。この場合、タッチパネルにおいてユーザによりタッチされた状態に応じて操作に応じた情報を入力する機能により操作部の機能が構成され、また、タッチパネルにおいてユーザに対して情報を表示する機能により表示部の機能が構成される。
記憶部113は、各種のデータを記憶する。図2の例では、記憶部113は、データ151を記憶している。
記憶部113は、例えば、自装置から送信されたアルゴリズムデータa(1)、あるいは、受信された演算結果データb(N−1)のうちの1以上を記憶してもよい。なお、記憶部113に記憶されたデータは、例えば、再利用されてもよい。
通信部114は、他の情報処理装置A(2)〜A(N)との間で通信を行う。
本実施形態では、それぞれの情報処理装置A(1)〜A(N)には、それぞれの装置を識別する情報が設定されている。通信部114は、例えば、それぞれの装置を識別する情報を送信元情報あるいは送信先情報として用いて、他の情報処理装置A(2)〜A(N)との間で通信を行う。
本実施形態では、通信部114は、他の装置からデータを受信するデータ受信部の機能と、他の装置にデータを送信するデータ送信部の機能を有する。
なお、通信部114の受信機能は、例えば、入力部111の機能と一体化されてもよいが、本実施形態では、説明の便宜上、区別している。
同様に、通信部114の送信機能は、例えば、出力部112の機能と一体化されてもよいが、本実施形態では、説明の便宜上、区別している。
制御部115は、アルゴリズム生成部131と、情報処理装置検索部132と、経路決定部133と、アルゴリズム送信制御部134と、演算結果取得部135を備える。
アルゴリズム生成部131は、所定のアルゴリズムを生成する。
ここで、本実施形態では、1番目の情報処理装置A(1)によって2番目の情報処理装置A(2)からN番目の情報処理装置A(N)まで同一のアルゴリズムが伝達される場合を示す。当該アルゴリズムは、任意の内容を有するアルゴリズムであってもよく、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)までの情報処理装置によって実行されるべきアルゴリズムが設定される。
情報処理装置検索部132は、他の情報処理装置A(2)〜A(N)のうちの少なくとも2番目の情報処理装置A(2)を検索する。ここで、他の情報処理装置A(2)〜A(N)を検索する手法としては、任意の手法が用いられてもよい。
経路決定部133は、情報処理装置検索部132により検索された他の情報処理装置A(2)〜A(N)(少なくとも2番目の情報処理装置A(2))が含まれる経路を決定する。
一例として、情報処理装置検索部132は、他の情報処理装置A(2)〜A(N)のすべてを検索してもよい。この場合、経路決定部133は、情報処理装置検索部132により検索された他の情報処理装置A(2)〜A(N)のすべてが含まれる経路を決定する。この場合、1番目の情報処理装置A(1)において、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)までのすべての順番にある情報処理装置が決定される。
なお、1番目の情報処理装置A(1)において、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)までのすべての順番にある情報処理装置として、一定の情報処理装置があらかじめ設定されていてもよく、この場合には、情報処理装置検索部132の機能および経路決定部133の機能は1番目の情報処理装置A(1)に備えられなくてもよい。
他の例として、情報処理装置検索部132は、他の情報処理装置A(2)〜A(N)のうち2番目の情報処理装置A(2)だけを検索してもよい。この場合、経路決定部133は、情報処理装置検索部132により検索された2番目の情報処理装置A(2)が含まれる経路を決定する。この場合、1番目の情報処理装置A(1)において決定された経路では、3番目以降の情報処理装置は未定である。この場合、2番目以降の情報処理装置において、3番目以降の情報処理装置を決定する構成とする。
他の例として、情報処理装置検索部132は、他の情報処理装置A(2)〜A(N)のうち2番目の情報処理装置A(2)と、他の一部の任意の数(ここでは、(N−3)以下の数)の情報処理装置だけを検索してもよい。この場合、経路決定部133は、情報処理装置検索部132により検索された2番目の情報処理装置A(2)および他の一部の情報処理装置が含まれる経路を決定する。この場合、1番目の情報処理装置A(1)において決定された経路では、検索されていない順番にある情報処理装置は未定である。この場合、2番目以降の情報処理装置において、未定である情報処理装置を決定する構成とする。
アルゴリズム送信制御部134は、アルゴリズム生成部131により生成されたアルゴリズムが記述されたデータ(アルゴリズムデータa(1))を2番目の情報処理装置A(2)に対して通信部114により送信するように制御する。
ここで、本実施形態では、アルゴリズムデータa(1)には、経路決定部133により決定された経路を示す情報(説明の便宜上、「経路情報」ともいう。)が付加される。当該経路情報は、例えば、アルゴリズムデータa(1)の内部に含められるように付加されてもよく、あるいは、アルゴリズムデータa(1)の外部に付加されてもよい。なお、経路情報はアルゴリズムの一部であると捉えられてもよく、この場合、例えば、アルゴリズムは経路情報を含んでいると捉えられる。
演算結果取得部135は、N番目の情報処理装置A(N)から送信されて通信部114により受信される演算結果データb(N−1)を取得する。
ここで、本実施形態では、1番目の情報処理装置A(1)が、最初に、アルゴリズムデータa(1)を発信する。そして、当該アルゴリズムデータa(1)に関するデータが2番目の情報処理装置A(2)からN番目の情報処理装置A(N)に順次伝達されて所定の演算が実行され、N番目の情報処理装置A(N)により取得された演算結果データb(N−1)が元の1番目の情報処理装置A(1)に返されてくる。これにより、1番目の情報処理装置A(1)は、アルゴリズムデータa(1)の送信と、当該アルゴリズムデータa(1)に応じた演算結果データb(N−1)の受信を行うことができる。
<j(j=2〜N−1)番目の情報処理装置A(j)の概要>
図3を参照して説明する。なお、説明の便宜上、j(j=2〜N−1)番目の情報処理装置A(j)についてまとめて説明し、共通の符号(図に示される符号)を用いて説明する。
j番目の情報処理装置A(j)は、入力部211と、出力部212と、記憶部213と、通信部214と、制御部215を備える。
ここで、入力部211、出力部212、記憶部213、通信部214のそれぞれの機能は、概略的には、1番目の情報処理装置A(1)における入力部111、出力部112、記憶部113、通信部114のそれぞれの機能と同様であり、ここでは詳しい説明を省略する。
図3の例では、記憶部213は、データ251を記憶している。
記憶部213は、例えば、受信されたアルゴリズムデータa(j−1)、jが3以上である場合に受信された演算結果データb(j−2)、自装置から送信されたアルゴリズムデータa(j)、あるいは、自装置から送信された演算結果データb(j−1)のうちの1以上を記憶してもよい。なお、記憶部213に記憶されたデータは、例えば、再利用されてもよい。
制御部215は、アルゴリズム取得部231と、演算実行部232と、アルゴリズム生成部233と、経路決定部234と、アルゴリズム送信制御部235を備える。
アルゴリズム取得部231は、1つ前の順番の情報処理装置である(j−1)番目の情報処理装置A(j−1)から送信されて通信部214により受信されたアルゴリズムデータa(j−1)を取得する。また、(j−1)番目の情報処理装置A(j−1)から演算結果データb(j−2)も送信されてくる場合には、当該演算結果データb(j−2)も通信部214により受信される。
演算実行部232は、記憶部213に記憶されたデータ251を用いて、アルゴリズム取得部231により取得されたアルゴリズムに応じた演算を実行する。この場合に、演算実行部232は、当該アルゴリズムにしたがって、必要であれば、(j−1)番目の情報処理装置A(j−1)から受信された演算結果データb(j−2)も用いて、当該演算を実行する。
これにより、演算実行部232は、演算結果データb(j−1)を取得する。ここで、演算実行部232は、演算結果データb(j−1)に、例えば、それよりも前の順番にある情報処理装置において取得された演算結果データのうちの一部または全部を含めてもよい。
アルゴリズム生成部233は、(j−1)番目の情報処理装置A(j−1)から受信されたアルゴリズムデータa(j−1)に基づいて、1つ後の順番の情報処理装置である(j+1)番目の情報処理装置A(j+1)に送信するアルゴリズムデータa(j)のアルゴリズムを生成する。
ここで、本実施形態では、アルゴリズム生成部233は、(j−1)番目の情報処理装置A(j−1)から受信されたアルゴリズムデータa(j−1)に記述されるアルゴリズムと同一のアルゴリズムを採用し、採用されたアルゴリズムが記述されたアルゴリズムデータa(j)を生成する。
経路決定部234は、少なくとも1つ後の順番の情報処理装置である(j+1)番目の情報処理装置A(j+1)が含まれる経路を決定する。
ここで、1番目の情報処理装置A(1)において2番目の情報処理装置A(2)からN番目の情報処理装置A(N)までのすべての経路(すべての順番にある情報処理装置)が決定されている場合には、経路決定部234は、当該経路にしたがった経路を決定する。
また、自装置よりも前の順番にある情報処理装置A(1)〜A(j−1)において既に決定された経路(全体の経路のうちの一部または全部)については、経路決定部234は、例えば、そのままの経路を採用して、当該経路にしたがった経路を決定する。
また、経路決定部234は、自装置よりも前の順番にある情報処理装置A(1)〜A(j−1)において未定である経路(全体の経路のうちの一部)のうちの一部または全部を決定してもよい。この場合、経路決定部234は、例えば、情報処理装置検索部132と同様な機能を有してもよく、当該機能により情報処理装置が探索された結果に基づいて、経路を決定してもよい。
一例として、それぞれの情報処理装置A(1)〜A(N−1)が、1つ後の順番にある情報処理装置A(2)〜A(N)(次の通信相手)を決定する構成が用いられてもよい。
アルゴリズム送信制御部235は、アルゴリズム生成部233により生成されたアルゴリズムが記述されたデータ(アルゴリズムデータa(j))を(j+1)番目の情報処理装置A(j+1)に対して通信部214により送信するように制御する。
ここで、本実施形態では、アルゴリズムデータa(j)には、経路決定部234により決定された経路を示す情報(経路情報)が付加される。
<N番目の情報処理装置A(N)の概要>
図4を参照して説明する。
N番目の情報処理装置A(N)は、入力部311と、出力部312と、記憶部313と、通信部314と、制御部315を備える。
ここで、入力部311、出力部312、記憶部313、通信部314のそれぞれの機能は、概略的には、1番目の情報処理装置A(1)における入力部111、出力部112、記憶部113、通信部114のそれぞれの機能と同様であり、ここでは詳しい説明を省略する。
図4の例では、記憶部313は、データ351を記憶している。
記憶部313は、例えば、受信されたアルゴリズムデータa(N−1)、受信された演算結果データb(N−2)、あるいは、自装置から送信された演算結果データb(N−1)のうちの1以上を記憶してもよい。なお、記憶部313に記憶されたデータは、例えば、再利用されてもよい。
制御部315は、アルゴリズム取得部331と、演算実行部332と、通知先決定部333と、演算結果通知制御部334を備える。
アルゴリズム取得部331は、1つ前の順番の情報処理装置である(N−1)番目の情報処理装置A(N−1)から送信されて通信部314により受信されたアルゴリズムデータa(N−1)を取得する。また、(N−1)番目の情報処理装置A(N−1)から演算結果データb(N−2)も送信されてくる場合には、当該演算結果データb(N−2)も通信部314により受信される。
演算実行部332は、記憶部313に記憶されたデータ351を用いて、アルゴリズム取得部331により取得されたアルゴリズムに応じた演算を実行する。この場合に、演算実行部332は、当該アルゴリズムにしたがって、必要であれば、(N−1)番目の情報処理装置A(N−1)から受信された演算結果データb(N−2)も用いて、当該演算を実行する。
これにより、演算実行部332は、演算結果データb(N−1)を取得する。ここで、演算実行部332は、演算結果データb(N−1)に、例えば、それよりも前の順番にある情報処理装置において取得された演算結果データのうちの一部または全部を含めてもよい。
通知先決定部333は、演算結果データb(N−1)の通知先となる他の情報処理装置を決定する。
本実施形態では、通知先決定部333は、1番目の情報処理装置A(1)を通知先として決定する。本実施形態では、1番目の情報処理装置A(1)から2番目以降の情報処理装置A(2)〜A(N−1)を経由してN番目の情報処理装置A(N)により取得される経路情報に、1番目の情報処理装置A(1)を識別する情報が含まれているとする。
他の例として、通知先決定部333は、1番目の情報処理装置A(1)以外の装置を通知先として決定してもよい。当該通知先となる装置は、例えば、あらかじめ設定されてもよく、あるいは、通知先決定部333によりリアルタイムに決定されてもよい。
一例として、あらかじめ設定された通知先となる装置を識別する情報が、1番目の情報処理装置A(1)から2番目以降の情報処理装置A(2)〜A(N−1)を経由してN番目の情報処理装置A(N)により取得されてもよい。他の例として、通知先となる装置を識別する情報が、あらかじめ、N番目の情報処理装置A(N)に設定されてもよい。
他の例として、通知先決定部333は、情報処理装置検索部132と同様な機能を有してもよく、当該機能により情報処理装置が探索された結果に基づいて、通知先を決定してもよい。
演算結果通知制御部334は、演算結果データb(N−1)を、通知先決定部333により決定された通知先(本実施形態では、1番目の情報処理装置A(1))に対して通信部314により送信するように制御する。
[情報処理装置テーブルの概要]
図5は、本発明の一実施形態に係る情報処理装置テーブル3011の一例を示す図である。
1番目の情報処理装置A(1)における情報処理装置検索部132(あるいは、同様な機能を有する他の装置の当該機能)は、情報処理装置に関するテーブル(情報処理装置テーブル)3011を使用してもよい。
情報処理装置テーブル3011は、例えば、記憶部113に記憶される。
情報処理装置テーブル3011は、それぞれの情報処理装置について、識別情報と、電源のオン/オフの状態と、他の属性(図5の例では、属性α、属性βなど)とを対応付けて格納する。
属性としては、任意の属性が用いられてもよく、例えば、情報処理装置が属するグループ、情報処理装置が存在する地域、情報処理装置を使用するユーザの年齢あるいは性別、情報処理装置の過去における協力度(例えば、図1に示されるようなアルゴリズムの伝達に加わった回数等)、などが用いられてもよい。当該協力度としては、具体例として、質問などに対する回答の数または頻度に基づく値であってもよい。
図5の例では、識別情報として、「0001」あるいは「0002」などの数字の情報が用いられている。
図5の例では、電源のオン/オフの状態として、「オン」は情報処理装置の電源がオンの状態であることを示しており、「オフ」は情報処理装置の電源がオフの状態であることを示している。
本実施形態では、情報処理装置検索部132は、情報処理装置が検索された結果に基づいて、情報処理装置テーブル3011を生成して、更新する。
なお、情報処理装置テーブル3011の情報のうちの一部があらかじめ設定されてもよい。
また、情報処理装置テーブル3011の情報のうちの一部がユーザにより書き込まれてもよい。
また、情報処理装置テーブル3011を記憶する情報処理装置では、自装置(当該情報処理装置)に関する情報については、当該情報処理装置テーブル3011に格納されてもよく、あるいは、格納されなくてもよい。
本実施形態では、1番目の情報処理装置A(1)における経路決定部133(あるいは、同様な機能を有する他の装置の当該機能)は、電源がオンの状態である情報処理装置については経路に含ませ得るが、電源がオフの状態である情報処理装置については経路に含ませないようにする。つまり、本実施形態では、電源がオンの状態である情報処理装置のうちから、経路に含ませる情報処理装置を決定(選択)する手法が用いられてもよい。
また、例えば、1番目の情報処理装置A(1)における経路決定部133(あるいは、同様な機能を有する他の装置の当該機能)は、所定のグループ(例えば、同一のグループ)に属する情報処理装置については経路に含ませ得るが、当該グループに属しない情報処理装置については経路に含ませないようにしてもよい。つまり、本実施形態では、所定のグループに属する情報処理装置のうちから、経路に含ませる情報処理装置を決定(選択)する手法が用いられてもよい。
なお、同様に、他の属性についても、所定の属性が所定の状態である情報処理装置のうちから、経路に含ませる情報処理装置を決定(選択)する手法が用いられてもよい。
また、例えば、1個以上の所定の属性の状態に基づいて、2個以上の異なる情報処理装置の候補のうちから、最も優先される一部である1個(または、所定数個)の情報処理装置を決定(選択)する手法が用いられてもよい。
[送信データの概要]
図6は、本発明の一実施形態に係る1番目の情報処理装置A(1)から送信されるデータ(送信データ4011)の概略的な一例を示す図である。
送信データ4011は、アルゴリズム4031(ここでは、アルゴリズムが記述されたデータのことを表す。)と、パラメーター4032を含む。
図6の例では、アルゴリズム4031の実行に際して利用されるパラメーター4032が、当該アルゴリズム4031に付加されている。なお、パラメーター4032はアルゴリズム4031に含まれると捉えられてもよい。
また、本実施形態では、送信データ4011には、経路情報が含まれる。
図7は、本発明の一実施形態に係るj(j=2〜N−1)番目の情報処理装置A(j)から送信されるデータ(送信データ4111)の概略的な一例を示す図である。
送信データ4111は、アルゴリズム4131(ここでは、アルゴリズムが記述されたデータのことを表す。)と、パラメーター4132と、演算結果4133を含む。
また、本実施形態では、送信データ4111には、経路情報が含まれる。
ここで、図7に示される送信データ4111は、概略的には、図6に示される送信データ4011に対して、演算結果4133が加えられている。
本実施形態では、演算結果4133は、演算結果データb(j−1)に相当する。
図8は、本発明の一実施形態に係るN番目の情報処理装置A(N)から送信されるデータ(送信データ4211)の概略的な一例を示す図である。
送信データ4211は、演算結果4231を含む。
本実施形態では、演算結果4231は、演算結果データb(N−1)に相当する。
[情報処理システムにおける全体的な動作の概要]
図9は、本発明の一実施形態(第1実施形態)に係る情報処理システム1における全体的な動作の概略を示す図である。
図9の例では、1番目の情報処理装置A(1)からN番目の情報処理装置A(N)まで、アルゴリズムデータa(1)〜a(N−1)として、同一のアルゴリズムCが記述されたデータが伝達されていく。なお、それぞれのアルゴリズムデータa(1)〜a(N−1)におけるパラメーターは、例えば、同一であってもよく、あるいは、異なってもよい。
また、図9の例では、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)まで、それぞれの演算結果d(1)〜d(N−1)が伝達されていく。
これにより、本例では、同一のアルゴリズムCに応じた演算が、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)までのそれぞれにおいて、それぞれに記憶されたデータを用いて実行され、これらの実行結果(演算結果d(1)〜d(N−1))が最終的には1番目の情報処理装置A(1)に通知される。
なお、演算結果d(1)〜d(N−1)は、例えば、それぞれ独立に並べられてもよく、あるいは、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)まで伝達されるにしたがって、それぞれの情報処理装置A(3)〜A(N)において過去の演算結果が演算に使用されることで、次の演算結果のなかに実質的に含まれてもよい。
ここで、同一のアルゴリズムCが所定の変数xを用いた所定の関数F(x)によって表されるとすると、アルゴリズムデータa(1)、アルゴリズムデータa(2)、アルゴリズムデータa(3)・・・は、例えば、F(x)、F(F(x))、F(F(F(x)))・・・となる。
<具体的な適用の例>
図9を参照して、具体的な適用の例を示す。
一例として、1番目の情報処理装置A(1)は、他の情報処理装置A(2)〜A(N)へ試験の内容を複製するためのアルゴリズムCの内容を配布し、当該試験の内容を受け取った情報処理装置A(2)〜A(N)の一覧情報を取得することができる。この場合、アルゴリズムCは、所定の試験の内容の情報を複製して保存する処理を規定する。当該試験の内容の情報は、例えば、1番目の情報処理装置A(1)が2番目の情報処理装置A(2)に送信するデータに含まれてもよく、あるいは、2番目の情報処理装置A(2)に記憶されたデータに含まれていて当該データから抽出されてもよい。また、アルゴリズムCは、それぞれの情報処理装置A(2)〜A(N)が試験の内容を複製したことを通知するために、自装置(情報処理装置A(2)〜A(N))の識別情報をそれぞれの演算結果データd(1)〜d(N−1)に含める処理を規定する。これにより、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)のそれぞれにおいて試験の内容が複製され、また、試験の内容が複製された(つまり、試験の内容を受け取った)すべての情報処理装置A(2)〜A(N)の識別情報の一覧(演算結果データd(N−1))が1番目の情報処理装置A(1)により取得される。
ここで、それぞれの情報処理装置A(2)〜A(N)の識別情報は、それぞれの情報処理装置A(2)〜A(N)に記憶されたデータに含まれている。
なお、それぞれの情報処理装置A(2)〜A(N)の識別情報の代わりに、例えば、それぞれの情報処理装置A(2)〜A(N)を操作するユーザ(例えば、試験を受ける者)などの識別情報が用いられてもよい。
他の例として、1番目の情報処理装置A(1)は、他の情報処理装置A(2)〜A(N)へ試験の合否を判定するためのアルゴリズムCの内容を配布し、それぞれの情報処理装置A(2)〜A(N)について当該試験の合否の判定結果の一覧情報を取得することができる。この場合、アルゴリズムCは、所定の試験の解答の情報を参照して合否を判定する処理を規定する。それぞれの情報処理装置A(2)〜A(N)における当該試験の解答の情報は、それぞれの情報処理装置A(2)〜A(N)に記憶されたデータに含まれている。また、アルゴリズムCは、それぞれの情報処理装置A(2)〜A(N)について合否の判定結果を通知するために、自装置(情報処理装置A(2)〜A(N))における合否の判定結果を示す情報をそれぞれの演算結果データd(1)〜d(N−1)に含める処理を規定する。これにより、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)のそれぞれにおいて試験の解答に基づいて合否が判定され、また、すべての情報処理装置A(2)〜A(N)についてそれぞれの合否の判定結果を示す情報の一覧(演算結果データd(N−1))が1番目の情報処理装置A(1)により取得される。
なお、当該一覧(演算結果データd(N−1))では、それぞれの情報処理装置A(2)〜A(N)について、合否の判定結果を示す情報に、それぞれの情報処理装置A(2)〜A(N)あるいは対応するユーザなどの識別情報が対応付けられる。
1番目の情報処理装置A(1)では、それぞれの情報処理装置A(2)〜A(N)における解答(答案)のデータを回収せずに、合否の判定結果のデータを取得することができる。
合否の判定結果のデータとしては、例えば、合格したものだけに関するデータが用いられてもよく、合格しなかったものだけに関するデータが用いられてもよく、あるいは、これらの両方に関するデータが用いられてもよい。
[情報処理装置において行われる処理の概要]
<1番目の情報処理装置において行われる処理>
図10は、本発明の一実施形態に係る1番目の情報処理装置A(1)において行われる処理の手順の一例を示す図である。
(ステップS1)
アルゴリズム生成部131は、アルゴリズム(図9の例では、アルゴリズムC)を生成し、ステップS2の処理へ移行する。
(ステップS2)
情報処理装置検索部132は、少なくとも次の通信相手である情報処理装置A(2)を検索し、ステップS3の処理へ移行する。なお、1番目の情報処理装置A(1)がすべての情報処理装置A(2)〜A(N)を決定する場合には、情報処理装置検索部132はすべての情報処理装置A(2)〜A(N)を検索する。
(ステップS3)
経路決定部133は、情報処理装置検索部132による検索結果に基づいて、少なくとも次の通信相手を含む経路を決定し、ステップS4の処理へ移行する。なお、1番目の情報処理装置A(1)がすべての情報処理装置A(2)〜A(N)を決定する場合には、経路決定部133はすべての経路を決定する。
(ステップS4)
アルゴリズム送信制御部134は、アルゴリズム生成部131により生成されたアルゴリズムが記述されたデータ(アルゴリズムデータa(1))を、経路決定部133により決定された経路にしたがって、次の通信相手(2番目の情報処理装置A(2))に送信し、ステップS5の処理へ移行する。
(ステップS5)
演算結果取得部135は、N番目の情報処理装置A(N)から、最終的な演算結果の情報(演算結果データb(N−1))を取得(回収)し、本フローの処理を終了する。
<j(j=2〜N−1)番目の情報処理装置において行われる処理>
図11は、本発明の一実施形態に係るj(j=2〜N−1)番目の情報処理装置A(j)において行われる処理の手順の一例を示す図である。
(ステップS21)
アルゴリズム取得部231は、1つ前の順番にある情報処理装置A(j−1)から送信されてきたアルゴリズムデータa(j−1)に基づいて、当該アルゴリズムデータa(j−1)に記述されたアルゴリズムを取得し、ステップS22の処理へ移行する。
(ステップS22)
演算実行部232は、記憶部213に記憶されたデータ251を用いて、アルゴリズム取得部231により取得されたアルゴリズムに基づいて、当該アルゴリズムに応じた演算を実行し、ステップS23の処理へ移行する。
(ステップS23)
アルゴリズム生成部233は、1つ次の順番にある情報処理装置A(j+1)に送信するアルゴリズム(図9の例では、同一のアルゴリズムC)を生成(本例では、例えば、複製)し、ステップS24の処理へ移行する。
(ステップS24)
経路決定部234は、少なくとも次の通信相手を含む経路を決定し、ステップS25の処理へ移行する。なお、1番目の情報処理装置A(1)がすべての経路を決定する場合には、経路決定部234は、既に決定されている経路と同一の経路となるように経路を決定(例えば、複製でもよい。)する。
(ステップS25)
アルゴリズム送信制御部235は、アルゴリズム生成部233により生成されたアルゴリズムが記述されたデータ(アルゴリズムデータa(j))を、経路決定部234により決定された経路にしたがって、次の通信相手((j+1)番目の情報処理装置A(j+1))に送信し、本フローの処理を終了する。このとき、アルゴリズム送信制御部235は、演算実行部232により演算が実行された結果に基づく演算結果データb(j−1)も、次の通信相手((j+1)番目の情報処理装置A(j+1))に送信する。
<N番目の情報処理装置において行われる処理>
図12は、本発明の一実施形態に係るN番目の情報処理装置A(N)において行われる処理の手順の一例を示す図である。
(ステップS41)
アルゴリズム取得部331は、1つ前の順番にある情報処理装置A(N−1)から送信されてきたアルゴリズムデータa(N−1)に基づいて、当該アルゴリズムデータa(N−1)に記述されたアルゴリズムを取得し、ステップS42の処理へ移行する。
(ステップS42)
演算実行部332は、記憶部313に記憶されたデータ351を用いて、アルゴリズム取得部331により取得されたアルゴリズムに基づいて、当該アルゴリズムに応じた演算を実行し、ステップS43の処理へ移行する。
(ステップS43)
通知先決定部333は、演算結果の通知先を決定し、ステップS44の処理へ移行する。なお、1番目の情報処理装置A(1)が通知先(例えば、1番目の情報処理装置A(1))を指定している場合には、通知先決定部333は、指定された通知先となるように通知先を決定する。この場合、通知先を指定する情報は、1番目の情報処理装置A(1)からN番目の情報処理装置A(N)まで伝達される。
(ステップS44)
演算結果通知制御部334は、演算実行部332により演算が実行された結果に基づく演算結果データb(N−1)を、通知先に対して送信することで、当該通知先に通知し、本フローの処理を終了する。
ここで、図1の例では、最後の順番にあるN番目の情報処理装置A(N)により得られた演算結果データb(N−1)を1番目の情報処理装置A(1)に送信する構成としたが、他の例として、最後の順番にあるN番目の情報処理装置A(N)により得られた演算結果データb(N−1)を他の装置に送信する構成が用いられてもよい。当該他の装置としては、例えば、2番目の情報処理装置A(2)から(N−1)番目の情報処理装置A(N−1)のうちの任意の1個以上の情報処理装置であってもよく、あるいは、別の情報処理装置(図示せず)であってもよい。当該別の情報処理装置は、例えば、あらかじめ定められてもよく、当該別の情報処理装置を指定する情報がアルゴリズムデータa(1)〜a(N−1)に付加されてもよい。
また、本実施形態では、最後の順番にあるN番目の情報処理装置A(N)により得られた演算結果データb(N−1)を通知先となる任意の装置に送信する場合を示したが、途中の順番にある2番目の情報処理装置A(2)から(N−1)番目の情報処理装置A(N−1)のうちの一部または全部の演算結果データb(j)を通知先となる任意の装置に送信する構成が用いられてもよい。
また、それぞれの演算結果データb(1)〜b(N―1)の通知先としては、任意の装置が用いられてもよい。また、それぞれの演算結果データb(1)〜b(N―1)の通知先としては、例えば、同一の装置であってもよく、あるいは、異なる装置であってもよい。
一例として、N番目の情報処理装置A(N)が、N番目の演算結果データb(N−1)を、1番目の情報処理装置A(1)から(N−1)番目の情報処理装置A(N−1)のそれぞれに通知してもよい。この場合、最終的な演算結果データb(N−1)が、すべての情報処理装置A(1)〜A(N)により共有される。
また、本実施形態では、それぞれの情報処理装置A(2)〜A(N)は、受信されたデータ(例えば、アルゴリズムデータ、演算結果データ)を使用した後に、当該データを消去してもよく、あるいは、当該データの一部または全部を記憶して保存してもよい。
また、本実施形態では、それぞれの情報処理装置A(1)〜A(N)は、送信したデータ(例えば、アルゴリズムデータ、演算結果データ)について、送信の後に、消去してもよく、あるいは、当該データの一部または全部を記憶して保存してもよい。
また、本実施形態では、1個の経路に含まれるそれぞれの情報処理装置A(1)〜A(N)は、1回だけ当該経路に含まれるが、他の例として、1個の経路に同一の情報処理装置が2回以上含まれる場合があってもよい。
また、本実施形態では、複数の情報処理装置A(1)〜A(N)が順番に通信を行っていくことを、例えば、ブロックチェーンの技術を用いて、実現してもよい。
[第1実施形態について]
以上のように、本実施形態に係る情報処理システム1では、複数の情報処理装置A(1)〜A(N)が有するデータを用いて所定の演算を実行することを効率化することが可能である。本実施形態に係る情報処理システム1では、特に、ビッグデータの処理に有効である。
本実施形態に係る情報処理システム1では、それぞれの情報処理装置A(2)〜A(N)において記憶されたデータを送信(転送)するのではなく、アルゴリズムが記述されたデータ(アルゴリズムデータa(2)〜a(N−1))を順番に通信していき、演算結果に関するデータ(演算結果データb(1)〜b(N−2))を順番に渡していくため、例えば、それぞれの情報処理装置A(2)〜A(N)において記憶されたデータが膨大であるような場合に、特に効率的である。
本実施形態に係る情報処理システム1では、全体的な処理の効率化により、例えば、高速なレスポンス、高速なデータ共有、高速な大規模演算処理が可能である。
また、本実施形態に係る情報処理システム1では、例えば、サーバの機能を備えない構成を採用した場合、サーバの設置および維持に要する費用を省略することができる。
また、本実施形態に係る情報処理システム1では、例えば、情報処理装置A(1)〜A(N)の間の通信を採用することで、通信費用を低減することも可能である。
また、本実施形態に係る情報処理システム1では、例えば、暗号化あるいは所定の権限の設定などを行うことにより、セキュア性を確保することも可能である。
ここで、本実施形態に係る情報処理システム1では、それぞれの情報処理装置A(2)〜A(N)において、アルゴリズムが記述されたデータ(アルゴリズムデータa(2)〜a(N−1))と演算結果に関するデータ(演算結果データb(1)〜b(N−2))を順番に通信していく場合を示したが、他の構成例として、演算結果データb(1)〜b(N−2)については通信されない構成、または、演算結果データb(1)〜b(N−2)については通信されるがアルゴリズムデータa(2)〜a(N−1)と一緒には通信されない構成が用いられてもよい。すなわち、それぞれの情報処理装置A(2)〜A(N)において、アルゴリズムが記述されたデータ(アルゴリズムデータa(2)〜a(N−1))を順番に通信していく構成であると捉えることも可能であり、それ以外の付加的な構成が必要に応じて備えられてもよい。
(第2実施形態)
図13を参照して説明する。
本実施形態では、第1実施形態と比べて、1番目の情報処理装置A(1)からN番目の情報処理装置A(N)までアルゴリズムが伝達されるときに、当該アルゴリズムの内容が変化し得る点で異なっており、他の点で同様である。このため、本実施形態では、説明の便宜上、図13に示される符号を除いて、第1実施形態の場合と同じ符号(図に示される符号)を用いて説明する。
[情報処理システムにおける全体的な動作の概要]
図13は、本発明の一実施形態(第2実施形態)に係る情報処理システム1における全体的な動作の概略を示す図である。
図13の例では、1番目の情報処理装置A(1)からN番目の情報処理装置A(N)まで、アルゴリズムデータe(1)〜e(N−1)として、それぞれの内容が異なり得るアルゴリズムが記述されたデータが伝達されていく。なお、それぞれのアルゴリズムデータe(1)〜e(N−1)におけるパラメーターは、例えば、同一であってもよく、あるいは、異なってもよい。
また、図13の例では、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)まで、それぞれの演算結果d(1)〜d(N−1)が伝達されていく。
ここで、本実施形態では、j(j=2〜N−1)番目の情報処理装置A(j)において、アルゴリズム生成部233は、アルゴリズム取得部231により取得されたアルゴリズムに対して、同一のアルゴリズムまたは異なるアルゴリズムを、次のアルゴリズムとして生成する。
一例として、1番目の情報処理装置A(1)からN番目の情報処理装置A(N)までのアルゴリズムのすべてが、1番目の情報処理装置A(1)によって、あらかじめ定められていてもよい。この場合、これらすべてのアルゴリズムのそれぞれを指定(特定)する情報は、例えば、1番目の情報処理装置A(1)から送信されるアルゴリズムデータe(1)に含められていてもよい。
他の例として、2番目の情報処理装置A(2)から(N−1)番目の情報処理装置A(N−1)のうちの一部または全部は、アルゴリズム取得部231により取得されたアルゴリズムに基づいて次のアルゴリズムを生成する規則を記憶部213に記憶していてもよい。当該規則は、例えば、あらかじめ記憶部213に記憶されてもよく、あるいは、任意のタイミングで外部から入力されて記憶部213に記憶されてもよい。また、jが3以上である場合、当該規則は、例えば、アルゴリズム取得部231により取得されたアルゴリズムと、受信された演算結果データに基づいて次のアルゴリズムを生成する規則であってもよい。
なお、次のアルゴリズムを生成する手法としては、例えば、新たにアルゴリズムを生成する手法が用いられてもよく、あるいは、前のアルゴリズム(例えば、1つ前のアルゴリズム)の一部を変更することで次のアルゴリズムを生成する手法が用いられてもよい。
また、本実施形態では、jが2以上である場合に、j番目の情報処理装置A(j)において、アルゴリズム生成部233は、当該j番目の情報処理装置A(j)に記憶されたデータの一部または全部(さらに、必要に応じて、他のデータ)に基づいて、次のアルゴリズムを生成してもよい。
また、本実施形態では、jが3以上である場合に、j番目の情報処理装置A(j)において、アルゴリズム生成部233は、(j−1)番目の情報処理装置A(j−1)から受信された演算結果データの一部または全部(さらに、必要に応じて、他のデータ)に基づいて、次のアルゴリズムを生成してもよい。
これにより、本例では、異なり得るアルゴリズムe(1)〜e(N−1)に応じた演算が、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)までのそれぞれにおいて、それぞれに記憶されたデータを用いて実行され、これらの実行結果(演算結果f(1)〜f(N−1))が最終的には1番目の情報処理装置A(1)に通知される。
なお、演算結果f(1)〜f(N−1)は、例えば、それぞれ独立に並べられてもよく、あるいは、2番目の情報処理装置A(2)からN番目の情報処理装置A(N)まで伝達されるにしたがって、それぞれの情報処理装置A(3)〜A(N)において過去の演算結果が演算に使用されることで、次の演算結果のなかに実質的に含まれてもよい。
ここで、複数の異なるアルゴリズムデータa(1)〜a(N−1)が所定の変数xを用いた所定の関数F<1>(x)〜F<N−1>(x)によって表されるとすると、アルゴリズムデータa(1)、アルゴリズムデータa(2)、アルゴリズムデータa(3)・・・は、例えば、F<1>(x)、F<2>(F<1>(x))、F<3>(F<2>(F<1>(x)))・・・となる。
<具体的な適用の例>
図13を参照して、具体的な適用の例を示す。
一例として、1番目の情報処理装置A(1)は、他の情報処理装置A(2)〜A(N)へ試験の内容を複製するためのアルゴリズムe(1)の内容を配布し、試験の内容を受け取った情報処理装置A(2)〜A(N)の一覧情報を取得することができる。この場合、それぞれのアルゴリズムe(1)〜e(N−1)は、所定の試験の内容の情報を生成して保存する処理を規定する。この場合に、本例では、それぞれのアルゴリズムe(1)〜e(N−1)は、少なくとも一部が異なっている。例えば、それぞれのアルゴリズムe(1)〜e(N−1)は、選択問題における複数の選択肢の並び順序を決める手順の部分が異なってもよい。また、それぞれのアルゴリズムe(1)〜e(N−1)は、それぞれの情報処理装置A(2)〜A(N)が試験の内容を生成したことを通知するために、自装置(情報処理装置A(2)〜A(N))の識別情報をそれぞれの演算結果データf(1)〜f(N−1)に含める処理を規定する。
なお、図13の例では、図9の例と比べて、それぞれのアルゴリズムe(1)〜e(N−1)が異なり得る点で相違しており、他の点では同様であってもよい。
他の例として、1番目の情報処理装置A(1)は、他の情報処理装置A(2)〜A(N)へ試験の合否を判定するためのアルゴリズムe(1)の内容を配布し、それぞれの情報処理装置A(2)〜A(N)について当該試験の合否の判定結果の一覧情報を取得することができる。この場合、それぞれのアルゴリズムe(1)〜e(N−1)は、所定の試験の解答の情報を参照して合否を判定する処理を規定する。この場合に、本例では、それぞれのアルゴリズムe(1)〜e(N−1)は、少なくとも一部が異なっている。例えば、それぞれのアルゴリズムe(1)〜e(N−1)は、多数の問題のなかで解答されるべき問題と解答不要な問題とが混合していて情報処理装置A(2)〜A(N)ごとに異なり得るときに、採点すべき問題(つまり、解答すべき問題)を決める手順の部分が異なってもよい。また、それぞれのアルゴリズムe(1)〜e(N−1)は、それぞれの情報処理装置A(2)〜A(N)について合否の判定結果を通知するために、自装置(情報処理装置A(2)〜A(N))における合否の判定結果を示す情報をそれぞれの演算結果データf(1)〜f(N−1)に含める処理を規定する。
なお、図13の例では、図9の例と比べて、それぞれのアルゴリズムe(1)〜e(N−1)が異なり得る点で相違しており、他の点では同様であってもよい。
[第2実施形態について]
以上のように、本実施形態に係る情報処理システム1では、複数の情報処理装置A(1)〜A(N)が有するデータを用いて所定の演算を実行することを効率化することが可能である。この場合に、本実施形態に係る情報処理システム1では、それぞれの情報処理装置A(2)〜A(N)において、アルゴリズムが記述されたデータ(アルゴリズムデータ)を順番に通信していくに際して、アルゴリズムを変更することが可能である。これにより、本実施形態に係る情報処理システム1では、例えば、経路の全体における処理を適切にするように、アルゴリズムを変更することが可能である。
(第3実施形態)
図14および図15を参照して説明する。
本実施形態では、上記の実施形態(第1実施形態〜第2実施形態)と比べて、それぞれの情報処理装置がアルゴリズムに応じた演算の実行結果が十分な結果であるか否かを判定する点で異なっており、他の点で同様である。このため、本実施形態では、説明の便宜上、図14および図15に示される符号を除いて、上記の実施形態(第1実施形態〜第2実施形態)の場合と同じ符号(図に示される符号)を用いて説明する。
[情報処理装置の概要]
図14は、本発明の一実施形態(第3実施形態)に係るz(一例としてz=3〜Nであるが、本実施形態では、z=2である場合も含めて説明する。)番目の情報処理装置B(z)の概略的な構成例を示す図である。なお、本実施形態では、経路に含まれる情報処理装置の総数(N個)は、変動し得るが、説明の便宜上、N個(本実施形態において、Nは変動し得る。)であるとして説明する。
z番目の情報処理装置B(z)は、入力部411と、出力部412と、記憶部413と、通信部414と、制御部415を備える。
ここで、入力部411、出力部412、記憶部413、通信部414のそれぞれの機能は、概略的には、第1実施形態に係る1番目の情報処理装置A(1)における入力部111、出力部112、記憶部113、通信部114のそれぞれの機能と同様であり、ここでは詳しい説明を省略する。
図14の例では、記憶部413は、データ451を記憶している。
制御部415は、アルゴリズム取得部431と、演算実行部432と、演算結果判定部433と、アルゴリズム生成部434と、経路決定部435と、アルゴリズム送信制御部436と、通知先決定部437と、演算結果通知制御部438を備える。
アルゴリズム取得部431は、1つ前の順番の情報処理装置である(z−1)番目の情報処理装置B(z−1)から送信されて通信部414により受信されたアルゴリズムデータa(z−1)を取得する。また、(z−1)番目の情報処理装置B(z−1)から演算結果データb(z−2)も送信されてくる場合には、当該演算結果データb(z−2)も通信部414により受信される。
演算実行部432は、記憶部413に記憶されたデータ451を用いて、アルゴリズム取得部431により取得されたアルゴリズムに応じた演算を実行する。この場合に、演算実行部432は、当該アルゴリズムにしたがって、必要であれば、(z−1)番目の情報処理装置B(z−1)から受信された演算結果データb(z−2)も用いて、当該演算を実行する。
これにより、演算実行部432は、演算結果データb(z−1)を取得する。ここで、演算実行部432は、演算結果データb(z−1)に、例えば、それよりも前の順番にある情報処理装置において取得された演算結果データのうちの一部または全部を含めてもよい。
演算結果判定部433は、演算実行部432により演算が実行された結果として得られた演算結果データb(z−1)について、最終的な演算結果とするか否かを判定する。
ここで、判定対象の演算結果を最終的な演算結果とするか否かは、例えば、所定の判定基準を用いて判定される。
所定の判定基準としては、任意の基準が用いられてもよい。
一例として、所定の判定基準として、既にアルゴリズムに応じた演算を実行した情報処理装置の数((z−1)個)が所定の閾値以上である場合に最終的な演算結果とし、他の場合に最終的な演算結果としない基準が用いられてもよい。
他の例として、所定の判定基準として、得られた演算結果に含まれる情報の量が所定の閾値以上である場合に最終的な演算結果とし、他の場合に最終的な演算結果としない基準が用いられてもよい。
他の例として、所定の判定基準として、1番目の情報処理装置B(1)から1番目のアルゴリズムデータa(1)が送信された時刻から経過した時間が所定の閾値以上である場合に最終的な演算結果とし、他の場合に最終的な演算結果としない基準が用いられてもよい。この場合、当該時刻あるいは当該時間の情報が、1番目の情報処理装置B(1)から以降の情報処理装置B(j)へ順次伝達されていく。
なお、このような判定基準としては、例えば、すべての情報処理装置B(z)において同一の判定基準が用いられてもよく、あるいは、それぞれの情報処理装置B(z)ごとに異なり得る判定基準が用いられてもよい。
また、このような判定基準は、例えば、1番目の情報処理装置B(1)により指定されてもよく、あるいは、それぞれの情報処理装置B(z)によって生成することが可能であってもよい。
一例として、2番目の情報処理装置B(2)およびそれ以降の情報処理装置(本例では、N番目の情報処理装置B(N)までの情報処理装置)の判定基準のすべてが、1番目の情報処理装置B(1)によって、あらかじめ定められていてもよい。この場合、これらすべての判定基準のそれぞれを指定(特定)する情報は、例えば、1番目の情報処理装置B(1)から送信されるアルゴリズムデータa(1)に含められていてもよい。
他の例として、2番目の情報処理装置B(2)およびそれ以降の情報処理装置(本例では、N番目の情報処理装置B(N)までの情報処理装置)のうちの一部または全部は、独自に判定基準を生成してもよい。当該判定基準を生成する手法としては、任意の手法が用いられてもよい。
アルゴリズム生成部434は、(z−1)番目の情報処理装置B(z−1)から受信されたアルゴリズムデータa(z−1)に基づいて、1つ後の順番の情報処理装置である(z+1)番目の情報処理装置B(z+1)に送信するアルゴリズムデータa(z)のアルゴリズムを生成する。
経路決定部435は、少なくとも1つ後の順番の情報処理装置である(z+1)番目の情報処理装置B(z+1)が含まれる経路を決定する。一例として、それぞれの情報処理装置B(1)〜B(N−1)が、1つ後の順番にある情報処理装置B(2)〜B(N)(次の通信相手)を決定する構成が用いられてもよい。
アルゴリズム送信制御部436は、アルゴリズム生成部434により生成されたアルゴリズムが記述されたデータ(アルゴリズムデータa(z))を(z+1)番目の情報処理装置B(z+1)に対して通信部414により送信するように制御する。
ここで、本実施形態では、アルゴリズムデータa(z)には、経路決定部435により決定された経路を示す情報(経路情報)が付加される。
通知先決定部437は、演算結果データb(z−1)の通知先となる他の情報処理装置を決定する。
本実施形態では、通知先決定部437は、1番目の情報処理装置B(1)を通知先として決定する。本実施形態では、1番目の情報処理装置B(1)から2番目以降の情報処理装置B(2)〜B(N−1)を経由してN番目の情報処理装置B(N)により取得される経路情報に、1番目の情報処理装置B(1)を識別する情報が含まれているとする。
他の例として、通知先決定部437は、1番目の情報処理装置B(1)以外の装置を通知先として決定してもよい。当該通知先となる装置は、例えば、あらかじめ設定されてもよく、あるいは、通知先決定部437によりリアルタイムに決定されてもよい。
一例として、あらかじめ設定された通知先となる装置を識別する情報が、1番目の情報処理装置B(1)から2番目以降の情報処理装置B(2)〜B(N−1)を経由してN番目の情報処理装置B(N)により取得されてもよい。他の例として、通知先となる装置を識別する情報が、あらかじめ、任意の情報処理装置(本例では、少なくとも、N番目の情報処理装置B(N)となり得る情報処理装置)に設定されてもよい。
他の例として、通知先決定部437は、情報処理装置検索部132と同様な機能を有してもよく、当該機能により情報処理装置が探索された結果に基づいて、通知先を決定してもよい。
演算結果通知制御部438は、演算結果データb(z−1)を、通知先決定部437により決定された通知先(本実施形態では、1番目の情報処理装置B(1))に対して通信部414により送信するように制御する。
[情報処理装置において行われる処理の概要]
図15は、本発明の一実施形態(第3実施形態)に係るz(z=2〜N)番目の情報処理装置B(z)において行われる処理の手順の一例を示す図である。
(ステップS111)
アルゴリズム取得部431は、1つ前の順番にある情報処理装置B(z−1)から送信されてきたアルゴリズムデータa(z−1)に基づいて、当該アルゴリズムデータa(z−1)に記述されたアルゴリズムを取得し、ステップS112の処理へ移行する。
(ステップS112)
演算実行部432は、記憶部413に記憶されたデータ451を用いて、アルゴリズム取得部431により取得されたアルゴリズムに基づいて、当該アルゴリズムに応じた演算を実行し、ステップS113の処理へ移行する。
(ステップS113)
演算結果判定部433は、演算実行部432により演算が実行された結果(演算結果)について、最終的な演算結果とするか否かを判定する。
この判定の結果、演算結果判定部433は、演算実行部432により演算が実行された結果(演算結果)について、最終的な演算結果とすることを判定した場合、ステップS114の処理へ移行する。
一方、この判定の結果、演算結果判定部433は、演算実行部432により演算が実行された結果(演算結果)について、最終的な演算結果とはしないことを判定した場合、ステップS116の処理へ移行する。
(ステップS114)
演算結果判定部433が演算結果を最終的な演算結果とすることを判定した場合、通知先決定部437は、演算結果の通知先を決定し、ステップS115の処理へ移行する。なお、1番目の情報処理装置B(1)が通知先(例えば、1番目の情報処理装置B(1))を指定している場合には、通知先決定部437は、指定された通知先となるように通知先を決定する。この場合、通知先を指定する情報は、1番目の情報処理装置B(1)からN番目の情報処理装置B(N)まで伝達される。
(ステップS115)
演算結果通知制御部438は、演算実行部432により演算が実行された結果に基づく演算結果データb(z−1)を、通知先に対して送信することで、当該通知先に通知し、本フローの処理を終了する。
(ステップS116)
演算結果判定部433が演算結果を最終的な演算結果とはしないことを判定した場合、 アルゴリズム生成部434は、1つ後の順番にある情報処理装置B(z+1)に送信するアルゴリズムを生成し、ステップS117の処理へ移行する。
(ステップS117)
経路決定部435は、少なくとも次の通信相手を含む経路を決定し、ステップS118の処理へ移行する。なお、1番目の情報処理装置B(1)がすべての経路を決定する場合には、経路決定部435は、既に決定されている経路と同一の経路となるように経路を決定する。
(ステップS118)
アルゴリズム送信制御部436は、アルゴリズム生成部434により生成されたアルゴリズムが記述されたデータ(アルゴリズムデータa(z))を、経路決定部435により決定された経路にしたがって、次の通信相手((z+1)番目の情報処理装置B(z+1))に送信し、本フローの処理を終了する。このとき、アルゴリズム送信制御部436は、演算実行部432により演算が実行された結果に基づく演算結果データb(z−1)も、次の通信相手((z+1)番目の情報処理装置B(z+1))に送信する。
ここで、本実施形態では、N番目の情報処理装置B(N)において、得られた演算結果を最終的な演算結果とすることが判定されて、得られた演算結果が1番目の情報処理装置B(1)に通知される、場合を示してある。
なお、本実施形態では、例えば、2番目の情報処理装置B(2)から(N−1)番目の情報処理装置B(N−1)までのうちのいずれかの情報処理装置において、得られた演算結果を最終的な演算結果とすることが判定された場合には、当該情報処理装置により得られた演算結果が1番目の情報処理装置B(1)に通知される。
また、情報処理装置において得られた演算結果を最終的な演算結果とするか否かを判定するための判定基準は、例えば、それぞれの情報処理装置B(z)ごとに、更新されていってもよい。
また、情報処理装置において得られた演算結果を最終的な演算結果とするか否かを判定するための判定基準は、例えば、複数の情報処理装置B(z)により得られた演算結果が比較されることで、その比較の結果に基づいて、更新されていってもよい。一例として、所定個以上の数の演算結果が同一の値であるまたは所定の範囲にある値である場合に、これらの演算結果を妥当とする判定基準が生成されてもよい。他の例として、同一の値でないまたは所定の範囲にない値である演算結果を、妥当でないとする判定基準が生成されてもよい。
[第3実施形態について]
以上のように、本実施形態に係る情報処理装置B(z)では、演算が実行された結果として得られた演算結果データb(z−1)について、最終的な演算結果とするか否かを判定する。これにより、本実施形態に係る情報処理装置B(z)では、例えば、最終的な演算結果として不十分な演算結果データである場合には経路を延長すること(つまり、次の情報処理装置B(z+1)にアルゴリズムを送信すること)ができ、一方、最終的な演算結果として十分な演算結果データである場合には経路を閉じる(つまり、他の情報処理装置にアルゴリズムを送信することを停止する)ことができる。
(第4実施形態)
第1実施形態に係る図1の例では、1番目の情報処理装置A(1)からN番目の情報処理装置A(N)までが直列の関係にある経路を示したが、他の例として、並列な部分を含む経路が用いられてもよい。
本実施形態では、並列な部分(説明の便宜上、「階層化部分」ともいう。)を含む経路が用いられる場合について説明する。
図16〜図18を参照して説明する。
本実施形態では、上記の実施形態(第1実施形態〜第3実施形態)と比べて、階層化部分を含む経路が用いられる点で異なっており、他の点で同様である。このため、本実施形態では、説明の便宜上、図16〜図18に示される符号を除いて、上記の実施形態(第1実施形態〜第3実施形態)の場合と同じ符号(図に示される符号)を用いて説明する。
[経路に含まれる階層化部分の概要]
図16は、本発明の一実施形態(第4実施形態)に係る階層化部分501の概略的な構成例を示す図である。
図16には、図1に示されるような全体的な経路のうち、階層化部分501だけを示してある。
図16の例では、7個の情報処理装置C(1)〜C(7)を示してある。なお、本実施形態では、複数の情報処理装置C(1)〜C(7)の番号(1〜7)と順番(経路における順番)とは、必ずしも一致していない。
情報処理装置C(1)と情報処理装置C(5)との間に、2個に分岐された経路部分が並列に存在する。すなわち、情報処理装置C(1)、情報処理装置C(2)、情報処理装置C(3)、情報処理装置C(4)、情報処理装置C(5)が直列にある経路部分と、情報処理装置C(1)、情報処理装置C(6)、情報処理装置C(7)、情報処理装置C(5)が直列にある経路部分が存在する。
ここで、全体的な経路の例では、情報処理装置C(1)よりも前の順番に1個以上の情報処理装置(図示せず)が存在し、また、情報処理装置C(5)よりも後の順番に1個以上の情報処理装置(図示せず)が存在する。
なお、他の例として、情報処理装置C(1)が1番目の情報処理装置であってもよく、また、情報処理装置C(5)がN番目の情報処理装置であってもよい。また、他の例として、情報処理装置C(5)が、演算結果の通知を受ける1番目の情報処理装置であってもよく、図16の例では、2個の異なる情報処理装置C(4)、C(7)から演算結果の通知を受ける。
また、本実施形態では、2個に分岐された経路部分が並列に存在する経路を示すが、3個以上に分岐された経路部分が並列に存在する経路が用いられてもよい。また、経路部分が並列に存在する箇所(分岐の箇所)が2箇所以上ある経路が用いられてもよい。
図16の例では、情報処理装置C(1)よりも1つ前の順番の情報処理装置(図示せず)から情報処理装置C(1)に、アルゴリズムデータgおよび演算結果データhが送信される。
また、y=1〜7として、情報処理装置C(y)からアルゴリズムデータg(y)および演算結果データh(y)が送信される。
情報処理装置C(1)は、アルゴリズムデータg(1)および演算結果データh(1)を、2個の異なる情報処理装置C(2)、C(6)に対して送信する。
[情報処理装置の概要]
図17は、本発明の一実施形態(第4実施形態)に係る情報処理装置C(5)における制御部511の概略的な構成例を示す図である。
情報処理装置C(5)は、2個の異なる情報処理装置C(4)、C(7)からアルゴリズムデータg(4)、g(7)および演算結果データh(4)、g(7)を受信する。
情報処理装置C(5)における制御部511は、処理部群531と、演算結果判定部532を備える。
処理部群531は、上記の実施形態(第1実施形態〜第3実施形態)に示される各種の処理部を含んでおり、詳しい説明を省略する。
演算結果判定部532は、複数の演算結果データについて、所定の判定を行い、必要に応じて、判定の結果に応じた所定の処理を行う。
ここで、所定の判定としては、様々な判定が行われてもよく、例えば、整合性に関する判定、あるいは、経由された情報処理装置の数などに関する判定などが用いられてもよい。
また、所定の処理としては、様々な処理が用いられてもよく、例えば、1つ以上を選択する処理、あるいは、2つ以上を結合する処理などが用いられてもよい。
また、所定の判定において、例えば、当該判定の結果に応じて行われる所定の処理に関する基準を用いた判定が行われてもよい。具体例として、1つ以上を選択する処理について、選択を行うための基準に基づいた判定が行われてもよく、あるいは、2つ以上を結合する処理について、結合を行うための基準に基づいた判定が行われてもよい。選択を行うための基準としては、例えば、選択するか否かを判定するための基準が用いられてもよい。結合を行うための基準としては、例えば、結合する対象とするか否かを判定する基準、あるいは、結合の割合を判定(決定)するための基準などが用いられてもよい。
一例として、演算結果判定部532は、複数の演算結果データの整合性を判定し、必要に応じて、判定の結果に応じた処理を行う。例えば、演算結果判定部532は、整合性があることを判定した複数の演算結果データを組み合わせる処理を行う。なお、演算結果判定部532は、整合性がないことを判定した複数の演算結果データのうちの一部を選択(採用)する(または、一部を不採用とする)処理を行ってもよい。
図16の例では、演算結果判定部532は、演算結果データh(4)が3個の情報処理装置C(2)、C(3)、C(4)を経由してきたものであり、演算結果データh(7)が2個の情報処理装置C(6)、C(7)を経由してきたものであることを確認したことにより、これらの演算結果データh(4)、h(7)に整合性があると判定する。この判定の結果、演算結果判定部532は、これらの演算結果データh(4)、h(7)を結合する処理を行い、その結合の結果を1個の演算結果データとして扱う。
このように、演算結果判定部532は、複数の演算結果データの整合性を判定し、判定の結果に基づいて、演算結果データの取捨選択、あるいは、結合などを行う構成とされてもよい。また、演算結果判定部532は、結合の割合を決定して、決定された結合の割合にしたがった結合を行ってもよい。
他の例として、演算結果判定部532は、複数の演算結果データについて、経由された情報処理装置の数を判定し、必要に応じて、判定の結果に応じた処理を行う。例えば、演算結果判定部532は、分岐後により多くの情報処理装置を経由してきた演算結果データを選択(採用)し、それ以外の演算結果データを破棄する(採用しない)処理を行う。
図16の例では、演算結果判定部532は、演算結果データh(4)が3個の情報処理装置C(2)、C(3)、C(4)を経由してきたものであり、演算結果データh(7)が2個の情報処理装置C(6)、C(7)を経由してきたものであることを確認したことにより、より多くの情報処理装置を経由してきた演算結果データh(4)を選択することを判定する。この判定の結果、演算結果判定部532は、演算結果データh(4)を選択する処理を行う。
ここで、演算結果判定部532は、分岐後の演算結果データが3つ以上ある場合には、例えば、1つの演算結果データを選択してもよく、あるいは、2つ以上の所定数の演算結果データを選択してもよい。
演算結果判定部532は、2つ以上の所定数の演算結果データを選択する場合、例えば、経由された情報処理装置の数が多い方から所定数の演算結果データを選択してもよい。この場合、演算結果判定部532は、選択された2つ以上の演算結果データを結合してもよい。
このように、演算結果判定部532は、複数の演算結果データについて経由された情報処理装置の数を判定し、判定の結果に基づいて、演算結果データの取捨選択、あるいは、結合などを行う構成とされてもよい。また、演算結果判定部532は、結合の割合を決定して、決定された結合の割合にしたがった結合を行ってもよい。
ここで、演算結果データの取捨選択を行うための基準としては、例示した以外の任意の基準が用いられてもよく、例えば、演算結果データを受信した時刻が早い(または、遅い)ものを優先的に選択する基準、あるいは、特定の情報処理装置を経由した演算結果データを優先的に選択する基準などが用いられてもよい。
また、演算結果判定部532は、1つの演算結果データを選択してもよく、あるいは、2つ以上の所定数の演算結果データを選択してもよく、あるいは、所定の基準を満たす任意の数の演算結果データを選択してもよい。例えば、演算結果判定部532は、所定の基準を満たす演算結果データをすべて選択してもよく、この構成では、候補となる演算結果データのうちのすべての演算結果データを選択する場合と、候補となる演算結果データのうちの一部の演算結果データを選択する場合と、いずれの演算結果データも選択しない場合が考えられる。なお、例えば、演算結果判定部532は、所定の基準に基づいて、少なくとも1つの演算結果データを選択する構成が用いられてもよい。
また、所定の基準は、例えば、閾値を用いて設定されてもよく、この場合、演算結果データに関する所定の値が所定の閾値以上(あるいは、所定の閾値未満など)であるときに所定の基準を満たすと判定する構成を用いることができる。当該所定の値としては、例えば、経由された情報処理装置の数などの値が用いられてもよい。
[情報処理装置において行われる処理の概要]
図18は、本発明の一実施形態(第4実施形態)に係る情報処理装置C(5)において行われる処理の手順の一例を示す図である。
(ステップS211)
演算結果判定部532は、複数の並列な経路部分について受信された複数の演算結果を取得する。
(ステップS212)
演算結果判定部532は、取得された複数の演算結果について整合性の有無、あるいは、経由された情報処理装置の数などを判定する。なお、判定の内容としては、これらに限られず、他の様々な判定の内容が用いられてもよい。
(ステップS213)
演算結果判定部532は、取得された複数の演算結果について、判定の結果に基づいて処理を実行する。
ここで、一例として、演算結果判定部532は、整合性の有無の判定に関し、整合性があることが判定された場合に、複数の演算結果を結合する処理を実行してもよい。複数の演算結果を結合する処理としては、例えば、これら複数の演算結果のすべての情報を含む情報を、結合結果として、生成する処理が用いられてもよい。
他の例として、演算結果判定部532は、整合性の有無の判定に関し、整合性がないことが判定された場合に、複数の演算結果のうちの一部である1以上を選択して採用する処理を実行してもよい。複数の演算結果のうちの1以上を選択する規則としては、例えば、様々な規則が用いられてもよく、あらかじめ設定されてもよい。
ここで、図16の例では、情報処理装置C(5)は、2個のアルゴリズムデータg(4)、g(7)を受信する。
2個のアルゴリズムデータg(4)、g(7)のそれぞれにより記述されるアルゴリズムが同一である場合、情報処理装置C(5)において、アルゴリズム取得部(例えば、図3に示されるアルゴリズム取得部231)の機能は、任意の一方のアルゴリズムデータg(4)、g(7)により記述されるアルゴリズムを取得すればよい。
一方、2個のアルゴリズムデータg(4)、g(7)のそれぞれにより記述されるアルゴリズムが異なる場合、情報処理装置C(5)において、アルゴリズム取得部(例えば、図3に示されるアルゴリズム取得部231)の機能は、例えば、任意の一方のアルゴリズムデータg(4)、g(7)により記述されるアルゴリズムを取得してもよく、あるいは、両方のアルゴリズムデータg(4)、g(7)のそれぞれにより記述されるアルゴリズムを取得してもよい。また、情報処理装置C(5)において、アルゴリズム生成部(例えば、図3に示されるアルゴリズム生成部233)の機能は、例えば、このような複数のアルゴリズムデータのそれぞれにより記述されるアルゴリズムを結合したアルゴリズムを生成してもよい。
なお、複数の演算結果データの整合性あるいは経由された情報処理装置の数などが判定された結果は、例えば、将来における経路の決定に利用されてもよい。例えば、複数の演算結果データの整合性を表す数値あるいは経由された情報処理装置の数を表す数値などの情報(説明の便宜上、「判定値情報」ともいう。)を計算して、複数の情報処理装置について得られた演算結果データの判定値(判定値情報)が所定の閾値以上であった(ここでは、良かったとする)場合に、これら複数の情報処理装置の組み合わせを将来における経路に含めるようにし、一方、複数の情報処理装置について得られた演算結果データの判定値(判定値情報)が所定の閾値よりも低かった(ここでは、悪かったとする)場合に、これら複数の情報処理装置の組み合わせを将来における経路に含めないようにする、手法が用いられてもよい。
[第4実施形態について]
以上のように、本実施形態に係る情報処理装置C(5)では、複数の演算結果について整合性の有無あるいは経由された情報処理装置の数などを判定する。これにより、本実施形態に係る情報処理装置C(5)では、複数の演算結果について判定結果を利用することができ、例えば、それぞれの演算結果の選択あるいは2つ以上の演算結果の結合などに役立てることが可能である。
ここで、演算結果判定部532により判定を行う処理をオンとするかあるいはオフとするかを切り替えることが可能な構成が用いられてもよい。このような切り替えは、例えば、情報処理装置C(5)などのユーザにより行われる操作に応じて行われてもよく、あるいは、情報処理装置C(5)により所定の規則にしたがって自動的に行われてもよい。演算結果判定部532により判定を行う処理がオンとされた状態では、演算結果判定部532は所定の判定を行い、必要に応じて、所定の処理を行う。一方、演算結果判定部532により判定を行う処理がオフとされた状態では、演算結果判定部532は、例えば、所定の判定を行わずに、あらかじめ定められた態様で、演算結果データの取捨選択あるいは結合などの所定の処理を行う。
(第5実施形態)
本実施形態では、経路に含まれない1個以上の情報処理装置から、当該経路に含まれる1個以上の情報処理装置に、データを集約する場合について説明する。
図19〜図23を参照して説明する。
本実施形態では、上記の実施形態(第1実施形態〜第4実施形態)と比べて、データの集約が行われる点で異なっており、他の点で同様である。このため、本実施形態では、説明の便宜上、図19〜図23に示される符号を除いて、上記の実施形態(第1実施形態〜第4実施形態)の場合と同じ符号(図に示される符号)を用いて説明する。
[データの集約]
まず、データの集約について説明する。
図19、図20、図21は、それぞれ、本発明の一実施形態(第5実施形態)に係る情報処理装置D(1)〜D(4)において行われるデータ集約の概略を示す図である。
図19には、4個の情報処理装置D(1)〜D(4)を示してある。なお、本実施形態では、複数の情報処理装置D(1)〜D(4)の番号(1〜4)と順番(経路における順番)とは、必ずしも一致していない。
情報処理装置D(1)は、自装置の記憶部(図示せず)に、3個のデータk1〜k3を記憶している。本例では、これらのデータk1〜k3を他の情報処理装置D(2)〜D(4)に記憶させる手法の一例を示す。
図19の例では、情報処理装置D(1)は、1個のデータk1を情報処理装置D(2)に送信し、他の1個のデータk2を情報処理装置D(3)に送信し、他の1個のデータk3を情報処理装置D(4)に送信する。これにより、情報処理装置D(2)〜D(4)は、それぞれ、3個のデータk1〜k3のうちで、1個ずつのデータを記憶する。
なお、情報処理装置D(1)と3個の情報処理装置D(2)〜D(3)とは、例えば、サーバとクライアントの関係を有してもよい。
図20の例では、情報処理装置D(2)は、1個のデータk1を情報処理装置D(3)に送信する。情報処理装置D(3)は、1個のデータk2を情報処理装置D(4)に送信する。情報処理装置D(4)は、1個のデータk3を情報処理装置D(2)に送信する。これにより、情報処理装置D(2)〜D(4)は、それぞれ、3個のデータk1〜k3のうちで、2個ずつのデータを記憶する。
図21の例では、情報処理装置D(2)は、1個のデータk3を情報処理装置D(3)に送信する。情報処理装置D(3)は、1個のデータk1を情報処理装置D(4)に送信する。情報処理装置D(4)は、1個のデータk2を情報処理装置D(2)に送信する。これにより、情報処理装置D(2)〜D(4)は、それぞれ、3個のデータk1〜k3のすべてを記憶する。
図19〜図21の例では、複数の情報処理装置D(2)〜D(3)は、情報処理装置D(1)から受信されたデータを、他の情報処理装置D(2)〜D(3)との間で、例えば自動的に、補完して共有する。
図19〜図21に示されるように、複数の情報処理装置D(2)〜D(4)に共通のデータk1〜k3を記憶させるとき、例えば、1個の情報処理装置D(1)がそれぞれの情報処理装置D(2)〜D(4)にデータk1〜k3を送信する処理よりも、情報処理装置D(2)〜D(4)どうしでデータk1〜k3をやり取りする処理の方が、効率的な場合が多い。
本実施形態に係る情報処理システムでは、このようなデータの集約の処理を利用する。
ここで、図19〜図21に示される技術では、例えば、複数の情報処理装置D(2)〜D(3)に、データk1〜k3を分散して配信することが可能である。
例えば、複数の情報処理装置D(2)〜D(4)において、データk1〜k3の分散暗号化が行われてもよく、具体例として、秘密分散法が用いられてもよい。
また、データの配布元である情報処理装置D(1)あるいは他の所定の装置(図示せず)において、複数の情報処理装置D(2)〜D(4)へのデータk1〜k3の配信が完了した後に、当該データk1〜k3の利用権限(「利用条件」などと呼ばれてもよい。)が管理されてもよい。この場合、複数の情報処理装置D(2)〜D(4)でデータk1〜k3が共有されても、権限がある装置だけが当該データk1〜k3を利用することができる。
[情報処理システムの概要]
図22は、本発明の一実施形態(第5実施形態)に係る情報処理システム601の概略的な構成例を示す図である。
本実施形態に係る情報処理システム601は、M(本実施形態において、Mは3以上の整数であるとする。)個の情報処理装置E(1)〜E(M)を備える。
また、本実施形態に係る情報処理システム601は、P(本実施形態において、Pは1以上の整数であるとする。)個の情報処理装置F(1)〜F(P)を備える。
また、本実施形態に係る情報処理システム601は、Q(本実施形態において、Qは1以上の整数であるとする。)個の情報処理装置G(1)〜G(Q)を備える。
図22の例では、それぞれの情報処理装置E(1)〜E(M−1)から送信されるアルゴリズムデータm(1)〜m(M−1)と、それぞれの情報処理装置E(2)〜E(M)から送信される演算結果データn(1)〜n(M−1)を示してある。
また、それぞれの情報処理装置F(1)〜F(P)は、データp(1)〜p(P)を記憶する。
また、それぞれの情報処理装置G(1)〜G(Q)は、データq(1)〜q(Q)を記憶する。
[情報処理システムの動作の概要]
本実施形態に係る情報処理システム601では、まず、情報処理装置どうしが通信を行うことで、特定の情報処理装置(図22の例では、情報処理装置E(2)、E(M))にデータを集約する。
図22の例では、それぞれの情報処理装置F(1)〜F(P)は、自装置において記憶されているデータp(1)〜p(P)を情報処理装置E(2)に送信する。情報処理装置E(2)は、これらのデータp(1)〜p(P)を受信して、自装置の記憶部に記憶する。
また、図22の例では、それぞれの情報処理装置G(1)〜G(Q)は、自装置において記憶されているデータq(1)〜q(Q)を情報処理装置E(M)に送信する。情報処理装置E(M)は、これらのデータq(1)〜q(Q)を受信して、自装置の記憶部に記憶する。
ここで、情報処理装置E(2)および情報処理装置E(M)は、アルゴリズムが伝達されていく経路に含まれる。
経路の流れにしたがって、情報処理装置E(2)は、他の情報処理装置F(1)〜F(P)から収集されたデータp(1)〜p(P)のまとまり、あるいは、これらのデータp(1)〜p(P)に自装置に記憶されていたデータ(図示せず)を含めたまとまりを用いて、アルゴリズムに応じた演算を実行する。
同様に、経路の流れにしたがって、情報処理装置E(M)は、他の情報処理装置G(1)〜G(Q)から収集されたデータq(1)〜q(Q)のまとまり、あるいは、これらのデータq(1)〜q(Q)に自装置に記憶されていたデータ(図示せず)を含めたまとまりを用いて、アルゴリズムに応じた演算を実行する。
[情報処理システムにおいて行われる処理の概要]
図23は、本発明の一実施形態(第5実施形態)に係る情報処理システム601において行われる処理の手順の一例を示す図である。
(ステップS311)
情報処理システム601では、まず、データの集約を行い、ステップS312の処理へ移行する。これにより、特定の情報処理装置(図22の例では、情報処理装置E(2)、E(M))に、アルゴリズムに応じた演算で用いられるデータが集められる。
(ステップS312)
情報処理システム601では、経路の流れにしたがって、1番目の情報処理装置E(1)からM番目の情報処理装置E(M)への順番に、アルゴリズムに基づいて、当該アルゴリズムに応じた演算の実行など(例えば、図1の例の場合と同様な処理)を行っていく。
[第5実施形態について]
以上のように、本実施形態に係る情報処理システム601では、複数の異なる情報処理装置(図22の例では、複数の異なる情報処理装置F(1)〜F(P)、E(2)、あるいは、複数の異なる情報処理装置G(1)〜G(Q)、E(M))の間で、それぞれの情報処理装置が記憶しているデータ(ここでは、アルゴリズムデータではないデータ)の受け渡しが行われ、その後に、経路の流れにしたがって、アルゴリズムに応じた演算の実行が行われる。
このような構成により、本実施形態に係る情報処理システム601では、データの集約およびアルゴリズムに応じた演算の実行の全体として、効率化を図ることが可能である。
具体例として、10個の異なる情報処理装置に記憶されたデータのすべてをそのうちの1個の情報処理装置(ここでは、説明の便宜上、「情報処理装置R1」と呼ぶ。)に送信して集約し、他の10個の異なる情報処理装置に記憶されたデータのすべてをそのうちの1個の情報処理装置(ここでは、説明の便宜上、「情報処理装置R2」と呼ぶ。)に送信して集約し、これら2個の情報処理装置R1、R2を含む経路を形成(決定)することが行われてもよい。
以上のように、本実施形態に係る情報処理システム601では、経路に含められない1個以上の情報処理装置F(1)〜F(P)、G(1)〜G(Q)から経路に含められる1個以上の情報処理装置E(2)、E(M)にデータp(1)〜p(P)、q(1)〜q(Q)を渡し、経路に含められる情報処理装置E(2)、E(M)において当該データp(1)〜p(P)、q(1)〜q(Q)を用いてアルゴリズムに基づいて演算を実行する。これにより、本実施形態に係る情報処理システム601では、全体として効率的な処理を実現することができる。
(情報処理装置について)
上記の実施形態(第1実施形態〜第5実施形態)において、経路に含まれる情報処理装置としては、様々な情報処理装置が用いられてもよい。
[複数の異なるネットワークにおける情報処理装置]
図24は、通信システム2001の一例を示す図である。
通信システム2001は、複数(図24の例では、2個)のネットワーク2011、2012を有する。
ネットワーク2011は、複数の情報処理装置2031〜2035を含む。
ネットワーク2012は、複数の情報処理装置2051〜2055を含む。
図24の例では、複数の異なるネットワーク2011、2012における2個の情報処理装置2035、2055どうしが互いに通信を行う場合を示してある。
上記の実施形態(第1実施形態〜第5実施形態)において、1個の経路に含められる情報処理装置は、例えば、同一のネットワーク(図24の例では、ネットワーク2011あるいはネットワーク2012)に含まれる情報処理装置であってもよく、あるいは、異なるネットワークに含まれる情報処理装置であってもよい。
また、図19〜図22に示されるようなデータの集約において、互いに通信を行う情報処理装置としては、例えば、同一のネットワーク(図24の例では、ネットワーク2011あるいはネットワーク2012)に含まれる情報処理装置であってもよく、あるいは、異なるネットワークに含まれる情報処理装置であってもよい。
[サーバレスのネットワークにおける情報処理装置]
図25は、サーバレスの通信システム2101の一例を示す図である。
通信システム2101は、複数の端末装置2111〜2118を備える。本例では、それぞれの端末装置2111〜2118は、情報処理装置に相当する。
通信システム2101では、サーバが存在せず、端末装置2111〜2118どうしで通信を行う。図25の例では、それぞれの端末装置2111〜2118が、総当たりで、他の端末装置2111〜2118との間で通信を行うことが可能な場合を示してある。
通信システム2101では、端末装置2111〜2118が連携することにより、サーバを不要とするインフラを構築することが可能である。
通信システム2101では、例えば、NAT(Network Address Translation)で構成されるネットワークを超えて、P2Pの通信が行われてもよい。
上記の実施形態(第1実施形態〜第5実施形態)において、1個の経路に含められる情報処理装置のうちの一部または全部は、例えば、サーバレスの通信システム2101に含まれる端末装置であってもよい。
また、図19〜図22に示されるようなデータの集約において、互いに通信を行う情報処理装置のうちの一部または全部は、例えば、サーバレスの通信システム2101に含まれる端末装置であってもよい。
[情報処理装置のハードウェア構成の概要]
図26は、本発明の一実施形態に係る情報処理装置2211のハードウェア構成の一例を示す図である。
上記の実施形態(第1実施形態〜第5実施形態)における情報処理装置として、図26に示されるようなハードウェア構成を有する情報処理装置2211が使用されてもよい。
なお、図26の例に係る情報処理装置2211のような構成は、例えば、一部変更されて、様々な装置に適用されてもよい。
図26の例では、情報処理装置2211は、プロセッサ2231と、操作部2232と、表示部2233と、記憶装置2234と、メモリ2235と、入出力インターフェイス2236と、ネットワークインターフェイス2237と、これらを接続するバス2311を備える。
プロセッサ2231は、CPU(Central Processing Unit)などから構成されており、プログラムを実行することで、当該プログラムに規定された処理を実行する。
操作部2232は、キーボード、マウスなどのうちの1以上の入力装置を備え、ユーザ(人)により行われる操作を受け付ける。
表示部2233は、画面を有しており、情報を当該画面に表示出力する。
記憶装置2234は、不揮発性の記憶部であり、例えば、ハードディスクなどから構成されており、データを記憶する。記憶装置2234(あるいは、メモリ2235)は、例えば、プロセッサ2231により実行されるプログラムを記憶してもよい。
メモリ2235は、揮発性の記憶部であり、RAM(Random Access Memory)などから構成されており、データを一時的に記憶する。RAMとしては、例えば、DRAM(Dynamic Random Access Memory)が用いられてもよい。
入出力インターフェイス2236は、外部の記録媒体などと接続するインターフェイスである。
ネットワークインターフェイス2237は、外部のネットワークと接続するインターフェイスである。
ここで、情報処理装置2211は、プロセッサ2231として、1個のプロセッサを備えてもよく、または、2個以上のプロセッサを備えてもよい。一例として、情報処理装置2211は、複数個のCPUを備えて、それぞれのCPUによりそれぞれの処理を実行するとともに、これら複数個のCPUにより連携して全体の処理を実現してもよい。
(第6実施形態)
本実施形態では、第1実施形態〜第5実施形態における情報処理システム(例えば、情報処理システム1、601)を含む様々な情報処理システムにおいて使用されることが可能な情報処理装置について説明する。なお、本実施形態に係る情報処理装置は、第1実施形態〜第5実施形態において説明された情報処理装置のうちのいずれかの態様と同じであってもよい。
第1実施形態〜第5実施形態に係る情報処理システムでは、複数の情報処理装置がアルゴリズムデータを所定の順序で伝送していく。この場合、一構成例として、すべての情報処理装置に同じプログラムをインストールするなどして、すべての情報処理装置が同じ機能を有する構成とすることが可能である。本実施形態では、このような構成における情報処理装置について説明する。
図27は、本発明の一実施形態(第6実施形態)に係る情報処理装置H(1)の概略的な構成例を示す図である。
ここでは、情報処理装置H(1)の機能の概要を説明する。なお、情報処理装置H(1)のそれぞれの機能について、例えば、第1実施形態〜第5実施形態において説明された機能と同様な機能が使用されてもよい。
情報処理装置H(1)は、処理実行機能711と、ストレージ712を備える。
処理実行機能711は、プロセッサ731と、ソフトウェア732を備える。プロセッサ731は、CPUなどである。ソフトウェア732は、プログラムを含む。当該プログラムは、本実施形態に係るアルゴリズムデータを伝送していく処理を実行する機能を実現する。
処理実行機能711は、プロセッサ731が当該プログラムを読み出して実行することで、各種の処理を実行する。
なお、ソフトウェア732は、任意の記憶部に記憶されてもよく、例えば、ストレージ712に記憶されてもよく、あるいは、ストレージ712とは別の記憶部に記憶されてもよい。
ストレージ712は、データ751を記憶する。
なお、ストレージ712は、記憶部の一例であり、ストレージ712としては任意のものが用いられてもよい。
情報処理装置H(1)において、処理実行機能711は、受信処理ST1、演算処理ST2、送信処理ST3を実行する。
受信処理ST1は、他の情報処理装置から、アルゴリズムデータ771を受信する処理である。受信処理ST1は、当該他の情報処理装置から、データ772(本実施形態では、アルゴリズムデータ771以外のデータ)を受信する処理を含んでもよい。受信処理ST1において、他の情報処理装置から、アルゴリズムデータ771と同時にデータ772を受信してもよく、あるいは、アルゴリズムデータ771とは別のタイミングでデータ772を受信してもよい。ここで、異なるデータを同時に受信する処理は、例えば、異なるデータを同一の時刻(あるいは、一部重複する時刻)に受信する処理であってもよいが、本実施形態では、異なるデータを時間的に連続的に前後して受信する処理を含んでもよい。
演算処理ST2は、受信処理ST1により受信されたアルゴリズムデータ771に記述されたアルゴリズムに基づく演算を、ストレージ712に記憶されたデータ751を用いて、実行する処理である。
一例として、演算処理ST2は、受信処理ST1により受信されたアルゴリズムデータ771に記述されたアルゴリズムを、情報処理装置H(1)において保有されたデータ751に適用して、その演算の結果を取得する。
送信処理ST3は、他の情報処理装置に、アルゴリズムデータ791を送信する処理である。送信処理ST3は、当該他の情報処理装置に、データ792(本実施形態では、アルゴリズムデータ791以外のデータ)を送信する処理を含んでもよい。送信処理ST3において、他の情報処理装置に、アルゴリズムデータ791と同時にデータ792を送信してもよく、あるいは、アルゴリズムデータ791とは別のタイミングでデータ792を送信してもよい。ここで、異なるデータを同時に送信する処理は、例えば、異なるデータを同一の時刻(あるいは、一部重複する時刻)に送信する処理であってもよいが、本実施形態では、異なるデータを時間的に連続的に前後して送信する処理を含んでもよい。
ここで、受信処理ST1におけるデータ772は、任意のデータであってもよく、例えば、他の情報処理装置において実行された演算の結果に関するデータを含んでもよい。
また、送信処理ST3におけるデータ792は、任意のデータであってもよく、例えば、演算処理ST2において実行された演算の結果に関するデータを含んでもよい。
本実施形態では、情報処理装置H(1)と同じ機能を有するU(本実施形態において、Uは2以上の整数であるとする。)個の情報処理装置H(1)〜H(U)を備える情報処理システムを構築する。当該機能は、例えば、それぞれの情報処理装置H(1)〜H(U)に、共通のソフトウェア732がインストールされることで実現される。
なお、本実施形態では、U個の情報処理装置H(1)〜H(U)は、同様な機能を有している。このため、本実施形態では、説明の便宜上から、U個の情報処理装置H(1)〜H(U)について、図27に示されるものと同じ符号を付して説明する。
それぞれの情報処理装置H(1)〜H(U)は、共通のソフトウェア732によって、受信処理ST1を実行する機能、演算処理ST2を実行する機能、送信処理ST3を実行する機能を有する。
一例として、U個の情報処理装置H(1)〜H(U)が直列の順序でアルゴリズムを伝送していくことが可能である。この場合、それぞれの情報処理装置H(1)〜H(U)は、前(つまり、順序が1つ前である前段)の情報処理装置からアルゴリズムデータ771を受信する受信処理ST1と、受信されたアルゴリズムデータ771に記述されたアルゴリズムに基づく演算を実行する演算処理ST2と、次(つまり、順序が1つ後の後段)の情報処理装置にアルゴリズムデータ791を送信する送信処理ST3を実行する。なお、受信処理ST1は、前段の情報処理装置からデータ772を受信する処理を含んでもよい。また、送信処理ST3は、次段の情報処理装置にデータ792を送信する処理を含んでもよい。
なお、本実施形態では、説明を簡易にするために、U個の情報処理装置H(1)〜H(U)が、その順番で、直列の順序でアルゴリズムを伝送していく場合を例として説明するが、U個の情報処理装置H(1)〜H(U)は任意の順番で直列に配置されてもよい。
さらに、他の例として、U個の情報処理装置H(1)〜H(U)は、直列と並列の両方が用いられた任意の経路によって、その経路における順序でアルゴリズムを伝送していってもよい。
一例として、1番目の情報処理装置H(1)における演算処理ST2を最初の処理として考えると、それぞれの情報処理装置H(1)〜H(U)が演算処理ST2および送信処理ST3を実行することが、所定の順序で連続的に行われていくと捉えることが可能である。なお、この場合、送信側の情報処理装置による送信処理ST3に対応して、受信側の情報処理装置による受信処理ST1も行われる。
他の例として、1番目の情報処理装置H(1)における送信処理ST3を最初の処理として考えると、2番目の情報処理装置H(1)〜U番目の情報処理装置H(U)が受信処理ST1および演算処理ST2を実行することが、所定の順序で連続的に行われていくと捉えることが可能である。なお、この場合、受信側の情報処理装置による受信処理ST1に対応する送信側の情報処理装置による送信処理ST3も行われる。また、この場合、例えば、U番目の情報処理装置H(U)から1番目の情報処理装置H(1)にアルゴリズムデータ791を送信し、1番目の情報処理装置H(1)が当該アルゴリズムデータ791を受信対象のアルゴリズムデータ771として受信する受信処理ST1と、受信されたアルゴリズムデータ771に記述されたアルゴリズムに基づく演算を実行する演算処理ST2を行ってもよい。
ここで、例えば、最終番目(最終段)の情報処理装置H(U)に対する次段の情報処理装置として、1番目の情報処理装置H(1)が用いられてもよい。
この場合、一例として、1番目(最初)の情報処理装置H(1)において、最終番目の情報処理装置H(U)から送信されたアルゴリズムデータ791を受信対象のアルゴリズムデータ771として受信する受信処理ST1が行われる構成では、U個の情報処理装置H(1)〜H(U)が環状になり、ループした経路にアルゴリズムを伝送する構成となる。
また、それぞれの情報処理装置H(1)〜H(U)は、受信処理ST1と、演算処理ST2と、送信処理ST3を実行する機能を有するが、それぞれの処理を必ずしも実行しなくてもよい。
一例として、1番目の情報処理装置H(1)は、初期的なアルゴリズムを2番目の情報処理装置H(2)に送信する場合、受信処理ST1を実行しなくてもよい。1番目の情報処理装置H(1)は、例えば、初期的なアルゴリズムを生成してもよく、あるいは、初期的なアルゴリズムを他の装置から受信してもよい。
また、それぞれの情報処理装置H(1)〜H(U)は、演算処理ST2を実行しなくてもよい。
一例として、1番目の情報処理装置H(1)は、初期的なアルゴリズムに基づく演算処理ST2を実行しなくてもよい。
一例として、任意の情報処理装置H(1)〜H(U)は、前段の情報処理装置からアルゴリズムデータ771を受信する受信処理ST1を実行し、当該アルゴリズムデータ771に記述されたアルゴリズムに基づく演算処理ST2を実行せずに、当該アルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータ791を次段の情報処理装置に送信する送信処理ST3を実行してもよい。
また、それぞれの情報処理装置H(1)〜H(U)は、送信処理ST3を実行しなくてもよい。
一例として、最終番目の情報処理装置H(U)は、前段の情報処理装置から受信されたアルゴリズムデータ771に記述されたアルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータ791を他の情報処理装置に送信しなくてもよい。
このように、本実施形態では、共通のソフトウェア732がインストールされたU個の情報処理装置H(1)〜H(U)は、それぞれ原則的には、機能的に対等の関係にあって同じ機能を保有するが、経路における順序あるいは他の条件によって、一部の機能を実行しない場合、あるいは、一部の機能を実行するにあたって処理の内容を変更する場合があり得る。処理の内容を変更する態様としては、例えば、送信処理ST3において送信対象の内容を省略、追加あるいは変更などする態様、受信処理ST1において受信対象の内容を省略、追加あるいは変更などする態様、演算処理ST2において演算対象を省略、追加あるいは変更などする態様などがある。
一例として、任意の情報処理装置H(1)〜H(U)は、前段の情報処理装置からアルゴリズムデータ771を受信し、受信されたアルゴリズムデータ771に記述されたアルゴリズムに基づく演算を実行し、当該アルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータ791を次段の情報処理装置に送信する場合に、当該演算の結果に関するデータを(同時あるいは他のタイミングにおいても)次段の情報処理装置に送信しなくてもよい。このような構成が採用される理由の一例としては、当該演算の結果に関するデータの送信を行わない情報処理装置においては、当該情報処理装置において保有されるデータにアルゴリズムによる作用(演算)を及ぼすことが必要であるが、その演算の結果を外部に通知する必要がない、という理由があり得る。
なお、このような理由がある場合においても、当該情報処理装置は、当該演算の結果に関するデータを次段の情報処理装置に送信する構成が採用されてもよい。この構成において、当該演算の結果に関するデータとして、当該演算に係る処理の成否を表すデータが用いられてもよい。
なお、本実施形態では、すべての情報処理装置H(1)〜H(U)が同じ機能を備える場合を説明しているが、例外的に、一部の情報処理装置が異なる機能を備えてもよい。
一例として、初期的なアルゴリズムの発信元となる1番目の情報処理装置になるための権限が設けられてもよく、この場合、情報処理装置H(1)〜H(U)のうちで当該権限が与えられた1以上の情報処理装置だけが1番目の情報処理装置となり得る。当該権限は、任意の手法で設定されてもよく、例えば、当該権限を表す情報が、該当する情報処理装置に記憶されるなどして、設定されてもよい。
[2個の情報処理装置を備える情報処理システムにおける処理の例]
図28〜図30を参照して、2個の情報処理装置H(1)、H(2)を備える情報処理システムにおける処理の例を示す。
図28は、本発明の一実施形態(第6実施形態)に係る2個の情報処理装置(本例では、1番目の情報処理装置H(1)、2番目の情報処理装置H(2))において行われる処理の一例を示す図である。本例は、最小構成の例であり、1番目の情報処理装置H(1)においてアルゴリズムに基づく演算を実行する場合の一例である。
図28の例では、情報処理装置H(1)は、演算処理ST11において、初期的なアルゴリズムに基づく演算を実行する。
次に、情報処理装置H(1)は、送信処理ST12において、初期的なアルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータを情報処理装置H(2)に送信する。これに応じて、情報処理装置H(2)は、受信処理(図示せず)において、情報処理装置H(1)から送信されたアルゴリズムデータを受信する。この場合、情報処理装置H(1)から情報処理装置H(2)へ、アルゴリズムデータと同時にあるいは他のタイミングで、演算処理ST11における演算の結果に関するデータなどを伝送してもよい。
情報処理装置H(2)は、演算処理ST13において、情報処理装置H(1)から受信されたアルゴリズムデータに記述されたアルゴリズムに基づく演算を実行する。
次に、情報処理装置H(2)は、送信処理ST14において、当該アルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータを情報処理装置H(1)に送信する。これに応じて、情報処理装置H(1)は、受信処理(図示せず)において、情報処理装置H(2)から送信されたアルゴリズムデータを受信する。この場合、情報処理装置H(2)から情報処理装置H(1)へ、アルゴリズムデータと同時にあるいは他のタイミングで、演算処理ST13における演算の結果に関するデータなどを伝送してもよい。
なお、情報処理装置H(2)から情報処理装置H(1)へ、アルゴリズムデータを送信する処理が行われなくてもよく、例えば、演算処理ST13における演算の結果に関するデータなどを送信する処理が行われてもよい。
ここで、本例では、1番目の情報処理装置H(1)は、アルゴリズムを伝送するための最初の処理として、受信処理ではなく、演算処理を採用している。
また、本例では、1番目の情報処理装置H(1)は、最終番目である2番目の情報処理装置H(2)から送信されるデータ(例えば、アルゴリズムデータあるいは他のデータ)を受信する。
また、図28の例では、例えば、1番目の情報処理装置H(1)は、アルゴリズムの伝送に係る指令(ここでは、アルゴリズムの伝送の開始を指示する指令)を発する役割を有している。
また、図28の例では、例えば、1番目の情報処理装置H(1)は、アルゴリズムの伝送に係る結果に関するデータの通知を受けて当該データに関する集計などを行う役割を有してもよい。
図29は、本発明の一実施形態(第6実施形態)に係る2個の情報処理装置(本例では、1番目の情報処理装置H(1)、2番目の情報処理装置H(2))において行われる処理の一例を示す図である。本例は、最小構成の例であり、1番目の情報処理装置H(1)においてアルゴリズムに基づく演算を実行する場合の他の一例である。
図29の例では、情報処理装置H(1)は、送信処理ST21において、初期的なアルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータを情報処理装置H(2)に送信する。これに応じて、情報処理装置H(2)は、受信処理(図示せず)において、情報処理装置H(1)から送信されたアルゴリズムデータを受信する。この場合、情報処理装置H(1)から情報処理装置H(2)へ、アルゴリズムデータと同時にあるいは他のタイミングで、他のデータを伝送してもよい。
情報処理装置H(2)は、演算処理ST22において、情報処理装置H(1)から受信されたアルゴリズムデータに記述されたアルゴリズムに基づく演算を実行する。
次に、情報処理装置H(2)は、送信処理ST23において、当該アルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータを情報処理装置H(1)に送信する。これに応じて、情報処理装置H(1)は、受信処理(図示せず)において、情報処理装置H(2)から送信されたアルゴリズムデータを受信する。この場合、情報処理装置H(2)から情報処理装置H(1)へ、アルゴリズムデータと同時にあるいは他のタイミングで、演算処理ST22における演算の結果に関するデータなどを伝送してもよい。
情報処理装置H(1)は、演算処理ST24において、情報処理装置H(2)から受信されたアルゴリズムデータに記述されたアルゴリズムに基づく演算を実行する。
ここで、本例では、1番目の情報処理装置H(1)は、アルゴリズムを伝送するための最初の処理として、受信処理あるいは演算処理ではなく、送信処理を採用している。
また、本例では、1番目の情報処理装置H(1)は、最終番目である2番目の情報処理装置H(2)から送信されるデータ(例えば、アルゴリズムデータあるいは他のデータ)を受信する。
また、図29の例では、例えば、1番目の情報処理装置H(1)は、アルゴリズムの伝送に係る指令(ここでは、アルゴリズムの伝送の開始を指示する指令)を発する役割を有している。
また、図29の例では、例えば、1番目の情報処理装置H(1)は、アルゴリズムの伝送に係る結果に関するデータの通知を受けて当該データに関する集計などを行う役割を有してもよい。
図30は、本発明の一実施形態(第6実施形態)に係る2個の情報処理装置(本例では、1番目の情報処理装置H(1)、2番目の情報処理装置H(2))において行われる処理の一例を示す図である。本例は、最小構成の例であり、1番目の情報処理装置H(1)においてアルゴリズムに基づく演算を実行しない場合の一例である。
図30の例では、情報処理装置H(1)は、送信処理ST31において、初期的なアルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータを情報処理装置H(2)に送信する。これに応じて、情報処理装置H(2)は、受信処理(図示せず)において、情報処理装置H(1)から送信されたアルゴリズムデータを受信する。この場合、情報処理装置H(1)から情報処理装置H(2)へ、アルゴリズムデータと同時にあるいは他のタイミングで、他のデータを伝送してもよい。
情報処理装置H(2)は、演算処理ST32において、情報処理装置H(1)から受信されたアルゴリズムデータに記述されたアルゴリズムに基づく演算を実行する。
次に、情報処理装置H(2)は、送信処理ST33において、当該アルゴリズムに応じたアルゴリズムが記述されたアルゴリズムデータを情報処理装置H(1)に送信する。これに応じて、情報処理装置H(1)は、受信処理(図示せず)において、情報処理装置H(2)から送信されたアルゴリズムデータを受信する。この場合、情報処理装置H(2)から情報処理装置H(1)へ、アルゴリズムデータと同時にあるいは他のタイミングで、演算処理ST32における演算の結果に関するデータなどを伝送してもよい。
なお、情報処理装置H(2)から情報処理装置H(1)へ、アルゴリズムデータを送信する処理が行われなくてもよく、例えば、演算処理ST32における演算の結果に関するデータなどを送信する処理が行われてもよい。
ここで、本例では、1番目の情報処理装置H(1)は、アルゴリズムを伝送するための最初の処理として、受信処理あるいは演算処理ではなく、送信処理を採用している。
また、本例では、1番目の情報処理装置H(1)は、最終番目である2番目の情報処理装置H(2)から送信されるデータ(例えば、アルゴリズムデータあるいは他のデータ)を受信する。
また、図30の例では、例えば、1番目の情報処理装置H(1)は、アルゴリズムの伝送に係る指令(ここでは、アルゴリズムの伝送の開始を指示する指令)を発する役割を有している。
また、図30の例では、例えば、1番目の情報処理装置H(1)は、アルゴリズムの伝送に係る結果に関するデータの通知を受けて当該データに関する集計などを行う役割を有してもよい。
[本実施形態に係る情報処理装置の適用の例]
本実施形態に係る情報処理装置H(1)〜H(U)は、第1実施形態〜第5実施形態に示される任意の態様の情報処理装置に適用されてもよく、また、他の態様の情報処理装置に適用されてもよい。このような場合、図27に示される共通のソフトウェア732は、本実施形態に係る情報処理装置H(1)〜H(U)が適用される情報処理装置が持つべき機能を実現するプログラムあるいはパラメーターなどを含む。
それぞれの情報処理装置H(1)〜H(U)に共通のソフトウェア732がインストールされる場合、それぞれの情報処理装置H(1)〜H(U)は、例えば、アルゴリズムデータが伝送される経路における自装置(当該情報処理装置H(1)〜H(U))の順番などに基づいて動作を変更する機能を有してもよい。
一例として、それぞれの情報処理装置H(1)〜H(U)は、自装置の順番に応じて動作を変更してもよい。例えば、それぞれの情報処理装置H(1)〜H(U)は、アルゴリズムデータを伝送していく場合に、それぞれの情報処理装置H(1)〜H(U)によって自装置(当該情報処理装置H(1)〜H(U))の順番を把握することが可能な情報を、伝送していく。ある情報処理装置にとって、当該情報は、例えば、前段の情報処理装置の順番を表す情報であってもよく、あるいは、当該ある情報処理装置(自体)の順番を表す情報であってもよい。それぞれの情報処理装置H(1)〜H(U)は、例えば、前段の情報処理装置から受信された情報に基づいて、自装置(当該情報処理装置H(1)〜H(U))の順番を判定(決定)する。
ここで、経路における順番に応じて動作が異なる態様としては、例えば、1番目の動作と、2番目〜最終番目の動作と、が異なる態様が用いられてもよく、あるいは、1番目の動作と、2番目〜最終番目よりも1つ前段の動作と、最終番目の動作と、が異なる態様が用いられてもよく、あるいは、他の態様が用いられてもよい。
一例として、それぞれの情報処理装置H(1)〜H(U)は、自装置(当該情報処理装置H(1)〜H(U))の順番以外の要素に応じて動作を変更してもよい。当該要素としては、例えば、日にち、時刻、自装置(当該情報処理装置H(1)〜H(U))の属性、自装置(当該情報処理装置H(1)〜H(U))において行われた所定の判定の結果、自装置(当該情報処理装置H(1)〜H(U))に記憶されたデータのうちの少なくとも一部が用いられてもよく、あるいは、前段の情報処理装置から受信されたデータのうちの少なくとも一部が用いられてもよい。
また、それぞれの情報処理装置H(1)〜H(U)は、自装置(当該情報処理装置H(1)〜H(U))の順番および他の要素の両方に応じて動作を変更してもよい。
また、1番目の情報処理装置H(1)は、例えば、ユーザにより所定の操作が行われたことに応じて1番目としての動作を開始してもよく、あるいは、共通のソフトウェア732にあらかじめ定められた所定の条件が満たされたことに応じて1番目としての動作を開始してもよい。
(以上の実施形態について)
[一例に係る構成例]
ここで、(構成例1−1)〜(構成例1−27)を示す。
(構成例1−1)情報処理装置(図27の例では、情報処理装置H(1))は、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータ(図27の例では、アルゴリズムデータ771)を第1の情報処理装置(図27の例では、前段の情報処理装置)から受信する機能を有するデータ受信部(データを受信する機能部であり、例えば、通信部)と、データ受信部により受信された第1のアルゴリズムデータおよび第1の記憶部(図27の例では、ストレージ712)に記憶されたデータ(図27の例では、データ751)に基づいて演算を実行する機能を有する演算実行部(演算を実行する機能部)と、第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータ(図27の例では、アルゴリズムデータ791)を第2の情報処理装置(図27の例では、後段の情報処理装置)に送信する機能を有するデータ送信部(データを送信する機能部であり、例えば、通信部)と、を備える。
(構成例1−2)データ送信部は、初期的な第3のアルゴリズムが記述されたデータである第3のアルゴリズムデータを次の情報処理装置に送信する機能を有する、(構成例1−1)に記載の情報処理装置(例えば、1番目の情報処理装置)である。
(構成例1−3)演算実行部は、第4のアルゴリズムに基づいて演算を実行する機能を有し、データ送信部は、第4のアルゴリズムに応じたアルゴリズムを第3のアルゴリズムとして、第3のアルゴリズムデータを次の情報処理装置に送信する機能を有する、(構成例1−2)に記載の情報処理装置である。
(構成例1−4)第3のアルゴリズムに応じたアルゴリズムを伝送する経路に含まれるすべての情報処理装置(図27の例では、情報処理装置H(1)〜H(U))および伝送の順序を決定する機能を有する第1の経路決定部(経路のすべてを決定する機能部)を備える、(構成例1−2)または(構成例1−3)のいずれか1項に記載の情報処理装置である。
(構成例1−5)第1の経路決定部は、情報処理装置の属性に基づいて、情報処理装置および順序を決定する機能を有する、(構成例1−4)に記載の情報処理装置である。
(構成例1−6)第2のアルゴリズムに応じたアルゴリズムを伝送する経路に含まれる第2の情報処理装置を含む1以上の情報処理装置および伝送の順序を決定する機能を有する第2の経路決定部(経路の少なくとも一部を決定する機能部)を備える、(構成例1−1)から(構成例1−5)のいずれか1項に記載の情報処理装置である。
(構成例1−7)第2の経路決定部は、情報処理装置の属性に基づいて、情報処理装置および順序を決定する機能を有する、(構成例1−6)に記載の情報処理装置である。
(構成例1−8)第2のアルゴリズムは、第1のアルゴリズムと同じである、(構成例1−1)から(構成例1−7)のいずれか1項に記載の情報処理装置である。
(構成例1−9)第2のアルゴリズムは、第1のアルゴリズムとは異なる、(構成例1−1)から(構成例1−7)のいずれか1項に記載の情報処理装置である。
(構成例1−10)データ受信部は、第1の情報処理装置における演算の結果に関するデータを第1の情報処理装置から受信する機能を有する、(構成例1−1)から(構成例1−9)のいずれか1項に記載の情報処理装置である。
(構成例1−11)データ受信部は、第1の情報処理装置における演算の結果に関するデータと、第1のアルゴリズムデータとを同時に第1の情報処理装置から受信する機能を有する、(請求項1−10)に記載の情報処理装置である。
(請求項1−12)データ送信部は、演算実行部による演算の結果に関するデータを第2の情報処理装置に送信する機能を有する、(構成例1−1)から(構成例1−11)のいずれか1項に記載の情報処理装置である。
(構成例1−13)データ送信部は、演算実行部による演算の結果に関するデータと、第2のアルゴリズムデータとを同時に第2の情報処理装置に送信する機能を有する、(構成例1−12)に記載の情報処理装置である。
(構成例1−14)データを記憶する第1の記憶部を備え、演算実行部は、第1の記憶部に記憶されたデータを用いて、演算を実行する機能を有する、(構成例1−1)から(構成例1−13)のいずれか1項に記載の情報処理装置である。
(構成例1−15)データ送信部は、演算実行部による演算の結果に関するデータを通知対象となる1以上の所定の情報処理装置に送信する機能を有する、(構成例1−1)から(構成例1−14)のいずれか1項に記載の情報処理装置である。
(構成例1−16)所定の情報処理装置は、少なくとも、アルゴリズムデータの発信元の情報処理装置(図27の例では、1番目の情報処理装置)を含む、(構成例1−15)に記載の情報処理装置である。
(構成例1−17)演算実行部による演算の結果に関するデータを最終的なデータとするか否かを判定する機能を有する第1の演算結果判定部(このような判定を行う機能部)を備える、(構成例1−1)から(構成例1−16)のいずれか1項に記載の情報処理装置である。
(構成例1−18)第2のアルゴリズムデータを第2の情報処理装置と少なくとも一つの他の情報処理装置に送信する、(構成例1−1)から(構成例1−17)のいずれか1項に記載の情報処理装置である。
(構成例1−19)第2のアルゴリズムデータが送信された2以上の情報処理装置について、演算の結果に関するデータについて所定の判定を行う機能を有する第2の演算結果判定部(このような判定を行う機能部)を備える、(構成例1−18)に記載の情報処理装置である。
(構成例1−20)データ受信部は、他の装置から送信されるデータを受信し、演算実行部は、データ受信部により他の装置から受信されたデータに基づいて演算を実行する、(構成例1−1)から(構成例1−19)のいずれか1項に記載の情報処理装置である。
(構成例1−21)他の装置は、アルゴリズムが伝送される対象以外の装置(経路に含まれない装置)である、(構成例1−20)に記載の情報処理装置である。
(構成例1−22)データ受信部により受信されたデータのうちの一部または全部を記憶する第2の記憶部を備える、(構成例1−1)から(構成例1−21)のいずれか1項に記載の情報処理装置である。
(構成例1−23)データ送信部により送信したデータのうちの一部または全部を記憶する第3の記憶部を備える、(構成例1−1)から(構成例1−22)のいずれか1項に記載の情報処理装置である。
(構成例1−24)情報処理方法では、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信し、受信された第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて演算を実行し、第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置に送信する。
(構成例1−25)情報処理装置を構成するコンピュータに、第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能と、受信された第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて演算を実行する機能と、第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置に送信する機能と、を実現させるためのプログラムである。
(構成例1−26)情報処理システムでは、複数の情報処理装置が、所定の順序で、アルゴリズムが記述されたデータであるアルゴリズムデータを伝送していき、少なくとも一つの情報処理装置が、アルゴリズムに基づく演算を実行する。
(構成例1−27)情報処理方法では、複数の情報処理装置が、所定の順序で、アルゴリズムが記述されたデータであるアルゴリズムデータを伝送していき、少なくとも一つの情報処理装置が、アルゴリズムに基づく演算を実行する。
[他の例に係る構成例]
ここで、(構成例2−1)〜(構成例2−16)を示す。ここでは、説明の便宜上、第γ1の情報処理装置、第γ2の情報処理装置、第γ3の情報処理装置といった、3種類を区別して説明するが、例えば、これら3種類のうちの任意の1種類の機能を有する情報処理装置が実施されてもよく、あるいは、これら3種類のうちの任意の2種類の機能を有する情報処理装置が実施されてもよく、あるいは、これら3種類のすべての機能を有する情報処理装置が実施されてもよい。
(構成例2−1)第γ1の情報処理装置(図1の例では、情報処理装置A(1))と、第γ1の情報処理装置に対して1つ後段となる第γ2の情報処理装置(図1の例では、情報処理装置A(2))と、第γ2の情報処理装置よりも1つ以上後段となる1個以上の第γ3の情報処理装置(図1の例では、情報処理装置A(3)〜A(N))を含む複数の情報処理装置を備えた情報処理システム(図1の例では、情報処理システム1)である。第γ1の情報処理装置は、所定のアルゴリズムが記述されたデータであるアルゴリズムデータ(図1の例では、アルゴリズムデータa(1))を第γ2の情報処理装置に送信する。第γ2の情報処理装置は、第γ1の情報処理装置から受信されたアルゴリズムデータおよび第γ2の情報処理装置において記憶されたデータ(図3の例では、データ251)に基づいて演算を実行し、前記アルゴリズムに応じたアルゴリズムが記述されたデータであるアルゴリズムデータ(図1の例では、アルゴリズムデータa(2))および演算の結果に関するデータ(図1の例では、演算結果データb(1))を第γ3の情報処理装置のうちの初段の情報処理装置(図1の例では、情報処理装置A(3))に送信する。
(構成例2−2)第γ3の情報処理装置は、2個以上存在する。それぞれの第γ3の情報処理装置は、1つ前段の情報処理装置から受信されたアルゴリズムデータおよび第γ3の情報処理装置において記憶されたデータに基づいて演算を実行し、演算の結果に関するデータを取得する。このような(構成例2−1)に記載の情報処理システムである。
(構成例2−3)最終段以外のそれぞれの第γ3の情報処理装置は、1つ前段の情報処理装置から受信されたアルゴリズムデータに記述されたアルゴリズムに応じたアルゴリズムが記述されたデータであるアルゴリズムデータおよび演算の結果に関するデータを1つ後段の情報処理装置に送信する、(構成例2−2)に記載の情報処理システムである。
(構成例2−4)第γ1の情報処理装置は、第γ2の情報処理装置と第γ3の情報処理装置を含む経路に含まれるすべての情報処理装置(図1の例では、自装置である情報処理装置A(1)および他の情報処理装置A(2)〜A(N))を決定する、(構成例2−1)から(構成例2−3)のいずれか1項に記載の情報処理システムである。
(構成例2−5)第γ2の情報処理装置と第γ3の情報処理装置を含む経路に関し、第γ2の情報処理装置および第γ3の情報処理装置のうちの少なくとも1個の情報処理装置は、1つ後段の情報処理装置を決定する(例えば、図1の例)、(構成例2−1)から(構成例2−3)のいずれか1項に記載の情報処理システムである。
(構成例2−6)第γ3の情報処理装置のうちの少なくとも1個の情報処理装置(例えば、図14に示される情報処理装置B(z))は、得られた演算の結果が所定の基準を満たすか否かを判定し、演算の結果が前記基準を満たすと判定したことに応じて、演算の結果を最終的な演算の結果とする、(構成例2−5)に記載の情報処理システムである。
(構成例2−7)情報処理装置を決定する手法として、情報処理装置の属性の情報(例えば、図5に示される属性の情報)に基づいて情報処理装置を決定する手法が用いられる、(構成例2−4)から(構成例2−6)のいずれか1項に記載の情報処理システムである。
(構成例2−8)経路において、2個以上に分岐された経路部分が存在する。第γ3の情報処理装置のうちの少なくとも1個の情報処理装置(例えば、図16に示される情報処理装置C(5))は、異なる分岐における情報処理装置において得られた演算の結果について所定の判定を行う。このような、(構成例2−4)から(構成例2−7)のいずれか1項に記載の情報処理システム。
(構成例2−9)経路に含まれない装置(図22の例では、情報処理装置F(1)〜F(P)、G(1)〜G(Q))に記憶されたデータ(図22の例では、データp(1)〜p(P)、q(1)〜q(Q))が経路に含まれる第γ2の情報処理装置および第γ3の情報処理装置のうちの少なくとも1個の情報処理装置(図22の例では、情報処理装置E(2)、E(M))に送信され、前記データが前記少なくとも1個の情報処理装置に記憶され、前記データが前記少なくとも1個の情報処理装置における演算で用いられる、(構成例2−4)から(構成例2−8)のいずれか1項に記載の情報処理システムである。
(構成例2−10)第γ3の情報処理装置のうちの最終段の情報処理装置(図1の例では、情報処理装置A(N))は、取得された演算の結果に関するデータを第γ1の情報処理装置または他の装置に送信する、(構成例2−2)から(構成例2−9)のいずれか1項に記載の情報処理システムである。
(構成例2−11)第γ2の情報処理装置および第γ3の情報処理装置のうちの少なくとも1個の情報処理装置は、1つ前段の情報処理装置から受信されたデータあるいは1つ後段の情報処理装置に送信したデータのうちの一部または全部を記憶する(例えば、図1の例)、(構成例2−2)から(構成例2−10)のいずれか1項に記載の情報処理システムである。
(構成例2−12)第γ2の情報処理装置および第γ3の情報処理装置のすべての情報処理装置は、同一のアルゴリズム(図9の例では、アルゴリズムc)が記述されたアルゴリズムデータに基づいて演算を実行する、(構成例2−2)から(構成例2−11)のいずれか1項に記載の情報処理システムである。
(構成例2−13)第γ2の情報処理装置および第γ3の情報処理装置のうちの少なくとも1個の情報処理装置は、異なるアルゴリズム(図13の例では、アルゴリズムe(1)〜e(N−1))が記述されたアルゴリズムデータに基づいて演算を実行する、(構成例2−2)から(構成例2−11)のいずれか1項に記載の情報処理システムである。
(構成例2−14)前記少なくとも1個の情報処理装置より1つ前段の情報処理装置は、前記異なるアルゴリズムが記述されたアルゴリズムデータを生成する(例えば、図13の例)、(構成例2−13)に記載の情報処理システムである。
(構成例2−15)第γ1の情報処理装置と、第γ1の情報処理装置に対して1つ後段となる第γ2の情報処理装置と、第γ2の情報処理装置よりも1つ以上後段となる1個以上の第γ3の情報処理装置を含む複数の情報処理装置により行われる情報処理方法であって、第γ1の情報処理装置は、所定のアルゴリズムが記述されたデータであるアルゴリズムデータを第γ2の情報処理装置に送信し、第γ2の情報処理装置は、第γ1の情報処理装置から受信されたアルゴリズムデータおよび第γ2の情報処理装置において記憶されたデータに基づいて演算を実行し、前記アルゴリズムに応じたアルゴリズムが記述されたデータであるアルゴリズムデータおよび演算の結果に関するデータを第γ3の情報処理装置のうちの初段の情報処理装置に送信する。
(構成例2−16)情報処理装置を構成するコンピュータに、1つ前段の情報処理装置から受信された所定のアルゴリズムが記述されたアルゴリズムデータおよび記憶部(図26の例では、例えば、記憶装置2234またはメモリ2235)に記憶されたデータに基づいて演算を実行する機能と、前記アルゴリズムに応じたアルゴリズムが記述されたデータであるアルゴリズムデータおよび演算の結果に関するデータを1つ後段の情報処理装置に送信する機能と、を実現させるためのプログラムである。
[他の例に係る構成例]
ここで、(構成例3−1)〜(構成例3−14)を示す。
(構成例3−1)第1番目の情報処理装置と第2番目の情報処理装置と第3番目の情報処理装置を含む複数の情報処理装置を備えた情報処理システムであって、前記第1番目の情報処理装置は、第1番目のアルゴリズムが記述されたデータである第1番目のアルゴリズムデータを前記第2番目の情報処理装置に送信し、前記第2番目の情報処理装置は、前記第1番目の情報処理装置から受信された前記第1番目のアルゴリズムデータおよび前記第2番目の情報処理装置において記憶されたデータに基づいて演算を実行し、前記第1番目のアルゴリズムに応じた第2番目のアルゴリズムが記述されたデータである第2番目のアルゴリズムデータおよび前記演算の結果に関するデータを前記第3番目の情報処理装置に送信する、情報処理システムである。
(構成例3−2)Wを3以上の整数とし、wを1からWまでの整数とし、W個の情報処理装置のそれぞれを第w番目の情報処理装置と表した場合に、前記第1番目の情報処理装置から第W番目の情報処理装置までを含む経路においてアルゴリズムの伝達が行われる、(構成例3−1)に記載の情報処理システムである。
(構成例3−3)前記第1番目の情報処理装置は、前記経路に含まれるすべての前記情報処理装置を決定する、(構成例3−2)に記載の情報処理システムである。
(構成例3−4)wが2から(W−1)までについて、少なくとも1つの前記第w番目の情報処理装置は、前記アルゴリズムの伝達が行われる次の前記情報処理装置である第(w+1)番目の情報処理装置を決定する、(構成例3−2)に記載の情報処理システムである。
(構成例3−5)第W番目の情報処理装置は、得られた演算の結果が所定の基準を満たすか否かを判定し、前記演算の結果が前記基準を満たすと判定したことに応じて、前記演算の結果を最終的な演算の結果とした、(構成例3−4)に記載の情報処理システムである。
(構成例3−6)前記情報処理装置を決定する手法として、前記情報処理装置の属性の情報に基づいて前記情報処理装置を決定する手法が用いられる、(構成例3−3)から(構成例3−5)のいずれか1項に記載の情報処理システムである。
(構成例3−7)第W番目の情報処理装置は、第(W−1)番目の情報処理装置から受信された第(W−1)番目のアルゴリズムデータおよび前記第W番目の情報処理装置において記憶されたデータに基づいて演算を実行し、前記演算の結果に関するデータを前記第1番目の情報処理装置または他の装置に送信する、(構成例3−2)から(構成例3−6)のいずれか1項に記載の情報処理システムである。
(構成例3−8)Wが4以上である場合、wが3から(W−1)までについて、第w番目の情報処理装置は、第(w−1)番目の情報処理装置から受信された第(w−1)番目のアルゴリズムデータおよび前記第w番目の情報処理装置において記憶されたデータに基づいて演算を実行し、前記第(w−1)番目のアルゴリズムデータに記述された第(w−1)番目のアルゴリズムに応じた第w番目のアルゴリズムが記述されたデータである第w番目のアルゴリズムデータおよび前記演算の結果に関するデータを第(w+1)番目の情報処理装置に送信する、(構成例3−2)から(構成例3−6)のいずれか1項に記載の情報処理システムである。
(構成例3−9)wが2からWまでについて、少なくとも1つの第w番目の情報処理装置は、受信されたデータあるいは送信したデータのうちの一部または全部を記憶する、(構成例3−2)から(構成例3−8)のいずれか1項に記載の情報処理システムである。
(構成例3−10)wが2からWまでについて、すべての第w番目の情報処理装置は、同一のアルゴリズムが記述されたアルゴリズムデータに基づいて演算を実行する、(構成例3−2)から(構成例3−9)のいずれか1項に記載の情報処理システムである。
(構成例3−11)wが2からWまでについて、少なくとも1つの第w番目の情報処理装置は、異なるアルゴリズムが記述されたアルゴリズムデータに基づいて演算を実行する、(構成例3−2)から(構成例3−10)のいずれか1項に記載の情報処理システムである。
(構成例3−12)wが3からWまでについて、前記少なくとも1つの第w番目の情報処理装置より1つ前の第(w−1)番目の情報処理装置は、次の第w番目の情報処理装置に送信する前記異なるアルゴリズムが記述されたアルゴリズムデータを生成する、(構成例3−11)に記載の情報処理システムである。
(構成例3−13)前記経路において、2個以上に分岐された経路部分が存在し、異なる分岐における前記情報処理装置において得られた演算の結果について所定の判定が行われる、(構成例3−2)から(構成例3−12)のいずれか1項に記載の情報処理システムである。
(構成例3−14)前記経路に含まれない装置に記憶されたデータが前記経路に含まれる前記情報処理装置に送信され、前記データが前記情報処理装置に記憶され、前記データが前記情報処理装置における演算で用いられる、(構成例3−2)から(構成例3−13)のいずれか1項に記載の情報処理システムである。
なお、ここでは、wの値が前後する2個の情報処理装置が互いに前段と後段の関係にあるとして説明したが、これは説明の便宜上であり、必ずしも当該関係になくてもよい。特に、W個の情報処理装置を直列の順番とする場合にはw=1〜Wの順番に並んでいる経路を説明することが簡易な説明の一例であるが、2個以上の情報処理装置に分岐された経路部分がある場合には、wの値が前後であっても2個の情報処理装置が前段と後段の関係にならない箇所が発生し得る。
以上のように、実施形態に係る装置(例えば、情報処理装置2031〜2035、2051〜2055、2211、A(1)〜A(N)、B(z)、C(1)〜C(7)、D(1)〜D(4)、E(1)〜E(m)、F(1)〜F(P)、G(1)〜G(Q)、H(1)〜H(U)端末装置2111〜2118など)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録(記憶)して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行うことができる。
なお、ここでいう「コンピュータシステム」とは、オペレーティングシステムあるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えば、DRAM)のように、一定時間プログラムを保持しているものも含む。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
なお、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
1、601…情報処理システム、111、211、311、411…入力部、112、212、312、412…出力部、113、213、313、413…記憶部、114、214、314、414…通信部、115、215、315、415、511…制御部、131、233、434…アルゴリズム生成部、132…情報処理装置検索部、133、234、435…経路決定部、134、235、436…アルゴリズム送信制御部、135…演算結果取得部、151、251、351、451、k1〜k3、p(1)〜p(P)、q(1)〜q(Q)…データ、231、331、431…アルゴリズム取得部、232、332、432…演算実行部、333、437…通知先決定部、334、438…演算結果通知制御部、433、532…演算結果判定部、501…階層化部分、531…処理部群、711…処理実行機能、712…ストレージ、731、2231…プロセッサ、732…ソフトウェア、751、772、792…データ、771、791、a(1)〜a(N−1)、g、g(1)〜g(7)、m(1)〜m(M−1)…アルゴリズムデータ、2001、2101…通信システム、2011、2012…ネットワーク、2111〜2118…端末装置、2031〜2035、2051〜2055、2211、A(1)〜A(N)、B(z)、C(1)〜C(7)、D(1)〜D(4)、E(1)〜E(m)、F(1)〜F(P)、G(1)〜G(Q)、H(1)、H(2)…情報処理装置、2232…操作部、2233…表示部、2234…記憶装置、2235…メモリ、2236…入出力インターフェイス、2237…ネットワークインターフェイス、3011…情報処理装置テーブル、4011、4111、4211…送信データ、4031、4131、c、e(1)〜e(N−1)…アルゴリズム、4032、4132…パラメーター、4133、4231、d(1)〜d(N−1)、f(1)〜f(N−1)…演算結果、b(1)〜b(N−1)、h、h(1)〜h(7)、n(1)〜n(M−1)…演算結果データ

Claims (29)

  1. 第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能を有するデータ受信部と、
    前記データ受信部により受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用する機能を有する演算実行部と、
    前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置に送信する機能を有するデータ送信部と、
    を備え
    前記第2のアルゴリズムデータを前記第2の情報処理装置と少なくとも一つの他の情報処理装置に送信し、
    前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、前記演算の結果に関するデータについて所定の判定を行う機能を有する第2の演算結果判定部を備え、
    前記第2の演算結果判定部は、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う機能を有する、
    情報処理装置。
  2. 前記データ送信部は、初期的な第3のアルゴリズムが記述されたデータである第3のアルゴリズムデータを次の情報処理装置に送信する機能を有する、
    請求項1に記載の情報処理装置。
  3. 前記演算実行部は、第4のアルゴリズムに基づいて演算を実行する機能を有し、
    前記データ送信部は、前記第4のアルゴリズムに応じたアルゴリズムを前記第3のアルゴリズムとして、前記第3のアルゴリズムデータを前記次の情報処理装置に送信する機能を有する、
    請求項2に記載の情報処理装置。
  4. 前記第3のアルゴリズムに応じたアルゴリズムを伝送する経路に含まれるすべての情報処理装置および伝送の順序を決定する機能を有する第1の経路決定部を備える、
    請求項2または請求項3のいずれか1項に記載の情報処理装置。
  5. 前記第1の経路決定部は、前記情報処理装置の属性に基づいて、前記情報処理装置および前記順序を決定する機能を有する、
    請求項4に記載の情報処理装置。
  6. 前記第1の経路決定部は、前記情報処理装置の属性として、過去に前記アルゴリズムの伝送に加わった回数、過去における質問に対する回答の数、または、過去における質問に対する回答の頻度のうちのいずれかに基づいて、前記情報処理装置および前記順序を決定する機能を有する、
    請求項5に記載の情報処理装置。
  7. 前記第2のアルゴリズムに応じたアルゴリズムを伝送する経路に含まれる前記第2の情報処理装置を含む1以上の情報処理装置および伝送の順序を決定する機能を有する第2の経路決定部を備える、
    請求項1から請求項6のいずれか1項に記載の情報処理装置。
  8. 前記第2の経路決定部は、前記情報処理装置の属性に基づいて、前記情報処理装置および前記順序を決定する機能を有する、
    請求項7に記載の情報処理装置。
  9. 前記第2の経路決定部は、前記情報処理装置の属性として、過去に前記アルゴリズムの伝送に加わった回数、過去における質問に対する回答の数、または、過去における質問に対する回答の頻度のうちのいずれかに基づいて、前記情報処理装置および前記順序を決定する機能を有する、
    請求項8に記載の情報処理装置。
  10. 前記第2のアルゴリズムは、前記第1のアルゴリズムと同じである、
    請求項1から請求項9のいずれか1項に記載の情報処理装置。
  11. 前記第2のアルゴリズムは、前記第1のアルゴリズムとは異なる、
    請求項1から請求項9のいずれか1項に記載の情報処理装置。
  12. 前記データ受信部は、前記第1の情報処理装置における演算の結果に関するデータを前記第1の情報処理装置から受信する機能を有する、
    請求項1から請求項11のいずれか1項に記載の情報処理装置。
  13. 前記データ受信部は、前記第1の情報処理装置における演算の結果に関するデータと、前記第1のアルゴリズムデータとを同時に前記第1の情報処理装置から受信する機能を有する、
    請求項12に記載の情報処理装置。
  14. 前記データ送信部は、前記演算実行部による演算の結果に関するデータを前記第2の情報処理装置に送信する機能を有する、
    請求項1から請求項13のいずれか1項に記載の情報処理装置。
  15. 前記データ送信部は、前記演算実行部による演算の結果に関するデータと、前記第2のアルゴリズムデータとを同時に前記第2の情報処理装置に送信する機能を有する、
    請求項14に記載の情報処理装置。
  16. データを記憶する前記第1の記憶部を備え、
    前記演算実行部は、前記第1の記憶部に記憶された前記データを用いて、前記演算を実行する機能を有する、
    請求項1から請求項15のいずれか1項に記載の情報処理装置。
  17. 前記データ送信部は、前記演算実行部による演算の結果に関するデータを通知対象となる1以上の所定の情報処理装置に送信する機能を有する、
    請求項1から請求項16のいずれか1項に記載の情報処理装置。
  18. 前記所定の情報処理装置は、少なくとも、アルゴリズムデータの発信元の情報処理装置を含む、
    請求項17に記載の情報処理装置。
  19. 前記演算実行部による前記演算の結果に関するデータを最終的なデータとするか否かを判定する機能を有する第1の演算結果判定部を備える、
    請求項1から請求項18のいずれか1項に記載の情報処理装置。
  20. 前記第1の演算結果判定部は、既に前記アルゴリズムに応じた前記演算を実行した前記情報処理装置の数が所定の閾値以上である場合に前記演算の結果に関するデータを最終的なデータとするという判定基準、または、得られた前記演算の結果に含まれる情報の量が所定の閾値以上である場合に前記演算の結果に関するデータを最終的なデータとするという判定基準を用いて、前記演算実行部による前記演算の結果に関するデータを最終的なデータとするか否かを判定する機能を有する、
    請求項19に記載の情報処理装置。
  21. 前記データ受信部は、他の装置から送信されるデータを受信し、
    前記演算実行部は、前記データ受信部により前記他の装置から受信された前記データに基づいて前記演算を実行する、
    請求項1から請求項20のいずれか1項に記載の情報処理装置。
  22. 前記他の装置は、アルゴリズムが伝送される対象以外の装置である、
    請求項21に記載の情報処理装置。
  23. 前記データ受信部により受信された前記データのうちの一部または全部を記憶する第2の記憶部を備える、
    請求項1から請求項22のいずれか1項に記載の情報処理装置。
  24. 前記データ送信部により送信した前記データのうちの一部または全部を記憶する第3の記憶部を備える、
    請求項1から請求項23のいずれか1項に記載の情報処理装置。
  25. 前記演算実行部は、前記データ受信部により前記第1のアルゴリズムデータを受信したことに応じて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、
    前記データ送信部は、前記演算実行部により前記演算が実行されたことに応じて、前記第2のアルゴリズムデータを前記第2の情報処理装置に送信する、
    請求項1から請求項24のいずれか1項に記載の情報処理装置。
  26. 前記データ受信部は、前記第1のアルゴリズムデータとともに第1のパラメーターを前記第1の情報処理装置から受信し、
    前記演算実行部は、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算において前記データ受信部により受信された前記第1のパラメーターを使用し、
    前記データ送信部は、前記第2のアルゴリズムデータとともに第2のパラメーターを前記第2の情報処理装置に送信する、
    請求項1から請求項25のいずれか1項に記載の情報処理装置。
  27. 第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信し、
    受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用し、
    前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置と少なくとも一つの他の情報処理装置に送信し、
    前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う、
    情報処理方法。
  28. 情報処理装置を構成するコンピュータに、
    第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能と、
    受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用する機能と、
    前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置と少なくとも一つの他の情報処理装置に送信する機能と、
    前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う機能と、
    を実現させるためのプログラム。
  29. 情報処理装置を含む情報処理システムにおいて、
    前記情報処理装置は、
    第1のアルゴリズムが記述されたデータである第1のアルゴリズムデータを第1の情報処理装置から受信する機能を有するデータ受信部と、
    前記データ受信部により受信された前記第1のアルゴリズムデータおよび第1の記憶部に記憶されたデータに基づいて、前記第1のアルゴリズムデータに記述された前記第1のアルゴリズムに基づく演算を実行し、当該演算において前記第1の記憶部に記憶されたデータを使用する機能を有する演算実行部と、
    前記第1のアルゴリズムに応じた第2のアルゴリズムが記述されたデータである第2のアルゴリズムデータを第2の情報処理装置に送信する機能を有するデータ送信部と、
    を備え、
    前記第2のアルゴリズムデータを前記第2の情報処理装置と少なくとも一つの他の情報処理装置に送信し、
    前記第2のアルゴリズムデータが送信された2以上の前記情報処理装置について、前記演算の結果に関するデータについて所定の判定を行う機能を有する第2の演算結果判定部を備え、
    前記第2の演算結果判定部は、自装置とは別の前記情報処理装置から前記第2のアルゴリズムデータが分岐させられて送信された2以上の前記情報処理装置から受信された前記演算の結果に関するデータについて、分岐後に経由した前記情報処理装置の数の判定を行って当該数がより多い方から所定数の前記演算の結果に関するデータを採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が早い前記演算の結果に関するデータを優先的に採用することを実現させる処理、前記演算の結果に関するデータを受信した時刻の判定を行って当該時刻が遅い前記演算の結果に関するデータを優先的に採用することを実現させる処理、または、分岐後に特定の前記情報処理装置を経由したかどうかの判定を行って前記特定の前記情報処理装置を経由した前記演算の結果に関するデータを優先的に採用することを実現させる処理のうちのいずれかを行う機能を有する、
    情報処理システム。
JP2018008069A 2018-01-22 2018-01-22 情報処理装置、情報処理方法、プログラムおよび情報処理システム Active JP6427697B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018008069A JP6427697B1 (ja) 2018-01-22 2018-01-22 情報処理装置、情報処理方法、プログラムおよび情報処理システム
CN201980021190.6A CN111902808A (zh) 2018-01-22 2019-01-15 信息处理装置、信息处理方法、程序和信息处理系统
PCT/JP2019/000872 WO2019142767A1 (ja) 2018-01-22 2019-01-15 情報処理装置、情報処理方法、プログラムおよび情報処理システム
EP19741155.6A EP3745274A4 (en) 2018-01-22 2019-01-15 INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING PROCESS, INFORMATION PROCESSING PROGRAM AND SYSTEM
US16/963,520 US11875134B2 (en) 2018-01-22 2019-01-15 Information processing device, information processing method, program and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018008069A JP6427697B1 (ja) 2018-01-22 2018-01-22 情報処理装置、情報処理方法、プログラムおよび情報処理システム

Publications (2)

Publication Number Publication Date
JP6427697B1 true JP6427697B1 (ja) 2018-11-21
JP2019128645A JP2019128645A (ja) 2019-08-01

Family

ID=64379235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018008069A Active JP6427697B1 (ja) 2018-01-22 2018-01-22 情報処理装置、情報処理方法、プログラムおよび情報処理システム

Country Status (5)

Country Link
US (1) US11875134B2 (ja)
EP (1) EP3745274A4 (ja)
JP (1) JP6427697B1 (ja)
CN (1) CN111902808A (ja)
WO (1) WO2019142767A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905525A (zh) * 2019-11-19 2021-06-04 中科寒武纪科技股份有限公司 控制运算装置进行计算的方法及设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7200746B2 (ja) * 2019-02-25 2023-01-10 富士通株式会社 制御装置、及び制御プログラム

Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0392038A (ja) * 1989-09-04 1991-04-17 Nec Corp ネットワーク構成装置の時刻設定方式
JPH10257661A (ja) * 1996-12-03 1998-09-25 Toshiba Corp 監視制御システムとこのシステムを実行するためのプログラムを記録した記録媒体
JPH10313337A (ja) * 1997-03-13 1998-11-24 Fujitsu Ltd ネットワークシステム,情報処理装置
JPH11224212A (ja) * 1998-02-06 1999-08-17 Mitsubishi Electric Corp 遠隔保守システム
JPH11252774A (ja) * 1998-02-26 1999-09-17 Toshiba Corp 監視制御装置、電力系統保護制御装置、分散制御システムおよびプログラムを記憶した記憶媒体
JP2000134786A (ja) * 1998-10-22 2000-05-12 Toshiba Corp 電力系統保護制御システム、電力系統保護制御システムの制御方法およびプログラムモジュールを記憶した記憶媒体
JP2001209620A (ja) * 2000-01-25 2001-08-03 Matsushita Electric Works Ltd 遠隔監視制御システム及び記録媒体
JP2001275277A (ja) * 2000-03-24 2001-10-05 Toshiba Corp 電力系統保護制御システムおよびコンピュータが読取り可能な記憶媒体
JP2001282756A (ja) * 2000-03-31 2001-10-12 Hitachi Ltd 移動エージェント制御方法
JP2001306511A (ja) * 2000-04-25 2001-11-02 Pfu Ltd マシン情報の収集方法およびマシン情報の収集装置ならびにその記録媒体
JP2001313670A (ja) * 2000-04-28 2001-11-09 Oki Electric Ind Co Ltd ネットワーク管理方法
JP2001327102A (ja) * 2000-05-12 2001-11-22 Toshiba Corp 電力系統監視制御装置
JP2002062795A (ja) * 2000-08-23 2002-02-28 E Culture Kk 検定試験システム
JP2002073640A (ja) * 2000-09-05 2002-03-12 Oki Electric Ind Co Ltd 情報検索システム
JP2002092366A (ja) * 2000-09-11 2002-03-29 Nec Corp Cpu時間売買方法及びcpu時間売買システムにおける管理サーバ
JP2002108838A (ja) * 2000-10-02 2002-04-12 Ntt Comware Corp エージェント実行装置およびエージェント実行方法
JP2002207709A (ja) * 2001-01-10 2002-07-26 Hitachi Ltd エージェントプログラムの巡回方法
JP2002230299A (ja) * 2001-01-31 2002-08-16 Hitachi Kokusai Electric Inc オンライン情報システム
JP2002281086A (ja) * 2001-03-19 2002-09-27 Kddi Corp トラヒック監視方法およびシステム
JP2002281036A (ja) * 2001-03-16 2002-09-27 Oki Electric Ind Co Ltd 通信制御装置の制御方法およびネットワーク管理システムの制御プログラム
JP2002297557A (ja) * 2001-03-30 2002-10-11 Toshiba Corp エージェントシステムおよびこのエージェントシステム用プログラム
JP2002325100A (ja) * 2001-04-25 2002-11-08 Oki Electric Ind Co Ltd ネットワークsla管理システム
JP2003044446A (ja) * 2001-07-30 2003-02-14 Kanazawa Inst Of Technology 分散型著作権保護方法、およびその方法を利用可能なコンテンツ公開装置、監視サーバならびにシステム
JP2003345724A (ja) * 2002-05-22 2003-12-05 Omron Corp 情報管理方法、情報管理システム、サーバ、端末及び情報管理プログラム
JP2004005230A (ja) * 2002-05-31 2004-01-08 Omron Corp エージェント利用メンテナンスシステム
JP2004013386A (ja) * 2002-06-05 2004-01-15 Toho Gas Co Ltd 通信システム
JP2004023120A (ja) * 2002-06-12 2004-01-22 Fujitsu Ltd 通信管理システム
JP2004280800A (ja) * 2003-02-25 2004-10-07 Seiko Epson Corp ネットワークデバイス検査システム、デバイス検査プログラム及びデバイス検査方法、並びにデバイス
JP2004363780A (ja) * 2003-06-03 2004-12-24 Oki Electric Ind Co Ltd 通信ネットワークにおける通信品質設定方法及び通信品質設定システム並びにプログラム
JP2006309322A (ja) * 2005-04-26 2006-11-09 Toshiba Social Automation Systems Co Ltd データ集計方法及びデータ集計システム
JP2012248919A (ja) * 2011-05-25 2012-12-13 Hitachi Cable Ltd フレーム中継装置、ネットワークシステム及びフレーム中継方法
JP2017005446A (ja) * 2015-06-09 2017-01-05 富士通株式会社 中継装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3087638B2 (ja) * 1995-11-30 2000-09-11 ヤマハ株式会社 音楽情報処理システム
DE60225741T2 (de) 2001-02-15 2009-04-09 Oki Electric Industry Co., Ltd. Netzwerkverwaltungssystem
JP2010066931A (ja) * 2008-09-09 2010-03-25 Fujitsu Ltd 負荷分散機能を有した情報処理装置
EP2536074A4 (en) * 2010-02-12 2014-01-08 Hitachi Ltd INFORMATION PROCESSING DEVICE AND METHOD FOR PROCESSING INFORMATION ON THE INFORMATION PROCESSING DEVICE
JP5544006B2 (ja) * 2010-02-18 2014-07-09 株式会社日立製作所 情報通信処理システム
JP6192032B2 (ja) 2010-04-22 2017-09-06 リーフ ヘルスケア インコーポレイテッド 患者の生理学的状況をモニタリングするシステム
JP2012009996A (ja) * 2010-06-23 2012-01-12 National Institute Of Information & Communication Technology 情報処理システム、中継装置、および情報処理方法
JP2012064091A (ja) * 2010-09-17 2012-03-29 Fuji Xerox Co Ltd 情報処理システム、情報処理装置、及びプログラム
JP5822125B2 (ja) * 2011-11-09 2015-11-24 日本電気株式会社 サービス連携装置、サービス連携方法およびサービス連携プログラム
WO2014034199A1 (ja) * 2012-08-30 2014-03-06 株式会社ソニー・コンピュータエンタテインメント 分散コンピューティングシステム、分散コンピューティング用クライアントコンピュータ、分散コンピューティング用サーバコンピュータ、分散コンピューティング方法及び情報記憶媒体
US10108521B2 (en) * 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
JP6323446B2 (ja) * 2013-03-29 2018-05-16 ソニー株式会社 情報処理装置、情報処理方法、及び情報処理システム
JP6079420B2 (ja) * 2013-05-10 2017-02-15 株式会社リコー 情報処理システム、情報処理方法、プログラム、及び記録媒体
CN105591888A (zh) * 2014-11-18 2016-05-18 中兴通讯股份有限公司 一种计算路径的方法和路径计算服务器
CN104363300B (zh) * 2014-11-26 2018-06-05 浙江宇视科技有限公司 一种服务器集群中计算任务分布式调度装置
JP2016152041A (ja) * 2015-02-19 2016-08-22 有限会社Triart データ処理プログラム及びデータ処理システム
US10705882B2 (en) * 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads

Patent Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0392038A (ja) * 1989-09-04 1991-04-17 Nec Corp ネットワーク構成装置の時刻設定方式
JPH10257661A (ja) * 1996-12-03 1998-09-25 Toshiba Corp 監視制御システムとこのシステムを実行するためのプログラムを記録した記録媒体
JPH10313337A (ja) * 1997-03-13 1998-11-24 Fujitsu Ltd ネットワークシステム,情報処理装置
JPH11224212A (ja) * 1998-02-06 1999-08-17 Mitsubishi Electric Corp 遠隔保守システム
JPH11252774A (ja) * 1998-02-26 1999-09-17 Toshiba Corp 監視制御装置、電力系統保護制御装置、分散制御システムおよびプログラムを記憶した記憶媒体
JP2000134786A (ja) * 1998-10-22 2000-05-12 Toshiba Corp 電力系統保護制御システム、電力系統保護制御システムの制御方法およびプログラムモジュールを記憶した記憶媒体
JP2001209620A (ja) * 2000-01-25 2001-08-03 Matsushita Electric Works Ltd 遠隔監視制御システム及び記録媒体
JP2001275277A (ja) * 2000-03-24 2001-10-05 Toshiba Corp 電力系統保護制御システムおよびコンピュータが読取り可能な記憶媒体
JP2001282756A (ja) * 2000-03-31 2001-10-12 Hitachi Ltd 移動エージェント制御方法
JP2001306511A (ja) * 2000-04-25 2001-11-02 Pfu Ltd マシン情報の収集方法およびマシン情報の収集装置ならびにその記録媒体
JP2001313670A (ja) * 2000-04-28 2001-11-09 Oki Electric Ind Co Ltd ネットワーク管理方法
JP2001327102A (ja) * 2000-05-12 2001-11-22 Toshiba Corp 電力系統監視制御装置
JP2002062795A (ja) * 2000-08-23 2002-02-28 E Culture Kk 検定試験システム
JP2002073640A (ja) * 2000-09-05 2002-03-12 Oki Electric Ind Co Ltd 情報検索システム
JP2002092366A (ja) * 2000-09-11 2002-03-29 Nec Corp Cpu時間売買方法及びcpu時間売買システムにおける管理サーバ
JP2002108838A (ja) * 2000-10-02 2002-04-12 Ntt Comware Corp エージェント実行装置およびエージェント実行方法
JP2002207709A (ja) * 2001-01-10 2002-07-26 Hitachi Ltd エージェントプログラムの巡回方法
JP2002230299A (ja) * 2001-01-31 2002-08-16 Hitachi Kokusai Electric Inc オンライン情報システム
JP2002281036A (ja) * 2001-03-16 2002-09-27 Oki Electric Ind Co Ltd 通信制御装置の制御方法およびネットワーク管理システムの制御プログラム
JP2002281086A (ja) * 2001-03-19 2002-09-27 Kddi Corp トラヒック監視方法およびシステム
JP2002297557A (ja) * 2001-03-30 2002-10-11 Toshiba Corp エージェントシステムおよびこのエージェントシステム用プログラム
JP2002325100A (ja) * 2001-04-25 2002-11-08 Oki Electric Ind Co Ltd ネットワークsla管理システム
JP2003044446A (ja) * 2001-07-30 2003-02-14 Kanazawa Inst Of Technology 分散型著作権保護方法、およびその方法を利用可能なコンテンツ公開装置、監視サーバならびにシステム
JP2003345724A (ja) * 2002-05-22 2003-12-05 Omron Corp 情報管理方法、情報管理システム、サーバ、端末及び情報管理プログラム
JP2004005230A (ja) * 2002-05-31 2004-01-08 Omron Corp エージェント利用メンテナンスシステム
JP2004013386A (ja) * 2002-06-05 2004-01-15 Toho Gas Co Ltd 通信システム
JP2004023120A (ja) * 2002-06-12 2004-01-22 Fujitsu Ltd 通信管理システム
JP2004280800A (ja) * 2003-02-25 2004-10-07 Seiko Epson Corp ネットワークデバイス検査システム、デバイス検査プログラム及びデバイス検査方法、並びにデバイス
JP2004363780A (ja) * 2003-06-03 2004-12-24 Oki Electric Ind Co Ltd 通信ネットワークにおける通信品質設定方法及び通信品質設定システム並びにプログラム
JP2006309322A (ja) * 2005-04-26 2006-11-09 Toshiba Social Automation Systems Co Ltd データ集計方法及びデータ集計システム
JP2012248919A (ja) * 2011-05-25 2012-12-13 Hitachi Cable Ltd フレーム中継装置、ネットワークシステム及びフレーム中継方法
JP2017005446A (ja) * 2015-06-09 2017-01-05 富士通株式会社 中継装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905525A (zh) * 2019-11-19 2021-06-04 中科寒武纪科技股份有限公司 控制运算装置进行计算的方法及设备
CN112905525B (zh) * 2019-11-19 2024-04-05 中科寒武纪科技股份有限公司 控制运算装置进行计算的方法及设备

Also Published As

Publication number Publication date
EP3745274A1 (en) 2020-12-02
WO2019142767A1 (ja) 2019-07-25
US11875134B2 (en) 2024-01-16
JP2019128645A (ja) 2019-08-01
US20210064337A1 (en) 2021-03-04
EP3745274A4 (en) 2021-10-20
CN111902808A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
KR102110592B1 (ko) IoT 컴퓨팅 환경에서의 클라우드와 엣지간의 분산 처리 방법 및 시스템
CN109949160A (zh) 一种区块链的分片方法及装置
CN101491006A (zh) 会合联盟内的近邻间通信
JP6427697B1 (ja) 情報処理装置、情報処理方法、プログラムおよび情報処理システム
Promwongsa et al. Ensuring reliability and low cost when using a parallel VNF processing approach to embed delay-constrained slices
Furno et al. Self-scaling cooperative discovery of service compositions in unstructured P2P networks
Mostafa Cooperative fog communications using a multi-level load balancing
Ke et al. Aggregation on the fly: Reducing traffic for big data in the cloud
Tiwari et al. Observing the effect of interprocess communication in auto controlled ant colony optimization‐based scheduling on computational grid
Fan et al. Dynamic digital twin and online scheduling for contact window resources in satellite network
CN101390345B (zh) 信息通信系统、信息收集方法、节点设备和记录介质
Tan et al. A mathematical model, heuristic, and simulation study for a basic data staging problem in a heterogeneous networking environment
Pham et al. Multi-domain non-cooperative VNF-FG embedding: A deep reinforcement learning approach
JP2011022800A (ja) 画面遷移最適化システム
Zhang et al. A set-based differential evolution algorithm for QoS-oriented and cost-effective ridesharing
CN112800081A (zh) 关联用户获取方法和装置
CN102156730B (zh) 基于文件存储动态聚合的优化方法
Tian et al. Modeling and algorithms for multiagent communication through interactive dynamic influence diagrams
JP2016071725A (ja) ワークフロー制御プログラム、ワークフロー制御方法及び情報処理装置
CN110598931A (zh) 基于图卷积的节点电价预测方法及装置
Kumar et al. Development of a hybrid negotiation scheme for multi-agent manufacturing systems
CN113177212B (zh) 联合预测方法和装置
CN117687800B (zh) 一种跨域分布式计算方法、系统、存储介质和电子设备
Bessis et al. Modelling of a self-led critical friend topology in inter-cooperative grid communities
Zhang et al. A transaction transmission model for blockchain channels

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180205

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180205

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181029

R150 Certificate of patent or registration of utility model

Ref document number: 6427697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250