JP2015041146A - サーバ装置、クライアント装置、システム、情報処理方法及びプログラム - Google Patents

サーバ装置、クライアント装置、システム、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2015041146A
JP2015041146A JP2013170611A JP2013170611A JP2015041146A JP 2015041146 A JP2015041146 A JP 2015041146A JP 2013170611 A JP2013170611 A JP 2013170611A JP 2013170611 A JP2013170611 A JP 2013170611A JP 2015041146 A JP2015041146 A JP 2015041146A
Authority
JP
Japan
Prior art keywords
data
synchronization
client device
target data
synchronization target
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
JP2013170611A
Other languages
English (en)
Inventor
悠美子 内田
Yumiko Uchida
悠美子 内田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013170611A priority Critical patent/JP2015041146A/ja
Publication of JP2015041146A publication Critical patent/JP2015041146A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】同期処理中断時であっても他のデバイスが最新のデータを早期に利用できるようにしつつ、不用意な更新処理を防ぐことを目的とする。
【解決手段】第1のクライアント装置より同期対象データを特定する特定情報を受信する受信手段と、受信手段により受信された特定情報に基づいて、同期対象データを特定する特定手段と、特定手段により特定された同期対象データの更新データを第1のクライアント装置より受信し、同期対象データを更新データで更新することで第1のクライアント装置とデータを同期する同期手段と、同期手段における第1のクライアント装置との同期対象データの同期が中断された場合、同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する確定手段と、未同期データの状態を含む同期対象データを、第2のクライアント装置に送信する送信手段と、を有する。
【選択図】図8

Description

