図1は、実施形態にかかる通信方法の例を説明する図である。ケースC1に示す状態では、通信装置10a〜10fの6台の通信装置10が1つのネットワークG1に属している。ネットワークに属している通信装置10の間では、通信装置10a〜10fのいずれかを介して取得可能なデータのメタデータを、ブロックチェーン技術の分散台帳を用いて共有しているものとする。メタデータの正当性やメタデータおよびデータへのアクセスの可否は、分散台帳を用いて確認可能である。
分散台帳を共有するネットワークでは、分散台帳に記録される情報の量が膨大になると、個々の通信装置10が分散台帳の保持のために使用するメモリの容量が大きくなる。このため、予め、ネットワークを分割する条件と、ネットワークの分割で得られる複数の分割ネットワークのいずれに通信装置10が属するかを決定するためのルールを、各通信装置10が保持しているとする。
各通信装置10は、図1のフローチャート中のステップS1に示すように、ネットワークを分割する条件が発生しているかを、適宜、判定する。ネットワークを分割する条件が発生するまで、通信装置10は待機する(ステップS1でNo)。
ネットワークを分割する条件が発生すると、ネットワーク中の通信装置10は、個々に、予め設定されている同一ルールを用いて、分割ネットワークを計算する(ステップS2)。設定されているルールには、ネットワークから生成される分割ネットワークの数や、各分割ネットワークに含まれる通信装置10の数などの情報が含まれうる。通信装置10は、分割ネットワークの計算により、自装置がいずれの分割ネットワークに属するかを求めることができる。また、各通信装置10は、ネットワーク中の他の通信装置10についても、いずれの分割ネットワークに属するかを求めても良い。
各通信装置10は、計算結果に応じた分割ネットワークに参加すると共に、参加している分割ネットワーク中でメタデータを共有する(ステップS3)。このとき、メタデータの共有のために、分割ネットワーク中で分散台帳が用いられても良い。個々の通信装置10は、個別に分割ネットワークに含まれる装置を決定するが、いずれの装置も同一のルールに従って計算しているので、いずれの通信装置10でも分割ネットワークの計算結果は同じになる。
ケースC2は、分割ネットワークの計算例である。図1の例では、通信装置10a〜10cはネットワークG2に属し、通信装置10d〜10fはネットワークG3に属している。ケースC2のように分割ネットワークが計算された後は、通信装置10a〜10cの間で、通信装置10a〜10cのいずれかを介して取得可能なデータのメタデータが共有される。同様に、通信装置10d〜10fの間で、通信装置10d〜10fのいずれかを介して取得可能なデータのメタデータが共有される。
従って、実施形態にかかる通信方法を用いたシステムでは、各通信装置が保持するメタデータの容量が膨大になることにより、通信装置10のメモリ容量を圧迫するおそれがない。分割ネットワーク内では、共有されているメタデータに対応したデータの送受信が可能である。なお、後述するように、分割ネットワーク間をまたいだデータの送受信も可能である。
<装置構成>
図2は、通信装置10の構成の例を説明する図である。通信装置10は、通信部11、制御部20、記憶部30を備える。記憶部30は、分散台帳31、グループ生成条件32、グループテーブル34、メタデータDB35、ネットワークグループ情報36を記憶する。記憶部30は、さらに、対応テーブル33か設定テーブル37のいずれかを記憶する。メタデータデータベース(DB)35は、取得可能なデータのメタデータを保持する。分散台帳31は、分割前のネットワーク中、または、分割により得られた分割ネットワーク(ネットワークグループ)中で、メタデータを共有するために使用され、メタデータに対するアクセスおよびデータに対するアクセスの履歴を保持する。メタデータが登録される際や、登録後のアクセス、データのアクセスの際には、適宜、検証が行われ、分散台帳31にアクセス結果が記録されるので、分散台帳31を用いることにより、メタデータ登録からデータのアクセスまでの一連の動作の証跡が確認できる。
グループ生成条件32は、ネットワークグループ(分割ネットワーク)を生成する際の条件である。グループ生成条件32には、例えば、ネットワークグループを生成する際のネットワーク中の通信装置10の総数、生成するネットワークグループの数などが含まれる。対応テーブル33は、メタデータに対応するデータを識別する識別情報と、そのメタデータを保持する通信装置10が属するネットワークグループを対応付ける情報である。対応テーブル33は、後述するように、メタデータの取得の際に動的に生成される。通信装置10は、対応テーブル33を生成する代わりに、設定テーブル37を保持しても良い。設定テーブル37は、各ネットワークグループについて、そのネットワークグループ中の通信装置10が保持するメタデータの設定に使用される。設定テーブル37には、ネットワークグループごとに、そのネットワークグループが保持するメタデータに対応するデータの識別情報の範囲が設定される。
グループテーブル34は、ネットワークに含まれる通信装置10の情報である。各通信装置10は、ブロックチェーンネットワークに参加しているので、ブロックチェーンネットワークにアクセスする際の電子証明書等を保持している。また、新たにブロックチェーンネットワークへの参加が認められた通信装置10の情報は、既にブロックチェーンネットワークに参加している通信装置10に通知される。このため、各通信装置10は、自装置が属するネットワークに含まれる他の通信装置10の情報を、グループテーブル34として保持している。グループテーブル34は、例えば、ネットワーク中に含まれる通信装置10の識別情報のリストであっても良い。ネットワークグループ情報36は、分割により得られたネットワークグループの各々を特定可能な情報である。ネットワークグループ情報36の例は後述する。
制御部20は、決定部21、検証部22、共有制御部23、取得部24を有する。決定部21は、グループ生成条件32を用いて、自装置がどの分割ネットワークに属するかを決定する。決定部21は、また、ネットワーク中の他の通信装置10についても、いずれの分割ネットワークに属するかを計算しても良い。検証部22は、得られた計算結果の検証処理を行う。検証部22は、メタデータに対するアクセスやデータに対するアクセスについての検証処理も行う。共有制御部23は、分割ネットワーク中でメタデータを共有するための制御を行う。取得部24は、通信装置10に接続する端末や他の通信装置10などから、メタデータやデータの取得が要求されると、要求されたデータの取得処理を行う。
図3は、通信装置10のハードウェア構成の例を説明する図である。通信装置10は、プロセッサ101、メモリ102、バス103、ネットワーク接続装置104を有する。プロセッサ101は、任意の処理回路であり、例えば、CPU(Central Processing Unit)とすることができる。プロセッサ101は、メモリ102をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ102には、RAM(Random Access Memory)が含まれ、さらに、ROM(Read Only Memory)等の不揮発性のメモリも含まれる。メモリ102は、プログラムやプロセッサ101での処理に使用されるデータを格納する。ネットワーク接続装置104は、ネットワークを介した他の装置との通信に使用される。バス103は、プロセッサ101、メモリ102、ネットワーク接続装置104を、互いにデータの入出力が可能になるように接続する。
通信装置10において、メモリ102は記憶部30として動作する。プロセッサ101は、制御部20として動作する。さらに、ネットワーク接続装置104は、通信部11として動作する。
<第1の実施形態>
以下、第1の実施形態を、ネットワークの分割と、分割されたネットワークを介した通信処理に分けて説明する。以下の説明では、通信装置10は、ゲートウェイ装置として動作する。例えば、通信装置10は、データの提供元のサーバを含むネットワークのゲートウェイ(GW)装置として動作しても良いし、また、データを取得するユーザの端末が含まれるネットワークのゲートウェイ装置として動作しても良い。
(1)ネットワークの分割
図4は、ネットワークの分割方法の例を説明するフローチャートである。図4は、ネットワークの分割処理の概要を説明している。決定部21は、ネットワークの状態がグループ生成条件32に設定されているネットワークグループの生成条件を満たしているかを判定する(ステップS11)。ネットワークの状態がネットワークグループの生成条件を満たしていない場合、決定部21は、ネットワークの分割処理を終了する(ステップS11でNo)。
ネットワークの状態がネットワークグループの生成条件を満たしている場合、決定部21は、適宜、グループ生成条件32の情報を用いて、ネットワークグループの生成処理を行う(ステップS11でYes、ステップS12)。その後、個々のネットワークグループにおいて、各ネットワークグループ内の通信装置10を介して取得可能なメタデータを管理するために、メタデータ管理分散処理が行われる(ステップS13)。
図5は、ネットワークグループの生成方法の例を説明する図である。図5は、図4のステップS12の詳細である。図5の例では、グループ生成条件32として、1つのネットワークグループに含められる通信装置10の数(Ng)が設定されているものとする。この場合、ネットワーク中の通信装置10の総数が1つのネットワークグループに含められる通信装置10の数(Ng)を上回ると、決定部21はネットワークグループの生成条件が満たされたと判定する。
決定部21は、グループテーブル34に含まれている通信装置10の総数を求めることにより、ネットワーク中に含まれる全ての通信装置10の数(Num)を取得する(ステップS21)。決定部21は、ネットワーク中に含まれる全ての通信装置10の数(Num)を、1つのネットワークグループに含められる通信装置10の数(Ng)で割り算することにより、生成するネットワークグループ数を計算する(ステップS22)。なお、Num/Ngが整数ではない場合、決定部21は、小数点以下を切り捨てる。決定部21は、ネットワークグループ数分のグループの識別子を決定することにより、グループ生成を行う(ステップS23)。なお、ステップS23の時点では、各グループには通信装置10が割り当てられていない。
次に、決定部21は、グループテーブル34に含まれている全ての通信装置10を、通信装置10に割り当てられている識別子(GW ID)の昇順にソーティングする(ステップS24)。決定部21は、GW IDの順に、各通信装置10をネットワークグループに割り当てる(ステップS25)。
なお、図5に示すフローチャートは処理の一例である。例えば、ステップS23とS24の順序は互いに変更されても良い。ネットワークグループ数の計算方法も、例えば、Num/Ngの値の小数点を切り上げるなど、他の方法に変更され得る。また、通信装置10の識別子をソーティングする順序が降順に変更されるなど、実装に応じて処理が変更され得る。
図5のケースC11は、ネットワークグループの生成例である。ケースC11に示すグループテーブル34には、GW A、GW B、GW C、GW D、GW E、GW F、GW Gの7台の通信装置10のGW IDが含まれている。なお、ケースC11中のグループテーブル34では、通信装置10は、IDを用いて昇順にソーティングされている。決定部21は、グループテーブル34を用いて、ネットワーク中の通信装置10の数(Num)は7であると認識する。ここで、1つのネットワークグループに含められる通信装置10の数(Ng)は3に設定されているとする。すると、決定部21は、Num/Ng=7/3を計算し、小数点以下を切り捨てることにより、ネットワークグループ数を2に決定する。
決定部21は、ネットワークグループの識別子として、Group X、および、Group Yを決定したとする。次に、決定部21は、通信装置10をネットワークグループに割り当てる。ケースC11の例では、決定部21は、GW Aで識別される通信装置10をGroup Xに割り当て、さらに、GW Bで識別される通信装置10をGroup Yに割り当てている。同様に、GW C〜GW Gの各々で識別される通信装置10についてもネットワークグループへの割り当てを行う。各ネットワークグループへの割り当て結果を、GW Listに示す。ケースC11では、GW A、GW C、GW E、GW Gの各々の識別子で識別される通信装置10が、Group Xに割り当てられている。同様に、GW B、GW D、GW Fの各々の識別子で識別される通信装置10が、Group Yに割り当てられている。ネットワークグループの識別子、および、各ネットワークグループに含まれる通信装置10の情報は、ネットワークグループ情報36として保持される。従って、ネットワークグループの計算が終わった段階では、ネットワークグループ情報36は、ネットワークグループの計算結果である。
ところで、ネットワークの分割によるネットワークグループを生成するための計算は、各通信装置10において個別に行われている。すなわち、ネットワーク中の各通信装置10が、同じグループ生成条件32に基づいて、別個にネットワークグループを計算している。いずれの通信装置10でも同じグループ生成条件32に基づいて処理が行われるので、ネットワークグループの計算結果は、いずれの通信装置10でも同じになると予想されるが、実際に同じ計算結果が得られている確証はない。そこで、検証部22は、適宜、通信部11を用いて、ネットワーク中の他の通信装置10との間でネットワークグループの計算結果を送受信し、ネットワークグループの計算結果が他の通信装置10との間で同じであるかの検証を行う。
なお、以下の説明では、動作を行っている通信装置10を明確にするために、符号の最後に動作を行っている通信装置10に割り当てられている符号の末尾のアルファベットを記載することがある。例えば、決定部21aは、通信装置10aの決定部21である。
図6は、検証処理の例を説明する図である。図6を参照しながら、通信装置10aがリーダGWとして最初にネットワークグループを計算する場合の処理の例を説明するが、リーダGWは任意に選択され得る。まず、通信装置10a中の決定部21aは、グループテーブル34aやグループ生成条件32aを用いて、生成するネットワークグループの識別情報と、各ネットワークグループへの通信装置10の割り当てを計算する(ステップS201)。検証部22aは、決定部21aで得られた計算結果を、ネットワーク中の他の通信装置10に送信する(ステップS202、S203)。図6では、図を見やすくするため、通信装置10c〜10fを図示していないが、ネットワークグループの計算結果は、通信装置10b〜10gの全てに送信されているものとする。通信装置10aから計算結果を受信した各通信装置10は、受信した情報を、他の通信装置10に転送する。
通信装置10bでは、検証部22bが、通信装置10aがブロックチェーンネットワークの正規ユーザであるかの判定や、通信装置10aから送信された情報が正しいかについてのチェックを行う(ステップS205)。なお、ステップS205において、通信装置10aから送信された情報が正しいかをチェックする際に、通信装置10b中の決定部21bは、グループテーブル34bやグループ生成条件32bを用いて、ネットワークグループを計算する。検証部22bは、通信装置10aから送信された計算結果が決定部21bの計算結果と一致するかを判定する。両者が一致した場合、検証部22bは、通信装置10aから送信された計算結果が正しいと判定する。他の通信装置10においても、通信装置10bと同様の処理により、通信装置10aでの計算結果の検証が行われる(ステップS204、S206)。
通信装置10a〜10gの検証部22は、得られた検証結果を、ネットワーク中の他の通信装置10に送信する。ここで、各通信装置10が、自装置以外の通信装置10に通信装置10aでの計算結果と自装置の計算結果が一致するかなどのチェック結果を送信するため、検証結果の送受信が終わった段階では、ネットワーク中の全ての通信装置10は、自装置以外でのチェック結果を取得することができる。
通信装置10aでは、検証部22aは、決定部21aで得られたネットワークグループの計算結果が、ネットワーク中の所定の割合以上の通信装置10で得られた結果と一致しているかを判定する。検証部22aは、通信装置10aで得られたネットワークグループの計算結果が、ネットワーク中の所定の割合以上の通信装置10で得られた結果と一致していると判定したとする。すると、決定部21aは、計算結果に基づいて、ネットワークグループを設定する(ステップS207)。設定されるネットワークグループは、現在、通信装置10aがネットワークグループ情報36aとして保持している情報の通りである。さらに、共有制御部23aは、メタデータDB35aから、通信装置10aが属していないネットワークグループで保持される分のメタデータを削除し、削除の履歴を分散台帳31aのブロックチェーンに記録する(ステップS208)。
通信装置10bでは、検証部22bは、決定部21bの計算結果が通信装置10aで得られた計算結果と同じであると判定しているとする。さらに、検証結果の送受信により、通信装置10aで得られた計算結果と同じネットワークグループが、ネットワーク中の所定の割合以上の通信装置10において得られていると判定したとする。すると、検証部22bは、決定部21bでの計算結果に基づいてネットワークグループを設定することを決定し、ネットワークグループを設定する(ステップS209)。さらに、共有制御部23bは、通信装置10bが属するネットワークグループで管理しないメタデータを、メタデータDB35bから削除し、削除の履歴を分散台帳31bのブロックチェーンに記録する(ステップS210)。他の通信装置10でも同様の処理が行われる。
なお、一部の通信装置10で異なる計算結果が得られた場合、検証結果の送受信により、ネットワーク中の所定の割合以上の通信装置10で得られている計算結果が採用される。例えば、決定部21gでの計算結果は、通信装置10aでの計算結果と異なっていたとする。しかし、検証部22gは、検証結果の送受信により、通信装置10aで得られた計算結果と同じネットワークグループが、ネットワーク中の所定の割合以上の通信装置10において得られていると判定したとする。すると、検証部22gは、通信装置10aで得られた計算結果と同じネットワークグループを設定することを決定する(ステップS211)。この場合、ネットワークグループ情報36gには、決定部21gでの計算結果が保持されているため、設定されるネットワークグループとは異なる情報がネットワークグループ情報36gに含まれている。そこで、検証部22gは、ネットワークグループの設定内容に合わせて、ネットワークグループ情報36gを更新する。従って、更新処理が終わった段階では、ネットワークグループ情報36gの内容は、実際に設定されるネットワークグループの通りである。さらに、共有制御部23gは、設定されるネットワークグループのうち、通信装置10gが含まれないネットワークグループで管理されるメタデータを、メタデータDB35gから削除し、削除の履歴を分散台帳31bに記録する(ステップS212)。
図6を参照しながら説明したように、第1の実施形態にかかる方法では、個々の通信装置10がネットワークグループを計算し、計算結果を互いに検証しあう。従って、特定の装置でネットワークグループが生成される場合とは異なり、ネットワーク中の所定の割合以上の通信装置10が検証したネットワークグループを生成することができる。
図7は、第1の実施形態にかかるメタデータの管理方法の例を説明する図である。共有制御部23は、ネットワークグループが確定すると、自装置が所属するネットワークグループに含まれている通信装置10を特定する(ステップS31)。共有制御部23は、ステップS31で特定した通信装置10から公開されているメタデータを、管理対象に設定する(ステップS32)。さらに、共有制御部23は、自装置が所属するネットワークグループの通信装置10から公開されているメタデータ以外のメタデータを、管理対象外に設定する(ステップS33)。共有制御部23は、ステップS33で管理対象外に設定したメタデータをメタデータDB35から削除すると共に、メタデータの削除の記録を分散台帳31に書き込む。
図8は、ネットワークグループの生成例を説明する図である。ケースC21では、ネットワークG11中に、通信装置10a〜10lの12台の通信装置10が含まれている。このため、各通信装置10は、通信装置10a〜10lの12台の通信装置10のいずれかを介して取得可能なデータのメタデータを、メタデータDB35に保持している。
ケースC22は、ネットワークG11が、ネットワークグループA〜Cに分割された場合を示す。ネットワークグループAには、通信装置10a〜10dが含まれている。ここで、通信装置10a〜10dの各装置では、ネットワークグループA中の4台の通信装置10で管理しているメタデータをメタデータDB35に保持すれば良い。このため、メタデータDB35の大きさが、ネットワークG11に参加していたときに比べて小さくなっている。
同様に、ネットワークグループBには、通信装置10e、10f、10k、10lが含まれており、ネットワークグループCには、通信装置10g〜10jが含まれている。このため、ネットワークグループBとネットワークグループCのいずれに属する通信装置10でも、ネットワークG11に参加していたときに比べてメタデータDB35の容量が小さくなっている。
(2)分割されたネットワークを介した通信処理
以下、ネットワークグループに分割された状態での通信処理について、メタデータの登録、メタデータの検索、データの取得に分けて説明する。
(2a)メタデータの登録
図9は、第1の実施形態にかかるメタデータの管理方法の例を説明するフローチャートである。図9の例では、ネットワークは、ネットワークグループX、A、Bの3つに分割されている。通信装置10aと通信装置10bは、ネットワークグループXに参加している。また、通信装置10cと通信装置10dがネットワークグループAに参加しており、通信装置10eと通信装置10fがネットワークグループBに参加している。さらに、データを提供する提供者のサーバ2は、通信装置10aに接続するものとする。
サーバ2は、提供可能なデータのメタデータの公開申請を通信装置10aに要求する(ステップS41)。ここで、提供可能なデータのメタデータには、提供可能なデータの概要、メタデータおよびデータに対するアクセス権の設定、データを取得する際のアクセス先となるローカルアドレスが含まれる。ローカルアドレスには、ローカルサーバのIP(Internet Protocol)アドレスおよびデータへのパスが含まれる。
通信装置10aの通信部11aは、データの公開申請を受信すると、共有制御部23aに出力する。共有制御部23aは、提供されるデータを一意に特定可能なデータIDを生成する(ステップS42)。データIDの生成方法は任意である。例えば、共有制御部23aは、提供されるデータのハッシュ値を、データIDとすることができる。共有制御部23aは、サーバ2から受信した情報とデータIDを、予め設定されているメタデータのフォーマットに設定することにより、メタデータを生成する。共有制御部23aは、生成したメタデータの情報を用いて分散台帳31aを更新する。
共有制御部23aは、得られたメタデータをネットワークグループX中の他の通信装置10に送信するとともに、分散台帳31の情報の情報を同期させる(ステップS43)。この処理により、通信装置10bにおいても、ステップS41でサーバ2から申請されたデータのメタデータに対する履歴が分散台帳31bに登録される。
さらに、通信装置10aの共有制御部23aは、得られたメタデータをメタデータDB35aに登録する(ステップS44)。図9の例では、メタデータとして、サーバ2から提供されるデータのデータID、アクセス先のGWのIPアドレス、データ概要、アクセス権が記録される。ここで、アクセス先のGWは、サーバ2が接続する通信装置10であるので、通信装置10a自身に割り当てられたIPアドレスである。
通信装置10bにおいて、共有制御部23bは、通信装置10aから受信したメタデータをメタデータDB35bに登録する。ここで、メタデータDB35bにも、提供されるデータのデータID、アクセス先のGWである通信装置10aのIPアドレス、データ概要、アクセス権が記録される(ステップS45)。
通信装置10aの共有制御部23aは、アクセス先として通信装置10a自身のIPアドレスを含めたメタデータを他の装置に通知することにより、サーバ2のアドレスを他の装置に対して秘匿化している。しかし、通信装置10aはサーバ2から提供データを取得するためにサーバ2の情報を使用するので、共有制御部23aは、サーバ2のローカルアドレスをデータIDに対応付けて登録する(ステップS46)。
一方、ネットワークグループAまたはネットワークグループBに属する通信装置10c〜10fに対しては、サーバ2から提供可能なデータのメタデータは通知されない。このため、通信装置10c〜10fは、サーバ2から提供可能なデータのメタデータを保持しなくてすむ。
なお、図9は処理の一例であり、処理は実装に応じて変更され得る。例えば、ステップS44の処理はステップS43の処理の前に行われても良く、また、ステップS43とS44の処理が並行して行われても良い。
図9に示すように、ネットワークグループに分割されると、メタデータはネットワークグループごとに登録や管理が行われる。従って、ネットワークグループXに属する通信装置10aに接続するサーバ2から提供可能なデータの情報が通知されると、通知された情報から生成されるメタデータは、ネットワークグループXに属する通信装置10に保持される。しかし、ネットワークグループXに属する通信装置10aに接続するサーバ2から提供可能なデータのメタデータは、ネットワークグループX以外のネットワークグループに属する通信装置10には保持されない。このため、ネットワークグループを生成することにより、個々の通信装置10が管理するメタデータの量を減らすことができ、通信装置10にかかる負荷を軽減できる。
(2b)メタデータの検索
図10は、第1の実施形態にかかるメタデータの参照方法の例を説明するシーケンス図である。図10の例でも、ネットワークは、ネットワークグループX、A、Bに分割されているものとする。通信装置10aと通信装置10bはネットワークグループXに参加し、通信装置10cと通信装置10dはネットワークグループAに参加しているとする。また、通信装置10eと通信装置10fは、ネットワークグループBに参加している。さらに、データを利用しようとするユーザの端末4は、通信装置10bに接続しているものとする。
データを利用しようとするユーザの端末4から、端末4が利用可能なデータについての情報を要求するメタデータリクエストが送信されたとする(ステップS51)。なお、このとき、メタデータリクエストと共に、端末4に対して発行されている電子証明書も、端末4から送信される。
通信装置10bの通信部11bは、メタデータリクエストと電子証明書を受信すると、取得部24bに出力する。取得部24bは、電子証明書を用いて、端末4がネットワークにアクセス可能な正規のユーザであるかと、メタデータに対するアクセス権があるかを判定する(ステップS52)。例えば、メタデータDB35bに保持されているいずれかのメタデータのアクセスが端末4に許可されている場合、取得部24bは、端末4にメタデータに対するアクセス権があると判定する。なお、端末4がアクセス可能なデータに対するメタデータには、メタデータ中のアクセス権で端末4が指定されている。
取得部24bは、端末4から送信されたメタデータリクエストと電子証明書を、適宜、通信部11bを用いて、ネットワークグループX中の他の通信装置10に送信して、端末4が正規ユーザであるかとアクセス権の有無についての検証を要求する。このため、通信装置10aにおいても、端末4に対するアクセス権などの検証が行われる(ステップS52)。
図10の例では、ネットワークグループXに含まれる通信装置10の所定の割合以上において、端末4が正規ユーザであり、メタデータに対するアクセス権があると判定されたとする。すると、取得部24bは、メタデータDB35bから、端末4がアクセス可能なデータに対するメタデータを抽出する。なお、メタデータDB35bから抽出されるメタデータは、ネットワークグループXで管理されているメタデータであり、他のネットワークグループで管理されているメタデータは含まれない。そこで、取得部24bは、ネットワークグループ情報36bを参照することにより、ネットワークグループX以外のネットワークグループ中の通信装置10に、メタデータリクエストを転送する(ステップS53)。このとき、取得部24bは、ネットワークグループAとネットワークグループBの各々に対して、ネットワークグループ情報36bを用いて、メタデータリクエストの転送先を選択する。図10の例では、取得部24bは、メタデータリクエストの転送先として、ネットワークグループAから通信装置10cを選択し、ネットワークグループBから通信装置10eを選択している。
通信装置10cの取得部24cは、通信部11cを介してメタデータリクエストを受信すると、端末4がネットワークグループAで保持されているメタデータに対するアクセス権を有するかを判定する(ステップS54)。メタデータDB35cに保持されているいずれかのメタデータのアクセスが端末4に許可されている場合、取得部24cは、端末4がネットワークグループAで保持されているメタデータに対するアクセス権を有すると判定する。取得部24cは、メタデータリクエストを、適宜、通信部11cを介して、ネットワークグループA中の他の通信装置10に送信して、端末4のメタデータへのアクセス権の有無についての検証を要求する。このため、通信装置10dにおいても、端末4のアクセス権に関する検証が行われる(ステップS54)。ネットワークグループAに含まれる通信装置10の所定の割合以上において、端末4がネットワークグループAで保持されているメタデータに対するアクセス権を有すると判定されたとする。すると、取得部24cは、メタデータDB35cから、端末4がアクセス可能なデータに対するメタデータを抽出し、リクエスト結果として、通信装置10bに送信する(ステップS55)。
ネットワークグループB中の通信装置10eにおいても、ステップS54、S55を参照しながら説明した処理と同様の処理が行われる(ステップS56、S57)。このため、ネットワークグループBに保持されているメタデータのうち、端末4がアクセス可能なデータも、通信装置10bに送信される。
通信装置10bの取得部24bは、他のネットワークグループ中の通信装置10から受信したリクエスト結果と、取得部24bがメタデータDB35bから抽出したメタデータを統合して、統合リクエスト結果を生成する(ステップS58)。統合リクエスト結果の生成の処理の詳細については図11を参照しながら説明する。取得部24bは、得られた統合リクエスト結果を、端末4に送信する(ステップS59)。
図10を参照しながら説明したように、ネットワークが複数のネットワークグループに分割された後でメタデータが端末4から要求されると、各ネットワークグループで端末4のアクセス可能なメタデータが検索され、全ての検索結果が端末4に通知される。このため、実施形態にかかる方法では、端末4の接続先の通信装置10が属するネットワークグループ以外のネットワークグループで保持されているメタデータの情報も、端末4に提供される。
図11は、リクエスト結果処理の例を説明する図である。他のネットワークグループ中の通信装置10からリクエスト結果を受信すると、取得部24は、ループ端L1とL2で挟まれたループ処理を行う。以下、ループ端L1とL2で挟まれたループ処理のことを「メタデータ処理ループ」と記載することがある。取得部24は、取得した全てのメタデータに対して処理を行ったかを判定する(ループ端L1)。取得した全てのメタデータに対して処理を行っていない場合、取得部24は、メタデータに記載されているデータIDとGWアドレスの関係を対応テーブル33に記憶する(ループ端L1でNo、ステップS61)。例えば、1番目の処理対象のメタデータに、データID=Xxxx、および、GWアドレス=アドレスAという情報が含まれているとする。すると、取得部24は、データID=Xxxxという情報を、GWアドレス=アドレスAという情報に対応付けて、対応テーブル33に格納する。さらに、2番目の処理対象のメタデータに、データID=Yyyy、および、GWアドレス=アドレスDという情報が含まれているとする。この場合も、取得部24は、データID=Yyyyに対応付けて、GWアドレス=アドレスDという情報を対応テーブル33に格納する。このため、図11に示す対応テーブル33が得られる。
ステップS61の処理が終わると、取得部24は、取得したメタデータからGWアドレスを削除する(ステップS62)。ステップS62の処理により、メタデータに概要が記録されているデータの提供元に接続可能な通信装置10のアドレスを、端末4に対して秘匿化できる。取得したメタデータのうち、未処理のメタデータが残っている間、メタデータ処理ループの処理が繰り返される(ループ端L2)。
取得した全てのメタデータに対してメタデータ処理ループ中の処理を行うと、取得部24は、処理後の複数のメタデータをリスト化することにより、統合リクエスト結果を生成する(ステップS63)。取得部24は、統合リクエスト結果を、メタデータリクエストを送信した利用者の端末4に送信する(ステップS64)。
図11を参照しながら説明した処理により、データの提供元が接続する通信装置10の情報を端末4に秘匿化しつつ、端末4が利用可能なデータの各々についての概要をリスト化した統合リクエスト結果を端末4に送信できる。
(2c)データの取得
図12は、第1の実施形態にかかるデータの取得方法の例を説明するシーケンス図である。図12を参照しながら、通信装置10bに接続している端末4がデータID=Yyyyで識別されるデータを取得する場合に行われる処理の例を説明する。なお、アドレスDは、通信装置10dに割り当てられたIPアドレスであるとする。
統合リクエスト結果を取得した端末4のユーザは、統合リクエスト結果に含まれているデータ概要を用いて、データID=Yyyyで識別されるデータを取得することを決定したとする。端末4のユーザの操作により、端末4からデータID=Yyyyを含むデータリクエストが送信される(ステップS71)。なお、このとき、データリクエストと共に、端末4に対して発行されている電子証明書も通信装置10bに送信される。
通信装置10bの取得部24bは、通信部11bを介してデータリクエストを受信する。取得部24bは、データリクエストに含まれているデータIDをキーとして、対応テーブル33bを検索する。対応テーブル33bは図11に示す通りであるとする。取得部24bは、データID=Yyyyに対して、GWアドレス=アドレスDが対応付けられていることを特定する。そこで、取得部24bは、アドレスDが割り当てられている通信装置10(通信装置10d)に、データリクエストを転送する(ステップS72)。このとき、端末4から送信された電子証明書も、データリクエストと共に通信装置10dに転送される。さらに、取得部24bは、データリクエストの送信元が端末4であることを、データIDに対応付けて記憶する。
通信装置10dの取得部24dは、通信部11dを介して、メタデータリクエストと電子証明書を取得する。取得部24dは、データリクエストの転送元が通信装置10bであることを、データIDに対応付けて記憶する。さらに、取得部24dは、電子証明書を用いて、端末4がネットワークにアクセス可能な正規のユーザであるかと、データID=Yyyyで識別されるデータに対するアクセス権があるかを判定する(ステップS73)。データID=Yyyyで識別されるデータに対するアクセス権があるかは、データID=Yyyyを含むメタデータにおいて、アクセスが端末4に許可されているかによって判定される。
取得部24dは、メタデータリクエストと電子証明書を、適宜、通信部11dを用いて、ネットワークグループA中の他の通信装置10に送信して、端末4が正規ユーザであるかとアクセス権の有無についての検証を要求する。このため、通信装置10cにおいても、端末4に対するアクセス権などの検証が行われる(ステップS73)。図12の例では、ネットワークグループAに含まれる通信装置10の所定の割合以上において、端末4が正規ユーザでありデータID=Yyyyで識別されるデータに対するアクセス権があると判定されたとする。
取得部24dは、メタデータ中に通信装置10d自身のアドレスが記録されていることから、通信装置10dに接続する装置からデータID=Yyyyで識別されるデータを取得できると判定する。取得部24dは、データID=Yyyyに対応付けて記憶しているローカルアドレスに、データリクエストを送信する(ステップS74)。
サーバ2は、データリクエストを受信すると、データリクエストの宛先のローカルアドレスに対応付けられたデータを、データリクエストに対する応答で送信するデータとする。ここで、ローカルアドレスには、ローカルサーバ(サーバ2)のアドレスの他に、データへのパスが含まれている。このため、ステップS74で送信されたデータリクエストに応答して送信する対象に選択されたデータは、データID=Yyyyで識別されるデータとなる。サーバ2は、データリクエストに対する応答で送信する対象として特定したデータを、データリクエストの送信元である通信装置10dに送信する(ステップS75)。
通信装置10dの取得部24dは、サーバ2から受信したデータの転送先を、データIDを用いて特定する。ここでは、データID=Yyyyのデータの転送先は、データリクエストの転送元の通信装置10bである。そこで、取得部24dは、データID=Yyyyで識別されるデータを通信装置10bに送信する(ステップS76)。
通信装置10bの取得部24bは、通信装置10dから受信したデータの転送先を、データIDを用いて特定する。ここでは、データID=Yyyyのデータに対するリクエストが端末4から送信されているので、データID=Yyyyの転送先は端末4である。そこで、取得部24bは、データID=Yyyyで識別されるデータを端末4に送信する(ステップS77)。
図12を参照しながら説明したように、ネットワークが複数のネットワークグループに分割された後でデータが端末4から要求されると、通信装置10は、メタデータの検索の際に作成してある対応テーブル33を用いて、データの要求先を特定できる。このため、実施形態にかかる方法では、端末4の接続先の通信装置10が属するネットワークグループ以外のネットワークグループで保持されているデータも、端末4に提供される。
<第2の実施形態>
第1の実施形態では、ネットワークグループに分類された各通信装置10が、自装置が属するネットワークグループ中のいずれかの通信装置10を介して取得可能なデータのメタデータを保持する場合について説明した。しかし、メタデータが保持されるネットワークグループは、そのメタデータで特定されるデータの提供元が接続する通信装置10の属するネットワークグループではなくても良い。
第2の実施形態では、メタデータが保持されるネットワークグループが、データの提供元が接続する通信装置10が所属するネットワークグループとは無関係に選択される場合について説明する。なお、第2の実施形態においても、ネットワークを複数のネットワークグループに分割する際に行われる処理のうち、管理対象のメタデータを決定する処理以外は、第1の実施形態と同様である。
(3a)管理対象のメタデータの決定
図13は、第2の実施形態にかかるメタデータの管理方法の例を説明する図である。第2の実施形態では、予め、各ネットワークグループについて、メタデータを保持するデータのIDの範囲が設定されている。また、データIDが取りえる値の範囲が0000〜9999であるとする。
図13の例では、ネットワークグループAに属する通信装置10の各々は、データIDが0000〜3333の範囲に含まれるメタデータを保持する。また、ネットワークグループAに属する通信装置10が保持する分散台帳31も、データIDが0000〜3333の範囲に含まれるメタデータへのアクセス履歴や正当性を確認する際に使用される。
同様に、ネットワークグループBに属する通信装置10の各々は、データIDが3334〜6666の範囲に含まれるメタデータと、データIDが3334〜6666の範囲のメタデータへのアクセス履歴や正当性の確認に使用可能な分散台帳31を保持する。さらに、ネットワークグループXに属する通信装置10の各々は、データIDが6667〜9999の範囲に含まれるメタデータと、データIDが6667〜9999の範囲のメタデータおよびデータへのアクセス履歴や正当性の確認に使用可能な分散台帳31を保持する。
第2の実施形態では、各通信装置10は、各ネットワークグループのメタデータの保持範囲を、設定テーブル37として記憶している。図13の例では、各通信装置10は、以下の情報を含む設定テーブル37を保持する。
データID=0000〜3333:ネットワークグループA
データID=3334〜6666:ネットワークグループB
データID=6667〜9999:ネットワークグループX
図14は、第2の実施形態にかかるメタデータの管理方法の例を説明するフローチャートである。以下の記載では、データIDが取りえる値の範囲のことを「データID空間」と記載することがある。
ネットワークを分割するためのネットワークグループの計算と、ネットワークグループの計算結果の検証が終わったとする。各通信装置10は、生成されたネットワークグループの情報をネットワークグループ情報36に保持している。そこで、共有制御部23は、ネットワークグループ情報36を参照することにより、生成されるネットワークグループ数を特定できる。共有制御部23は、データID空間を、ネットワークグループ数で分割し、ネットワークグループごとに、分割したデータID空間に対応付ける(ステップS81、S82)。ステップS81、S82の分割処理により、例えば、図13を参照しながら説明したように、各ネットワークグループに、分割されたID空間が対応付けられる。共有制御部23は、自装置が属するネットワークグループが管理するデータID空間を特定する(ステップS83)。
ネットワークグループの設定に際して、共有制御部23は、メタデータDB35に保持されている個々のメタデータに対して、データIDが特定したデータID空間に含まれるかを判定する(ステップS84)。メタデータ中のデータIDが特定したデータID空間に含まれる場合、共有制御部23は、そのメタデータを管理対象としてメタデータDB35に保持する(ステップS84でYes、ステップS85)。さらに、共有制御部23は、管理対象としたメタデータに対する履歴などの情報を用いて分散台帳31を更新する。
一方、メタデータ中のデータIDが特定したデータID空間に含まれない場合、共有制御部23は、そのメタデータを管理対象ではないと判定する(ステップS84でNo)。この場合、共有制御部23は、メタデータをメタデータDB35から削除する。また、共有制御部23は、管理対象ではないメタデータの情報を分散台帳31に含めない。
図14を参照しながら、ネットワークグループを設定した際のメタデータDB35からのメタデータの削除について説明したが、ネットワークグループの設定後にメタデータを取得した場合にも、図14と同様の手順でそのメタデータを記憶するかが決定される。
(3b)メタデータの登録
図15は、第2の実施形態にかかるメタデータの管理方法の例を説明するシーケンス図である。図15の例では、ネットワークグループXに通信装置10aと通信装置10bが参加しており、ネットワークグループAに通信装置10cと通信装置10dが参加している。また、データを提供可能なサーバ2は、通信装置10aに接続している。
サーバ2は、提供可能なデータのメタデータの公開申請を通信装置10aに要求する(ステップS91)。ここで、提供可能なデータの情報として、提供可能なデータの概要、メタデータおよびデータに対するアクセス権の設定、データを取得する際のアクセス先となるローカルアドレスが、通信装置10aに送信される。さらに、サーバ2は、サーバ2に対して発行されている電子証明書も、メタデータの公開申請と共に通信装置10aに送信する。
通信装置10aの共有制御部23aは、通信部11aを介してメタデータの公開申請や、電子証明書を取得すると、電子証明書を用いて、サーバ2が正規ユーザであるかを判定する。サーバ2が正規ユーザであると判定すると、共有制御部23aは、公開対象となるデータからデータIDを生成する(ステップS92)。共有制御部23aは、生成したデータIDをキーとして、設定テーブル37を検索する。ステップS92で生成されたデータIDは、ネットワークグループAがメタデータを保持する範囲に含まれているとする。
すると、共有制御部23aは、ネットワークグループ情報36aを参照して、ネットワークグループAに含まれている通信装置10を、メタデータの通知先として選択する。ここで、メタデータの通知先となる通信装置10の選択方法は、任意である。例えば、共有制御部23は、ネットワークグループAの通信装置として列挙されている通信装置10の中からランダムに選択した通信装置10をメタデータの通知先としても良い。また、予め、各ネットワークグループでリーダとして動作するリーダGWが設定されている場合、共有制御部23は、ネットワークグループAのリーダGWをメタデータの通知先に選択しても良い。図15の例では、共有制御部23aは、メタデータの通知先に通信装置10cを選択している。
共有制御部23aは、データID、アクセス先のGWのIPアドレス、データ概要、および、アクセス権を含めたメタデータを、通信装置10cに送信する(ステップS93)。なお、ステップS93において、共有制御部23aは、サーバ2のアドレスを秘匿化するために、通信装置10aに割り当てられたIPアドレスを、アクセス先のGWのIPアドレスとして、通信装置10cに送信するメタデータに含める。
通信装置10cの共有制御部23cは、通信部11cを介してメタデータを取得すると、メタデータの情報を分散台帳31cに記録する。共有制御部23cは、得られたメタデータをネットワークグループA中の他の通信装置10に送信するとともに、分散台帳31の情報を同期させる(ステップS94)。この処理により、通信装置10dにおいても、ステップS93で通信装置10cが受信したメタデータに対する履歴が分散台帳31dに登録される。
さらに、通信装置10cの共有制御部23cは、通信装置10aから受信したメタデータをメタデータDB35cに登録する(ステップS95)。メタデータDB35cには、メタデータとして、サーバ2から提供されるデータのデータID、アクセス先のGWのIPアドレス、データ概要、アクセス権が記録される。ここで、アクセス先のGWは、ステップS93の処理の際に通信装置10aで指定されたとおり、通信装置10aに割り当てられたIPアドレスである。
通信装置10dにおいて、共有制御部23dは、通信装置10cから受信したメタデータをメタデータDB35dに登録する。ここで、メタデータDB35dにも、提供されるデータのデータID、アクセス先のGWである通信装置10aのIPアドレス、データ概要、アクセス権が記録される(ステップS96)。
通信装置10cの共有制御部23cは、通信装置10aから通知されたメタデータをメタデータDB35cに登録すると、メタデータの登録に成功したことを、通信装置10aに通知する(ステップS97)。メタデータの登録に成功したことが通知されると、通信装置10aの共有制御部23aは、サーバ2のローカルアドレスをデータIDに対応付けて登録する(ステップS98)。ステップS98で登録された情報は、通信装置10aがプロキシサーバとしてサーバ2から提供データを取得して、他の通信装置10や端末4などに送信する際に使用される。
このように、第2の実施形態では、サーバ2の接続先の通信装置10がネットワークグループXに属していても、データIDの値によっては、メタデータがネットワークグループXで保持されない。
(3c)メタデータの検索
図16は、第2の実施形態にかかるメタデータの参照方法の例を説明するシーケンス図である。図16の例でも、ネットワークグループXに通信装置10aと通信装置10bが参加しており、ネットワークグループAに通信装置10cと通信装置10dが参加しているとする。また、通信装置10eと通信装置10fがネットワークグループBに参加しているとする。さらに、データを利用するユーザの端末4は、通信装置10cに接続するものとする。
データを利用しようとするユーザの端末4から、端末4が利用可能なデータについての情報を要求するメタデータリクエストと、端末4に対して発行されている電子証明書が、通信装置10cに送信されたとする(ステップS101)。ステップS102〜S107で行われる処理は、図10のステップS52〜S57を参照しながら説明した処理と同様である。
その後、共有制御部23cは、端末4がアクセス可能なメタデータとしてメタデータDB35cから抽出したメタデータと、ステップS105およびS107で得られたリクエスト結果に含まれているメタデータをリスト化する(ステップS108)。このとき、共有制御部23cは、データの提供元が接続する通信装置10の情報を端末4に対して秘匿化するために、各メタデータからアクセス先のGWのIPアドレスを削除した情報を、リスト化する。共有制御部23cは、通信部11cを介して、ステップS108で得られたメタデータのリストを端末4に送信する(ステップS109)。
このように、予め、メタデータを保持する対象がデータID空間を用いて決定されている場合、メタデータの検索の際に対応テーブル33を生成しないので、第1の実施形態に比べて、通信装置10の処理が簡略化できる。なお、第2の実施形態においても、ネットワークグループの全てに対してメタデータのリクエストが中継されるので、端末4の接続先の通信装置10が属するネットワークグループ以外のネットワークグループで保持されているメタデータの情報も、端末4に提供される。
(3d)データの取得
図17は、第2の実施形態にかかるデータの取得方法の例を説明するシーケンス図である。図17を参照しながら、図15に示す処理でネットワークグループAにメタデータの登録が行われたデータが、端末4から要求されるケースでのデータの取得例を説明する。図17の例では、端末4は、ネットワークグループA中の通信装置10cに接続し、サーバ2はネットワークグループX中の通信装置10bに接続しているものとする。
メタデータのリストを取得した端末4のユーザは、メタデータのリストに含まれているデータ概要を用いて、データID=0414で識別されるデータを取得することを決定したとする。端末4のユーザの操作により、端末4からデータID=0414を含むデータリクエストと、端末4に対して発行されている電子証明書が、通信装置10cに送信される(ステップS111)。
通信装置10cの取得部24cは、通信部11cを介してデータリクエストと電子証明書を受信する。取得部24cは、データリクエストに含まれているデータIDをキーとして、設定テーブル37cを検索することにより、取得対象のデータのメタデータがネットワークグループAに保持されていることを特定する。取得部24cは、データリクエストの送信元が端末4であることを、データIDに対応付けて記憶する。さらに、取得部24cは、電子証明書を用いて、端末4がネットワークにアクセス可能な正規のユーザであるかと、データID=0414で識別されるデータに対するアクセス権があるかを判定する(ステップS112)。データID=0414を含むメタデータにおいて、アクセスが端末4に許可されている場合、取得部24cは、端末4がデータID=0414で識別されるデータに対するアクセス権を有すると判定する。
取得部24cは、メタデータリクエストと電子証明書を、適宜、通信部11cを用いて、ネットワークグループA中の他の通信装置10に送信して、端末4が正規ユーザであるかとアクセス権の有無についての検証を要求する。このため、通信装置10dにおいても、端末4に対するアクセス権などの検証が行われる(ステップS112)。図17の例では、ネットワークグループAに含まれる通信装置10の所定の割合以上において、端末4が正規ユーザでありデータID=0414で識別されるデータに対するアクセス権があると判定されたとする。
取得部24cは、メタデータ中に記録されているアクセス先のGWのIPアドレスを取得する(ステップS113)。ここでは、データID=0414で識別されるデータのメタデータには、通信装置10bのアドレスがアクセス先として記録されていたとする。取得部24cは、通信装置10bに、データID=0414を含むデータリクエストを送信する(ステップS114)。
通信装置10bの取得部24bは、通信部11bを介してデータリクエストを受信する。取得部24bは、データリクエストの送信元が通信装置10cであることを、データID=0414に対応付けて記憶する。取得部24bは、データID=0414に対応付けて記憶しているローカルアドレス(サーバ2のIPアドレスとデータID=0414のデータへのパスを含む)に、データリクエストを送信する(ステップS115)。
サーバ2は、データリクエストを受信すると、ローカルアドレスで識別されるデータを、データリクエストの送信元である通信装置10bに送信する(ステップS116)。ローカルアドレスにはデータID=0414のデータへのパスが含まれているので、通信装置10bに送信されるデータは、データID=0414で識別されるデータである。
通信装置10bの取得部24bは、サーバ2から受信したデータの転送先を、データIDを用いて特定する。ここでは、データID=0414のデータの転送先(データリクエストの送信元)は通信装置10cである。そこで、取得部24bは、データID=0414で識別されるデータを通信装置10cに送信する(ステップS117)。
通信装置10cの取得部24cは、通信装置10bから受信したデータの転送先を、データIDを用いて特定する。ここでは、データID=0414のデータの転送先は端末4である。そこで、取得部24cは、データID=0414で識別されるデータを端末4に送信する(ステップS118)。
図17を参照しながら説明したように、データリクエストにより要求されているデータのメタデータ中に含まれているアクセス先のGWを用いて、データの要求先が決定されている。このため、メタデータを保持しているネットワークグループ中の通信装置10は、自装置が所属するネットワークグループ中の通信装置10に接続されていないサーバ2から提供されるデータも、端末4に提供することができる。
図18は、第2の実施形態にかかるデータの取得方法の例を説明するシーケンス図である。図18では、データを取得しようとする端末4がメタデータを管理していないネットワークグループに接続した場合の例を説明する。図18では、データを取得しようとする端末4とデータの提供元のサーバ2のいずれもネットワークグループXに接続しているが、提供されるデータのメタデータはネットワークグループAで管理されているものとする。また、図18の例では、各ネットワークグループ中のリーダGWは、ネットワークグループの生成の際に決定され、ネットワークグループ情報36に記録されているものとする。
メタデータのリストを取得した端末4のユーザは、メタデータのリストに含まれているデータ概要を用いて、データID=2542で識別されるデータを取得することを決定したとする。端末4のユーザの操作により、端末4からデータID=2542を含むデータリクエストと、端末4に対して発行されている電子証明書が、通信装置10aに送信される(ステップS121)。
通信装置10aの取得部24aは、通信部11aを介してデータリクエストと電子証明書を受信する。取得部24aは、データリクエストに含まれているデータIDをキーとして、設定テーブル37aを検索することにより、取得対象のデータのメタデータがネットワークグループAに保持されていることを特定する。取得部24aは、データリクエストの送信元が端末4であることを、データIDに対応付けて記憶する。さらに、取得部24aは、ネットワークグループ情報36aを参照して、ネットワークグループAのリーダGWを特定する(ステップS122)。図18の例では、通信装置10cがネットワークグループAのリーダGWであるとする。取得部24aは、データリクエストの宛先とする通信装置10のアドレスを要求するリクエストメッセージ(GWアドレスリクエスト)と、端末4から受信した電子証明書を通信装置10cに送信する(ステップS123)。なお、GWアドレスリクエストには、取得対象のデータを識別するデータID=2542が含まれている。
通信装置10cの取得部24cは、通信部11cを介して、GWアドレスリクエストと電子証明書を受信する。取得部24cは、GWアドレスリクエストの送信元が通信装置10aであることを記憶する。さらに、取得部24cは、電子証明書を用いて、端末4がネットワークにアクセス可能な正規のユーザであるかと、データID=2542で識別されるデータに対するアクセス権があるかを判定する(ステップS124)。さらに、取得部24cは、GWアドレスリクエストと電子証明書を、ネットワークグループA中の他の通信装置10に送信して、端末4が正規ユーザであるかとアクセス権の有無についての検証を要求する。図18の例では、ネットワークグループA中の所定の割合以上の通信装置10が、端末4がネットワークにアクセス可能な正規のユーザであり、データID=2542で識別されるデータに対するアクセス権を有すると判定したとする。
すると、取得部24cは、メタデータDB35cからデータID=2542を含むメタデータを読み出し、そのメタデータに含まれているアクセス先のGWのアドレスを取得する。データID=2542のメタデータには、アクセス先のGWアドレスとして、通信装置10bのアドレスが指定されていたとする。取得部24cは、通信装置10bのアドレスを通知するためのメッセージ(GWアドレスレスポンス)を通信装置10aに送信する(ステップS125)。
通信装置10aの取得部24aは、通信部11aを介してGWアドレスレスポンスを取得する。GWアドレスレスポンスには、データID=2542のデータのアクセス先として、通信装置10bのアドレスが記載されている。そこで、取得部24aは、データID=2542を指定したデータリクエストを通信装置10bに送信する(ステップS126)。
通信装置10bの取得部24bは、通信部11bを介してデータリクエストを受信する。取得部24bは、データリクエストの送信元が通信装置10aであることを、データID=2542に対応付けて記憶する。取得部24bは、データID=2542に対応付けて記憶しているローカルアドレス(サーバ2のIPアドレスとデータID=2542のデータへのパスを含む)に、データリクエストを送信する(ステップS127)。
サーバ2は、データリクエストを受信すると、ローカルアドレスで識別されるデータを、データリクエストの送信元である通信装置10bに送信する(ステップS128)。ローカルアドレスにはデータID=2542のデータへのパスが含まれているので、通信装置10bに送信されるデータは、データID=2542で識別されるデータである。
通信装置10bの取得部24bは、サーバ2から受信したデータの転送先を、データIDを用いて特定する。ここでは、データID=2542のデータの転送先(データリクエストの送信元)は通信装置10aである。そこで、取得部24bは、データID=2542で識別されるデータを通信装置10aに送信する(ステップS129)。
通信装置10aの取得部24aは、通信装置10bから受信したデータの転送先を、データIDを用いて特定する。ここでは、データID=2542のデータの転送先(データリクエストの送信元)は端末4である。そこで、取得部24aは、データID=2542で識別されるデータを端末4に送信する(ステップS130)。
なお、図18では、通信装置10aがネットワークグループA中のリーダGWにGWアドレスを問合わせる場合の例を説明しているが、これは一例に過ぎない。通信装置10aは、ネットワークグループAのリーダGWではない通信装置10に対して、アクセス先の通信装置10のアドレスを問合わせても良い。
図18を参照しながら説明したように、データリクエストを受信した通信装置10は、メタデータを保持していない場合、メタデータを保持しているネットワークグループ中の通信装置10に対して、データのアクセス先の通信装置10を問い合わせる。このため、端末4の接続先とサーバ2の接続先のいずれが属するネットワークグループでもメタデータを保持していない場合であっても、端末4が取得要求したデータを端末4に提供することができる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明で述べた対応テーブル33、グループテーブル34、ネットワークグループ情報36、および、設定テーブル37は一例に過ぎない。対応テーブル33、グループテーブル34、ネットワークグループ情報36、設定テーブル37などに含まれる情報要素は、実装に応じて変更され得る。
以上の説明では、ネットワーク中の通信装置10の数に応じてネットワークグループを生成する場合について説明したが、ネットワークグループを生成する条件は通信装置10の数に限定されない。例えば、ネットワーク中の通信装置10間での通信の際に発生する遅延量が所定の値を超えると、ネットワークが複数のネットワークグループに分けられても良い。この場合、個々のネットワークグループ中では、通信の際に発生する遅延が所定の値未満になるように設定される。
ネットワークグループ間の通信についても、実装に応じて変更され得る。例えば、ネットワークグループ間の通信は、個々のネットワークグループのリーダGWを通して行うように変形されても良い。また、リーダGW以外の通信装置10も他のネットワークグループ中のリーダGWとして動作しない通信装置10やリーダGWとして動作する通信装置10と通信しても良い。
リーダGWが決定されるタイミングも実装に応じて任意に変更され得る。例えば、リーダGWは、ネットワークグループの生成の際に設定されても良い。また、ネットワークグループの計算結果の送受信のタイミングでリーダGWが設定されても良い。
グループ生成条件32も任意に設定され得る。例えば、グループ生成条件32は、静的にネットワークグループを決定する情報であっても良い。この場合、個々の通信装置10について、ネットワークグループに分割されたときに、どのネットワークグループに参加するかがグループ生成条件32に指定される。すると、個々の通信装置10中の決定部21は、グループ生成条件32での指定に従って、ネットワークグループを決定する。
上述の第1および第2の実施形態を含む実施形態に関し、以下の付記を開示する。
(付記1)
参加しているネットワークに属する複数の通信装置のいずれかを介して取得可能なデータのメタデータが記録された分散台帳を保持する記憶部と、
前記分散台帳を前記複数の通信装置と共有するための制御を行う共有制御部と、
前記ネットワークの通信状況が所定の条件を満たしたときに、前記ネットワークに属する他の通信装置と同一のルールを用いて、前記ネットワークを分割して得られる複数の分割ネットワークのいずれに参加するかを決定する決定部と、を有し、
前記共有制御部は、前記決定部が決定した後は、前記決定部が決定した分割ネットワーク中の通信装置との間で、前記分散台帳を共有するための制御を行う
ことを特徴とする通信装置。
(付記2)
前記ネットワークに属する他の通信装置と通信する通信部
をさらに備え、
前記決定部は、前記ネットワークに属する他の通信装置が前記複数の分割ネットワークのいずれに参加するかを、さらに決定し、
前記通信部は、前記複数の分割ネットワークの計算結果を、前記ネットワークに属する通信装置の間で送受信し、
前記共有制御部は、前記計算結果が前記複数の通信装置の所定の割合以上の装置で得られた結果と一致すると、前記決定部が決定した分割ネットワーク中で前記分散台帳を共有する
ことを特徴とする付記1に記載の通信装置。
(付記3)
前記共有制御部は、前記通信装置に接続する端末から、前記端末が提供する提供データのメタデータの登録要求を受信すると、前記提供データのメタデータを、前記通信装置が振り分けられた分割ネットワーク中の他の通信装置に通知する
ことを特徴とする付記1または2に記載の通信装置。
(付記4)
前記複数の分割ネットワークの各々について、当該分割ネットワーク中の通信装置がメタデータを保持するデータの識別情報の値の範囲を設定する設定テーブルをさらに保持し、
前記共有制御部は、前記通信装置に接続する端末から、前記端末が提供する提供データのメタデータの登録要求を受信すると、前記設定テーブル中で、前記提供データの識別情報に対応付けられている分割ネットワーク中の通信装置に、前記提供データのメタデータを通知する
ことを特徴とする付記1または2に記載の通信装置。
(付記5)
前記通信装置に接続する他の端末から、前記他の端末が取得しようとする対象データのメタデータの取得要求を受信すると、前記通信装置が振り分けられた分割ネットワークとは異なる他の分割ネットワーク中の通信装置に、前記対象データのメタデータを要求し、前記他の分割ネットワーク中の通信装置から取得したメタデータを、前記他の端末に転送する処理を行う取得部
をさらに備えることを特徴とする、付記1〜4のいずれか1項に記載の通信装置。
(付記6)
前記取得部は、前記他の分割ネットワーク中の通信装置から取得したメタデータの各々について、当該メタデータに含まれるデータの識別情報と、前記他の分割ネットワークを対応付ける
ことを特徴とする、付記5に記載の通信装置。
(付記7)
前記取得部は、前記他の端末から前記対象データの取得を要求されると、前記対象データを識別する識別情報に対応付けられた分割ネットワーク中の通信装置に、前記対象データを要求する
ことを特徴とする付記6に記載の通信装置。
(付記8)
前記取得部は、前記通信装置に接続する他の端末から、前記他の端末が取得しようとする対象データの取得を要求されると、前記設定テーブル中で、前記対象データを識別する識別情報に対応付けられた分割ネットワーク中の通信装置に、前記対象データを取得するためのアクセス先のアドレスを要求する
ことを特徴とする付記4に記載の通信装置。
(付記9)
ネットワークに参加する複数の通信装置の各々が、
前記ネットワークに属する通信装置のいずれかを介して取得可能なデータのメタデータが記録された分散台帳を保持し、
前記分散台帳を前記複数の通信装置と共有するための制御を行い、
前記ネットワークの通信状況が所定の条件を満たしたときに、前記複数の通信装置間で同一のルールを用いて、前記ネットワークを分割して得られる複数の分割ネットワークのいずれに参加するかを決定し、
前記複数の分割ネットワークのいずれに参加するかを決定した後は、決定した分割ネットワーク中の他の通信装置との間で、前記分散台帳を共有するための制御を行う
ことを特徴とする通信方法。
(付記10)
前記複数の通信装置の各々が、
前記ネットワークに属する他の通信装置が前記複数の分割ネットワークのいずれに参加するかを、さらに決定し、
前記複数の分割ネットワークの計算結果を、前記ネットワークに属する通信装置の間で送受信し、
前記計算結果が前記複数の通信装置の所定の割合以上の装置で得られた結果と一致すると、決定した分割ネットワーク中で前記分散台帳を共有する
処理を行うことを特徴とする付記9に記載の通信方法。
(付記11)
前記複数の通信装置の各々が、
当該通信装置に接続する端末から、前記端末が提供する提供データのメタデータの登録要求を受信すると、前記提供データのメタデータを、当該通信装置が振り分けられた分割ネットワーク中の他の通信装置に通知する
ことを特徴とする付記9または10に記載の通信方法。
(付記12)
前記複数の通信装置の各々が、
当該通信装置に接続する端末から、前記端末が提供する提供データのメタデータの登録要求を受信し、
前記複数の分割ネットワークの各々について、当該分割ネットワーク中の通信装置がメタデータを保持するデータの識別情報の値の範囲を設定する設定テーブル中で、前記提供データの識別情報に対応付けられている分割ネットワーク中の通信装置に、前記提供データのメタデータを通知する
ことを特徴とする付記9または10に記載の通信方法。
(付記13)
ネットワークに参加する通信装置に、
前記ネットワークに属する通信装置のいずれかを介して取得可能なデータのメタデータが記録された分散台帳を保持し、
前記分散台帳を前記複数の通信装置と共有するための制御を行い、
前記ネットワークの通信状況が所定の条件を満たしたときに、前記複数の通信装置間で同一のルールを用いて、前記ネットワークを分割して得られる複数の分割ネットワークのいずれに参加するかを決定し、
前記複数の分割ネットワークのいずれに参加するかを決定した後は、決定した分割ネットワーク中の他の通信装置との間で、前記分散台帳を共有するための制御を行う
処理を行わせることを特徴とする通信プログラム。
(付記14)
前記ネットワークに参加する通信装置に、
前記ネットワークに属する他の通信装置が前記複数の分割ネットワークのいずれに参加するかを、さらに決定し、
前記複数の分割ネットワークの計算結果を、前記ネットワークに属する通信装置の間で送受信し、
前記計算結果が前記複数の通信装置の所定の割合以上の装置で得られた結果と一致すると、決定した分割ネットワーク中で前記分散台帳を共有する
処理を行わせることを特徴とする付記13に記載の通信プログラム。