JP2007299266A - データ同期システム - Google Patents

データ同期システム Download PDF

Info

Publication number
JP2007299266A
JP2007299266A JP2006127608A JP2006127608A JP2007299266A JP 2007299266 A JP2007299266 A JP 2007299266A JP 2006127608 A JP2006127608 A JP 2006127608A JP 2006127608 A JP2006127608 A JP 2006127608A JP 2007299266 A JP2007299266 A JP 2007299266A
Authority
JP
Japan
Prior art keywords
data
signal
node
change notification
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006127608A
Other languages
English (en)
Inventor
Takafumi Kawasaki
貴文 川崎
Masahiro Kubo
正寛 久保
Hiroshi Ikeda
寛 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2006127608A priority Critical patent/JP2007299266A/ja
Publication of JP2007299266A publication Critical patent/JP2007299266A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ノード間の接続が不安定である場合やシステムを構成する各ノード間との通信方式が混在する場合でも、通信の処理量が増加即ち余計な通信処置を行うことなくデータの同期を確実に行う。
【解決手段】
ネットワークを介してデータ通信可能に接続された複数のノードの夫々に、互いに識別可能な仮想ディレクトリを設けることで前記複数のノードでデータの同期を行うデータ同期システムにおいて、仮想ディレクトリのデータの変更を検出する場合に、前記ネットワークを介して他のノードにデータの変更があった旨を示すデータ変更通知を通知する。データ変更通知を受信することで同期要求を要求し、変更されたデータのダウンロードを行う。データ変更通知に対して他のノードから受信可能信号を受信しない場合は、通信量の少ないペンディング信号を送信し続ける。このペンディング信号に対して他のノードから応答信号を受信する場合、データ変更通知を送信する。
【選択図】図1

Description