本発明は、サーバ装置、クライアント装置、システム、情報処理方法及びプログラムに関する。
複数のコンピュータ間でデータの同期を取ることが一般的になっている。例えば、タブレット端末やカメラ、複合機に代表されるデバイスに記録されているスケジュールや写真、アドレス帳、設定値情報等のデータをサーバに同期することにより、複数のデバイスの間でのデータ共有が実現されている。これらのデータは、通常データベースに格納されて管理されている。また、複数のデータ間に依存関係があることも多いため、これらのデータの更新及びサーバへの同期は、不可分な一連の処理として実行される。通常、通信断等によって同期処理が途中で失敗した場合には、同期処理全体として失敗とみなされ、更新内容は破棄される。
特許文献1においては、サーバのシステムダウンによってデバイスとサーバとの間の同期処理が一時的に中断した場合にもトランザクションを継続し、サーバの復帰後にトランザクションの再開を行う方式が開示されている。本文献に係る技術では、サーバの復帰後に、同期対象の各デバイスについてトランザクションの成否を判断し、トランザクションの失敗した対象のデバイスに処理を継続するか否か確認する。そして、処理継続要求が有れば、未処理のトランザクションを遂行し、処理継続要求がなければ、未処理のトランザクションを破棄するものである。
また、特許文献2においては、デバイスがサーバのデータベースに更新処理要求を発行する際に、データベース更新処理情報に加えてデータベースの更新処理に失敗した場合のトランザクション処理方式を付加する方式が開示されている。本文献に係る技術によれば、トランザクション処理方式として、トランザクションの破棄以外に、トランザクションの継続及び更新済みデータのみでのトランザクションの確定を選択することができる。
特開平4−4445号公報 特開平8−115243号公報
同期処理が途中で中断された場合に、更新内容を破棄してしまうと、同期再開後に同期元から同じデータを再送しなくてはならない。通信断が多く発生するような状況において、同期のために何度も同じデータを再送するのはオーバーヘッドが大きい。また、特許文献1のようにトランザクションが中断されたときに、トランザクション処理中のデータを保管しておき、通信再開後に継続または破棄を行うこともできるが、この場合、他のデバイスからは最新のデータを利用できない状態が続くという課題がある。
一方、特許文献2のように同期途中でデータを確定してしまうと、未同期状態のデータがあるということを知らない他のデバイスがデータを更に更新してしまうという問題が起きる。この場合、元のデバイスとの同期再開時によって未同期データが反映されたときに、その更新内容が失われてしまう可能性がある。これを回避するためには、トランザクションログの解析等が必要であり、同期処理が複雑になるという課題がある。
本発明は、同期処理中断時であっても他のデバイスが最新のデータを早期に利用できるようにしつつ、不用意な更新処理を防ぐことを目的とする。
そこで、本発明のサーバ装置は、第1のクライアント装置より同期対象データを特定する特定情報を受信する受信手段と、前記受信手段により受信された前記特定情報に基づいて、同期対象データを特定する特定手段と、前記特定手段により特定された同期対象データの更新データを前記第1のクライアント装置より受信し、前記同期対象データを前記更新データで更新することで前記第1のクライアント装置とデータを同期する同期手段と、前記同期手段における前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する確定手段と、前記未同期データの状態を含む前記同期対象データを、第2のクライアント装置に送信する送信手段と、を有する。
本発明によれば、同期処理中断時であっても他のデバイスが最新のデータを早期に利用できるようにしつつ、不用意な更新処理を防ぐことができる。
データ同期システムのシステム構成の概略図である。 データ同期システムを構成する装置のハードウェア構成及びモジュール構成の一例を示す図である。 データの形式の一例を示した図である。 従来手法によって同期する例を示す図である。 本実施形態の手法によって同期する例を示す図である。 ステータス情報の保持方式のバリエーションを示した図である。 デバイスにおける情報処理の一例を示すフローチャートである。 同期サーバにおける情報処理の一例を示すフローチャートである。 デバイスにおける同期サーバとの通信再開時の情報処理の一例を示すフローチャートである。 データ同期システムを構成する装置のモジュール構成の一例を示す図である。 同期サーバにおける情報処理の一例を示すフローチャートである。 ステップS1101の処理の一例を示したフローチャートである。
以下、本発明の実施形態について図面に基づいて説明する。
(第1の実施形態)
図1は、データ同期システムのシステム構成の概略図である。本実施形態のデータ同期システムは、同期サーバ101と複数のデバイス102及びデバイス103とで構成されている。同期サーバ101とデバイス102及びデバイス103とは、インターネットやイントラネット経由で通信することができる。同期サーバ101内には、マスタデータベース104が、デバイス102内には、ローカルデータベース105がそれぞれ格納されている。マスタデータベース104とローカルデータベース105内のデータは同期されており、一方のデータベースへの更新はリアルタイムに他方のデータベースへ反映される。
本実施形態では、マスタデータベース104及びローカルデータベース105内に格納するデータとして、複数ユーザで共有するスケジュールデータを用いる。各ユーザのスケジュールデータは、マスタデータベース104上に集約されており、事前に設定されたグループ内のユーザが共有可能である。各ユーザが保持するデバイス102上のローカルデータベース105は、マスタデータベース104と同期しており、ネットワークにつながらない環境であっても、スケジュールを参照及び更新することができる。
デバイス102やデバイス103は、第1のクライアント装置や第2のクライアントう装置の一例である。
図2の(A)は、データ同期システムを構成する装置のハードウェア構成の一例を示す図である。図1記載の同期サーバ101とデバイス102とのハードウェア構成を示している。デバイス102とデバイス103との内部構成は同一であるため、記載を省略する。
同期先の機器である同期サーバ101は、1つ或いは複数のPC(コンピュータ)から構成される。CPU201は、ROM202に格納されているプログラムを実行することにより、同期サーバ101の制御を行う。同期サーバ101のCPU201がプログラムを実行することにより、同期サーバ101のモジュール構成及び同期サーバ101に係るフローチャートの処理が実現される。RAM203は、各構成要素からの各種データを一時記憶する。また、RAM203は、CPU201の制御に基づきプログラムを展開し、同期サーバ101が実行可能な状態にする。記憶装置204は、本実施形態の処理対象となるデータを保持している。例えば、記憶装置204は、同期対象となるデータそのものや、その管理情報をマスタデータベース104に格納して保持することができる。記憶装置204としては、フラッシュメモリ、HDD等を用いることができる。同期サーバ101は、通信部205を介して、デバイス102と通信することができる。
同期元の機器であるデバイス102は、タブレット端末、携帯電話端末、デジタルカメラ、プリンタ複合機等である。CPU206は、ROM207に格納されているプログラムを実行することにより、デバイス102の制御を行う。RAM208は、各構成要素からの各種データを一時記憶する。また、RAM208は、CPU206の制御に基づきプログラムを展開し、デバイス102が実行可能な状態にする。入力部209は、操作ボタン、タッチパネル等で構成され、ユーザからの指示を受け付ける。表示部210は、液晶パネル等で構成され、本実施形態の処理対象となるデータを表示する。記憶装置211は、本実施形態の処理対象となるデータを保持している。例えば、同期対象となるデータそのものや、その管理情報をローカルデータベース105に格納して保持することができる。また、デバイス102は、通信部212を介して、同期サーバ101と通信することができる。
なお、本実施形態では後述するフローチャートの各ステップに対応する処理を、CPU201又はCPU206はプログラムに基づき実行するものとして説明を行うが、その処理の一部又は全部を電子回路等のハードウェアで実現するようにしてもよい。即ち、以下に示す図2の(B)のモジュール構成(ソフトウェア構成)の一部又は全部を電子回路等のハードウェアで実現するようにしてもよい。
図2の(B)は、データ同期システムを構成する装置のモジュール構成の一例を示す図である。各モジュール(処理部)に関する説明は、後述のフローチャートを用いて説明を行う。
図3は、本システムにおいて扱うデータの形式の一例を示した図である。
テーブル301は、5つのカラムから構成されており、ユーザのスケジュールデータを格納している。5つのカラムはそれぞれ、スケジュールの識別情報であるID(id)302、タイトル(title)303、開始日時(start)304、終了日時(end)305、スケジュールの所有者(owner)306を管理するものである。
図4の(A)では、図3のデータを同期サーバ101とデバイス102及びデバイス103との間で、従来手法によって同期する例を示している。ここでは、デバイス102及びデバイス103と同期サーバ101とがネットワークを介してデータの同期を行っている。同期対象のテーブルは、それぞれ、テーブル401、テーブル402、テーブル403である。テーブル401及びテーブル402は、それぞれデバイス102及びデバイス103が保持するローカルデータベース105内に格納されている。テーブル403はマスタデータベース104に格納されている。ユーザが何れかのデータベースに対して更新処理を行う前の状態においては、これら3テーブルには全て同一のデータが格納された状態となっている。
ここで、デバイス102が自身の保持するテーブル401に対して更新を行い、レコード群404を1つのトランザクションとして更新したとする。例えば、定例会議の開催時間帯の一括変更等の操作がこれに相当する。この更新内容は、ネットワークを介して同期サーバ101内のテーブル403へ、同じく1つのトランザクションとして同期される。
この同期途中にネットワークの通信断が発生した場合には、1トランザクション内で同期済みデータと未同期データとが生じることになる。この例では、レコード群405は同期済みデータであり、レコード406は同期予定であったが未同期状態のデータである。
デバイス102は、通信再開時に備え、レコード406に相当するデータが未同期であることを、未同期データログ408に記憶しておく。レコード406は、同期が予定されているが、通信断等の理由によって同期できていない状態であるため、「しかかり中データ」となる。ここで、1トランザクションとして同期が予定されているが、トランザクション途中で同期処理が中断されたことによって未同期である状態を「しかかり中状態」と定義し、「しかかり中状態」であるデータを「しかかり中データ」と表現する。
従来手法では、しかかり中データを無視してトランザクションを確定することが可能である。従来手法により、しかかり中データであるレコード406を無視して、トランザクションを確定し、同期済みデータのレコード群405の更新のみを確定させたとする。同期サーバ101のトランザクションが確定されると、更新内容はデバイス103内のテーブル402へ同期され、レコード群407が更新される。
図4の(B)は、図4の(A)に示す状態の後に、デバイス103がレコード群409を更新した場合の同期サーバ101内のテーブル403の状態を示している。デバイス103の更新が、同期サーバ101に同期された状態となっている。ここでは、デバイス103が行った更新は、デバイス102が行った更新より新しいため、デバイス102の更新内容より優先されるべきものである。
図4の(C)は、図4の(B)に示す状態の後に、デバイス102と同期サーバ101との通信が再開した状態を示している。デバイス102は、未同期データログ408を参照し、未同期データであるレコード410を同期サーバ101へ再送信する。この場合、デバイス103が既に対象レコードを新しい値で更新しているにもかかわらず、デバイス102が古い値を上書きしてしまうことになる。
図5の(A)は、図3のデータを同期サーバ101とデバイス102及びデバイス103との間で、本実施形態の手法によって同期する例を示している。テーブルの構成は図4の(A)と同一である。
ここで、デバイス102が自身の保持するテーブル401に対して更新を行い、レコード群404を1つのトランザクションとして更新したとする。このとき、同期サーバ101は、しかかり中データであるレコード406のステータスを「しかかり中」状態に変更した上でトランザクションを確定し、同期済みデータのレコード群405の更新を確定させる。この例では、同期サーバ101は、しかかり中状態を表すために、「WORKING」フラグをデータに付与している。なお、データのステータスとしては、「しかかり中」状態の他に「通常」状態が存在し、データの更新前のステータスは「通常」状態である。
同期サーバ101のトランザクションが確定されると、更新内容はデバイス103内のテーブル402へ同期され、レコード群407が更新されると同時に、レコード501のステータスも変更される。このように、同期サーバ101が特定のデータがしかかり中ステータスであることを、デバイス103に知らせる。このことで、デバイス103は、ステータスに応じたデータの扱いを行うことができる。例えば、しかかり中のデータに対しての更新を禁止することもできるし、しかかり中であっても、元のデータの値をそのまま利用したり、値の上書きを許可したりするよう設計することもできる。また、しかかり中データの値を元データの値のままで更新したい場合には、該当データのステータスを「しかかり中」から「通常」に変更することで、データの更新を他のデバイスに対して明確に示すことができる。
図5の(B)は、図5の(A)に示す状態の後に、デバイス103がレコード群409を更新した場合の同期サーバ101内のテーブル403の状態を示している。デバイス103の更新が、同期サーバ101に同期された状態となっている。デバイス103は、「しかかり中」ステータスをもつレコードの値を新しい値で更新しているため、対象レコードの「しかかり中」ステータスは、「通常」状態に戻ることになる。
図5の(C)は、図5(B)に示す状態の後に、デバイス102と同期サーバ101の通信が再開した状態を示している。デバイス102は、同期サーバ101に問い合わせを行い、しかかり中ステータスのデータを特定する。更に、未同期データログ408を参照し、未同期データの内、同期サーバ101において、しかかり中ステータスであるデータのみを同期サーバ101へ再送信する。この例では、同期サーバ101において、しかかり中ステータスであるデータが存在しないため、データの再送信は行われない。
このように、同期途中のデータに対し、しかかり中ステータスを設けることで、他のデバイスが最新のデータを早期に利用できるようにしつつ、対象データが更新可能かを容易に判断でき、不用意な参照や上書きを回避することができる。
図6は、ステータス情報の保持方式のバリエーションを示した図である。
図6の(A)は、データを格納するテーブルに、ステータス情報専用のカラムを追加する方式である。カラム601及びカラム603は、データを格納するカラムであり、カラム602及びカラム604は、それぞれカラム601及びカラム603のステータス情報を記録する。
図6の(B)は、ステータス情報専用のテーブルを追加する方式である。カラム602及びカラム604を管理するテーブルを別に設けることで、「しかかり中」状態のレコードのみ情報を記録し、管理データ量を減らすことができる。
図6の(C)は、データの格納領域の一部にステータスを示すフラグ情報を割り当てることで、ステータス情報を保持する方式である。ここでは、データ実体606に対し、フラグ605を付与した状態でデータを格納している。この場合、専用のカラムやテーブルの追加が不要であり、処理を単純化することができる。
図6の(D)は、しかかり中ステータスのレコードを記録する専用ログを用いる構成である。この構成によれば、スキーマの変更を行わずに、「しかかり中」状態のレコードを特定することができ、かつ、しかかり中ステータスのレコードのみ情報を記録するため、管理データ量を減らすことができる。
上述の動作を、フローチャートに従って説明する。
図7は、デバイス102やデバイス103における情報処理の一例を示すフローチャートである。
ステップS701で、トランザクション開始部213がローカルデータベース105に対するトランザクションを開始する。
ステップS702で、データ更新部214がローカルデータベース105に対して更新を行う。
ステップS703で、トランザクション確定部215がトランザクションを終了する。
ステップS702の処理は、更新対象のデータ件数分、繰り返されるものとする。また、ステップS702では、同期対象記録部227が、更新対象のデータを特定するための情報を同時に記録する。
ステップS704で、同期対象情報送信部216が同期対象となるレコードを特定するための情報を同期サーバ101へ送信する(特定情報送信)。同期対象を特定するための情報としては、例えば同期対象のレコードのIDを用いることができる他、同期対象のカラムを特定する情報や、更新に用いるSQLクエリを用いることができる。
その上で、ステップS705で、同期データ送信部217が同期対象となる更新データを順次、同期サーバ101へ送信する。ステップS705は、通信断によって処理が中断されるか、全てのデータの送信が完了した時点で処理を終える。
ステップS706では、同期データ送信部217がデータ送信中に通信断が発生したか否かを判定する。同期データ送信部217は、例えば、同期サーバ101から、一定時間応答がなかった場合に、通信断とみなすことができる。ステップS706において、同期データ送信部217は、通信断が発生したと判定された場合(S706においてYes)、ステップS707へ進む。一方、通信断が発生しなかった場合(S706においてNo)、同期データ送信部217は、図7に示すフローチャートに係る処理を終了する。
ステップS707では、未同期データ記録部218が通信断発生により同期サーバ101へ送信できていないデータを特定する情報を記録する。ステップS707の処理を終えると、未同期データ記録部218は、図7に示すフローチャートに係る処理を終了する。
図8は、同期サーバ101における情報処理の一例を示すフローチャートである。
ステップS801で、同期対象特定部221がデバイス102から送信された同期対象特定情報を受信する。
ステップS802で、同期対象特定部221が同期対象となるレコードを特定する。ここで、同期対象特定部221は、ステップS801で受信した同期対象特定情報が、同期対象のレコードのIDである場合には、そのまま同期サーバ101内の同期対象のレコードを特定する情報として利用することができる。また、同期対象特定情報が、同期対象のカラムを特定する情報、更新に用いるSQLクエリ等である場合、同期対象特定部221は、同期対象のレコードのIDへ変換する処理を行う。
次に、ステップS803で、トランザクション開始部222がマスタデータベース104に対するトランザクションを開始する。
その上で、ステップS804で、ステータス情報付与部223が同期対象となるレコードのステータスを「しかかり中」に変更する。
ステップS805で、データ受信部224が同期対象の更新データを順次受信する。
そして、ステップS806で、データ更新部225が受信した同期対象レコードに対する更新を行う。この際、データ更新部225は、更新が終了したレコードのステータスを「しかかり中」から「通常」状態に更新する。
ステップS805及びステップS806は、全件一括で処理を行ってもよいし、所定の件数ずつ受信・更新処理のセットを繰り返すものであってもよい。
ステップS807では、データ受信部224が同期処理中に通信断が発生したか、或いは同期対象レコードを全件受信し、更新処理が終了したかを判定する。同期対象レコードの更新処理が終了したかは、データ受信部224は、ステップS801で特定した同期対象レコード全件に対して更新が終了したか否かで判断することができる。
ステップS807において、通信断が発生しておらず、かつ、更新処理が未終了であった場合(S807においてNo)、データ受信部224は、ステップS805へ戻り、同期対象データの受信及び更新処理を繰り返す。一方、ステップS807において、通信断が発生、或いは更新処理が終了したと判断した場合(S807においてYes)、データ受信部224は、処理をステップS808へ進める。
ステップS808では、トランザクション確定部226がマスタデータベース104に対するトランザクションを確定する。このとき、通信断によって未同期データが存在していた場合には、未同期データのステータスは「しかかり中」のまま確定する。
最後に、ステップS809で、同期範囲判定部228が他のデバイスに対して、今回の更新内容を送信し、データを同期する。このとき、マスタデータベース104内における各レコードのステータス情報も同期される。本同期処理は、デバイス側でトランザクション制御され、1トランザクションとして実行される。各レコードのステータス情報は、他のデバイスによって変更することができる。例えば、「しかかり中」ステータスであっても値の上書きを行って、ステータスを「通常」状態に戻すことも可能である。
本実施形態では、同期対象のレコードのステータス変更をデータ更新前に一括で行う構成としたが、通信断発生を検知した後に、未同期データに対してのみステータスを更新する構成としてもよい。この構成によれば、ステータス変更の回数を少なくすることができる。
また、ステップS809において、他のデバイスに対して、今回の更新内容を同期する際に、同期範囲判定部228が各レコードのステータスに応じた同期処理を行ってもよい。例えば、同期範囲判定部228は、しかかり中ステータスであるレコードを含む同期処理において、同期対象のデバイスが予め設定等されたデバイスか否かを判定する。そして、同期範囲判定部228は、同期対象のデバイスが予め設定等されたデバイスである場合には、しかかり中ステータスであるレコードを含む同期処理においては前記レコードを反映しないようにすることもできる。この構成によれば、これらのデバイスは、最新のデータを参照できなくなる代わりに、レコードのステータスを意識した設計を行う必要がなくなる。
図9は、デバイスにおける同期サーバ101との通信再開時の情報処理の一例を示すフローチャートである。
まず、ステップS901で、未同期データ記録部218がステップS707で記録した情報を参照し、未同期データを特定する。
ステップS902で、しかかり中データ判定部219が同期サーバ101に問い合わせを行い、マスタデータベース104内で、しかかり中ステータスとなっているレコードを特定する(しかかり中データ特定)。
ステップS903で、しかかり中データ判定部219が未同期データの内、マスタデータベース104内で、しかかり中ステータスとなっているレコードがあるかを判定する。未同期、かつ、しかかり中ステータスのレコードがある場合(S903においてYes)、ステップS904でデータ再送部220が該当するレコードを同期サーバ101に再送信する。一方、未同期、かつ、しかかり中ステータスのレコードがない場合(S903においてNo)、しかかり中データ判定部219は、図9に示す処理を終了する。
なお、本実施形態では、同期トランザクションの中断原因を通信断によるものとしたが、デバイスの電源断や割り込み処理が中断の原因であってもよい。また、本実施形態では、スケジュールデータを同期対象としたが、本実施形態の適用先はこれに限定されるものではない。スケジュールデータの他に、デバイスの設定値情報や、写真や動画等のコンテンツデータを同期対象とすることもできる。
本実施形態の処理によれば、他のデバイスが最新のデータを早期に利用できるようになると共に、未同期データを考慮した処理を容易に実現可能となる。また、デバイス102は、自身が同期サーバ101へ同期途中であったデータが、通信断発生中に他のデバイス103によって上書きされたことを容易に判断でき、通信再開後に自身が保持する古い値でデータを更新してしまうことを回避できる。
(第2の実施形態)
以下、第2の実施形態を説明する。なお、第1の実施形態と同一構成部分についてはその説明を省略する。
第1の実施形態の処理では、同期トランザクションの中断時に、一律で同期済みのデータを確定しつつ、未同期データのステータスを「しかかり中」に変更するものであった。しかし、本実施形態の処理では、条件に応じてトランザクション処理方式を選択可能にする。
図10は、データ同期システムを構成する装置のモジュール構成の一例を示す図である。本実施形態では、デバイス102は、トランザクション処理方式通知部1001を持ち、同期処理開始前に、同期サーバ101に対して、トランザクション処理方式の通知を行う。ここでは、通信断等によって同期トランザクションが途中で失敗した場合の処理方法を事前に定めることができる。例えば、同期済みレコードの割合に応じてトランザクション処理方式を切り替えるよう同期サーバ101と取り決めを行うことができる。同期サーバ101は、トランザクション処理方式設定部1002を持ち、デバイス102と取り決めたトランザクション処理方式を記憶する。その他の部に関する処理の説明等は、後述のフローチャートを用いて行う。
図11は、同期サーバ101における情報処理の一例を示すフローチャートである。
ステップS801〜ステップS809の処理は、第1の実施形態と同一構成である。
本実施形態では、ステップS807で、データ受信部224が、通信断が発生したと判断した場合、ステップS1101へ進む。
ステップS1101で、トランザクション終了部1003が、トランザクション処理方式設定部1002が記憶した方式に従ってトランザクション処理を行う。トランザクション終了部1003は、トランザクション確定部226及びトランザクション破棄部1004を保持しており、どちらの部を用いるかを選択することができる。
図12は、ステップS1101の処理の一例を示したフローチャートである。
ステップS1201では、トランザクション終了部1003は、同期対象のレコードの内、マスタデータベース104に対して同期済みのレコードが所定の割合以上であるか否かを判定する。同期対象のレコードの内、マスタデータベース104に対して同期済みのレコードが所定の割合以上である場合、ステップS1202へ進み、トランザクション終了部1003は、トランザクションを確定する。一方、同期済みのレコードが所定の割合未満であった場合、ステップS1203へ進み、トランザクション終了部1003は、トランザクションを破棄する。トランザクションが破棄された場合には、今回の同期処理で変更した、しかかり中ステータス情報も破棄される。
このように、同期済みデータの割合に応じて、トランザクションを確定するか、破棄するかを選択することで、大量のレコードがしかかり中ステータスとなることを防ぐことができる。なお、本実施形態では、同期済みデータの割合に応じて、トランザクション処理方式を選択するものとしたが、同期済みデータの件数に応じて選択するよう構成してもよい。つまり、トランザクション終了部1003は、同期対象データの内、予め設定された件数以上のデータが同期されているか否かを判定し、判定結果に基づいて、トランザクション処理方式を選択するようにしてもよい。この構成によれば、同期済みデータの割合を算出する必要がなく、処理を単純化することができる。特に、1トランザクションのデータ件数がほぼ一定であり、件数と割合を近似できる環境において有効である。
また、通信の安定度合によって、トランザクション処理方式を選択するよう構成してもよい。この場合、例えば通信断の発生頻度が所定回数以上である場合には、トランザクションを破棄し、所定回数未満である場合には、しかかり中ステータスのままトランザクションを確定することができる。また、通信の安定度合を示す指標として、通信断の発生頻度の他、通信断の平均時間を判断基準に用いてもよい。この構成によれば、通信断の平均時間が長い場合には、通信再開の可能性が低いと判断してトランザクションを破棄し、そうでない場合に未同期データをしかかり中ステータスとして確定することができる。
本実施形態の構成によれば、第1の実施形態で得られる効果に加え、大量のレコードがしかかり中ステータスとなることや、しかかり中ステータスが長時間継続することを防ぐことができる。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、同期処理中断時であっても他のデバイスが最新のデータを早期に利用できるようにしつつ、不用意な更新処理を防ぐことができる。また、ネットワークを介して、サーバと複数のデバイスとの間でデータをリアルタイムに同期するシステムにおいて、他のデバイスが最新のデータを早期に利用できるようになると共に、未同期データを考慮した処理を容易に実現することができる。また、「しかかり中データ」を特定する仕組みを持つことによって、他のデバイスが「しかかり中データ」に対して更新を行った場合に容易に検知可能にする。また、他のデバイスが「しかかり中データ」の存在を知ることができ、不用意な更新処理を防ぐこともできる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
101 サーバ、102 デバイス、103 デバイス

