(57)【要約】【課題】複数の通信装置を備えるデータ流通システムにおいてアクセスの集中に起因する取引効率の低下を緩和する。【解決手段】通信プログラムは、複数の通信装置が証跡を共有する分散ネットワークにおいて、複数の通信装置の中の１つの通信装置により実行される。この通信プログラムにより提供される方法は、複数の通信装置の中の第１の通信装置からデータを要求されたときに、そのデータを第１の通信装置に送信すると共に、そのデータを他の通信装置に送信する権限を第１の通信装置に与え、第１通信装置がそのデータを他の通信装置に送信する権限を有することを証跡に記録する。【選択図】図８
2020123188.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置が証跡を共有する分散ネットワークにおいて前記複数の通信装置の中の１つの通信装置により実行される通信プログラムであって、
前記複数の通信装置の中の第１の通信装置からデータを要求されたときに、前記データを前記第１の通信装置に送信すると共に、前記データを他の通信装置に送信する権限を前記第１の通信装置に与え、
前記第１通信装置が前記データを他の通信装置に送信する権限を有することを前記証跡に記録する
処理を前記第１の通信装置に実装されるプロセッサに実行させる通信プログラム。
【請求項２】
前記第１通信装置が前記権限を有することを前記証跡に記録する処理は、前記第１の通信装置が前記権限を承諾することを表すメッセージを、前記通信装置が前記第１の通信装置から受信した後に実行される
ことを特徴とする請求項１に記載の通信プログラム。
【請求項３】
前記データを前記第１の通信装置に送信したことを前記証跡に記録する処理を前記プロセッサにさらに実行させる
ことを特徴とする請求項１に記載の通信プログラム。
【請求項４】
証跡を共有する複数の通信装置の中の１つの通信装置であって、
前記複数の通信装置の中の第１の通信装置からデータを要求されたときに、前記データを前記第１の通信装置に送信する第１の処理部と、
前記データを他の通信装置に送信する権限を前記第１の通信装置に与える第２の処理部と、
前記第１通信装置が前記データを他の通信装置に送信する権限を有することを前記証跡に記録する第３の処理部と、
を備える通信装置。
【請求項５】
複数の通信装置が証跡を共有する分散ネットワークにおいて使用される通信方法であって、
前記複数の通信装置の中の第１の通信装置は、前記複数の通信装置の中の第２の通信装置に目的データを要求し、
前記第２の通信装置は、前記目的データを前記第１の通信装置に送信すると共に、前記目的データを他の通信装置に送信する権限を前記第１の通信装置に与え、
前記第２の通信装置は、前記第１通信装置が前記目的データを他の通信装置に送信する権限を有することを前記証跡に記録する
ことを特徴とする通信方法。
【請求項６】
前記第１の通信装置は、前記第２の通信装置から与えられた権限を承諾するときは、前記第２の通信装置に応答メッセージを送信し、
前記第２の通信装置は、前記第１の通信装置から前記応答メッセージを受信した後に、前記第１通信装置が前記権限を有することを前記証跡に記録する
ことを特徴とする請求項５に記載の通信方法。
【請求項７】
前記複数の通信装置の中の第３の通信装置は、
前記第２の通信装置のアクセス状況を確認し、
前記第２の通信装置のアクセス頻度が所定の閾値以下であるときは、前記第２の通信装置に前記目的データを要求し、
前記第２の通信装置のアクセス頻度が前記閾値を超えているときは、前記証跡に基づいて、前記第１の通信装置が前記権限を有することを検出し、前記第１の通信装置に前記目的データを要求する
ことを特徴とする請求項５に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信プログラム、および通信方法に係わる。
【背景技術】
【０００２】
近年、仮想通貨を実現するための基盤としてブロックチェーン技術が注目されている。また、ブロックチェーン技術は、仮想通貨以外の分野への適用が検討されている。たとえば、企業間または組織間で情報を共有するためにブロックチェーンを利用するケースが注目されている。
【０００３】
ブロックチェーン技術を利用するサービスの１つとして、複数のユーザが参加するデータ流通市場が知られている。データ流通市場の参加者は、自分が保有するデータを市場に提供することができる。また、参加者は、市場に提供されているデータを利用することができる。
【０００４】
データ流通市場は、例えば、分散型ネットワークにより実現される。分散型ネットワークにおいては、複数の拠点にそれぞれサーバが実装される。各サーバは、自分が保持するデータのリスト（あるいは、メタデータ）を他のサーバに報知する。そして、サーバは、ユーザから要求されたデータを保持しているときは、そのデータをユーザに提供する。また、サーバは、ユーザから要求されたデータを保持していないときは、そのデータを他のサーバから取得してユーザに提供する。
【０００５】
なお、分散型データ流通技術は、例えば、特許文献１に記載されている。また、特許文献２〜４に関連技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−０８１４６４号公報
【特許文献２】特開２００３−０６７２７９号公報
【特許文献３】特開２００６−１５５４８６号公報
【特許文献４】特開２００６−１７１８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した分散型ネットワークにおいては、人気のあるデータを保持するサーバにアクセスが集中することがある。そして、アクセスが集中したサーバは、要求されたデータを提供できないことがある。この場合、データを要求したサーバとその要求を受信したサーバとの間でリダイレクト処理が実行されるので、ユーザがデータを取得するまでに要する時間が長くなってしまう。すなわち、データ取引の効率が低下する。
【０００８】
本発明の１つの側面に係わる目的は、複数の通信装置を備えるデータ流通システムにおいてアクセスの集中に起因する取引効率の低下を緩和することである。
【課題を解決するための手段】
【０００９】
本発明の１つの態様の通信プログラムは、複数の通信装置が証跡を共有する分散ネットワークにおいて、前記複数の通信装置の中の１つの通信装置により実行される。この通信プログラムにより提供される方法は、前記複数の通信装置の中の第１の通信装置からデータを要求されたときに、前記データを前記第１の通信装置に送信すると共に、前記データを他の通信装置に送信する権限を前記第１の通信装置に与え、前記第１通信装置が前記データを他の通信装置に送信する権限を有することを前記証跡に記録する。
【発明の効果】
【００１０】
上述の態様によれば、複数の通信装置を備えるデータ流通システムにおいてアクセスの集中に起因する取引効率の低下が緩和される。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係わるデータ流通システムの一例を示す図である。
【図２】データ取得シーケンスの一例を示す図である。
【図３】代行送信権限を付与する方法の一例を示す図（その１）である。
【図４】代行送信権限を付与する方法の一例を示す図（その２）である。
【図５】証跡の一例を示す図である。
【図６】アクセスサーバを選択する方法の一例を示す図（その１）である。
【図７】アクセスサーバを選択する方法の一例を示す図（その２）である。
【図８】代行送信権限を利用したデータ取得シーケンスの一例を示す図である。
【図９】データを提供するサーバコンピュータの処理の一例を示すフローチャートである。
【図１０】データを取得するサーバコンピュータの処理の一例を示すフローチャートである。
【図１１】代行送信権限に基づいてデータを提供するサーバコンピュータの処理の一例を示すフローチャートである。
【図１２】サーバコンピュータの機能の一例を示す図である。
【図１３】サーバコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
図１は、本発明の実施形態に係わるデータ流通システムの一例を示す。本発明の実施形態に係わるデータ流通システム１００は、複数の拠点Ａ〜Ｄを接続するネットワーク２００を使用する。ネットワーク２００は、光ファイバ網であってもよいし、電気回線網であってもよいし、無線網であってもよいし、それらが混在していてもよい。
【００１３】
各拠点Ａ〜Ｄには、サーバコンピュータ１（１Ａ〜１Ｄ）が設けられている。サーバコンピュータ１Ａ〜１Ｄは、ネットワーク２００を介して互いに通信することができる。なお、各サーバコンピュータ１は、本発明の実施形態に係わる通信装置の一例である。
【００１４】
各拠点Ａ〜Ｄにおいて、サーバコンピュータ１には、１または複数のユーザ端末が接続され得る。ユーザ端末は、光ファイバ、電気回線、または無線リンクを介してサーバコンピュータ１に接続され得る。
【００１５】
各サーバコンピュータ１Ａ〜１Ｄは、ネットワーク２００を介して行う通信の内容を証跡に記録する。例えば、サーバコンピュータ間でデータ送信が行われたときは、送信元ノード、宛先ノード、送信されたデータのＩＤ、送信時刻などが証跡に記録される。また、証跡は、サーバコンピュータ１Ａ〜１Ｄにより共有される。すなわち、あるサーバコンピュータにより行われた処理の内容は、ネットワーク２００に接続する全サーバコンピュータに報知される。したがって、サーバコンピュータ１Ａ〜１Ｄは、同じ証跡を参照することができる。なお、証跡の共有は、例えば、ブロックチェーン技術を利用して実現してもよい。また、証跡は、ネットワーク内の全サーバコンピュータ１が閲覧可能な領域に保存されるようにしてもよい。
【００１６】
サーバコンピュータ１Ａは、図１に示すように、データＡを保持する。そして、サーバコンピュータ１Ａは、データＡをデータ流通システムに提供する。すなわち、データ流通システムに参加するユーザは、データＡを利用または取得することができる。ただし、この例では、サーバコンピュータ１Ａは、データＡをサーバコンピュータ１Ｂ〜１Ｄに配布するのではなく、データＡのメタデータをサーバコンピュータ１Ｂ〜１Ｄに配布する。メタデータは、例えば、データＡの属性および概要を記述する。
【００１７】
各サーバコンピュータ１は、ユーザから受信するデータ取得要求を処理する。即ち、サーバコンピュータ１は、ユーザから要求されたデータを自ノード内に保持するときは、そのデータをユーザに提供する。また、ユーザから要求されたデータを保持していないときは、サーバコンピュータ１は、メタデータを参照し、そのデータを保持しているサーバコンピュータにデータ取得要求を送信する。そして、サーバコンピュータ１は、他のサーバコンピュータから取得したデータをユーザに提供する。なお、サーバコンピュータ間でデータ送信が行われたときは、その通信の内容が各サーバコンピュータ１Ａ〜１Ｄの証跡に記録される。このように、データ流通システム１００は、複数のサーバコンピュータ（すなわち、通信装置）が証跡を共有する分散ネットワークにより実現される。
【００１８】
図２は、データ取得シーケンスの一例を示す。この例では、まず、サーバコンピュータ１ＣがデータＡの取得を要求する。この場合、サーバコンピュータ１Ｃは、サーバコンピュータ１Ａにデータ取得要求を送信する。そうすると、サーバコンピュータ１Ａは、データ取得要求に応じて、データＡをサーバコンピュータ１Ｃに送信する。
【００１９】
この後、サーバコンピュータ１Ｂ、１ＤがデータＡの取得を要求するものとする。この場合、サーバコンピュータ１Ｂ、１Ｄが、それぞれデータＡについてのデータ取得要求をサーバコンピュータ１Ａに送信する。そうすると、サーバコンピュータ１Ａは、各データ取得要求に応じて、データＡをそれぞれサーバコンピュータ１Ｂ、１Ｄに送信する。ただし、サーバコンピュータ１Ｂ、１Ｄがほぼ同時にデータ取得要求を送信したときは、サーバコンピュータ１Ａへのアクセスが集中し、応答が遅くなることがある。例えば、サーバコンピュータ１Ｂ、１Ｄの一方あるいは双方がデータＡを受信できるまでに要する時間が長くなることがある。図２に示す例では、サーバコンピュータ１Ｄへのデータ送信が遅延している。
【００２０】
なお、データ提供サーバ（図２では、サーバコンピュータ１Ａ）にアクセスが集中しているときは、リダイレクト処理が行われることがある。すなわち、データ提供サーバへのアクセスが実行された後、そのアクセスが他のサーバに振り分けられる。
【００２１】
本発明の実施形態に係わるデータ流通システムは、この問題を緩和するための機能を備える。具体的には、データを提供するサーバコンピュータ１は、そのデータを代行送信する権限を他のサーバコンピュータに与えることができる。
【００２２】
図３〜図４は、代行送信権限を付与する方法の一例を示す。この例では、図３（ａ）に示すように、ユーザ２ｃがデータＡの取得を要求するものとする。この場合、サーバコンピュータ１Ｃは、データＡを指定するデータ取得要求をユーザ２ｃから受信する。
【００２３】
ここで、サーバコンピュータ１Ｃは、データＡを保持していない。また、サーバコンピュータ１Ｃは、サーバコンピュータ１ＡがデータＡを保持していることを認識しているものとする。そうすると、サーバコンピュータ１Ｃは、データＡを指定するデータ取得要求をサーバコンピュータ１Ａに送信する。
【００２４】
サーバコンピュータ１Ａは、上述のデータ取得要求を受信すると、図３（ｂ）に示すように、サーバコンピュータ１ＣにデータＡを送信する。このとき、サーバコンピュータ１Ａは、サーバコンピュータ１Ｃに対して、データＡを他のサーバコンピュータに代行送信する権限を付与する。すなわち、サーバコンピュータ１Ａは、データＡを代行送信することについての依頼をサーバコンピュータ１Ｃに送信する。ここで、サーバコンピュータ１Ａは、データＡおよび代行送信の依頼を同時に送信してもよいし、それらを別々に送信してもよい。なお、以下の記載では、データＡを代行送信する権限を「代行送信権限」と呼ぶことがある。
【００２５】
サーバコンピュータ１Ａは、代行送信権限について所望の条件を設定できる。例えば、サーバコンピュータ１Ａは、代行送信権限に対して有効期限を設定できる。或いは、サーバコンピュータ１Ａは、代行送信権限に対して、データＡの転送先ノードあるいはデータＡを利用できるユーザを設定できる。
【００２６】
なお、この実施例では、データ毎に代行送信権限が設定されるが、本発明の実施形態はこの方式に限定されるものではない。すなわち、複数のデータに対して一括して代行送信権限を設定してもよい。或いは、サーバ単位で代行送信権限を設定してもよい。例えば、サーバコンピュータ１Ａがサーバコンピュータ１Ｃに対してサーバ単位で代行送信権限を与える場合、サーバコンピュータ１Ａからサーバコンピュータ１Ｃに提供された全データに対して代行送信権限が与えられる。
【００２７】
サーバコンピュータ１Ｃは、サーバコンピュータ１Ａから受信したデータＡを自ノード内の記憶装置に保存すると共に、データＡをユーザ２ｃに提供する。また、サーバコンピュータ１Ｃは、代行送信権限を承諾するか否かを決定する。例えば、サーバコンピュータ１Ｃは、空リソースの容量に応じて、代行送信権限を承諾するか否かを決定する。あるいは、サーバコンピュータ１Ｃは、サーバコンピュータ１Ａから与えられる報酬に応じて代行送信権限を承諾するか否かを決定してもよい。
【００２８】
代行送信権限を承諾するときは、サーバコンピュータ１Ｃは、代行送信権限を承諾することを表す応答メッセージをサーバコンピュータ１Ａに送信する。これにより、サーバコンピュータ１Ｃは、データＡについての代行送信権限を取得する。以降、サーバコンピュータ１Ｃは、他のサーバコンピュータからデータＡを要求されたときは、サーバコンピュータ１Ａの代わりにそのサーバコンピュータにデータＡを提供できる。
【００２９】
サーバコンピュータ１Ａは、応答メッセージを受信すると、サーバコンピュータ１ＣがデータＡの代行送信権限を有することを証跡に記録する。ここで、証跡は、上述したように、全サーバコンピュータ１Ａ〜１Ｄにより共有される必要がある。よって、サーバコンピュータ１Ａは、例えば、図４に示すように、サーバコンピュータ１ＣがデータＡの代行送信権限を有することを表す証跡情報をサーバコンピュータ１Ｂ〜１Ｄに送信する。そうすると、サーバコンピュータ１Ｂ〜１Ｄは、受信した証跡情報を自ノードの証跡に記録する。この結果、サーバコンピュータ１Ａ〜１Ｄの証跡の同期が確立される。
【００３０】
図５は、証跡の一例を示す。証跡情報としては、この実施例では、サーバコンピュータ１Ａ〜１Ｄにより実行された処理毎に、ファンクション、証跡登録サーバ、取引データ、時刻、パラメータ、処理結果が記録される。ファンクションは、処理の種別または内容を表す。証跡登録サーバは、処理を実行したサーバコンピュータを表す。取引データは、処理対象のデータを表す。時刻は、処理が実行された時刻を表す。パラメータは、処理に係わる付加情報を表す。一例としては、実行される処理の相手側のサーバコンピュータを表す。ただし、パラメータは、必要に応じて設定されるものであり、必須の情報ではない。処理結果は、処理が成功したか否かを表す。ただし、処理結果は、処理内容についてネットワーク２００内で合意が形成されたか否かを表してもよい。
【００３１】
例えば、図３（ａ）においてサーバコンピュータ１Ｃがサーバコンピュータ１Ａにデータ取得要求を送信したときは、図５に示す「処理１」に係わる証跡情報が記録される。なお、「ファンクション＝データ取得（要求）」は、データ取得処理においてデータ取得要求が送信されたことを表す。認証登録サーバはデータ取得要求の送信元を表し、パラメータはデータ取得要求の宛先を表す。
【００３２】
図３（ｂ）においてサーバコンピュータ１ＡがデータＡをサーバコンピュータ１Ｃに送信したときは、「処理２」に係わる証跡情報が記録される。「ファンクション＝データ取得（提供）」は、データ取得処理においてデータＡが提供（即ち、送信）されたことを表す。認証登録サーバはデータＡの送信元を表し、パラメータはデータＡの宛先を表す。
【００３３】
図３（ｂ）においてサーバコンピュータ１Ｃがサーバコンピュータ１ＡからデータＡを受信したときは、「処理３」に係わる証跡情報が記録される。「ファンクション＝データ取得（取得）」は、データ取得処理においてデータＡが取得（即ち、受信）されたことを表す。認証登録サーバはデータＡを取得したサーバを表し、パラメータはデータＡの送信元を表す。
【００３４】
サーバコンピュータ１Ａがサーバコンピュータ１ＣにデータＡについての代行送信権限を付与したときは、「処理４」に係わる証跡情報が記録される。「ファンクション＝データ代行権」は、代行送信権限の付与が行われたことを表す。認証登録サーバは代行送信権限を与えたサーバを表し、パラメータは代行送信権限を取得したサーバを表す。
【００３５】
上述のようにして更新される証跡は、ネットワーク２００に接続する全サーバコンピュータ１Ａ〜１Ｄにより共有される。すなわち、証跡が更新される毎に、その内容が各サーバコンピュータ１Ａ〜１Ｄに報知される。したがって、この時点で各サーバコンピュータ１Ａ〜１Ｄは、処理１〜処理４が実行されたことを認識できる。すなわち、各サーバコンピュータ１Ａ〜１Ｄは、証跡を参照することにより、サーバコンピュータ１Ａからサーバコンピュータ１ＣにデータＡが送信されたこと、及び、サーバコンピュータ１ＣがデータＡについての代行送信権限を有することを認識できる。
【００３６】
図６〜図７は、アクセスサーバを選択する方法の一例を示す。この例では、図３〜図４に示すデータ取得処理により、サーバコンピュータ１Ｃは、サーバコンピュータ１ＡからデータＡを取得して自ノード内に保持している。また、サーバコンピュータ１Ｃは、データＡを代行送信する権限を有している。さらに、証跡には、図５に示す処理１〜処理４が記録されている。
【００３７】
この後、図６（ａ）に示すように、ユーザ２ｂがデータＡの取得を要求する。即ち、サーバコンピュータ１Ｂは、データＡを指定するデータ取得要求を受信する。ここで、サーバコンピュータ１Ｂは、データＡを保持していない。また、サーバコンピュータ１Ｂは、サーバコンピュータ１ＡがデータＡを保持していることを認識しているものとする。
【００３８】
そうすると、サーバコンピュータ１Ｂは、証跡を参照し、サーバコンピュータ１Ａのアクセス状況を確認する。この例では、現在、サーバコンピュータ１Ａはアクセスされていないものとする。例えば、図５に示す「処理１」または「処理２」が記録された時刻から所定時間以上が経過しているものとする。この場合、サーバコンピュータ１Ｂは、データＡを指定するデータ取得要求をサーバコンピュータ１Ａに送信する。
【００３９】
このとき、サーバコンピュータ１Ｂは、データＡを指定するデータ取得要求をサーバコンピュータ１Ａに送信したことを証跡に記録する。すなわち、図５に示す「処理５」に係わる証跡情報が記録される。そして、「処理５」を表す証跡情報が全サーバコンピュータ１Ａ〜１Ｄに報知される。
【００４０】
また、ユーザ２ｂがデータＡの取得を要求した直後に、ユーザ２ｄもデータＡの取得を要求したものとする。ここで、サーバコンピュータ１Ｄは、データＡを保持していない。また、サーバコンピュータ１Ｄは、サーバコンピュータ１ＡがデータＡを保持していることを認識しているものとする。
【００４１】
サーバコンピュータ１Ｄは、証跡を参照し、サーバコンピュータ１Ａのアクセス状況を確認する。このとき、証跡に図５に示す「処理１」〜「処理５」が記録されている。そして、「処理５」が記録された時刻から未だ所定時間が経過していないものとする。この場合、サーバコンピュータ１Ｄは、サーバコンピュータ１Ａが、現在、アクセスされていると判定する。すなわち、サーバコンピュータ１Ｄは、サーバコンピュータ１Ａ（または、サーバコンピュータ１Ａが保持するデータＡ）にアクセスが集中していると判定する。
【００４２】
そうすると、サーバコンピュータ１Ｄは、証跡を参照し、データＡの代行送信権限を有するサーバコンピュータが存在するか否か確認する。この例では、図５に示す「処理４」として、サーバコンピュータ１Ａからサーバコンピュータ１ＣにデータＡの代行送信権限が付与されていることが記録されている。すなわち、サーバコンピュータ１Ｄは、サーバコンピュータ１ＣがデータＡの代行送信権限を有していることを認識する。したがって、サーバコンピュータ１Ｄは、図６（ｂ）に示すように、データＡを指定するデータ取得要求をサーバコンピュータ１Ｃに送信する。
【００４３】
サーバコンピュータ１Ａは、図７に示すように、サーバコンピュータ１Ｂから受信するデータ取得要求に応じて、サーバコンピュータ１ＢにデータＡを送信する。そうすると、サーバコンピュータ１Ｂは、受信したデータＡを自ノード内の記憶装置に保存するとともに、データＡをユーザ２ｂに提供する。また、この実施例では、サーバコンピュータ１Ａは、データＡの代行送信権限をサーバコンピュータ１Ｂにも付与する。
【００４４】
サーバコンピュータ１Ｃは、自ノード内の記憶装置にデータＡを保持しており、且つ、データＡの代行送信権限を有している。よって、サーバコンピュータ１Ｃは、サーバコンピュータ１Ｄから受信するデータ取得要求に応じて、サーバコンピュータ１ＤにデータＡを送信する。そうすると、サーバコンピュータ１Ｄは、受信したデータＡを自ノード内の記憶装置に保存するとともに、データＡをユーザ２ｄに提供する。
【００４５】
なお、図５に示す証跡は、サーバコンピュータ１Ａ〜１Ｄにより通信処理が実行される毎に更新される。即ち、サーバコンピュータ１Ｄがサーバコンピュータ１Ｃにデータ取得要求を送信すると、「処理６」に係わる証跡情報が記録される。サーバコンピュータ１Ａがサーバコンピュータ１ＢにデータＡを送信すると、「処理７」に係わる証跡情報が記録される。サーバコンピュータ１Ｂがサーバコンピュータ１ＡからデータＡを受信すると、「処理８」に係わる証跡情報が記録される。サーバコンピュータ１Ａがサーバコンピュータ１Ｂに代行送信権限を付与すると、「処理９」に係わる証跡情報が記録される。サーバコンピュータ１Ｃがサーバコンピュータ１ＤにデータＡを代行送信すると、「処理１０」に係わる証跡情報が記録される。サーバコンピュータ１Ｄがサーバコンピュータ１ＣからデータＡを受信すると、「処理１１」に係わる証跡情報が記録される。そして、更新された証跡は、サーバコンピュータ１Ａ〜１Ｄにより共有される。
【００４６】
図８は、代行送信権限を利用したデータ取得シーケンスの一例を示す。なお、図８に示すシーケンスは、図６〜図７に示す実施例に対応する。
【００４７】
サーバコンピュータ１Ｃは、ユーザ２ｃからデータＡを指定するデータ取得要求を受信すると、証跡を参照してサーバコンピュータ１Ａのアクセス状況を確認する。このとき、サーバコンピュータ１Ａは、他のサーバコンピュータからアクセスされていないものとする。そうすると、サーバコンピュータ１Ｃは、サーバコンピュータ１Ａにデータ取得要求を送信し、サーバコンピュータ１Ａは、その要求に応じてサーバコンピュータ１ＣにデータＡを送信する。また、サーバコンピュータ１Ａは、データＡの代行送信をサーバコンピュータ１Ｃに依頼する。サーバコンピュータ１Ｃは、この依頼を承諾するときには、サーバコンピュータ１Ａに応答メッセージを送信する。これにより、サーバコンピュータ１Ｃは、データＡを代行送信する権限を取得する。
【００４８】
なお、上述の各処理は、証跡に記録される。例えば、図５に示す「処理１」〜「処理４」が証跡に記録される。そして、更新された証跡は、各サーバコンピュータ１Ａ〜１Ｄに報知される。
【００４９】
続いて、サーバコンピュータ１Ｂは、ユーザ２ｂからデータＡを指定するデータ取得要求を受信すると、サーバコンピュータ１ＡからデータＡを取得する。ここで、サーバコンピュータ１ＢがデータＡを取得する手順は、サーバコンピュータ１ＣがデータＡを取得する手順と実質的に同じなので、説明を省略する。なお、サーバコンピュータ１Ａ、１Ｂにより実行される各処理も、証跡に記録される。例えば、図５に示す「処理５」「処理７」〜「処理９」が証跡に記録される。そして、更新された証跡は、各サーバコンピュータ１Ａ〜１Ｄに報知される。
【００５０】
サーバコンピュータ１Ｄは、ユーザ２ｄからデータＡを指定するデータ取得要求を受信すると、証跡を参照してサーバコンピュータ１Ａのアクセス状況を確認する。このとき、図５に示すように、証跡に「処理５」が記録されており、サーバコンピュータ１Ａがサーバコンピュータ１Ｂからアクセスされていることが確認される。すなわち、サーバコンピュータ１Ｄがサーバコンピュータ１Ａにデータ取得要求を送信した場合、サーバコンピュータ１Ａからの応答が遅くなるおそれがある。
【００５１】
この場合、サーバコンピュータ１Ｄは、証跡を参照し、データＡの代行送信権限を有するサーバコンピュータが存在するか否かを確認する。この例では、サーバコンピュータ１ＣがデータＡの代行送信権限を有している。よって、サーバコンピュータ１Ｄは、データＡを指定するデータ取得要求をサーバコンピュータ１Ｃに送信する。この結果、サーバコンピュータ１Ｄは、サーバコンピュータ１ＣからデータＡを取得する。
【００５２】
なお、サーバコンピュータ１Ｃ、１Ｄにより実行される各処理も、証跡に記録される。例えば、図５に示す「処理６」「処理１０」「処理１１」が証跡に記録される。そして、更新された証跡は、各サーバコンピュータ１Ａ〜１Ｄに報知される。
【００５３】
このように、各サーバコンピュータ１は、証跡を参照することにより、データ取得要求の送信先ノードのアクセス状況を確認でき、また、目的データの代行送信権限を有しているノードを認識できる。したがって、各サーバコンピュータ１は、データ提供サーバにアクセスが集中しているときは、代行送信権限を有する他のサーバにデータ取得要求を送信することができる。すなわち、データ提供サーバにアクセスが集中しているときは、そのデータ提供サーバへのアクセスが行われることなく（即ち、リダイレクト処理なしで）、データ取引に係わる負荷の分散が実現される。この結果、データ取得処理の遅延が回避または緩和される。或いは、分散型ネットワークにおいてアクセスの集中に起因する応答の劣化が緩和される。
【００５４】
図９は、データを提供するサーバコンピュータの処理の一例を示すフローチャートである。このフローチャートの処理は、例えば、図３〜図８に示すサーバコンピュータ１Ａの動作に相当する。
【００５５】
Ｓ１において、サーバコンピュータ１は、他のサーバコンピュータから送信されるデータ取得要求を待ち受ける。そして、他のサーバコンピュータから送信されるデータ取得要求を受信すると、サーバコンピュータ１の処理はＳ２に進む。なお、データ取得要求は、ユーザが要求する目的データを指定する。また、以下の記載では、データ取得要求の送信元のサーバコンピュータを「データ取得サーバ」と呼ぶことがある。
【００５６】
Ｓ２において、サーバコンピュータ１は、データ取得要求により要求された目的データを自ノード内の記憶装置から取得する。そして、サーバコンピュータ１は、取得した目的データをデータ取得サーバに送信する。
【００５７】
Ｓ３において、サーバコンピュータ１は、データ取得サーバに目的データを送信したことを証跡に記録する。なお、Ｓ３の処理は、例えば、図５に示す「処理２」に相当する。そして、サーバコンピュータ１は、更新後の証跡を、ネットワーク２００に接続される全サーバコンピュータに報知する。
【００５８】
Ｓ４において、サーバコンピュータ１は、データ取得サーバに代行送信権限を付与するか否かを決定する。例えば、代行送信権限を付与してもよいサーバコンピュータは、予め決められている。また、代行送信権限を付与するか否かは、データ毎に決められていてもよい。さらに、代行送信権限には、所望の条件（例えば、有効期限）を設定してもよい。
【００５９】
代行送信権限を付与するときは、サーバコンピュータ１は、Ｓ５において、データ取得サーバに、Ｓ２で送信した目的データについての代行送信を依頼する。なお、この依頼を受信したデータ取得サーバは、代行送信についての依頼を承諾するときは、応答メッセージを返送する。
【００６０】
Ｓ６において、サーバコンピュータ１は、データ取得サーバから応答メッセージを待ち受ける。そして、所定時間内に応答メッセージを受信すると、サーバコンピュータ１は、Ｓ７において、データ取得サーバに代行送信権限を付与したことを証跡に記録する。尚、Ｓ７の処理は、例えば、図５に示す「処理４」に相当する。そして、サーバコンピュータ１は、更新後の証跡を、ネットワーク２００に接続される全サーバコンピュータに報知する。
【００６１】
このように、サーバコンピュータ１は、データ取得サーバに目的データを送信したときは、そのデータ取得サーバに代行送信権限を付与することができる。また、データ取得サーバに代行送信権限を付与したことは、証跡に記録され、全サーバコンピュータに報知される。したがって、各サーバコンピュータ１は、各データについて代行送信権限を有するサーバコンピュータが存在するか否か、及び、代行送信権限を有するサーバコンピュータが存在する場合には、どのサーバコンピュータが代行送信権限を有するのかを知ることができる。
【００６２】
図１０は、データを取得するサーバコンピュータの処理の一例を示すフローチャートである。このフローチャートの処理は、例えば、図３〜図８に示すサーバコンピュータ１Ｂ〜１Ｄの動作に相当する。なお、このフローチャートの処理は、ユーザからデータを要求されたときに実行される。
【００６３】
Ｓ１１において、サーバコンピュータ１は、ユーザから要求された目的データが自ノード内に保存されているか否かを判定する。そして、目的データが自ノード内に保存されているときは、サーバコンピュータ１は、Ｓ１２において、その目的データをユーザに提供する。そうでないときは、サーバコンピュータ１の処理はＳ１３に進む。
【００６４】
Ｓ１３〜Ｓ１４において、サーバコンピュータ１は、ユーザから要求された目的データを保持するサーバコンピュータを特定する。なお、以下の記載では、目的データを保持するサーバを「データ提供サーバ」と呼ぶことがある。そして、サーバコンピュータ１は、証跡を参照し、データ提供サーバのアクセス状況を確認する。このとき、サーバコンピュータ１は、例えば、データ提供サーバへのアクセス頻度が所定の閾値を越えているか否かを判定する。なお、アクセス頻度は、例えば、単位時間当たりのデータ提供サーバへのデータ取得要求の数を表す。
【００６５】
データ提供サーバへのアクセス頻度が所定の閾値以下であれば、データ提供サーバにアクセスが集中していないと判定され（Ｓ１４：Ｎｏ）、サーバコンピュータ１は、Ｓ１５において、データ提供サーバにデータ取得要求を送信する。このデータ取得要求は、ユーザから要求された目的データを指定する。なお、データ提供サーバは、データ取得要求に応じて目的データを提供するものとする。
【００６６】
Ｓ１６において、サーバコンピュータ１は、データ提供サーバから目的データを受信する。Ｓ１７において、サーバコンピュータ１は、データ提供サーバから目的データを受信したことを証跡に記録する。なお、Ｓ１７の処理は、例えば、図５に示す「処理３」に相当する。そして、サーバコンピュータ１は、更新後の証跡を、ネットワーク２００に接続される全サーバコンピュータに報知する。さらに、Ｓ１８において、サーバコンピュータ１は、データ提供サーバから受信した目的データをユーザに提供する。
【００６７】
Ｓ１９において、サーバコンピュータ１は、Ｓ１６で受信した目的データについての代行送信の依頼を待ち受ける。代行送信の依頼を受信したときは、サーバコンピュータ１は、Ｓ２０において、その依頼を承諾するか否かを判定する。そして、代行送信の依頼を承諾するときは、サーバコンピュータ１は、Ｓ２１において、データ提供サーバに応答メッセージを送信する。なお、サーバコンピュータ１は、Ｓ１５でデータ取得要求を送信したときから所定時間内に代行送信の依頼を受信しないとき、又は、代行送信の依頼を承諾しないときは、Ｓ２１の処理をスキップする。
【００６８】
データ提供サーバへのアクセス頻度が所定の閾値を越えているときは、データ提供サーバにアクセスが集中していると判定され（Ｓ１４：Ｙｅｓ）、サーバコンピュータ１の処理はＳ３１に進む。Ｓ３１〜Ｓ３２において、サーバコンピュータ１は、証跡を参照し、代行送信権限を有するサーバを探す。例えば、図５に示す証跡に「処理４」が記録されているときは、サーバコンピュータ１Ａからサーバコンピュータ１Ｃに対してデータＡについての代行送信権限が付与されていることが認識される。なお、以下の記載では、目的データについて代行送信権限を有するサーバを「代行送信サーバ」と呼ぶことがある。
【００６９】
代行送信サーバが存在するときは、サーバコンピュータ１は、Ｓ３３において、代行送信サーバにデータ取得要求を送信する。このデータ取得要求は、ユーザから要求された目的データを指定する。なお、代行送信サーバは、データ取得要求に応じて目的データを提供するものとする。
【００７０】
Ｓ３４において、サーバコンピュータ１は、代行送信サーバから目的データを受信する。Ｓ３５において、サーバコンピュータ１は、代行送信サーバから目的データを受信したことを証跡に記録する。なお、Ｓ３５の処理は、例えば、図５に示す「処理１１」に相当する。そして、サーバコンピュータ１は、更新後の証跡を、ネットワーク２００に接続される全サーバコンピュータに報知する。さらに、Ｓ３６において、サーバコンピュータ１は、代行送信サーバから受信した目的データをユーザに提供する。
【００７１】
このように、サーバコンピュータ１は、証跡を参照することにより、データ提供サーバにアクセスが集中しているか否かを検出できる。また、データ提供サーバにアクセスが集中しているときは、サーバコンピュータ１は、証跡を参照することにより、目的データを提供する権限を有する代行送信サーバを特定できる。そして、サーバコンピュータ１は、データ提供サーバにアクセスが集中しているときは、データ提供サーバにアクセスすることなく、代行送信サーバから目的データを取得する。したがって、データ提供サーバへのアクセスの集中に起因する応答遅延が緩和される。
【００７２】
図１１は、代行送信権限に基づいてデータを提供するサーバコンピュータの処理の一例を示すフローチャートである。このフローチャートの処理は、例えば、図６〜図８に示すサーバコンピュータ１Ｃの動作に相当する。
【００７３】
Ｓ１の処理は、図９および図１１において実質的に同じである。すなわち、サーバコンピュータ１は、他のサーバコンピュータから送信されるデータ取得要求を待ち受ける。ただし、他のサーバコンピュータから送信されるデータ取得要求を受信すると、サーバコンピュータ１の処理はＳ４１に進む。
【００７４】
Ｓ４１において、サーバコンピュータ１は、要求された目的データについて代行送信権限を有するか否かを確認する。そして、サーバコンピュータ１は、目的データについて代行送信権限を有するときには、Ｓ２〜Ｓ３を実行する。すなわち、サーバコンピュータ１は、データ取得サーバに目的データを送信する。また、サーバコンピュータ１は、データ取得サーバに目的データを送信したことを証跡に記録する。このように、サーバコンピュータ１は、目的データについて代行送信権限を有するときは、データ取得サーバにその目的データを送信する。
【００７５】
図１２は、サーバコンピュータ１の機能の一例を示す。サーバコンピュータ１は、図１２に示すように、送受信部１１、データ流通処理部１２、代行送信権限処理部１３、証跡処理部１４、証跡分析部１５、アクセス先判定部１６、データ保存部２１を備える。尚、サーバコンピュータ１は、図１２に示していない他の機能を備えてもよい。また、サーバコンピュータ１は、本発明の実施形態に係わる通信装置の一例である。
【００７６】
送受信部１１は、ネットワーク２００に接続するためのインタフェースを提供する。また、送受信部１１は、ユーザ端末と接続するためのインタフェースも提供する。
【００７７】
データ流通処理部１２は、ユーザまたは他のサーバコンピュータから受信するアクセスを処理する。例えば、データ流通処理部１２は、ユーザから要求されたデータをデータ保存部２１から取得し、そのデータをユーザに提供する。また、ユーザから要求されたデータがデータ保存部２１に保存されていないときは、データ流通処理部１２は、そのデータを指定したデータ取得要求を他のサーバコンピュータに送信する。さらに、他のサーバコンピュータからデータ取得要求を受信したときは、データ流通処理部１２は、要求されたデータをデータ保存部２１から取得して提供する。
【００７８】
代行送信権限処理部１３は、他のサーバコンピュータに代行送信権限を付与することができる。また、代行送信権限処理部１３は、他のサーバコンピュータから与えられた代行送信権限を管理する。なお、データ流通処理部１２は、代行送信権限処理部１３と連携して、要求されたデータの代行送信を行うことができる。
【００７９】
証跡処理部１４は、サーバコンピュータ１が処理を実行したときに、その処理を表す情報を証跡に記録する。なお、証跡情報は、証跡処理部１４がアクセス可能な記憶領域に保存されている。また、証跡処理部１４は、更新した証跡を他のサーバコンピュータに報知する。すなわち、更新された証跡は、ネットワーク２００に接続する全サーバコンピュータにより共有される。
【００８０】
証跡分析部１５は、証跡を参照することにより、ネットワーク２００に接続する各サーバコンピュータにより行われた処理を把握することができる。たとえば、証跡分析部１５は、他のサーバコンピュータのアクセス状況を検出することができる。また、証跡分析部１５は、データごとに、代行送信権限を有するサーバコンピュータを検索することもできる。
【００８１】
アクセス先判定部１６は、目的データを要求すべきサーバコンピュータ（すなわち、アクセス先）を判定する機能を備える。例えば、目的データを提供するデータ提供サーバにアクセスが集中していないときは、アクセス先判定部１６は、アクセス先としてデータ提供サーバを選択する。また、データ提供サーバにアクセスが集中しており、且つ、その目的データの代行送信サーバが存在するときは、アクセス先判定部１６は、アクセス先として代行送信サーバを選択する。
【００８２】
図９〜図１１の処理は、データ流通処理部１２、代行送信権限処理部１３、証跡処理部１４、証跡分析部１５、アクセス先判定部１６により実現される。すなわち、サーバコンピュータ１が図９または図１１に示すフローチャートに従って動作するときは、Ｓ１〜Ｓ２はデータ流通処理部１２により実行され、Ｓ４〜Ｓ６またはＳ４１は代行送信権限処理部１３により実行され、Ｓ３およびＳ７は証跡処理部１４により実行される。また、サーバコンピュータ１が図１０に示すフローチャートに従って動作するときには、Ｓ１１、Ｓ１２、Ｓ１５、Ｓ１６、Ｓ１８、Ｓ３３、Ｓ３４、Ｓ３６は、データ流通処理部１２により実行される。Ｓ１３およびＳ１４は、証跡分析部１５により実行される。Ｓ３１およびＳ３２は、証跡分析部１５およびアクセス先判定部１６により実行される。Ｓ１９〜Ｓ２１は、代行送信権限処理部１４により実行される。Ｓ１７およびＳ３５は、証跡処理部１４により実行される。
【００８３】
図１３は、サーバコンピュータ１のハードウェア構成の一例を示す。サーバコンピュータ１は、プロセッサ３１、メモリ３２、記憶装置３３、Ｉ／Ｏデバイス３４、記録媒体デバイス３５、通信インタフェース３６を備える。なお、サーバコンピュータ１は、本発明の実施形態に係わる通信装置の一例である。
【００８４】
プロセッサ３１は、記憶装置３２に格納されている通信プログラムを実行することにより、サーバコンピュータ１の機能を提供することができる。即ち、プロセッサ３１は、図９〜図１１に示すフローチャートの処理、または、図８に示すシーケンス中のサーバコンピュータ１の処理を記述した通信プログラムを実行することにより、データ流通処理部１２、代行送信権限処理部１３、証跡処理部１４、証跡分析部１５、アクセス先判定部１６の機能を提供する。
【００８５】
メモリ３２は、例えば半導体メモリであり、プロセッサ３１の作業領域として使用される。記憶装置３３は、サーバコンピュータ１内に実装されていてもよいし、サーバコンピュータ１に接続されてもよい。なお、証跡情報は、メモリ３２または記憶装置３３に保存される。Ｉ／Ｏデバイス３４は、ユーザまたはネットワーク管理者の指示を受け付ける。また、Ｉ／Ｏデバイス３４は、プロセッサ３１による処理結果を出力する。記録媒体デバイス３５は、可搬型記録媒体３７に記録されている信号を読み取る。尚、上述した通信プログラムは、可搬型記録媒体３７に記録されていてもよい。通信インタフェース３６は、データ通信のためのインタフェースおよび制御情報を通信するためのインタフェースを含む。
【符号の説明】
【００８６】
１（１Ａ〜１Ｄ）  サーバコンピュータ
１１  送受信部
１２  データ流通処理部
１３  代行送信権限処理部
１４  証跡処理部
１５  証跡分析部
１６  アクセス先判定部
２１  データ保存部
３１  プロセッサ
１００  データ流通システム
２００  ネットワーク
【図１】
2020123188.tif 000003
【図２】
2020123188.tif 000004
【図３】
2020123188.tif 000005
【図４】
2020123188.tif 000006
【図５】
2020123188.tif 000007
【図６】
2020123188.tif 000008
【図７】
2020123188.tif 000009
【図８】
2020123188.tif 000010
【図９】
2020123188.tif 000011
【図１０】
2020123188.tif 000012
【図１１】
2020123188.tif 000013
【図１２】
2020123188.tif 000014
【図１３】
2020123188.tif 000015
【手続補正書】
【提出日】令和2年5月22日(2020.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の通信装置が証跡を共有する分散ネットワークにおいて前記複数の通信装置の中の１つの通信装置により実行される通信プログラムであって、
前記複数の通信装置の中の第１の通信装置からデータを要求されたときに、前記データを前記第１の通信装置に送信すると共に、前記データを他の通信装置に送信する権限を前記第１の通信装置に与え、
前記第１の通信装置が前記データを他の通信装置に送信する権限を有することを前記証跡に記録する
処理を前記通信装置に実装されるプロセッサに実行させる通信プログラム。
【請求項２】
前記第１の通信装置が前記権限を有することを前記証跡に記録する処理は、前記第１の通信装置が前記権限を承諾したことを表すメッセージを、前記通信装置が前記第１の通信装置から受信した後に実行される
ことを特徴とする請求項１に記載の通信プログラム。
【請求項３】
前記データを前記第１の通信装置に送信したことを前記証跡に記録する処理を前記プロセッサにさらに実行させる
ことを特徴とする請求項１に記載の通信プログラム。
【請求項４】
証跡を共有する複数の通信装置の中の１つの通信装置であって、
前記複数の通信装置の中の第１の通信装置からデータを要求されたときに、前記データを前記第１の通信装置に送信する第１の処理部と、
前記データを他の通信装置に送信する権限を前記第１の通信装置に与える第２の処理部と、
前記第１の通信装置が前記データを他の通信装置に送信する権限を有することを前記証跡に記録する第３の処理部と、
を備える通信装置。
【請求項５】
複数の通信装置が証跡を共有する分散ネットワークにおいて使用される通信方法であって、
前記複数の通信装置の中の第１の通信装置は、前記複数の通信装置の中の第２の通信装置に目的データを要求し、
前記第２の通信装置は、前記目的データを前記第１の通信装置に送信すると共に、前記目的データを他の通信装置に送信する権限を前記第１の通信装置に与え、
前記第２の通信装置は、前記第１の通信装置が前記目的データを他の通信装置に送信する権限を有することを前記証跡に記録する
ことを特徴とする通信方法。
【請求項６】
前記第１の通信装置は、前記第２の通信装置から与えられた権限を承諾するときは、前記第２の通信装置に応答メッセージを送信し、
前記第２の通信装置は、前記第１の通信装置から前記応答メッセージを受信した後に、前記第１の通信装置が前記権限を有することを前記証跡に記録する
ことを特徴とする請求項５に記載の通信方法。
【請求項７】
前記複数の通信装置の中の第３の通信装置は、
前記第２の通信装置のアクセス状況を確認し、
前記第２の通信装置のアクセス頻度が所定の閾値以下であるときは、前記第２の通信装置に前記目的データを要求し、
前記第２の通信装置のアクセス頻度が前記閾値を超えているときは、前記証跡に基づいて、前記第１の通信装置が前記権限を有することを検出し、前記第１の通信装置に前記目的データを要求する
ことを特徴とする請求項５に記載の通信方法。