JP2011118771A - 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム - Google Patents

情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム Download PDF

Info

Publication number
JP2011118771A
JP2011118771A JP2009276947A JP2009276947A JP2011118771A JP 2011118771 A JP2011118771 A JP 2011118771A JP 2009276947 A JP2009276947 A JP 2009276947A JP 2009276947 A JP2009276947 A JP 2009276947A JP 2011118771 A JP2011118771 A JP 2011118771A
Authority
JP
Japan
Prior art keywords
data
server
information
client
storage unit
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.)
Granted
Application number
JP2009276947A
Other languages
English (en)
Other versions
JP5585062B2 (ja
Inventor
Seiji Ezaka
征二 江坂
Taketaka Kaneko
武尊 金子
Masayuki Takada
昌幸 高田
Shuhei Sonoda
修平 園田
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2009276947A priority Critical patent/JP5585062B2/ja
Priority to EP10188729A priority patent/EP2369501A3/en
Priority to US12/951,983 priority patent/US8706857B2/en
Priority to CN201010570816XA priority patent/CN102104594A/zh
Publication of JP2011118771A publication Critical patent/JP2011118771A/ja
Application granted granted Critical
Publication of JP5585062B2 publication Critical patent/JP5585062B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】サーバ負荷と処理時間を軽減することが可能なデータ同期システムを提供する。
【解決手段】本発明の情報処理装置は、サーバから取得したデータを記憶するデータ記憶部と、サーバで記憶されている、サーバにおけるデータの変更内容を示す変更履歴情報の蓄積状態を確認する確認部と、確認部の確認結果に基づいて、変更履歴情報に従ってデータ記憶部に記憶されているデータをサーバの管理するデータと同期させる第1の取得方法と、サーバに存在するデータを示すデータ存在情報をサーバから取得してデータ記憶部に記憶されているデータを同期させる第2の取得方法とのいずれの取得方法によりデータを取得するかを決定し、サーバからデータを取得するデータ取得処理部と、を備える。
【選択図】図2

Description

本発明は、情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システムに関する。
近年、ネットワーク接続機器の増加と、モバイル端末の普及により、時間や場所を問わずユーザがサーバ上で管理している情報にアクセスすることが可能となった。これに伴い、サーバ上の情報を、ユーザが管理するすべての機器で一貫性を持って利用できることが求められている。このための技術が同期技術である。クライアント/サーバと携帯端末との同期に関しては、例えば、OMA(Open Mobile Alliance)により仕様が設定された「SyncML」という標準化されたプロトコルがある。ここでは、クライアントの認証や同期タイプの確認後、サーバとクライアントとの間でのデータのやり取りの流れを規定している。この際、同期するデータを特定するため、自身の変更履歴を記憶しておき、その変更履歴に基づいて相手に送信する必要のある情報を相手へ送信することが考えられている。
例えば、特許文献1には、一度のデータ同期で大量の情報を送受信することのないように、データの更新履歴に基づいて適当なデータ送信量でのデータ同期を自動的に開始するデータ同期システムが開示されている。これにより、通信時間の増大やデータ同期中にエラーが発生する可能性を低減することができ、通信コストの削減やデータ同期プログラムによるクライアント端末の占有を回避することが可能となる。
特開2004−86800号公報
しかし、特許文献1に記載のデータ同期システムでは、クライアント端末がデータ同期開始要求に応じない場合、例えば複数台のクライアント端末のうち一部のクライアント端末の電源が完全にオフとなっている場合等は、履歴数は保存可能な閾値を超えて増加し、同期開始時に送受信される情報量が多大になってしまう。また、この場合、履歴数が増加することでメモリ使用量も増加するため、履歴を保持しているサーバ側の負荷も大きくなる。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、サーバ負荷と処理時間を軽減することが可能な、新規かつ改良された情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、サーバから取得したデータを記憶するデータ記憶部と、サーバで記憶されている、サーバにおけるデータの変更内容を示す変更履歴情報の蓄積状態を確認する確認部と、確認部の確認結果に基づいて、変更履歴情報に従ってデータ記憶部に記憶されているデータをサーバの管理するデータと同期させる第1の取得方法と、サーバに存在するデータを示すデータ存在情報をサーバから取得してデータ記憶部に記憶されているデータを同期させる第2の取得方法とのいずれの取得方法によりデータを取得するかを決定し、サーバからデータを取得するデータ取得処理部と、を備える、情報処理装置が提供される。
ここで、確認部は、サーバで蓄積された変更履歴情報の数が所定の履歴数を超えているかを確認し、データ取得処理部は、サーバで蓄積された変更履歴情報が所定の履歴数以下であるとき、第1の取得方法を用いてデータを取得し、サーバで蓄積された変更履歴情報が所定の履歴数より多いとき、第2の取得方法を用いてデータを取得してもよい。
また、データ記憶部には、当該データ記憶部で保持するデータに関する情報であるクライアントデータ情報が記憶されており、データ取得処理部は、第2の取得方法によりデータを取得するとき、データ存在情報とクライアントデータ情報とを比較して、サーバにて更新されたデータのみをサーバから取得してもよい。
さらに、データ取得処理部は、第2の取得方法によりデータを取得するとき、データ存在情報とクライアントデータ情報とを比較して、情報処理装置にのみ存在するデータを特定し、情報処理装置にのみ存在するデータをデータ記憶部から削除してもよい。
また、データ取得処理部は、クライアントデータ情報に含まれる、情報処理装置にて変更され、かつサーバへ未送信のデータを示す送信状態情報に基づいて、情報処理装置にて変更されたデータに同期してサーバで管理されるデータを更新するための情報を、サーバへ送信してもよい。
さらに、データ取得処理部は、変更履歴情報をデータ単位で集約し、集約された変更履歴情報に基づいて、サーバからデータを取得してもよい。
また、データ取得処理部は、時系列に並んだ変更履歴情報を所定のデータ数で分割し、分割された変更履歴情報ごとにサーバからデータを取得してもよい。
また、上記課題を解決するために、本発明の別の観点によれば、ネットワークを介して接続され、データを管理するサーバで記憶されている、サーバにおけるデータの変更内容を示す変更履歴情報の蓄積状態を確認するステップと、変更履歴情報の蓄積状態の確認結果に基づいて、変更履歴情報に従ってサーバから取得したデータを記憶するデータ記憶部に記憶されているデータをサーバの管理するデータと同期させる第1の取得方法と、サーバに存在するデータを示すデータ存在情報をサーバから取得してデータ記憶部に記憶されているデータを同期させる第2の取得方法とのいずれの取得方法によりデータを取得するかを決定するステップと、決定された取得方法により、サーバからデータを取得するステップと、を含む、情報処理方法が提供される。
さらに、上記課題を解決するために、本発明の別の観点によれば、データを記憶するデータ記憶部と、変更情報に基づいて、データ記憶部に記憶されたデータを変更するデータ変更部と、データ変更部により変更されたデータの変更内容を示す変更履歴情報を記憶するサーバ履歴記憶部と、サーバ履歴記憶部に記憶する変更履歴情報の上限蓄積量を記憶する設定記憶部と、上限蓄積量に基づいてサーバ履歴記憶部に記憶する変更履歴情報の蓄積量を管理する管理部と、ネットワークを介して接続されたクライアントからの要求に応じて、クライアントへ送信するデータまたは変更履歴情報を取得し、データ記憶部に記憶されたデータに基づいてデータ記憶部に存在するデータを示すデータ存在情報を作成する情報処理部と、情報処理部により取得されたデータ、変更履歴情報、または作成されたデータ存在情報をクライアントへ送信するサーバ通信部と、を備える、データ管理サーバが提供される。
管理部は、サーバ履歴記憶部に記憶された変更履歴情報の蓄積量が上限蓄積量を超えたとき、変更履歴情報の蓄積を停止してもよい。
また、管理部は、サーバ履歴記憶部に記憶された変更履歴情報の蓄積量が上限蓄積量を超えたとき、変更履歴情報の蓄積量が上限蓄積量を超えたことを示すオーバーフロー判定情報をデータ履歴記憶部に記録してもよい。
さらに、情報処理部は、データ記憶部よりデータを取得し、サーバ存在情報を作成する第1の処理部と、サーバ履歴記憶部より変更履歴情報を取得する第2の処理部と、を備えてもよい。このとき、サーバ通信部は、クライアントから変更履歴情報の送信要求を受けたとき、第2の処理部にサーバ履歴記憶部から変更履歴情報を取得させる。
また、サーバ履歴記憶部は、ネットワークを介して接続されたクライアントごとに変更履歴情報を記憶してもよい。
さらに、上記課題を解決するために、本発明の別の観点によれば、変更情報に基づいて、データを記憶するデータ記憶部に記憶されたデータを変更するステップと、変更されたデータの変更内容を示す変更履歴情報をサーバ履歴記憶部に記憶するステップと、サーバ履歴記憶部に記憶する変更履歴情報の上限蓄積量に基づいてサーバ履歴記憶部に記憶する変更履歴情報の蓄積量を管理するステップと、ネットワークを介して接続されたクライアントからの要求に応じて、クライアントへ送信するデータまたは変更履歴情報を取得するステップと、クライアントからの要求に応じて、データ記憶部に記憶されたデータに基づいてデータ記憶部に存在するデータを示すデータ存在情報を作成するステップと、取得したデータ、変更履歴情報、または作成したデータ存在情報をクライアントへ送信するステップと、を含む、情報処理方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、ネットワークを介して接続されたサーバとクライアントとのデータを同期する、データ同期システムが提供される。サーバは、データを記憶するデータ記憶部と、変更情報に基づいて、データ記憶部に記憶されたデータを変更するデータ変更部と、データ変更部により変更されたデータの変更内容を示す変更履歴情報を記憶するサーバ履歴記憶部と、サーバ履歴記憶部に記憶する変更履歴情報の上限蓄積量を記憶する設定記憶部と、上限蓄積量に基づいてサーバ履歴記憶部に記憶する変更履歴情報の蓄積量を管理する管理部と、ネットワークを介して接続されたクライアントからの要求に応じて、クライアントへ送信するデータまたは変更履歴情報を取得し、データ記憶部に記憶されたデータに基づいてデータ記憶部に存在するデータを示すデータ存在情報を作成する情報処理部と、情報処理部により取得されたデータ、変更履歴情報、または作成されたデータ存在情報をクライアントへ送信するサーバ通信部と、を備える。クライアントは、サーバからデータ、変更履歴情報およびデータ存在情報を受信するクライアント通信部と、サーバから取得したデータを記憶するデータ記憶部と、サーバで記憶されている変更履歴情報の蓄積状態を確認する確認部と、確認部の確認結果に基づいて、変更履歴情報に従ってデータ記憶部に記憶されているデータをサーバの管理するデータと同期させる第1の取得方法と、サーバに存在するデータを示すデータ存在情報をサーバから取得してデータ記憶部に記憶されているデータを同期させる第2の取得方法とのいずれの取得方法によりデータを取得するかを決定し、サーバからデータを取得するデータ取得処理部と、を備える。
以上説明したように本発明によれば、サーバ負荷と処理時間を軽減することが可能な情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システムを提供することができる。
本発明の実施形態に係るデータ同期システムの概略構成を示す概念図である。 同実施形態にかかるデータ同期システムの機能構成を示すブロック図である。 履歴情報ファイルの一構成を示す説明図である。 サーバでオーバーフローが発生していないときのクライアントにおけるデータ同期処理を示すフローチャートである。 サーバでオーバーフローが発生しているときのクライアントにおけるデータ同期処理を示すフローチャートである。 サーバでオーバーフローが発生しているときのクライアントにおけるデータの更新・追加処理を示すフローチャートである。 クライアントにて管理しているデータ情報の一例を示す説明図である。 図6の処理におけるデータの更新・追加処理を説明するための説明図である。 サーバでオーバーフローが発生しているときのクライアントにおけるデータの削除処理を示すフローチャートである。 図9の処理におけるデータの削除処理を説明するための説明図である。 変更履歴情報の集約の一例を示す説明図である。 変更履歴情報の分割および集約の一例を示す説明図である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.データ同期システムの構成例
2.データ同期システムの構成
3.データ同期処理
3−1.オーバーフローが発生していない場合のデータ同期処理
3−2.オーバーフローが発生している場合のデータ同期処理
4.変更履歴情報の効率的な処理方法
4−1.変更履歴情報の集約
4−2.変更履歴情報の分割
[1.データ同期システムの構成例]
まず、図1に基づいて、本発明の実施形態に係るデータ同期システムの概略構成について説明する。なお、図1は、本実施形態に係るデータ同期システムの概略構成を示す概念図である。
本実施形態に係るデータ同期システムは、データを提供するサーバ100と、サーバ100からデータを取得可能な1または複数のクライアント200とを、ネットワーク10を介して接続して構築されている。例えば、図1に示すように、サーバ100と、4つのクライアント200A、200B、200C、200Dとが接続された、データ同期システムを構築することができる。サーバ100とクライアント200との通信は、無線通信であってもよく、有線通信であってもよい。サーバ100とクライアント200との間で送受信されるデータとしては、例えば、写真などの静止画像、動画像、文書ファイル、メール、カレンダーなどのアプリケーションデータ等がある。
サーバ100は、データを保持し、クライアント200からの要求によりデータを提供する。また、サーバ100は、データに対する変更を履歴管理して、データの同期処理に用いられる履歴情報ファイルをクライアント200に提供する。クライアント200は、サーバ100から所望のデータを取得可能な情報処理端末であって、例えば、携帯電話やPDA(Personal Digital Assistants)等の通信端末や、コンピュータ、テレビジョン受像機等である。各クライアント200は、サーバ100から取得したデータを参照したり、変更することが可能であり、また、データを削除したり追加することも可能である。
本実施形態に係るデータ同期システムでは、各クライアント200がサーバ100の保持するデータを同一の状態で取得可能なように、同期処理が行われる。例えば、図1に示すように、ネットワーク10を介して接続されたクライアント200A〜200DのユーザA〜Dが相違する場合には、ユーザ間で共有したいデータを最新の状態で同期することにより、ユーザ同士で異なったデータを有することを防止する。また、クライアント200A〜200Dが同一のユーザである場合には、自身が所持し管理するデータを、いつでもどこでも最新の状態でどのクライアント200でも取得できるようにするため、データの同期が必要である。
すべてのクライアント200は、サーバ100で管理されているデータのすべて、もしくは一部を、自身に備えるデータベースまたはメモリにコピーしている。そして、クライアント200は、サーバ100に記憶されているデータに変更がある場合にはその変更情報を取得して、変更を自身に反映させることで同期がとれた状態を維持する。また、クライアント200の保持するデータに変更があった場合には、その変更情報をサーバ100へ送信し、必要な処理をサーバ100に実行させる。以下、サーバ負荷と処理時間を軽減することの可能な、本実施形態に係るデータ同期システムの構成と当該システムにおけるデータ同期処理について説明していく。
[2.データ同期システムの構成]
まず、図2および図3に基づいて、本実施形態に係るデータ同期システムの構成について説明する。なお、図2は、本実施形態に係るデータ同期システムの機能構成を示すブロック図である。図3は、履歴情報ファイルの一構成を示す説明図である。
本実施形態に係るデータ同期システムのサーバ100は、図2に示すように、データベースサーバ(以下、「DBサーバ」と称する。)110と、アプリケーションサーバ(以下、「APPサーバ」と称する。)120と、HTTPサーバ130とから構成される。DBサーバ110、APPサーバ120、HTTPサーバ130は、それぞれ別体であってもよく、2つ以上のサーバを組み合わせて一体としてもよい。
DBサーバ110は、データを保持し、管理するサーバである。本実施形態のDBサーバ110は、データ本体の情報や、メタ情報、アプリケーションデータ等のすべてのデータを記憶する。例えば、データ本体の情報やメタ情報は、DBサーバ110のデータ記憶部112に記録され、アプリケーションデータはアプリケーション記憶部114に記憶されるように、データは、DBサーバ110の所定の記憶部に記録される。また、DBサーバ110は、APPサーバ120からの指示情報に基づいて、記憶部に記憶されたデータを変更するデータ変更部(図示せず。)や、データをAPPサーバ120へ出力する出力部(図示せず。)を備えている。
APPサーバ120は、DBサーバ110とHTTPサーバ130との間でクライアントの要求を受けてデータを変更する仲介や、DBサーバ110に記憶されているデータを監視してHTTPサーバ130へデータの状態を示すデータ情報の出力等をする。例えば、APPサーバ120は、図2に示すように、APPサーバ処理部122と、設定記憶部124とを備える。
APPサーバ処理部122は、DBサーバ110とHTTPサーバ130との間でのデータの仲介処理や、設定情報に基づくデータ情報の取得処理等を行う情報処理部として機能する。APPサーバ処理部122は、DBサーバ110に記憶されているデータの変更履歴情報をHTTPサーバ130へ出力し、サーバ履歴記憶部136に記憶させる。また、APPサーバ処理部122は、サーバ100で管理するデータの変更履歴情報がオーバーフローしているか否かを判定し、HTTPサーバ130へ判定結果(オーバーフロー判定情報)を通知する管理部としても機能する。設定記憶部124は、例えば履歴保存条件や、オーバーフロー実施履歴回数、履歴処理回数等の設定情報を記憶している。なお、これらの設定情報についての説明は後述する。
また、APPサーバ処理部122は、クライアント200からの要求に応じて、DBサーバ110のデータ記憶部112に記憶されているすべてのデータについて、データ名と当該データの最終変更時間とからなるデータ存在情報を作成する。データ存在情報は、クライアント200から送信が要求される度に作成される。クライアント200は、データ存在情報を取得することにより、データ記憶部112で管理されているデータの最新状態を認識することができる。
HTTPサーバ130は、クライアント200との通信を行うサーバである。HTTPサーバ130は、例えば、サーバ通信部132と、履歴処理部134と、サーバ履歴記憶部136とを備える。サーバ通信部132は、クライアント200との通信を行うインタフェースである。サーバ通信部132は、クライアント200から取得した情報を、APPサーバ120を介してDBサーバ110へ出力したり、DBサーバ110から取得したデータを、APPサーバ120を介してクライアント200へ送信したりする。また、サーバ通信部132は、DBサーバ110におけるデータの状態を示すデータ情報を履歴処理部134へ出力する。
履歴処理部134は、データ情報に基づいて、DBサーバ110に記録されているデータに対する変更を管理する変更履歴情報をサーバ履歴記憶部136に記録する。履歴処理部134は、データ情報に含まれるデータ名、データの変更時間、および変更内容を変更履歴情報として、サーバ履歴記憶部136に記録する。また、履歴処理部134は、クライアント200からの要求に応じて、変更履歴情報を含む履歴情報ファイルを取得する情報処理部としても機能し、サーバ通信部132を介してクライアント200へ送信する。
サーバ履歴記憶部136は、データの変更履歴情報等からなる履歴情報ファイルを記憶する。サーバ履歴記憶部136には、DBサーバ110のデータ記憶部112に記憶されるデータが変更される度に、APPサーバ処理部122から送信されたデータの変更情報が書き込まれる。サーバ履歴記憶部136の履歴情報ファイルに含まれる変更履歴情報は、例えば図3に示すように、変更時間1361と、データ名1362と、変更内容1363とを記憶して管理することができる。変更内容1363には、例えばDBサーバ110に新規に追加された場合を示す「追加」、すでに記憶されているデータを更新した場合を示す「更新」、記憶されていたデータを削除した場合を示す「削除」等の区分が記録される。
また、履歴情報ファイルには、変更履歴情報がサーバ履歴記憶部136に記憶する履歴数(オーバーフロー実施履歴回数)を超えたか、すなわち、オーバーフローしたか否かを示すオーバーフロー判定情報が含まれる。オーバーフロー実施履歴回数は、サーバ100やクライアント200の性能に応じて、サーバ100やクライアント200の負荷が大きくならないような値に設定することができる。サーバ履歴記憶部136は、履歴情報ファイルをクライアント200ごとに管理している。
本実施形態のサーバ100は、サーバ100におけるデータの変更内容を示す変更履歴情報とオーバーフロー判定情報とを含む履歴情報ファイルを、クライアント200との通信を担当するHTTPサーバ130で管理している。これにより、クライアント200からの履歴情報ファイルの送信要求に対して迅速に応答することが可能となり、サーバ100の負荷を低減することが可能となる。
次に、クライアント200は、図2に示すように、クライアント通信部210と、保存条件設定部220と、オーバーフロー確認部230と、データ取得処理部240と、データ記憶部250とからなる。
クライアント通信部210は、サーバ100との通信を行うインタフェースである。クライアント通信部210は、サーバ100に対して変更履歴情報やデータ存在情報、データの送信要求や、保存条件設定部220により設定された履歴保存条件を送信したり、サーバ100から変更履歴情報やデータ存在情報、データを受信したりする。クライアント通信部210は、受信した変更履歴情報やデータ存在情報、データをオーバーフロー確認部230、データ取得処理部240へ出力する。
保存条件設定部220は、ユーザにより入力された入力情報や、クライアント200の仕様等に基づいて、サーバ100に変更履歴情報を保存するための設定情報を設定する。設定情報としては、例えば、クライアント200に適合する監視条件(例えば、大容量のメモリを有するクライアント200であればサーバ100のデータすべてを同期し、小さいメモリしか有していないクライアント200であればデータの一部を同期する、という場合の同期フォルダの指定条件等)がある。また、設定情報として、変更履歴情報を保存するデータの種類を限定する条件等を設定することもできる。保存条件設定部220は、クライアント通信部210を介して、設定情報をサーバ100へ出力する。
オーバーフロー確認部230は、履歴情報ファイルのオーバーフロー判定情報を参照して、サーバ100側においてデータの変更履歴情報を保存する蓄積量を超えているか否かを確認する。サーバ100で管理する変更履歴情報が膨大となると、HTTPサーバ130で管理する履歴情報ファイルのデータ量が増加し、メモリの使用量が著しく増加することが懸念される。また、履歴情報処理に要する時間が、サーバ100で管理するデータをすべてクライアント200側へコピーする時間よりも長くなる履歴数の閾値があると考えられる。本実施形態では、この閾値付近で変更履歴情報に基づく履歴情報処理からデータ存在情報に基づくデータコピー処理へ処理が移行するようにすることにより、サーバ負荷の軽減や同期処理時間の短縮を図る。すなわち、オーバーフロー判定情報は、履歴情報処理からデータコピー処理へ移行することを示す情報である。
サーバ100のオーバーフロー判定情報は、クライアント200においてオーバーフローフラグとして管理される。例えば、オーバーフロー判定情報より履歴情報ファイルで管理されている履歴数がオーバーフロー履歴実施回数を超えていないと確認された場合には、オーバーフローフラグに「false」が設定される。また、オーバーフロー判定情報より履歴情報ファイルで管理されている履歴数がオーバーフロー履歴実施回数を超えていると確認された場合には、オーバーフローフラグに「true」が設定される。すなわち、オーバーフロー履歴実施回数が上述の閾値を示す値であり、サーバ100のAPPサーバ処理部122から受信したオーバーフロー判定情報およびクライアント200で設定されるオーバーフローフラグは、上記閾値に対するサーバ100の変更履歴情報の数の状態を示す情報となる。このように、オーバーフロー確認部230は、取得した履歴情報ファイルのオーバーフロー判定情報を参照して、サーバ100側でオーバーフローが生じているか否かを確認し、確認結果(オーバーフローフラグ)をデータ取得処理部240へ出力する。
データ取得処理部240は、オーバーフロー確認部230による確認結果に基づいてサーバ100からのデータの取得方法を決定し、データをサーバ100から取得する。データ取得処理部240は、サーバ100側でのオーバーフローの発生についての確認結果より、履歴情報処理(第1の取得方法)またはデータコピー処理(第2の取得方法)のいずれを実行するかを決定する。そして、データ取得処理部240は、決定した取得方法に基づき、クライアント通信部210を介してサーバ100へデータの提供を要求する。かかる要求によりサーバ100から提供されたデータは、クライアント通信部210からデータ取得処理部240へ出力され、データ記憶部250に記録される。
データ取得処理部240は、サーバ100からデータを取得するに際して、HTTPサーバ130のサーバ履歴記憶部136に記憶された履歴情報ファイルまたはAPPサーバ処理部122により作成されるデータ存在情報を、クライアント通信部210を介して取得する。また、データ取得処理部240は、サーバ100から取得したデータに基づき、クライアント200で保持するデータに関する情報であるクライアントデータ情報を作成・更新する。クライアントデータ情報は、クライアント200側でデータの追加や変更、削除等の処理が実行された場合にも、データ取得処理部240により更新される。なお、クライアントデータ情報の内容については、後述する。
データ記憶部250は、データ取得処理部240によってサーバ100から取得されたデータを記憶する。クライアント200のユーザは、データ記憶部250に記憶されたデータの参照、更新、追加、削除等の処理を行うことができる。また、データ記憶部250は、データ記憶部250に記憶されているデータに関する情報をクライアントデータ情報として記憶している。クライアントデータ情報には、各データについて、データ名、サーバ100での最終変更時間、データ記憶部250に記録した保存時間、およびクライアント200からサーバ100へ当該データを送信したか否かを示す送信状態フラグが含まれている。また、クライアントデータ情報は、クライアント200の保持するデータがサーバ100に存在するデータであるか否かを示す存在チェックフラグを含むこともできる。存在チェックフラグは、データコピー処理時のデータの削除の際に利用される。当該処理の詳細は後述する。クライアントデータ情報は、データ記憶部250で保持するデータの状態が変更する度に更新される。
以上、本実施形態に係るデータ同期システムの機能構成について説明した。
[3.データ同期処理]
次に、図4〜図10に基づいて、本実施形態に係るデータ同期システムにおけるデータ同期処理について説明する。なお、図4は、サーバ100でオーバーフローが発生していないときのクライアント200におけるデータ同期処理を示すフローチャートである。図5は、サーバ100でオーバーフローが発生しているときのクライアント200におけるデータ同期処理を示すフローチャートである。図6は、サーバ100でオーバーフローが発生しているときのクライアント200におけるデータの更新・追加処理を示すフローチャートである。図7は、クライアント200にて管理しているデータ情報の一例を示す説明図である。図8は、図6の処理におけるデータの更新・追加処理を説明するための説明図である。図9は、サーバ100でオーバーフローが発生しているときのクライアント200におけるデータの削除処理を示すフローチャートである。図10は、図9の処理におけるデータの削除処理を説明するための説明図である。
本実施形態にかかるデータ同期システムでは、サーバ100で管理する変更履歴情報がオーバーフローしているか否かにより、サーバ100とクライアント200とが保持するデータを同期させるためのデータの取得方法が異なる。以下、オーバーフローが発生していない場合と、オーバーフローが発生している場合との、データ同期処理について詳細に説明する。
(3−1.オーバーフローが発生していない場合のデータ同期処理)
オーバーフローが発生していない場合のデータ同期処理は、図4に示すフローチャートに沿って行われる。クライアント200は、定期的にサーバ100の状態を監視しており、当該データ同期処理を終了する終了条件を満たしているかを確認する(ステップS100)。終了条件は、例えばクライアント200とサーバ100との接続が切断された状態等とすることができる。クライアント200は、終了条件を満たしているか否かを判定し(ステップS102)、終了条件を満たしている場合には、データ同期処理を終了する。一方、終了条件を満たしていない場合には、履歴保存条件の設定が完了しているかを確認する(ステップS104)。
履歴保存条件は、サーバ100に記憶される情報であって、クライアント200の仕様等より当該クライアント200に適合した条件でデータの同期が行われるように、クライアント200ごとに設定される。履歴保存条件には、例えば、大容量のメモリを有するクライアント200であればサーバ100のデータすべてを同期し、小さいメモリしか有していないクライアント200であればデータの一部を同期する、という場合の同期フォルダの指定条件や、データ種類を限定する条件等の設定情報が含まれる。また、履歴保存条件には、保存したい履歴の変更内容(例えば、「追加」、「更新」、「削除」等)の種別の指定も含めることができる。
クライアント200は、保存条件設定部220による上記設定情報の設定が行われたか否かを判定する(ステップS106)。設定情報が設定されていない場合には、クライアント200は、設定情報の設定を行い、クライアント通信部210を介してサーバ100へ履歴保存条件として出力する(ステップS108)。そして、クライアント200は、ステップS108にて履歴保存条件が設定された後、あるいは、すでに履歴保存条件が設定されているときには、サーバ100にて管理するデータが、サーバ100からクライアント200へコピーされているかを確認する(ステップS110)。
サーバ100にて管理されるデータのコピーは、クライアント200がサーバ100に最初に接続されたときに実行される処理であり、頻繁にデータの同期処理を行っているシステムでは、一度実行すれば再度行われることはほとんどない。再度実行される場合としては、例えば、サーバ100で管理する変更履歴情報の数がオーバーフローした場合や、コピーすべきデータが多いため複数回に分けてデータがクライアント200へ送信される場合にすべてのデータの受信を完了していないとき等がある。なお、データのコピーが再度実行される場合の処理については、後述する。また、ステップS110では、実際には、後述する図5のステップS210と同様、サーバ100で変更履歴情報のオーバーフローが発生していないかをオーバーフローフラグを参照して確認している。しかし、ここではオーバーフローは発生していない場合を説明しているため、かかる処理の記載を省略している。
クライアント200は、サーバ100からクライアント200へのデータのコピーが完了しているか否かを判定し(ステップS112)、完了していない場合には、サーバ100で管理するデータのコピーを行う(ステップS114;データコピー処理)。ステップS114の処理は、まず、クライアント200からサーバ100に対して、サーバ100に存在する全データの情報、すなわちデータ存在情報の要求が行われる。かかる要求を受信したHTTPサーバ130は、APPサーバ120のAPPサーバ処理部122に要求を通知する。APPサーバ処理部122は、データ記憶部112を参照して、データ記憶部122に記憶されている全データのデータ名および最終変更時間を取得し、サーバ存在情報を作成する。APPサーバ処理部122は、作成したサーバ存在情報を、HTTPサーバ130を介してクライアント200へ送信する。次いで、クライアント200は、データ存在情報とクライアントデータ情報とを比較して、クライアント200に存在しないデータ等サーバ100から取得の必要なデータを特定する。
クライアント200は、特定された取得の必要なデータの送信をサーバ100へ要求する。当該要求を受信したHTTPサーバ130は、APPサーバ120へその要求を伝達する。そして、APPサーバ120は、DBサーバ110に対して要求されたデータを取得して送信するよう要求する。DBサーバ110は、要求されたデータを取得すると、当該データをAPPサーバ120へ出力する。そして、APPサーバ120は、DBサーバ110から送信されたデータをHTTPサーバ130へ出力し、HTTPサーバ130は、受信したデータをクライアント200へ出力する。このとき、クライアント200は、取得したデータをデータ記憶部250に記録する。
一方、ステップS112にてサーバ100からクライアント200へのデータのコピーが完了している場合には履歴情報処理を実行する(ステップS116)。履歴情報処理は、サーバ100のHTTPサーバ130にて管理されているデータの変更履歴情報に基づいて、クライアント200で保持するデータを変更する処理である。サーバ100とクライアント200との同期が少なくとも一度とれていれば、クライアント200が取得しているデータの変更内容を取得することで、サーバ100で管理されているデータと同一のデータを保持することができる。これにより、サーバ負荷の低い状態でデータ同期処理を行うことができる。
履歴情報処理を実行するために、サーバ100は、クライアント200ごとに、サーバ100にて実行されたデータの変更を変更履歴情報として、HTTPサーバ130のサーバ履歴記憶部136に記憶している。APPサーバ120のAPPサーバ処理部122は、履歴保存条件に基づきデータの状態を監視し、変更があるごとにHTTPサーバ130へ変更情報を出力して、変更履歴情報としてサーバ履歴記憶部136に記録させる。
ステップS116において、クライアント200は、まず、サーバ100に対して変更履歴情報を含む履歴情報ファイルの送信を要求する。履歴情報ファイルの送信の要求を受けたサーバ100は、HTTPサーバ130にてサーバ履歴記憶部136から当該クライアント200の履歴情報ファイルを取得して、クライアント200へ送信する。履歴情報ファイルは、HTTPサーバ130にて直接扱うことが可能であるため、クライアント200から履歴情報ファイルの取得要求を受信したとき、HTTPサーバ130だけで当該処理を完結することができる。よって、サーバ100としては、管理する履歴件数が膨大でない限りはサーバ負荷を低くして同期処理をすることが可能となる。
履歴情報ファイルを取得したクライアント200は、変更履歴情報を参照し、現在クライアント200がデータ記憶部250に保持しているデータを更新する。すなわち、データ取得処理部240は、変更履歴情報に含まれるデータのデータ名、変更内容、および変更時間(サーバ100での最終変更時間)に基づいて、データ記憶部250のデータを更新し、サーバ100の保持するデータとの同期を図る。
ステップS114またはS116の処理により、サーバ100で管理されているデータの状態がクライアント200に反映されると、続いて、クライアント200の保持するデータの状態が必要に応じてサーバ100へ通知される(ステップS118)。他のクライアント200によりデータが変更されている場合に、サーバ100より変更後のデータを取得する一方、クライアント200自身で更新したデータについては、他のクライアント200とデータの同期をとるため、変更されたデータをサーバ100へ通知する必要がある。そこで、クライアント200は、クライアントデータ情報の送信状態フラグに基づいて、サーバ100からの取得以降にクライアント200自身で変更したデータをサーバ100へ送信する。
送信状態フラグは、クライアント200で追加や変更等なされたがサーバ100へ未送信のデータを判別するため情報である。例えば、送信状態フラグには、クライアント200で更新されたがサーバ100へ未送信のデータには「Post」が設定され、サーバ100への送信が成功したデータには「PostSuccess」が設定され、それ以外のデータには「Steady」が設定される。クライアント200は、送信状態フラグに「Post」が設定されているデータをサーバ100へ送信する。
クライアント200で変更されたデータを受信したサーバ100は、DBサーバ110に記憶されているデータを変更し、クライアント200のデータの状態と同期をとる。これにより、サーバ100とクライアント200とがそれぞれ保持するデータが同一となる。また、他のクライアント200は、サーバ100の変更履歴ファイルを参照することにより、サーバ100のデータが更新されたことを認識して、変更後のデータをサーバ100より取得し、データの同期を図ることができる。
変更したデータを送信したクライアント200の変更履歴ファイルにも、自身が変更したデータがサーバ100のデータ記憶部112に反映されたことが変更履歴情報として記録される。これより、かかるクライアント200が次にサーバ100から変更履歴ファイルを取得したときには、変更履歴情報から自身が更新したデータがサーバ100側に反映されていることを認識することができる。すなわち、クライアントデータ情報の送信状態フラグが「Post」のデータについて、サーバ100への送信が成功すると、当該データの送信状態フラグには「PostSuccess」が設定される。その後、クライアント200がサーバ100から取得した変更履歴情報に基づき変更されたデータを更新する際、クライアント200は、クライアントデータ情報の送信状態フラグを確認する。このとき、送信状態フラグに「PostSuccess」が設定されていれば、自身が変更したデータであり、サーバ100へ送信を要求しなくともよいことがわかる。したがって、変更履歴情報に基づいて更新しようとするデータの送信状態フラグが「PostSuccess」のときには、クライアント200は、クライアント200の保持するデータを更新しないとともに、クライアントデータ情報の当該データの送信状態フラグを「PostSuccess」から「Steady」に設定を変更する。なお、その後、さらに当該データが更新されたときには、送信状態フラグは再び「Post」に設定される。
なお、クライアント200のデータの変更内容をサーバ100側に反映させる場合、上述したように変更後のデータ自体をサーバ100へ送信してもよく、変更内容のみをサーバ100へ送信してもよい。変更内容を受信した場合、サーバ100は、変更内容に基づいて、DBサーバ110のデータ記憶部112に記憶されるデータを変更して、データの同期をとることになる。
ここで、クライアント200におけるデータの変更のうち、データの削除については、クライアント200の変更に伴ってサーバ100上のデータも削除してもよいが、サーバ200上にはデータを保持しておくようにしてもよい。あるクライアント200からデータが削除されてしまった場合、削除を望まない他のクライアント200からも当該データが削除されてしまうことが考えられるためである。サーバ100は、クライアント200からデータを削除する要求を受けたとき、例えばクライアント200に対して当該データを削除してもよいか確認するメッセージを送信する。そして、サーバ100は、クライアント200から削除を許可する返信を受けた場合のみ、データを削除するようにしてもよい。あるいは、サーバ100上のデータは削除せず、クライアント200側でデータが削除された場合には、クライアント200の要求またはサーバ100が自動的に、削除されたデータをサーバ100からクライアント200へ送信するようにしてもよい。
このように、ステップS114〜S118の処理により、サーバ100とクライアント200との間でデータを同期させることができる。ステップS118の処理が終了すると、ステップS100に戻り、データ同期処理を繰り返し実施するか確認する。
以上、オーバーフローが発生していない場合のデータ同期処理について説明した。オーバーフローが発生していない場合、基本的に変更履歴情報に基づいて変更のあったデータのみを更新する。一方、変更履歴情報が膨大になった場合には、サーバ100に保持しておく履歴情報ファイルによりメモリが著しく消費することが考えられる。そして、履歴情報処理に要する時間がサーバ100の管理するデータをクライアント200にすべてコピーするために必要な時間を超えるようになる。そこで、本実施形態に係るデータ同期処理では、サーバ100の負荷を軽減し、同期処理時間を短縮することができる。以下、図5に基づいて、本実施形態に係るデータ同期システムのサーバ100において、オーバーフローが発生している場合のデータ同期処理について説明する。
(3−2.オーバーフローが発生している場合のデータ同期処理)
オーバーフローが発生している場合のデータ同期処理は、図5に示すフローチャートに沿って行われる。オーバーフローが発生しているか否かは、APPサーバ120の設定記憶部124に記憶されているオーバーフロー実施履歴回数に基づき、APPサーバ処理部122によって判断される。APPサーバ処理部122は、HTTPサーバ130のサーバ履歴記憶部136に記録される変更履歴情報の数がオーバーフロー実施履歴回数以下であるときには、DBサーバ110で保持するデータが変更される度に、変更情報をサーバ履歴記憶部136の履歴情報ファイルに変更履歴情報として追加する。したがって、クライアント200がサーバ100へアクセスするまでにサーバ100側で変更されたデータの変更履歴は、履歴情報ファイルより認識することができる。
しかし、クライアント200が長時間サーバ100にアクセスしていない場合や、ネットワーク10に接続するクライアント200が複数存在したり、あるクライアント200が頻繁にアクセスしたりしている場合には、膨大な変更履歴情報が生成される。このような変更履歴情報に基づいて、1つずつクライアント200がデータを取得すると、データのコピーに莫大な時間がかかることになる。また、変更履歴情報を記憶するサーバ100の負荷も大きくなる。
そこで、このような場合には、APPサーバ処理部122は、履歴処理部134に対して、サーバ履歴記憶部136の履歴情報ファイルに、変更履歴情報を書き込むことを停止させるとともに、オーバーフローしたことを示すオーバーフロー判定情報を記録させる。クライアント200は、オーバーフロー判定情報からサーバ100において変更履歴情報のオーバーフローが生じていることを認識すると、サーバ100にて保持するすべてのデータに関する情報であるデータ存在情報を取得することにより、データの同期を図る。以下、図5に基づき、オーバーフロー発生時のデータ同期処理について説明していく。なお、ステップS200〜S208までは、図4に示すオーバーフローが発生していない場合のデータ同期処理のステップS100〜S108と同一の処理であるため、かかる処理の詳細な説明は省略する。
まず、クライアント200は、データ同期処理を終了する終了条件を満たしているかを確認する(ステップS200)。クライアント200は、終了条件を満たしているか否かを判定し(ステップS202)、終了条件を満たしている場合には、データ同期処理を終了する。一方、終了条件を満たしていない場合には、履歴保存条件の設定が完了しているかを確認する(ステップS204)。
その後、クライアント200は、保存条件設定部220による上記設定情報の設定が行われたか否かを判定する(ステップS206)。設定情報が設定されていない場合には、クライアント200は、設定情報の設定を行い、クライアント通信部210を介してサーバ100へ履歴保存条件として出力する(ステップS208)。そして、クライアント200は、ステップS208にて履歴保存条件が設定された後、あるいは、すでに履歴保存条件が設定されているときには、サーバ100にて管理するデータが、サーバ100からクライアント200へコピーされているかを確認するとともに、オーバーフローフラグの状態を確認する(ステップS210)。
オーバーフローフラグは、HTTPサーバ130のサーバ履歴記憶部136に記憶されている履歴情報ファイルに含まれるオーバーフロー判定情報に基づいて設定される。本実施形態では、オーバーフロー判定情報より履歴情報ファイルで管理されている履歴数がオーバーフロー履歴実施回数を超えていないと確認された場合には、オーバーフローフラグに「false」が設定されている。また、オーバーフロー判定情報より履歴情報ファイルで管理されている履歴数がオーバーフロー履歴実施回数を超えていると確認された場合には、オーバーフローフラグには「true」が設定されている。
クライアント200は、ステップS210における確認処理より、データのコピーが完了し、かつオーバーフローフラグが「false」であるか否かを判定する(ステップS212)。そして、データのコピーの完了、またはオーバーフローフラグが「false」であることの少なくともいずれか一方を満たさない場合には、クライアント200は、サーバ100の管理するデータのコピーを行う(ステップS214;データコピー処理)。ステップS214の処理は、図4のステップS114と同様に行うことができる。
ここで、図4のステップS114および図5のステップS214におけるデータのコピー処理は、処理するデータの数や内容に応じて分割して処理することが必要となる場合がある。例えば、一度にすべてのデータをコピーすることで1回のループにかかる時間が長くなってしまう場合には、分割してコピーすることが望ましい。
また、サーバ100側でオーバーフローが発生している場合には、クライアント200側で各データのサーバ100での最終変更時間を保持することにより、既に保持しているデータをサーバ100から再取得せずに済む。これにより、データ同期処理に要する時間の短縮に貢献することができる。さらに、オーバーフローが発生した後からデータの同期処理再開までの間に、サーバ100側でデータの削除があった場合には、サーバ100に存在するデータの情報とクライアント200に存在するデータとを比較することで、削除されたデータを特定することも可能である。
より具体的に説明すると、データコピー処理での、必要と判断したデータのみの取得処理は、例えば図6〜図10に示す方法により実行することができる。まず、更新または追加されたデータの取得処理は、図6に示すフローチャートに沿って行われる。まず、クライアント200のデータ取得処理部240は、サーバ100から取得したデータ存在情報とクライアント200で管理しているクライアントデータ情報とを比較して、更新されたデータの有無を判定する(ステップS300)。データ取得処理部240は、データ存在情報の最終変更時間とクライアントデータ情報のサーバ100での最終変更時間とを比較して、データ存在情報の最終変更時間が新しい場合に、サーバ100側でデータの変更が行われたと判定する。
ステップS300にて更新されたデータが存在すると判定した場合には、データ取得処理部240は、当該データをサーバ100より取得することを決定する(ステップS302)。一方、データ存在情報の最終変更時間とクライアントデータ情報のサーバ100での最終変更時間とが同一である場合には、データ取得処理部240は、当該データを取得対象としない。
例えば、図7に示す情報がクライアント200のクライアントデータ情報の一部であり、図8の左側の表で示す情報がサーバ100で管理されているデータ存在情報であるとする。データ取得処理部240は、データ存在情報とクライアントデータ情報とのデータ名と最終変更時間とを比較し、変更時間がサーバ100側で更新されているか否かを判定する。図7および図8の例では、データ名「222.jpg」のデータがサーバ100側で更新されていることがわかる。これより、データ取得処理部240は、データ「222.jpg」をサーバ100から取得することを決定する。
次いで、データ取得処理部240は、サーバ100から取得したデータ存在情報の最終変更時間とクライアント200のクライアントデータ情報とを比較して、サーバ100に新たに追加されたデータの有無を判定する(ステップS304)。データ取得処理部240は、データ存在情報とクライアントデータ情報とのデータ名を比較して、サーバ100のデータ存在情報に含まれるデータが、クライアント200のクライアントデータ情報に含まれるか否かを確認する。そして、データ存在情報にのみ含まれるデータ名が存在した場合、データ取得処理部240は、当該データは新たにサーバ100に追加されたものと判定し、サーバ100から取得することを決定する(ステップS306)。一方、データ存在情報のみに含まれるデータ名が存在しない場合、データ取得処理部240は、サーバ100からのデータの取得は行わない。
例えば、図7および図8の例では、データ名「444.jpg」のデータがデータ存在情報にのみ含まれていることがわかる。このとき、データ取得処理部240は、データ「444.jpg」をサーバ100から取得することを決定する。このようにして、サーバ100側で更新または追加されたデータをクライアント200側に取得することができる。
ここで、図7および図8に示す情報のみからは、サーバ100側でオーバーフローが発生している間にサーバ100側で削除されたデータを特定することができない。そこで、例えば、クライアント200側で保持するデータがサーバ100に存在しているか否かを示す情報である存在チェックフラグをクライアントデータ情報に設けてもよい。本実施形態において、存在チェックフラグは、サーバ100側に同一データの存在が確認されているとき「true」の値をとり、サーバ100側に同一データの存在が確認できないとき「false」の値をとる。したがって、存在チェックフラグの値が「false」のデータは、サーバ100に存在していないデータであり、オーバーフローが発生している間に削除されたものと判断することができる。
サーバ100側で削除されたデータのクライアント200側への反映は、図9に示すフローチャートに沿って行うことができる。まず、データ取得処理部240は、オーバーフローフラグよりサーバ100で変更履歴情報のオーバーフローが発生していることを認識すると、クライアント200のクライアントデータ情報の存在チェックフラグをすべて「false」にする(ステップS310)。このときに存在チェックフラグを管理パラメータとしてクライアントデータ情報に追加設定してもよく、予め管理パラメータとして設定していてもよい。
次いで、データ取得処理部240は、サーバ100からデータ存在情報を取得する(ステップS311)。そして、データ取得処理部240は、データ存在情報のデータが、クライアント200のクライアントデータ情報に存在するか否かを確認する(ステップS312)。そして、データ取得処理部240は、同一データ名のデータが存在した場合には、クライアントデータ情報の存在チェックフラグを「false」から「true」に変更する(ステップS313)。一方、データ取得処理部240は、同一データ名のデータが存在しない場合には、クライアントデータ情報の存在チェックフラグを「false」のままとする(ステップS314)。
ステップS312〜S314の処理は、サーバ100のデータ存在情報のすべてのデータについて確認されるまで繰り返される(ステップS315)。すべてのデータについて存在チェックが行われると、データ取得処理部240は、クライアントデータ情報より存在チェックフラグが「false」のデータを特定し、データ記憶部250から当該データを削除する(ステップS316)。
例えば、図7および図8の例では、図9の処理に従ってデータの存在をチェックしていくと、データ名「666.jpg」のデータがサーバ100のデータ存在情報には含まれていないことがわかる。したがって、データ取得処理部240は、データ記憶部250からデータ「666.jpg」を削除する。このようにして、オーバーフロー発生時にサーバ100側で削除されたデータの情報もクライアント200側へ反映させることができる。
図5に戻り、ステップS214のデータのコピー処理が完了すると、クライアント200は、オーバーフローフラグを「false」にする(ステップS216)。一方、ステップS212にて、データのコピーが完了し、かつオーバーフローフラグが「false」であると判定された場合には、クライアント200は履歴情報処理を実行する(ステップS218)。履歴情報処理は、図4のステップS116の処理と同様に行われる。クライアント200は、サーバ100から取得した履歴情報ファイルの変更履歴情報と、クライアント200のクライアントデータ情報とを比較して、変更されたデータのみをサーバ100から取得し、データ記憶部250に記録する。
ここで、クライアント200は、ステップS218においてサーバ100にて変更履歴情報のオーバーフローが発生しているか否かを判定する(ステップS220)。ステップS220は、データ同期処理の次のループにおいてオーバーフローが生じているか否かを判定するために用いる情報を生成する処理である。クライアント200は、オーバーフローが発生していると判定したときオーバーフローフラグを「true」とし(ステップS222)、オーバーフローが発生していないと判定したときオーバーフローフラグを「false」とする(ステップS224)。
その後、クライアント200は、クライアント200自身の保持するデータの状態を必要に応じてサーバ100へ通知する(ステップS226)。ステップS226の処理は、図4のステップS118の処理と同様に行うことができる。クライアント200は、クライアントデータ情報の送信状態フラグに基づいて、クライアント200で変更したがサーバ100に未送信のデータをサーバ100へ送信する。クライアント200で変更されたデータを受信したサーバ100は、DBサーバ110に記憶されているデータを変更し、クライアント200のデータの状態と同期をとる。これにより、サーバ100とクライアント200とがそれぞれ保持するデータが同一となる。また、他のクライアント200は、サーバ100の変更履歴ファイルを参照することにより、サーバ100のデータが更新されたことを認識して、変更後のデータをサーバ100より取得し、データの同期を図ることができる。
以上、サーバ100にてオーバーフローが発生している場合のデータ同期処理について説明した。このように、サーバ100で管理するデータの変更履歴情報がオーバーフロー実施履歴回数を超えた場合には、サーバ100での変更履歴情報の記録を停止し、履歴情報ファイルのオーバーフロー判定情報にオーバーフローが生じていることを示す情報を設定する。この場合、クライアント200は、サーバ100からデータをコピーするデータコピー処理を実施して、データの同期を図る。そして、サーバ100とクライアント200との間でデータの同期が完了すると、履歴情報ファイルのオーバーフロー判定情報にオーバーフローが生じていないことを示す情報が設定される。これにより、次に変更履歴情報のオーバーフローが発生するまでは、変更履歴情報に基づく履歴情報処理によりサーバ100とクライアント200とのデータの同期が行われる。こうして、サーバ100に莫大な変更履歴情報が蓄積されサーバ負荷が高くなるのを防止することができ、データの同期処理に要する時間を短縮することができる。
[4.変更履歴情報の効率的な処理方法]
ここで、変更履歴情報を集約して、データ同期処理に要する時間を短縮することもできる。以下、変更履歴情報の効率的な処理方法について、図11および図12の例に沿って説明する。なお、図11は、変更履歴情報の集約の一例を示す説明図である。図12は、変更履歴情報の分割および集約の一例を示す説明図である。
(4−1.変更履歴情報の集約)
変更履歴情報は、データに対して行われた変更の内容を示す情報であり、例えば図3に示すように時系列に並べられている。例えば、サーバ履歴記憶部136に、図3のような変更情報A〜Kが変更履歴情報に含まれているとする。通常、変更時間の古い変更情報から順に、サーバ100の保持するデータをクライアント200へ反映させることにより、データの同期を正常に行うことができる。ここで、同一のデータに対して複数の変更が行われている場合、データ単位で処理をまとめることで、データの同期処理の回数を減少させることができる。
例えば、データ「Test.txt」に対しては、変更情報A、E、IおよびKより4つの変更処理が行われている。クライアント200のデータ取得処理部240は、図11に示すようにこれらの変更情報を集約する。かかる例では、データ「Test.txt」は、データを新規に追加した後に2回更新され、さらに削除されていることから、結果として、はじめから存在しなかったものとみなすことができる。そこで、データ取得処理部240は、データ「Test.txt」をサーバ100から取得しないと決定する。
同様に、データ「Tree.jpg」に対しては、変更情報B、FおよびJより3つの変更処理が行われている。かかる例では、既にサーバ100に存在していたデータ「Tree.jpg」を3回更新していることから、データ取得処理部240は、データ「Tree.jpg」に対する最後の変更(変更情報J)のみをクライアント200のデータに反映させる。また、データ「Tmp.doc」に対しては、変更情報CおよびGの2つの変更処理が行われている。かかる例では、新たなデータ「Tmp.doc」が新規に追加された後更新されていることから、データ取得処理部240は、更新後(変更情報G)のデータ「Tree.jpg」をクライアント200のデータ記憶部250に追加する。
そして、データ「cmd.log」に対しては、変更情報DおよびHの2つの変更処理が行われている。かかる例では、既にサーバ100に存在していたデータ「cmd.log」を更新した後削除していることから、データ取得処理部240は、データ「cmd.log」をクライアント200のデータ記憶部250から削除する。以上より、図3の変更履歴情報の処理は、結果として図11に示す3つの処理に集約されることになる。これにより、データのコピー処理の時間が短縮され、データ同期処理の時間短縮に大きく貢献することができる。
(4−2.変更履歴情報の分割)
データのコピー処理においては、上述したように、1回のループで処理するデータ数を限定することで、1回のデータのコピー処理に要する時間を適度な時間に抑え、スムーズなデータ同期処理を実現することができる。変更履歴情報についても同様に考えることができる。ただし、データのコピー処理については分割が容易であり、例えば、ファイル単位の同期については、ファイル単位で分割し処理するのであれば、その分割方法や処理の順序に特に留意しなくても正常に行うことができる。一方、変更履歴情報については、変更処理を行った時間、すなわち処理の順序が非常に重要であり、時間を考慮しないで分割すると正しい同期処理は行われない。したがって、変更処理の実施された順序に沿った変更履歴情報の分割をする必要がある。変更履歴情報の分割は、1回のループにおいて処理する変更履歴情報の数、すなわち履歴変更回数に応じて行われる。
例えば、図3に示す11の履歴情報A〜Kからなる変更履歴情報の分割を考える。このとき、1回のループにおける履歴処理回数は、APPサーバ120の設定記憶部124に予め記憶されているものとする。履歴処理回数は、オーバーフロー実施履歴回数と同一あるいはそれ以下の値に設定される。例えば、オーバーフロー実施履歴回数が20、1回のループにおける履歴処理回数が6と設定されているとする。このとき、図3に示すように、履歴情報の数は11であるから、オーバーフローは発生しておらず、履歴情報を6つ処理してから1回のループが終了する。次の回のループでは、履歴情報が増加していない場合には、残りの5つの履歴情報の処理が行われる。
すなわち、図12に示すように、最初のループでは、履歴情報を昇順に並べて古いものから6つの履歴情報A〜Fが処理され、次の回のループでは、残りの5つの履歴情報G〜Kが処理される。そして、上述したように、2つの分割された履歴情報をさらに集約することもできる。
例えば、履歴情報A〜Fを集約すると、データ「Test.txt」に対しては、変更情報AおよびEの2つの変更処理が行われている。かかる例では、新たなデータ「Test.txt」が新規に追加された後更新されていることから、データ取得処理部240は、更新後(変更情報E)のデータ「Test.txt」をクライアント200のデータ記憶部250に追加する。同様に、データ「Tree.jpg」に対しては、変更情報BおよびFの2つの変更処理が行われている。かかる例では、既にサーバ100に存在していたデータ「Tree.jpg」を2回更新していることから、データ取得処理部240は、データ「Tree.jpg」に対する最後の変更(変更情報F)のみをクライアント200のデータに反映させる。
データ「Tmp.doc」および「cmd.log」については、データ取得処理部240は、それぞれ履歴情報C、Dの内容をデータ記憶部250に反映させる。このように集約することにより、6つの履歴情報を4つの処理にまとめることができ(図12の上側の表)、1回のループにおける処理をさらに軽減することができる。同様に、履歴情報G〜Kを集約すると、5つの履歴情報を4つの処理にまとめることができる(図12の下側の表)。このようにして、変更履歴情報を分割してもデータの同期処理を正しく実施することができる。
本例のように変更履歴情報を分割した場合、結果として8つの処理を実施することになる。図11に基づき説明したような、変更履歴情報を一括して集約した場合と比較すると、処理の回数は3から8となっており、増加する。しかし、データの数や種類等によって変更履歴情報をどの程度集約可能かは変化する。分割してデータ同期処理を行うことにより、上述したように、1回のループでの処理に要する時間を確実に適度な時間に抑えることが可能となり、スムーズな同期処理を実現することが可能である。
また、例えば、図12の下側の表のデータ「Tree.jpg」および「Tmp.doc」の更新処理が、変更履歴情報の処理を実施しているクライアント200自身で行われたものである場合もある。クライアント200は、上述したように、クライアントデータ情報の送信状態フラグを参照して、自身がサーバ100に対して要求したデータの変更内容であることを確認することができる。すなわち、送信状態フラグが「PostSuccess」であるときには、当該データは既に保持しているデータと同一であると判断して、サーバ100から当該データを取得する処理を省略することも可能である。これにより、さらに同期処理に要する時間を短縮することができる。
以上、本発明の実施形態に係るデータ同期システムの構成と、当該データ同期システムにおけるデータ同期処理について説明した。本実施形態に係るデータ同期システムによれば、データの変更履歴を管理するサーバ100側において履歴数がオーバーフローした場合、サーバ100は履歴を保持せずオーバーフロー発生を示すオーバーフロー判定情報を保持する。そして、クライアント200は、サーバ100でオーバーフローが発生していないときには、変更履歴情報に基づいてデータの同期処理を行い、オーバーフローが発生しているときには、データ存在情報に基づいてサーバ100側で保持する最新のデータをコピーする。
これにより、サーバ100側に所定数以上のデータの変更履歴が蓄積されないので、サーバ100のメモリの使用量を低減することができる。また、長期間データ同期処理がされていないクライアント200がネットワーク10に接続され、データ同期処理が再開されたとしても、上記データ同期処理によって正しく高速にデータを同期させることができる。これは、通信量の減少にもつながり、逼迫しつつある帯域の節約や通信料金の削減にも貢献する。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、上記実施形態では、サーバ100側のデータの変更内容をクライアント200側のデータに反映させた後、クライアント200側でのデータの変更内容をサーバ100に通知したが、本発明はかかる例に限定されない。例えば、クライアント200側でのデータの変更内容をサーバ100に通知した後、サーバ100側のデータの変更内容をクライアント200側のデータに反映させてもよい。
100 サーバ
110 DBサーバ
112 データ記憶部
120 APPサーバ
122 APPサーバ処理部
124 設定記憶部
130 HTTPサーバ
132 サーバ通信部
134 履歴処理部
136 サーバ履歴記憶部
200 クライアント
210 クライアント通信部
220 保存条件設定部
230 オーバーフロー確認部
240 データ取得処理部
250 データ記憶部

Claims (15)

  1. ネットワークを介してデータを管理するサーバと接続され、
    前記サーバから取得した前記データを記憶するデータ記憶部と、
    前記サーバで記憶されている、前記サーバにおける前記データの変更内容を示す変更履歴情報の蓄積状態を確認する確認部と、
    前記確認部の確認結果に基づいて、前記変更履歴情報に従って前記データ記憶部に記憶されている前記データを前記サーバの管理する前記データと同期させる第1の取得方法と、前記サーバに存在する前記データを示すデータ存在情報を前記サーバから取得して前記データ記憶部に記憶されている前記データを同期させる第2の取得方法とのいずれの取得方法により前記データを取得するかを決定し、前記サーバから前記データを取得するデータ取得処理部と、
    を備える、情報処理装置。
  2. 前記確認部は、前記サーバで蓄積された前記変更履歴情報の数が所定の履歴数を超えているかを確認し、
    前記データ取得処理部は、
    前記サーバで蓄積された前記変更履歴情報が前記所定の履歴数以下であるとき、前記第1の取得方法を用いて前記データを取得し、
    前記サーバで蓄積された前記変更履歴情報が前記所定の履歴数より多いとき、前記第2の取得方法を用いて前記データを取得する、請求項1に記載の情報処理装置。
  3. 前記データ記憶部には、当該データ記憶部で保持する前記データに関する情報であるクライアントデータ情報が記憶されており、
    前記データ取得処理部は、前記第2の取得方法により前記データを取得するとき、前記データ存在情報と前記クライアントデータ情報とを比較して、前記サーバにて更新されたデータのみを前記サーバから取得する、請求項2に記載の情報処理装置。
  4. 前記データ取得処理部は、前記第2の取得方法により前記データを取得するとき、
    前記データ存在情報と前記クライアントデータ情報とを比較して、前記情報処理装置にのみ存在するデータを特定し、
    前記情報処理装置にのみ存在するデータを前記データ記憶部から削除する、請求項3に記載の情報処理装置。
  5. 前記データ取得処理部は、前記クライアントデータ情報に含まれる、前記情報処理装置にて変更され、かつ前記サーバへ未送信のデータを示す送信状態情報に基づいて、前記情報処理装置にて変更されたデータに同期して前記サーバで管理されるデータを更新するための情報を、前記サーバへ送信する、請求項3に記載の情報処理装置。
  6. 前記データ取得処理部は、前記変更履歴情報をデータ単位で集約し、集約された前記変更履歴情報に基づいて、前記サーバから前記データを取得する、請求項1に記載の情報処理装置。
  7. 前記データ取得処理部は、時系列に並んだ前記変更履歴情報を所定のデータ数で分割し、分割された前記変更履歴情報ごとに前記サーバから前記データを取得する、請求項1に記載の情報処理装置。
  8. ネットワークを介して接続され、データを管理するサーバで記憶されている、前記サーバにおける前記データの変更内容を示す変更履歴情報の蓄積状態を確認するステップと、
    前記変更履歴情報の蓄積状態の確認結果に基づいて、前記変更履歴情報に従って前記サーバから取得した前記データを記憶するデータ記憶部に記憶されている前記データを前記サーバの管理する前記データと同期させる第1の取得方法と、前記サーバに存在する前記データを示すデータ存在情報を前記サーバから取得して前記データ記憶部に記憶されている前記データを同期させる第2の取得方法とのいずれの取得方法により前記データを取得するかを決定するステップと、
    決定された前記取得方法により、前記サーバから前記データを取得するステップと、
    を含む、情報処理方法。
  9. データを記憶するデータ記憶部と、
    変更情報に基づいて、前記データ記憶部に記憶された前記データを変更するデータ変更部と、
    前記データ変更部により変更された前記データの変更内容を示す変更履歴情報を記憶するサーバ履歴記憶部と、
    前記サーバ履歴記憶部に記憶する前記変更履歴情報の上限蓄積量を記憶する設定記憶部と、
    前記上限蓄積量に基づいて前記サーバ履歴記憶部に記憶する前記変更履歴情報の蓄積量を管理する管理部と、
    ネットワークを介して接続されたクライアントからの要求に応じて、前記クライアントへ送信する前記データまたは前記変更履歴情報を取得し、前記データ記憶部に記憶された前記データに基づいて前記データ記憶部に存在する前記データを示すデータ存在情報を作成する情報処理部と、
    前記情報処理部により取得された前記データ、前記変更履歴情報、または作成された前記データ存在情報を前記クライアントへ送信するサーバ通信部と、
    を備える、データ管理サーバ。
  10. 前記管理部は、前記サーバ履歴記憶部に記憶された前記変更履歴情報の蓄積量が前記上限蓄積量を超えたとき、前記変更履歴情報の蓄積を停止する、請求項9に記載のデータ管理サーバ。
  11. 前記管理部は、前記サーバ履歴記憶部に記憶された前記変更履歴情報の蓄積量が前記上限蓄積量を超えたとき、前記変更履歴情報の蓄積量が前記上限蓄積量を超えたことを示すオーバーフロー判定情報を前記データ履歴記憶部に記録する、請求項10に記載のデータ管理サーバ。
  12. 前記情報処理部は、前記データ記憶部より前記データを取得し、前記サーバ存在情報を作成する第1の処理部と、前記サーバ履歴記憶部より前記変更履歴情報を取得する第2の処理部と、を備え、
    前記サーバ通信部は、前記クライアントから前記変更履歴情報の送信要求を受けたとき、前記第2の処理部に前記サーバ履歴記憶部から前記変更履歴情報を取得させる、請求項9に記載のデータ管理サーバ。
  13. 前記サーバ履歴記憶部は、前記ネットワークを介して接続されたクライアントごとに前記変更履歴情報を記憶する、請求項9に記載のデータ管理サーバ。
  14. 変更情報に基づいて、データを記憶するデータ記憶部に記憶された前記データを変更するステップと、
    変更された前記データの変更内容を示す変更履歴情報をサーバ履歴記憶部に記憶するステップと、
    前記サーバ履歴記憶部に記憶する前記変更履歴情報の上限蓄積量に基づいて前記サーバ履歴記憶部に記憶する前記変更履歴情報の蓄積量を管理するステップと、
    ネットワークを介して接続されたクライアントからの要求に応じて、前記クライアントへ送信する前記データまたは前記変更履歴情報を取得するステップと、
    前記クライアントからの要求に応じて、前記データ記憶部に記憶された前記データに基づいて前記データ記憶部に存在する前記データを示すデータ存在情報を作成するステップと、
    取得した前記データ、前記変更履歴情報、または作成した前記データ存在情報を前記クライアントへ送信するステップと、
    を含む、情報処理方法。
  15. ネットワークを介して接続されたサーバとクライアントとのデータを同期する、データ同期システムであって、
    前記サーバは、
    前記データを記憶するデータ記憶部と、
    変更情報に基づいて、前記データ記憶部に記憶された前記データを変更するデータ変更部と、
    前記データ変更部により変更された前記データの変更内容を示す変更履歴情報を記憶するサーバ履歴記憶部と、
    前記サーバ履歴記憶部に記憶する前記変更履歴情報の上限蓄積量を記憶する設定記憶部と、
    前記上限蓄積量に基づいて前記サーバ履歴記憶部に記憶する前記変更履歴情報の蓄積量を管理する管理部と、
    ネットワークを介して接続されたクライアントからの要求に応じて、前記クライアントへ送信する前記データまたは前記変更履歴情報を取得し、前記データ記憶部に記憶された前記データに基づいて前記データ記憶部に存在する前記データを示すデータ存在情報を作成する情報処理部と、
    前記情報処理部により取得された前記データ、前記変更履歴情報、または作成された前記データ存在情報を前記クライアントへ送信するサーバ通信部と、
    を備え、
    前記クライアントは、
    前記サーバから前記データ、前記変更履歴情報および前記データ存在情報を受信するクライアント通信部と、
    前記サーバから取得した前記データを記憶するデータ記憶部と、
    前記サーバで記憶されている前記変更履歴情報の蓄積状態を確認する確認部と、
    前記確認部の確認結果に基づいて、前記変更履歴情報に従って前記データ記憶部に記憶されている前記データを前記サーバの管理する前記データと同期させる第1の取得方法と、前記サーバに存在する前記データを示すデータ存在情報を前記サーバから取得して前記データ記憶部に記憶されている前記データを同期させる第2の取得方法とのいずれの取得方法により前記データを取得するかを決定し、前記サーバから前記データを取得するデータ取得処理部と、
    を備える、データ同期システム。
JP2009276947A 2009-12-04 2009-12-04 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム Expired - Fee Related JP5585062B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009276947A JP5585062B2 (ja) 2009-12-04 2009-12-04 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム
EP10188729A EP2369501A3 (en) 2009-12-04 2010-10-25 Information processing apparatus, information processing method, data management server and data synchronization system
US12/951,983 US8706857B2 (en) 2009-12-04 2010-11-22 Information processing apparatus, information processing method, data management server and data synchronization system
CN201010570816XA CN102104594A (zh) 2009-12-04 2010-11-29 信息处理装置和方法、数据管理服务器及数据同步系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009276947A JP5585062B2 (ja) 2009-12-04 2009-12-04 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム

Publications (2)

Publication Number Publication Date
JP2011118771A true JP2011118771A (ja) 2011-06-16
JP5585062B2 JP5585062B2 (ja) 2014-09-10

Family

ID=43983965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009276947A Expired - Fee Related JP5585062B2 (ja) 2009-12-04 2009-12-04 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム

Country Status (4)

Country Link
US (1) US8706857B2 (ja)
EP (1) EP2369501A3 (ja)
JP (1) JP5585062B2 (ja)
CN (1) CN102104594A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013120578A (ja) * 2011-12-09 2013-06-17 Yahoo Japan Corp 変動連携サーバ、変動連携システム及び方法
WO2014064817A1 (ja) * 2012-10-25 2014-05-01 富士通株式会社 情報処理端末、同期制御方法および同期制御プログラム
JP2015520435A (ja) * 2012-04-05 2015-07-16 マイクロソフト コーポレーション クラウド同期システムのためのテレメトリ・システム
JP2016181292A (ja) * 2016-07-06 2016-10-13 パナソニックヘルスケアホールディングス株式会社 情報処理システム
EP3136263A1 (en) 2015-08-31 2017-03-01 Canon Kabushiki Kaisha Server apparatus, information processing system, control method, and program
JP2018128881A (ja) * 2017-02-09 2018-08-16 富士通株式会社 差分ログ適用プログラム、差分ログ適用装置及び差分ログ適用方法
JP2018181042A (ja) * 2017-04-17 2018-11-15 富士通株式会社 レコード反映プログラム、レコード反映装置およびレコード反映方法
JP2021096559A (ja) * 2019-12-16 2021-06-24 ヤフー株式会社 データベース管理システム、データベース管理方法、およびプログラム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9131370B2 (en) 2011-12-29 2015-09-08 Mcafee, Inc. Simplified mobile communication device
US8825606B1 (en) * 2012-01-12 2014-09-02 Trend Micro Incorporated Community based restore of computer files
US20130268687A1 (en) 2012-04-09 2013-10-10 Mcafee, Inc. Wireless token device
US9262592B2 (en) * 2012-04-09 2016-02-16 Mcafee, Inc. Wireless storage device
US8819445B2 (en) 2012-04-09 2014-08-26 Mcafee, Inc. Wireless token authentication
US9547761B2 (en) 2012-04-09 2017-01-17 Mcafee, Inc. Wireless token device
US9277394B2 (en) 2012-11-29 2016-03-01 Paypal, Inc. Nomination of a primary cell phone from a pool of cell phones
CN104008104A (zh) * 2013-02-22 2014-08-27 纬创资通股份有限公司 处理文件变更的方法及电子装置
WO2015126518A2 (en) * 2014-02-20 2015-08-27 Rambus Inc. High performance persistent memory
JP6611594B2 (ja) * 2015-03-16 2019-11-27 キヤノン株式会社 データの同期を行う情報処理装置、データ同期方法およびプログラム
EP3070619B1 (en) 2015-03-16 2023-08-16 Canon Kabushiki Kaisha Information processing apparatuses performing synchronization of data and data synchronization methods
JP6576071B2 (ja) * 2015-03-27 2019-09-18 キヤノン株式会社 情報処理装置、サーバクライアントシステム、情報処理装置の制御方法及びプログラム
US11379336B2 (en) * 2019-05-13 2022-07-05 Microsoft Technology Licensing, Llc Mailbox management based on user activity

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266599A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd デ−タベ−ス更新情報転送方法
JPH09330258A (ja) * 1996-06-10 1997-12-22 Nec Corp トランザクションファイル処理方式
JP2005339344A (ja) * 2004-05-28 2005-12-08 Konica Minolta Medical & Graphic Inc 情報システム間連携機構
JP2006171807A (ja) * 2004-12-10 2006-06-29 Toshiba Corp アラート情報表示方法およびアラート情報表示プログラム
JP2006268740A (ja) * 2005-03-25 2006-10-05 Nec Corp レプリケーションシステムと方法
JP2006318020A (ja) * 2005-05-10 2006-11-24 Fujitsu Ltd レプリケーションプログラム及びデータベースシステム
JP2007026062A (ja) * 2005-07-15 2007-02-01 Univ Of Tokyo データベースの再編成方法及びデータベース再編成システム
JP2009157626A (ja) * 2007-12-26 2009-07-16 Ntt Docomo Inc データ同期方法、データ同期システム、サーバ、及び移動端末
WO2009111492A1 (en) * 2008-03-04 2009-09-11 Apple Inc. Data synchronization protocol

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493721B1 (en) * 1999-03-31 2002-12-10 Verizon Laboratories Inc. Techniques for performing incremental data updates
KR100341063B1 (ko) * 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법
US6826626B1 (en) * 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
US20020080784A1 (en) * 2000-12-21 2002-06-27 802 Systems, Inc. Methods and systems using PLD-based network communication protocols
US7640300B2 (en) * 2002-06-10 2009-12-29 Microsoft Corporation Presence and notification system for maintaining and communicating information
JP2004086800A (ja) 2002-08-29 2004-03-18 Mitsubishi Electric Corp データ同期システムおよびデータ同期方法
US7730014B2 (en) * 2003-03-25 2010-06-01 Hartenstein Mark A Systems and methods for managing affiliations
CA2527668A1 (en) * 2003-06-02 2004-12-16 Liquid Machines, Inc. Managing data objects in dynamic, distributed and collaborative contexts
US7373451B2 (en) * 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
KR100547896B1 (ko) * 2004-03-05 2006-01-31 삼성전자주식회사 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법
US20060047819A1 (en) * 2004-05-14 2006-03-02 Caddes Scott A Simultaneous transfer of database updates between multiple clients and a server
WO2006016690A1 (en) * 2004-08-09 2006-02-16 Vodafone K.K. Measurement data collection method and portable information device
JP2006323721A (ja) * 2005-05-20 2006-11-30 Fuji Xerox Co Ltd データ管理システム及びデータサーバ及びデータ管理方法
JP5296960B2 (ja) * 2005-06-17 2013-09-25 日本電気株式会社 ファイルバージョン管理装置
EP1857972A1 (en) * 2006-05-19 2007-11-21 FUJIFILM Corporation Center server and image network system
JP5195011B2 (ja) 2008-05-14 2013-05-08 カシオ計算機株式会社 コード読取装置及びプログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266599A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd デ−タベ−ス更新情報転送方法
JPH09330258A (ja) * 1996-06-10 1997-12-22 Nec Corp トランザクションファイル処理方式
JP2005339344A (ja) * 2004-05-28 2005-12-08 Konica Minolta Medical & Graphic Inc 情報システム間連携機構
JP2006171807A (ja) * 2004-12-10 2006-06-29 Toshiba Corp アラート情報表示方法およびアラート情報表示プログラム
JP2006268740A (ja) * 2005-03-25 2006-10-05 Nec Corp レプリケーションシステムと方法
JP2006318020A (ja) * 2005-05-10 2006-11-24 Fujitsu Ltd レプリケーションプログラム及びデータベースシステム
JP2007026062A (ja) * 2005-07-15 2007-02-01 Univ Of Tokyo データベースの再編成方法及びデータベース再編成システム
JP2009157626A (ja) * 2007-12-26 2009-07-16 Ntt Docomo Inc データ同期方法、データ同期システム、サーバ、及び移動端末
WO2009111492A1 (en) * 2008-03-04 2009-09-11 Apple Inc. Data synchronization protocol

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200600684050; 荒木拓也ほか2名: 'マスターレスなDB同期システムとシームレスな動画視聴システムへの応用' 情報処理学会研究報告 第2006巻 第14号, 20060217, pp.299〜304, 社団法人情報処理学会 *
JPN6013016034; 荒木拓也ほか2名: 'マスターレスなDB同期システムとシームレスな動画視聴システムへの応用' 情報処理学会研究報告 第2006巻 第14号, 20060217, pp.299〜304, 社団法人情報処理学会 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013120578A (ja) * 2011-12-09 2013-06-17 Yahoo Japan Corp 変動連携サーバ、変動連携システム及び方法
JP2015520435A (ja) * 2012-04-05 2015-07-16 マイクロソフト コーポレーション クラウド同期システムのためのテレメトリ・システム
US10089323B2 (en) 2012-04-05 2018-10-02 Microsoft Technology Licensing, Llc Telemetry system for a cloud synchronization system
WO2014064817A1 (ja) * 2012-10-25 2014-05-01 富士通株式会社 情報処理端末、同期制御方法および同期制御プログラム
JPWO2014064817A1 (ja) * 2012-10-25 2016-09-05 富士通株式会社 情報処理端末、同期制御方法および同期制御プログラム
EP3136263A1 (en) 2015-08-31 2017-03-01 Canon Kabushiki Kaisha Server apparatus, information processing system, control method, and program
US10097716B2 (en) 2015-08-31 2018-10-09 Canon Kabushiki Kaisha Server apparatus, information processing system, control method, and storage medium
JP2016181292A (ja) * 2016-07-06 2016-10-13 パナソニックヘルスケアホールディングス株式会社 情報処理システム
JP2018128881A (ja) * 2017-02-09 2018-08-16 富士通株式会社 差分ログ適用プログラム、差分ログ適用装置及び差分ログ適用方法
JP2018181042A (ja) * 2017-04-17 2018-11-15 富士通株式会社 レコード反映プログラム、レコード反映装置およびレコード反映方法
JP2021096559A (ja) * 2019-12-16 2021-06-24 ヤフー株式会社 データベース管理システム、データベース管理方法、およびプログラム
JP7120985B2 (ja) 2019-12-16 2022-08-17 ヤフー株式会社 データベース管理システム、データベース管理方法、およびプログラム

Also Published As

Publication number Publication date
US8706857B2 (en) 2014-04-22
JP5585062B2 (ja) 2014-09-10
EP2369501A3 (en) 2012-12-12
CN102104594A (zh) 2011-06-22
US20110138079A1 (en) 2011-06-09
EP2369501A2 (en) 2011-09-28

Similar Documents

Publication Publication Date Title
JP5585062B2 (ja) 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム
US8539107B2 (en) Personal information management data synchronization
CN107861686B (zh) 文件存储方法、服务端和计算机可读存储介质
US10387451B2 (en) Synchronization system for multiple client devices
US20180032595A1 (en) Storage constrained synchronization of shared content items
US7577960B2 (en) System and method for managing cached objects using notifications bonds
CN102404338B (zh) 一种文件同步方法和装置
CN111200657B (zh) 一种管理资源状态信息的方法和资源下载系统
US20070174246A1 (en) Multiple client search method and system
US20170308599A1 (en) Storage Constrained Synchronization Engine
WO2007072155A2 (en) Method and system for synchronization between devices using metadata
CN104348859B (zh) 文件同步方法、装置、服务器、终端及系统
CN111177159B (zh) 一种数据处理的系统、方法和数据更新设备
WO2021147793A1 (zh) 数据处理方法、装置、系统、电子设备及计算机存储介质
CN114900449B (zh) 一种资源信息管理方法、系统及装置
CN102594874B (zh) 一种同步处理方法和装置
CN111382132A (zh) 医学影像数据云存储系统
CN101483668A (zh) 热点数据的网络存储和访问方法、设备及系统
US10402373B1 (en) Filesystem redirection
US20050188380A1 (en) Cache control device, and method and computer program for the same
CN106407320B (zh) 文件处理方法、装置及系统
CN117478535B (zh) 一种日志存储的方法和装置
WO2023103752A1 (zh) 网元版本下载方法、网元、电子设备和存储介质
CN113965583A (zh) 一种多站点同步数据存储方法、设备及存储介质
US9195500B1 (en) Methods for seamless storage importing and devices thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140707

R151 Written notification of patent or utility model registration

Ref document number: 5585062

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees