JP6292810B2 - データ同期方法、データ同期装置およびプログラム - Google Patents

データ同期方法、データ同期装置およびプログラム Download PDF

Info

Publication number
JP6292810B2
JP6292810B2 JP2013207069A JP2013207069A JP6292810B2 JP 6292810 B2 JP6292810 B2 JP 6292810B2 JP 2013207069 A JP2013207069 A JP 2013207069A JP 2013207069 A JP2013207069 A JP 2013207069A JP 6292810 B2 JP6292810 B2 JP 6292810B2
Authority
JP
Japan
Prior art keywords
data
synchronization
processing
setting value
database
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.)
Active
Application number
JP2013207069A
Other languages
English (en)
Other versions
JP2015072542A (ja
JP2015072542A5 (ja
Inventor
二木 一
一 二木
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 JP2013207069A priority Critical patent/JP6292810B2/ja
Priority to US14/504,142 priority patent/US10346427B2/en
Publication of JP2015072542A publication Critical patent/JP2015072542A/ja
Publication of JP2015072542A5 publication Critical patent/JP2015072542A5/ja
Application granted granted Critical
Publication of JP6292810B2 publication Critical patent/JP6292810B2/ja
Active 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/273Asynchronous replication or reconciliation

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)

Description

本発明は、複数のデータベース間でデータを同期する方法および装置、プログラムに関するものである。
機器の高機能化に伴って設定値の数も膨大になり、維持・管理コストの削減が求められている。そこで、ネットワーク上のマスター・データベース(以下DB)で設定値を集中管理し、データ同期技術を用いてマスターDBから機器内DBへ設定値を同期させる方法が利用されている。データ同期技術において、データの整合性を保証することとデータの可用性を高めることはトレードオフの関係にある。
両者のバランスを制御する技術として、例えば特許文献1においては、トランザクションの種類に応じて異なる整合性管理を行うことによりデータの可用性を改善する方法が示されている。また、特許文献2では、低速な不揮発性メモリにデータを保存する処理コストと、高速な揮発性メモリにのみデータを保存した場合のデータ損失リスクを比較評価して保存先を決定することで、安全性と応答性能を両立する方法が示されている。
特開平11−219309号公報 特表2009−541882号公報
設定値を集中管理する上での課題は大きく2つある。1つは、機器を使用中のユーザに対する応答性能の確保を最優先することであり、もう1つは、マスターDBに対して行った設定値の変更を速やかに機器に反映することである。これに対し、前述の先行技術ではデータの整合性と可用性を制御する粒度がトランザクション単位であり、同期対象とするデータの選択において柔軟性に乏しかった。
そのため、実行中のアプリケーションが参照しているデータだけを優先的に同期するといった最適化を行って性能を改善することが困難であった。この制約は、特にセキュリティやユーザ権限に関わる設定値の変更を直ちに機器に適用してユーザが利用中のアプリケーションの振る舞いを制御しなければならないケースにおいて問題となる。
本発明は上記の課題に鑑みてなされたものであり、同期先において実行中のアプリケーションが参照しているデータや同期先においてログイン中のユーザに関するデータを優先して同期処理することが可能なデータ同期方法を提供することを目的とする。また、その装置、及びプログラムを提供することを目的とする。
かかる課題を解決するため、本発明のデータ同期方法は、
同期元データベースにおいてトランザクション処理されたデータを同期先データベースに同期する方法であって、
トランザクション処理された前記データの一部の第1のデータを同期対象のデータとして前記同期元データベースに要求する要求ステップと、
なくとも前記第1のデータを前記同期元データベースから受信する受信ステップと、
前記同期元データベースにおいて前記第1のデータを処理したトランザクションで処理された、前記第1のデータと異なる第2のデータよりも前記第1のデータを優先して第1の同期処理を実行する第1の同期処理ステップと、
前記第2のデータについて同期先データベースに対して第2の同期処理を実行する第2の同期処理ステップと、を有することを特徴とする。
実行中のアプリケーションが参照しているデータやログイン中のユーザに関するデータのみを対象に高速なデータ同期処理を行い、その後データの整合性保証のためのデータ同期処理を行う。このようにすることで、ユーザに対する応答性能確保とデータの整合性維持を両立することができる。
実施形態1における設定値管理システムの構成図である。 実施形態1における複合機のモジュール構成図である。 実施形態1における複合機側のアクセス権データの構成図およびマスターDB内のアクセス権データの構成図である。 実施形態1における複合機側(設定値DB内)のアクセス権データの説明図である。 実施形態1における複合機側(揮発性メモリ内)のアクセス権データの説明図である。 実施形態1におけるマスターDB内のアクセス権データの説明図である。 実施形態1におけるユーザ管理データと機器管理データの説明図である。 実施形態1におけるログイン処理のフローチャートである。 実施形態1におけるマスターDB更新処理のフローチャートである。 実施形態1における複合機側のデータ同期処理のフローチャートである。 実施形態1における複合機側の第1の同期処理および第2の同期処理のフローチャートである。 実施形態1におけるマスターDB内のアクセス権データの説明図である。 実施形態1における第1の同期処理のための同期データ取得要求の説明図である。 実施形態1における複合機側の揮発性メモリ内および設定値DB内のアクセス権データの説明図である。 実施形態1における第2の同期処理のための同期データ取得要求の説明図である。 実施形態1における複合機側の揮発性メモリ内および設定値DB内のアクセス権データの説明図である。 実施形態1におけるマスターDB側の同期処理のフローチャートである。 本実施形態の機器設定値管理システムに用いるコンピュータシステムの構成図である。 実施形態1における複合機側およびマスターDB側の処理の流れおよびデータの変遷の全体像を示す図である。 実施形態1における複合機側の第1の同期処理および第2の同期処理のフローチャートである。 実施形態1における複合機側およびマスターDB側の処理の流れおよびデータの変遷の全体像を示す図である。 実施形態2、ケース1における複合機側のデータ同期処理のフローチャートである。 実施形態2、ケース1における複合機側のデータ同期処理のフローチャートである。 実施形態2、ケース2における複合機側のデータ同期処理のフローチャートである。 実施形態2、ケース2における複合機側のデータ同期処理のフローチャートである。
以下、図を参照しながら本発明を実施する形態を説明する。
<実施形態1>
本発明の第1の実施形態である機器設定値管理システムについて説明する。
図1は本システムの構成の説明図である。
本システムでは複合機101を設定値管理の対象機器とする。複合機には機器データベース(以下、機器DB)102が搭載されており、印刷設定やユーザ管理情報など各種の設定値データを格納する。機器DBに格納されている設定値データは、複合機のアプリケーションを利用してユーザが変更することが可能である。設定値管理サーバ103は複合機の設定値を集中管理するサーバで、マスターデータベース(以下、マスターDB)105を有し、ネットワーク104を介して複数の複合機と接続される。
マスターDB105は、本システムの管理対象とする全ての複合機の設定値を保管するデータベースである。本システムは、マスターDBを同期元データベースとし、機器DB102を同期先データベースとする。すなわち、マスターDB105に保管されている設定値が設定値管理サーバ103から各複合機101へと配信され、機器データベース102に格納される。管理者端末106は、システム管理者がマスターDB105に格納している設定値を管理するための端末である。
引き続いて、図とフローチャートを用いて、本システムにおけるデータ同期処理を詳しく述べる。
図2は本システムで用いる複合機101のモジュール構成図である。操作部201は、複合機を利用するユーザに対して操作パネルやデータ表示などのユーザインタフェースを提供する。ユーザ管理部202は、本システムの複合機を利用するユーザを管理する。本システムでは、複合機を使用するユーザはログイン処理を行うものとのする。アプリケーション管理部203は、複合機に搭載されているアプリケーションの実行を制御するモジュールである。
ここで、アプリケーションには、複合機にログインしているユーザが利用するものや、ログインしているユーザとは独立にバックエンドで実行されるものが含まれる。
設定値管理部204は、複合機の動作を制御するための設定値を管理するモジュールである。アプリケーション管理部と接続して、実行するアプケーションに設定値を提供する。本実施形態では、説明を簡単にするためユーザのアクセス権データのみを設定値として扱う。同期処理管理部205は、マスターDB105と設定値データベース206の間でデータ同期処理を実行するモジュールである。
同期処理管理部205は通信部208を介して設定値管理サーバ103に接続し、マスターDB105から設定値を取得して揮発性メモリ207および設定値データベース206に格納されている設定値データを更新する。
設定値データベース206は、複合機101の設定値が登録されているデータベースである。揮発性メモリ207は実行中のアプリケーションが利用する設定値データを設定値データベース206から読み込んでおくためのキャッシュメモリである。記憶装置209は設定値データベースを保管する不揮発性メモリである。なお、複合機101にはこの他にも印刷やスキャン等を行うためのモジュールが含まれるが、本発明とは直接関係しないため説明は省略する。
図3(a)は設定値データベース206に格納される設定値データのテーブル構成図である。前述の通り、本実施形態では説明を簡単にするためアクセス権データのみを扱う。ユーザ識別子301は複合機101にログインするユーザの識別子である。アプリケーション識別子302は複合機101に搭載されているアプリケーションの識別子である。ユーザ権限303は、アプリケーション識別子302で特定されるアプリケーションに対するユーザの実行権限を規定するデータである。
本システムでは実行権限として「アクセス不可(0)」「一般ユーザ(1)」「特権ユーザ(2)」「管理者(4)」の4つの権限を用いる。なお、本システムではアプリケーションに対するユーザの実行権限を制御する場合を例に説明するが、本発明を実施可能な形態はこれに限定されるものではない。
図3(b)はマスターDB105に格納される設定値データのテーブル構成図である。ここでも、説明を簡単にするためアクセス権データのみを扱う。ユーザ識別子311はシステムに登録されているユーザの識別子である。アプリケーション識別子312は複合機101に搭載されているアプリケーションの識別子である。ユーザ権限313は、アプリケーション識別子で特定されるアプリケーションに対するユーザの実行権限を規定するデータである。トランザクションID314は、当該データを最後に更新したトランザクションを特定する識別子である。
図4は設定値データベース206に格納されているアクセス権データの例である。この図では、“User001”〜“User003”の3ユーザ分のアクセス権データが登録されている状態を示している。
図6はマスターDB105に格納されているアクセス権データの例である。ここでは、3ユーザ分のアクセス権データが登録されている状態を示す。また、図4に示す設定値データベース206内のアクセス権データと同期が取れている状態とする。
図7(a)はユーザ管理データ701、図7(b)は機器管理データ710の構成図である。それぞれ、システムに登録されている全ユーザのユーザ識別子702〜705と、システムに登録されている全複合機の機器識別子711〜713が登録されている状態を示す。本実施形態の説明においては、機器識別子にはIPアドレスを用いるものとのする。また、ユーザ管理データと機器管理データは、予めマスターDB105と設定値データベース206に同じものが保管されているものとする。
図18は、本実施形態の機器設定値管理システムに用いるコンピュータシステムの構成図である。CPU1801は、OS(Operating System)および各種アプリケーションプログラムを実行し、コンピュータ装置各部の制御を行う。ROM1802は、CPU1801が実行するプログラムや演算用のパラメタのうちの固定的なデータを格納する。RAM1803は、CPU1801の作業領域やデータの一時記憶領域を提供する。ROM1802およびRAM1803は、バス1804を介してCPU1801に接続される。
キーボードなどの入力装置1805や、CRT、液晶ディスプレイなどの表示装置1806や、ハードディスク装置、MOドライブ、CD−ROMドライブ等の外部記憶装置1807は、インタフェース1808を介してバス1804に接続されている。また、バス1804は通信部1809を介してネットワークと接続される。
引き続いて、本実施形態におけるデータ同期処理について図8〜図17の説明図ならびにフローチャートを参照して詳しく説明する。
図8は、ユーザが複合機101にログインしてからアプリケーションを起動するまでの処理を示すフローチャートである。まず、ユーザが操作部201に対しユーザ識別子(ここでは“User001”)を指定してログイン処理を実行する(S801)。操作部はユーザ管理部202に対し、指定されたユーザ識別子の認証を依頼する(S802)。ユーザ管理部はユーザ管理データ701に登録されているユーザ識別子を参照する。
ここでは702に当該ユーザ識別子が登録されているのでユーザのログインを承認する(S803)。ログインが承認されたら、設定値管理部204がログインしたユーザに関する設定値を揮発性メモリ207に読み込む(S804)。設定値管理部はユーザ識別子を検索条件にして設定値データベース206を検索し、当該ユーザに関するアクセス権データ(401、402)を取得して揮発性メモリ207に格納する。
図5に揮発性メモリ207に格納されているアクセス権データの状態を示す。“User001”に対応する2件のアクセス権データ(501、502)が格納されている。
次に、ユーザが操作部を介してアプリケーションの起動を指示する(S805)。操作部はユーザから指定されたアプリケーション識別子(ここでは“1001”)をアプリケーション管理部203に引き渡してアプリケーションの起動を指示する(S806)。アプリケーション管理部は揮発性メモリに格納されているアクセス権データを参照し、ユーザにアプリケーションの実行権限が付与されているかを検証する(S807)。
ここでは、アクセス権データ501によりユーザ“User001”はアプリケーション“1001”に対し管理者(4)の権限が付与されているため、アプリケーション管理部は指定されたアプリケーションを起動する(S808)。これ以降、ユーザがアプリケーションを操作する度に、アクセス権データ501を参照してアプリケーションの操作に対する実行権限が検証される。ユーザ“User001”は管理者(4)の権限が付与されているため任意の操作を実行可能な状態である。
ログインおよびアプリケーション起動処理の説明は以上である。
続いてマスターDB105の設定値変更処理の説明を行う。
図9は、マスターDBに対する設定値変更処理を示すフローチャートである。
ここでは、アプリケーション“1001”に対する全ユーザの実行権限を一般ユーザ(1)に変更する場合を例に説明する。まず、システム管理者が管理者端末106を介してマスターDBに接続し、設定値データの変更を指示する(S901)。マスターDBはトランザクションIDを発行し(S902)、更新トランザクションを開始する(S903)。次いでアプリケーション識別子(“1001”)を検索条件にマスターDBを検索して条件に合致するデータ(601、603、606)を特定し、当該データのユーザ権限313の値を“1”に設定する。
さらにトランザクションID314にS902で発行したトランザクションID(ここでは“11”)を設定してマスターDB105を更新する(S904)。全てのデータを更新したらトランザクションをコミットして終了する(S905)。
図12に更新後のマスターDB105のアクセス権データの状態を示す。アプリケーション“1001”に対応する1201、1203、1206の各データのユーザ権限とトランザクションIDが変更されている。
マスターDB105の更新処理が完了したら、設定値管理サーバ103は設定値データの更新を全機器に通知する。まず機器管理データ710に登録されている機器識別子711〜713を取得する(S906)。次に、取得した機器識別子のIPアドレスが示す複合機101の通信部208とネットワーク104を介して接続し、同期要請通知を送信する(S907)。同期要請通知では、S902で発行したトランザクションIDを送信する。
マスターDBに対する設定値変更処理の説明は以上である。
引き続き、図10、図11のフローチャートを参照して複合機側のデータ同期処理を説明する。
通信部208が設定値管理サーバ103から同期要請通知を受信したら(S1001)、同期処理管理部205に同期実行を依頼する(S1002)。依頼を受けた同期実行管理部は、最初に揮発性メモリ207に格納されている設定値を同期する第1の同期処理を実行する(S1003)。
まずユーザ管理部202にログイン中のユーザを問い合わせる(S1110)。ここでは“User001”がログイン中である。次に、アプリケーション管理部203に、実行中のアプリケーションを問い合わせる(S1111)。ここではアプリケーション“1001”が実行中である。
次に、設定値管理部204に、アプリケーション“1001”が利用している設定値を問い合わせる(S1112)。ここではアクセス権データ501が揮発性メモリ207に格納されて利用中である。以上の情報を取得したら、同期処理管理部205は通信部208を介して設定値管理サーバ103に同期データ取得要求を送信する(S1113)。
図13に同期データ取得要求のデータ構成を示す。同期対象のデータを指定するため、同期要請通知で受信したトランザクションID1301、アプリケーション識別子1302、ユーザ識別子1303を含む。同期データ取得要求を受信した設定値管理サーバでの処理は後述するとして、ここでは複合機上での処理の説明を続ける。通信部が同期データ取得要求への応答として設定値管理サーバから同期データを受信する(S1114)。
ここでは、図12に示した更新後の設定値データのうち、同期データ取得要求で指定した識別子(“User001”、“1001”)に該当するデータ1201が受信される。同期データを受信したら、これを同期処理管理部205に引き渡して同期実行を指示する(S1115)。同期処理管理部205は、取得した同期データを用いて揮発性メモリ207中のデータを書き換える(S1116)。ここではS804で揮発性メモリ207に格納したアクセス権データのうち、アプリケーション“1001”に該当する501だけを同期データの内容で書き換える。
図14(a)に、第1の同期処理の実行後に揮発性メモリ207に格納されているアクセス権データの状態を示す。また図14(b)に、第1の同期処理の実行後に設定値データベース206に格納されているアクセス権データの状態を示す。
揮発性メモリ207中のアクセス権データではアプリケーション“1001”に対するユーザ権限が同期処理により“1”に変更されている(1401)。一方、設定値データベース206中のアクセス権データはいずれも同期処理前の状態から変更が無い。
この状態でユーザがアプリケーションを操作すると、アクセス権データ1401が参照され、ユーザ権限(1)に許可されている操作のみ実行可能となる。すなわち、マスターDB上での設定値更新がユーザのアプリケーション操作に反映されたことになる。
第1の同期処理が完了したら、引き続いて第2の同期処理を実行する(S1004)。同期処理管理部は、全ての同期データを取得するために設定値管理サーバに同期データ取得要求を送信する(S1120)。
図15に同期データ取得要求のデータ構成を示す。トランザクションID1301は第1の同期処理の時と同じ値である。その他の項目は全て空とすることで、同トランザクションIDで特定されるトランザクション内で更新された全データの取得を要求する。第1の同期処理と同様、通信部208が同期データ取得要求への応答として設定値管理サーバ103から同期データを受信し(S1121)、これを同期処理管理部205に引き渡して同期実行を指示する(S1122)。次に、同期処理管理部は取得した同期データを用いて設定値データベース206のデータを更新する(S1123)。
図16に、第2の同期処理を実行した後のアクセス権データの状態を示す。この段階では、マスターDB105上のアクセス権データ(図12)と揮発性メモリ207中のアクセス権データ(図16(a))と設定値データベース206中のアクセス権データ(図16(b))の全てに対し整合性が保たれた状態となる。
複合機側の同期処理の説明は以上である。
引き続き、図17のフローチャートを参照して、設定値管理サーバ103側の同期データ送信処理について説明する。
設定値管理サーバ103は、S1113およびS1120で送信された同期データ取得要求を受信したら(S1701)、同期データ取得要求からトランザクションID1301を抽出する(S1702)。次に、トランザクションIDを検索条件にマスターDB105を検索して同トランザクション内で更新されたデータを全て取得する(S1703)。ここでは図12中の1201、1203、1206の3件が取得される。
続いて、同期データ取得要求からアプリケーション識別子、ユーザ識別子を抽出する(S1704)。これら2つの値が指定されていた場合(S1705)は、S1703で取得したデータのうち、指定に合致するデータを抽出して(S1706)、S906〜S907と同様の手順で複合機101に送信する(S1707)。一方、指定が無かった場合はトランザクション内の全更新データの送信を行うため、S1703で取得した全データを抽出し(S1708)、同じく複合機101に送信する(S1707)。
設定値管理サーバ側の同期データ送信処理の説明は以上である。
図19に上記の説明をまとめた実施形態1における複合機側およびマスターDB側の処理の流れおよびデータの変遷の全体像を示す。
以上の説明では、第2の同期処理を実行する際にマスターDBで更新された全データを取得するものとしている。
しかし、第1の同期処理を実行する際にマスターDBで更新された同一トランザクションに関する全てのデータを取得し、取得した全てのデータを記憶装置に記憶し、記憶したデータを第2の同期処理を実行する際に利用するとしてもよい。
図20に、この場合の複合機側(ユーザ側)の第1の同期処理および第2の同期処理のフローチャートである。
図21に、この場合のシステム全体の処理の流れおよびデータの変遷の概要を示す。
第1の同期処理を実行した際に取得したデータを再利用することによって、第2の同期処理を実行する際には再取得しない(設定値管理サーバ103に再びアクセスしない)ようにすることが可能である。
また、以上の説明では、第1の同期処理の実行後に第2の同期処理を続けて実行するものとしているが、第2の同期処理を実行するタイミングはこの形態に限定されるものではない。例えばアプリケーションから指示されるまで実行を遅らせる形態や、あるいは第1の同期処理と並列実行する形態によっても本発明は実施可能である。
また、以上の説明では、第2の同期処理の対象となった設定値が揮発性メモリ中に格納されていない場合について説明した。第2の同期処理の対象となった設定値が揮発性メモリ中に格納されている場合には、第2の同期処理において揮発性メモリ中の設定値にも同期処理を施すことは言うまでもない。
実施形態1における機器設定値管理システムの説明は以上である。
以上述べたように、本発明を実施する機器設定値管理システムは、揮発性メモリ内の設定値を同期する第1の同期処理と、データベース内の設定値を同期する第2の同期処理を用いることで、ユーザへの応答性とデータの整合性を両立することが可能である。より具体的には、揮発性メモリ内の使用中の設定値のみ高速に同期する手段を用いることで、同期処理のためにユーザのアプケーション操作が阻害されることを回避し、応答性能の劣化を抑制できる。また、第2の同期処理を行うことでマスターDBと機器DBの間のデータの整合性が確保されるため、データ利用時の安全性を改善することができる。
<実施形態2>
引き続いて第2の実施形態について説明する。
本実施形態は、実施形態1において第1の同期処理の実行後に発生し得るデータ不整合状態を回避する手段に関する。
実施形態1の説明で述べた通り、本発明の第2の同期処理を実行するタイミングは任意であるため、第1の同期処理のみが実行された状態(図14に示す設定値の状態)が許容される。その状態(揮発性メモリに関する同期処理は実行されたが、設定値DBに関する同期処理は実行されていない状態)で複合機側の設定値が更新されると不整合状態が発生する。
以下に、不整合状態を回避する手段を備えた実施形態を説明する。なお、本実施形態の説明では、図14に示す状態を複合機側の設定値の初期状態とする。
◆ケース1
複合機上で実行中のアプリケーションが、揮発性メモリ中の同期された設定値1401を更新するケースである。
この場合、マスターDB側でトランザクション処理された設定値(1201、1203、1206)の一部のみが、複合機側で更新されることになるため、データのトランザクション整合性が維持されなくなる。トランザクション整合性を維持するためには、設定値1203と1206に対応する複合機側の設定値403と406を同期する必要がある。
そこで、本実施形態の同期処理管理部は、図14の状態に入ったら設定値1401に対する更新要求を監視し(図22、S2201)、更新要求が発生したら直ちに第2の同期処理を実行する(S2202)。
そして、設定値403と406と1401のトランザクション整合性を保証した後(第2の同期処理を完了した後)に、設定値1401の更新を実行する(S2203)。以上の手順を踏むことにより、トランザクション整合性が維持される。
また、ケース1に対する別の実施形態における同期処理管理部は、図14の状態に入ったら設定値1401に対する更新要求を監視し(図23、S2301)、設定値1401に対する更新要求が発生したら直ちに更新を実行する(S2302)。設定値1401が更新されたら設定値403および406に対するアクセス要求の監視を開始する(S2303)。
そして、複合機上の任意のアプリケーションが設定値403または406へのアクセス要求を生じさせたら、同期処理管理部は直ちに第2の同期処理を実行する(S2304)。同期処理管理部は第2の同期処理を完了した後に、設定値DB中の同期された設定値へのアクセスを許可する(S2305)。これにより、トランザクション整合性を維持する。
この実施形態によれば、トランザクション整合性が維持できなくなるまでは第2の同期処理を実行する必要が無く、さらに実行中のアプリケーションが揮発性メモリ中の設定値を更新することも可能であるため、データの可用性向上に効果がある。
以上の手順を実行するため、本実施形態の複合機は、図2に示すモジュール構成に加えて、マスターDB側でトランザクション処理された一連の設定値のリストを取得する手段と、当該リストに含まれる設定値を設定値データベース内で特定する手段とを備える。そして、前記のように、同期処理管理部は、前記特定する手段によって特定される設定値のいずれかに対する更新要求およびアクセス要求を監視し、これら要求が発生したら第2の同期処理を実行する。
◆ケース2
複合機上で実行される別のアプリケーションが、設定値データベース上の同期されていない設定値401にアクセスするケースである。
この場合、揮発性メモリ中の同期された設定値1401を利用するアプリケーションとの間で、参照する設定値の値に不整合が生じる。そこで、本実施形態の同期処理管理部は、図14の状態に入ったら設定値401に対するアクセス要求を監視し(図24、S2401)、アクセス要求が発生したら直ちに第2の同期処理を実行する(S2402)。
これにより、揮発性メモリ中の設定値と設定値データベース上のデータの不整合が解消され、複数のアプリケーション間で異なる設定値を利用する不整合の発生を回避することができる。
また、ケース2に対する別の実施形態における同期処理管理部は、設定値401への別のアプリケーション(第2のアプリケーション)からのアクセス要求を監視する(図25、S2501)。
設定値401は、第2の同期処理で同期されるデータであって、かつ第1の同期処理で同期されたデータ(すなわち、設定値1201)に対応するデータである。
同期処理管理部は、設定値401に対する第2のアプリケーションからのアクセス要求が発生したら、第2のアプリケーション用に揮発性メモリを確保し、そこに設定値1401を複製し、第2のアプリケーションにアクセスさせる(S2502)。
その上で、さらに不整合を生じさせるような更新処理が設定値1401(以下、「複製元データ」とも記載する)またはその複製データに対して行われるかを監視する(S2503)。そして、不整合を生じさせるような更新処理が行われる場合に第2の同期処理を実行する(S2504)。
これにより、第2の同期処理の実行が抑制されるため、応答性能が向上する。また、揮発性メモリ内の設定値を複製して再利用するので設定値データベースを部分的に更新する必要もなく、トランザクション整合性も維持される。
以上の手順を実行するため、本実施形態の複合機は、図2に示すモジュール構成に加えて、リストを取得する手段と、当該リストに含まれる設定値を設定値データベース内で特定する手段と、揮発性メモリ内の設定値を複製する手段とを有する。リストを取得する手段は、マスターDB側でトランザクション処理された一連の設定値の、リストを取得する。
◆ケース3
複合機上で実行される別のアプリケーションが、設定値データベース上の同期されていない設定値403または406にアクセスするケースである。これらの設定値と揮発性メモリ中の同期された設定値1401とは、マスターDB上でトランザクション処理されたものである。したがって、トランザクション整合性の観点から、同期後の設定値を利用するアプリケーションと同期前の設定値を利用するアプリケーションが混在する状態は回避する必要がある。
そこで、本実施形態の同期処理管理部は、第1の同期処理で更新した設定値と同一トランザクションで処理すべき設定値(設定値データベース上の設定値)へのアクセス要求を監視する(図24、S2401)。そして、アクセス要求が発生したら直ちに第2の同期処理を実行する(S2402)。
これにより、複数のアプリケーション間でトランザクション完了状態の異なる設定値を参照する不整合の発生を回避することができる。
以上の手順を実行するため、本実施形態の複合機は、図2に示すモジュール構成に加えて、マスターDB側でトランザクション処理された一連の設定値のリストを取得する手段と、当該リストに含まれる設定値を設定値データベース内で特定する手段を備える。
<実施形態3>
続いて第3の実施形態の説明を行う。
前述の実施形態では、複合機の設定値データベース内に設定値が格納されている状態でデータ同期処理を実行する場合を説明した。
本実施形態は、複合機側に設定値が格納されていない状態でデータ同期処理を実行するものである。本実施形態のモジュール構成は基本的に実施形態1に準じるため説明は省略する。
以下に、本実施形態のデータ同期処理の手順を説明する。
まず、S801〜S803と同じ手順に従ってユーザが複合機にログインする。次に設定値管理部がユーザの設定値を設定値データベースから検索する。ここでは設定値が格納されていないことを前提としているため、この検索では設定値が取得されない。設定値が取得されなかったら、設定値管理部は同期処理管理部に第1の同期処理の実行を依頼する。同期処理管理部は設定値管理サーバに同期データ取得要求を送信する。ここでの同期データ取得要求のデータ構成は、ユーザ識別子1303だけが格納されたものである。
これにより、指定されたユーザに関する設定値を一括して取得することになる。続いて、設定値管理サーバから同期データを取得した同期処理管理部は、S804と同様の手順で設定値を揮発性メモリに読み込む。これ以降の手順は実施形態1と同じなので説明は省略する
以上のように、本実施形態の設定値管理システムは、複合機に設定値が格納されていなかった場合に第1の同期処理を実行することで、ユーザの設定値を速やかに利用可能な状態にすることが可能である。この実施形態は、例えば複合機に初めてログインするユーザの設定値をマスターDBから取得するような場合に適用すると、特に効果がある。
<実施形態4>
続いて第4の実施形態の説明を行う。
実施形態1では、設定値管理サーバから同期要請通知を受信してから第1の同期処理を実行する場合を説明した。
本実施形態は、複合機側から第1の同期処理を起動するものである。本実施形態のモジュール構成は基本的に実施形態1に準じるため説明は省略する。
以下に、本実施形態のデータ同期処理の手順を説明する。
まず、S801〜S808と同じ手順に従ってユーザが複合機にログインして設定値を揮発性メモリに格納し、アプリケーションを起動する。
次に、複合機の同期処理管理部が第1の同期処理を実行する。つまり、設定値管理サーバ103に同期データ取得要求を送信する。ここでの同期データ取得要求のデータ構成は、アプリケーション識別子1302とユーザ識別子1303が含まれる。これにより、マスターDB上に格納されている当該アプリケーションに関する最新状態の設定値が取得される。同期データ取得後の処理は実施形態1と同様のため説明は省略する。
なお、本実施形態で同期処理を実行するタイミングは、アプリケーションを起動する前のS804の直後としても良い。その場合、同期データ取得要求のデータ構成はユーザ識別子1303だけが含まれ、マスターDB上に格納されている当該ユーザに関する最新状態の設定値が一括で取得される。
この実施形態は、ログイン時にマスターDBとの同期を実行するようなシステムに適用すると効果がある。複合機内に格納されている設定値を利用してログイン処理を速やかに実行することが可能であるため、特に、通信環境の性能や安定性に問題がある環境においてログイン処理の応答性能を向上させることに効果的である。
<実施形態5>
引き続いて、第5の実施形態の説明を行う。
本実施形態は、設定値データベースの排他制御に関する。
前述の実施形態では第1の同期処理を先に実行する方法について説明したが、本実施形態はデータの整合性保証を優先するため第2の同期処理を先に実行する。本実施形態の同期処理管理部は、第2の同期処理の実行において、設定値データベースに格納されている設定値がアプリケーションによって排他制御されていて更新できなければ、当該設定値を揮発性メモリに格納し、設定値データベースは更新しない。そして、アプリケーションによる排他制御が解除されたら、揮発性メモリ内の設定値を用いて設定値データベースを更新する。
<実施形態6>
本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUまたはMPU)がプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、プログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる場合も含まれる。メモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
201 操作部
202 ユーザ管理部
203 アプリケーション管理部
204 設定値管理部
205 同期処理管理部
206 設定値データベース(設定値DB)
207 揮発性メモリ
208 通信部
209 記憶装置

