JP7181663B2 - 通信装置、通信プログラム、および分散処理方法 - Google Patents

通信装置、通信プログラム、および分散処理方法 Download PDF

Info

Publication number
JP7181663B2
JP7181663B2 JP2019003225A JP2019003225A JP7181663B2 JP 7181663 B2 JP7181663 B2 JP 7181663B2 JP 2019003225 A JP2019003225 A JP 2019003225A JP 2019003225 A JP2019003225 A JP 2019003225A JP 7181663 B2 JP7181663 B2 JP 7181663B2
Authority
JP
Japan
Prior art keywords
execution
partial
trail
communication devices
partial process
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
JP2019003225A
Other languages
English (en)
Other versions
JP2020113032A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019003225A priority Critical patent/JP7181663B2/ja
Priority to US16/724,775 priority patent/US11150942B2/en
Priority to CN201911373372.8A priority patent/CN111443996A/zh
Priority to EP19220000.4A priority patent/EP3680777A1/en
Publication of JP2020113032A publication Critical patent/JP2020113032A/ja
Application granted granted Critical
Publication of JP7181663B2 publication Critical patent/JP7181663B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/5072Grid computing

Description

本発明は、通信装置、通信プログラム、および分散処理方法に係わる。
大型のコンピュータを用いることなく大容量の計算を実行するための技術の1つとして分散コンピューティングが提案されている。分散コンピューティングにおいては、プログラムが複数のプログラム部分に分割され、複数のプログラム部分が複数のコンピュータ上で実行される。このとき、複数のコンピュータは、ネットワークを介して互いに通信を行いながら、全体として処理を進行させる。
分散コンピューティングの一例として、ボランティアコンピューティングが実用化されている。ボランティアコンピューティングにおいては、分散して存在する余剰計算資源を活用して処理が実行される。例えば、地球外知的生命体探索のためにボランティアコンピューティングが利用されることがある。
図1は、従来の分散処理システムの一例を示す。この例では、分散処理システムは、制御ノードコンピュータおよび複数の実行ノードコンピュータを備える。なお、分散処理システムは、分散コンピューティングにより実現される。
各実行ノードコンピュータは、分散処理システムに余剰計算資源を提供する。制御ノードコンピュータは、ユーザから与えられたアプリケーションプログラムを複数のプログラム部分に分割して実行ノードコンピュータに分配する。このとき、制御ノードコンピュータは、どの実行ノードコンピュータにどのプログラム部分を実行させるのかを決定する。各実行ノードコンピュータは、与えられたプログラム部分を実行し、その計算結果を制御ノードコンピュータに送信する。そして、制御ノードコンピュータは、各実行ノードコンピュータによる計算結果を収集して検証する。
分散コンピューティングまたはボランティアコンピューティングのプラットフォームの1つとして、BOINC(Berkeley Open Infrastructure for Network Computing)が知られている。また、特許文献1~2に関連技術が記載されている。
WO2018/142948号 特開2015-146165号公報
従来の分散処理システムにおいては、図1を参照しながら説明したように、制御ノードコンピュータが複数の実行ノードコンピュータの処理を制御する。したがって、制御ノードコンピュータに障害が発生すると、アプリケーションの実行を継続できなくなる。すなわち、従来の分散処理システムの信頼性(特に、耐障害性)は低い。また、各実行ノードコンピュータの計算結果は、制御ノードコンピュータにより検証される。換言すれば、制御ノードコンピュータは、計算結果を改ざんできる。したがって、この観点においても、従来の分散処理システムの信頼性は低い。
本発明の1つの側面に係わる目的は、分散処理システムの信頼性を向上させることである。
本発明の1つの態様の通信プログラムは、複数の部分処理を含む目的処理を実行する複数の通信装置の中の1つの通信装置において使用される。この通信プログラムにより提供される方法は、前記複数の部分処理の状態を表す証跡を参照して、前記複数の部分処理のうちから、同じ実行結果の数が目標数よりも少ない未完了部分処理を選択し、前記未完了部分処理を実行し、前記未完了部分処理の実行結果を前記証跡に記録する。
上述の態様によれば、分散処理システムの信頼性が向上する。
従来の分散処理システムの一例を示す図である。 本発明の実施形態に係わる分散処理システムの一例を示す図である。 実行ノードコンピュータの処理の一例を示すフローチャートである。 分散処理システムによる処理の流れの一例を示す図(その1)である。 分散処理システムによる処理の流れの一例を示す図(その2)である。 分散処理システムによる処理の流れの一例を示す図(その3)である。 分散処理システムの構成および機能の一例を示す図である。 処理一覧表の一例を示す図である。 実行ノード一覧表の一例を示す図である。 証跡の一例を示す図である。 開始フェーズのシーケンスの一例を示す図である。 実行フェーズのシーケンスの一例を示す図である。 合意フェーズのシーケンスの一例を示す図である。 終了フェーズのシーケンスの一例を示す図である。 証跡を更新する処理の一例を示すフローチャートである。 通信装置として動作するコンピュータのハードウェア構成の一例を示す図である。 分散処理システムの構成例を示す図である。
図2は、本発明の実施形態に係わる分散処理システムの一例を示す。本発明の実施形態に係わる分散処理システム100は、複数の実行ノードコンピュータ1(1A~1D)を含む。実行ノードコンピュータ1A~1Dは、互いに通信可能に接続されている。実行ノードコンピュータ1A~1Dは、光ファイバリンクで接続されてもよいし、電気回線で接続されてもよいし、無線リンクで接続されてもよい。なお、各実行ノードコンピュータ1(1A~1D)は、本発明の実施形態に係わる通信装置の一例である。
分散処理システム100に与えられるアプリケーションの処理は、複数の部分処理から構成される。例えば、分散処理システム100に与えられるアプリケーションの処理は、予め複数の部分処理に分割されている。或いは、分散処理システム100は、与えられたアプリケーションの処理を複数の部分処理に分割してもよい。
各実行ノードコンピュータ1A~1Dは、複数の部分処理の中から実行すべき部分処理を自律的に選択し、選択した部分処理を実行する。そして、各実行ノードコンピュータ1A~1Dは、選択した部分処理の実行結果を証跡に記録する。証跡は、例えば、選択した部分処理を実行したノードを識別する情報、選択した部分処理を識別する情報、選択した部分処理についての実行結果、および選択した部分処理についての実行が終了した時刻を表すタイムスタンプを含む。また、証跡は、この実施例では、各ノード内に保存される。ただし、あるノードにおいて証跡が更新されると、更新された内容は、ネットワーク内の全ノードに通知される。したがって、証跡は、実質的に、実行ノードコンピュータ1A~1Dにより共有される。或いは、証跡は、ネットワーク内の全実行ノードコンピュータ1A~1Dが閲覧可能な領域に保存されるようにしてもよい。
実行ノードコンピュータ1A~1Dは、部分処理ごとに実行結果について合意を形成する。合意は、各実行ノードコンピュータ1A~1Dにより記録される証跡の内容(たとえば、処理内容および処理順番)が互いに同じであることを確認することで実現される。この結果、各ノードに保存される証跡が互いに同じであることが保証される。
複数の部分処理は、例えば、予め決められた順番で実行されるように指定されている。この場合、ある部分処理について実行ノードコンピュータ1A~1Dにより合意が形成されると、次の部分処理が実行される。そして、すべての部分処理について合意が形成されると、分散処理システム100は、与えられたアプリケーションについての実行結果を出力する。
図3は、実行ノードコンピュータ1の処理の一例を示すフローチャートである。このフローチャートの処理は、複数の部分処理を含むアプリケーションが分散処理システム100に与えられたときに実行される。
S1において、実行ノードコンピュータ1は、自ノードに保存されている証跡を参照し、複数の部分処理の中から実行すべき部分処理を選択する。なお、各部分処理について、実行すべき順番が予め指定されているものとする。この場合、完了していない部分処理の中で、最も早く実行されるべき部分処理が選択される。
S2において、実行ノードコンピュータ1は、自ノードに保存されている証跡を参照し、選択した部分処理についての実行結果の個数(現状の回答数)が目標数(必要回答数)に達しているか否かを判定する。このとき、同じ実行結果の個数が目標数に達しているか否かが判定される。なお、目標数(必要回答数)は、分散処理システム100において予め決められているものとする。
S1で選択した部分処理についての現状の回答数が必要回答数に達していれば、実行ノードコンピュータ1は、選択した部分処理が完了しており、且つ、その実行結果について合意が形成されていると判定する。この場合、実行ノードコンピュータ1の処理はS1に戻る。すなわち、次の部分処理が選択される。一方、S1で選択した部分処理についての現状の回答数が必要回答数より少なければ、実行ノードコンピュータ1の処理はS3に進む。
S3において、実行ノードコンピュータ1は、選択した部分処理の1つ前の部分処理の実行結果を利用して、選択した部分処理を実行する。なお、選択した部分処理の1つ前の部分処理の実行結果は、証跡に記録されている。
S4において、実行ノードコンピュータ1は、選択した部分処理についての実行結果を証跡に記録する。ただし、実行ノードコンピュータ1は、実行結果について複数またはすべての実行ノードコンピュータ1による合意が得られた後に、その実行結果を証跡に記録することが好ましい。また、実行ノードコンピュータ1は、現状の回答数が必要回答数より少ないときに限って、選択した部分処理についての実行結果を証跡に記録することが好ましい。更新された証跡は、分散処理システム100内の全実行ノードコンピュータ1により共有される。
S5において、実行ノードコンピュータ1は、自ノードに保存されている証跡を参照し、すべての部分処理が完了したか否かを判定する。そして、完了してない部分処理が残っていれば、実行ノードコンピュータ1の処理はS1に戻る。すなわち、次の部分処理が選択される。一方、すべての部分処理が完了していれば、実行ノードコンピュータ1の処理は終了する。この後、分散処理システム100は、実行結果を出力する。
図4~図6は、分散処理システム100による処理の流れの一例を示す。この実施例では、分散処理システム100は、実行ノードコンピュータ1A~1Cを備える。分散処理システム100に与えられるアプリケーションは、部分処理1、部分処理2、部分処理3を含む。部分処理1が最初に実行され、部分処理1の次に部分処理2が実行され、部分処理3が最後に実行される、ことが予め決められている。なお、図4~図6では、部分処理1、部分処理2、部分処理3は、それぞれ「処理1」「処理2」「処理3」と表記されている。
各実行ノードコンピュータ1A~1Cに保存される証跡は、互いに同期しているものとする。すなわち、実行ノードコンピュータ1A~1Cがそれぞれ参照する証跡の内容は互いに同じである。証跡は、与えられたアプリケーションに含まれる複数の部分処理の状態を表す。図4~図6に示す例では、証跡は、部分処理のリストおよび各部分処理についての実行状態を表す情報を含む。部分処理のリストにおいては、部分処理1、部分処理2、部分処理3が順番に並べられている。各部分処理についての実行状態を表す情報は、部分処理を実行したノードを識別する情報および実行結果を含む。
例えば、図4(a)に示す証跡は、部分処理1について、実行ノードコンピュータ1Aによる実行結果が「100」であり、実行ノードコンピュータ1Cによる実行結果も「100」である状態を表している。また、この証跡は、部分処理2について、実行ノードコンピュータ1Bによる実行結果が「150」である状態を表している。
以下、図3に示すフローチャートを参照しながら、図4(a)に示す状態の後の実行ノードコンピュータ1の処理を説明する。なお、この実施例では、上述した目標数(必要回答数)は「2」である。この場合、ある部分処理について2個以上の同じ実行結果が得られていれば、その実行結果について分散処理システム100内で合意が形成されていると判定される。即ち、ある部分処理について2個以上の同じ実行結果が得られていれば、その部分処理は正しく完了していると判定される。
S1:各実行ノードコンピュータ1は、自ノードに保存されている証跡を参照し、部分処理1~3の中から実行すべき部分処理を選択する。ここで、部分処理1に対して、2個の同じ実行結果が記録されている。よって、各実行ノードコンピュータ1A~1Cは、証跡を参照することにより、部分処理1は既に完了していると判定する。よって、各実行ノードコンピュータ1A~1Cは、部分処理1の次の部分処理(すなわち、部分処理2)について証跡を参照する。
例えば、実行ノードコンピュータ1Aは、図4(a)に示すように、部分処理2を選択する。同様に、実行ノードコンピュータ1Cも、部分処理2を選択する。なお、各実行ノードコンピュータ1A~1Cは、自律的に動作するので、複数の実行ノードコンピュータ1が同時またはほぼ同時に同じ部分処理を選択することがある。
S2:実行ノードコンピュータ1A、1Cは、図4(b)に示すように、それぞれ部分処理2についての同じ実行結果の個数(現状の回答数)が目標数(必要回答数)に達しているか否かを判定する。この例では、部分処理2に対して1個の実行結果が記録されている。すなわち、現状の回答数は、必要回答数よりも少ない。よって、実行ノードコンピュータ1A、1Cの処理は、それぞれS3に進む。
S3:実行ノードコンピュータ1A、1Cは、図5(a)に示すように、それぞれ部分処理2を実行する。このとき、部分処理2の1つ前の部分処理(すなわち、部分処理1)の実行結果を利用して、部分処理2が実行される。すなわち、実行ノードコンピュータ1A、1Cは、それぞれ「部分処理1の実行結果=100」を利用して部分処理2を実行する。
このように、実行ノードコンピュータ1A、1Cは、それぞれ部分処理2を実行する。ここで、実行ノードコンピュータ1Cによる部分処理2の実行を終了する前に、実行ノードコンピュータ1Aによる部分処理2の実行を終了したものとする。
この場合、実行ノードコンピュータ1Aは、証跡を参照し、部分処理2の状態を確認する。このとき、部分処理2に対して1個の実行結果が記録されている。すなわち、現状の回答数は、必要回答数よりも少ない。よって、実行ノードコンピュータ1Aは、部分処理2の実行結果を証跡に記録する。この例では、図5(b)に示すように、実行ノードコンピュータ1Aにより「部分処理2の実行結果=150」が証跡に書き込まれる。
続いて、実行ノードコンピュータ1Cは、部分処理2の実行が終了すると、証跡を参照し、部分処理2の状態を確認する。ところが、この時点では、部分処理2に対して2個の実行結果が記録されている。また、これら2個の実行結果は、互いに同じである。すなわち、部分処理2についての現状の回答数が必要回答数に達している。したがって、実行ノードコンピュータ1Cは、部分処理2が正しく完了していると判定し、部分処理2の実行結果を証跡に記録しない。
この後、同様の手順で部分処理3が実行され、図6に示す証跡が作成される。そして、すべての部分処理1~3が完了すると、分散処理システム100は、最終的な実行結果を出力する。すなわち、「実行結果=200」が出力される。
このように、分散処理システム100は、各実行ノードコンピュータ1を制御する制御ノードコンピュータなしで分散処理を実現する。よって、図1に示す構成(すなわち、各実行ノードコンピュータを制御する制御ノードコンピュータを必要とする構成)と比較すると、耐障害性が高くなる。例えば、分散処理システム100においては、複数の実行ノードコンピュータ1のうちの幾つかが故障しても、他の実行ノードコンピュータ1により処理を継続することが可能である。
また、各部分処理について複数の実行ノードコンピュータ1により複数の実行結果が生成され、所定数(目標数または必要回答数)以上の実行結果が一致したときに、その部分処理が完了する。したがって、1または少数の実行ノードコンピュータ1が不正または改ざんを行うことは困難である。或いは、1または少数の実行ノードコンピュータ1が悪意あるユーザに乗っ取られても、誤った実行結果が出力されることはない。
<実施例>
図7は、分散処理システム100の構成および機能の一例を示す。この実施例では、分散処理システム100は、要求ノードコンピュータ3および複数の実行ノードコンピュータ1(1A、1B)を備える。なお、分散処理システム100は、要求ノードコンピュータ3を含まなくてもよい。すなわち、要求ノードコンピュータ3は、分散処理システム100の外部に設けられてもよい。また、実行ノードコンピュータ1の数は、特に限定されるものではない。
要求ノードコンピュータ3は、処理管理部31、要求部32、検証部33、通信部34を備える。ただし、要求ノードコンピュータ3は、図7に示していない他の機能を備えていてもよい。
処理管理部31は、処理一覧表を用いて、実行ノードコンピュータ1に実行を要求すべきアプリケーションを管理する。なお、実行ノードコンピュータ1に実行を要求すべきアプリケーションは、例えば、ユーザから与えられる。
図8は、処理一覧表の一例を示す。この実施例では、処理一覧表には、アプリ名、部分処理リスト、処理内容コード、必要回答数などが登録される。アプリ名は、ユーザから受け付けたアプリケーションの名称(または、識別情報)を表す。部分処理リストは、ユーザから受け付けたアプリケーションに含まれる複数の部分処理の名称(または、識別別情報)を表す。この実施例では、動画像処理アプリケーションが、部分処理として、圧縮処理、音声加工処理、モザイク加工処理、字幕追加処理などを含んでいる。処理内容コードは、対応する部分処理の内容を記述する。必要回答数は、部分処理の完了までに必要な同じ実行結果の数を表す。例えば、圧縮処理の必要回答数は「3」である。この場合、互いに一致する3個の実行結果が得られるまで、異なる実行ノードコンピュータ1により圧縮処理が実行される。
なお、この実施例では、例えば、ユーザがアプリケーションを分割して複数の部分処理を定義する。この場合、各部分処理の必要回答数もそれぞれユーザにより定義される。
要求部32は、実行ノードコンピュータ1に、処理一覧表に登録されているアプリケーションの実行を要求する。ここで、要求部32は、実行ノード一覧表を備える。実行ノード一覧表には、図9に示すように、分散処理システム100内で動作する実行ノードコンピュータ1が登録されている。この実施例では、実行ノード一覧表に実行ノードコンピュータ1A、1B、1Cなどが登録されている。また、実行ノード一覧表には、各実行ノードコンピュータ1にアクセスするための情報も登録されている。
検証部33は、実行ノードコンピュータ1に実行を要求したアプリケーションが正しく完了したか否かを検証する。通信部34は、ネットワークを介して各実行ノードコンピュータ1と通信を行う。
実行ノードコンピュータ1は、証跡管理部11、合意形成部12、選択部13、実行部14、通信部15を備える。ただし、実行ノードコンピュータ1は、図7に示していない他の機能を備えていてもよい。
証跡管理部11は、実行ノードコンピュータ1が要求ノードコンピュータ3からアプリケーションの実行要求を受信したときに、そのアプリケーションに係わる情報を証跡に記録する。また、証跡管理部11は、実行ノードコンピュータ1による実行結果を証跡に記録する。
図10は、証跡の一例を示す。証跡は、この実施例では、実行対象アプリケーション毎に作成される。引数は、実行対象アプリケーションにより処理されるデータを指し示す。要求ノード名は、実行ノードコンピュータ1に対してアプリケーションの実行を要求したノードを識別する。部分処理リスト、処理内容コード、必要回答数は、図8に示す処理一覧表および図10に示す証跡において実質的に同じなので、説明を省略する。
有効回答数は、対応する部分処理について得られている、互いに一致する実行結果(即ち、回答)の数を表す。状態は、対応する部分処理が完了しているか否かを表す。実行結果は、対応する部分処理についての実行ノードコンピュータ1による実行結果を表す。なお、実行結果は、情報量を削減するために、例えば、ハッシュ値で表される。実行ノードは、対応する部分処理を実行したノードを識別する。実行時刻は、対応する部分処理が実行された時刻を表す。
例えば、動画処理アプリケーションに含まれる圧縮処理は、実行ノードコンピュータ1A、1B、1Cにより実行されている。ここで、実行ノードコンピュータ1A、1B、1Cによる実行結果は、互いに同じである。したがって、有効回答数は「3」である。この場合、有効回答数が必要回答数に達しているので、圧縮処理の状態は「完了」である。
モザイク加工処理は、実行ノードコンピュータ1D、1B、1Aにより実行されている。ところが、実行ノードコンピュータ1D、1Aによる実行結果は互いに一致するが、実行ノードコンピュータ1Bによる実行結果は、他の2つの実行結果とは異なっている。したがって、有効回答数は「2」である。この場合、有効回答数は必要回答数より少ないので、モザイク加工処理の状態は「未完了」である。
合意形成部12は、他のノードの合意形成部12と連携して、実行ノードコンピュータ1による実行結果についての合意の形成を試みる。なお、合意形成部12は、要求ノードコンピュータ3の要求部32と同様に、図9に示す実行ノード一覧表を備える。
選択部13は、実行対象アプリケーションに含まれる部分処理のうちから、完了していない部分処理を選択する。すなわち、選択部13は、自ノードの証跡を参照し、複数の部分処理のうちから、同じ実行結果の数が必要回答数よりも少ない未完了部分処理を選択する。例えば、図10に示す例では、圧縮処理および音声加工処理は完了しているが、モザイク可能処理および字幕追加処理は未だ完了していない。よって、この場合、選択部13は、モザイク加工処理または字幕追加処理を選択する。ただし、各部分処理の実行順序が予め指定されているときは、選択部13は、完了していない部分処理のうちで、実行順番が最も早い部分処理を選択する。
実行部14は、選択部13により選択された部分処理を実行する。尚、選択部13および実行部14は、一体的に動作してもよい。この場合、選択部13および実行部14は、完了していない部分処理を選択して実行する。通信部15は、ネットワークを介して、要求ノードコンピュータ3および他の実行ノードコンピュータ1と通信を行う。
図11~図14は、分散処理システム100が与えられたアプリケーションを実行するときのシーケンスの一例を示す。このシーケンスは、図11に示す開始フェーズ、図12に示す実行フェーズ、図13に示す合意フェーズ、および図14に示す終了フェーズを含む。なお、このシーケンスが開始する前に、実行すべきアプリケーションがユーザから要求ノードコンピュータ3に与えられているものとする。この場合、このアプリケーションは、処理管理部31が管理する処理一覧表に登録される。また、以下の記載では、分散処理システム100に与えられるアプリケーションを「目的アプリケーション」または「目的処理」と呼ぶことがある。
図11は、開始フェーズのシーケンスの一例を示す。開始フェーズは、例えば、ユーザから入力される指示に応じて、要求ノードコンピュータ3において起動される。
S11において、要求部32は、処理管理部31に対して目的アプリケーションに係わる処理一覧表を要求する。この要求は、目的アプリケーションの名称を表す情報(又は、目的アプリケーションの識別情報)を含む。
S12において、処理管理部31は、要求部32から受信する要求に応じて、対応するアプリケーションに係わる処理一覧表を要求部31に送信する。処理一覧表は、例えば、図8に示すように、部分処理リストを含む。また、処理一覧表は、各部分処理についての必要解答数を表す情報を含む。
S13において、要求部32は、目的アプリケーションの実行を要求する実行要求を通信部34に渡す。この実行要求は、目的アプリケーションに係わる処理一覧表および引数を含む。
S14において、通信部34は、要求部31から受信した実行要求を、すべての実行ノードコンピュータ1に送信する。ただし、この実行要求は、目的アプリケーションに係わる処理一覧表および引数に加えて、実行要求の送信元(ここでは、要求ノードコンピュータ3)を識別する情報含む。
S15~S16は、要求ノードコンピュータ3から実行要求を受信した各実行ノードコンピュータ1により実行される。すなわち、S15において、通信部15は、要求ノードコンピュータ3から受信した実行要求を証跡管理部11に渡す。そうすると、証跡管理部11は、受信した実行要求の内容を証跡に記録する。図10に示す例では、証跡管理部11は、受信した実行要求に基づいて、アプリケーション名、引数、要求ノード名、部分処理リスト、必要回答数などを証跡に記録する。
S16において、通信部15は、要求ノードコンピュータ3から受信した実行要求に基づいて、選択部13に実行指示を与える。そうすると、実行フェーズが起動される。
図12は、実行フェーズのシーケンスの一例を示す。実行フェーズは、要求ノードコンピュータ3から実行要求を受信した各実行ノードコンピュータ1において起動される。具体的には、図11に示すS16の実行指示が選択部13に与えられると実行フェーズが起動される。
実行フェーズは、目的アプリケーションの各部分処理に対して実行される。すなわち、S21~S28は繰り返し実行される。そして、すべての部分処理が完了すると、実行フェーズは終了する。具体的には以下の通りである。
S21において、選択部13は、未だ完了していない部分処理が残っている否かを証跡管理部11に問い合わせる。このとき、選択部13は、目的アプリケーションの名称を表す情報(又は、目的アプリケーションの識別情報)を証跡管理部11に通知する。なお、以下の記載では、未だ完了していない部分処理を「未完了部分処理」と呼ぶことがある。
S22において、証跡管理部11は、証跡を参照し、未完了部分処理を検索する。図10に示す例では、圧縮処理および音声加工処理は完了しているが、モザイク加工処理および字幕追加処理は未だ完了していない。そして、証跡管理部11は、検索結果を選択部11に通知する。ここで、未完了部分処理が残っているときは、証跡管理部11は、すべての未完了部分処理を選択部13に通知する。
S23において、選択部13は、証跡管理部11から受信する検索結果に基づいて、未完了部分処理が残っているか否かを検出する。そして、未完了部分処理が残っているときは、S24において、選択部13は、通知された未完了部分処理のうちから実行すべき部分処理を選択する。このとき、選択部13は、通知された未完了部分処理のうちで最も先に実行すべき部分処理を選択する。そして、選択部13は、選択した部分処理についての実行指示を実行部14に与える。この実行指示は、目的アプリケーションの名称および選択した部分処理の名称を含む。
S25において、実行部14は、選択部11により選択された部分処理を実行する。そして、S26において、実行部14は、合意形成部12に対して、実行結果についての合意の形成を要求する。合意形成要求は、目的アプリケーションの名称、実行した部分処理の名称、実行結果を含む。
S27において合意フェーズが実行される。なお、合意フェーズについては、後で図13を参照しながら説明する。ここでは、S25の実行結果について、複数の実行ノードコンピュータ1により合意が形成されたものとする。
S28において、合意形成部12は、実行結果について合意が形成されたことを実行部14に通知する。S29において、実行部14は、この通知を選択部13に転送する。このとき、実行部14は、S25で得られている実行結果を選択部13に渡す。
この後、実行フェーズのシーケンスはS21に戻る。すなわち、実行ノードコンピュータ1は、未完了部分処理を1つずつ順番に選択して実行する。そして、すべての部分処理が完了すると、S23において、選択部13は、通信部15に終了通知を与える。また、選択部13は、選択部13が各部分処理についての実行結果を通信部15に与える。
なお、この実施例では、図4~図6を参照して説明したように、実行ノードコンピュータ1は、選択した部分処理の1つ前の部分処理の実行結果を利用して、選択した部分処理を実行する。したがって、最後の部分処理の実行結果は、すべての部分処理についての実行結果(即ち、目的アプリケーションの実行結果)に相当する。すなわち、S23において、すべての部分処理が完了すると、目的アプリケーションの実行結果が選択部13から通信部15に与えられる。
このように、実行フェーズにおいては、選択部13により選択された部分処理が実行部14により実行される。そして、すべての部分処理が完了すると、選択部13から通信部15に実行結果が与えられる。
図13は、合意フェーズのシーケンスの一例を示す。合意フェーズは、図12に示す実行フェーズ中のS27に相当する。すなわち、選択された部分処理の実行結果が合意形成部12に与えられると、合意フェーズが起動される。なお、以下の記載では、実行ノードコンピュータ1Aの実行結果について、複数または全ての実行ノードコンピュータ1により合意形成が行われるものとする。また、図13において、実行ノードコンピュータ1Bは、実行ノードコンピュータ1A以外の任意の実行ノードコンピュータ1を表す。
S31において、合意形成部12は、実行部14から受け取った合意形成要求を通信部15に転送する。S32において、通信部15は、合意形成部12から受け取った合意形成要求を全実行ノードコンピュータ1(図13では、実行ノードコンピュータ1B)に送信する。このとき、合意形成要求は、合意形成要求の送信元(すなわち、実行ノードコンピュータ1A)を識別する情報を含む。
S33において、実行ノードコンピュータ1A、1Bは、所定の合意形成プロトコルに従って、実行ノードコンピュータ1Aの実行結果について合意を形成する。合意形成プロトコルとしては、例えば、PBFT(Practical Byzantine Fault Tolerance)、PoW(Proof of Work)、またはPoS(Proof of Stake)が使用される。また、この実施例では、選択された部分処理を実行した実行ノード、実行結果、実行時刻などについて合意が形成される。そして、合意形成プロトコルによる合意内容を表す合意結果は、各実行ノードコンピュータ1に送信される。すなわち、各実行ノードコンピュータ1の通信部15は、他の実行ノードコンピュータ1から合意結果を受信する。
S34~S36は、実行ノードコンピュータ1Bにおいて実行される。具体的には、S34において、通信部15は、受信した合意結果を合意形成部12に与える。合意形成部12は、この合意内容を証跡管理部12に与える。そして、証跡管理部11は、各実行ノードコンピュータ1A、1Bにより合意が形成された内容を証跡に記録する。なお、証跡を更新する方法については、後で図15を参照して説明する。
S37において、合意結果が実行ノードコンピュータ1Aに送信される。そうすると、実行ノードコンピュータ1AにおいてS38~S40が実行される。ここで、S38~S40は、実質的にS34~S36と同じである。すなわち、実行ノードコンピュータ1Aにおいても、証跡管理部11は、各実行ノードコンピュータ1A、1Bにより合意が形成された内容を証跡に記録する。
S41において、証跡管理部11は、証跡の更新が完了したことを表す通知を合意形成部12に与える。すなわち、S25の実行結果について複数または全ての実行ノードコンピュータ1による合意が形成されたことを表す通知が、証跡管理部11から合意形成部12に与えられる。この後、合意形成部12は、図12に示すS28を実行する。
このように、合意フェーズにおいては、ある実行ノードコンピュータ(図12~図13では、実行ノードコンピュータ1A)による実行結果について、複数または全ての実行ノードコンピュータ1により合意が形成される。そして、合意が得られた実行結果は、各実行ノードコンピュータ1の証跡に記録される。したがって、すべての実行ノードコンピュータ1は、同じ証跡を保持することになる。
図14は、終了フェーズのシーケンスの一例を示す。終了フェーズは、図12に示すS23において、すべての部分処理が完了したと判定されたときに実行される。
S51において、各実行ノードコンピュータ1の通信部15は、図12のS23で選択部13から受け取った実行結果を要求ノードコンピュータ3に送信する。よって、要求ノードコンピュータ3の通信部34は、各実行ノードコンピュータ1から実行結果を受信する。
S52において、通信部34は、各実行ノードコンピュータ1から受信した実行結果を検証部33に渡す。そうすると、S53において、検証部33は、各実行ノードコンピュータ1から受信した実行結果の正当性を確認するために、各実行ノードコンピュータ1の証跡を収集する。すなわち、検証部33は、証跡の送信を要求する証跡要求を生成して要求部32に渡す。この証跡要求は、目的アプリケーションの名称および目的アプリケーションを構成する各部分処理の名称を含む。
S54~S56において、証跡要求は、要求ノードコンピュータ3の通信部34を介して送信される。そうすると、各実行ノードコンピュータ1の通信部15は、受信した証跡要求を証跡管理部11に渡す。したがって、各実行ノードコンピュータ1の証跡管理部11は、それぞれ証跡要求を受信する。そうすると、S57において、証跡管理部11は、証跡要求により指定された目的アプリケーションに係わる証跡データを取得する。このとき、証跡管理部11は、自ノード内の所定の記憶領域に保存されている証跡データを取得する。そして、証跡管理部11は、取得した証跡データを要求ノードコンピュータ3に送信する。
S58~S60において、証跡データは、通信部34および要求部31を介して、検証部33に与えられる。そうすると、S61において、検証部33は、各実行ノードコンピュータ1から収集した証跡データを互いに比較する。この結果、すべての証跡データが互いに一致すれば、その証跡データが正しいと判定される。或いは、収集した証跡データのうちの所定の割合以上の証跡データが互いに一致したときは、その証跡データを正しいと判定してもよい。いずれにしても、正しい証跡データが得られたときは、検証部33は、S62において、実行ノードコンピュータ1から受信した実行結果を要求部32に渡す。そして、要求部32は、実行結果を出力する。
この後、要求ノードコンピュータ3は、受信した証跡データを参照し、有効な実行結果を提供した実行ノードコンピュータ1に対して報酬を与えてもよい。すなわち、ある部分処理に対して必要回答数以上の同じ実行結果が提供されたときに、その実行結果を提供した各実行ノードコンピュータ1に報酬が与えられる。例えば、図4~図6に示す実施例では、部分処理1に対して有効な実行結果を提供した実行ノードコンピュータ1A、1Cに対して報酬が与えられ、部分処理2に対して有効な実行結果を提供した実行ノードコンピュータ1A、1Bに対して報酬が与えられ、部分処理3に対して有効な実行結果を提供した実行ノードコンピュータ1A、1Cに対して報酬が与えられる。
図15は、証跡を更新する処理の一例を示すフローチャートである。このフローチャートの処理は、図13に示すS36またはS40に相当する。すなわち、このフローチャートの処理は、実行結果について合意形成が行われたときに、各実行ノードコンピュータ1において証跡管理部11により実行される。このとき、証跡管理部11は、自ノード内に保存されている証跡データを参照する。
S71において、証跡管理部11は、各実行結果について、同じ実行結果の個数をそれぞれカウントする。例えば、各実行結果のハッシュ値が計算されている場合は、同じハッシュ値を有する実行結果の個数がそれぞれカウントされる。
S72において、証跡管理部11は、同じ実行結果の個数が必要回答数以上となっている実行結果があるか否かを判定する。なお、必要回答数は、部分処理ごとに予め指定されている。
同じ実行結果の個数が必要回答数以上となっている実行結果が存在するときは、認証管理部11は、S73において、最も早く必要回答数以上の同じ実行結果が集まった実行結果を特定する。そして、認証管理部11は、特定した実行結果を証跡に記録する。S74において、証跡管理部11は、S73で特定された実行結果の個数を「有効回答数」として記録する。S75において、証跡管理部11は「状態:完了」を記録する。
例えば、図10に示す実施例において、実行ノードコンピュータ1により圧縮処理が実行されているものとする。この場合、ハッシュ値が「7d97...」である実行結果が、3個得られている。また、必要回答数は3である。よって、S72の判定結果は「Yes」であり、S73~S75が実行される。すなわち、圧縮処理の実行結果が確定する。また、「有効回答数:3」および「状態:完了」が記録される。
一方、同じ実行結果の個数が必要回答数以上となっている実行結果が存在しないときには、認証管理部11は、S76において、すべての実行結果を証跡に記録する。S77において、証跡管理部11は、同じ実行結果の個数の最大値を「有効回答数」として記録する。S78において、証跡管理部11は、「状態:未完了」を記録する。
例えば、図10に示す実施例において、実行ノードコンピュータ1によりモザイク加工処理が実行されているものとする。この場合、ハッシュ値が「dead...」である実行結果が2個であり、ハッシュ値が「beaf...」である実行結果が1個である。また、必要回答数は3である。したがって、S72の判定結果は「No」であり、S76~S78が実行される。すなわち、モザイク加工処理の実行結果は未だ確定しない。また、「有効回答数:2」および「状態:未完了」が記録される。
図16は、各ノードに実装される通信装置として動作するコンピュータのハードウェア構成の一例を示す。コンピュータ200は、プロセッサ201、メモリ202、記憶装置203、I/Oデバイス204、記録媒体デバイス205、通信インタフェース206を備える。なお、コンピュータ200は、実行ノードコンピュータ1に相当する。
プロセッサ201は、記憶装置203に格納されている通信プログラムを実行することにより、実行ノードコンピュータ1の機能を提供することができる。すなわち、プロセッサ201は、図3および図15に示すフローチャートの処理、および図11~図14に示すシーケンス中の実行ノードコンピュータ1の処理を記述した通信プログラムを実行することにより、証跡管理部11、合意形成部12、選択部13、実行部14、通信部15の機能を提供する。
メモリ202は、例えば半導体メモリであり、プロセッサ201の作業領域として使用される。記憶装置203は、コンピュータ200内に実装されていてもよいし、コンピュータ200に接続されてもよい。なお、証跡は、メモリ202または記憶装置203に保存される。I/Oデバイス204は、ユーザまたはネットワーク管理者の指示を受け付ける。また、I/Oデバイス204は、プロセッサ201による処理結果を出力する。記録媒体デバイス205は、可搬型記録媒体207に記録されている信号を読み取る。なお、上述した通信プログラムは、可搬型記録媒体207に記録されていてもよい。通信インタフェース206は、データ通信のためのインタフェースおよび制御情報を通信するためのインタフェースを含む。
図17は、分散処理システム100の構成例を示す。なお、図17においては、2台の実行ノードコンピュータが描かれているが、分散処理システム100はより多くの実行ノードコンピュータを備えていてもよい。
各実行ノードコンピュータは、計算資源51、計算資源制御部52、アプリケーション実行制御部53、分散台帳制御部54、分散台帳55を備える。計算資源51、計算資源制御部52、およびアプリケーション実行制御部53は、図7に示す選択部13および実行部14に対応する。分散台帳制御部54は、証跡管理部11および合意形成部12に対応する。分散台帳制御部54は、HLF(Hyperledger Fabric)で実現してもよい。分散台帳55は、証跡管理部11により管理される証跡に対応する。なお、各ノードにおいて保存される分散台帳55の内容は、互いに一致している。また、分散台帳55は、例えば、ブロックチェーン技術を利用して実現してもよい。
1(1A~1D) 実行ノードコンピュータ
3 要求ノードコンピュータ
11 証跡管理部
12 合意形成部
13 選択部
14 実行部
15 通信部
201 プロセッサ

