JP2018073283A - システム、サーバー装置、クライアント装置、情報処理方法及びプログラム - Google Patents
システム、サーバー装置、クライアント装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2018073283A JP2018073283A JP2016215286A JP2016215286A JP2018073283A JP 2018073283 A JP2018073283 A JP 2018073283A JP 2016215286 A JP2016215286 A JP 2016215286A JP 2016215286 A JP2016215286 A JP 2016215286A JP 2018073283 A JP2018073283 A JP 2018073283A
- Authority
- JP
- Japan
- Prior art keywords
- time correction
- time
- client device
- processing
- data
- 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
Links
Images
Landscapes
- Electric Clocks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】HDDを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにする。【解決手段】サーバー装置は、時刻補正要否情報に基づきクライアント装置の時刻の補正を行うか否かを判定する判定手段と、判定手段によりクライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求をクライアント装置に送信する送信手段と、を有する。クライアント装置は、サーバー装置より時刻の補正要求を受信した場合、サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、時刻補正処理の終了後、同期処理を再開する制御手段と、を有する。【選択図】図8A
Description
本発明は、システム、サーバー装置、クライアント装置、情報処理方法及びプログラムに関する。
情報処理装置間でデータを同期する場合に、ネットワーク上のデータ転送量を削減するために、差分情報のみで同期を行う差分同期の方法がある。また差分同期を行っている場合にマスター(サーバー)からバックアップしたデータをリストアした場合に、リストアしたことによって消えたデータを正しく差分同期する方法がある(特許文献1)。
また、サーバーが計時する時刻(以下、サーバー時刻)とクライアントが計時する時刻(以下、クライアント時刻)との差分値である補正時間情報をサーバーが記憶して管理する方法がある(特許文献2)。
また、サーバーが計時する時刻(以下、サーバー時刻)とクライアントが計時する時刻(以下、クライアント時刻)との差分値である補正時間情報をサーバーが記憶して管理する方法がある(特許文献2)。
サーバー機能が動作する情報処理装置のHDDが故障してしまった場合には、HDDを交換後、リストアを行い再度、サーバーとして動作させることや、バックアップしておいたデータを他の情報処理装置にリストアしサーバーとして動作させることが考えられる。しかし、HDDを交換してしまった場合や、新規にサーバー機能を有効化した際には、サーバーが管理しているサーバー時刻とクライアント時刻との差分値である補正時間情報がクリアされてしまうこととなる。そのため、クライアントからの要求に含まれる時刻をサーバーが管理する時刻へと正しく変換することができなくなり、各クライアントから更新要求の順序を保証できずに、後から更新されたデータ値よりも前の値がデータベースに反映されてしまう可能性がある。
本発明は、HDDを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにすることを目的とする。
本発明は、HDDを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにすることを目的とする。
本発明は、サーバー装置とクライアント装置とでデータの同期処理を行うシステムであって、前記サーバー装置は、時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、を有し、前記クライアント装置は、前記サーバー装置より前記時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、を有する。
本発明によれば、HDDを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにすることができる。
以下、本発明の実施形態について図面に基づいて説明する。
図1は、差分同期システムのシステム構成の一例を示す図である。データの差分同期を行うデジタル複合機110a、デジタル複合機110b、サーバーPC120a、データのバックアップ先としてサーバーPC120bがネットワーク100を介して通信可能に接続されているシステムである。差分同期システムのサーバーがデジタル複合機110aの場合とサーバーPC120aの場合とがあるが、それぞれサーバーはデジタル複合機110aであってもサーバーPC120aであってもよく、何れかの装置で動作していればよい。デジタル複合機は、画像形成装置の一例である。
図2は、デジタル複合機110のハードウェア構成の一例を示す図である。デジタル複合機110は、コントローラユニット200、操作部220、スキャナ230、プリンタ240を含んでいる。コントローラユニット200には、操作部220が接続されると共に、画像入力デバイスであるスキャナ230や画像出力デバイスであるプリンタ240が接続される。
コントローラユニット200は、より具体的には、CPU(Central Processing Unit)202を有する。CPU202は、ROM(Read Only Memory)206に格納されているブートプログラムによりOS(Operating System)を立ち上げる。コントローラユニット200は、このOS上で、HDD(Hard Disk Drive)205に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このCPU202の作業領域としてはRAM(Random Access Memory)203が用いられる。HDD205は、アプリケーションプログラムや各種データを格納する。
CPU202には、システムバス210を介して、ROM206及びRAM203と共に、操作部I/F201、デバイスI/F204、Network I/F207、画像処理部208が接続される。
操作部I/F201は、タッチパネルを有する操作部220とのインタフェースである。操作部I/F201は、操作部220に表示する各種データ等の情報を送出したり、ユーザーにより入力された情報をCPU202に送出したりする。デバイスI/F204には、スキャナ230及びプリンタ240が接続され、データや制御信号の入出力が行われる。Network I/F207は、ネットワーク100に接続され、ネットワーク100を介してネットワーク100上の各装置との間で情報の入出力を行う。画像処理部208は、スキャナからの入力画像処理やプリンタへの出力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換等の処理を行う。
コントローラユニット200は、より具体的には、CPU(Central Processing Unit)202を有する。CPU202は、ROM(Read Only Memory)206に格納されているブートプログラムによりOS(Operating System)を立ち上げる。コントローラユニット200は、このOS上で、HDD(Hard Disk Drive)205に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このCPU202の作業領域としてはRAM(Random Access Memory)203が用いられる。HDD205は、アプリケーションプログラムや各種データを格納する。
CPU202には、システムバス210を介して、ROM206及びRAM203と共に、操作部I/F201、デバイスI/F204、Network I/F207、画像処理部208が接続される。
操作部I/F201は、タッチパネルを有する操作部220とのインタフェースである。操作部I/F201は、操作部220に表示する各種データ等の情報を送出したり、ユーザーにより入力された情報をCPU202に送出したりする。デバイスI/F204には、スキャナ230及びプリンタ240が接続され、データや制御信号の入出力が行われる。Network I/F207は、ネットワーク100に接続され、ネットワーク100を介してネットワーク100上の各装置との間で情報の入出力を行う。画像処理部208は、スキャナからの入力画像処理やプリンタへの出力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換等の処理を行う。
図3は、サーバーPC120のハードウェア構成の一例を示す図である。CPU301は、サーバーの演算・制御を司る。RAM302は、CPU301の主メモリとして、及び実行プログラムの領域やプログラムの実行エリアならびにデータエリアとして機能する。ROM303は、CPU301の動作処理手順を記憶しているROMである。ROM303にはサーバーの機器制御を行うシステムプログラムである基本ソフト(OS)を記録したプログラムROMと、システムを稼働するために必要な情報等が記録されているデータROMとがある。また、ROM303の代わりに、HDD309が用いられる場合もある。Network I/F304は、ネットワーク100を介して他の装置とのデータ送受信等の通信を行う。VRAM(VideoVRAM)305は、サーバーのDisplay306の画面に表示させるための画像を展開し、その表示の制御を行う。Display306は、ディスプレイ等の表示装置(Display)である。KBC307は、外部入力装置(KB)308からの入力信号を制御するためのコントローラ(KBC)である。KB308は、利用者が行う操作を受け付けるための外部入力装置(KB)であり、例えばキーボードやマウス等のポインティングデバイスが用いられる。HDD309は、ハードディスクドライブ(HDD)であり、アプリケーションプログラムや各種データ保存用に用いられる。バス300は、上述した各ユニット間を接続するための伝送バス(アドレスバス、データバス、入出力バス、及び制御バス)である。
<実施形態1>
実施形態1では、デジタル複合機110a上でデータ同期サーバーアプリケーション400が動作し、デジタル複合機110a及びデジタル複合機110b上でデータ同期クライアントアプリケーション500が動作する構成で説明する。データ同期サーバーアプリケーション400は、以下、単にサーバーアプリケーション400という。また、データ同期クライアントアプリケーション500は、以下、単にクライアントアプリケーション500という。サーバーアプリケーション400が動作する装置は、サーバー装置の一例である。また、クライアントアプリケーション500が動作する装置は、クライアント装置の一例である。
本実施形態の構成ではデジタル複合機110aのCPU202がROM206又はHDD205に記憶されたサーバーアプリケーション400のプログラムを実行することにより、サーバーアプリケーション400の機能が実現される。また、デジタル複合機110aのCPU202がROM206又はHDD205に記憶されたクライアントアプリケーション500のプログラムを実行することにより、クライアントアプリケーション500の機能が実現される。また、デジタル複合機110bのCPU202がROM206又はHDD205に記憶されたクライアントアプリケーション500のプログラムを実行することにより、クライアントアプリケーション500の機能が実現される。
実施形態1では、デジタル複合機110a上でデータ同期サーバーアプリケーション400が動作し、デジタル複合機110a及びデジタル複合機110b上でデータ同期クライアントアプリケーション500が動作する構成で説明する。データ同期サーバーアプリケーション400は、以下、単にサーバーアプリケーション400という。また、データ同期クライアントアプリケーション500は、以下、単にクライアントアプリケーション500という。サーバーアプリケーション400が動作する装置は、サーバー装置の一例である。また、クライアントアプリケーション500が動作する装置は、クライアント装置の一例である。
本実施形態の構成ではデジタル複合機110aのCPU202がROM206又はHDD205に記憶されたサーバーアプリケーション400のプログラムを実行することにより、サーバーアプリケーション400の機能が実現される。また、デジタル複合機110aのCPU202がROM206又はHDD205に記憶されたクライアントアプリケーション500のプログラムを実行することにより、クライアントアプリケーション500の機能が実現される。また、デジタル複合機110bのCPU202がROM206又はHDD205に記憶されたクライアントアプリケーション500のプログラムを実行することにより、クライアントアプリケーション500の機能が実現される。
図4は、サーバーアプリケーション400等のソフトウェア構成の一例を示す図である。サーバーアプリケーション400は、以下の複数の処理部から構成される。通信処理部401は、デジタル複合機110b等からの処理要求を受信し、処理結果を送信する。制御部402は、処理の制御を行う。要求解析部403は、通信処理部401で受け付けた要求を解析する。バックアップ処理部404は、データベース410で保持するデータのバックアップ処理を実行する。リストア処理部405は、バックアップ処理部404が作成したバックアップデータを用いてデータベース410で保持するデータのリストア処理を実行する。データアクセス部406は、処理要求に応じてデータベース410にアクセスして、データの作成/更新/削除/参照を実行する。データベース410で保持するデータは、HDD205又はRAM203等に保存される。
図5は、クライアントアプリケーション500等のソフトウェア構成の一例を示す図である。クライアントアプリケーション500は、以下の複数の処理部から構成される。処理受付部501は、コピーやFAX等の各種アプリケーションからの処理要求、データ管理アプリケーション510からの処理要求を受信する。制御部502は、処理の制御を行う。ジョブ管理部503は、処理受付部501で受付けた要求をジョブとして管理する。通信処理部504は、Network I/F207を介してデジタル複合機110a上のサーバーアプリケーション400と通信を行う。同期情報管理部505は、差分同期に関する情報を管理する。ジョブ管理部503及び同期情報管理部505で管理する情報は、HDD205又はRAM203等に保存される。データ管理アプリケーション510は、操作部220に表示するデータを管理し、操作部220を介してユーザーから入力されたデータを保持すると共に、クライアントアプリケーション500の処理受付部501にデータ更新内容を通知する。
デジタル複合機110bで、ユーザー操作やコピー/FAX等のアプリケーション処理実行によってデータに変更が発生した場合、クライアントアプリケーション500が変更内容をサーバーアプリケーション400に送信する。また、クライアントアプリケーション500は、サーバーアプリケーション400にデータ更新があるかどうかを定期的、又は必要に応じて問い合わせる。クライアントアプリケーション500は、更新されたデータがあれば差分データとして取得して、データ管理アプリケーション510に差分データを反映する。
デジタル複合機110bで、ユーザー操作やコピー/FAX等のアプリケーション処理実行によってデータに変更が発生した場合、クライアントアプリケーション500が変更内容をサーバーアプリケーション400に送信する。また、クライアントアプリケーション500は、サーバーアプリケーション400にデータ更新があるかどうかを定期的、又は必要に応じて問い合わせる。クライアントアプリケーション500は、更新されたデータがあれば差分データとして取得して、データ管理アプリケーション510に差分データを反映する。
例えば、アドレス帳のFAX番号等のアドレスデータを、サーバーアプリケーション400が管理しているとする。アドレスデータをデジタル複合機110a、デジタル複合機110bで共に使用する場合、アドレスデータの同期処理は以下のように処理される。デジタル複合機110aでアドレスデータAが変更された場合、変更されたアドレスデータAがクライアントアプリケーション500に通知される。クライアントアプリケーション500は、デジタル複合機110a上のサーバーアプリケーション400に変更されたアドレスデータAを送信する。サーバーアプリケーション400は、受信したアドレスデータAをデータベース410に保存する。その後、デジタル複合機110bのクライアントアプリケーション500から、デジタル複合機110a上のサーバーアプリケーション400に対して更新の問い合わせが実行される。サーバーアプリケーション400は、先ほどのアドレスデータAを更新データとしてクライアントアプリケーション500に送信する。クライアントアプリケーション500は、アドレスデータAを受信したら、アドレスデータを管理するアドレス帳アプリケーションに受信したアドレスデータAを渡して、デジタル複合機110b内のデータを更新する。
同期されるデータとしてアドレスデータを例に説明したが、他のデータでも同様に処理することでデータの差分同期を実現することができる。
同期されるデータとしてアドレスデータを例に説明したが、他のデータでも同様に処理することでデータの差分同期を実現することができる。
差分同期を行う上でデジタル複合機110a上のサーバーアプリケーション400の基準となる時刻と、クライアントアプリケーション500が動作するデジタル複合機110bの時刻と、の差異を正しく補正することが必要となる。表Aを用いてサーバー側の基準時刻と、クライアントの時刻との差分を管理する方法について説明する。
クライアントアプリケーション500は、サーバーアプリケーション400に対してデジタル複合機110bの時計が変更された場合や予め定めた所定のタイミングで時刻補正の要求を行う。ここで所定のタイミングとは、サーバーアプリケーション400との同期を初めて開始する場合や、デジタル複合機110bが起動されたときや、予め定めた所定時間経過後等のタイミングである。サーバーアプリケーション400は、時刻の補正要求を受信するとデータベース410で保持するデジタル複合機110bの補正時間を更新する。例えばサーバー時刻が「2016/06/2710:00.00.00」でクライアント時刻が「2016/06/2710:00.34.254」の場合は表Aの2行目の様に「+00:00.34.254」が補正時間として算出されデータベースに保持される。
ここでその後の更新要求に含まれるクライアントの時刻が「2016/06/27 10:02.45.274」であったとする。このときサーバーアプリケーション400は、この値から補正時間を減算してサーバー時刻に変換した「2016/06/27 10:02.11.020」のリクエストとして処理することとなる。この様にすることで、クライアント間の時計に差異がある場合であっても、サーバーの基準となる時刻に変換した上で処理することで、クライアント間のリクエストの順序関係を保証している。
ここでその後の更新要求に含まれるクライアントの時刻が「2016/06/27 10:02.45.274」であったとする。このときサーバーアプリケーション400は、この値から補正時間を減算してサーバー時刻に変換した「2016/06/27 10:02.11.020」のリクエストとして処理することとなる。この様にすることで、クライアント間の時計に差異がある場合であっても、サーバーの基準となる時刻に変換した上で処理することで、クライアント間のリクエストの順序関係を保証している。
次にサーバーアプリケーション400が、データベース410の管理データのバックアップ処理を実行する際の処理を、図6のフローチャートを用いて説明する。バックアップ処理の指示は、ユーザー指示等の外部からの指示であっても、スケジュールや状態変化イベント等のデジタル複合機110内部からの指示であってもよい。
S601において、制御部402は、バックアップ実行の指示を検知したら、データアクセス部406に対してデータベース410へのアクセスを止めるように指示する。
S602において、制御部402は、バックアップ処理部404にバックアップを指示する。バックアップ処理部404は、データベース410にアクセスして、対象のファイルを特定する。
S603において、バックアップ処理部404は、対象ファイルのサイズと、バックアップ先の空き容量と、を比較して、バックアップ可能な空き容量があるかどうか判断する。ここで、バックアップ処理部404は、バックアップ先がデジタル複合機110aのHDD205の場合には、空き容量はファイルシステムに問い合わせることで把握できる。また、バックアップ処理部404は、バックアップ先がネットワーク上のストレージの場合には、ネットワーク100を介して問い合わせることで把握できる。本実施形態では、デジタル複合機110aのHDD205上にバックアップする場合を例にして、説明を行う。バックアップ処理部404は、空き容量があると判定した場合(S603においてYes)、S604に進み、空き容量がないと判定した場合(S603においてNo)、S607に進む。
S601において、制御部402は、バックアップ実行の指示を検知したら、データアクセス部406に対してデータベース410へのアクセスを止めるように指示する。
S602において、制御部402は、バックアップ処理部404にバックアップを指示する。バックアップ処理部404は、データベース410にアクセスして、対象のファイルを特定する。
S603において、バックアップ処理部404は、対象ファイルのサイズと、バックアップ先の空き容量と、を比較して、バックアップ可能な空き容量があるかどうか判断する。ここで、バックアップ処理部404は、バックアップ先がデジタル複合機110aのHDD205の場合には、空き容量はファイルシステムに問い合わせることで把握できる。また、バックアップ処理部404は、バックアップ先がネットワーク上のストレージの場合には、ネットワーク100を介して問い合わせることで把握できる。本実施形態では、デジタル複合機110aのHDD205上にバックアップする場合を例にして、説明を行う。バックアップ処理部404は、空き容量があると判定した場合(S603においてYes)、S604に進み、空き容量がないと判定した場合(S603においてNo)、S607に進む。
S604において、バックアップ処理部404は、バックアップ処理実行時のデジタル複合機110aの日時情報を特定して保持する。
次にS605において、バックアップ処理部404は、データベース410の対象ファイルをバックアップ先のディレクトリにコピーする。対象ファイル全てのコピーが完了したらバックアップ処理部404は、バックアップ処理完了を制御部402に通知する。
S606において、制御部402は、バックアップ処理完了を検知したら、データアクセス部406にデータベース410へのアクセス許可を通知して、図6に示す処理を終了とする。
一方、S607において、バックアップ処理部404は、過去のバックアップファイルを削除するかどうかを判断する。バックアップ処理部404は、ユーザー指示に基づき、判断をしてもよいし、過去のバックアップファイルの作成日時等から削除可能かどうかの判断をしてもよい。バックアップ処理部404は、過去データを削除すると判定した場合(S607においてYes)、S608に進み、過去データを削除しないと判定した場合(S607においてNo)、S609に進む。
S608において、バックアップ処理部404は、過去のバックアップファイルを削除する。そして、バックアップ処理部404は、S603に戻る。
一方、S609において、バックアップ処理部404は、バックアップ指示元にバックアップを実行できないことを通知して、バックアップ処理失敗を制御部402に通知する。制御部402は、バックアップ不可通知を検知したら、データアクセス部406にデータベース410へのアクセス許可を通知して、図6に示す処理を終了する。
次にS605において、バックアップ処理部404は、データベース410の対象ファイルをバックアップ先のディレクトリにコピーする。対象ファイル全てのコピーが完了したらバックアップ処理部404は、バックアップ処理完了を制御部402に通知する。
S606において、制御部402は、バックアップ処理完了を検知したら、データアクセス部406にデータベース410へのアクセス許可を通知して、図6に示す処理を終了とする。
一方、S607において、バックアップ処理部404は、過去のバックアップファイルを削除するかどうかを判断する。バックアップ処理部404は、ユーザー指示に基づき、判断をしてもよいし、過去のバックアップファイルの作成日時等から削除可能かどうかの判断をしてもよい。バックアップ処理部404は、過去データを削除すると判定した場合(S607においてYes)、S608に進み、過去データを削除しないと判定した場合(S607においてNo)、S609に進む。
S608において、バックアップ処理部404は、過去のバックアップファイルを削除する。そして、バックアップ処理部404は、S603に戻る。
一方、S609において、バックアップ処理部404は、バックアップ指示元にバックアップを実行できないことを通知して、バックアップ処理失敗を制御部402に通知する。制御部402は、バックアップ不可通知を検知したら、データアクセス部406にデータベース410へのアクセス許可を通知して、図6に示す処理を終了する。
本実施形態では、ファイルベースのデータベースの場合を例に説明を行った。しかしデータベース410にバックアップ機能がある場合には、S602で対象ファイルを特定するのではなく、制御部402は、データベース410にバックアップを指示して、バックアップファイルを作成してもよい。また、データベース410へのアクセス禁止/許可の処理(S601、S606及びS609)はデータベース410が実施しても、サーバーアプリケーション400が実施してもよい。また、フルバックアップではなく、差分バックアップの場合も同じように、S602でバックアップ処理部404がデータベース410に差分バックアップファイルの作成を要求して、ファイルを特定してもよい。
次に、サーバーアプリケーション400が、データベース410の管理データのリストア処理を実行する際の処理を、図7のフローチャートを用いて説明する。リストア処理の指示は、ユーザー指示等の外部からの指示であっても、データベース内の不整合検知による修復指示等のデータベース410やサーバーアプリケーション400等の内部からの指示であってもよい。
S701において、制御部402は、リストア実行の指示を検知したら、データアクセス部406に対してデータベース410へのアクセスを止めるように指示する。
次にS702において、制御部402は、リストア処理部405にリストア対象のファイルとリストア実行を指示する。リストア処理部405は、バックアップデータを特定して、バックアップ実行日時を特定し、保持する。
次にS703において、リストア処理部405は、リストア処理実行日時としてデジタル複合機110aの日時情報を特定して保持する。
S704において、リストア処理部405は、データベース410にアクセスして、データベース410で管理する情報のうち、クライアントアプリケーション500が動作する全デジタル複合機110の補正時間情報を取得して、保持しておく。
データベース410で管理するデータ例を表Bに示す。
S701において、制御部402は、リストア実行の指示を検知したら、データアクセス部406に対してデータベース410へのアクセスを止めるように指示する。
次にS702において、制御部402は、リストア処理部405にリストア対象のファイルとリストア実行を指示する。リストア処理部405は、バックアップデータを特定して、バックアップ実行日時を特定し、保持する。
次にS703において、リストア処理部405は、リストア処理実行日時としてデジタル複合機110aの日時情報を特定して保持する。
S704において、リストア処理部405は、データベース410にアクセスして、データベース410で管理する情報のうち、クライアントアプリケーション500が動作する全デジタル複合機110の補正時間情報を取得して、保持しておく。
データベース410で管理するデータ例を表Bに示す。
クライアント装置情報には、サーバーアプリケーション400とデータの同期処理を行っているクライアントアプリケーション500が動作する装置の情報(識別子や名称等)が登録されている。またクライアント装置情報に、サーバーとクライアントとの日時情報の差分を補正するための補正時間情報も登録されている。処理装置設定データには、装置が動作するために使用している各種設定データ(表示言語設定や標準プリント設定等)が登録されている。ユーザー認証用データには、装置を使用するための認証処理で使用される情報(ID/PASSWORD等)やユーザーの権限、所属グループ等の情報が登録されている。ユーザー設定データには、ユーザー毎に登録された設定データ(アドレス帳のアドレスデータ等)が登録されている。表Bにおける最終取得日時とは、クライアントアプリケーション500が最後にデータ取得を行った日時である。またデータ更新日時とは、クライアントアプリケーションから最後にデータの更新が行われた日時である。これらの時刻は何れもサーバーアプリケーション400が基準とする時刻が設定されている。
補正時間情報の退避が完了したら、S705において、リストア処理部405は、バックアップデータのファイルをデータベース410が管理する管理ファイルと差し替え、データの不整合が無いかチェックする。
S706において、リストア処理部405は、S704で保持していた全デジタル複合機110の補正時間情報をリストア後のデータに対して更新するように、データベース410に指示する。データベース410の処理が完了したら、リストア処理部405は、リストア前のデータベース410が管理していた管理ファイルを削除して、制御部402にリストア完了を通知する。
S707において、制御部402は、リストア完了を検知したら、サーバーとクライアントの日時情報の差分を補正するための補正時間情報を更新する必要であることを示す、時刻補正要否情報の値をTRUEに更新する。
ここで時刻補正要否情報の一例について表Cを用いて説明する。S707の処理により時刻補正要否情報はデジタル複合機110a、デジタル複合機110bの両者共にTRUEが設定された状態となる。この状態では時刻補正が必要であることを表しており、デジタル複合機110a、デジタル複合機110bから時刻補正が実施されると、該当するデジタル複合機に関する時刻補正要否情報がFALSEに設定される。
S708において、制御部402は、データアクセス部406にデータベース410へのアクセス許可を通知して、図7に示す処理を終了する。
S706において、リストア処理部405は、S704で保持していた全デジタル複合機110の補正時間情報をリストア後のデータに対して更新するように、データベース410に指示する。データベース410の処理が完了したら、リストア処理部405は、リストア前のデータベース410が管理していた管理ファイルを削除して、制御部402にリストア完了を通知する。
S707において、制御部402は、リストア完了を検知したら、サーバーとクライアントの日時情報の差分を補正するための補正時間情報を更新する必要であることを示す、時刻補正要否情報の値をTRUEに更新する。
ここで時刻補正要否情報の一例について表Cを用いて説明する。S707の処理により時刻補正要否情報はデジタル複合機110a、デジタル複合機110bの両者共にTRUEが設定された状態となる。この状態では時刻補正が必要であることを表しており、デジタル複合機110a、デジタル複合機110bから時刻補正が実施されると、該当するデジタル複合機に関する時刻補正要否情報がFALSEに設定される。
バックアップ処理同様、本実施形態では、ファイルベースのデータベースの場合を例に説明を行った。しかしデータベース410にリストア機能がある場合には、S705で対象ファイルを差し替えるのではなく、リストア処理部405は、データベース410に対象ファイルを渡してリストアを指示して、リストア処理を実行してもよい。また、差分バックアップの場合には、フルバックアップ時のデータと差分バックアップのデータとからリストアするためのデータをデータベース410等で生成したのち、S705の処理を実行してもよい。また、バックアップ時同様、データベース410へのアクセス禁止/許可の制御をデータベース410で実施してもサーバーアプリケーション400で実施してもよい。
次に表Bのデータベース410で管理するデータ例に対して「2016/08/27 13:00:00.112」にバックアップ処理を実行し、リストア処理を「2016/08/28 08:00:00.225」に実行した場合について説明する。
例えば、バックアップ処理後の「2016/08/27 14:00:00.456」にデジタル複合機110bで、ユーザー設定データ「fax_address_1」が「023−456−7890」に更新されたとする。そのとき、デジタル複合機110bがネットワークに接続されておらず、クライアントアプリケーション500とサーバーアプリケーション400とが通信できない場合がある。その場合には、デジタル複合機110bのクライアントアプリケーションは「2016/08/27 14:00:00.456」に更新されたユーザー設定データとして、ジョブ管理部503にデータを保持しておく。リストア実行後の「2016/08/28 10:00:00.123」にデジタル複合機110bがネットワークに接続されて通信できるようになったとする。その場合、クライアントアプリケーション500は、サーバーアプリケーション400に対して「2016/08/27 14:00:00.456」に更新されたユーザー設定データの更新を要求する。サーバーアプリケーション400のデータアクセス部406は、受信した更新要求からデータベース410で管理するユーザー設定データ「fax_address_1」を更新するかどうか判断する。ここで要求に含まれる更新時刻は「2016/08/27 14:00:00.456」である。そのため、データアクセス部406は、リストア後の「fax_address_1」のデータ更新日時が「2016/08/06 02:22.55.685」よりも新しいと判断する。そして、データアクセス部406は、データベース410へのデータ更新要求を行う。
例えば、バックアップ処理後の「2016/08/27 14:00:00.456」にデジタル複合機110bで、ユーザー設定データ「fax_address_1」が「023−456−7890」に更新されたとする。そのとき、デジタル複合機110bがネットワークに接続されておらず、クライアントアプリケーション500とサーバーアプリケーション400とが通信できない場合がある。その場合には、デジタル複合機110bのクライアントアプリケーションは「2016/08/27 14:00:00.456」に更新されたユーザー設定データとして、ジョブ管理部503にデータを保持しておく。リストア実行後の「2016/08/28 10:00:00.123」にデジタル複合機110bがネットワークに接続されて通信できるようになったとする。その場合、クライアントアプリケーション500は、サーバーアプリケーション400に対して「2016/08/27 14:00:00.456」に更新されたユーザー設定データの更新を要求する。サーバーアプリケーション400のデータアクセス部406は、受信した更新要求からデータベース410で管理するユーザー設定データ「fax_address_1」を更新するかどうか判断する。ここで要求に含まれる更新時刻は「2016/08/27 14:00:00.456」である。そのため、データアクセス部406は、リストア後の「fax_address_1」のデータ更新日時が「2016/08/06 02:22.55.685」よりも新しいと判断する。そして、データアクセス部406は、データベース410へのデータ更新要求を行う。
次に図8A(A)を用いてデジタル複合機110b上で動作するクライアントアプリケーション500の同期要求の処理フローについて説明する。
データ管理アプリケーション510は、デジタル複合機110b内のデータが変更されるとクライアントアプリケーション500に対して同期の更新要求を行う。S801において、処理受付部501は、更新要求を受信し、制御部502へ同期要求イベントを通知する。
S802において、制御部502は、同期要求イベントの種別を判別する。制御部502は、同期要求イベントの種別がデータ取得要求であると判定した場合、S803に進み、同期要求イベントの種別がデータ更新であると判定した場合、S804に進む。
S803において、制御部502は、データ取得処理を実行する。データ取得処理の詳細は、後述する図8B(A)において説明する。
一方、S804において、制御部502は、データ更新処理を実行する。データ更新処理の詳細は、後述する図8A(B)において説明する。
データ取得処理、データ更新処理が完了したら、S805において、制御部502は、要時刻補正エラーが発生したかを判定する。要時刻補正エラーが発生したと判定した場合(S805においてYes)、制御部502は、S806に進む。
S806において、制御部502は、同期処理を中断する。
S807において、制御部502は、時刻補正処理を実施する。
データ管理アプリケーション510は、デジタル複合機110b内のデータが変更されるとクライアントアプリケーション500に対して同期の更新要求を行う。S801において、処理受付部501は、更新要求を受信し、制御部502へ同期要求イベントを通知する。
S802において、制御部502は、同期要求イベントの種別を判別する。制御部502は、同期要求イベントの種別がデータ取得要求であると判定した場合、S803に進み、同期要求イベントの種別がデータ更新であると判定した場合、S804に進む。
S803において、制御部502は、データ取得処理を実行する。データ取得処理の詳細は、後述する図8B(A)において説明する。
一方、S804において、制御部502は、データ更新処理を実行する。データ更新処理の詳細は、後述する図8A(B)において説明する。
データ取得処理、データ更新処理が完了したら、S805において、制御部502は、要時刻補正エラーが発生したかを判定する。要時刻補正エラーが発生したと判定した場合(S805においてYes)、制御部502は、S806に進む。
S806において、制御部502は、同期処理を中断する。
S807において、制御部502は、時刻補正処理を実施する。
ここで、時刻補正処理の詳細について図8A(B)を用いて説明する。
S830において、制御部502は、デジタル複合機110bの時刻を取得し、取得した時刻を含む時刻補正情報を生成する。
S831において、制御部502は、生成した時刻補正情報を含む時刻補正要求を通信処理部504へ依頼する。通信処理部504は、サーバーアプリケーション400へ時刻補正要求を送信する。時刻補正要求とは、時刻を補正するための更新要求であり、表Bに示した補正時間を更新するための要求である。
S832において、通信処理部504は、サーバーアプリケーション400からのレスポンスを受信し、制御部502へレスポンスを返却する。制御部502は、レスポンスに含まれるステータスコード等から時刻補正が成功したかを表す情報を取得する。
S833において、制御部502は、取得した情報に基づき、時刻補正要求が成功したか否かを判定する。制御部502は、時刻補正要求が成功したと判定すると(S833においてYes)、時刻補正処理を終了し、時刻補正要求が失敗したと判定すると(S833においてNo)、S830の処理に戻る。
時刻補正処理の終了後、S808において、制御部502は、中断していた同期処理を再び開始する。
S830において、制御部502は、デジタル複合機110bの時刻を取得し、取得した時刻を含む時刻補正情報を生成する。
S831において、制御部502は、生成した時刻補正情報を含む時刻補正要求を通信処理部504へ依頼する。通信処理部504は、サーバーアプリケーション400へ時刻補正要求を送信する。時刻補正要求とは、時刻を補正するための更新要求であり、表Bに示した補正時間を更新するための要求である。
S832において、通信処理部504は、サーバーアプリケーション400からのレスポンスを受信し、制御部502へレスポンスを返却する。制御部502は、レスポンスに含まれるステータスコード等から時刻補正が成功したかを表す情報を取得する。
S833において、制御部502は、取得した情報に基づき、時刻補正要求が成功したか否かを判定する。制御部502は、時刻補正要求が成功したと判定すると(S833においてYes)、時刻補正処理を終了し、時刻補正要求が失敗したと判定すると(S833においてNo)、S830の処理に戻る。
時刻補正処理の終了後、S808において、制御部502は、中断していた同期処理を再び開始する。
次にデータ取得処理の詳細について図8B(A)を用いて説明する。
S810において、制御部502は、データの最終取得日時を同期情報管理部505から取得する。
S811において、制御部502は、取得した最終取得日時を基に通信処理部504へデータの取得要求を依頼する。
S812において、通信処理部504は、サーバーアプリケーション400からのレスポンスを受信すると、制御部502へレスポンスを返却する。
S813において、制御部502は、レスポンスに含まれるステータスコード等から不整合エラーが発生したかを判定する。制御部502は、不整合エラーが発生したと判定した場合(S813においてYes)、S814に進み、不整合エラーが発生していないと判定した場合(S813においてNo)、S815に進む。
S814において、制御部502は、全データ取得要求を生成する。そして、S811において、制御部502は、再度、通信処理部504へデータの取得要求を依頼する。
一方、S815において、制御部502は、レスポンスに取得されたデータがあるか否かを判定する。制御部502は、データがある場合(S815においてYes)、S816に進み、データがない場合(S815においてNo)、データ取得処理を終了する。
S816において、制御部502は、取得したデータをデータ管理アプリケーション510へ返すことで、デジタル複合機110bへ反映する。そして、制御部502は、データ取得処理を終了する。
S810において、制御部502は、データの最終取得日時を同期情報管理部505から取得する。
S811において、制御部502は、取得した最終取得日時を基に通信処理部504へデータの取得要求を依頼する。
S812において、通信処理部504は、サーバーアプリケーション400からのレスポンスを受信すると、制御部502へレスポンスを返却する。
S813において、制御部502は、レスポンスに含まれるステータスコード等から不整合エラーが発生したかを判定する。制御部502は、不整合エラーが発生したと判定した場合(S813においてYes)、S814に進み、不整合エラーが発生していないと判定した場合(S813においてNo)、S815に進む。
S814において、制御部502は、全データ取得要求を生成する。そして、S811において、制御部502は、再度、通信処理部504へデータの取得要求を依頼する。
一方、S815において、制御部502は、レスポンスに取得されたデータがあるか否かを判定する。制御部502は、データがある場合(S815においてYes)、S816に進み、データがない場合(S815においてNo)、データ取得処理を終了する。
S816において、制御部502は、取得したデータをデータ管理アプリケーション510へ返すことで、デジタル複合機110bへ反映する。そして、制御部502は、データ取得処理を終了する。
次にデータ更新処理の詳細について図8B(B)を用いて説明する。
S820において、制御部502は、通信処理部504に対してデータの更新要求を依頼する。通信処理部504は、サーバーアプリケーション400に対してデータの更新要求を依頼する。
S821において、通信処理部504は、サーバーアプリケーション400の処理が完了すると、処理のレスポンスを受信する。そして、通信処理部504は、データ更新処理を終了する。
S820において、制御部502は、通信処理部504に対してデータの更新要求を依頼する。通信処理部504は、サーバーアプリケーション400に対してデータの更新要求を依頼する。
S821において、通信処理部504は、サーバーアプリケーション400の処理が完了すると、処理のレスポンスを受信する。そして、通信処理部504は、データ更新処理を終了する。
次に図9、図10、図11を用いてリストア処理を「2016/06/28 08:00:00.225」に実行した後、デジタル複合機110bがそれぞれデータの差分同期のためのデータ取得要求を実施した場合の処理の詳細のフローについて説明する。なお、以下の説明の概要は以下となる。
・差分データ取得要求受信し、要時刻補正エラー応答を返す処理
・時刻補正要求を受信し、補正時間を更新する処理
・差分データ取得要求を受信し、差分データを返す処理
またデジタル複合機110bは電源がOffにされていた、又はサーバーアプリケーション400との通信ができない等の理由で、「2016/08/27 10:54.14.369」以降、差分データの取得要求が成功していなかったこととする。
・差分データ取得要求受信し、要時刻補正エラー応答を返す処理
・時刻補正要求を受信し、補正時間を更新する処理
・差分データ取得要求を受信し、差分データを返す処理
またデジタル複合機110bは電源がOffにされていた、又はサーバーアプリケーション400との通信ができない等の理由で、「2016/08/27 10:54.14.369」以降、差分データの取得要求が成功していなかったこととする。
データ取得処理(S905)の詳細について図10を用いて説明する。図10は、デジタル複合機110aのサーバーアプリケーション400におけるデータ取得処理の一例を示すフローチャートである。
S1001において、制御部402は、リストア実施時のS707で更新した時刻補正要否情報を取得し、時刻補正要否情報がTRUEか否かを判定する。制御部402は、時刻補正要否情報がTRUEである、時刻補正が必要である、と判定すると(S1001においてYes)、S1002に進む。一方、制御部402は、時刻補正要否情報がTRUEでない、時刻補正が必要でない、と判定すると(S1001においてNo)、S1003に進む。リストア処理実施後には、図7のS707にて設定した時刻補正要否情報に基づき、時刻補正が必要と判定される。
S1002において、制御部402は、要時刻補正エラーをクライアントアプリケーション500へ返却する。
クライアントアプリケーション500は、要時刻補正エラーを受信すると、図8A(A)(B)に記載のフローチャートの処理に従い処理を実行し、その結果、サーバーアプリケーション400に対して時刻補正要求のリクエストが送信されることとなる。
S1001において、制御部402は、リストア実施時のS707で更新した時刻補正要否情報を取得し、時刻補正要否情報がTRUEか否かを判定する。制御部402は、時刻補正要否情報がTRUEである、時刻補正が必要である、と判定すると(S1001においてYes)、S1002に進む。一方、制御部402は、時刻補正要否情報がTRUEでない、時刻補正が必要でない、と判定すると(S1001においてNo)、S1003に進む。リストア処理実施後には、図7のS707にて設定した時刻補正要否情報に基づき、時刻補正が必要と判定される。
S1002において、制御部402は、要時刻補正エラーをクライアントアプリケーション500へ返却する。
クライアントアプリケーション500は、要時刻補正エラーを受信すると、図8A(A)(B)に記載のフローチャートの処理に従い処理を実行し、その結果、サーバーアプリケーション400に対して時刻補正要求のリクエストが送信されることとなる。
(時刻補正要求を受信し、補正時間を更新する処理)
次にサーバーアプリケーション400が時刻補正要求のリクエストを受信した場合の処理について図9、図11を用いて説明する。
また下記説明では時刻補正要求に含まれるデジタル複合機110bの時刻は「2016/06/28 08:10:50.456」であるものとして説明する。
S901において、サーバーアプリケーション400の通信処理部401は、クライアントアプリケーション500からの要求を受信したら制御部402に要求受信を通知する。
S902において、制御部402は、受信した要求を要求解析部403に渡し、要求の解析を依頼する。要求解析部403は、受信した要求から、要求元のデジタル複合機がデジタル複合機110bであることと、時刻補正要求であることを特定する。
S903において、制御部402は、S902で特定された要求内容を基に更新要求であるかを判定する。時刻補正要求は、表Bの補正時間を更新するための更新要求であるため、S903においてYesと判定され、S904の更新要求処理へ進む。
次にサーバーアプリケーション400が時刻補正要求のリクエストを受信した場合の処理について図9、図11を用いて説明する。
また下記説明では時刻補正要求に含まれるデジタル複合機110bの時刻は「2016/06/28 08:10:50.456」であるものとして説明する。
S901において、サーバーアプリケーション400の通信処理部401は、クライアントアプリケーション500からの要求を受信したら制御部402に要求受信を通知する。
S902において、制御部402は、受信した要求を要求解析部403に渡し、要求の解析を依頼する。要求解析部403は、受信した要求から、要求元のデジタル複合機がデジタル複合機110bであることと、時刻補正要求であることを特定する。
S903において、制御部402は、S902で特定された要求内容を基に更新要求であるかを判定する。時刻補正要求は、表Bの補正時間を更新するための更新要求であるため、S903においてYesと判定され、S904の更新要求処理へ進む。
次に更新要求処理について図11を用いて説明する。
S1101において、制御部402は、時刻補正要求であるか否かを判定する。制御部402は、時刻補正要求であると判定すると(S1101においてYes)、S1102に進み、時刻補正要求でないと判定すると(S1101においてNo)、S1105に進む。制御部402は、データ更新要求に時刻補正情報が含まれている場合は、時刻補正要求であると判定する。
S1102において、制御部402は、更新要求に含まれる時刻「2016/06/28 08:10:50.456」とサーバーの現在時刻である「2016/06/28 08:11:00.789」とから補正時刻を算出し、データベースへ反映する。ここでは「+00:00:10.333」がデジタル複合機110bの補正時間情報として算出されデータベース410へ反映される。
S1103において、制御部402は、データベース410への反映が完了したら時刻補正要否情報を、FALSEに設定する。
S1104において、制御部402は、時刻補正要否情報の設定が完了したら処理結果をクライアントアプリケーション500へ返却する。
S1101において、制御部402は、時刻補正要求であるか否かを判定する。制御部402は、時刻補正要求であると判定すると(S1101においてYes)、S1102に進み、時刻補正要求でないと判定すると(S1101においてNo)、S1105に進む。制御部402は、データ更新要求に時刻補正情報が含まれている場合は、時刻補正要求であると判定する。
S1102において、制御部402は、更新要求に含まれる時刻「2016/06/28 08:10:50.456」とサーバーの現在時刻である「2016/06/28 08:11:00.789」とから補正時刻を算出し、データベースへ反映する。ここでは「+00:00:10.333」がデジタル複合機110bの補正時間情報として算出されデータベース410へ反映される。
S1103において、制御部402は、データベース410への反映が完了したら時刻補正要否情報を、FALSEに設定する。
S1104において、制御部402は、時刻補正要否情報の設定が完了したら処理結果をクライアントアプリケーション500へ返却する。
時刻補正要求の成功を受信したデジタル複合機110b内で動作するクライアントアプリケーション500は、時刻補正要求の成功を受信する。次にクライアントアプリケーション500は、同期処理を再開するため一旦同期処理を停止していた、「2016/06/27 10:54.14.369」以降の差分データ取得要求をサーバーアプリケーション400に対して要求することになる。
サーバーアプリケーション400は、クライアントアプリケーション500からの「2016/06/27 10:54.14.369」以降の差分データ取得要求を受信する。S901において、サーバーアプリケーション400の通信処理部401は、クライアントアプリケーション500からの要求を受信したら、制御部402に要求受信を通知する。制御部402は受信した要求を要求解析部403に渡し、要求の解析を依頼する。
S902において、要求解析部403は、受信した要求から、要求元のデジタル複合機がデジタル複合機110bであることと、「2016/06/27 10:54.14.369」以降の差分データ取得要求であることを特定する。
S903において、制御部402は、要求解析部403から解析結果を取得したら、それがデータ更新要求であるかどうかを判断する。判定の結果、差分データ取得要求であるため、制御部402は、S905へ進む。
サーバーアプリケーション400は、クライアントアプリケーション500からの「2016/06/27 10:54.14.369」以降の差分データ取得要求を受信する。S901において、サーバーアプリケーション400の通信処理部401は、クライアントアプリケーション500からの要求を受信したら、制御部402に要求受信を通知する。制御部402は受信した要求を要求解析部403に渡し、要求の解析を依頼する。
S902において、要求解析部403は、受信した要求から、要求元のデジタル複合機がデジタル複合機110bであることと、「2016/06/27 10:54.14.369」以降の差分データ取得要求であることを特定する。
S903において、制御部402は、要求解析部403から解析結果を取得したら、それがデータ更新要求であるかどうかを判断する。判定の結果、差分データ取得要求であるため、制御部402は、S905へ進む。
(差分データ取得要求を受信し、差分データを返す処理)
次にS905の取得処理の詳細について、図10を用いて説明する。
S1001において、制御部402は、時刻補正要否情報がTRUEであるか否かを判定する。先ほどS1103の処理にて時刻補正要否情報はFALSEに更新されているため、制御部402は、S1001でNoと判定し、S1003に進む。
S1003において、制御部402は、取得要求が差分データ取得要求であるか否かを判定する。制御部402は、差分データ取得要求であると判定した場合(S1003においてYes)、S1004に進み、差分データ取得要求でないと判定した場合(S1003においてNo)、S1011に進む。上述の例では、制御部402は、差分データの取得要求であると判定し、S1004へ進む。
S1004において、制御部402は、差分要求の要求日時を「2016/08/27 10:54.14.369」と特定する。
次に、S1005において、制御部402は、バックアップ時、リストア時に生成したバックアップ日時、リストア日時を特定する。
S1006において、制御部402は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前であるかを判定する。制御部402は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前である場合(S1006においてYes)、S1007に進み、そうでない場合(S1006においてNo)、S1008に進む。上述の例では、要求に含まれる日時情報がバックアップ以前の日時であったため、制御部402は、S1006においてNoと判定し、S1008に進む。
S1008において、制御部402は、現在のサーバーの日時を特定する。
S1009において、制御部402は、要求日時である「2016/08/27 10:54.14.369」以降に変更されたデータを特定し、データベース内の最終取得日時をサーバーの日時で更新する。
S1010において、制御部402は、S1009で取得した差分更新データとサーバーの日時とを通信処理部401へ渡し、クライアントアプリケーション500に対してデータ取得要求のレスポンスとして送信する。
次にS905の取得処理の詳細について、図10を用いて説明する。
S1001において、制御部402は、時刻補正要否情報がTRUEであるか否かを判定する。先ほどS1103の処理にて時刻補正要否情報はFALSEに更新されているため、制御部402は、S1001でNoと判定し、S1003に進む。
S1003において、制御部402は、取得要求が差分データ取得要求であるか否かを判定する。制御部402は、差分データ取得要求であると判定した場合(S1003においてYes)、S1004に進み、差分データ取得要求でないと判定した場合(S1003においてNo)、S1011に進む。上述の例では、制御部402は、差分データの取得要求であると判定し、S1004へ進む。
S1004において、制御部402は、差分要求の要求日時を「2016/08/27 10:54.14.369」と特定する。
次に、S1005において、制御部402は、バックアップ時、リストア時に生成したバックアップ日時、リストア日時を特定する。
S1006において、制御部402は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前であるかを判定する。制御部402は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前である場合(S1006においてYes)、S1007に進み、そうでない場合(S1006においてNo)、S1008に進む。上述の例では、要求に含まれる日時情報がバックアップ以前の日時であったため、制御部402は、S1006においてNoと判定し、S1008に進む。
S1008において、制御部402は、現在のサーバーの日時を特定する。
S1009において、制御部402は、要求日時である「2016/08/27 10:54.14.369」以降に変更されたデータを特定し、データベース内の最終取得日時をサーバーの日時で更新する。
S1010において、制御部402は、S1009で取得した差分更新データとサーバーの日時とを通信処理部401へ渡し、クライアントアプリケーション500に対してデータ取得要求のレスポンスとして送信する。
また上述した例からは離れるがS1006の判定処理においてYesと判定された場合の一例について説明する。上述した例と同じくバックアップ日時は「2016/08/27 13:00:00.112」、リストア日時は「2016/08/28 08:00:00.225」とする。
このときクライアントアプリケーション500からの差分取得要求に含まれる時刻が、「2016/08/27 15:00:00.000」であった場合には次式が満たされる。そのため、制御部402は、S1006にてYesと判定し、S1007に進む。
バックアップ日時「2016/08/27 13:00:00.112」<「2016/08/27 15:00:00.000」<リストア日時「2016/08/28 08:00:00.225」
S1007において、制御部402は、クライアントアプリケーション500にデータ不整合エラーを返却する。
このとき、データ不整合エラーを受信したクライアントアプリケーション500は、図8に記載のフローチャートに従い処理を実行し、全データの取得要求をサーバーアプリケーション400に対して送信する。その結果、サーバーアプリケーション400は、S901、S902、S903、S905の処理を実行し、S1001ではFALSEと判定し、S1003にて全データ取得と判定し、S1011へ進む。
S1011において、制御部402は、サーバーの日時を特定する。そして、S1012において、制御部402は、対象の全てのデータを特定する。そして、S1013において、制御部402は、該当データの最終取得日時をサーバー日時で更新する。処理が完了したら、制御部402は、クライアントに対して全データとサーバー日時とを返却する。このことで、サーバー上のデータベースとクライアントとの情報に不整合が発生した場合であっても全データの取得を実施することで整合性が保たれることとなる。
このときクライアントアプリケーション500からの差分取得要求に含まれる時刻が、「2016/08/27 15:00:00.000」であった場合には次式が満たされる。そのため、制御部402は、S1006にてYesと判定し、S1007に進む。
バックアップ日時「2016/08/27 13:00:00.112」<「2016/08/27 15:00:00.000」<リストア日時「2016/08/28 08:00:00.225」
S1007において、制御部402は、クライアントアプリケーション500にデータ不整合エラーを返却する。
このとき、データ不整合エラーを受信したクライアントアプリケーション500は、図8に記載のフローチャートに従い処理を実行し、全データの取得要求をサーバーアプリケーション400に対して送信する。その結果、サーバーアプリケーション400は、S901、S902、S903、S905の処理を実行し、S1001ではFALSEと判定し、S1003にて全データ取得と判定し、S1011へ進む。
S1011において、制御部402は、サーバーの日時を特定する。そして、S1012において、制御部402は、対象の全てのデータを特定する。そして、S1013において、制御部402は、該当データの最終取得日時をサーバー日時で更新する。処理が完了したら、制御部402は、クライアントに対して全データとサーバー日時とを返却する。このことで、サーバー上のデータベースとクライアントとの情報に不整合が発生した場合であっても全データの取得を実施することで整合性が保たれることとなる。
以上の情報処理によりサーバーアプリケーション400においてリストア処理が実施された後に、サーバーアプリケーション400が管理する補正時間情報が補正され、その後に、データ取得要求や、データ更新要求が処理されることが保証される。その結果、サーバーアプリケーション400が動作するデジタル複合機110bのHDDの故障による交換や、その他のデジタル複合機にデータをリストアしサーバーとして動作をさせた場合にも正しい状態での同期を行うことができる。
<実施形態2>
本実施形態ではサーバーアプリケーションのデータの更新要求時にのみ、要時刻補正エラーを返却した場合の例について説明する。これはデータの取得要求で指定される最終取得日時はサーバーが管理する時刻であるため、補正時間情報を補正していなくても問題ないため、影響のあるデータの更新要求時にのみ補正を行うとした場合の説明となる。また実施形態2においてはデータの取得要求があった際には、事前に時刻補正処理が実行されないため、実施形態1と比べデータの取得処理が早く完了することとなる点が実施形態1に対するメリットとなる。
ここでは実施形態1との差異を中心に実施形態2についての説明を行う。
実施形態2におけるクライアントアプリケーション500が実行する同期要求の処理フローについて図12(A)を用いて説明する。なお、図8A(B)、図8B(A)、(B)の処理については実施形態1と同等の処理であるため実施形態2では図示、説明、共に省略する。
本実施形態ではサーバーアプリケーションのデータの更新要求時にのみ、要時刻補正エラーを返却した場合の例について説明する。これはデータの取得要求で指定される最終取得日時はサーバーが管理する時刻であるため、補正時間情報を補正していなくても問題ないため、影響のあるデータの更新要求時にのみ補正を行うとした場合の説明となる。また実施形態2においてはデータの取得要求があった際には、事前に時刻補正処理が実行されないため、実施形態1と比べデータの取得処理が早く完了することとなる点が実施形態1に対するメリットとなる。
ここでは実施形態1との差異を中心に実施形態2についての説明を行う。
実施形態2におけるクライアントアプリケーション500が実行する同期要求の処理フローについて図12(A)を用いて説明する。なお、図8A(B)、図8B(A)、(B)の処理については実施形態1と同等の処理であるため実施形態2では図示、説明、共に省略する。
データ管理アプリケーション510は、デジタル複合機110b内のデータが変更されるとクライアントアプリケーション500に対して同期の更新要求を行う。
S1201において、処理受付部501は、更新要求を受信し、制御部502へ同期要求イベントを通知する。
S1202において、制御部502は、同期要求イベントの種別を判別する。制御部502は、同期要求イベントの種別がデータ取得要求であると判定した場合、S1203に進み、同期要求イベントの種別がデータ更新であると判定した場合、S1204に進む。
S1203において、制御部502は、データ取得処理を実行する。制御部502は、データ取得処理が終了した場合には、S1201へ戻り、再びイベントの受信を待つ。
S1204において、制御部502は、データ更新処理を実行する。
データ更新処理が終了した場合には、S1205において、制御部502は、要時刻補正エラーが発生したかを判定する。制御部502は、要時刻補正エラーが発生したと判定した場合(S1205においてYes)、S1206に進む。
S1206において、制御部502は、同期処理を中断する。
S1207において、制御部502は、時刻補正処理を実行する。
S1208において、制御部502は、同期処理を再開する。
S1201において、処理受付部501は、更新要求を受信し、制御部502へ同期要求イベントを通知する。
S1202において、制御部502は、同期要求イベントの種別を判別する。制御部502は、同期要求イベントの種別がデータ取得要求であると判定した場合、S1203に進み、同期要求イベントの種別がデータ更新であると判定した場合、S1204に進む。
S1203において、制御部502は、データ取得処理を実行する。制御部502は、データ取得処理が終了した場合には、S1201へ戻り、再びイベントの受信を待つ。
S1204において、制御部502は、データ更新処理を実行する。
データ更新処理が終了した場合には、S1205において、制御部502は、要時刻補正エラーが発生したかを判定する。制御部502は、要時刻補正エラーが発生したと判定した場合(S1205においてYes)、S1206に進む。
S1206において、制御部502は、同期処理を中断する。
S1207において、制御部502は、時刻補正処理を実行する。
S1208において、制御部502は、同期処理を再開する。
実施形態2におけるデジタル複合機110aで動作する、サーバーアプリケーション400の同期処理について説明するが、同期処理については図9の処理と同等である。また更新要求処理に関しては図11と同等の処理となるため説明を省略する。
ここでは実施形態1との差異があるデータの取得要求処理のフローチャートである図13についてのみ説明する。なお、図13は図10のフローチャートとほぼ同等である。異なる点はS1001とS1002との処理がないだけであり、S1301からS1311までの処理は図10のS1003からS1013までの処理と同じである。
ここでは実施形態1との差異があるデータの取得要求処理のフローチャートである図13についてのみ説明する。なお、図13は図10のフローチャートとほぼ同等である。異なる点はS1001とS1002との処理がないだけであり、S1301からS1311までの処理は図10のS1003からS1013までの処理と同じである。
S1301において、制御部402は、差分データ取得要求であると判定し、S1302へ進む。次に、S1302において、制御部402は、差分要求の要求日時を「2016/08/27 10:54.14.369」と特定する。次に、S1303において、制御部402は、バックアップ時、リストア時に生成したバックアップ日時、リストア日時を特定する。S1304において、制御部402は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前であるかを判定する。要求に含まれる日時情報がバックアップ以前の日時であるため、制御部402は、Noと判定し、S1306に進む。S1306において、制御部402は、現在のサーバーの日時を特定する。
S1307において、制御部402は、要求日時である「2016/08/27 10:54.14.369」以降に変更されたデータを特定し、データベース内の最終取得日時をサーバーの日時で更新する。
また、クライアントアプリケーション500からの差分取得要求に含まれる時刻が例えば「2016/08/27 15:00:00.000」であった場合、S1304において、制御部402は、Yesと判定する。その結果、S1305において、制御部402は、クライアントアプリケーション500にデータ不整合エラーを返却する。
データ不整合エラーを受信したクライアントアプリケーション500は、図12に記載のフローチャートの処理を実行し、全データの取得要求をサーバーアプリケーション400に対して行う。その結果、サーバーアプリケーション400は、S901、S902、S903、S905の処理を実行し、S1301では全データ取得と判定し、S1309へ進む。S1309において、制御部402は、サーバーの日時を特定する。そして、S1310において、制御部402は、対象の全てのデータを特定する。そして、S1311において、制御部402は、該当データの最終取得日時をサーバー日時で更新する。処理が完了したら、制御部402は、クライアントに対して全データとサーバー日時とを返却する。このことで、サーバー上のデータベースとクライアントとの情報に不整合が発生した場合であっても全データの取得を実施することで整合性が保たれることとなる。
S1307において、制御部402は、要求日時である「2016/08/27 10:54.14.369」以降に変更されたデータを特定し、データベース内の最終取得日時をサーバーの日時で更新する。
また、クライアントアプリケーション500からの差分取得要求に含まれる時刻が例えば「2016/08/27 15:00:00.000」であった場合、S1304において、制御部402は、Yesと判定する。その結果、S1305において、制御部402は、クライアントアプリケーション500にデータ不整合エラーを返却する。
データ不整合エラーを受信したクライアントアプリケーション500は、図12に記載のフローチャートの処理を実行し、全データの取得要求をサーバーアプリケーション400に対して行う。その結果、サーバーアプリケーション400は、S901、S902、S903、S905の処理を実行し、S1301では全データ取得と判定し、S1309へ進む。S1309において、制御部402は、サーバーの日時を特定する。そして、S1310において、制御部402は、対象の全てのデータを特定する。そして、S1311において、制御部402は、該当データの最終取得日時をサーバー日時で更新する。処理が完了したら、制御部402は、クライアントに対して全データとサーバー日時とを返却する。このことで、サーバー上のデータベースとクライアントとの情報に不整合が発生した場合であっても全データの取得を実施することで整合性が保たれることとなる。
また図13の取得処理のフローチャートの処理においては時刻補正要否情報の判定が行われないため、リストア実施後であってもクライアントに対して要時刻補正エラーを返却することがない。そのためリストア実施後にクライアントからデータ取得要求のみが実行されている間はサーバーからのレスポンス起因での時刻補正が実施されないこととなる。そしてクライアントからのデータ更新要求を受信したタイミングで図11の更新要求処理のフローチャートの処理に従い、要時刻補正エラーのレスポンスを返す。そして、クライアントアプリケーション500は、時刻補正要求が必要であることを検知し、サーバーアプリケーション400に対して時刻補正を実施し、補正時刻情報を正しい状態に更新する。その後、クライアントアプリケーションは、データの更新要求を再度実施することで時刻が補正された状態でのデータ更新処理の実行を保証する。
以上の情報処理によりサーバーアプリケーション400においてリストア処理が実施された後に、サーバーアプリケーション400が管理する補正時間情報を補正した後に、データ更新要求が処理されることが保証される。その結果、サーバーアプリケーション400が動作するデジタル複合機110bのHDDの故障による交換や、その他のデジタル複合機にデータをリストアしサーバーとして動作をさせた場合にも正しい状態での同期を行うことが可能となる。
また時刻補正を行わなくても問題のない、データ取得要求については時刻補正を実施するよりも早くデータを取得することが可能となる。
また時刻補正を行わなくても問題のない、データ取得要求については時刻補正を実施するよりも早くデータを取得することが可能となる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
以上、上述した各実施形態の処理によれば、HDDを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにすることができる。
202 CPU
301 CPU
400 サーバーアプリケーション
500 クライアントアプリケーション
301 CPU
400 サーバーアプリケーション
500 クライアントアプリケーション
Claims (16)
- サーバー装置とクライアント装置とでデータの同期処理を行うシステムであって、
前記サーバー装置は、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、
前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、
を有し、
前記クライアント装置は、
前記サーバー装置より前記時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、
前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、
を有するシステム。 - 前記時刻補正手段は、前記時刻補正処理として、前記クライアント装置の時刻を取得し、取得した時刻を含む時刻補正要求を前記サーバー装置へ送信し、前記サーバー装置より前記時刻補正要求が成功したことを示す情報を受信すると、前記時刻補正処理を終了する請求項1記載のシステム。
- 前記サーバー装置は、データのリストア処理の際に、前記時刻補正要否情報に時刻の補正を必要であることを示す情報を設定する設定手段を更に有する請求項1又は2記載のシステム。
- 前記判定手段は、前記クライアント装置よりデータの取得要求を受信した際に、前記時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する請求項1乃至3何れか1項記載のシステム。
- 前記判定手段は、前記クライアント装置よりデータの更新要求を受信した際に、前記時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する請求項1乃至3何れか1項記載のシステム。
- データ取得処理、又はデータ更新処理が完了したのち、前記サーバー装置より前記時刻の補正要求を受信した場合、前記時刻補正手段は、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う請求項1乃至5何れか1項記載のシステム。
- データ更新処理が完了したのち、前記サーバー装置より前記時刻の補正要求を受信した場合、前記時刻補正手段は、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う請求項1乃至5何れか1項記載のシステム。
- 前記クライアント装置は、画像形成装置である請求項1乃至7何れか1項記載のシステム。
- 前記サーバー装置は、画像形成装置である請求項1乃至7何れか1項記載のシステム。
- クライアント装置とデータの同期処理を行うサーバー装置であって、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、
前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、
を有するサーバー装置。 - サーバー装置とデータの同期処理を行うクライアント装置であって、
前記サーバー装置より時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、
前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、
を有するクライアント装置。 - サーバー装置とクライアント装置とでデータの同期処理を行うシステムが実行する情報処理方法であって、
前記サーバー装置が、時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定工程と、
前記サーバー装置が、前記判定工程により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信工程と、
前記クライアント装置が、前記サーバー装置より前記時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正工程と、
前記クライアント装置が、前記時刻補正処理の終了後、前記同期処理を再開する制御工程と、
を含む情報処理方法。 - クライアント装置とデータの同期処理を行うサーバー装置が実行する情報処理方法であって、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定工程と、
前記判定工程により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信工程と、
を含む情報処理方法。 - サーバー装置とデータの同期処理を行うクライアント装置が実行する情報処理方法であって、
前記サーバー装置より時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正工程と、
前記時刻補正処理の終了後、前記同期処理を再開する制御工程と、
を含む情報処理方法。 - クライアント装置とデータの同期処理を行うコンピュータを、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、
前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、
して機能させるためのプログラム。 - サーバー装置とデータの同期処理を行うコンピュータを、
前記サーバー装置より時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、
前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、
して機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016215286A JP2018073283A (ja) | 2016-11-02 | 2016-11-02 | システム、サーバー装置、クライアント装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016215286A JP2018073283A (ja) | 2016-11-02 | 2016-11-02 | システム、サーバー装置、クライアント装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018073283A true JP2018073283A (ja) | 2018-05-10 |
Family
ID=62115653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016215286A Pending JP2018073283A (ja) | 2016-11-02 | 2016-11-02 | システム、サーバー装置、クライアント装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018073283A (ja) |
-
2016
- 2016-11-02 JP JP2016215286A patent/JP2018073283A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6188334B2 (ja) | 画像形成装置及びその制御方法、画像形成システム、並びにプログラム | |
JP6602177B2 (ja) | 情報処理装置及びその制御方法、システム、プログラム | |
JP2009070143A (ja) | Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム | |
JP6355330B2 (ja) | ネットワークデバイス、ネットワークデバイスの制御方法およびそのプログラム | |
JP6506527B2 (ja) | 情報処理装置とデータ同期方法、データ同期システムおよびプログラム | |
KR20170003446A (ko) | 정보 처리장치, 정보 처리 시스템, 정보 처리장치의 제어방법 및 프로그램 | |
JP6508894B2 (ja) | サーバ装置、サーバ装置の制御方法及びプログラム | |
US10911306B2 (en) | Information processing apparatus, control method, and storage medium storing program | |
US10379789B2 (en) | Data management system that updates a replication database, data management apparatus, method, and storage medium storing program | |
JP6643114B2 (ja) | 画像処理装置、その制御方法、及びプログラム | |
JP6639363B2 (ja) | サーバ装置、情報処理方法及びプログラム | |
JP2018073283A (ja) | システム、サーバー装置、クライアント装置、情報処理方法及びプログラム | |
JP2019197416A (ja) | サーバ装置、情報処理方法及びプログラム | |
JP6812249B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
WO2016013217A1 (en) | Image forming apparatus, system, method for controlling image forming apparatus, and program | |
JP7171685B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2017151721A (ja) | 情報処理装置、クライアント装置、バックアップ方法、及びプログラム | |
JP2019185257A (ja) | サーバー装置、情報処理方法及びプログラム | |
JP2020205488A (ja) | 情報処理装置、方法およびプログラム | |
JP6381218B2 (ja) | ネットワークデバイス、ネットワークデバイスの制御方法およびそのプログラム | |
JP6605077B2 (ja) | 情報処理装置、情報処理装置の制御方法およびそのプログラム | |
JP6987503B2 (ja) | システム、情報処理装置、情報処理方法及びプログラム | |
JP2018195882A (ja) | クライアント装置、情報処理方法及びプログラム | |
JP2020098543A (ja) | 情報処理システム及び制御方法 | |
JP2017097797A (ja) | 通信装置、情報処理方法及びプログラム |