本発明は、複数のノード間でデータを同期するデータ同期システムに係り、特に、データの同期に際し余計なデータ通信を発生させずに効率よく同期を自動的に行うデータ同期システムに関する。
従来から、ネットワークを介して接続された複数のノード間において、1つのノードに格納されたデータの変更(更新・追加・削除等)がなされた際、この変更がなされたデータを他のノードに送信して内容を変更させ、ネットワークで接続された複数のコンピュータ間で共通したデータ内容を保持するデータ同期システムに関する研究・開発が種々行われている。
なお、ここで同期とは、必ずしも現実的な時間が一致することを意味するものではなく、通信環境が確立した際、他のノードに変更したデータ内容を送信し、ノード間でデータ内容が一致する状態を意味するものである。
例えば、特許文献1には、サーバクライアント型のネットワークシステムにおいて、サーバ側とクライアント側とでデータの同期を行うデータ同期システムに関する発明が開示されている。即ち、クライアント側からサーバ側に対して、データの同期要求と最終同期時間情報を一定時間間隔で送信し、これらの情報を受信したサーバ側では、クライアント側から送信された最終同期時間情報に基づいて、自己のデータベースに格納されたデータのうちこの最終同期時間情報よりも新しい時間に変更が行われたデータがある場合に、この差分時間に変更があったデータをクライアント側に送信することでサーバ側とクライアント側でデータの同期を行うようになっている。
図6に示すブロック図及び図7に示すフロー図を用いて、この特許文献1に開示されるデータ同期システムを含め、従来のデータ同期システムの動作について説明する。
図6において、データ同期システム300は、ノードA及びノードBがネットワークを通じて相互にデータ通信が可能に接続されている。本従来例では、ノードA及びノードBの2つのノード間でのデータ同期システムについて説明するが、各ノードの仕様やネットワーク環境に応じてシステムを構成するノードの数は適宜増やすことも当然に可能である。
ノードA及びノードBには、データ同期設定がなされた仮想ディレクトリ10a及び10bが格納される。仮想ディレクトリとは、ネットワーク接続時に他のノードからも識別可能なディレクトリである。即ち、一方のノード内に他のノードと同期するディレクトリを設定し、当該他のディレクトリにローカルなパスとは別に両ノード間で識別可能なディレクトリ名(以下、「仮想ディレクトリ名」という。)を設定する(例えば、ネットワークアドレス等)。図6の例では、ノードAに設定された仮想ディレクトリ10aは、ノードA内部のローカルなパスが設定されているとともに、データ同期システムを構成する他のノードであるノードBと同様の仮想ディレクトリ名が設定されている。同様に、ノードBにおいても同様のディレクトリ名が設定されている。これにより両ノード間で通信が確立すると、当該仮想ディレクトリ名(例えば、ネットワークアドレス等)に基づいて共通のディレクトリとしてノードA及びノードBにデータが反映されることとなる。
仮にノードAの仮想ディレクトリ10aに、追加データとしてファイルが追加された場合を考える。図6において、ノードAの仮想ディレクトリ10aにファイルが追加され(ステップS401)、このファイルの追加を検出したノードAは(ステップS402)、ノードBに追加されたファイルを送信する(ステップS403:図6〔2〕参照)。ノードBは、追加ファイルの送信を受け、ノードBの仮想ディレクトリ10bに追加されたファイルの書き込みを行う(ステップS404:図6〔3〕参照)。これによりノードAとノードBとで追加されたファイルが同期することとなる。その後、ノードBからノードAに対して同期処理が完了したことを示す通知を行う(図6:〔4〕参照)。
特開2000−222268号公報
ところで、通常、システムを構成する各ノードの性能や仕様が異なる場合が多い。更に、ノード間を接続する通信方式も常に一律でない場合が多い。このため、ノード間での接続状態が不安定(接続の切断)となる場合や特定のノードを中心に見たときに、常時接続状態にあるノードと常時接続状態に無い(手動接続等)ノードが混在している場合等には、データの同期が確実に行われないという問題がある。即ち、ファイルの変更があったノードから当該ファイルを送信している途中で接続が切断されると、切断されるまでに送信したファイルを破棄して改めて最初からファイルを送信し直したり、ファイルの送信先であるノードが通信状態に無いときは、ファイルの送信処理を繰り返したりするなど、通信処理ノード間での通信処理が増加するという問題がある。更には、図6では、2つのノードから構成されるデータ同期システムを例としているが、実際にはデータ同期システムを構成するノードの数はより多く、各ノード間で発生する通信処理が増大すれば、実際にファイル等が同期する現実の時間も遅延し又増大した通信処理の分通信コストも発生することとなる。
本発明は、上記課題に鑑みて行われたものであり、その目的とするところは、ノード間の接続が不安定である場合やシステムを構成する各ノード間との通信方式が混在する場合でも、通信の処理量が増加即ち余計な通信処置を行うことなくデータの同期を確実に行うことである。
上記課題を解決するために、請求項1に記載のデータ同期システムは、
ネットワークを介してデータ通信可能に接続された複数のノードのそれぞれに、互いに識別可能な仮想ディレクトリを設けることで前記複数のノードでデータの同期を行うデータ同期システムにおいて、
前記複数のノードのそれぞれに、
前記仮想ディレクトリ内に格納されたデータの変更を検出する検出手段と、
前記検出手段が前記データの変更を検出すると、前記ネットワークを介して他のノードにデータの変更があった旨を示すデータ変更通知を送信するデータ変更通知手段と、
前記データ変更通知の送信を受けた前記他のノードから送信された同期要求を受け前記変更されたデータを前記他のノードに送信する送信手段と、
を備えるとともに、
他のノードから送信された前記データ変更通知を受信することで該他のノードに同期要求を送信する同期要求送信手段と、
該同期要求により前記他のノードから送信された前記変更されたデータの受信を行うデータ受信手段と、
前記データ受信手段により受信した前記変更されたデータに基づいて、自己の仮想ディレクトリの変更を行う仮想ディレクトリ変更手段と、を備えることを特徴とする。
請求項2に記載の発明は、請求項1に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記他のノードとのデータ通信の確立を問い合わせる信号を送信する問い合わせ信号を送信し、該問い合わせ信号に対して前記他のノードから受信可能信号を受信する場合に前記データ変更通知を送信し、
前記同期要求送信手段は、前記問い合わせ信号の受信に対し受信可能信号を返信することを特徴とする。
請求項3に記載の発明は、請求項2に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記データ変更通知手段が前記受信可能信号を受信しない場合、前記他のノードに対してペンディング信号を送信し、該ペンディング信号に対して前記他のノードから応答信号を受信する場合に前記データ変更通知を送信し、
前記同期要求手段は、前記ペンディング信号の受信に対し前記応答信号を返信することを特徴とする。
請求項4に記載の発明は、請求項3に記載のデータ同期システムにおいて、
前記データ変更通知手段は、
前記データ変更通知手段が前記応答信号を受信するまで、所定時間の間前記ペンディング信号を所定の時間間隔で送信し続けることを特徴とする。
請求項5に記載の発明は、請求項4に記載の野データ同期システムにおいて、
前記データ変更通知手段は、前記ペンディング信号の送信回数に応じて前記所定の時間間隔を伸ばすことを特徴とする。
請求項6に記載の発明は、請求項1から5のいずれか一項に記載のデータ同期システムにおいて、
前記同期要求手段が送信する同期要求は、前記変更されたデータのダウンロード要求であることを特徴とする。
請求項1に記載の発明によれば、データ変更通知手段により仮想ディレクトリ内のデータに変更があったノードから他のノードに対して送信されるのは比較的通信量の少ないデータ変更通知であるため、データの変更があったノードでの余計な通信を防止することができる。また、これにより他のノードの数が増大してもデータに変更があったノードにおける処理時間が膨大に増大することを防止することができる。このため検出手段が仮想ディレクトリの変更を検出する処理など、データ変更があったノード内での処理負荷も軽減され、より短時間でデータの同期を行うことができる。
また、データが変更されたノードと他のノードとの間で行われる変更されたデータの通信は、他のノードが主体で行うこととなっている。即ち、データの変更されたノードは、比較的通信量の少ないデータ変更通知を送信するだけであり、その後、データ変更通知を受信した他のノードが同期要求を送信し、この他のノードが主体となって変更されたデータの通信処理が行われる。このため通信環境が不安定(通信の切断)であっても、データが変更されたノード側では再度の通信の確立処理等を行うなどの処理負荷(余計な通信)を軽減させることができる。
請求項2に記載の発明によれば、データ変更通知手段が、他のノードに対してデータの変更があった旨のデータ変更通知を行う前に、更に通信量の少ない問い合わせ信号を他のノードに送信し、この問い合わせ信号に対して他のノードから返信される受信可能信号を受信することでデータ変更通知の送信を行うため、データの変更がなされたノードでの余計な通信を更に軽減させることができる。
請求項3に記載の発明によれば、データ変更手段が送信した問い合わせ信号に対して他のノードから返信される受信可能信号を受信しない場合、問い合わせ信号より更に通信量の少ないペンディング信号を送信し、このペンディング信号に対して返信される応答信号を受信する場合にデータ変更通知の送信を行うため、データの変更がなされたノードでの余計な通信を更に軽減させることができる。
請求項4に記載の発明は、更に、応答信号を受信するまでペンディング信号を所定の時間か間隔で送信し続けるため、他のノードとの通信が可能となる状態を確実に捉えてデータの同期をより確実に実行することができる。
請求項5に記載の発明によれば、ペンディング信号の送信回数に応じてこのペンディング信号の送信間隔を伸ばして、より合理的且つ効率的にデータの通信量を軽減させることができる。例えば、他のノードとの通信が不安定である要因は、単に、一時的な通信トラフィックの混雑や他のノードの故障等種々の要因が想定される。一時的なトラフィックの混雑等のように比較的短時間で解消する要因である場合は、ペンディング信号の再送信間隔を短時間(例えば、数十秒から数分)とすることで通信状態が復帰したタイミングをより早期に捉えることができる。しかしながら、他のノードの故障等のように比較的通信状態の復帰に時間がかかる(例えば、数時間から数日)要因である場合は、数秒から数分間隔でペンディング信号を再送信し続けるのは通信の無駄となる。そこで、当初はペンディング信号の再送信間隔を比較的短時間に設定し、その後、当該時間間隔で再送信しても応答信号が返信されない場合は、再送信間隔を伸ばすことで、応答信号が返信されない状況に対して合理的且つ効率的にペンディング信号の再送信処理を実行し、余計な通信を更に軽減させることができる。
請求項6に記載の発明によれば、同期要求手段が送信する同期要求は、変更されたデータのダウンロード要求であるため、変更されたデータの送信中に通信が不安定になり、データのダウンロードが中断しても他のノード側で当該通信が不安定になるまでのデータを保持しておくことができ、その後、通信が復帰した際に途中からのデータをダウンロードするだけでデータの同期を実行することができる。即ち、単にデータの変更が行われたノードから変更されたデータの送信を受ける構成であると、途中で通信が不安定になった場合にそれまで受信したデータを破棄し、通信が復帰した後に改めて全変更されたデータを送信する必要がある。これに対してダウンロードの場合は、途中まで受信したデータを保持しその後未取得のデータのみの送信受けることで変更されたデータの完全な転送が可能となる。このためノード間での通信量を更に軽減させ余計な通信を防止することができる。
次に、図を用いて、本発明を実施するための最良の形態について説明する。図2は、本発明を適用したデータ同期システム100の全体構成を示したブロック図である。図2において、データ同期システム100は、システムを構成する複数のノードとして、サーバ1、サーバ2、PC(パーソナルコンピュータ)3、PC4、PC5及びPC6が設けられ、これらノードがネットワークを介して接続されている。ここで、ネットワークとしては、LAN(Local Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)及びインターネット等の種々のネットワークを適用することができるが、本実施の形態ではLANを適用する場合を例として説明する。また、図2において論理接続7a、7b、7c、7d、7e及び7fはLANによる論理的な接続を示すものとする。
仮想ディレクトリ10は、複数のノードで識別可能とされた共通のディレクトリである。本実施の形態では、サーバ1とPC3との間で認識可能な仮想ディレクトリとして設定している。また、サーバ1とPC3には、仮想ディレクトリ10として仮想ディレクトリ10a及び10bを格納しており、これらは各ノードが自己の仮想ディレクトリにアクセスするローカルなパスがそれぞれ設定されるとともに、通信が行われた際に両ノード間で互いに識別可能とするため共通のディレクトリ名が設定されている。また、仮想ディレクトリ10即ち10a及び10bにはプログラムデータ(図2では「Program Files」というディレクトリにサブディレクトリ及びファイルがツリー状に格納されている状態で示している。)が格納されているものとする。以下の説明では、サーバ1の仮想ディレクトリ10aでプログラムデータに変更が加えられた場合に、PC3の仮想ディレクトリ10bの内容を自動的に同期処理する例について説明する。
なお、本実施の形態では、簡単のためにサーバ1とPC3でのデータ同期の例について主に説明するが、本発明はこれに限定するものではなく、サーバ1とPC5やPC3とPC4でのデータ同期にも適用できるものである。この場。サーバ1とPC5あるいはPC3とPC4との間で識別可能な仮想ディレクトリがそれぞれのノードに設定されることとなる。また、特定のノード(例えば、サーバ1)でのみ生じた仮想ディレクトリのデータ変更を他のノード(例えば、PC3)に同期させるのみならず、他のノード(例えば、PC3)で生じた仮想ディレクトリのデータ変更を他のノード(例えば、サーバ1)に同期させることも当然に可能である。
次に、図3を用いて、データ同期システム100を構成するノードであるサーバ1及びPC3の機能的構成について説明する。サーバ1及びPC3は、制御部20、記憶部21、通信部22及び入力部23を備え、これらがバス50を介して電気・電子的に接続されている。
制御部20は、CPU(Central Processing Unit)、ROM(Read Only Memory)及びRAM(Random Access Memory)等から構成され、CPUがROM等に格納されたオペレーションプログラムやアプリケーションプログラムをワークエリアとしてのRAMに展開し、これらプログラムの指示に従いサーバ1あるいはPC3の全体制御を行う機能部である。
記憶部21は、ハードディスクやフラッシュメモリ等の不揮発性の素子から構成される補助記憶装置であり、サーバ1あるいはPC3で使用される各種のデータやプログラムを記憶する機能部である。また、記憶部21には、仮想ディレクトリ10aあるいは10b、テンポラリディレクトリ11あるいは12が設けられる。
仮想ディレクトリ10aあるいは10bは、それぞれサーバ1あるいはPC3でのローカルなパスが設定されるとともに、ノード間の通信が行われる際に互いに識別可能とするための同一の仮想ディレクトリ名が設定される。
テンポラリディレクトリ11あるいは12は、一方のノードの仮想ディレクトリで内容が変更されたデータとの同期を図る際、送信された当該変更されたデータを一時的に格納するディレクトリである。格納後は、後述する仮想ディレクトリ変更手段42により、変更されたデータの送信を受けたノードの仮想ディレクトリの所定の場所に変更されたデータの書き込みや追記等が行われるようになっている。
通信部22は、NIC(Network Interface Card)等を備え、制御部20から送信される指示信号に従って、ネットワークを介して他のノードとのデータ通信を行う機能部である。本実施の形態では、サーバ1あるいはPC3の仮想ディレクトリの内容が変更された場合、当該変更されたデータを始め、後述するデータ変更通知手段31によるデータ変更通知や問い合わせ信号及びペンディング信号を送信し又変更されたデータを受信する場合に、変更されたデータ及びデータ変更通知の受信や同期要求、受信可能信号又は応答信号の送信を行う等ノード間の通信を行うようになっている。
入力部23は、仮想ディレクトリ10aあるいは10bの内容を変更する指示信号等を入力するユーザインターフェースであり、例えば、キーボードやマウス等から構成される。
また、制御部20は、プログラムとの協働により、更に検出手段30、データ変更通知手段31、送信手段32、同期要求送信手段40、データ受信手段41及び仮想ディレクトリ変更手段42として機能する。
検出手段30は、ユーザによって入力部23が操作されたり、サーバ1が有するプログラムの機能により仮想ディレクトリ10a等の内容が変更されたりした場合、この変更を検出する機能を有する。
データ変更通知手段31は、検出手段30で仮想ディレクトリ10a等の内容に変更が検出された場合、通信部22を介してPC3にデータ変更通知、問い合わせ信号又はペンディング信号の送信を行う機能を有する。データ変更通知は、仮想ディレクトリ10aに変更があった旨及び仮想ディレクトリ10aのネットワークアドレス等の比較的通信量の少ないデータからなる。
また、データ変更通知を送信する際は、PC3との通信を確立するためにENQ(Enquiry)等の問い合わせ信号を送信し、この問い合わせ信号に対してサーバ3からACK等の応答信号(受信可能信号)が返信される場合にデータ変更通知を送信するようになっている。
更に、データ変更通知手段31は、この問い合わせ信号に対して返信されるPC3からの受信可能信号を受信されない場合は、PC3に対してペンディング信号を所定間隔で送信することで定期的に通信確認を行うようになっている。ペンディング信号は、問い合わせ信号よりも更に通信量が少ない信号であり、データ同期システム100でのみ認識可能なものとして独自に設定されている。サーバ1側では、このようなペンディング信号の送信に対してPC3から返信される応答信号を受信することで、PC3との通信確立が可能であることを認識し、データ変更通知を送信するようになっている。
また、データ変更通知手段31はPC3から応答信号(ACK)の送信を受けるまでペンディング信号の送信を定期的に繰り返すわけであるが、このようなペンディング信号の再送信間隔は、ペンディング信号の再送信回数に応じて徐々に長くするように構成されている。即ち、PC3との通信が確立できない要因としては、単にネットワークトラフィック上の問題等のように比較的短時間で解消するものやPC3の故障等のように解消まで比較的長時間を要するもの等種々の場合が想定される。一般にサーバ1側では、PC3との通信を確立できない要因を判断できない。ペンディング信号の再送信間隔を数秒から数分の比較的短い間隔に一律に設定すると、仮にPC3が故障している場合は、この故障が解消するまでの比較的長い時間の間ペンディング信号を頻繁に再送信する。このため余計な通信を行うこととなり非合理的である。そこで、ペンディング信号の再送信回数が少ない間は、再送信間隔を数秒から数分等の短い間隔とし、その後、この再送信間隔でも応答信号を受信することができない場合は、再送信を行う時間間隔のステータスを落として数時間、数十時間とすることで合理的且つ効率的な通信確立の確認を実現することができるようになる。
送信手段32は、データ変更通知を受けたPC3から仮想ディレクトリ10aとの同期要求信号を受ける場合に、当該変更されたデータの送信を行うものである。
同期要求送信手段40は、データ変更通知手段31から送信されるデータ変更通知、問い合わせ信号又はペンディング信号に対してそれぞれ同期要求、受信可能信号又は応答信号を返信する機能を有する。同期要求は、データ変更通知に含まれる仮想ディレクトリ10aのネットワークアドレスにアクセスを行うことにより行われる。本実施の形態では、この同期要求を変更されたデータのダウンロード要求として構成している。ダウンロードの場合、変更されたデータの送信中に通信が不安定(通信の切断)となっても、通信が不安定になるまでに受信したデータをPC3側で保持することができるため、通信が復帰した場合に、先のデータ転送で受信した部分のデータを破棄することなく残りの分のデータを転送すればよいという利点がある。したがって、特に、変更されたデータの容量が大きい場合には、通信量を軽減することのメリットをより多く享受することができる。
データ受信手段41は、送信手段から送信される変更されたデータの受信を行う機能を有する。即ち、通信部22を介して受信を行った変更されたデータを記憶部21のテンポラリディレクトリ12に記憶させる。
仮想ディレクトリ変更手段42は、データ受信手段41によってテンポラリディレクトリ12に記憶された変更されたデータをPC3の仮想ディレクトリ10bの所定の場所に書き込みや追記を行う機能を有する。この書き込み及び追記により仮想ディレクトリ10a及び10bの内容が同一の内容となり同期が行われた状態となる。
次に、以上の構成を有するデータ同期システム100のデータ同期処理の動作について、図5及び図1を用いて説明する。なお、図5は、サーバ1とPC3等とで行われるデータ同期処理での各種信号やデータの流れを示した模式図であり、図1は、このデータ同期処理の処理手順を示したフロー図である。
図1のフロー図において、ステップS101で、ユーザの操作やサーバ1のプログラムの機能により仮想ディレクトリ10aにファイルの追加が行われる。
ステップS102で、検出手段は仮想ディレクトリ10aに新規にファイルが追加されたことを検出する。
ステップS103で、データ変更通知手段31は、PC3に問い合わせ信号(ENQ)を送信する(図5〔1〕参照)。
ステップS104で、データ変更通知手段31は、問い合わせ信号に対してPC3から受信可能信号(ACK)を受信するか否かを判断する。受信可能信号を受信する場合はステップS112に進む(ステップS104:YES)。逆に受信可能信号を受信しない場合は、ステップS105に進む(ステップS104:NO)。
ステップS105で、データ変更通知手段31は、サーバ3に対してペンディング信号を送信する(図5〔3〕参照)。
ステップS106で、データ変更通知手段31は、ペンディング信号の送信に対する応答信号(ACK)を受信するか否かを判断する。応答信号を受信する場合は、ステップS112に進む(ステップS106:YES)。逆に、応答信号を受信しない場合は、ステップS107に進む(ステップS106:NO)。
ステップS107で、データ変更通知手段31は、サーバ3に対して所定時間間隔(例えば数秒から数分)でペンディング信号の再送信を行う。
ステップS108で、データ変更通知手段31は、サーバ3からステップS107で再送信したペンディング信号に対して返信される応答信号を受信するかを判断する。応答信号を受信する場合は、ステップS112に進む(ステップS108:YES)。逆に、応答信号を受信しない場合は、ステップS109に進む(ステップS108:NO)。
ステップS109で、データ変更通知手段31は、ペンディング信号の再送信回数が所定の回数以内であるか否か判断する。所定の回数以内である場合は、ステップS107に戻るステップS109:YES)。逆に、所定の回数を超える場合は、ステップS110に進む(ステップS109:NO)。
ステップS110で、データ変更通知手段31は、ペンディング信号の再送信を行う時間間隔を伸ばして(数時間から数十時間)、再度ペンディング信号の送信を行う。
ステップS111で、データ変更通知手段31は、ステップS110で再送信したペンディング信号に対して応答信号を受信するか否かを判断する。応答信号を受信する場合は、ステップS112に進む(ステップS111:YES)。逆に、応答信号を受信しない場合は、ステップS110に進む(ステップS111:NO)。
ステップS112で、データ変更通知手段31は、仮想ディレクトリ10aにファイル追加された旨及び仮想ディレクトリ10aのネットワークアドレスからなるデータ即ちデータ変更通知をPC3に送信する(図5〔5〕参照)。このデータ変更通知を受けたPC3では、同期要求送信手段が、ネットワークアドレスに基づいてサーバ1に対して追加されたファイルのダウンロード要求である同期要求が行われる(図5〔6〕参照)。
ステップS113で、送信手段32はPC3からの同期要求を受け、追加されたファイルのダウンロード送信を行う(図5〔7〕参照)。
ステップS114で、サーバ1側から追加されたファイルの送信を受けたPC3側では、データ受信手段41が、当該追加されたファイルをテンポラリディレクトリ12に一時的に格納し、その後、仮想ディレクトリ変更手段42によりPC3の仮想ディレクトリ10bの所定の場所に追加されたファイルが書き込まれ、サーバ1との間でデータの同期が行われる(図5〔8〕参照)。
ステップS115で、サーバ1側は、PC3側からデータの同期が完了した旨の同期完了信号を受けることで、データ同期システム100でのデータ同期処理が終了する(図5〔9〕参照)。
なお、以上の例では、サーバ1の仮想ディレクトリ10aでファイルの追加が行われた場合の例について説明したが、ファイルを削除する処理においても同様に処理が行われる。この場合、データ変更通知手段31は、ファイルが削除された旨を通知し、PC3はこの通知に基づいて仮想ディレクトリ10bのファイルを削除することとなる。
以上、データ同期システム100によれば、データ変更通知手段31により仮想ディレクトリ内のデータに変更があったサーバ1からPC3に対して送信されるのは比較的通信量の少ないデータ変更通知であるため、サーバ1での余計な通信処理を防止することができる。また、これによりサーバ2、PC3、PC4、PC5及びPC6等、ノードの数が増大しても、サーバ1における処理時間が膨大に増大することを防止することができ、検出手段30が仮想ディレクトリ10aの変更を検出する処理など、データ変更があったノード内での処理負荷も軽減され、より短時間でデータの同期を行うことができる。
また、サーバ1とPC3との間で行われる追加されたファイルの通信は、PC3が主体で行うこととしている。即ち、ファイルが追加されたサーバ1は、比較的通信量の少ないデータ変更通知を送信するだけであり、その後、データ変更通知を受信したPC3が同期要求を送信し、PC3が主体となってファイルの転送処理が行われる。このため通信環境が不安定(通信の切断)であっても、サーバ1側では再度の通信の確立処理等を行うなどの処理負荷(余計な通信)を軽減させることができる。
また、データ変更通知手段31が、PC3に対してファイルの追加があった旨のデータ変更通知を行う前に、更に通信量の少ない問い合わせ信号をPC3に送信し、この問い合わせ信号に対してPC3から返信される受信可能信号を受信することでデータ変更通知の送信を行うため、サーバ1での余計な通信処理を更に軽減させることができる。
また、データ変更通知手段31が送信した問い合わせ信号に対してPC3から返信される受信可能信号を受信しない場合、問い合わせ信号より更に通信量の少ないペンディング信号を送信し、このペンディング信号に対して返信される応答信号を受信する場合にデータ変更通知の送信を行うため、サーバ1での余計な通信を更に軽減させることができる。
また、応答信号を受信するまでペンディング信号を所定の時間か間隔で送信し続けるため、PC3との通信が可能となる状態を確実に捉えてデータの同期をより確実に実行することができる。
更に、ペンディング信号の送信回数に応じてこのペンディング信号の送信間隔を伸ばして、より合理的且つ効率的にデータの通信量を軽減させることができる。例えば、PC3との通信が不安定である要因は、単に、一時的な通信トラフィックの混雑や他のノードの故障等種々の要因が想定される。一時的なトラフィックの混雑等のように比較的短時間で解消する要因である場合は、ペンディング信号の再送信間隔を短時間(例えば、数十秒から数分)とすることで通信状態が復帰したタイミングをより早期に捉えることができる。しかしながら、PC3の故障等のように比較的通信状態の復帰に時間がかかる(例えば、数時間から数日)といった要因である場合は、数秒から数分間隔でペンディング信号を再送信し続けるのは通信の無駄となる。そこで、当初はペンディング信号の再送信間隔を比較的短時間に設定し、その後、当該時間間隔で再送信しても応答信号が返信されない場合は、再送信間隔を伸ばすことで、応答信号が返信されない状況に対して合理的且つ効率的にペンディング信号の再送信処理を実行し、サーバ1での余計な通信を更に軽減させることができる。
また、PC3の同期要求手段が送信する同期要求は、追加されたファイルのダウンロード要求であるため、追加されたファイルの送信中に通信が不安定になり、ダウンロードが中断しでも、PC3側で当該通信が不安定になるまでのファイルデータを保持しておくことができ、その後、通信が復帰した際に途中からのデータをダウンロードするだけでデータの同期を実行することができる。即ち、単にサーバ1から追加されたファイルの送信を受ける構成であると、途中で通信が不安定になった場合にそれまで受信したデータを破棄し、通信が復帰した後に改めて全変更されたファイルデータを送信する必要がある。これに対してダウンロードの場合は、途中まで受信したデータを保持しその後未取得のデータのみの送信受けることで変更されたデータの完全な転送が可能となる。このためノード間での通信量を更に軽減させ余計な通信を防止することができる。
〔応用例〕
次に、本発明の応用例について説明する。上記データ同期システム100では、各ノードをLANで接続し、同一ネットワーク上の閉じられたネットワーク内で構築されたデータ同期システムであった。しかしながら、本発明はインターネット等の複数のネットワーク環境を介して構築されるシステムに適用することも可能であり、このような場合でも十分にその効果を発揮するものである。特に、各種プラントの管理システムのように、物理的に距離が遠隔となる複数の敷地に設けられた構内LANの管理・運用に対し、1つのサーポートセンタで制御を行う際にはインターネットを使用する場合もある。このような場合、システムをいわゆる専用線を使用してサーポートセンタと各プラントを同一ネットワーク上で構築する方法も考えられるが、通信コストの増大等の問題もある。
そこで、図4に示すデータ同期システム200は、各ユーザ敷地内(例えば、プラント)のPC63、65、67及び68とサポートセンタ60のサーバ61とをインターネットで接続しつつも、それぞれVPN(Virtual Private Network)ルータ71、72、73、74及び75を介して相互接続することでデータ通信の安全性を確保しつつ専用線と同様の通信ネットワークを構築している。
特に、データ同期システム200では、サーバ61のデータ変更通知手段31が、仮想ディレクトリ内のデータが変更された際に、他のPC63等に問い合わせ信号及びペンディング信号を送信し、これら信号に対して受信可能信号や応答信号が返信される場合にデータ変更通知を行う構成としているため、通信が不安定となる傾向にあるインターネットの接続環境下においても、データの同期処理をより確実に行うことができる。
特に、不要な通信を可能な限り軽減するため、通信コストの面で特に有効である。
以上、本発明を実施するための最良の形態について説明したが、本発明は上記種々の例に限定されるものではない。
本発明を実施するための最良の形態におけるデータ同期システムの処理動作を示したフロー図である。 本発明を実施するための最良の形態におけるデータ同期システムの全体構成を示した概要図である。 本発明を実施するための最良の形態におけるデータ同期システムを構成するノードの構成を示したブロック図である。 本発明を実施するための最良の形態におけるデータ同期システムの応用例を示した概要図である。 本発明を実施するための最良の形態におけるデータ同期システムのデータ同期処理を示した模式図である。 従来のデータ同期システムのデータ同期処理を示した模式図である。 従来のデータ同期システムのデータ同期処理手順を示したフロー図である。
符号の説明
1、2、61 サーバ
3、4、5、6、63、65、67、68 PC
7a、7b、7c、7d、7e、7f 論理接続
10、10a、10b 仮想ディレクトリ
11、12 テンポラリディレクトリ
20 制御部
21 記憶部
22 通信部
23 入力部
30 検出手段
31 データ変更通知手段
32 送信手段
40 同期要求送信手段
41 データ受信手段
42 仮想ディレクトリ変更手段
50 バス
60 サービスセンタ
71、72、73、74、75 VPNルータ
100、200 データ同期システム