Claims (8)

  1. 同期元データベースにおいてトランザクション処理されたデータを同期先データベースに同期する方法であって、
    トランザクション処理された前記データの一部の第1のデータを同期対象のデータとして前記同期元データベースに要求する要求ステップと、
    なくとも前記第1のデータを前記同期元データベースから受信する受信ステップと、
    前記同期元データベースにおいて前記第1のデータを処理したトランザクションで処理された、前記第1のデータと異なる第2のデータよりも前記第1のデータを優先して第1の同期処理を実行する第1の同期処理ステップと、
    前記第2のデータについて同期先データベースに対して第2の同期処理を実行する第2の同期処理ステップと、を有することを特徴とするデータ同期方法。
  2. 前記要求ステップにおいて、前記同期元データベースに同期対象のデータとして、前記第1のデータおよび前記第2のデータを要求し、
    前記受信ステップにおいて、前記第1のデータおよび前記第2のデータを前記同期元データベースから受信し、
    前記受信ステップの後、前記第1の同期処理ステップの前に、前記第2のデータを同期先の不揮発性メモリに記憶する記憶ステップをさらに有し、
    前記第2の同期処理ステップにおいて、前記記憶ステップにおいて前記不揮発性メモリに記憶した前記第2のデータによって前記第2の同期処理を実行することを特徴とする請求項1に記載のデータ同期方法。


  3. 前記第1の同期処理が揮発性メモリに格納されているデータを対象にデータを同期し、
    前記第2の同期処理が不揮発性メモリに格納されているデータを対象にデータを同期することを特徴とする請求項1または2に記載のデータ同期方法。
  4. 前記同期先データベースにおいて前記第1の同期処理のみが実行された後に、前記第1の同期処理で同期されたデータへの更新要求を監視する第1の監視ステップをさらに有し、
    前記第1の同期処理で同期されたデータへの更新要求が発生したら直ちに、前記第2の同期処理を実行することを特徴とする請求項1〜3のいずれか1項に記載のデータ同期方法。
  5. 前記同期先データベースにおいて前記第1の同期処理のみが実行された後に、前記第2の同期処理で同期されるデータへのアクセス要求を監視する第2の監視ステップをさらに有し、
    前記第2の同期処理で同期されるデータへのアクセス要求が発生したら直ちに、前記第2の同期処理を実行することを特徴とする請求項1〜4のいずれか1項に記載のデータ同期方法。
  6. 前記同期先データベースにおいて前記第1の同期処理のみが実行された後に、前記第2の同期処理で同期されるデータであって、かつ前記第1の同期処理で同期されたデータに対応するデータへの第2のアプリケーションからのアクセス要求を監視する第3の監視ステップと、
    前記第3の監視ステップにおいて前記アクセス要求が発生したら直ちに、前記第2のアプリケーションのためにキャッシュメモリを確保して、前記第1の同期処理で同期されたデータを複製し、前記第2のアプリケーションに前記複製したデータへアクセスさせるステップと、
    複製元データまたはその複製データのいずれかに対して不整合を生じさせるような更新処理が行われるかを監視し、不整合を生じさせるような更新処理が行われる場合に第2の同期処理を実行するステップをさらに有することを特徴とする請求項1〜5のいずれか1項に記載のデータ同期方法。
  7. 同期元データベースにおいてトランザクション処理されたデータを受け取り同期先データベースに同期するデータ同期装置であって、
    前記同期元データベースに同期対象のデータとして、トランザクション処理された前記データの一部の第1のデータを要求する同期処理管理手段を有し、
    前記同期処理管理手段が、
    少なくとも前記第1のデータを前記同期元データベースから受信し、
    前記同期元データベースにおいて前記第1のデータを処理したトランザクションで処理された、前記第1のデータと異なる第2のデータよりも前記第1のデータを優先して第1の同期処理を実行し、
    前記第2のデータについて同期先データベースに対して第2の同期処理を実行することを特徴とするデータ同期装置。
  8. 請求項1〜6のいずれか1項に記載のデータ同期方法の各ステップをコンピュータに実行させるためのプログラム。
