(57)【要約】【課題】ノード間の接続が不安定である場合やシステムを構成する各ノード間との通信方式が混在する場合でも、通信の処理量が増加即ち余計な通信処置を行うことなくデータの同期を確実に行う。【解決手段】  ネットワークを介してデータ通信可能に接続された複数のノードの夫々に、互いに識別可能な仮想ディレクトリを設けることで前記複数のノードでデータの同期を行うデータ同期システムにおいて、仮想ディレクトリのデータの変更を検出する場合に、前記ネットワークを介して他のノードにデータの変更があった旨を示すデータ変更通知を通知する。データ変更通知を受信することで同期要求を要求し、変更されたデータのダウンロードを行う。データ変更通知に対して他のノードから受信可能信号を受信しない場合は、通信量の少ないペンディング信号を送信し続ける。このペンディング信号に対して他のノードから応答信号を受信する場合、データ変更通知を送信する。【選択図】図１
2007299266.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してデータ通信可能に接続された複数のノードのそれぞれに、互いに識別可能な仮想ディレクトリを設けることで前記複数のノードでデータの同期を行うデータ同期システムにおいて、
前記複数のノードのそれぞれに、
前記仮想ディレクトリ内に格納されたデータの変更を検出する検出手段と、
前記検出手段が前記データの変更を検出すると、前記ネットワークを介して他のノードにデータの変更があった旨を示すデータ変更通知を送信するデータ変更通知手段と、
前記データ変更通知の送信を受けた前記他のノードから送信された同期要求を受け前記変更されたデータを前記他のノードに送信する送信手段と、
を備えるとともに、
他のノードから送信された前記データ変更通知を受信することで該他のノードに同期要求を送信する同期要求送信手段と、
該同期要求により前記他のノードから送信された前記変更されたデータの受信を行うデータ受信手段と、
前記データ受信手段により受信した前記変更されたデータに基づいて、自己の仮想ディレクトリの変更を行う仮想ディレクトリ変更手段と、
を備えることを特徴とするデータ同期システム。
【請求項２】
請求項１に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記他のノードとのデータ通信の確立を問い合わせる信号を送信する問い合わせ信号を送信し、該問い合わせ信号に対して前記他のノードから受信可能信号を受信する場合に前記データ変更通知を送信し、
前記同期要求送信手段は、前記問い合わせ信号の受信に対し受信可能信号を返信することを特徴とするデータ同期システム。
【請求項３】
請求項２に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記データ変更通知手段が前記受信可能信号を受信しない場合、前記他のノードに対してペンディング信号を送信し、該ペンディング信号に対して前記他のノードから応答信号を受信する場合に前記データ変更通知を送信し、
前記同期要求手段は、前記ペンディング信号の受信に対し前記応答信号を返信することを特徴とするデータ同期システム。
【請求項４】
請求項３に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記データ変更通知手段が前記応答信号を受信するまで、所定時間の間前記ペンディング信号を所定の時間間隔で送信し続けることを特徴とするデータ同期システム。
【請求項５】
請求項４に記載のデータ同期システムにおいて、
前記データ変更通知手段は、前記ペンディング信号の送信回数に応じて前記所定の時間間隔を伸ばすことを特徴とするデータ同期システム。
【請求項６】
請求項１から５のいずれか一項に記載のデータ同期システムにおいて、
前記同期要求手段が送信する同期要求は、前記変更されたデータのダウンロード要求であることを特徴とするデータ同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノード間でデータを同期するデータ同期システムに係り、特に、データの同期に際し余計なデータ通信を発生させずに効率よく同期を自動的に行うデータ同期システムに関する。
【背景技術】
【０００２】
従来から、ネットワークを介して接続された複数のノード間において、１つのノードに格納されたデータの変更（更新・追加・削除等）がなされた際、この変更がなされたデータを他のノードに送信して内容を変更させ、ネットワークで接続された複数のコンピュータ間で共通したデータ内容を保持するデータ同期システムに関する研究・開発が種々行われている。
なお、ここで同期とは、必ずしも現実的な時間が一致することを意味するものではなく、通信環境が確立した際、他のノードに変更したデータ内容を送信し、ノード間でデータ内容が一致する状態を意味するものである。
【０００３】
例えば、特許文献１には、サーバクライアント型のネットワークシステムにおいて、サーバ側とクライアント側とでデータの同期を行うデータ同期システムに関する発明が開示されている。即ち、クライアント側からサーバ側に対して、データの同期要求と最終同期時間情報を一定時間間隔で送信し、これらの情報を受信したサーバ側では、クライアント側から送信された最終同期時間情報に基づいて、自己のデータベースに格納されたデータのうちこの最終同期時間情報よりも新しい時間に変更が行われたデータがある場合に、この差分時間に変更があったデータをクライアント側に送信することでサーバ側とクライアント側でデータの同期を行うようになっている。
【０００４】
図６に示すブロック図及び図７に示すフロー図を用いて、この特許文献１に開示されるデータ同期システムを含め、従来のデータ同期システムの動作について説明する。
図６において、データ同期システム３００は、ノードＡ及びノードＢがネットワークを通じて相互にデータ通信が可能に接続されている。本従来例では、ノードＡ及びノードＢの２つのノード間でのデータ同期システムについて説明するが、各ノードの仕様やネットワーク環境に応じてシステムを構成するノードの数は適宜増やすことも当然に可能である。
【０００５】
ノードＡ及びノードＢには、データ同期設定がなされた仮想ディレクトリ１０ａ及び１０ｂが格納される。仮想ディレクトリとは、ネットワーク接続時に他のノードからも識別可能なディレクトリである。即ち、一方のノード内に他のノードと同期するディレクトリを設定し、当該他のディレクトリにローカルなパスとは別に両ノード間で識別可能なディレクトリ名（以下、「仮想ディレクトリ名」という。）を設定する（例えば、ネットワークアドレス等）。図６の例では、ノードＡに設定された仮想ディレクトリ１０ａは、ノードＡ内部のローカルなパスが設定されているとともに、データ同期システムを構成する他のノードであるノードＢと同様の仮想ディレクトリ名が設定されている。同様に、ノードＢにおいても同様のディレクトリ名が設定されている。これにより両ノード間で通信が確立すると、当該仮想ディレクトリ名（例えば、ネットワークアドレス等）に基づいて共通のディレクトリとしてノードＡ及びノードＢにデータが反映されることとなる。
【０００６】
仮にノードＡの仮想ディレクトリ１０ａに、追加データとしてファイルが追加された場合を考える。図６において、ノードＡの仮想ディレクトリ１０ａにファイルが追加され（ステップＳ４０１）、このファイルの追加を検出したノードＡは（ステップＳ４０２）、ノードＢに追加されたファイルを送信する（ステップＳ４０３：図６〔２〕参照）。ノードＢは、追加ファイルの送信を受け、ノードＢの仮想ディレクトリ１０ｂに追加されたファイルの書き込みを行う（ステップＳ４０４：図６〔３〕参照）。これによりノードＡとノードＢとで追加されたファイルが同期することとなる。その後、ノードＢからノードＡに対して同期処理が完了したことを示す通知を行う（図６：〔４〕参照）。
【特許文献１】特開２０００−２２２２６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、通常、システムを構成する各ノードの性能や仕様が異なる場合が多い。更に、ノード間を接続する通信方式も常に一律でない場合が多い。このため、ノード間での接続状態が不安定（接続の切断）となる場合や特定のノードを中心に見たときに、常時接続状態にあるノードと常時接続状態に無い（手動接続等）ノードが混在している場合等には、データの同期が確実に行われないという問題がある。即ち、ファイルの変更があったノードから当該ファイルを送信している途中で接続が切断されると、切断されるまでに送信したファイルを破棄して改めて最初からファイルを送信し直したり、ファイルの送信先であるノードが通信状態に無いときは、ファイルの送信処理を繰り返したりするなど、通信処理ノード間での通信処理が増加するという問題がある。更には、図６では、２つのノードから構成されるデータ同期システムを例としているが、実際にはデータ同期システムを構成するノードの数はより多く、各ノード間で発生する通信処理が増大すれば、実際にファイル等が同期する現実の時間も遅延し又増大した通信処理の分通信コストも発生することとなる。
【０００８】
本発明は、上記課題に鑑みて行われたものであり、その目的とするところは、ノード間の接続が不安定である場合やシステムを構成する各ノード間との通信方式が混在する場合でも、通信の処理量が増加即ち余計な通信処置を行うことなくデータの同期を確実に行うことである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、請求項１に記載のデータ同期システムは、
ネットワークを介してデータ通信可能に接続された複数のノードのそれぞれに、互いに識別可能な仮想ディレクトリを設けることで前記複数のノードでデータの同期を行うデータ同期システムにおいて、
前記複数のノードのそれぞれに、
前記仮想ディレクトリ内に格納されたデータの変更を検出する検出手段と、
前記検出手段が前記データの変更を検出すると、前記ネットワークを介して他のノードにデータの変更があった旨を示すデータ変更通知を送信するデータ変更通知手段と、
前記データ変更通知の送信を受けた前記他のノードから送信された同期要求を受け前記変更されたデータを前記他のノードに送信する送信手段と、
を備えるとともに、
他のノードから送信された前記データ変更通知を受信することで該他のノードに同期要求を送信する同期要求送信手段と、
該同期要求により前記他のノードから送信された前記変更されたデータの受信を行うデータ受信手段と、
前記データ受信手段により受信した前記変更されたデータに基づいて、自己の仮想ディレクトリの変更を行う仮想ディレクトリ変更手段と、を備えることを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記他のノードとのデータ通信の確立を問い合わせる信号を送信する問い合わせ信号を送信し、該問い合わせ信号に対して前記他のノードから受信可能信号を受信する場合に前記データ変更通知を送信し、
前記同期要求送信手段は、前記問い合わせ信号の受信に対し受信可能信号を返信することを特徴とする。
【００１１】
請求項３に記載の発明は、請求項２に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記データ変更通知手段が前記受信可能信号を受信しない場合、前記他のノードに対してペンディング信号を送信し、該ペンディング信号に対して前記他のノードから応答信号を受信する場合に前記データ変更通知を送信し、
前記同期要求手段は、前記ペンディング信号の受信に対し前記応答信号を返信することを特徴とする。
【００１２】
請求項４に記載の発明は、請求項３に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記データ変更通知手段が前記応答信号を受信するまで、所定時間の間前記ペンディング信号を所定の時間間隔で送信し続けることを特徴とする。
【００１３】
請求項５に記載の発明は、請求項４に記載の野データ同期システムにおいて、
前記データ変更通知手段は、前記ペンディング信号の送信回数に応じて前記所定の時間間隔を伸ばすことを特徴とする。
【００１４】
請求項６に記載の発明は、請求項１から５のいずれか一項に記載のデータ同期システムにおいて、
前記同期要求手段が送信する同期要求は、前記変更されたデータのダウンロード要求であることを特徴とする。
【発明の効果】
【００１５】
請求項１に記載の発明によれば、データ変更通知手段により仮想ディレクトリ内のデータに変更があったノードから他のノードに対して送信されるのは比較的通信量の少ないデータ変更通知であるため、データの変更があったノードでの余計な通信を防止することができる。また、これにより他のノードの数が増大してもデータに変更があったノードにおける処理時間が膨大に増大することを防止することができる。このため検出手段が仮想ディレクトリの変更を検出する処理など、データ変更があったノード内での処理負荷も軽減され、より短時間でデータの同期を行うことができる。
【００１６】
また、データが変更されたノードと他のノードとの間で行われる変更されたデータの通信は、他のノードが主体で行うこととなっている。即ち、データの変更されたノードは、比較的通信量の少ないデータ変更通知を送信するだけであり、その後、データ変更通知を受信した他のノードが同期要求を送信し、この他のノードが主体となって変更されたデータの通信処理が行われる。このため通信環境が不安定（通信の切断）であっても、データが変更されたノード側では再度の通信の確立処理等を行うなどの処理負荷（余計な通信）を軽減させることができる。
【００１７】
請求項２に記載の発明によれば、データ変更通知手段が、他のノードに対してデータの変更があった旨のデータ変更通知を行う前に、更に通信量の少ない問い合わせ信号を他のノードに送信し、この問い合わせ信号に対して他のノードから返信される受信可能信号を受信することでデータ変更通知の送信を行うため、データの変更がなされたノードでの余計な通信を更に軽減させることができる。
【００１８】
請求項３に記載の発明によれば、データ変更手段が送信した問い合わせ信号に対して他のノードから返信される受信可能信号を受信しない場合、問い合わせ信号より更に通信量の少ないペンディング信号を送信し、このペンディング信号に対して返信される応答信号を受信する場合にデータ変更通知の送信を行うため、データの変更がなされたノードでの余計な通信を更に軽減させることができる。
【００１９】
請求項４に記載の発明は、更に、応答信号を受信するまでペンディング信号を所定の時間か間隔で送信し続けるため、他のノードとの通信が可能となる状態を確実に捉えてデータの同期をより確実に実行することができる。
【００２０】
請求項５に記載の発明によれば、ペンディング信号の送信回数に応じてこのペンディング信号の送信間隔を伸ばして、より合理的且つ効率的にデータの通信量を軽減させることができる。例えば、他のノードとの通信が不安定である要因は、単に、一時的な通信トラフィックの混雑や他のノードの故障等種々の要因が想定される。一時的なトラフィックの混雑等のように比較的短時間で解消する要因である場合は、ペンディング信号の再送信間隔を短時間（例えば、数十秒から数分）とすることで通信状態が復帰したタイミングをより早期に捉えることができる。しかしながら、他のノードの故障等のように比較的通信状態の復帰に時間がかかる（例えば、数時間から数日）要因である場合は、数秒から数分間隔でペンディング信号を再送信し続けるのは通信の無駄となる。そこで、当初はペンディング信号の再送信間隔を比較的短時間に設定し、その後、当該時間間隔で再送信しても応答信号が返信されない場合は、再送信間隔を伸ばすことで、応答信号が返信されない状況に対して合理的且つ効率的にペンディング信号の再送信処理を実行し、余計な通信を更に軽減させることができる。
【００２１】
請求項６に記載の発明によれば、同期要求手段が送信する同期要求は、変更されたデータのダウンロード要求であるため、変更されたデータの送信中に通信が不安定になり、データのダウンロードが中断しても他のノード側で当該通信が不安定になるまでのデータを保持しておくことができ、その後、通信が復帰した際に途中からのデータをダウンロードするだけでデータの同期を実行することができる。即ち、単にデータの変更が行われたノードから変更されたデータの送信を受ける構成であると、途中で通信が不安定になった場合にそれまで受信したデータを破棄し、通信が復帰した後に改めて全変更されたデータを送信する必要がある。これに対してダウンロードの場合は、途中まで受信したデータを保持しその後未取得のデータのみの送信受けることで変更されたデータの完全な転送が可能となる。このためノード間での通信量を更に軽減させ余計な通信を防止することができる。
【発明を実施するための最良の形態】
【００２２】
次に、図を用いて、本発明を実施するための最良の形態について説明する。図２は、本発明を適用したデータ同期システム１００の全体構成を示したブロック図である。図２において、データ同期システム１００は、システムを構成する複数のノードとして、サーバ１、サーバ２、ＰＣ（パーソナルコンピュータ）３、ＰＣ４、ＰＣ５及びＰＣ６が設けられ、これらノードがネットワークを介して接続されている。ここで、ネットワークとしては、ＬＡＮ（Local Area Network）、ＭＡＮ(Metropolitan Area Network)、ＷＡＮ(Wide Area Network)及びインターネット等の種々のネットワークを適用することができるが、本実施の形態ではＬＡＮを適用する場合を例として説明する。また、図２において論理接続７ａ、７ｂ、７ｃ、７ｄ、７ｅ及び７ｆはＬＡＮによる論理的な接続を示すものとする。
【００２３】
仮想ディレクトリ１０は、複数のノードで識別可能とされた共通のディレクトリである。本実施の形態では、サーバ１とＰＣ３との間で認識可能な仮想ディレクトリとして設定している。また、サーバ１とＰＣ３には、仮想ディレクトリ１０として仮想ディレクトリ１０ａ及び１０ｂを格納しており、これらは各ノードが自己の仮想ディレクトリにアクセスするローカルなパスがそれぞれ設定されるとともに、通信が行われた際に両ノード間で互いに識別可能とするため共通のディレクトリ名が設定されている。また、仮想ディレクトリ１０即ち１０ａ及び１０ｂにはプログラムデータ（図２では「Program Files」というディレクトリにサブディレクトリ及びファイルがツリー状に格納されている状態で示している。）が格納されているものとする。以下の説明では、サーバ１の仮想ディレクトリ１０ａでプログラムデータに変更が加えられた場合に、ＰＣ３の仮想ディレクトリ１０ｂの内容を自動的に同期処理する例について説明する。
なお、本実施の形態では、簡単のためにサーバ１とＰＣ３でのデータ同期の例について主に説明するが、本発明はこれに限定するものではなく、サーバ１とＰＣ５やＰＣ３とＰＣ４でのデータ同期にも適用できるものである。この場。サーバ１とＰＣ５あるいはＰＣ３とＰＣ４との間で識別可能な仮想ディレクトリがそれぞれのノードに設定されることとなる。また、特定のノード（例えば、サーバ１）でのみ生じた仮想ディレクトリのデータ変更を他のノード（例えば、ＰＣ３）に同期させるのみならず、他のノード（例えば、ＰＣ３）で生じた仮想ディレクトリのデータ変更を他のノード（例えば、サーバ１）に同期させることも当然に可能である。
【００２４】
次に、図３を用いて、データ同期システム１００を構成するノードであるサーバ１及びＰＣ３の機能的構成について説明する。サーバ１及びＰＣ３は、制御部２０、記憶部２１、通信部２２及び入力部２３を備え、これらがバス５０を介して電気・電子的に接続されている。
【００２５】
制御部２０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）及びＲＡＭ(Random Access Memory)等から構成され、ＣＰＵがＲＯＭ等に格納されたオペレーションプログラムやアプリケーションプログラムをワークエリアとしてのＲＡＭに展開し、これらプログラムの指示に従いサーバ１あるいはＰＣ３の全体制御を行う機能部である。
【００２６】
記憶部２１は、ハードディスクやフラッシュメモリ等の不揮発性の素子から構成される補助記憶装置であり、サーバ１あるいはＰＣ３で使用される各種のデータやプログラムを記憶する機能部である。また、記憶部２１には、仮想ディレクトリ１０ａあるいは１０ｂ、テンポラリディレクトリ１１あるいは１２が設けられる。
仮想ディレクトリ１０ａあるいは１０ｂは、それぞれサーバ１あるいはＰＣ３でのローカルなパスが設定されるとともに、ノード間の通信が行われる際に互いに識別可能とするための同一の仮想ディレクトリ名が設定される。
テンポラリディレクトリ１１あるいは１２は、一方のノードの仮想ディレクトリで内容が変更されたデータとの同期を図る際、送信された当該変更されたデータを一時的に格納するディレクトリである。格納後は、後述する仮想ディレクトリ変更手段４２により、変更されたデータの送信を受けたノードの仮想ディレクトリの所定の場所に変更されたデータの書き込みや追記等が行われるようになっている。
【００２７】
通信部２２は、ＮＩＣ（Network Interface Card）等を備え、制御部２０から送信される指示信号に従って、ネットワークを介して他のノードとのデータ通信を行う機能部である。本実施の形態では、サーバ１あるいはＰＣ３の仮想ディレクトリの内容が変更された場合、当該変更されたデータを始め、後述するデータ変更通知手段３１によるデータ変更通知や問い合わせ信号及びペンディング信号を送信し又変更されたデータを受信する場合に、変更されたデータ及びデータ変更通知の受信や同期要求、受信可能信号又は応答信号の送信を行う等ノード間の通信を行うようになっている。
【００２８】
入力部２３は、仮想ディレクトリ１０ａあるいは１０ｂの内容を変更する指示信号等を入力するユーザインターフェースであり、例えば、キーボードやマウス等から構成される。
【００２９】
また、制御部２０は、プログラムとの協働により、更に検出手段３０、データ変更通知手段３１、送信手段３２、同期要求送信手段４０、データ受信手段４１及び仮想ディレクトリ変更手段４２として機能する。
【００３０】
検出手段３０は、ユーザによって入力部２３が操作されたり、サーバ１が有するプログラムの機能により仮想ディレクトリ１０ａ等の内容が変更されたりした場合、この変更を検出する機能を有する。
【００３１】
データ変更通知手段３１は、検出手段３０で仮想ディレクトリ１０ａ等の内容に変更が検出された場合、通信部２２を介してＰＣ３にデータ変更通知、問い合わせ信号又はペンディング信号の送信を行う機能を有する。データ変更通知は、仮想ディレクトリ１０ａに変更があった旨及び仮想ディレクトリ１０ａのネットワークアドレス等の比較的通信量の少ないデータからなる。
また、データ変更通知を送信する際は、ＰＣ３との通信を確立するためにＥＮＱ（Enquiry）等の問い合わせ信号を送信し、この問い合わせ信号に対してサーバ３からＡＣＫ等の応答信号（受信可能信号）が返信される場合にデータ変更通知を送信するようになっている。
【００３２】
更に、データ変更通知手段３１は、この問い合わせ信号に対して返信されるＰＣ３からの受信可能信号を受信されない場合は、ＰＣ３に対してペンディング信号を所定間隔で送信することで定期的に通信確認を行うようになっている。ペンディング信号は、問い合わせ信号よりも更に通信量が少ない信号であり、データ同期システム１００でのみ認識可能なものとして独自に設定されている。サーバ１側では、このようなペンディング信号の送信に対してＰＣ３から返信される応答信号を受信することで、ＰＣ３との通信確立が可能であることを認識し、データ変更通知を送信するようになっている。
【００３３】
また、データ変更通知手段３１はＰＣ３から応答信号（ＡＣＫ）の送信を受けるまでペンディング信号の送信を定期的に繰り返すわけであるが、このようなペンディング信号の再送信間隔は、ペンディング信号の再送信回数に応じて徐々に長くするように構成されている。即ち、ＰＣ３との通信が確立できない要因としては、単にネットワークトラフィック上の問題等のように比較的短時間で解消するものやＰＣ３の故障等のように解消まで比較的長時間を要するもの等種々の場合が想定される。一般にサーバ１側では、ＰＣ３との通信を確立できない要因を判断できない。ペンディング信号の再送信間隔を数秒から数分の比較的短い間隔に一律に設定すると、仮にＰＣ３が故障している場合は、この故障が解消するまでの比較的長い時間の間ペンディング信号を頻繁に再送信する。このため余計な通信を行うこととなり非合理的である。そこで、ペンディング信号の再送信回数が少ない間は、再送信間隔を数秒から数分等の短い間隔とし、その後、この再送信間隔でも応答信号を受信することができない場合は、再送信を行う時間間隔のステータスを落として数時間、数十時間とすることで合理的且つ効率的な通信確立の確認を実現することができるようになる。
【００３４】
送信手段３２は、データ変更通知を受けたＰＣ３から仮想ディレクトリ１０ａとの同期要求信号を受ける場合に、当該変更されたデータの送信を行うものである。
【００３５】
同期要求送信手段４０は、データ変更通知手段３１から送信されるデータ変更通知、問い合わせ信号又はペンディング信号に対してそれぞれ同期要求、受信可能信号又は応答信号を返信する機能を有する。同期要求は、データ変更通知に含まれる仮想ディレクトリ１０ａのネットワークアドレスにアクセスを行うことにより行われる。本実施の形態では、この同期要求を変更されたデータのダウンロード要求として構成している。ダウンロードの場合、変更されたデータの送信中に通信が不安定（通信の切断）となっても、通信が不安定になるまでに受信したデータをＰＣ３側で保持することができるため、通信が復帰した場合に、先のデータ転送で受信した部分のデータを破棄することなく残りの分のデータを転送すればよいという利点がある。したがって、特に、変更されたデータの容量が大きい場合には、通信量を軽減することのメリットをより多く享受することができる。
【００３６】
データ受信手段４１は、送信手段から送信される変更されたデータの受信を行う機能を有する。即ち、通信部２２を介して受信を行った変更されたデータを記憶部２１のテンポラリディレクトリ１２に記憶させる。
【００３７】
仮想ディレクトリ変更手段４２は、データ受信手段４１によってテンポラリディレクトリ１２に記憶された変更されたデータをＰＣ３の仮想ディレクトリ１０ｂの所定の場所に書き込みや追記を行う機能を有する。この書き込み及び追記により仮想ディレクトリ１０ａ及び１０ｂの内容が同一の内容となり同期が行われた状態となる。
【００３８】
次に、以上の構成を有するデータ同期システム１００のデータ同期処理の動作について、図５及び図１を用いて説明する。なお、図５は、サーバ１とＰＣ３等とで行われるデータ同期処理での各種信号やデータの流れを示した模式図であり、図１は、このデータ同期処理の処理手順を示したフロー図である。
【００３９】
図１のフロー図において、ステップＳ１０１で、ユーザの操作やサーバ１のプログラムの機能により仮想ディレクトリ１０ａにファイルの追加が行われる。
ステップＳ１０２で、検出手段は仮想ディレクトリ１０ａに新規にファイルが追加されたことを検出する。
ステップＳ１０３で、データ変更通知手段３１は、ＰＣ３に問い合わせ信号（ＥＮＱ）を送信する（図５〔１〕参照）。
【００４０】
ステップＳ１０４で、データ変更通知手段３１は、問い合わせ信号に対してＰＣ３から受信可能信号（ＡＣＫ）を受信するか否かを判断する。受信可能信号を受信する場合はステップＳ１１２に進む（ステップＳ１０４：ＹＥＳ）。逆に受信可能信号を受信しない場合は、ステップＳ１０５に進む（ステップＳ１０４：ＮＯ）。
【００４１】
ステップＳ１０５で、データ変更通知手段３１は、サーバ３に対してペンディング信号を送信する（図５〔３〕参照）。
ステップＳ１０６で、データ変更通知手段３１は、ペンディング信号の送信に対する応答信号（ＡＣＫ）を受信するか否かを判断する。応答信号を受信する場合は、ステップＳ１１２に進む（ステップＳ１０６：ＹＥＳ）。逆に、応答信号を受信しない場合は、ステップＳ１０７に進む（ステップＳ１０６：ＮＯ）。
【００４２】
ステップＳ１０７で、データ変更通知手段３１は、サーバ３に対して所定時間間隔（例えば数秒から数分）でペンディング信号の再送信を行う。
【００４３】
ステップＳ１０８で、データ変更通知手段３１は、サーバ３からステップＳ１０７で再送信したペンディング信号に対して返信される応答信号を受信するかを判断する。応答信号を受信する場合は、ステップＳ１１２に進む（ステップＳ１０８：ＹＥＳ）。逆に、応答信号を受信しない場合は、ステップＳ１０９に進む（ステップＳ１０８：ＮＯ）。
【００４４】
ステップＳ１０９で、データ変更通知手段３１は、ペンディング信号の再送信回数が所定の回数以内であるか否か判断する。所定の回数以内である場合は、ステップＳ１０７に戻るステップＳ１０９：ＹＥＳ）。逆に、所定の回数を超える場合は、ステップＳ１１０に進む（ステップＳ１０９：ＮＯ）。
【００４５】
ステップＳ１１０で、データ変更通知手段３１は、ペンディング信号の再送信を行う時間間隔を伸ばして（数時間から数十時間）、再度ペンディング信号の送信を行う。
ステップＳ１１１で、データ変更通知手段３１は、ステップＳ１１０で再送信したペンディング信号に対して応答信号を受信するか否かを判断する。応答信号を受信する場合は、ステップＳ１１２に進む（ステップＳ１１１：ＹＥＳ）。逆に、応答信号を受信しない場合は、ステップＳ１１０に進む（ステップＳ１１１：ＮＯ）。
【００４６】
ステップＳ１１２で、データ変更通知手段３１は、仮想ディレクトリ１０ａにファイル追加された旨及び仮想ディレクトリ１０ａのネットワークアドレスからなるデータ即ちデータ変更通知をＰＣ３に送信する（図５〔５〕参照）。このデータ変更通知を受けたＰＣ３では、同期要求送信手段が、ネットワークアドレスに基づいてサーバ１に対して追加されたファイルのダウンロード要求である同期要求が行われる（図５〔６〕参照）。
【００４７】
ステップＳ１１３で、送信手段３２はＰＣ３からの同期要求を受け、追加されたファイルのダウンロード送信を行う（図５〔７〕参照）。
【００４８】
ステップＳ１１４で、サーバ１側から追加されたファイルの送信を受けたＰＣ３側では、データ受信手段４1が、当該追加されたファイルをテンポラリディレクトリ１２に一時的に格納し、その後、仮想ディレクトリ変更手段４２によりＰＣ３の仮想ディレクトリ１０ｂの所定の場所に追加されたファイルが書き込まれ、サーバ１との間でデータの同期が行われる（図５〔８〕参照）。
【００４９】
ステップＳ１１５で、サーバ１側は、ＰＣ３側からデータの同期が完了した旨の同期完了信号を受けることで、データ同期システム１００でのデータ同期処理が終了する（図５〔９〕参照）。
【００５０】
なお、以上の例では、サーバ１の仮想ディレクトリ１０ａでファイルの追加が行われた場合の例について説明したが、ファイルを削除する処理においても同様に処理が行われる。この場合、データ変更通知手段３１は、ファイルが削除された旨を通知し、ＰＣ３はこの通知に基づいて仮想ディレクトリ１０ｂのファイルを削除することとなる。
【００５１】
以上、データ同期システム１００によれば、データ変更通知手段３１により仮想ディレクトリ内のデータに変更があったサーバ１からＰＣ３に対して送信されるのは比較的通信量の少ないデータ変更通知であるため、サーバ１での余計な通信処理を防止することができる。また、これによりサーバ２、ＰＣ３、ＰＣ４、ＰＣ５及びＰＣ６等、ノードの数が増大しても、サーバ１における処理時間が膨大に増大することを防止することができ、検出手段３０が仮想ディレクトリ１０ａの変更を検出する処理など、データ変更があったノード内での処理負荷も軽減され、より短時間でデータの同期を行うことができる。
【００５２】
また、サーバ１とＰＣ３との間で行われる追加されたファイルの通信は、ＰＣ３が主体で行うこととしている。即ち、ファイルが追加されたサーバ１は、比較的通信量の少ないデータ変更通知を送信するだけであり、その後、データ変更通知を受信したＰＣ３が同期要求を送信し、ＰＣ３が主体となってファイルの転送処理が行われる。このため通信環境が不安定（通信の切断）であっても、サーバ１側では再度の通信の確立処理等を行うなどの処理負荷（余計な通信）を軽減させることができる。
【００５３】
また、データ変更通知手段３１が、ＰＣ３に対してファイルの追加があった旨のデータ変更通知を行う前に、更に通信量の少ない問い合わせ信号をＰＣ３に送信し、この問い合わせ信号に対してＰＣ３から返信される受信可能信号を受信することでデータ変更通知の送信を行うため、サーバ１での余計な通信処理を更に軽減させることができる。
【００５４】
また、データ変更通知手段３１が送信した問い合わせ信号に対してＰＣ３から返信される受信可能信号を受信しない場合、問い合わせ信号より更に通信量の少ないペンディング信号を送信し、このペンディング信号に対して返信される応答信号を受信する場合にデータ変更通知の送信を行うため、サーバ１での余計な通信を更に軽減させることができる。
【００５５】
また、応答信号を受信するまでペンディング信号を所定の時間か間隔で送信し続けるため、ＰＣ３との通信が可能となる状態を確実に捉えてデータの同期をより確実に実行することができる。
【００５６】
更に、ペンディング信号の送信回数に応じてこのペンディング信号の送信間隔を伸ばして、より合理的且つ効率的にデータの通信量を軽減させることができる。例えば、ＰＣ３との通信が不安定である要因は、単に、一時的な通信トラフィックの混雑や他のノードの故障等種々の要因が想定される。一時的なトラフィックの混雑等のように比較的短時間で解消する要因である場合は、ペンディング信号の再送信間隔を短時間（例えば、数十秒から数分）とすることで通信状態が復帰したタイミングをより早期に捉えることができる。しかしながら、ＰＣ３の故障等のように比較的通信状態の復帰に時間がかかる（例えば、数時間から数日）といった要因である場合は、数秒から数分間隔でペンディング信号を再送信し続けるのは通信の無駄となる。そこで、当初はペンディング信号の再送信間隔を比較的短時間に設定し、その後、当該時間間隔で再送信しても応答信号が返信されない場合は、再送信間隔を伸ばすことで、応答信号が返信されない状況に対して合理的且つ効率的にペンディング信号の再送信処理を実行し、サーバ１での余計な通信を更に軽減させることができる。
【００５７】
また、ＰＣ３の同期要求手段が送信する同期要求は、追加されたファイルのダウンロード要求であるため、追加されたファイルの送信中に通信が不安定になり、ダウンロードが中断しでも、ＰＣ３側で当該通信が不安定になるまでのファイルデータを保持しておくことができ、その後、通信が復帰した際に途中からのデータをダウンロードするだけでデータの同期を実行することができる。即ち、単にサーバ１から追加されたファイルの送信を受ける構成であると、途中で通信が不安定になった場合にそれまで受信したデータを破棄し、通信が復帰した後に改めて全変更されたファイルデータを送信する必要がある。これに対してダウンロードの場合は、途中まで受信したデータを保持しその後未取得のデータのみの送信受けることで変更されたデータの完全な転送が可能となる。このためノード間での通信量を更に軽減させ余計な通信を防止することができる。
【００５８】
〔応用例〕
次に、本発明の応用例について説明する。上記データ同期システム１００では、各ノードをＬＡＮで接続し、同一ネットワーク上の閉じられたネットワーク内で構築されたデータ同期システムであった。しかしながら、本発明はインターネット等の複数のネットワーク環境を介して構築されるシステムに適用することも可能であり、このような場合でも十分にその効果を発揮するものである。特に、各種プラントの管理システムのように、物理的に距離が遠隔となる複数の敷地に設けられた構内ＬＡＮの管理・運用に対し、１つのサーポートセンタで制御を行う際にはインターネットを使用する場合もある。このような場合、システムをいわゆる専用線を使用してサーポートセンタと各プラントを同一ネットワーク上で構築する方法も考えられるが、通信コストの増大等の問題もある。
【００５９】
そこで、図４に示すデータ同期システム２００は、各ユーザ敷地内（例えば、プラント）のＰＣ６３、６５、６７及び６８とサポートセンタ６０のサーバ６１とをインターネットで接続しつつも、それぞれＶＰＮ（Virtual Private Network）ルータ７１、７２、７３、７４及び７５を介して相互接続することでデータ通信の安全性を確保しつつ専用線と同様の通信ネットワークを構築している。
【００６０】
特に、データ同期システム２００では、サーバ６１のデータ変更通知手段３１が、仮想ディレクトリ内のデータが変更された際に、他のＰＣ６３等に問い合わせ信号及びペンディング信号を送信し、これら信号に対して受信可能信号や応答信号が返信される場合にデータ変更通知を行う構成としているため、通信が不安定となる傾向にあるインターネットの接続環境下においても、データの同期処理をより確実に行うことができる。
特に、不要な通信を可能な限り軽減するため、通信コストの面で特に有効である。
【００６１】
以上、本発明を実施するための最良の形態について説明したが、本発明は上記種々の例に限定されるものではない。
【図面の簡単な説明】
【００６２】
【図１】本発明を実施するための最良の形態におけるデータ同期システムの処理動作を示したフロー図である。
【図２】本発明を実施するための最良の形態におけるデータ同期システムの全体構成を示した概要図である。
【図３】本発明を実施するための最良の形態におけるデータ同期システムを構成するノードの構成を示したブロック図である。
【図４】本発明を実施するための最良の形態におけるデータ同期システムの応用例を示した概要図である。
【図５】本発明を実施するための最良の形態におけるデータ同期システムのデータ同期処理を示した模式図である。
【図６】従来のデータ同期システムのデータ同期処理を示した模式図である。
【図７】従来のデータ同期システムのデータ同期処理手順を示したフロー図である。
【符号の説明】
【００６３】
１、２、６１  サーバ
３、４、５、６、６３、６５、６７、６８  ＰＣ
７ａ、７ｂ、７ｃ、７ｄ、７ｅ、７ｆ  論理接続
１０、１０ａ、１０ｂ  仮想ディレクトリ
１１、１２  テンポラリディレクトリ
２０  制御部
２１  記憶部
２２  通信部
２３  入力部
３０  検出手段
３１  データ変更通知手段
３２  送信手段
４０  同期要求送信手段
４１  データ受信手段
４２  仮想ディレクトリ変更手段
５０  バス
６０  サービスセンタ
７１、７２、７３、７４、７５  ＶＰＮルータ
１００、２００  データ同期システム
【図１】
2007299266.tif 000003
【図２】
2007299266.tif 000004
【図３】
2007299266.tif 000005
【図４】
2007299266.tif 000006
【図５】
2007299266.tif 000007
【図６】
2007299266.tif 000008
【図７】
2007299266.tif 000009