Claims (6)

  1. ネットワークを介してデータ通信可能に接続された複数のノードのそれぞれに、互いに識別可能な仮想ディレクトリを設けることで前記複数のノードでデータの同期を行うデータ同期システムにおいて、
    前記複数のノードのそれぞれに、
    前記仮想ディレクトリ内に格納されたデータの変更を検出する検出手段と、
    前記検出手段が前記データの変更を検出すると、前記ネットワークを介して他のノードにデータの変更があった旨を示すデータ変更通知を送信するデータ変更通知手段と、
    前記データ変更通知の送信を受けた前記他のノードから送信された同期要求を受け前記変更されたデータを前記他のノードに送信する送信手段と、
    を備えるとともに、
    他のノードから送信された前記データ変更通知を受信することで該他のノードに同期要求を送信する同期要求送信手段と、
    該同期要求により前記他のノードから送信された前記変更されたデータの受信を行うデータ受信手段と、
    前記データ受信手段により受信した前記変更されたデータに基づいて、自己の仮想ディレクトリの変更を行う仮想ディレクトリ変更手段と、
    を備えることを特徴とするデータ同期システム。
  2. 請求項1に記載のデータ同期システムにおいて、
    前記データ変更通知手段は、
    前記他のノードとのデータ通信の確立を問い合わせる信号を送信する問い合わせ信号を送信し、該問い合わせ信号に対して前記他のノードから受信可能信号を受信する場合に前記データ変更通知を送信し、
    前記同期要求送信手段は、前記問い合わせ信号の受信に対し受信可能信号を返信することを特徴とするデータ同期システム。
  3. 請求項2に記載のデータ同期システムにおいて、
    前記データ変更通知手段は、
    前記データ変更通知手段が前記受信可能信号を受信しない場合、前記他のノードに対してペンディング信号を送信し、該ペンディング信号に対して前記他のノードから応答信号を受信する場合に前記データ変更通知を送信し、
    前記同期要求手段は、前記ペンディング信号の受信に対し前記応答信号を返信することを特徴とするデータ同期システム。
  4. 請求項3に記載のデータ同期システムにおいて、
    前記データ変更通知手段は、
    前記データ変更通知手段が前記応答信号を受信するまで、所定時間の間前記ペンディング信号を所定の時間間隔で送信し続けることを特徴とするデータ同期システム。
  5. 請求項4に記載のデータ同期システムにおいて、
    前記データ変更通知手段は、前記ペンディング信号の送信回数に応じて前記所定の時間間隔を伸ばすことを特徴とするデータ同期システム。
  6. 請求項1から5のいずれか一項に記載のデータ同期システムにおいて、
    前記同期要求手段が送信する同期要求は、前記変更されたデータのダウンロード要求であることを特徴とするデータ同期システム。