JP2013207069A 2013-10-02 2013-10-02 データ同期方法、データ同期装置およびプログラム Active JP6292810B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013207069A JP6292810B2 (ja) 2013-10-02 2013-10-02 データ同期方法、データ同期装置およびプログラム
US14/504,142 US10346427B2 (en) 2013-10-02 2014-10-01 Data synchronization method, data synchronization apparatus, and storage medium for synchronizing data among a plurality of databases

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013207069A JP6292810B2 (ja) 2013-10-02 2013-10-02 データ同期方法、データ同期装置およびプログラム

Publications (3)

Publication Number Publication Date
JP2015072542A JP2015072542A (ja) 2015-04-16
JP2015072542A5 JP2015072542A5 (ja) 2016-11-17
JP6292810B2 true JP6292810B2 (ja) 2018-03-14

Family

ID=52741134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013207069A Active JP6292810B2 (ja) 2013-10-02 2013-10-02 データ同期方法、データ同期装置およびプログラム

Country Status (2)

Country Link
US (1) US10346427B2 (ja)
JP (1) JP6292810B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019873B (zh) * 2017-12-25 2021-08-27 深圳市优必选科技有限公司 人脸数据处理方法、装置及设备
JP7227485B2 (ja) * 2019-04-22 2023-02-22 富士通株式会社 情報処理システム、情報処理装置およびデータベース管理プログラム
CN110909075B (zh) * 2019-10-30 2022-08-09 北京达佳互联信息技术有限公司 数据的同步方法、装置、电子设备及存储介质
JP6904412B2 (ja) * 2019-12-20 2021-07-14 日本電気株式会社 複製データ制御装置、複製データ制御システム、複製データ制御方法および複製データ制御プログラム
CN114067473B (zh) * 2020-08-07 2023-01-06 比亚迪股份有限公司 综合调度系统中的门禁权限管理方法、装置及设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3563591B2 (ja) 1997-09-29 2004-09-08 株式会社リコー 分散型データベースシステムの一貫性管理方法およびその方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6256634B1 (en) * 1998-06-30 2001-07-03 Microsoft Corporation Method and system for purging tombstones for deleted data items in a replicated database
JP2002014860A (ja) * 2000-06-28 2002-01-18 Hitachi Ltd 複数データベースの同期化方法
US20020059299A1 (en) * 2000-07-14 2002-05-16 Frederic Spaey System and method for synchronizing databases
US7200720B1 (en) * 2001-12-28 2007-04-03 Oracle International Corporation System and method for efficiently performing memory intensive computations including a bidirectional synchronization mechanism for maintaining consistency of data
US6938045B2 (en) * 2002-01-18 2005-08-30 Seiko Epson Corporation Image server synchronization
GB0613192D0 (en) 2006-07-01 2006-08-09 Ibm Methods, apparatus and computer programs for managing persistence
US20080077701A1 (en) * 2006-09-27 2008-03-27 George Philip Kongalath Synchronized data content delivery
US20080144601A1 (en) * 2006-12-18 2008-06-19 Nokia Corporation Systems, methods, devices, and computer program products providing data replication for mobile terminals
US8725679B2 (en) * 2008-04-07 2014-05-13 International Business Machines Corporation Client side caching of synchronized data
EP3399445B1 (en) * 2008-10-21 2020-08-12 Google LLC Always-ready client/server data synchronization
US8812451B2 (en) * 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
JP4939568B2 (ja) * 2009-04-28 2012-05-30 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース間でデータを同期するための方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム
JP2011123557A (ja) * 2009-12-08 2011-06-23 Canon Inc 画像処理装置、及びその制御方法
US8812630B2 (en) * 2011-01-24 2014-08-19 Salesforce.Com, Inc. Session table framework
JP5751029B2 (ja) * 2011-06-03 2015-07-22 株式会社リコー 認証装置、プログラムおよび記録媒体
US20130179186A1 (en) * 2012-01-11 2013-07-11 Roche Diagnostics Operations, Inc. System and method for database synchronization for medical records