Claims (13)

  1. 第1のクライアント装置より同期対象データを特定する特定情報を受信する受信手段と、
    前記受信手段により受信された前記特定情報に基づいて、同期対象データを特定する特定手段と、
    前記特定手段により特定された同期対象データの更新データを前記第1のクライアント装置より受信し、前記同期対象データを前記更新データで更新することで前記第1のクライアント装置とデータを同期する同期手段と、
    前記同期手段における前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する確定手段と、
    前記未同期データの状態を含む前記同期対象データを、第2のクライアント装置に送信する送信手段と、
    を有するサーバ装置。
  2. 前記第1のクライアント装置より同期対象データの同期が中断された場合の処理方法の通知を受け取る受け取り手段を更に有し、
    前記確定手段は、前記処理方法が状態を確定する処理方法であった場合には、前記同期手段における前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する請求項1記載のサーバ装置。
  3. 前記確定手段は、前記同期手段における前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、予め設定された割合以上のデータが同期されているか否かを判定し、前記同期対象データの内、予め設定された割合以上のデータが同期されている場合、前記未同期データの状態をしかかり中であることを示す状態として確定する請求項1記載のサーバ装置。
  4. 前記確定手段は、前記同期手段における前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、予め設定された件数以上のデータが同期されているか否かを判定し、前記同期対象データの内、予め設定された件数以上のデータが同期されている場合、前記未同期データの状態をしかかり中であることを示す状態として確定する請求項1記載のサーバ装置。
  5. 前記確定手段は、前記同期手段における前記第1のクライアント装置との同期対象データの同期が中断された場合、前記第1のクライアント装置との通信の安定度合を示す指標に基づいて、前記未同期データの状態をしかかり中であることを示す状態として確定する否かを判断し、前記指標が予め定めた条件をみたす場合、前記未同期データの状態をしかかり中であることを示す状態として確定する請求項1記載のサーバ装置。
  6. 同期対象データを特定する特定情報を、サーバ装置に送信する特定情報送信手段と、
    前記同期対象データの更新データを前記サーバ装置に送信する送信手段と、
    前記送信手段による前記サーバ装置への前記同期対象データの更新データの送信が中断された場合、前記同期対象データの更新データの内、未同期データを識別する識別情報を記録する記録手段と、
    を有するクライアント装置。
  7. 前記サーバ装置との通信が再開された場合、前記記録手段により記録された識別情報に基づいて、前記未同期データを特定する特定手段と、
    前記サーバ装置へ問い合わせを行い、前記特定手段で特定された未同期データのうち、しかかり中であることを示す状態のデータを特定するしかかり中データ特定手段と、
    前記しかかり中データ特定手段で特定されたデータを前記サーバ装置へ再送信する再送信手段と、
    を更に有する請求項6記載のクライアント装置。
  8. 第1のクライアント装置と、第2のクライアント装置と、サーバ装置と、を含むシステムであって、
    前記サーバ装置は、
    第1のクライアント装置より同期対象データを特定する特定情報を受信する受信手段と、
    前記受信手段により受信された前記特定情報に基づいて、同期対象データを特定する特定手段と、
    前記特定手段により特定された同期対象データの更新データを前記第1のクライアント装置より受信し、前記同期対象データを前記更新データで更新することで前記第1のクライアント装置とデータを同期する同期手段と、
    前記同期手段における前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する確定手段と、
    前記未同期データの状態を含む前記同期対象データを、第2のクライアント装置に送信する第1の送信手段と、
    を有し、
    前記第1のクライアント装置は、
    同期対象データを特定する特定情報を、サーバ装置に送信する特定情報送信手段と、
    前記同期対象データの更新データを前記サーバ装置に送信する第2の送信手段と、
    前記第2の送信手段による前記サーバ装置への前記同期対象データの更新データの送信が中断された場合、前記同期対象データの更新データの内、未同期データを識別する識別情報を記録する記録手段と、
    を有するシステム。
  9. サーバ装置が実行する情報処理方法であって、
    第1のクライアント装置より同期対象データを特定する特定情報を受信する受信ステップと、
    前記受信ステップにより受信された前記特定情報に基づいて、同期対象データを特定する特定ステップと、
    前記特定ステップにより特定された同期対象データの更新データを前記第1のクライアント装置より受信し、前記同期対象データを前記更新データで更新することで前記第1のクライアント装置とデータを同期する同期ステップと、
    前記同期ステップにおける前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する確定ステップと、
    前記未同期データの状態を含む前記同期対象データを、第2のクライアント装置に送信する送信ステップと、
    を含む情報処理方法。
  10. クライアント装置が実行する情報処理方法であって、
    同期対象データを特定する特定情報を、サーバ装置に送信する特定情報送信ステップと、
    前記同期対象データの更新データを前記サーバ装置に送信する送信ステップと、
    前記送信ステップによる前記サーバ装置への前記同期対象データの更新データの送信が中断された場合、前記同期対象データの更新データの内、未同期データを識別する識別情報を記録する記録ステップと、
    を含む情報処理方法。
  11. 第1のクライアント装置と、第2のクライアント装置と、サーバ装置と、を含むシステムにおける情報処理方法であって、
    前記第1のクライアント装置が、同期対象データを特定する特定情報を、サーバ装置に送信する特定情報送信ステップと、
    前記サーバ装置が、前記第1のクライアント装置より同期対象データを特定する特定情報を受信する受信ステップと、
    前記サーバ装置が、前記受信ステップにより受信された前記特定情報に基づいて、同期対象データを特定する特定ステップと、
    前記第1のクライアント装置が、前記同期対象データの更新データを前記サーバ装置に送信する第1の送信ステップと、
    前記サーバ装置が、前記特定ステップにより特定された同期対象データの更新データを前記第1のクライアント装置より受信し、前記同期対象データを前記更新データで更新することで前記第1のクライアント装置とデータを同期する同期ステップと、
    前記サーバ装置が、前記同期ステップにおける前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する確定ステップと、
    前記サーバ装置が、前記未同期データの状態を含む前記同期対象データを、第2のクライアント装置に送信する第2の送信ステップと、
    前記第1のクライアント装置が、前記第1の送信ステップによる前記サーバ装置への前記同期対象データの送信が中断された場合、前記同期対象データの内、未同期データを識別する識別情報を記録する記録ステップと、
    を含む情報処理方法。
  12. コンピュータに、
    第1のクライアント装置より同期対象データを特定する特定情報を受信する受信ステップと、
    前記受信ステップにより受信された前記特定情報に基づいて、同期対象データを特定する特定ステップと、
    前記特定ステップにより特定された同期対象データの更新データを前記第1のクライアント装置より受信し、前記同期対象データを前記更新データで更新することで前記第1のクライアント装置とデータを同期する同期ステップと、
    前記同期ステップにおける前記第1のクライアント装置との同期対象データの同期が中断された場合、前記同期対象データの内、未同期データの状態をしかかり中であることを示す状態として確定する確定ステップと、
    前記未同期データの状態を含む前記同期対象データを、第2のクライアント装置に送信する送信ステップと、
    を実行させるためのプログラム。
  13. コンピュータに、
    同期対象データを特定する特定情報を、サーバ装置に送信する特定情報送信ステップと、
    前記同期対象データの更新データを前記サーバ装置に送信する送信ステップと、
    前記送信ステップによる前記サーバ装置への前記同期対象データの更新データの送信が中断された場合、前記同期対象データの更新データの内、未同期データを識別する識別情報を記録する記録ステップと、
    を実行させるためのプログラム。