JP2006127608A 2006-05-01 2006-05-01 データ同期システム Pending JP2007299266A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006127608A JP2007299266A (ja) 2006-05-01 2006-05-01 データ同期システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006127608A JP2007299266A (ja) 2006-05-01 2006-05-01 データ同期システム

Publications (1)

Publication Number Publication Date
JP2007299266A true JP2007299266A (ja) 2007-11-15

Family

ID=38768701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006127608A Pending JP2007299266A (ja) 2006-05-01 2006-05-01 データ同期システム

Country Status (1)

Country Link
JP (1) JP2007299266A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129408A (ja) * 2007-11-28 2009-06-11 Nomura Research Institute Ltd ネットワークシステム及び更新情報の共有方法
WO2011161934A1 (ja) 2010-06-23 2011-12-29 パナソニック株式会社 サーバー装置及びコンテンツ取得方法
JP2012039166A (ja) * 2010-08-03 2012-02-23 Canon Inc 送信装置、送信方法、送信システム、及び、プログラム
WO2012144214A1 (ja) * 2011-04-20 2012-10-26 パナソニック株式会社 クライアント機器、サーバ装置、コンテンツ取得方法および集積回路
JP2017204239A (ja) * 2016-05-13 2017-11-16 富士通株式会社 情報処理装置、情報処理システム、情報処理プログラム、及び情報処理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129408A (ja) * 2007-11-28 2009-06-11 Nomura Research Institute Ltd ネットワークシステム及び更新情報の共有方法
WO2011161934A1 (ja) 2010-06-23 2011-12-29 パナソニック株式会社 サーバー装置及びコンテンツ取得方法
US8719218B2 (en) 2010-06-23 2014-05-06 Panasonic Corporation Server apparatus and method of aquiring contents
JP2012039166A (ja) * 2010-08-03 2012-02-23 Canon Inc 送信装置、送信方法、送信システム、及び、プログラム
WO2012144214A1 (ja) * 2011-04-20 2012-10-26 パナソニック株式会社 クライアント機器、サーバ装置、コンテンツ取得方法および集積回路
US9059997B2 (en) 2011-04-20 2015-06-16 Panasonic Intellectual Property Corporation Of America Client device, server apparatus, content obtainment method, and integrated circuit
JP2017204239A (ja) * 2016-05-13 2017-11-16 富士通株式会社 情報処理装置、情報処理システム、情報処理プログラム、及び情報処理方法