Also Published As

Publication number Publication date
US10346427B2 (en) 2019-07-09
US20150095280A1 (en) 2015-04-02
JP2015072542A (ja) 2015-04-16

Similar Documents

Publication Publication Date Title
CA3092364C (en) Live migration of clusters in containerized environments
US9652161B2 (en) System, method, and medium of optimizing load reallocation in an in-memory data management grid
Hoffmann et al. Megaphone: Latency-conscious state migration for distributed streaming dataflows
US20200356447A1 (en) Manifest-based snapshots in distributed computing environments
JP6292810B2 (ja) データ同期方法、データ同期装置およびプログラム
CN109831500B (zh) Kubernetes集群中配置文件与Pod的同步方法
US10521396B2 (en) Placement policy
Tsai et al. Real-time service-oriented cloud computing
US20200026786A1 (en) Management and synchronization of batch workloads with active/active sites using proxy replication engines
US9430668B2 (en) Seamless upgrade for network system
WO2015198440A1 (ja) 管理サーバ、計算機システム及び方法
WO2016019729A1 (zh) 一种动态调度方法、系统及计算机存储介质
CN117321581A (zh) 用于加速sql查询的确定性分布式高速缓存的技术
Toor et al. A scalable infrastructure for CMS data analysis based on OpenStack Cloud and Gluster file system
Zarei et al. Past, present and future of Hadoop: A survey
KR101610048B1 (ko) 소프트웨어 정의 네트워크에서 컨트롤러의 저장소를 운영하는 방법, 장치 및 컴퓨터 프로그램
JP2014016953A (ja) 無共有型データベースシステム、同期装置、データベースサーバ、その同期方法および同期プログラム
KR20200044199A (ko) 클라우드 컴퓨팅 환경 내 워크로드 밸런싱 방법 및 장치
Hoffmann et al. Megaphone: Latency-conscious state migration for distributed streaming dataflows
Zainab et al. Moving a repository of scholarly content to a cloud
Wang et al. Millipedes: Distributed and set-based sub-task scheduler of computing engines running on yarn cluster
US11615092B1 (en) Lightweight database pipeline scheduler
KR101681651B1 (ko) 데이터베이스 관리 시스템 및 방법
KR20120044694A (ko) 비대칭 분산 파일 시스템, 연산 분배 장치 및 방법
Masih On Demand File Systems with BeeGFS

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160929

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170804

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: 20180116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180213

R151 Written notification of patent or utility model registration

Ref document number: 6292810

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03