Claims (5)

  1. 実行順序が予め指定された複数の部分処理を含む目的処理を実行する複数の通信装置の中の1つの通信装置において使用される通信プログラムであって
    前記複数の通信装置は、それぞれ、前記実行順序に従って前記複数の部分処理を処理するように構成されており、
    前記複数の通信装置は、それぞれ、前記複数の部分処理の状態を表す情報を記録する証跡を備えており、
    前記複数の通信装置が備える証跡の内容は互いに同期しており、
    当該通信装置の証跡を参照して、前記複数の部分処理のうちから、最新に完了した部分処理の次の部分処理である未完了部分処理を選択し、
    前記未完了部分処理について当該通信装置の証跡に記録されている、前記複数の通信装置のうちの異なる通信装置により得られている同じ実行結果の数が所定の目標数に達しているかを判定し、
    前記同じ実行結果の数が前記目標数に達していないときに、前記未完了部分処理を実行し、
    前記未完了部分処理の実行結果を当該通信装置の証跡に記録する
    処理をプロセッサに実行させる通信プログラム。
  2. 前記未完了部分処理の実行結果は、他の各通信装置に送信され、
    前記未完了部分処理の実行結果について前記複数の通信装置による合意が形成された後に、前記未完了部分処理について前記複数の通信装置により合意が形成された実行結果を当該通信装置が備える証跡に記録する
    処理を前記プロセッサにさらに実行させることを特徴とする請求項1に記載の通信プログラム。
  3. 同じ実行結果の数が目標数よりも少ない部分処理が存在しないときは、前記目的処理の実行結果を出力する
    処理をプロセッサにさらに実行させる請求項1に記載の通信プログラム。
  4. 複数の通信装置を用いて実行順序が予め指定された複数の部分処理を含む目的処理を実行する分散処理システムにおいて使用される、前記複数の通信装置の中の1つの通信装置であって、
    前記複数の通信装置は、それぞれ、前記実行順序に従って前記複数の部分処理を処理するように構成されており、
    前記複数の通信装置は、それぞれ、前記複数の部分処理の状態を表す情報を記録する証跡を備えており、
    前記複数の通信装置が備える証跡の内容は互いに同期しており、
    当該通信装置の証跡を参照して、前記複数の部分処理のうちから、最新に完了した部分処理の次の部分処理である未完了部分処理を選択する選択部と、
    前記未完了部分処理について当該通信装置の証跡に記録されている、前記複数の通信装置のうちの異なる通信装置により得られている同じ実行結果の数が所定の目標数に達しているかを判定する判定部と、
    前記同じ実行結果の数が前記目標数に達していないときに、前記選択部により選択された未完了部分処理を実行する実行部と、
    前記実行部により得られる実行結果を当該通信装置の証跡に記録する証跡管理部と、
    備える通信装置。
  5. 複数の通信装置を含む分散処理システムにおいて実行順序が予め指定された複数の部分処理を含む目的処理を実行する分散処理方法であって、
    前記複数の通信装置は、それぞれ、前記実行順序に従って前記複数の部分処理を処理するように構成されており、
    前記複数の通信装置は、それぞれ、前記複数の部分処理の状態を表す情報を記録する証跡を備えており、
    前記複数の通信装置が備える証跡の内容は互いに同期しており、
    各通信装置は、
    当該通信装置の証跡を参照して、前記複数の部分処理のうちから、最新に完了した部分処理の次の部分処理である未完了部分処理を選択し、
    前記未完了部分処理について当該通信装置の証跡に記録されている、前記複数の通信装置のうちの異なる通信装置により得られている同じ実行結果の数が所定の目標数に達しているかを判定し、
    前記同じ実行結果の数が前記目標数に達していないときに、前記未完了部分処理を実行し、
    前記未完了部分処理の実行結果を当該通信装置の証跡に記録する
    ことを特徴とする分散処理方法。