JP2013170611A 2013-08-20 2013-08-20 サーバ装置、クライアント装置、システム、情報処理方法及びプログラム Pending JP2015041146A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013170611A JP2015041146A (ja) 2013-08-20 2013-08-20 サーバ装置、クライアント装置、システム、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013170611A JP2015041146A (ja) 2013-08-20 2013-08-20 サーバ装置、クライアント装置、システム、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2015041146A true JP2015041146A (ja) 2015-03-02

Family

ID=52695295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013170611A Pending JP2015041146A (ja) 2013-08-20 2013-08-20 サーバ装置、クライアント装置、システム、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2015041146A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018235224A1 (ja) * 2017-06-22 2018-12-27 株式会社東芝 ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム
CN113641764A (zh) * 2021-08-31 2021-11-12 江苏中科云墨数字科技有限公司 一种基于数字孪生的数据同步实现方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018235224A1 (ja) * 2017-06-22 2018-12-27 株式会社東芝 ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム
JPWO2018235224A1 (ja) * 2017-06-22 2019-06-27 株式会社東芝 ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム
CN113641764A (zh) * 2021-08-31 2021-11-12 江苏中科云墨数字科技有限公司 一种基于数字孪生的数据同步实现方法
CN113641764B (zh) * 2021-08-31 2024-03-19 江苏中科云墨数字科技有限公司 一种基于数字孪生的数据同步实现方法