Similar Documents

Publication Publication Date Title
US11349949B2 (en) Method of using path signatures to facilitate the recovery from network link failures
JP4696089B2 (ja) 分散ストレージシステム
EP1987657B1 (en) Scalable wireless messaging system
WO2013046352A1 (ja) 計算機システム、データ管理方法及びデータ管理プログラム
CN102611642A (zh) 处理异步消息的系统及其发送消息、监听处理任务的方法
CN101964799A (zh) 点到网隧道方式下地址冲突的解决方法
Mislove et al. Experiences in building and operating ePOST, a reliable peer-to-peer application
JP2007299266A (ja) データ同期システム
JP2011171867A (ja) メールシステムにおけるデータストアサーバのデータ格納方法およびメール中継方法
CN105049504A (zh) 一种大数据中转传输同步及存储方法
EP2642701B1 (en) Relay server and relay communication system
CN104780065A (zh) 一种tcp热备份方法和系统
JP6740543B2 (ja) 通信装置、システム、ロールバック方法及びプログラム
JP2008072521A (ja) 通信装置、通信方法及び通信プログラム
WO2019128651A1 (zh) 一种anima网络的信息处理方法、设备及系统
US7570600B1 (en) Overlay network with efficient routing and recovery
JP5865424B2 (ja) メッセージシステムおよびデータストアサーバ
CN113794684B (zh) 一种报文处理方法及装置
JP5681297B2 (ja) 中継バックアップ装置及び中継制御方法
Bertolazzi et al. DTNbox: a DTN Application for Peer-to-Peer Directory Synchronization
JP4038406B2 (ja) イベント共有システム、ホスト、イベント共有方法及びイベント共有プログラム
CN113765783A (zh) 通信方法及装置
JP4657095B2 (ja) ノードの情報管理方法及び情報制御システム
JP2009266138A (ja) 通信システム、サーバ装置、中継装置及びそれらに用いる通信方法並びにそのプログラム
JP2007249913A (ja) データ管理装置、データ管理プログラム、および記録媒体