(57)【要約】【課題】データベースの同期処理において、応答性能の向上とデータの整合性保証を両立する。【解決手段】同期元データベースにおいてトランザクション処理されたデータを同期先データベースに同期する方法であって、同期先の同期処理管理手段が、前記同期元データベースに同期対象のデータとして、少なくとも第１のデータを要求する要求ステップと、前記同期処理管理手段が、少なくとも前記第１のデータを前記同期元データベースから受信する受信ステップと、前記同期処理管理手段が、前記第１のデータについてキャッシュメモリに対して第１の同期処理を実行する第１の同期処理ステップと、前記同期処理管理手段が、前記同期元データベースにおいて前記第１のデータと同一トランザクションで処理された第２のデータについて同期先データベースに対して第２の同期処理を実行する第２の同期処理ステップと、を有する。【選択図】  図２
2015072542.tif 000002
【特許請求の範囲】
【請求項１】
同期元データベースにおいてトランザクション処理されたデータを同期先データベースに同期する方法であって、
同期先の同期処理管理手段が、前記同期元データベースに同期対象のデータとして、少なくとも第１のデータを要求する要求ステップと、
前記同期処理管理手段が、少なくとも前記第１のデータを前記同期元データベースから受信する受信ステップと、
前記同期処理管理手段が、前記第１のデータについてキャッシュメモリに対して第１の同期処理を実行する第１の同期処理ステップと、
前記同期処理管理手段が、前記同期元データベースにおいて前記第１のデータと同一トランザクションで処理された第２のデータについて同期先データベースに対して第２の同期処理を実行する第２の同期処理ステップと、を有することを特徴とするデータ同期方法。
【請求項２】
前記要求ステップにおいて、前記同期処理管理手段が、前記同期元データベースに同期対象のデータとして、前記第１のデータおよび前記第２のデータを要求し、
前記受信ステップにおいて、前記同期処理管理手段が、前記第１のデータおよび前記第２のデータを前記同期元データベースから受信し、
前記受信ステップの後、前記第１の同期処理ステップの前に、前記第２のデータを前記同期先の記憶手段に記憶する記憶ステップをさらに有し、
前記第２の同期処理ステップにおいて、前記同期処理管理手段が、前記記憶ステップにおいて前記記憶手段に記憶した前記第２のデータによって前記同期処理を実行することを特徴とする請求項２に記載のデータ同期方法。
【請求項３】
前記第１の同期処理が揮発性メモリに格納されているデータを対象にデータを同期し、
前記第２の同期処理が不揮発性メモリに格納されているデータを対象にデータを同期することを特徴とする請求項１または２に記載のデータ同期方法。
【請求項４】
前記同期先データベースにおいて前記第１の同期処理のみが実行された後に、前記第１の同期処理で同期されたデータへの更新要求を監視する第１の監視ステップをさらに有し、
前記第１の同期処理で同期されたデータへの更新要求が発生したら直ちに、前記第２の同期処理を実行することを特徴とする請求項１〜３のいずれか１項に記載のデータ同期方法。
【請求項５】
前記同期先データベースにおいて前記第１の同期処理のみが実行された後に、前記第２の同期処理で同期されるデータへのアクセス要求を監視する第２の監視ステップをさらに有し、
前記第２の同期処理で同期されるデータへのアクセス要求が発生したら直ちに、前記第２の同期処理を実行することを特徴とする請求項１〜４のいずれか１項に記載のデータ同期方法。
【請求項６】
前記同期先データベースにおいて前記第１の同期処理のみが実行された後に、前記第２の同期処理で同期されるデータであって、かつ前記第１の同期処理で同期されたデータに対応するデータへの第２のアプリケーションからのアクセス要求を監視する第３の監視ステップと、
前記第３の監視ステップにおいて前記アクセス要求が発生したら直ちに、前記第２のアプリケーションのためにキャッシュメモリを確保して、前記第１の同期処理で同期されたデータを複製し、前記第２のアプリケーションに前記複製したデータへアクセスさせるステップと、
複製元データまたはその複製データのいずれかに対して不整合を生じさせるような更新処理が行われるかを監視し、不整合を生じさせるような更新処理が行われる場合に第２の同期処理を実行するステップをさらに有することを特徴とする請求項１〜５のいずれか１項に記載のデータ同期方法。
【請求項７】
同期元データベースにおいてトランザクション処理されたデータを受け取り同期先データベースに同期するデータ同期装置であって、
前記同期元データベースに同期対象のデータとして、少なくとも第１のデータを要求する同期処理管理手段を有し、
前記同期処理管理手段が、
少なくとも前記第１のデータを前記同期元データベースから受信し、
前記第１のデータについてキャッシュメモリに対して第１の同期処理を実行し、
前記同期元データベースにおいて前記第１のデータと同一トランザクションで処理された第２のデータについて同期先データベースに対して第２の同期処理を実行することを特徴とするデータ同期装置。
【請求項８】
請求項１〜６のいずれか１項に記載のデータ同期方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベース間でデータを同期する方法および装置、プログラムに関するものである。
【背景技術】
【０００２】
機器の高機能化に伴って設定値の数も膨大になり、維持・管理コストの削減が求められている。そこで、ネットワーク上のマスター・データベース（以下ＤＢ）で設定値を集中管理し、データ同期技術を用いてマスターＤＢから機器内ＤＢへ設定値を同期させる方法が利用されている。データ同期技術において、データの整合性を保証することとデータの可用性を高めることはトレードオフの関係にある。
【０００３】
両者のバランスを制御する技術として、例えば特許文献１においては、トランザクションの種類に応じて異なる整合性管理を行うことによりデータの可用性を改善する方法が示されている。また、特許文献２では、低速な不揮発性メモリにデータを保存する処理コストと、高速な揮発性メモリにのみデータを保存した場合のデータ損失リスクを比較評価して保存先を決定することで、安全性と応答性能を両立する方法が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２１９３０９号公報
【特許文献２】特表２００９−５４１８８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
設定値を集中管理する上での課題は大きく２つある。１つは、機器を使用中のユーザに対する応答性能の確保を最優先することであり、もう１つは、マスターＤＢに対して行った設定値の変更を速やかに機器に反映することである。これに対し、前述の先行技術ではデータの整合性と可用性を制御する粒度がトランザクション単位であり、同期対象とするデータの選択において柔軟性に乏しかった。
【０００６】
そのため、実行中のアプリケーションが参照しているデータだけを優先的に同期するといった最適化を行って性能を改善することが困難であった。この制約は、特にセキュリティやユーザ権限に関わる設定値の変更を直ちに機器に適用してユーザが利用中のアプリケーションの振る舞いを制御しなければならないケースにおいて問題となる。
本発明は上記の課題に鑑みてなされたものであり、同期先において実行中のアプリケーションが参照しているデータや同期先においてログイン中のユーザに関するデータを優先して同期処理することが可能なデータ同期方法を提供することを目的とする。また、その装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
かかる課題を解決するため、本発明のデータ同期方法は、
同期元データベースにおいてトランザクション処理されたデータを同期先データベースに同期する方法であって、
同期先の同期処理管理手段が、前記同期元データベースに同期対象のデータとして、少なくとも第１のデータを要求する要求ステップと、
前記同期処理管理手段が、少なくとも前記第１のデータを前記同期元データベースから受信する受信ステップと、
前記同期処理管理手段が、前記第１のデータについてキャッシュメモリに対して第１の同期処理を実行する第１の同期処理ステップと、
前記同期処理管理手段が、前記同期元データベースにおいて前記第１のデータと同一トランザクションで処理された第２のデータについて同期先データベースに対して第２の同期処理を実行する第２の同期処理ステップと、を有することを特徴とする。
【発明の効果】
【０００８】
実行中のアプリケーションが参照しているデータやログイン中のユーザに関するデータのみを対象に高速なデータ同期処理を行い、その後データの整合性保証のためのデータ同期処理を行う。このようにすることで、ユーザに対する応答性能確保とデータの整合性維持を両立することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１における設定値管理システムの構成図である。
【図２】実施形態１における複合機のモジュール構成図である。
【図３】実施形態１における複合機側のアクセス権データの構成図およびマスターＤＢ内のアクセス権データの構成図である。
【図４】実施形態１における複合機側（設定値ＤＢ内）のアクセス権データの説明図である。
【図５】実施形態１における複合機側（揮発性メモリ内）のアクセス権データの説明図である。
【図６】実施形態１におけるマスターＤＢ内のアクセス権データの説明図である。
【図７】実施形態１におけるユーザ管理データと機器管理データの説明図である。
【図８】実施形態１におけるログイン処理のフローチャートである。
【図９】実施形態１におけるマスターＤＢ更新処理のフローチャートである。
【図１０】実施形態１における複合機側のデータ同期処理のフローチャートである。
【図１１】実施形態１における複合機側の第１の同期処理および第２の同期処理のフローチャートである。
【図１２】実施形態１におけるマスターＤＢ内のアクセス権データの説明図である。
【図１３】実施形態１における第１の同期処理のための同期データ取得要求の説明図である。
【図１４】実施形態１における複合機側の揮発性メモリ内および設定値ＤＢ内のアクセス権データの説明図である。
【図１５】実施形態１における第２の同期処理のための同期データ取得要求の説明図である。
【図１６】実施形態１における複合機側の揮発性メモリ内および設定値ＤＢ内のアクセス権データの説明図である。
【図１７】実施形態１におけるマスターＤＢ側の同期処理のフローチャートである。
【図１８】本実施形態の機器設定値管理システムに用いるコンピュータシステムの構成図である。
【図１９】実施形態１における複合機側およびマスターＤＢ側の処理の流れおよびデータの変遷の全体像を示す図である。
【図２０】実施形態１における複合機側の第１の同期処理および第２の同期処理のフローチャートである。
【図２１】実施形態１における複合機側およびマスターＤＢ側の処理の流れおよびデータの変遷の全体像を示す図である。
【図２２】実施形態２、ケース１における複合機側のデータ同期処理のフローチャートである。
【図２３】実施形態２、ケース１における複合機側のデータ同期処理のフローチャートである。
【図２４】実施形態２、ケース２における複合機側のデータ同期処理のフローチャートである。
【図２５】実施形態２、ケース２における複合機側のデータ同期処理のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図を参照しながら本発明を実施する形態を説明する。
＜実施形態１＞
本発明の第１の実施形態である機器設定値管理システムについて説明する。
図１は本システムの構成の説明図である。
本システムでは複合機１０１を設定値管理の対象機器とする。複合機には機器データベース（以下、機器ＤＢ）１０２が搭載されており、印刷設定やユーザ管理情報など各種の設定値データを格納する。機器ＤＢに格納されている設定値データは、複合機のアプリケーションを利用してユーザが変更することが可能である。設定値管理サーバ１０３は複合機の設定値を集中管理するサーバで、マスターデータベース（以下、マスターＤＢ）１０５を有し、ネットワーク１０４を介して複数の複合機と接続される。
【００１１】
マスターＤＢ１０５は、本システムの管理対象とする全ての複合機の設定値を保管するデータベースである。本システムは、マスターＤＢを同期元データベースとし、機器ＤＢ１０２を同期先データベースとする。すなわち、マスターＤＢ１０５に保管されている設定値が設定値管理サーバ１０３から各複合機１０１へと配信され、機器データベース１０２に格納される。管理者端末１０６は、システム管理者がマスターＤＢ１０５に格納している設定値を管理するための端末である。
引き続いて、図とフローチャートを用いて、本システムにおけるデータ同期処理を詳しく述べる。
【００１２】
図２は本システムで用いる複合機１０１のモジュール構成図である。操作部２０１は、複合機を利用するユーザに対して操作パネルやデータ表示などのユーザインタフェースを提供する。ユーザ管理部２０２は、本システムの複合機を利用するユーザを管理する。本システムでは、複合機を使用するユーザはログイン処理を行うものとのする。アプリケーション管理部２０３は、複合機に搭載されているアプリケーションの実行を制御するモジュールである。
ここで、アプリケーションには、複合機にログインしているユーザが利用するものや、ログインしているユーザとは独立にバックエンドで実行されるものが含まれる。
【００１３】
設定値管理部２０４は、複合機の動作を制御するための設定値を管理するモジュールである。アプリケーション管理部と接続して、実行するアプケーションに設定値を提供する。本実施形態では、説明を簡単にするためユーザのアクセス権データのみを設定値として扱う。同期処理管理部２０５は、マスターＤＢ１０５と設定値データベース２０６の間でデータ同期処理を実行するモジュールである。
同期処理管理部２０５は通信部２０８を介して設定値管理サーバ１０３に接続し、マスターＤＢ１０５から設定値を取得して揮発性メモリ２０７および設定値データベース２０６に格納されている設定値データを更新する。
【００１４】
設定値データベース２０６は、複合機１０１の設定値が登録されているデータベースである。揮発性メモリ２０７は実行中のアプリケーションが利用する設定値データを設定値データベース２０６から読み込んでおくためのキャッシュメモリである。記憶装置２０９は設定値データベースを保管する不揮発性メモリである。なお、複合機１０１にはこの他にも印刷やスキャン等を行うためのモジュールが含まれるが、本発明とは直接関係しないため説明は省略する。
【００１５】
図３（ａ）は設定値データベース２０６に格納される設定値データのテーブル構成図である。前述の通り、本実施形態では説明を簡単にするためアクセス権データのみを扱う。ユーザ識別子３０１は複合機１０１にログインするユーザの識別子である。アプリケーション識別子３０２は複合機１０１に搭載されているアプリケーションの識別子である。ユーザ権限３０３は、アプリケーション識別子３０２で特定されるアプリケーションに対するユーザの実行権限を規定するデータである。
本システムでは実行権限として「アクセス不可（０）」「一般ユーザ（１）」「特権ユーザ（２）」「管理者（４）」の４つの権限を用いる。なお、本システムではアプリケーションに対するユーザの実行権限を制御する場合を例に説明するが、本発明を実施可能な形態はこれに限定されるものではない。
【００１６】
図３（ｂ）はマスターＤＢ１０５に格納される設定値データのテーブル構成図である。ここでも、説明を簡単にするためアクセス権データのみを扱う。ユーザ識別子３１１はシステムに登録されているユーザの識別子である。アプリケーション識別子３１２は複合機１０１に搭載されているアプリケーションの識別子である。ユーザ権限３１３は、アプリケーション識別子で特定されるアプリケーションに対するユーザの実行権限を規定するデータである。トランザクションＩＤ３１４は、当該データを最後に更新したトランザクションを特定する識別子である。
【００１７】
図４は設定値データベース２０６に格納されているアクセス権データの例である。この図では、“Ｕｓｅｒ００１”〜“Ｕｓｅｒ００３”の３ユーザ分のアクセス権データが登録されている状態を示している。
図６はマスターＤＢ１０５に格納されているアクセス権データの例である。ここでは、３ユーザ分のアクセス権データが登録されている状態を示す。また、図４に示す設定値データベース２０６内のアクセス権データと同期が取れている状態とする。
【００１８】
図７（ａ）はユーザ管理データ７０１、図７（ｂ）は機器管理データ７１０の構成図である。それぞれ、システムに登録されている全ユーザのユーザ識別子７０２〜７０５と、システムに登録されている全複合機の機器識別子７１１〜７１３が登録されている状態を示す。本実施形態の説明においては、機器識別子にはＩＰアドレスを用いるものとのする。また、ユーザ管理データと機器管理データは、予めマスターＤＢ１０５と設定値データベース２０６に同じものが保管されているものとする。
【００１９】
図１８は、本実施形態の機器設定値管理システムに用いるコンピュータシステムの構成図である。ＣＰＵ１８０１は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）および各種アプリケーションプログラムを実行し、コンピュータ装置各部の制御を行う。ＲＯＭ１８０２は、ＣＰＵ１８０１が実行するプログラムや演算用のパラメタのうちの固定的なデータを格納する。ＲＡＭ１８０３は、ＣＰＵ１８０１の作業領域やデータの一時記憶領域を提供する。ＲＯＭ１８０２およびＲＡＭ１８０３は、バス１８０４を介してＣＰＵ１８０１に接続される。
キーボードなどの入力装置１８０５や、ＣＲＴ、液晶ディスプレイなどの表示装置１８０６や、ハードディスク装置、ＭＯドライブ、ＣＤ−ＲＯＭドライブ等の外部記憶装置１８０７は、インタフェース１８０８を介してバス１８０４に接続されている。また、バス１８０４は通信部１８０９を介してネットワークと接続される。
【００２０】
引き続いて、本実施形態におけるデータ同期処理について図８〜図１７の説明図ならびにフローチャートを参照して詳しく説明する。
図８は、ユーザが複合機１０１にログインしてからアプリケーションを起動するまでの処理を示すフローチャートである。まず、ユーザが操作部２０１に対しユーザ識別子（ここでは“Ｕｓｅｒ００１”）を指定してログイン処理を実行する（Ｓ８０１）。操作部はユーザ管理部２０２に対し、指定されたユーザ識別子の認証を依頼する（Ｓ８０２）。ユーザ管理部はユーザ管理データ７０１に登録されているユーザ識別子を参照する。
ここでは７０２に当該ユーザ識別子が登録されているのでユーザのログインを承認する（Ｓ８０３）。ログインが承認されたら、設定値管理部２０４がログインしたユーザに関する設定値を揮発性メモリ２０７に読み込む（Ｓ８０４）。設定値管理部はユーザ識別子を検索条件にして設定値データベース２０６を検索し、当該ユーザに関するアクセス権データ（４０１、４０２）を取得して揮発性メモリ２０７に格納する。
図５に揮発性メモリ２０７に格納されているアクセス権データの状態を示す。“Ｕｓｅｒ００１”に対応する２件のアクセス権データ（５０１、５０２）が格納されている。
【００２１】
次に、ユーザが操作部を介してアプリケーションの起動を指示する（Ｓ８０５）。操作部はユーザから指定されたアプリケーション識別子（ここでは“１００１”）をアプリケーション管理部２０３に引き渡してアプリケーションの起動を指示する（Ｓ８０６）。アプリケーション管理部は揮発性メモリに格納されているアクセス権データを参照し、ユーザにアプリケーションの実行権限が付与されているかを検証する（Ｓ８０７）。
ここでは、アクセス権データ５０１によりユーザ“Ｕｓｅｒ００１”はアプリケーション“１００１”に対し管理者（４）の権限が付与されているため、アプリケーション管理部は指定されたアプリケーションを起動する（Ｓ８０８）。これ以降、ユーザがアプリケーションを操作する度に、アクセス権データ５０１を参照してアプリケーションの操作に対する実行権限が検証される。ユーザ“Ｕｓｅｒ００１”は管理者（４）の権限が付与されているため任意の操作を実行可能な状態である。
ログインおよびアプリケーション起動処理の説明は以上である。
【００２２】
続いてマスターＤＢ１０５の設定値変更処理の説明を行う。
図９は、マスターＤＢに対する設定値変更処理を示すフローチャートである。
ここでは、アプリケーション“１００１”に対する全ユーザの実行権限を一般ユーザ（１）に変更する場合を例に説明する。まず、システム管理者が管理者端末１０６を介してマスターＤＢに接続し、設定値データの変更を指示する（Ｓ９０１）。マスターＤＢはトランザクションＩＤを発行し（Ｓ９０２）、更新トランザクションを開始する（Ｓ９０３）。次いでアプリケーション識別子（“１００１”）を検索条件にマスターＤＢを検索して条件に合致するデータ（６０１、６０３、６０６）を特定し、当該データのユーザ権限３１３の値を“１”に設定する。
さらにトランザクションＩＤ３１４にＳ９０２で発行したトランザクションＩＤ（ここでは“１１”）を設定してマスターＤＢ１０５を更新する（Ｓ９０４）。全てのデータを更新したらトランザクションをコミットして終了する（Ｓ９０５）。
図１２に更新後のマスターＤＢ１０５のアクセス権データの状態を示す。アプリケーション“１００１”に対応する１２０１、１２０３、１２０６の各データのユーザ権限とトランザクションＩＤが変更されている。
マスターＤＢ１０５の更新処理が完了したら、設定値管理サーバ１０３は設定値データの更新を全機器に通知する。まず機器管理データ７１０に登録されている機器識別子７１１〜７１３を取得する（Ｓ９０６）。次に、取得した機器識別子のＩＰアドレスが示す複合機１０１の通信部２０８とネットワーク１０４を介して接続し、同期要請通知を送信する（Ｓ９０７）。同期要請通知では、Ｓ９０２で発行したトランザクションＩＤを送信する。
マスターＤＢに対する設定値変更処理の説明は以上である。
【００２３】
引き続き、図１０、図１１のフローチャートを参照して複合機側のデータ同期処理を説明する。
通信部２０８が設定値管理サーバ１０３から同期要請通知を受信したら（Ｓ１００１）、同期処理管理部２０５に同期実行を依頼する（Ｓ１００２）。依頼を受けた同期実行管理部は、最初に揮発性メモリ２０７に格納されている設定値を同期する第１の同期処理を実行する（Ｓ１００３）。
【００２４】
まずユーザ管理部２０２にログイン中のユーザを問い合わせる（Ｓ１１１０）。ここでは“Ｕｓｅｒ００１”がログイン中である。次に、アプリケーション管理部２０３に、実行中のアプリケーションを問い合わせる（Ｓ１１１１）。ここではアプリケーション“１００１”が実行中である。
次に、設定値管理部２０４に、アプリケーション“１００１”が利用している設定値を問い合わせる（Ｓ１１１２）。ここではアクセス権データ５０１が揮発性メモリ２０７に格納されて利用中である。以上の情報を取得したら、同期処理管理部２０５は通信部２０８を介して設定値管理サーバ１０３に同期データ取得要求を送信する（Ｓ１１１３）。
【００２５】
図１３に同期データ取得要求のデータ構成を示す。同期対象のデータを指定するため、同期要請通知で受信したトランザクションＩＤ１３０１、アプリケーション識別子１３０２、ユーザ識別子１３０３を含む。同期データ取得要求を受信した設定値管理サーバでの処理は後述するとして、ここでは複合機上での処理の説明を続ける。通信部が同期データ取得要求への応答として設定値管理サーバから同期データを受信する（Ｓ１１１４）。
ここでは、図１２に示した更新後の設定値データのうち、同期データ取得要求で指定した識別子（“Ｕｓｅｒ００１”、“１００１”）に該当するデータ１２０１が受信される。同期データを受信したら、これを同期処理管理部２０５に引き渡して同期実行を指示する（Ｓ１１１５）。同期処理管理部２０５は、取得した同期データを用いて揮発性メモリ２０７中のデータを書き換える（Ｓ１１１６）。ここではＳ８０４で揮発性メモリ２０７に格納したアクセス権データのうち、アプリケーション“１００１”に該当する５０１だけを同期データの内容で書き換える。
【００２６】
図１４（ａ）に、第１の同期処理の実行後に揮発性メモリ２０７に格納されているアクセス権データの状態を示す。また図１４（ｂ）に、第１の同期処理の実行後に設定値データベース２０６に格納されているアクセス権データの状態を示す。
揮発性メモリ２０７中のアクセス権データではアプリケーション“１００１”に対するユーザ権限が同期処理により“１”に変更されている（１４０１）。一方、設定値データベース２０６中のアクセス権データはいずれも同期処理前の状態から変更が無い。
この状態でユーザがアプリケーションを操作すると、アクセス権データ１４０１が参照され、ユーザ権限（１）に許可されている操作のみ実行可能となる。すなわち、マスターＤＢ上での設定値更新がユーザのアプリケーション操作に反映されたことになる。
第１の同期処理が完了したら、引き続いて第２の同期処理を実行する（Ｓ１００４）。同期処理管理部は、全ての同期データを取得するために設定値管理サーバに同期データ取得要求を送信する（Ｓ１１２０）。
【００２７】
図１５に同期データ取得要求のデータ構成を示す。トランザクションＩＤ１３０１は第１の同期処理の時と同じ値である。その他の項目は全て空とすることで、同トランザクションＩＤで特定されるトランザクション内で更新された全データの取得を要求する。第１の同期処理と同様、通信部２０８が同期データ取得要求への応答として設定値管理サーバ１０３から同期データを受信し（Ｓ１１２１）、これを同期処理管理部２０５に引き渡して同期実行を指示する（Ｓ１１２２）。次に、同期処理管理部は取得した同期データを用いて設定値データベース２０６のデータを更新する（Ｓ１１２３）。
【００２８】
図１６に、第２の同期処理を実行した後のアクセス権データの状態を示す。この段階では、マスターＤＢ１０５上のアクセス権データ（図１２）と揮発性メモリ２０７中のアクセス権データ（図１６（ａ））と設定値データベース２０６中のアクセス権データ（図１６（ｂ））の全てに対し整合性が保たれた状態となる。
複合機側の同期処理の説明は以上である。
【００２９】
引き続き、図１７のフローチャートを参照して、設定値管理サーバ１０３側の同期データ送信処理について説明する。
設定値管理サーバ１０３は、Ｓ１１１３およびＳ１１２０で送信された同期データ取得要求を受信したら（Ｓ１７０１）、同期データ取得要求からトランザクションＩＤ１３０１を抽出する（Ｓ１７０２）。次に、トランザクションＩＤを検索条件にマスターＤＢ１０５を検索して同トランザクション内で更新されたデータを全て取得する（Ｓ１７０３）。ここでは図１２中の１２０１、１２０３、１２０６の３件が取得される。
続いて、同期データ取得要求からアプリケーション識別子、ユーザ識別子を抽出する（Ｓ１７０４）。これら２つの値が指定されていた場合（Ｓ１７０５）は、Ｓ１７０３で取得したデータのうち、指定に合致するデータを抽出して（Ｓ１７０６）、Ｓ９０６〜Ｓ９０７と同様の手順で複合機１０１に送信する（Ｓ１７０７）。一方、指定が無かった場合はトランザクション内の全更新データの送信を行うため、Ｓ１７０３で取得した全データを抽出し（Ｓ１７０８）、同じく複合機１０１に送信する（Ｓ１７０７）。
設定値管理サーバ側の同期データ送信処理の説明は以上である。
図１９に上記の説明をまとめた実施形態１における複合機側およびマスターＤＢ側の処理の流れおよびデータの変遷の全体像を示す。
【００３０】
以上の説明では、第２の同期処理を実行する際にマスターＤＢで更新された全データを取得するものとしている。
しかし、第１の同期処理を実行する際にマスターＤＢで更新された同一トランザクションに関する全てのデータを取得し、取得した全てのデータを記憶装置に記憶し、記憶したデータを第２の同期処理を実行する際に利用するとしてもよい。
図２０に、この場合の複合機側（ユーザ側）の第１の同期処理および第２の同期処理のフローチャートである。
図２１に、この場合のシステム全体の処理の流れおよびデータの変遷の概要を示す。
第１の同期処理を実行した際に取得したデータを再利用することによって、第２の同期処理を実行する際には再取得しない（設定値管理サーバ１０３に再びアクセスしない）ようにすることが可能である。
【００３１】
また、以上の説明では、第１の同期処理の実行後に第２の同期処理を続けて実行するものとしているが、第２の同期処理を実行するタイミングはこの形態に限定されるものではない。例えばアプリケーションから指示されるまで実行を遅らせる形態や、あるいは第１の同期処理と並列実行する形態によっても本発明は実施可能である。
また、以上の説明では、第２の同期処理の対象となった設定値が揮発性メモリ中に格納されていない場合について説明した。第２の同期処理の対象となった設定値が揮発性メモリ中に格納されている場合には、第２の同期処理において揮発性メモリ中の設定値にも同期処理を施すことは言うまでもない。
【００３２】
実施形態１における機器設定値管理システムの説明は以上である。
以上述べたように、本発明を実施する機器設定値管理システムは、揮発性メモリ内の設定値を同期する第１の同期処理と、データベース内の設定値を同期する第２の同期処理を用いることで、ユーザへの応答性とデータの整合性を両立することが可能である。より具体的には、揮発性メモリ内の使用中の設定値のみ高速に同期する手段を用いることで、同期処理のためにユーザのアプケーション操作が阻害されることを回避し、応答性能の劣化を抑制できる。また、第２の同期処理を行うことでマスターＤＢと機器ＤＢの間のデータの整合性が確保されるため、データ利用時の安全性を改善することができる。
【００３３】
＜実施形態２＞
引き続いて第２の実施形態について説明する。
本実施形態は、実施形態１において第１の同期処理の実行後に発生し得るデータ不整合状態を回避する手段に関する。
実施形態１の説明で述べた通り、本発明の第２の同期処理を実行するタイミングは任意であるため、第１の同期処理のみが実行された状態（図１４に示す設定値の状態）が許容される。その状態（揮発性メモリに関する同期処理は実行されたが、設定値ＤＢに関する同期処理は実行されていない状態）で複合機側の設定値が更新されると不整合状態が発生する。
以下に、不整合状態を回避する手段を備えた実施形態を説明する。なお、本実施形態の説明では、図１４に示す状態を複合機側の設定値の初期状態とする。
【００３４】
◆ケース１
複合機上で実行中のアプリケーションが、揮発性メモリ中の同期された設定値１４０１を更新するケースである。
この場合、マスターＤＢ側でトランザクション処理された設定値（１２０１、１２０３、１２０６）の一部のみが、複合機側で更新されることになるため、データのトランザクション整合性が維持されなくなる。トランザクション整合性を維持するためには、設定値１２０３と１２０６に対応する複合機側の設定値４０３と４０６を同期する必要がある。
そこで、本実施形態の同期処理管理部は、図１４の状態に入ったら設定値１４０１に対する更新要求を監視し（図２２、Ｓ２２０１）、更新要求が発生したら直ちに第２の同期処理を実行する（Ｓ２２０２）。
そして、設定値４０３と４０６と１４０１のトランザクション整合性を保証した後（第２の同期処理を完了した後）に、設定値１４０１の更新を実行する（Ｓ２２０３）。以上の手順を踏むことにより、トランザクション整合性が維持される。
【００３５】
また、ケース１に対する別の実施形態における同期処理管理部は、図１４の状態に入ったら設定値１４０１に対する更新要求を監視し（図２３、Ｓ２３０１）、設定値１４０１に対する更新要求が発生したら直ちに更新を実行する（Ｓ２３０２）。設定値１４０１が更新されたら設定値４０３および４０６に対するアクセス要求の監視を開始する（Ｓ２３０３）。
そして、複合機上の任意のアプリケーションが設定値４０３または４０６へのアクセス要求を生じさせたら、同期処理管理部は直ちに第２の同期処理を実行する（Ｓ２３０４）。同期処理管理部は第２の同期処理を完了した後に、設定値ＤＢ中の同期された設定値へのアクセスを許可する（Ｓ２３０５）。これにより、トランザクション整合性を維持する。
【００３６】
この実施形態によれば、トランザクション整合性が維持できなくなるまでは第２の同期処理を実行する必要が無く、さらに実行中のアプリケーションが揮発性メモリ中の設定値を更新することも可能であるため、データの可用性向上に効果がある。
以上の手順を実行するため、本実施形態の複合機は、図２に示すモジュール構成に加えて、マスターＤＢ側でトランザクション処理された一連の設定値のリストを取得する手段と、当該リストに含まれる設定値を設定値データベース内で特定する手段とを備える。そして、前記のように、同期処理管理部は、前記特定する手段によって特定される設定値のいずれかに対する更新要求およびアクセス要求を監視し、これら要求が発生したら第２の同期処理を実行する。
【００３７】
◆ケース２
複合機上で実行される別のアプリケーションが、設定値データベース上の同期されていない設定値４０１にアクセスするケースである。
この場合、揮発性メモリ中の同期された設定値１４０１を利用するアプリケーションとの間で、参照する設定値の値に不整合が生じる。そこで、本実施形態の同期処理管理部は、図１４の状態に入ったら設定値４０１に対するアクセス要求を監視し（図２４、Ｓ２４０１）、アクセス要求が発生したら直ちに第２の同期処理を実行する（Ｓ２４０２）。
これにより、揮発性メモリ中の設定値と設定値データベース上のデータの不整合が解消され、複数のアプリケーション間で異なる設定値を利用する不整合の発生を回避することができる。
【００３８】
また、ケース２に対する別の実施形態における同期処理管理部は、設定値４０１への別のアプリケーション（第２のアプリケーション）からのアクセス要求を監視する（図２５、Ｓ２５０１）。
設定値４０１は、第２の同期処理で同期されるデータであって、かつ第１の同期処理で同期されたデータ（すなわち、設定値１２０１）に対応するデータである。
同期処理管理部は、設定値４０１に対する第２のアプリケーションからのアクセス要求が発生したら、第２のアプリケーション用に揮発性メモリを確保し、そこに設定値１４０１を複製し、第２のアプリケーションにアクセスさせる（Ｓ２５０２）。
その上で、さらに不整合を生じさせるような更新処理が設定値１４０１（以下、「複製元データ」とも記載する）またはその複製データに対して行われるかを監視する（Ｓ２５０３）。そして、不整合を生じさせるような更新処理が行われる場合に第２の同期処理を実行する（Ｓ２５０４）。
これにより、第２の同期処理の実行が抑制されるため、応答性能が向上する。また、揮発性メモリ内の設定値を複製して再利用するので設定値データベースを部分的に更新する必要もなく、トランザクション整合性も維持される。
以上の手順を実行するため、本実施形態の複合機は、図２に示すモジュール構成に加えて、リストを取得する手段と、当該リストに含まれる設定値を設定値データベース内で特定する手段と、揮発性メモリ内の設定値を複製する手段とを有する。リストを取得する手段は、マスターＤＢ側でトランザクション処理された一連の設定値の、リストを取得する。
【００３９】
◆ケース３
複合機上で実行される別のアプリケーションが、設定値データベース上の同期されていない設定値４０３または４０６にアクセスするケースである。これらの設定値と揮発性メモリ中の同期された設定値１４０１とは、マスターＤＢ上でトランザクション処理されたものである。したがって、トランザクション整合性の観点から、同期後の設定値を利用するアプリケーションと同期前の設定値を利用するアプリケーションが混在する状態は回避する必要がある。
【００４０】
そこで、本実施形態の同期処理管理部は、第１の同期処理で更新した設定値と同一トランザクションで処理すべき設定値（設定値データベース上の設定値）へのアクセス要求を監視する（図２４、Ｓ２４０１）。そして、アクセス要求が発生したら直ちに第２の同期処理を実行する（Ｓ２４０２）。
これにより、複数のアプリケーション間でトランザクション完了状態の異なる設定値を参照する不整合の発生を回避することができる。
以上の手順を実行するため、本実施形態の複合機は、図２に示すモジュール構成に加えて、マスターＤＢ側でトランザクション処理された一連の設定値のリストを取得する手段と、当該リストに含まれる設定値を設定値データベース内で特定する手段を備える。
【００４１】
＜実施形態３＞
続いて第３の実施形態の説明を行う。
前述の実施形態では、複合機の設定値データベース内に設定値が格納されている状態でデータ同期処理を実行する場合を説明した。
本実施形態は、複合機側に設定値が格納されていない状態でデータ同期処理を実行するものである。本実施形態のモジュール構成は基本的に実施形態１に準じるため説明は省略する。
以下に、本実施形態のデータ同期処理の手順を説明する。
【００４２】
まず、Ｓ８０１〜Ｓ８０３と同じ手順に従ってユーザが複合機にログインする。次に設定値管理部がユーザの設定値を設定値データベースから検索する。ここでは設定値が格納されていないことを前提としているため、この検索では設定値が取得されない。設定値が取得されなかったら、設定値管理部は同期処理管理部に第１の同期処理の実行を依頼する。同期処理管理部は設定値管理サーバに同期データ取得要求を送信する。ここでの同期データ取得要求のデータ構成は、ユーザ識別子１３０３だけが格納されたものである。
【００４３】
これにより、指定されたユーザに関する設定値を一括して取得することになる。続いて、設定値管理サーバから同期データを取得した同期処理管理部は、Ｓ８０４と同様の手順で設定値を揮発性メモリに読み込む。これ以降の手順は実施形態１と同じなので説明は省略する
以上のように、本実施形態の設定値管理システムは、複合機に設定値が格納されていなかった場合に第１の同期処理を実行することで、ユーザの設定値を速やかに利用可能な状態にすることが可能である。この実施形態は、例えば複合機に初めてログインするユーザの設定値をマスターＤＢから取得するような場合に適用すると、特に効果がある。
【００４４】
＜実施形態４＞
続いて第４の実施形態の説明を行う。
実施形態１では、設定値管理サーバから同期要請通知を受信してから第１の同期処理を実行する場合を説明した。
本実施形態は、複合機側から第１の同期処理を起動するものである。本実施形態のモジュール構成は基本的に実施形態１に準じるため説明は省略する。
以下に、本実施形態のデータ同期処理の手順を説明する。
【００４５】
まず、Ｓ８０１〜Ｓ８０８と同じ手順に従ってユーザが複合機にログインして設定値を揮発性メモリに格納し、アプリケーションを起動する。
次に、複合機の同期処理管理部が第１の同期処理を実行する。つまり、設定値管理サーバ１０３に同期データ取得要求を送信する。ここでの同期データ取得要求のデータ構成は、アプリケーション識別子１３０２とユーザ識別子１３０３が含まれる。これにより、マスターＤＢ上に格納されている当該アプリケーションに関する最新状態の設定値が取得される。同期データ取得後の処理は実施形態１と同様のため説明は省略する。
【００４６】
なお、本実施形態で同期処理を実行するタイミングは、アプリケーションを起動する前のＳ８０４の直後としても良い。その場合、同期データ取得要求のデータ構成はユーザ識別子１３０３だけが含まれ、マスターＤＢ上に格納されている当該ユーザに関する最新状態の設定値が一括で取得される。
この実施形態は、ログイン時にマスターＤＢとの同期を実行するようなシステムに適用すると効果がある。複合機内に格納されている設定値を利用してログイン処理を速やかに実行することが可能であるため、特に、通信環境の性能や安定性に問題がある環境においてログイン処理の応答性能を向上させることに効果的である。
【００４７】
＜実施形態５＞
引き続いて、第５の実施形態の説明を行う。
本実施形態は、設定値データベースの排他制御に関する。
前述の実施形態では第１の同期処理を先に実行する方法について説明したが、本実施形態はデータの整合性保証を優先するため第２の同期処理を先に実行する。本実施形態の同期処理管理部は、第２の同期処理の実行において、設定値データベースに格納されている設定値がアプリケーションによって排他制御されていて更新できなければ、当該設定値を揮発性メモリに格納し、設定値データベースは更新しない。そして、アプリケーションによる排他制御が解除されたら、揮発性メモリ内の設定値を用いて設定値データベースを更新する。
【００４８】
＜実施形態６＞
本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）がプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４９】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、プログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる場合も含まれる。メモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【００５０】
２０１  操作部
２０２  ユーザ管理部
２０３  アプリケーション管理部
２０４  設定値管理部
２０５  同期処理管理部
２０６  設定値データベース（設定値ＤＢ）
２０７  揮発性メモリ
２０８  通信部
２０９  記憶装置
【図１】
2015072542.tif 000003
【図２】
2015072542.tif 000004
【図３】
2015072542.tif 000005
【図４】
2015072542.tif 000006
【図５】
2015072542.tif 000007
【図６】
2015072542.tif 000008
【図７】
2015072542.tif 000009
【図８】
2015072542.tif 000010
【図９】
2015072542.tif 000011
【図１０】
2015072542.tif 000012
【図１１】
2015072542.tif 000013
【図１２】
2015072542.tif 000014
【図１３】
2015072542.tif 000015
【図１４】
2015072542.tif 000016
【図１５】
2015072542.tif 000017
【図１６】
2015072542.tif 000018
【図１７】
2015072542.tif 000019
【図１８】
2015072542.tif 000020
【図１９】
2015072542.tif 000021
【図２０】
2015072542.tif 000022
【図２１】
2015072542.tif 000023
【図２２】
2015072542.tif 000024
【図２３】
2015072542.tif 000025
【図２４】
2015072542.tif 000026
【図２５】
2015072542.tif 000027