Similar Documents

Publication Publication Date Title
EP3750291B1 (en) Collaborative editing of media in a mixed computing environment
JP5765928B2 (ja) 画像処理装置及びその制御方法、並びにプログラム
US8386424B2 (en) Transparent access mechanism for local and remote data
EP2709339A1 (en) Relay apparatus, information processing apparatus, information processing system, and carrier means
KR20090096554A (ko) 동기화 방법 및 시스템
KR101138549B1 (ko) 동기화 방법 및 시스템
JP6086124B2 (ja) 情報処理端末、同期制御方法および同期制御プログラム
KR20040077566A (ko) 피어 컴퓨팅 장치 사이에서 공유된 데이터를 동기화하는방법 및 시스템
KR20080068110A (ko) 데이터 동기화 처리 방법 그리고 클라이언트 단말기, 서버및 그것의 데이터 동기화 시스템
KR101559046B1 (ko) 항상 준비된 클라이언트/서버 데이터 동기화 방법
JP2013037450A (ja) データベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラム
US9298765B2 (en) Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network
US10205842B2 (en) Information processing system in which an information processing apparatus sends updated setting information to a connected device, information processing apparatus, control method of information processing apparatus, and storage medium
US10402370B2 (en) Information processing method and electronic apparatus
CN102594874A (zh) 一种同步处理方法和装置
JP2015041146A (ja) サーバ装置、クライアント装置、システム、情報処理方法及びプログラム
CN101610225B (zh) 一种同步处理方法、系统和装置
JP2012203697A (ja) 情報処理システム及びプログラム
US10382536B2 (en) Device management apparatus
JP7140614B2 (ja) 管理システム及び管理方法
JP2016212852A (ja) 情報処理装置、情報処理システムおよび方法
JP2018067084A (ja) 共同作業システム及び編集管理プログラム並びに編集管理方法
JP5853791B2 (ja) データ同期方法及びサーバ装置
JP5449471B2 (ja) 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム
JP5877802B2 (ja) 通信端末装置及び通信アクセス方法