JP2019003225A 2019-01-11 2019-01-11 通信装置、通信プログラム、および分散処理方法 Active JP7181663B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019003225A JP7181663B2 (ja) 2019-01-11 2019-01-11 通信装置、通信プログラム、および分散処理方法
US16/724,775 US11150942B2 (en) 2019-01-11 2019-12-23 Communication device and communication method used in distributed computing environment
CN201911373372.8A CN111443996A (zh) 2019-01-11 2019-12-27 在分布式计算环境中使用的通信装置和通信方法
EP19220000.4A EP3680777A1 (en) 2019-01-11 2019-12-30 Communication device and communication method used in distributed computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019003225A JP7181663B2 (ja) 2019-01-11 2019-01-11 通信装置、通信プログラム、および分散処理方法

Publications (2)

Publication Number Publication Date
JP2020113032A JP2020113032A (ja) 2020-07-27
JP7181663B2 true JP7181663B2 (ja) 2022-12-01

Family

ID=69055832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019003225A Active JP7181663B2 (ja) 2019-01-11 2019-01-11 通信装置、通信プログラム、および分散処理方法

Country Status (4)

Country Link
US (1) US11150942B2 (ja)
EP (1) EP3680777A1 (ja)
JP (1) JP7181663B2 (ja)
CN (1) CN111443996A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242986A (ja) 2004-01-28 2005-09-08 Toshiba Corp 並列計算方法、並列計算プログラム及び計算機
WO2012056487A1 (ja) 2010-10-25 2012-05-03 株式会社日立製作所 計算機システム
JP2018109878A (ja) 2017-01-05 2018-07-12 株式会社日立製作所 分散コンピューティングシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3279004B2 (ja) * 1993-10-15 2002-04-30 株式会社日立製作所 冗長資源の管理方法及びそれを用いた分散型フォールトトレラントコンピュータシステム
US6553392B1 (en) * 1999-02-04 2003-04-22 Hewlett-Packard Development Company, L.P. System and method for purging database update image files after completion of associated transactions
JP4916567B2 (ja) 2010-08-02 2012-04-11 株式会社トライテック 分散コンピューティングシステムの処理方法
CN102567079B (zh) * 2011-12-29 2014-07-16 中国人民解放军国防科学技术大学 基于渐进式踪迹更新的并行程序能耗模拟评估方法
CN102665285B (zh) * 2012-05-02 2014-12-03 黄林果 一种可靠信息栅格系统的最优业务调度方法
US9274863B1 (en) 2013-03-20 2016-03-01 Google Inc. Latency reduction in distributed computing systems
JP2015146165A (ja) 2014-02-04 2015-08-13 日本電信電話株式会社 障害耐性信号処理装置および障害耐性信号処理方法
US9749427B2 (en) 2014-11-21 2017-08-29 International Business Machines Corporation Systems and methods for consensus protocol selection based on delay analysis
US20170111245A1 (en) * 2015-10-14 2017-04-20 International Business Machines Corporation Process traces clustering: a heterogeneous information network approach
EP3455802A1 (en) 2016-05-13 2019-03-20 De La Rue International Limited Methods and systems for processing assets
JP6931999B2 (ja) 2017-02-06 2021-09-08 株式会社日立製作所 信用度管理システムおよび信用度管理方法
US10868673B2 (en) * 2017-09-25 2020-12-15 Sap Se Network access control based on distributed ledger

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242986A (ja) 2004-01-28 2005-09-08 Toshiba Corp 並列計算方法、並列計算プログラム及び計算機
WO2012056487A1 (ja) 2010-10-25 2012-05-03 株式会社日立製作所 計算機システム
JP2018109878A (ja) 2017-01-05 2018-07-12 株式会社日立製作所 分散コンピューティングシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FABRE,Jean-Charles et al.,Saturation: reduced idleness for improved fault-tolerance,[1988] The Eighteenth International Symposium on Fault-Tolerant Computing. Digest of Papers,米国,IEEE,1988年06月30日,pages:200-205

