(57)【要約】【課題】複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能な共有データの同期方法を提供する。【解決手段】Ｎｏｄｅ１は、他Ｎｏｄｅから送信されたリストを最新リストとして格納する（ステップＳ１０８）。同時に、Ｎｏｄｅ１は、リスト送信依頼の送信タイミングで自己が保持するリストを更新前リストにコピーする。そして、Ｎｏｄｅ１は、更新前リストと最新リストとの差分により取得対象の共有データを特定する（ステップＳ１１０）。さらに、Ｎｏｄｅ１は、取得対象の共有データの数や合計サイズといった、データ情報などに基づいて、当該取得対象の共有データを取得する際の同期モードを決定する（ステップＳ１１２）。【選択図】図１６
2009230369.tif 000002
【特許請求の範囲】
【請求項１】
互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持するための共有データの同期方法であって、
前記共有データを同期すべき情報処理装置が、当該同期する際の状況を判断するステップと、
前記共有データを同期すべき情報処理装置が、前記判断した状況に応じて、取得対象の共有データを１つの他の情報処理装置のみから取得する第１のモードと、前記取得対象の共有データを複数の他の情報処理装置から分散的に取得する第２のモードとのいずれかを選択し、取得先の情報処理装置を決定するステップと、
前記共有データを同期すべき情報処理装置が、取得先として決定した情報処理装置から前記取得対象の共有データを取得するステップとを含む、共有データの同期方法。
【請求項２】
前記情報処理装置は、前記共有データに加えて、当該共有データを管理するためのリストを保持しており、
前記共有データの同期方法は、前記共有データを同期すべき情報処理装置が、他の情報処理装置から前記リストを取得するステップをさらに含み、
前記状況を判断するステップでは、前記取得したリストの内容に基づいて前記状況が判断される、請求項１に記載の共有データの同期方法。
【請求項３】
前記状況を判断するステップでは、前記共有データを同期すべき情報処理装置が保持していた前記リストと他の情報処理装置から取得したリストとの差分に基づいて、前記取得対象の共有データが決定される、請求項２に記載の共有データの同期方法。
【請求項４】
前記第１のモードと前記第２のモードとの選択は、前記取得対象の共有データのサイズに基づいて行われる、請求項３に記載の共有データの同期方法。
【請求項５】
前記状況を判断するステップでは、他の情報処理装置からのレスポンスの時間の大きさに基づいて前記状況が判断される、請求項１〜４のいずれか１項に記載の共有データの同期方法。
【請求項６】
前記状況を判断するステップでは、他の情報処理装置からのレスポンスのデータ伝送速度の大きさに基づいて前記状況が判断される、請求項１〜５のいずれか１項に記載の共有データの同期方法。
【請求項７】
前記複数の情報処理装置は、ネットワークを構成しており、
前記状況を判断するステップでは、前記共有データを同期すべき情報処理装置が前記ネットワークから離脱していた期間の長さに基づいて前記状況が判断される、請求項１〜６のいずれか１項に記載の共有データの同期方法。
【請求項８】
前記取得先の情報処理装置を決定するステップでは、前記第１のモードが選択された場合に、候補の情報処理装置のうち最もレスポンスが早いものが前記取得先の情報処理装置として決定される、請求項１〜７のいずれか１項に記載の共有データの同期方法。
【請求項９】
前記取得先の情報処理装置を決定するステップでは、通信経路上において前記共有データを同期すべき情報処理装置に近接する情報処理装置を候補として、前記取得先の情報処理装置が決定される、請求項１〜８のいずれか１項に記載の共有データの同期方法。
【請求項１０】
前記取得先の情報処理装置を決定するステップでは、前記第２のモードが選択された場合に、通信経路上において前記共有データを同期すべき情報処理装置に近接する情報処理装置からなる候補群と、それ以外の情報処理装置からなる候補群とに区別した上で、前記取得対象の共有データのデータ情報に応じて、各共有データの取得先が情報処理装置をいずれか一方の候補群から選択される、請求項１〜９のいずれか１項に記載の共有データの同期方法。
【請求項１１】
前記共有データを同期すべき情報処理装置に近接する情報処理装置は、前記共有データを同期すべき情報処理装置からのブロードキャストメッセージが到達可能な情報処理装置を含む、請求項９または１０に記載の共有データの同期方法。
【請求項１２】
前記情報処理装置の各々は、ネットワーク番号およびホスト番号からなるネットワークアドレスを有しており、
前記共有データを同期すべき情報処理装置に近接する情報処理装置は、前記共有データを同期すべき情報処理装置のネットワーク番号と同じネットワーク番号を有する情報処理装置を含む、請求項９〜１１のいずれか１項に記載の共有データの同期方法。
【請求項１３】
前記共有データを同期すべき情報処理装置が、取得した共有データを自己の記憶部に格納するとともに、前記リストの内容を更新するステップをさらに含む、請求項１〜１２のいずれか１項に記載の共有データの同期方法。
【請求項１４】
互いにデータ通信可能に接続された複数の情報処理装置の間で共有データを同期するためのプログラムであって、
前記プログラムは、前記情報処理装置に、
前記共有データを同期すべき場合に、その際の状況を判断するステップと、
前記判断した状況に応じて、取得対象の共有データを１つの他の情報処理装置のみから取得する第１のモードと、前記取得対象の共有データを複数の他の情報処理装置から分散的に取得する第２のモードとのいずれかを選択し、取得先の情報処理装置を決定するステップと、
取得先として決定した情報処理装置から前記取得対象の共有データを取得するステップとを実行させる、共有データを同期するためのプログラム。
【請求項１５】
互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持可能なネットワークシステムであって、
前記共有データを同期すべき情報処理装置は、
前記共有データを同期する際の状況を判断する手段と、
前記判断した状況に応じて、取得対象の共有データを１つの他の情報処理装置のみから取得する第１のモードと、前記取得対象の共有データを複数の他の情報処理装置から分散的に取得する第２のモードとのいずれかを選択し、取得先の情報処理装置を決定する手段と、
取得先として決定した情報処理装置から前記取得対象の共有データを取得する手段とを含む、共有データを同期して保持可能なネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、共有データの同期方法、複数の情報処理装置の間で共有データを同期するためのプログラム、および共有データを同期して保持可能なネットワークシステムに関し、特に同期処理に係る負荷を分散させるための構成に関する。
【背景技術】
【０００２】
複数のユーザの間でデータ共有を行なう場合には、従来、いわゆるサーバ・クライアント形式の構成が用いられてきた。このサーバ・クライアント形式は、少なくとも１台のファイルサーバに共有すべきデータ（ファイル）を格納するとともに、複数のクライアントが当該ファイルサーバにアクセスするという形式をとる。
【０００３】
このようなサーバ・クライアント形式に代えて、近年、いわゆるＰ２Ｐ（Peer to Peer）形式の構成が採用されることも多くなっている。このＰ２Ｐ形式は、複数の情報処理装置（各情報処理装置は「ピア（Peer）」あるいは「ノード」とも称される。）の間で随時ファイル交換を行なうことで、それぞれが同一のデータを同期して保持し、これによりデータ共有を行なうものである。このようなＰ２Ｐ形式を採用することで、ファイルサーバを配置し、さらにその管理を行なう必要がなくなる。また、情報処理装置がオフラインであってもデータ利用が可能となる。
【０００４】
一方、Ｐ２Ｐ形式では、各情報処理装置がデータを保持しているため、情報処理装置がネットワークシステムに参加し、すでに各情報処理装置で共有されているデータを取得しようとする場合（いわゆる、同期の確立）には、特定の情報処理装置から当該参加した情報処理装置宛てに多数のデータが送信されることになる。そのため、当該送信元の情報処理装置は、その送信処理の実行中に多大なリソースを消費するという課題が生じ得る。
【０００５】
特開２００４−８６８００号公報（特許文献１）には、一度のデータ同期で大量の情報を送受信することのないように、適当なデータ送信量でデータ同期を自動的に開始することにより、通信時間の増大やデータ同期中にエラーの起こる可能性を抑えるための構成が開示されている。
【特許文献１】特開２００４−８６８００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特開２００４−８６８００号公報（特許文献１）に開示の構成は、主として、サーバ・クライアント形式に適用されるものである。また、この構成では、サーバがデータベースの更新内容を更新履歴として保存し、更新履歴の件数がしきい値より大きい時にデータ同期を開始する構成を採用するため、Ｐ２Ｐ形式のシステムに適用したとしても、特定のサーバにデータ同期に係る処理が集中してしまうという課題は解決されない。
【０００７】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能な共有データの同期方法を提供することである。また、この発明の別の目的は、上述のような共有データを同期するためのプログラムおよび共有データを同期して保持可能なネットワークシステムを提供することである。
【課題を解決するための手段】
【０００８】
この発明のある局面に従えば、互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持するための共有データの同期方法を提供する。同期方法は、共有データを同期すべき情報処理装置が、当該同期する際の状況を判断するステップと、共有データを同期すべき情報処理装置が、判断した状況に応じて、取得対象の共有データを１つの他の情報処理装置のみから取得する第１のモードと、取得対象の共有データを複数の他の情報処理装置から分散的に取得する第２のモードとのいずれかを選択し、取得先の情報処理装置を決定するステップと、共有データを同期すべき情報処理装置が、取得先として決定した情報処理装置から取得対象の共有データを取得するステップとを含む。
【０００９】
好ましくは、情報処理装置は、共有データに加えて、当該共有データを管理するためのリストを保持しており、共有データの同期方法は、共有データを同期すべき情報処理装置が、他の情報処理装置からリストを取得するステップをさらに含み、状況を判断するステップでは、取得したリストの内容に基づいて状況が判断される。
【００１０】
さらに好ましくは、状況を判断するステップでは、共有データを同期すべき情報処理装置が保持していたリストと他の情報処理装置から取得したリストとの差分に基づいて、取得対象の共有データが決定される。
【００１１】
さらに好ましくは、第１のモードと第２のモードとの選択は、取得対象の共有データのサイズに基づいて行われる。
【００１２】
好ましくは、状況を判断するステップでは、他の情報処理装置からのレスポンスの時間の大きさに基づいて状況が判断される。
【００１３】
好ましくは、状況を判断するステップでは、他の情報処理装置からのレスポンスのデータ伝送速度の大きさに基づいて状況が判断される。
【００１４】
好ましくは、複数の情報処理装置は、ネットワークを構成しており、状況を判断するステップでは、共有データを同期すべき情報処理装置がネットワークから離脱していた期間の長さに基づいて状況が判断される。
【００１５】
好ましくは、取得先の情報処理装置を決定するステップでは、第１のモードが選択された場合に、候補の情報処理装置のうち最もレスポンスが早いものが取得先の情報処理装置として決定される。
【００１６】
好ましくは、取得先の情報処理装置を決定するステップでは、通信経路上において共有データを同期すべき情報処理装置に近接する情報処理装置を候補として、取得先の情報処理装置が決定される。
【００１７】
好ましくは、取得先の情報処理装置を決定するステップでは、第２のモードが選択された場合に、通信経路上において共有データを同期すべき情報処理装置に近接する情報処理装置からなる候補群と、それ以外の情報処理装置からなる候補群とに区別した上で、取得対象の共有データのデータ情報に応じて、各共有データの取得先が情報処理装置をいずれか一方の候補群から選択される。
【００１８】
さらに好ましくは、共有データを同期すべき情報処理装置に近接する情報処理装置は、共有データを同期すべき情報処理装置からのブロードキャストメッセージが到達可能な情報処理装置を含む。
【００１９】
またさらに好ましくは、情報処理装置の各々は、ネットワーク番号およびホスト番号からなるネットワークアドレスを有しており、共有データを同期すべき情報処理装置に近接する情報処理装置は、共有データを同期すべき情報処理装置のネットワーク番号と同じネットワーク番号を有する情報処理装置を含む。
【００２０】
好ましくは、共有データを同期すべき情報処理装置が、取得した共有データを自己の記憶部に格納するとともに、リストの内容を更新するステップをさらに含む。
【００２１】
この発明の別の局面に従えば、互いにデータ通信可能に接続された複数の情報処理装置の間で共有データを同期するためのプログラムを提供する。プログラムは、情報処理装置に、共有データを同期すべき場合に、その際の状況を判断するステップと、判断した状況に応じて、取得対象の共有データを１つの他の情報処理装置のみから取得する第１のモードと、取得対象の共有データを複数の他の情報処理装置から分散的に取得する第２のモードとのいずれかを選択し、取得先の情報処理装置を決定するステップと、取得先として決定した情報処理装置から取得対象の共有データを取得するステップとを実行させる。
【００２２】
この発明のさらに別の局面に従えば、互いにデータ通信可能な複数の情報処理装置の間で共有データを同期して保持可能なネットワークシステムを提供する。共有データを同期すべき情報処理装置は、共有データを同期する際の状況を判断する手段と、判断した状況に応じて、取得対象の共有データを１つの他の情報処理装置のみから取得する第１のモードと、取得対象の共有データを複数の他の情報処理装置から分散的に取得する第２のモードとのいずれかを選択し、取得先の情報処理装置を決定する手段と、取得先として決定した情報処理装置から取得対象の共有データを取得する手段とを含む。
【発明の効果】
【００２３】
この発明によれば、複数の情報処理装置の間で共有データを同期しているネットワークシステムにおいて、情報処理装置が参加した場合の同期処理に係る負荷を分散化することが可能な共有データの同期方法を提供することである。
【発明を実施するための最良の形態】
【００２４】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２５】
［実施の形態］
（ネットワークシステムの全体構成）
図１は、この発明の実施の形態に従うネットワークシステムＳＹＳの概略構成図である。
【００２６】
図１を参照して、本実施の形態に従うネットワークシステムＳＹＳは、階層構造のルータＲＴ１，ＲＴ２，ＲＴ３を含み、これらのルータを介して、複数の情報処理装置ＰＣ１〜ＰＣ７が互いにデータ通信可能な状態に構成されているとする。そして、複数の情報処理装置ＰＣ１〜ＰＣ７は、Ｐ２Ｐ（Peer to Peer）形式の通信プロトコルに従って、少なくとも１つの共有データを同期して保持する。
【００２７】
より具体的には、最上層のルータＲＴ１には、ルータＲＴ２およびルータＲＴ３が接続されており、ルータＲＴ２のそれぞれのポートには、情報処理装置ＰＣ１〜ＰＣ４が接続されており、ルータＲＴ３のそれぞれのポートには、情報処理装置ＰＣ５〜ＰＣ７が接続されている。ルータＲＴ１〜ＲＴ３および情報処理装置ＰＣ１〜ＰＣ７の各々には、ネットワークＩＤ（ネットワーク番号）およびホストＩＤ（ホスト番号）を含むネットワークアドレス（代表的に、ＩＰアドレス）が割当てられている。特に、ルータＲＴ２およびルータＲＴ２に接続されている情報処理装置ＰＣ１〜ＰＣ４には、互いに同じネットワークＩＤが割当てられており、ルータＲＴ３およびルータＲＴ３に接続されている情報処理装置ＰＣ５〜ＰＣ７には、互いに同じネットワークＩＤが割当てられている。なお、ルータＲＴ２などに割当てられているネットワークＩＤと、ルータＲＴ３などに割当てられているネットワークＩＤとは、互いに異なったものとなっており、両者は論理的に識別可能になっている。なお、ネットワークアドレスのうち、ネットワークＩＤとホストＩＤとは、ネットマスクの値に基づいて区別される。
【００２８】
本明細書において「同期」とは、複数の情報処理装置の各々が同一の共有データを過不足なく保持している状態を意味する。すなわち、各情報処理装置は、他の情報処理装置とデータ交換（データコピー）をすることで、取得対象の共有データを収集する。このような処理を繰返すことで、ネットワークシステムＳＹＳに含まれる情報処理装置ＰＣ１〜ＰＣ７の各々が同一の共有データを過不足なく保持することができる。なお、共有データは、代表的にユーザがいずれのパーソナルコンピュータを用いて新規に生成し、あるいは生成済のデータを共有データとして指定することで定められる。
【００２９】
本実施の形態では、主として、ある時点のネットワークシステムＳＹＳに対して、特定の情報処理装置（以下の説明では、代表的に情報処理装置ＰＣ１とする）がネットワークシステムＳＹＳから一旦離脱（オフライン）した後、相当の期間経過後、ネットワークシステムＳＹＳに再参加（オンライン）する場合の同期処理について説明する。
【００３０】
本発明に係る共有データの同期方法は、複数の情報処理装置が共有データを同期して保持しているネットワークシステムＳＹＳに、当該共有データの全部またはその一部を保持しない情報処理装置、すなわち同期状態にある共有データを完全には保持していない情報処理装置が参加する場合の処理に向けられるものである。そのため、本実施の形態において説明するような、ネットワークシステムＳＹＳに参加していた情報処理装置が一旦離脱した後に再参加するような場合に加えて、全く新たな情報処理装置がネットワークシステムＳＹＳに参加する場合などにも適用可能である。
【００３１】
本実施の形態では、情報処理装置ＰＣ１〜ＰＣ７（以下「情報処理装置ＰＣ」とも総称する。）の代表例として、パーソナルコンピュータを用いる構成について例示するが、Ｐ２Ｐ形式の通信プロトコルおよびアプリケーションを実装可能な装置であれば、どのような装置であってもよい。より具体的には、情報処理装置ＰＣとして、複写機能やファクシミリ機能などを搭載したＭＦＰ（Multi Function Peripheral）、携帯電話、ＰＤＡ（Personal Digital Assistance）、ネットワークファクシミリなどを採用することができる。
【００３２】
また、情報処理装置ＰＣは、論理的に互いにデータ通信可能な状態を形成できれば、必ずしも同一階層のネットワークに物理的に接続されている必要はない。
【００３３】
（ハードウェア構成）
図２は、この発明の実施の形態に従う情報処理装置ＰＣ１〜ＰＣ７の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【００３４】
図２を参照して、本実施の形態に従う情報処理装置ＰＣは、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ２００と、ＣＰＵ２００でのプログラムの実行に必要なデータを一時的に記憶するメモリ部２１２と、ＣＰＵ２００で実行されるプログラムを不揮発的に記憶するハードディスク部（ＨＤＤ）２１０とを含む。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ２１４またはフレキシブルディスク（ＦＤ：Flexible Disk）ドライブ２１６によって、それぞれＣＤ−ＲＯＭ２１４ａまたはフレキシブルディスク２１６ａなどから読取られる。
【００３５】
ＣＰＵ２００は、キーボードやマウスなどからなる入力部２０８を介してユーザによる操作要求を受取るとともに、プログラムの実行によって生成される画面出力をディスプレイ部２０４へ出力する。また、ＣＰＵ２００は、ＬＡＮカードなどからなるネットワークインターフェイス（Ｉ／Ｆ）部２０６を介して、他の情報処理装置との間でデータ通信を行なう。なお、これらの部位は、内部バス２０２を介して互いに接続される。
【００３６】
（情報処理装置の機能構成）
図３は、この発明の実施の形態に従う情報処理装置ＰＣ１〜ＰＣ７における制御構造を示す概略図である。図３に示す制御構造は、代表的に、ＣＰＵ２００（図２）がハードディスク部２１０（図２）に予め格納されたプログラムをメモリ部２１２（図２）に展開し、各コマンドを実行することで提供される。
【００３７】
図３を参照して、情報処理装置ＰＣの各々は、データ受信部１０２と、データ解析部１０４と、データ操作部１０６と、リスト管理部１０８と、認証部１１０と、ネットワーク申請部１１２と、接続テーブル管理部１１４と、モード判断部１１８と、データ格納部１２０と、データ作成部１２２と、データ送信部１２４とをその機能として含む。なお、データ格納部１２０は、ハードディスク部２１０（図２）に所定領域を確保することで実現される。
【００３８】
データ受信部１０２は、ネットワークＮＷ上を伝送されるデータパケットを受信するとともに、分割送信されたデータパケットについては結合してデータ列に復元した上で、データ解析部１０４へ出力する。データ解析部１０４は、各データ列の内容（代表的に、ヘッダ部のアドレス情報）を解析し、当該データ列が自装置宛てのものであるか否かを判断する。そして、データ解析部１０４は、自装置宛てのものと判断したデータ列のみをデータ操作部１０６と、リスト管理部１０８と、認証部１１０と、ネットワーク申請部１１２と、接続テーブル管理部１１４のいずれかに出力する。
【００３９】
データ操作部１０６は、自情報処理装置ＰＣにおいてユーザが新たにデータを生成した場合や、他情報処理装置ＰＣから新たなデータが送信された場合などに、当該データをデータ格納部１２０の共有データ保持部（ＤＢ）１１６へ格納するとともに、当該共有データの追加や削除といった変更内容をリスト管理部１０８へ通知する。また、データ操作部１０６は、他情報処理装置ＰＣからの要求に応じて、共有データ保持部１１６に格納している共有データを提供する。
【００４０】
また、データ操作部１０６は、自情報処理装置ＰＣがネットワークシステムＳＹＳに参加した場合には、後述するリスト管理部１０８の指示に従って、指定された他情報処理装置ＰＣに指定された共有データについてのデータ送信依頼を送信する。さらに、データ操作部１０６は、他情報処理装置ＰＣから当該データ送信依頼に応じて送信される共有データを受信すると、当該データをデータ格納部１２０の共有データ保持部１１６へ格納するとともに、当該共有データの受信および格納をリスト管理部１０８へ通知する。
【００４１】
リスト管理部１０８は、上述のデータ操作部１０６から共有データの変更の通知を受けると、その内容に基づいてデータ格納部１２０のリスト１３４を更新する。リスト１３４は、データ格納部１２０の共有データ保持部１１６へ格納されている共有データを管理するためのデータを含む。より具体的には、リスト１３４は、共有データ保持部１１６に格納されている共有データの別に、当該共有データのデータ名（または、ファイル名）、サイズ、更新日時、作成日時、重要度、ファイル種別、データ作成者、アクセス可能ユーザ（または、アクセスコントロール情報）、およびその他の属性情報などを含む。なお、リスト１３４の一例については後述する。
【００４２】
また、リスト管理部１０８は、ネットワークシステムＳＹＳへ参加した情報処理装置ＰＣからのリスト送信依頼を後述するネットワーク申請部１１２を介して受信すると、データ格納部１２０に格納しているリスト１３４を当該参加した情報処理装置ＰＣへ送信する。
【００４３】
また、リスト管理部１０８は、自情報処理装置ＰＣがネットワークシステムＳＹＳに参加した場合には、参加時点でのリスト１３４を更新前リスト１３６にコピーするとともに、他情報処理装置ＰＣが送信したリスト１３４を受信して最新リスト１３８としてデータ格納部１２０に格納する。さらに、リスト管理部１０８は、更新前リスト１３６と最新リスト１３８との差分に基づいて、取得対象の共有データを特定する。そして、これらの取得対象の共有データを取得するための指示をモード判断部１１８およびデータ操作部１０６へ与える。すなわち、リスト管理部１０８は、他情報処理装置ＰＣが保持するリスト１３４（自情報処理装置ＰＣの最新リスト１３８）に基づいて、ネットワークシステムＳＹＳに属する情報処理装置ＰＣとの間で共有データを同期する。
【００４４】
モード判断部１１８は、同期するために必要な取得対象の共有データの数や合計サイズといったデータ情報などに基づいて、当該取得対象の共有データを取得する際の同期モードを決定する。より具体的には、モード判断部１１８は、１つの情報処理装置ＰＣから共有データを取得する「単独モード」と、複数の情報処理装置ＰＣから共有データを分散的に取得する「複数モード」とを選択可能に構成される。「単独モード」は、主として取得対象の共有データが相対的に少ない場合に、通信経路上において近接する１つの情報処理装置ＰＣから当該共有データを取得するモードであり、「複数モード」は、主として取得対象の共有データが相対的に多い場合に、複数の情報処理装置ＰＣから共有データを分散的に取得するためのモードである。なお、これらの同期モード決定に係る処理、および各モードにおける処理については、後述する。モード判断部１１８により決定された同期モードの判断結果は、データ操作部１０６へ出力される。
【００４５】
認証部１１０は、他情報処理装置ＰＣからのアクセスに対して接続拒否を判断する。より具体的には、認証部１１０は、他情報処理装置ＰＣのアクセス要求に付属するユーザＩＤやパスワード、または他情報処理装置ＰＣの装置ＩＤなどに基づいて、認証処理を行なうことで接続拒否を判断する。あるいは、予めブラックリストおよび／またはホワイトリストを格納しておき、ブラックリストに該当しない、またはホワイトリストに該当する場合に限って、アクセス要求の送信元の情報処理装置ＰＣに対する接続を許可するようにしてもよい。
【００４６】
ネットワーク申請部１１２は、ユーザ操作などに応じて、自情報処理装置ＰＣがネットワークシステムＳＹＳに参加しようとする場合に、当該ネットワークシステムＳＹＳに属する他の情報処理装置ＰＣへアクセス要求を送信する。また、ネットワーク申請部１１２は、ユーザ操作などに応じて、自情報処理装置ＰＣがネットワークシステムＳＹＳから離脱しようとする場合に、当該ネットワークシステムＳＹＳに属する他の情報処理装置ＰＣへ離脱通知を送信する。
【００４７】
データ作成部１２２は、データ操作部１０６が読み出した共有データ、リスト管理部１０８が読み出したリスト１３４、ネットワーク申請部１１２が発行したアクセス要求などを、所定のデータパケットに整形し、データ送信部１２４へ出力する。
【００４８】
データ送信部１２４は、データ格納部１２０の接続テーブル１３２を参照して、各データパケットの送信先を特定するためのユニークな情報（代表的に、ＩＰアドレスなどのネットワークアドレス）を取得し、ネットワークＮＷを介して送信する。
【００４９】
接続テーブル１３２は、ネットワークシステムＳＹＳに含まれる情報処理装置ＰＣ１〜ＰＣ７を特定するための情報を格納する。具体的には、接続テーブル１３２は、少なくともＰ２Ｐ形式のネットワークシステムＳＹＳを構成する情報処理装置ＰＣの別に、ＩＰアドレス、ＭＡＣアドレス、ネットマスクなどを含む。
【００５０】
接続テーブル管理部１１４は、ネットワークシステムＳＹＳにいずれかの情報処理装置ＰＣが新規参加した場合、およびネットワークシステムＳＹＳからいずれかの情報処理装置ＰＣが離脱した場合には、データ格納部１２０の接続テーブル１３２の内容を更新する。
【００５１】
（参加時の同期処理）
まず、図４〜図７を参照して、本実施の形態に従うネットワークシステムＳＹＳに情報処理装置が参加した場合に共通に実行される処理について説明する。以下の説明では、一例として、情報処理装置ＰＣ１が、ネットワークシステムＳＹＳから一旦離脱（オフライン）した後、相当の期間経過後にネットワークシステムＳＹＳに再参加（オンライン）する場合の同期処理について説明する。
【００５２】
なお、以下の説明では、論理的に形成される情報処理装置ＰＣ間の論理的なコネクションに着目して、情報処理装置ＰＣ１〜ＰＣ７をそれぞれ「Ｎｏｄｅ（あるいは、ノード）１〜Ｎｏｄｅ７」とも記す。
【００５３】
図４は、Ｎｏｄｅ１が離脱する直前のネットワークシステムＳＹＳの状態を示す図である。図５は、Ｎｏｄｅ１が再参加した直後のネットワークシステムＳＹＳの状態を示す図である。
【００５４】
図４および図５に示すように、一例として、ルータＲＴ１のネットワークアドレスは「１０．１００．１．１００」であるとし、ルータＲＴ２のネットワークアドレスは「１０．１００．２．１００」であるとし、ルータＲＴ３のネットワークアドレスは「１０．１００．３．１００」であるとする。本実施の形態では、これらのネットワークアドレスのうち、先頭部分の「１０．１００．１」，「１０．１００．２」，「１０．１００．３」がネットワークＩＤを示し、後半部分の「１００」がホストＩＤを示すものとする。また、Ｎｏｄｅ１〜Ｎｏｄｅ４のネットワークアドレスのうち、ネットワークＩＤは接続先であるルータＲＴ２のネットワークＩＤ（すなわち、「１０．１００．２」）と同一であり、ホストＩＤはそれぞれユニークな値に設定されているとする。同様に、Ｎｏｄｅ５〜Ｎｏｄｅ７のネットワークアドレスのうち、ネットワークＩＤは接続先であるルータＲＴ３のネットワークＩＤ（すなわち、「１０．１００．３」）と同一であり、ホストＩＤはそれぞれユニークな値に設定されているとする。
【００５５】
ところで、いずれかのＮｏｄｅから送信されるブロードキャストメッセージは、同一のネットワークＩＤをもつ機器へ転送されるので、図４および図５に示すようなネットワーク構成を採用した場合には、いずれかのＮｏｄｅから送信されたブロードキャストメッセージは、当該Ｎｏｄｅが接続されているルータおよび当該ルータに共通に接続されている他のＮｏｄｅのみに転送される。一例として、Ｎｏｄｅ１から送信されたブロードキャストメッセージは、Ｎｏｄｅ２，Ｎｏｄｅ３およびルータＲＴ２には転送されるが、Ｎｏｄｅ５〜Ｎｏｄｅ７およびルータＲＴ１，ＲＴ２には転送されない。
【００５６】
図４を参照して、初期状態として、Ｎｏｄｅ１〜Ｎｏｄｅ７の各々がデータＡおよびデータＢを同期して保持しているとする。また、Ｎｏｄｅ１〜Ｎｏｄｅ７の各々は、これらのデータを管理するためのリストも保持しているものとする。図４に示すような状態において、ユーザ操作などに応じて、Ｎｏｄｅ１がオンラインからオフラインに変更されたとし、その後、相当の期間が経過した後の状態が図５に示される。
【００５７】
図５を参照して、Ｎｏｄｅ１がオフラインであった期間において、ネットワークシステムＳＹＳにおいて同期して保持されている共有データが追加され、オフラインであったＮｏｄｅ１を除く他のＮｏｄｅ間では、データＡ〜データＦの計６つの共有データが同期されているものとする。なお、共有データの追加に伴って、Ｎｏｄｅ２〜Ｎｏｄｅ７の各々が保持するリストの内容についても更新されるため、Ｎｏｄｅ１が保持するリストの内容とは異なったものとなっている。
【００５８】
このような状態において、Ｎｏｄｅ１がオフラインからオンラインに変更され、ネットワークシステムＳＹＳに再参加した場合の、共有データの同期処理について説明する。
【００５９】
図６は、Ｎｏｄｅ１が再参加した直後に実行される処理を示す図である。図７は、図６に示す処理の実行後におけるネットワークシステムＳＹＳの状態を示す図である。
【００６０】
図６を参照して、再参加したＮｏｄｅ１は、まず、リスト送信依頼を他Ｎｏｄｅへ送信する。なお、リスト送信依頼は、少なくとも１つ以上のＮｏｄｅへ送信すればよい。また、その送信方法は、特定のＮｏｄｅへ直接送信してもよいし、同一のネットワークＩＤをもつＮｏｄｅへ一括送信するブロードキャスト送信でもよいし、特定の複数のＮｏｄｅを指定したマルチキャスト送信であってもよい。
【００６１】
このリスト送信依頼を受信したいずれかの他Ｎｏｄｅは、自己の保持するリストをリスト送信依頼元であるＮｏｄｅ１へ返送する。なお、リスト送信依頼をブロードキャスト送信する場合には、送信先が既知である必要はなく、当該リスト送信依頼に応答して返送されたリストに基づいて、存在するＮｏｄｅを確認してもよい。この場合には、Ｎｏｄｅ１は、複数のリストを受信することができるが、更新日が最新のリストのみを格納するようにすればよい。
【００６２】
図７を参照して、Ｎｏｄｅ１は、上述のリスト送信依頼の送信とともに、当該時点で保持しているリストを更新前リストとしてコピーする。この更新前リストは、取得対象の（同期すべき）共有データを特定するための基準となるものであり、コピーと同時に上書きを禁止しておくことが好ましい。そして、Ｎｏｄｅ１は、他Ｎｏｄｅから受信したリストを最新リストとして格納する。
【００６３】
図８は、Ｎｏｄｅ１が保持するリストの一例を示す図である。図８（ａ）は、更新前リスト（再参加直後のリスト）の一例を示し、図８（ｂ）は、他Ｎｏｄｅから取得した最新リストの一例を示す。
【００６４】
図８に示すように、リスト、更新前リスト、最新リストの各々には、同期して保持されている共有データの別に、「データ名」、「サイズ」、「更新日時」といった属性情報が規定されているとする。これらの属性情報は、同期対象の共有データが追加される際に生成または追加される。なお、リストに格納される属性情報は、これらの情報に限られることなく、「重要度」などの他の属性情報を含むようにしてもよい。
【００６５】
Ｎｏｄｅ１は、他Ｎｏｄｅからリストを受信すると、更新前リスト（図８（ａ））と最新リスト（図８（ｂ））との差分に基づいて、取得対象の共有データを特定する。図８に示す例では、データＣ〜データＦが取得対象の共有データであることが特定される。そして、Ｎｏｄｅ１は、これらの取得対象の共有データの数や合計サイズといった、データ情報などに基づいて、「単独モード」および「複数モード」のいずれによって、これらの共有データを取得するのかを決定する。
【００６６】
（同期モード選択処理）
以下、「単独モード」および「複数モード」の選択処理について説明する。
【００６７】
上述したように、取得対象の共有データの数や合計サイズといったデータ情報などに基づいて、同期モード選択を行なうことができるが、本実施の形態では、取得対象の共有データの合計サイズに基づいて、同期モードを決定する方法について例示する。
【００６８】
具体的には、データ格納部１２０の共有データ保持部１１６（図３）の格納領域のサイズに対する、取得対象の共有データの合計サイズの割合に基づいて、同期モードを判断する。これは、共有データ保持部１１６（図３）のサイズは、各Ｎｏｄｅの能力に応じて設定されると考えられるため、取得対象の共有データをこの各Ｎｏｄｅの能力を基準として比較することで、共有データの取得先のＮｏｄｅ数を決定するものである。
【００６９】
本実施の形態においては、一例として、この割合のしきい値を２０％とする。そのため、たとえば、データ格納部１２０の共有データ保持部１１６が１０，０００ＫＢの格納領域を有しているとすれば、取得対象の共有データの合計サイズが２，０００ＫＢ未満であれば「単独モード」が選択され、取得対象の共有データの合計サイズが２，０００ＫＢ以上であれば「複数モード」が選択される。
【００７０】
図８に示す例では、取得対象の共有データの合計サイズは、１，８８０ＫＢであり、上記の条件下においては「単独モード」が選択される。
【００７１】
当然のことながら、上述した割合のしきい値は、ネットワーク環境や各Ｎｏｄｅ環境などを考慮して、適切な値に設定することが好ましい。また、同期モードの選択は、取得対象の共有の数や、ファイル種類、アクセス数、重要度といったその他のデータ情報に基づいて行なってもよい。
【００７２】
（単独モード）
「単独モード」は、いずれか１つのＮｏｄｅから取得対象の共有データを取得するモードである。特に、本実施の形態では、共有データを要求するＮｏｄｅと通信経路上において近接するＮｏｄｅからなる候補群から取得先の共有データを取得するモードである。なお、通信経路上において近接するＮｏｄｅを特定する方法としては、既知のネットワークアドレスに基づいて決定することもできるが、本実施の形態では、ブロードキャストメッセージが到達する範囲（すなわち、ネットワークＩＤが同じ）にあるＮｏｄｅを近接するＮｏｄｅとして特定する。
【００７３】
さらに、本実施の形態では、近接する複数のＮｏｄｅが存在する場合には、各時点での処理能力が最も高い（あるいは、最も余裕がある）Ｎｏｄｅを特定し、当該特定したＮｏｄｅから取得対象の共有データを取得する。より具体的には、共有データを取得するＮｏｄｅから各候補のＮｏｄｅに対して、特定のコマンド（代表的に、ｐｉｎｇコマンド）を送信し、そのレスポンスが最も早いものを単独モードにおける共有データの取得先として決定する。
【００７４】
図９は、単独モードにおける共有データの取得先を決定するための処理を説明するための図である。図１０は、単独モードにおける共有データ取得中の処理を説明するための図である。図１１は、単独モードにおける共有データの取得処理が完了した状態を示す図である。
【００７５】
図９を参照して、Ｎｏｄｅ１は、取得対象の共有データの同期モードを「単独モード」と判断すると、同じネットワークＩＤをもつＮｏｄｅ２，Ｎｏｄｅ３，Ｎｏｄｅ４にｐｉｎｇコマンドをそれぞれ送信する。なお、同じネットワークＩＤをもつＮｏｄｅが既知でない場合には、Ｎｏｄｅ１からブロードキャストメッセージを送信し、このブロードキャストメッセージに対する応答に基づいて、同じネットワークＩＤをもつＮｏｄｅを特定すればよい。
【００７６】
Ｎｏｄｅ１からｐｉｎｇコマンドを受信したＮｏｄｅ２，Ｎｏｄｅ３，Ｎｏｄｅ４の各々は、所定のレスポンスをＮｏｄｅ１に送信する。Ｎｏｄｅ１は、ｐｉｎｇコマンドの送信後、Ｎｏｄｅ２，Ｎｏｄｅ３，Ｎｏｄｅ４のそれぞれからレスポンスを受信するまでの時間を計測し、最もレスポンスの早かったＮｏｄｅを特定する。一例として、ｐｉｎｇコマンドに対するレスポンスの順序が、Ｎｏｄｅ２、Ｎｏｄｅ３、Ｎｏｄｅ４であったとすると、Ｎｏｄｅ１は、Ｎｏｄｅ２を単独モードにおける共有データの取得先として決定する。
【００７７】
このように共有データの取得先を決定すると、Ｎｏｄｅ１は、図１０に示すように、取得対象の共有データの送信依頼をＮｏｄｅ２に送信する。Ｎｏｄｅ２は、Ｎｏｄｅ１からのデータ送信依頼を受信すると、指定された共有データを読み出し、当該読み出した共有データをＮｏｄｅ１へ順次送信する。
【００７８】
Ｎｏｄｅ１は、Ｎｏｄｅ２から送信される共有データを自己の共有データ保持部１１６（図３）に格納するとともに、共有データを管理するためのリストの内容を更新する。
【００７９】
以上のような一連の処理が完了すると、ネットワークシステムＳＹＳは、上述の図１１に示すような状態になる。なお、取得対象の共有データをすべて格納し終わると、Ｎｏｄｅ１は、更新前リストおよび最新リストを消去または無効化する。
【００８０】
なお、図８に示すように取得対象の共有データが複数存在する場合には、対象の共有データを一括取得、分割取得、順次取得のいずれの方法で取得してもよい。これらの送信方法は、予め決定しておく場合の他、ネットワーク環境およびＮｏｄｅ環境（ＣＰＵや使用頻度など）などに応じて、最適な方法を動的に決定してもよい。また、共有データを順次取得する場合の順序については、更新日時が新しい順、重要度の高い順、ユーザアクセス数が多い順などのように、共有データのデータ情報に基づいて、適切に決定してもよい。あるいは、データ取得先のＮｏｄｅが独自に決定してもよい。
【００８１】
上述の例では、特定のコマンドに対するレスポンスの早さに基づいて、データ取得先のＮｏｄｅを決定する方法について例示したが、ネットワーク環境、Ｎｏｄｅ環境、ユーザアクセス状況（使用状況など）などに基づいて判断してもよい。あるいは、ユーザが手動でデータ取得先のＮｏｄｅを決定してもよい。さらに、上述したような方法を複数併せて、判断してもよい。
【００８２】
（複数モード）
「複数モード」は、複数のＮｏｄｅから取得対象の共有データを分散的に取得するモードである。
【００８３】
図１２は、Ｎｏｄｅが保持するリストの別の一例を示す図である。図１２（ａ）は、更新前リスト（再参加直後のリスト）の一例を示し、図１２（ｂ）は、他Ｎｏｄｅから取得した最新リストの一例を示す。
【００８４】
図１２（ｂ）に示す最新リストの内容は、図８（ｂ）に示す最新リストに比較して、データＢについての更新日時が変更されているものである。すなわち、図１２（ｂ）は、Ｎｏｄｅ１がオフラインであった期間において、共有データとしてデータＣ〜データＦが追加されるとともに、データＢが更新された場合を示す。
【００８５】
更新前リスト（図１２（ａ））と最新リスト（図１２（ｂ））との差分によれば、データ名での差分により、追加されたデータＣ〜データＦが取得対象の共有データであることが特定され、更新日時（または、サイズ）での差分により、データＢが取得対象の共有データであることが特定される。
【００８６】
図１２に示す例では、取得対象の共有データの合計サイズは、３，５５９ＫＢであり、その割合は３５．５９％となるので、上記の条件下においては「複数モード」が選択される。
【００８７】
「複数モード」が選択されると、Ｎｏｄｅ１は、共有データの取得先となる複数のＮｏｄｅを決定する。この取得先の候補は、同じネットワークシステムＳＹＳに所属するすべてのＮｏｄｅとすることができる。そして、これらの候補に対して、取得対象の共有データの取得先を所定の順序で候補のＮｏｄｅに割当てることで、取得先を分散させることができる。
【００８８】
特に、本実施の形態のように、取得対象の共有データの数に比較して、候補のＮｏｄｅの数が多い場合には、候補のＮｏｄｅのうち、以下に示すような手順に従って、より適切なものを共有データの取得先に決定することが好ましい。
【００８９】
まず、Ｎｏｄｅ１は、最新リストの内容を並び替える。ここでの並び替えは、各データのサイズが降順となるように行なわれる。これは、取得対象の共有データのサイズに基づいて、取得先のＮｏｄｅを決定するためである。
【００９０】
より具体的には、所定のしきい値に基づいて、そのサイズが相対的に大きな（サイズがしきい値以上の）共有データと、そのサイズが相対的に小さな（サイズがしきい値未満の）共有データとを区別し、そのサイズが相対的に大きな共有データについては、近接したＮｏｄｅからなる候補群のいずれかから取得するとともに、そのサイズが相対的に小さな共有データについては、それ以外のＮｏｄｅ（遠隔のＮｏｄｅ）からなる候補群のいずれかから取得する。これにより、ネットワーク負荷が大きな共有データについては、その伝送距離を相対的に小さくし、ネットワーク負荷がそれほど大きくない共有データについては、その伝送距離を相対的に大きくすることで、ネットワークシステムＳＹＳ全体での負荷バランスを調整することができる。
【００９１】
なお、ネットワークにおける近接あるいは遠隔との判断は、ネットワークアドレス（ネットワークＩＤ）に基づいて行なうことができる。すなわち、Ｎｏｄｅ１と同じルータＲＴ２に接続されたＮｏｄｅ２〜Ｎｏｄｅ４については近接Ｎｏｄｅと判断でき、Ｎｏｄｅ１と異なるルータＲＴ３に接続されたＮｏｄｅ５〜Ｎｏｄｅ７については遠隔Ｎｏｄｅと判断できる。あるいは、ブロードキャストメッセージを送信し、それが到達する範囲（すなわち、ネットワークＩＤが同じ）にあるＮｏｄｅを近接するＮｏｄｅであると判断することもできる。
【００９２】
図１３は、図１２（ｂ）に示す最新リストの並び替え後の状態を示す図である。図１３に示すリストは、図１２（ｂ）に示す最新リストをサイズに基づいて並び替えを行なったものであり、そのサイズが大きいものから順にファイルが並んでいる。なお、取得対象ではないデータＡについては、並び替え対象とされない。
【００９３】
図１３に示す並び替え後の最新リストにおいて、所定のしきい値を１，０００ＫＢとすると、当該しきい値を超えているデータＢおよびデータＥについては、近接Ｎｏｄｅ群のいずれかから取得され、その他のデータＦ、データＣ、データＤについては、遠隔Ｎｏｄｅ群のいずれかから取得されるように決定される。
【００９４】
このように、近接Ｎｏｄｅ群（Ｎｏｄｅ２〜Ｎｏｄｅ４）から取得すべきデータと、遠隔Ｎｏｄｅ群（Ｎｏｄｅ５〜Ｎｏｄｅ７）とに区別されると、Ｎｏｄｅ１は、それぞれのＮｏｄｅ群のいずれのＮｏｄｅに共有データの送信を依頼するかを決定する。より具体的には、上述の単独モードで取得先のＮｏｄｅを決定したのと同様に、それぞれのＮｏｄｅ群に含まれる各Ｎｏｄｅに対して、特定のコマンド（代表的に、ｐｉｎｇコマンド）をそれぞれ送信し、そのレスポンスの早さに基づいて、各Ｎｏｄｅ群から取得先を動的に決定する。
【００９５】
一例として、近接Ｎｏｄｅ群におけるｐｉｎｇコマンドに対するレスポンスの順序が、Ｎｏｄｅ２、Ｎｏｄｅ３、Ｎｏｄｅ４であったとすると、Ｎｏｄｅ１は、近接Ｎｏｄｅに割当てられたデータについて、その並び順（図１３）に従って、Ｎｏｄｅ２をデータＢの取得先に決定し、Ｎｏｄｅ３をデータＥの取得先にそれぞれ決定する。一方、遠隔Ｎｏｄｅ群におけるｐｉｎｇコマンドに対するレスポンスの順序が、Ｎｏｄｅ５、Ｎｏｄｅ６、Ｎｏｄｅ７であったとすると、Ｎｏｄｅ１は、遠隔Ｎｏｄｅに割当てられたデータについて、その並び順に従ってそれぞれ、Ｎｏｄｅ５をデータＦの取得先に決定し、Ｎｏｄｅ６をデータＣの取得先に決定し、Ｎｏｄｅ７をデータＤの取得先に決定する。
【００９６】
上述の例では、特定のコマンドに対するレスポンスの早さに基づいて、各Ｎｏｄｅ群におけるデータ取得先のＮｏｄｅを決定する方法について例示したが、ネットワーク環境、Ｎｏｄｅ環境、ユーザアクセス状況（使用状況など）などに基づいて判断してもよい。あるいは、ユーザが手動でデータ取得先のＮｏｄｅを決定してもよい。さらに、上述したような方法を複数併せて、判断してもよい。
【００９７】
図１４は、複数モードにおける各Ｎｏｄｅへの送信依頼を行なう処理を説明するための図である。図１５は、複数モードにおける各Ｎｏｄｅから共有データを取得する処理を説明するための図である。
【００９８】
図１４を参照して、上述のような処理に従って、取得対象の共有データについての取得先を決定すると、Ｎｏｄｅ１は、取得先の各Ｎｏｄｅに対して、共有データの送信依頼を送信する。図１５に示すように、データ送信依頼を受信した各Ｎｏｄｅは、指定された共有データを読み出し、当該読み出した共有データをＮｏｄｅ１へ送信する。
【００９９】
Ｎｏｄｅ１は、取得先の各Ｎｏｄｅから送信される共有データを自己の共有データ保持部１１６（図３）に順次格納するとともに、共有データを管理するためのリストの内容を更新する。
【０１００】
以上のような一連の処理が完了すると、ネットワークシステムＳＹＳは、上述の図１１に示すような状態になる。なお、取得対象の共有データをすべて格納し終わると、Ｎｏｄｅ１は、更新前リストおよび最新リストを消去または無効化する。
【０１０１】
なお、各Ｎｏｄｅに依頼する共有データが複数存在する場合には、対象の共有データを一括取得、分割取得、順次取得のいずれの方法で取得してもよい。
【０１０２】
また、取得先のＮｏｄｅの各々に対して、対象の共有データについての送信タイミングを示す指示情報を付加したデータ送信依頼を送信してもよい。すなわち、Ｎｏｄｅ１が、所定の順序に従って共有ファイルを受信できるように、各取得先のＮｏｄｅからの送信タイミングを指定することもできる。このようにタイミングをずらすことで、ネットワークシステムＳＹＳにおける、負荷の急激な上昇を抑制できる。
【０１０３】
また、共有データのサイズが大きい場合には、１つの共有ファイルを複数に分割した上で、送信するように依頼してもよい。
【０１０４】
（処理手順）
以上の処理をまとめると、図１６に示すような処理シーケンスとして表わすことができる。
【０１０５】
図１６は、この発明の実施の形態に従う同期処理に係るシーケンス図である。
図１６を参照して、ユーザが、ネットワークシステムＳＹＳに再参加するようにＮｏｄｅ１を操作する（ステップＳ１００）と、Ｎｏｄｅ１は、リスト送信依頼を作成し（ステップＳ１０２）、ネットワークシステムＳＹＳの他Ｎｏｄｅへ当該作成したリスト送信依頼を送信する（ステップＳ１０４）。
【０１０６】
このリスト送信依頼に応答して、ネットワークシステムＳＹＳを構成する少なくとも１つのＮｏｄｅは、当該Ｎｏｄｅ自身が保持するリストをＮｏｄｅ１へ送信する（ステップＳ１０６）。
【０１０７】
Ｎｏｄｅ１は、他Ｎｏｄｅから送信されたリストを最新リストとして格納する（ステップＳ１０８）。同時に、Ｎｏｄｅ１は、リスト送信依頼の送信タイミングで自己が保持するリストを更新前リストにコピーする。そして、Ｎｏｄｅ１は、更新前リストと最新リストとの差分により取得対象の共有データを特定する（ステップＳ１１０）。さらに、Ｎｏｄｅ１は、取得対象の共有データの数や合計サイズといった、データ情報などに基づいて、当該取得対象の共有データを取得する際の同期モードを決定する（ステップＳ１１２）。
【０１０８】
ステップＳ１１２において「単独モード」が選択されると、Ｎｏｄｅ１は、共有データの送信依頼先の候補Ｎｏｄｅに対して、ｐｉｎｇコマンドをそれぞれ送信する（ステップＳ１２０）。候補Ｎｏｄｅの各々は、このｐｉｎｇコマンドを受信すると、それに対するレスポンスをＮｏｄｅ１へ送信する（ステップＳ１２２）。
【０１０９】
Ｎｏｄｅ１は、ｐｉｎｇコマンドの送信後、候補Ｎｏｄｅのそれぞれからレスポンスを受信するまでの時間を計測し、最もレスポンスの早かったＮｏｄｅを、送信依頼先Ｎｏｄｅに決定する（ステップＳ１２４）。
【０１１０】
送信依頼先Ｎｏｄｅの決定後、Ｎｏｄｅ１は、対応の共有データを指定したデータ送信依頼を送信依頼先Ｎｏｄｅに送信する（ステップＳ１２６）。このデータ送信依頼に応答して、送信依頼先Ｎｏｄｅは、自己の保持する指定された共有データを読み出し、当該読み出した共有データをＮｏｄｅ１へ送信する（ステップＳ１２８）。
【０１１１】
送信依頼先Ｎｏｄｅから共有データを受信したＮｏｄｅ１は、当該共有データを自己の共有データ保持部１１６（図３）に格納する（ステップＳ１３０）。また、Ｎｏｄｅ１は、共有データを管理するためのリストの内容を更新する。
【０１１２】
一方、ステップＳ１１２において「複数モード」が選択されると、Ｎｏｄｅ１は、最新リストの内容を並び替えた後、取得対象の共有データを近接Ｎｏｄｅ群および遠隔Ｎｏｄｅ群の別に区分し、それぞれの群についての送信依頼先の候補Ｎｏｄｅを決定する（ステップＳ１４０）。さらに、Ｎｏｄｅ１は、Ｎｏｄｅ群の別に、共有データの送信依頼先の候補Ｎｏｄｅに対して、ｐｉｎｇコマンドをそれぞれ送信する（ステップＳ１４２）。候補Ｎｏｄｅの各々は、このｐｉｎｇコマンドを受信すると、それに対するレスポンスをＮｏｄｅ１へ送信する（ステップＳ１４４）。
【０１１３】
Ｎｏｄｅ１は、ｐｉｎｇコマンドの送信後、候補Ｎｏｄｅのそれぞれからレスポンスを受信するまでの時間を計測し、Ｎｏｄｅ群の別に、最もレスポンスの早かったＮｏｄｅを送信依頼先Ｎｏｄｅにそれぞれ決定する（ステップＳ１４６）。
【０１１４】
送信依頼先Ｎｏｄｅの決定後、Ｎｏｄｅ１は、対応の共有データを指定したデータ送信依頼を送信依頼先Ｎｏｄｅにそれぞれ送信する（ステップＳ１４８）。各々のデータ送信依頼に応答して、送信依頼先Ｎｏｄｅは、自己の保持する指定された共有データを読み出し、当該読み出した共有データをＮｏｄｅ１へ送信する（ステップＳ１５０）。
【０１１５】
送信依頼先Ｎｏｄｅからそれぞれ共有データを受信したＮｏｄｅ１は、当該共有データを自己の共有データ保持部１１６（図３）に格納する（ステップＳ１５２）。また、Ｎｏｄｅ１は、共有データを管理するためのリストの内容を更新する。
【０１１６】
（共有データ追加処理）
次に、図１７を参照して、本実施の形態に従うネットワークシステムＳＹＳで保持される共有データを追加するための処理について説明する。
【０１１７】
以下の説明では、一例として、ネットワークシステムＳＹＳが図５に示すような状態にある場合に、共有データとしてデータＧがＮｏｄｅ２に追加される場合について例示する。
【０１１８】
図１７は、この発明の実施の形態に従う共有データ追加処理に係るシーケンス図である。
【０１１９】
図１７を参照して、ユーザ操作などによって、Ｎｏｄｅ２でデータＧが生成され、またはＮｏｄｅ２にデータＧが与えられると、Ｎｏｄｅ２は、当該データＧを自己の共有データ保持部１１６（図３）に格納する（ステップＳ２００）するとともに、共有データを管理するためのリストを更新または生成する（ステップＳ２０２）。すなわち、Ｎｏｄｅ２は、自己のリストにデータＧのエントリを追加する。さらに、Ｎｏｄｅ２は、他のＮｏｄｅ３〜Ｎｏｄｅ７のそれぞれに対して更新メッセージを送信し（ステップＳ２０４）、共有データが追加されたことを通知する。
【０１２０】
この更新メッセージを受信したＮｏｄｅ３〜Ｎｏｄｅ７の各々は、当該更新されたデータの送信依頼を生成（ステップＳ２０６）し、生成したデータ送信依頼をＮｏｄｅ２へ送信する（ステップＳ２０８）。Ｎｏｄｅ２は、Ｎｏｄｅ３〜Ｎｏｄｅ７のいずれかからデータ送信依頼を受信すると、自己の共有データ保持部１１６（図３）に格納しているデータＧを読み出すとともに、データＧに相当するリストの差分を生成する（ステップＳ２１０）。さらに、Ｎｏｄｅ２は、データ送信依頼の送信元のＮｏｄｅ（Ｎｏｄｅ３〜Ｎｏｄｅ７）に対して、データＧおよびリスト差分を送信する（ステップＳ２１２）。
【０１２１】
データＧおよびリスト差分を受信したＮｏｄｅ（Ｎｏｄｅ３〜Ｎｏｄｅ７）は、データＧを自己の共有データ保持部１１６（図３）に格納する（ステップＳ２１４）するとともに、共有データを管理するためのリストをリスト差分に従って更新する（ステップＳ２１６）。ステップＳ２１４およびステップＳ２１６が完了した各Ｎｏｄｅは、データ更新完了通知をＮｏｄｅ２に送信する（ステップＳ２１８）。
【０１２２】
上述のステップＳ２０４およびステップＳ２０８において、送信Ｎｏｄｅ（Ｎｏｄｅ２）から受信Ｎｏｄｅ（Ｎｏｄｅ３〜Ｎｏｄｅ７）へ更新メッセージを送信し、さらに受信Ｎｏｄｅから送信Ｎｏｄｅがデータ送信依頼を受信した場合に限って、追加された共有データの送信を開始するのは、受信Ｎｏｄｅが高負荷状態であったときなどのように、新たな共有データを追加できない場合に、共有データを受信Ｎｏｄｅに無理に送信しないためである。そのため、Ｎｏｄｅ２から更新メッセージを送信した後、データ送信依頼を受信できなかった他のＮｏｄｅについては、Ｎｏｄｅ２が更新メッセージ送信からの経過時間を管理し、相当時間経過後もデータ送信依頼を受信できないＮｏｄｅについては、Ｎｏｄｅ２が更新メッセージを再送する（ステップＳ２２０）。
【０１２３】
なお、上述のステップＳ２２０のように更新メッセージを再送する構成に代えて、Ｎｏｄｅ２がすべての他Ｎｏｄｅからデータ送信依頼を受信するまで待ち続けるようにしてもよい。
【０１２４】
また、上述のステップＳ２１０およびＳ２１２では、Ｎｏｄｅ２が追加された共有データについてのリスト差分を他Ｎｏｄｅへ送信する構成について例示するが、更新後のリスト、すなわちデータＧが追加された後のＮｏｄｅ２が保持するリスト自体を他Ｎｏｄｅへ送信するようにしてもよい。あるいは、Ｎｏｄｅ２から追加されたデータＧを受信する各Ｎｏｄｅにおいて、当該共有データについてのリストの内容を更新する場合には、リスト差分やリスト自体を送信する必要はない。本実施の形態では、共有データの重要度をリストの項目として含む構成を採用するので、このような場合には、Ｎｏｄｅ２からデータＧを送信する際に、当該共有データの属性情報（重要度）をデータＧに付加して各Ｎｏｄｅへ送信すればよい。そして、データＧを受信した各Ｎｏｄｅにおいて、データＧに付加された属性情報に基づいてリストを更新すればよい。
【０１２５】
（同期処理と共有データ追加処理との競合）
上述の同期処理についての説明では、処理中に共有データが追加されないことを前提としたが、これらの処理が競合する場合もある。すなわち、図５に示すネットワークシステムＳＹＳにおいて、Ｎｏｄｅ１が再参加した後に共有データの同期処理が実行されている状態で、図１７のステップＳ２０４に示すような更新メッセージをＮｏｄｅ１が受信した場合の処理について説明する。
【０１２６】
このように競合した場合の処理の例として、Ｎｏｄｅ１は、更新メッセージ受信前に取得していた更新前リストおよび最新リストに基づいて、共有データの同期処理を完了させた後、図１７のステップＳ２０８に示すようなデータ送信依頼をＮｏｄｅ１に送信する。Ｎｏｄｅ２からはリスト差分が送信されるので、Ｎｏｄｅ１は当該リスト差分に基づいて、必要な共有データを取得する。
【０１２７】
このように競合した場合の処理の別の例として、Ｎｏｄｅ１は、更新メッセージを受信すると、可能な限り早い時期にデータ送信依頼をＮｏｄｅ２に送信する。そして、Ｎｏｄｅ１は、更新メッセージ受信前に取得していた一時リストと、Ｎｏｄｅ２から受信するリスト差分とに基づいて、必要な共有データを並行的に取得する。このとき、ネットワークの状況やデータ送信依頼先のＮｏｄｅの負荷状況に応じて、他Ｎｏｄｅに送信依頼するデータ量を調整することが好ましい。また、リスト差分に基づいて一時リストを更新した上で、共有データの取得を行なう場合には、更新後の一時リストをさらに並び替えて、送信依頼先を再決定することが好ましい。
【０１２８】
なお、上述したように、共有データの追加処理において、リスト自体が送信される場合には、何らかの共有データが追加された場合に、最新のリストが配布されるので、図１６のステップＳ１０２およびＳ１０４に示すようなリスト送信依頼の作成および送信を不要としてもよい。このように処理を削減することで、より効率を高めることができる。
【０１２９】
（実施の形態における効果）
この発明の実施の形態によれば、複数の情報処理装置の間で共有データを同期しているネットワークシステムに対して、情報処理装置が参加した場合に、同期するために取得すべき共有データに応じて、その取得先の情報処理装置を単一または複数のいずれかに動的に決定できる。単一の情報処理装置から共有データを取得する場合には、迅速に同期処理を完了させることができる一方、複数の情報処理装置から共有データを取得する場合には、ネットワークシステムおける同期処理に係る負荷の集中を回避できる。そのため、特定の情報処理装置に同期処理に係る負荷が集中することを回避できる。
【０１３０】
また、この発明の実施の形態によれば、共有データのサイズといったデータ情報に基づいて、相対的に大きなサイズの共有データは、共有データを必要とする情報処理装置から近接する情報処理装置から取得する一方で、相対的に小さなサイズの共有データは、共有データを必要とする情報処理装置から離れた情報処理装置から取得する。これにより、ネットワークシステム全体としての負荷バランスを調整することができる。
【０１３１】
［実施の形態の第１変形例］
上述の実施の形態では、取得対象の共有データの数などに基づいて、同期モードを決定する構成について例示したが、以下では、この同期モードの決定に際して、ネットワークシステムＳＹＳの状態を考慮する構成について例示する。なお、この発明の実施の形態の第１変形例に従うネットワークシステムＳＹＳの概略構成は、図１と同様であり、情報処理装置ＰＣのハードウェア構成および制御構造は、それぞれ図２および図３と同様であるので、詳細な説明は繰返さない。
【０１３２】
本第１変形例では、上述の実施の形態と同様に、Ｎｏｄｅ１がネットワークシステムＳＹＳに再参加すると、Ｎｏｄｅ１は、更新前リスト１３６および最新リスト１３８を取得する（図７と同様）。
【０１３３】
図７に示すような状態になった後、Ｎｏｄｅ１は、ネットワークシステムＳＹＳを構成するすべてのＮｏｄｅに対して、ｐｉｎｇコマンドをそれぞれ送信する。そして、Ｎｏｄｅ１は、ｐｉｎｇコマンドの送信後に各Ｎｏｄｅからレスポンスを受信するまでの応答時間をそれぞれ計測する。なお、レスポンスのデータ量はいずれも同一であるとする。
【０１３４】
Ｎｏｄｅ１は、この計測した各Ｎｏｄｅについての応答時間が、予め定めた目標値未満であれば、同期モードを「単独モード」に決定する。そして、その応答時間が最も小さいＮｏｄｅを共有データの送信依頼先に指定する。それ以外の場合には、同期モードが「複数モード」に決定される。
【０１３５】
その他の処理については、上述の実施の形態と同様であるので、詳細な説明は繰返さない。
【０１３６】
この発明の実施の形態の第１変形例によれば、ネットワークシステムＳＹＳの状態をより反映して、同期モードおよび送信依頼先を決定できる。
【０１３７】
［実施の形態の第２変形例］
上述の実施の形態では、取得対象の共有データの数などに基づいて、同期モードを決定する構成について例示したが、以下では、この同期モードの決定に際して、ネットワークシステムＳＹＳの状態を考慮する構成について例示する。なお、この発明の実施の形態の第２変形例に従うネットワークシステムＳＹＳの概略構成は、図１と同様であり、情報処理装置ＰＣのハードウェア構成および制御構造は、それぞれ図２および図３と同様であるので、詳細な説明は繰返さない。
【０１３８】
本第２変形例では、上述の実施の形態と同様に、Ｎｏｄｅ１がネットワークシステムＳＹＳに再参加すると、Ｎｏｄｅ１は、更新前リスト１３６および最新リスト１３８を取得する（図７と同様）。
【０１３９】
図７に示すような状態になった後、Ｎｏｄｅ１は、ネットワークシステムＳＹＳを構成するすべてのＮｏｄｅに対して、ｐｉｎｇコマンドをそれぞれ送信する。このとき、ｐｉｎｇコマンドには、所定のデータ量のレスポンスを返信するような指令を付加しておく。そして、Ｎｏｄｅ１は、ｐｉｎｇコマンドの送信後に各Ｎｏｄｅからレスポンスを受信するまでの応答時間をそれぞれ計測する。さらに、Ｎｏｄｅ１は、ネットワークシステムＳＹＳにおけるＮｏｄｅ１と各Ｎｏｄｅとの間のデータ伝送速度（代表的に、Ｂｉｔ／ｓｅｃ）を算出する。すなわち、レスポンスのデータ量がＢ［Ｂｉｔ］であり、対応する応答時間がｔ［ｓｅｃ］とした場合に、Ｎｏｄｅ１は、データ伝送速度＝Ｂ／ｔの関係式に従って、それぞれのデータ伝送速度をそれぞれ算出する。
【０１４０】
続いて、Ｎｏｄｅ１は、取得対象の共有データの合計サイズ（図８参照）をデータ伝送速度で除算して、Ｎｏｄｅ１と各Ｎｏｄｅとの間で、取得対象の全共有データの取得に要する見込時間をそれぞれ算出する。そして、Ｎｏｄｅ１は、各Ｎｏｄｅについての見込時間を予め定めた目標取得完了時間と比較し、いずれかのＮｏｄｅについての見込時間が目標取得完了時間未満であれば、同期モードを「単独モード」に決定する。そして、その見込時間が最も小さいＮｏｄｅを共有データの送信依頼先に指定する。
【０１４１】
一方、Ｎｏｄｅ１は、いずれのＮｏｄｅについての見込時間も目標取得完了時間以上であれば、同期モードを「複数モード」に決定する。そして、Ｎｏｄｅ１は、全共有データの取得に要する時間が目標取得完了時間内に収まるように、取得対象データの送信依頼先を分散して決定する。
【０１４２】
その他の処理については、上述の実施の形態と同様であるので、詳細な説明は繰返さない。
【０１４３】
この発明の実施の形態の第２変形例によれば、ネットワークシステムＳＹＳの状態をより反映して、同期モードおよび送信依頼先を決定できる。
【０１４４】
［実施の形態の第３変形例］
再参加したＮｏｄｅがオフラインであった期間に追加または変更される共有データの数は、当該オフラインの期間に略比例する可能性が高い。そのため、いずれかのＮｏｄｅがネットワークシステムに再参加した場合には、その再参加する直前のオフライン期間の長さに基づいて、同期モードを決定してもよい。
【０１４５】
すなわち、オフライン期間が長くなるほど、取得対象の共有ファイルは増加する可能性が高いので、このような場合には、同期モードとして「複数モード」を選択することが好ましい。
【０１４６】
そこで、各Ｎｏｄｅは、ネットワークシステムから離脱してから時間計測を開始し、ネットワークシステムに再参加した時点での時間（オフライン期間の長さ）が所定のしきい時間未満であれば、同期モードを「単独モード」に決定する。それ以外の場合には、同期モードは「複数モード」に決定される。
【０１４７】
その他の処理については、上述の実施の形態と同様であるので、詳細な説明は繰返さない。
【０１４８】
この発明の実施の形態の第３変形例によれば、Ｎｏｄｅのネットワークシステムへの再参加時に、同期モードを迅速に決定できる。
【０１４９】
［実施の形態の第４変形例］
上述の実施の形態では、取得対象の共有データの数に基づいて、同期モードを決定する構成について例示したが、複数の項目から総合的に判断してもよい。
【０１５０】
具体的には、取得対象のデータのデータ情報の各項目に対して重み付けを行なった上でその総和を計算し、その総和が所定のしきい値未満であれば、同期モードを「単独モード」に決定し、それ以外の場合には、同期モードを「複数モード」に決定する。
【０１５１】
このような重み付け計算の具体例としては、各共有データの重要度、各共有データに対するユーザアクセス数（アクセス数が多いほど値が大きい）、各共有データの更新日時（更新日が新しいほど値が大きい）などが挙げられる。
【０１５２】
この発明の実施の形態の第４変形例によれば、取得対象の共有データを総合的に勘案して、同期モードを決定できる。
【０１５３】
［実施の形態の第５変形例］
上述の実施の形態では、オフラインであったＮｏｄｅがネットワークシステムに再参加した時点で同期モードが一旦決定されると、その同期モードに従って同期処理が実行される構成について例示した。しかしながら、「単独モード」が選択された後、ネットワーク環境やＮｏｄｅ環境などが変化し、共有データの送信依頼先のＮｏｄｅでの負荷が増大した場合などには、同期処理を他のＮｏｄｅに分散させることが好ましい。
【０１５４】
具体的には、共有データの送信依頼先のＮｏｄｅ自身が共有データの送信を適切に実行できないと判断すると、依頼内容の一部を他のＮｏｄｅへ転送し、当該転送先のＮｏｄｅが当該依頼内容に従って、共有データの送信を継続する。なお、転送される依頼内容には、共有データの特定情報および共有データの送信先が含まれる。
【０１５５】
あるいは、共有データの送信を依頼したＮｏｄｅが、依頼先からの共有データの送信に要する時間を監視しておき、送信に要する時間が所定のしきい値を超過した場合には、データ送信依頼を他のＮｏｄｅへ再送信する。なお、データ送信依頼を再送信する先のＮｏｄｅは、ｐｉｎｇコマンドに対するレスポンスなどに基づいて決定することができる。
【０１５６】
この発明の実施の形態の第５変形例によれば、ネットワークシステムの状況の変化に応じて、適切に同期モードを決定できる。
【０１５７】
［その他の実施の形態］
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１５８】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１５９】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０１６０】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０１６１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１６２】
【図１】この発明の実施の形態に従うネットワークシステムの概略構成図である。
【図２】この発明の実施の形態に従う情報処理装置の代表例であるパーソナルコンピュータの概略のハードウェア構成を示す模式図である。
【図３】この発明の実施の形態に従う情報処理装置における制御構造を示す概略図である。
【図４】Ｎｏｄｅ１が離脱する直前のネットワークシステムの状態を示す図である。
【図５】Ｎｏｄｅ１が再参加した直後のネットワークシステムの状態を示す図である。
【図６】Ｎｏｄｅ１が再参加した直後に実行される処理を示す図である。
【図７】図６に示す処理の実行後におけるネットワークシステムの状態を示す図である。
【図８】Ｎｏｄｅ１が保持するリストの一例を示す図である。
【図９】単独モードにおける共有データの取得先を決定するための処理を説明するための図である。
【図１０】単独モードにおける共有データ取得中の処理を説明するための図である。
【図１１】単独モードにおける共有データの取得処理が完了した状態を示す図である。
【図１２】Ｎｏｄｅが保持するリストの別の一例を示す図である。
【図１３】図１２（ｂ）に示す最新リストの並び替え後の状態を示す図である。
【図１４】複数モードにおける各Ｎｏｄｅへの送信依頼を行なう処理を説明するための図である。
【図１５】複数モードにおける各Ｎｏｄｅから共有データを取得する処理を説明するための図である。
【図１６】この発明の実施の形態に従う同期処理に係るシーケンス図である。
【図１７】この発明の実施の形態に従う共有データ追加処理に係るシーケンス図である。
【符号の説明】
【０１６３】
１０２  データ受信部、１０４  データ解析部、１０６  データ操作部、１０８  リスト管理部、１１０  認証部、１１２  ネットワーク申請部、１１４  接続テーブル管理部、１１６  共有データ保持部、１１８  モード判断部、１２０  データ格納部、１２２  データ作成部、１２４  データ送信部、１３２  接続テーブル、１３４  リスト、１３６  更新前リスト、１３８  最新リスト、２００  ＣＰＵ、２０２  内部バス、２０４  ディスプレイ部、２０６  ネットワークインターフェイス（Ｉ／Ｆ）部、２０８  入力部、２１０  ハードディスク部、２１２  メモリ部、２１４  ＣＤ−ＲＯＭドライブ、２１６  フレキシブルディスクドライブ、ＮＷ  ネットワーク、ＰＣ，ＰＣ１〜ＰＣ７  情報処理装置、ＲＴ１，ＲＴ２，ＲＴ３  ルータ、ＳＹＳ  ネットワークシステム。
【図１】
2009230369.tif 000003
【図２】
2009230369.tif 000004
【図３】
2009230369.tif 000005
【図４】
2009230369.tif 000006
【図５】
2009230369.tif 000007
【図６】
2009230369.tif 000008
【図７】
2009230369.tif 000009
【図８】
2009230369.tif 000010
【図９】
2009230369.tif 000011
【図１０】
2009230369.tif 000012
【図１１】
2009230369.tif 000013
【図１２】
2009230369.tif 000014
【図１３】
2009230369.tif 000015
【図１４】
2009230369.tif 000016
【図１５】
2009230369.tif 000017
【図１６】
2009230369.tif 000018
【図１７】
2009230369.tif 000019