Also Published As

Publication number Publication date
US11150942B2 (en) 2021-10-19
US20200225979A1 (en) 2020-07-16
EP3680777A1 (en) 2020-07-15
CN111443996A (zh) 2020-07-24
JP2020113032A (ja) 2020-07-27

Similar Documents

Publication Publication Date Title
US7949999B1 (en) Providing support for multiple interface access to software services
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
KR102377841B1 (ko) 서비스 존 기반의 계층적 합의 방법 및 장치
US10193951B2 (en) Binding CRUD-type protocols in distributed agreement protocols
CN102934101B (zh) 针对本地和远程数据的透明访问机制
JP2010140357A (ja) ストリームデータ処理方法、及びシステム
US20150081798A1 (en) Process-based inter-thing collaboration apparatus and method in web of things environment
JP6972796B2 (ja) ソフトウェアサービス実行装置、システム、及び方法
US11367068B2 (en) Decentralized blockchain for artificial intelligence-enabled skills exchanges over a network
CN111464353A (zh) 区块链节点管理方法、装置、计算机以及可读存储介质
WO2023045617A1 (zh) 一种交易数据处理方法、装置、设备以及介质
JP2014524204A (ja) キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム
CN109254921A (zh) 应用版本验证方法、装置、计算机设备以及存储介质
JP2003216562A (ja) 可視化処理システム、可視化処理方法及び可視化処理プログラム
JP7181663B2 (ja) 通信装置、通信プログラム、および分散処理方法
US10592864B2 (en) Share token issuance for declarative document authoring
JP7421443B2 (ja) データ移行方法、データ移行システム、およびノード
Zhang et al. Web service reputation evaluation based on QoS measurement
JP7408499B2 (ja) 分散台帳管理システム、分散台帳管理方法、およびノード
CN113628052A (zh) 基于预言机的区块链资产与合约处理方法、系统及装置
KR101146742B1 (ko) SaaS의 분산된 세션 관리 방법 및 그 관리 시스템
Ivanović et al. Evolution of extensible Java EE-based agent framework
JP2008225997A (ja) メタデータ管理方法、メタデータ管理システム、及び、メタデータ管理プログラム
JP7319564B2 (ja) データ共有システム、管理端末、データ共有方法、および、データ共有プログラム
WO2021223492A1 (en) Method and system for determining blockchain-based gridlock resolution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20221024

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221114

R150 Certificate of patent or registration of utility model

Ref document number: 7181663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150