(57)【特許請求の範囲】
【請求項１】
仮想計算機内で動作する手段であって、端末装置から受信した通信データから更新データを抽出して、前記仮想計算機がアクセスするファイルを更新するとともに、更新データを含む同期データを他装置に送信する業務処理手段と、
１）前記業務処理手段が端末装置から受信する通信データを、前記仮想計算機を動作させる制御手段から取得して保持し、前記業務処理手段による同期データの送信失敗を検出すると、保持している通信データを他装置に送信し、また、２）他装置が保持していた通信データを受信すると更新データを抽出して、前記ファイルを更新する監視手段とを備える、同期処理装置。
【請求項２】
前記業務処理手段は、所定期間ごとに、直前の期間内に得られた更新データを含む同期データを他装置に送信し、また、他装置から同期データを受信すると、更新データを抽出して前記ファイルを更新し、
前記監視手段は、１）同期データの送信を前記制御手段経由で検出すると、保持している通信データを破棄し、また、２）所定期間以上同期データの送出を検出しないと、前記業務処理手段が同期データの送信に失敗したと判断して、保持している通信データを他装置に送信する、請求項１の同期処理装置。
【請求項３】
前記制御手段は、前記同期処理装置を制御するホストＯＳおよび前記ホストＯＳ上で実行される仮想計算機モニタであり、
前記業務処理手段は、前記仮想計算機上で実行されるアプリケーションプログラムであって、前記仮想計算機モニタおよび前記ホストＯＳを経由して、端末装置および他装置と通信を実行し、
前記監視手段は、前記ホストＯＳ上で実行されるプログラムであって、前記ホストＯＳ経由で前記アプリケーションプログラムの通信の検出及び通信データの取得を行う、請求項１乃至２の何れか１項の同期処理装置。
【請求項４】
請求項１乃至３の何れか１項の同期処理装置、および、前記同期処理装置と同期データを通信する他装置を包含する同期処理システム。
【請求項５】
端末装置から受信した通信データから更新データを抽出して、ファイルを更新するとともに、更新データを含む同期データを他装置に送信する業務処理を、仮想計算機内で実行し、
１）前記業務処理において端末装置から受信する通信データを、前記仮想計算機を実行させる制御手段から取得して保持し、前記業務処理における同期データの送信失敗を検出すると、保持している通信データを他装置に送信し、また、２）他装置が保持していた通信データを受信すると更新データを抽出して、前記ファイルを更新する監視処理を前記仮想計算機外で実行する、同期処理方法。
【請求項６】
前記業務処理において、所定期間ごとに、直前の期間内に得られた更新データを含む同期データを他装置に送信し、また、他装置から同期データを受信すると、更新データを抽出して前記ファイルを更新し、
前記監視処理において、１）同期データの送信を前記制御手段経由で検出すると、保持している通信データを破棄し、また、２）所定期間以上同期データの送出を検出しないと、前記業務処理における同期データの送信に失敗したと判断して、保持している通信データを他装置に送信する、請求項５の同期処理方法。
【請求項７】
仮想計算機によって実行されて、端末装置から受信した通信データから更新データを抽出して、ファイルを更新するとともに、更新データを含む同期データを他装置に送信する業務処理を実行する業務処理プログラムと、
前記仮想計算機を実行するコンピュータにより前記仮想計算機外で実行され、１）前記業務処理において端末装置から受信する通信データを、前記仮想計算機を実行させる制御手段から取得して保持し、前記業務処理における同期データの送信失敗を検出すると、保持している通信データを他装置に送信し、また、２）他装置が保持していた通信データを受信すると更新データを抽出して、前記ファイルを更新する監視処理を実行する監視プログラムとを、包含する同期処理プログラム。
【請求項８】
前記業務処理プログラムは、前記仮想計算機に、所定期間ごとに、直前の期間内に得られた更新データを含む同期データを他装置に送信し、また、他装置から同期データを受信すると、更新データを抽出して前記ファイルを更新する前記業務処理を実行させ、
前記監視プログラムは、前記コンピュータに、１）同期データの送信を前記制御手段経由で検出すると、保持している通信データを破棄し、また、２）所定期間以上同期データの送出を検出しないと、前記業務処理における同期データの送信に失敗したと判断して、保持している通信データを他装置に送信する前記監視処理を実行させる、請求項７の同期処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期処理装置、同期処理システム、同期処理方法、および、同期処理プログラム、特に、複数の装置が有するデータの同期を行う同期処理装置、同期処理システム、同期処理方法、および、同期処理プログラムに関する。
【背景技術】
【０００２】
特許文献１は、加入者情報管理装置（ＨＳＳ：Home Subscriber Server）を含む通信システムを開示する。ＨＳＳは、加入者の識別情報と当該加入者に提供するサービス情報を含む加入者データを記憶し、当該加入者の端末にサービスを提供する。
【０００３】
この通信システムは、Ａ系とＢ系の２つのＨＳＳを包含する冗長構成を採用している。加入者は、Ａ系またはＢ系のＨＳＳと通信して加入者データの利用・変更を行う。２つのＨＳＳは、周期的に加入者データのコピー処理を互いに行ってデータを同期させる。このため、加入者は、一方のＨＳＳで更新した加入者データに基づいて、他方のＨＳＳからサービス提供を受けることが出来る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７８４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１が開示する２つのＨＳＳは、周期的に加入者データの同期を行う。したがって、どちらかのＨＳＳに障害が発生したとき、障害が発生する直前の周期の加入者データが消失する。
【０００６】
この加入者データ消失を防止する為に、２つのＨＳＳの加入者データをリアルタイムに同期することが考えられる。しかし、２つのＨＳＳが地域間の２重化による冗長を行っている場合、リアルタイム同期では、距離による同期遅延が発生し処理能力が低下する。
【０００７】
この処理能力低下を防止する為には、地域間の２重化を行ったうえで、地域ごとに２重化構成を採用し、同一地域内のＨＳＳ間では加入者データをリアルタイムに同期することが考えられる。しかし、この構成は４重化の冗長構成となってしまい、大量のリソースを消費する。
【０００８】
本発明は、上述の課題を解決するための同期処理装置、同期処理システム、同期処理方法、および、同期処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施形態の同期処理装置は、仮想計算機内で動作する手段であって、端末装置から受信した通信データから更新データを抽出して、前記仮想計算機がアクセスするファイルを更新するとともに、更新データを含む同期データを他装置に送信する業務処理手段と、１）前記業務処理手段が端末装置から受信する通信データを、前記仮想計算機を動作させる制御手段から取得して保持し、前記業務処理手段による同期データの送信失敗を検出すると、保持している通信データを他装置に送信し、また、２）他装置が保持していた通信データを受信すると更新データを抽出して、前記ファイルを更新する監視手段とを備える。
【００１０】
本発明の一実施形態の同期処理方法は、端末装置から受信した通信データから更新データを抽出して、ファイルを更新するとともに、更新データを含む同期データを他装置に送信する業務処理を、仮想計算機内で実行し、１）前記業務処理において端末装置から受信する通信データを、前記仮想計算機を実行させる制御手段から取得して保持し、前記業務処理における同期データの送信失敗を検出すると、保持している通信データを他装置に送信し、また、２）他装置が保持していた通信データを受信すると更新データを抽出して、前記ファイルを更新する監視処理を前記仮想計算機外で実行する。
【００１１】
本発明の一実施形態の同期処理プログラムは、仮想計算機によって実行されて、端末装置から受信した通信データから更新データを抽出して、ファイルを更新するとともに、更新データを含む同期データを他装置に送信する業務処理を実行する業務処理プログラムと、前記仮想計算機を実行するコンピュータにより前記仮想計算機外で実行され、１）前記業務処理において端末装置から受信する通信データを、前記仮想計算機を実行させる制御手段から取得して保持し、前記業務処理における同期データの送信失敗を検出すると、保持している通信データを他装置に送信し、また、２）他装置が保持していた通信データを受信すると更新データを抽出して、前記ファイルを更新する監視処理を実行する監視プログラムとを、包含する
【発明の効果】
【００１２】
本発明にかかる同期処理装置は、複数の装置間で行われる周期的なデータの同期で、データ消失を効率的に防止することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、仮想化されたＨＳＳを備える同期化装置１０を含む同期化処理システム９０の構成例を示す。
【図２】図２は、仮想ＨＳＳ上のＨＳＳ＿ＡＰＬと対向装置７２の間の通信データ７１の流れを示す。
【図３】図３は、監視プログラム４０を備えた同期処理装置１０の構成を示す図である。
【図４】図４は、監視プログラム４０の処理を説明する為の図である。
【図５】図５は、第２の実施の形態にかかる同期処理装置１０の構成を示す図である。
【発明を実施するための形態】
【００１４】
＜第１の実施の形態＞
本実施の形態において、ＨＳＳは仮想化される。図１は、仮想化されたＨＳＳを備える同期処理装置１０を含む同期処理システム９０の構成例を示す。
【００１５】
本実施の形態において、同期処理装置１０はコンピュータ装置である。同期処理装置１０は、仮想計算機２０を生成して実行させる為のプログラムである仮想計算機モニタ３１、及び、その実行環境を与えるホストＯＳ３０（Operating System）を備える。
【００１６】
ここで、ホストＯＳ３０は、例えば、Ｌｉｎｕｘ（登録商標）である。仮想計算機モニタ３１は、例えば、ＫＶＭ（Kernel-based Virtual Machine）である。ホストＯＳ３０と仮想計算機モニタ３１は、統合された仮想計算機専用の基盤ソフトウェアであっても良い。
【００１７】
仮想計算機モニタ３１、及び、ホストＯＳ３０は、協働して仮想計算機２０を実行させる。本実施形態において、この仮想計算機２０が、仮想化されたＨＳＳ（以降、仮想ＨＳＳ）である。
【００１８】
仮想ＨＳＳは、その内部で、ゲストＯＳ２３と業務処理プログラム２１を実行する。ここで、ゲストＯＳ２３は、例えば、Ｌｉｎｕｘ（登録商標）である。業務処理プログラム２１は、ＨＳＳの業務を処理するアプリケーションプログラム（以降、ＨＳＳ＿ＡＰＬ）である。
【００１９】
また、ＨＳＳは、仮想計算機２０内のＨＳＳ＿ＡＰＬがアクセスする業務ファイル２２を備える。業務ファイル２２は、例えば、利用者情報を格納している。ＨＳＳ＿ＡＰＬは、例えば、利用者の端末装置と通信データ７１の送受信を行い、ａ）通信データ７１から利用者情報更新データを抽出し、ｂ）当該利用者情報更新データに基づいて、業務ファイル２２に格納されている利用者情報を更新する。
【００２０】
業務ファイル２２は、ＨＳＳ＿ＡＰＬがアクセスできるファイルであればよく、必ずしも、同期処理装置１０が備えている必要は無い。業務ファイル２２は、同期処理装置１０とネットワークで接続された他のファイルサーバ装置上に存在しても良い。
【００２１】
本実施の形態において、同期処理システム９０は、複数の地域に分散配置された複数の同期処理装置１０を包含する。同期処理システム９０は、それら複数の同期処理装置１０内の仮想ＨＳＳにより、地域間冗長構成（Geo-Redundancy）をとっている。同期処理システム９０は、例えば、東京と大阪にそれぞれ、仮想ＨＳＳを備え、各々東京地区または大阪地区にいる利用者にサービスを提供している。
【００２２】
利用者は、それらの複数の仮想ＨＳＳの何れかにアクセスして、業務ファイル２２内の利用者情報の更新を行ったり、当該利用者情報に基づいて、サービスの提供を受けたりする。すなわち、利用者は、例えば、東京で東京地区の仮想ＨＳＳにアクセスして利用者情報を更新し、大阪で、大阪地区の仮想ＨＳＳにアクセスして、東京で更新した利用者情報に基づいてサービスの提供を受ける。
【００２３】
したがって、複数の仮想ＨＳＳが備える業務ファイル２２内に格納されている利用者情報は、同期されていなければならない。通常、この同期は、各仮想ＨＳＳ上のＨＳＳ＿ＡＰＬが利用者の端末装置から受信した更新データを他系に送信し、他系のＨＳＳ＿ＡＰＬがその更新データに基づいて自系の業務ファイル２２を更新することで達成される。
【００２４】
しかし、ある地域のＨＳＳ＿ＡＰＬで障害が発生すると、ＨＳＳ＿ＡＰＬが他地域の仮想ＨＳＳへ更新データを送信できない場合がある。本実施の形態は、この課題を効率的に解決する。
【００２５】
図２は、仮想ＨＳＳ上のＨＳＳ＿ＡＰＬと対向装置７２の間の通信データ７１の流れを示す。ここで、対向装置７２は、例えば、利用者の端末装置、および、他の同期処理装置１０である。図中の双方向の矢印を持つ線分は、仮想ＨＳＳ上のＨＳＳ＿ＡＰＬと対向装置７２間の通信データ７１の流れを示す。
【００２６】
対向装置７２がＨＳＳ＿ＡＰＬに送信した通信データ７１は、同期処理装置１０が備える通信ポート１１、例えば、ＬＡＮポート（Local Area Network）に到達し、ホストＯＳ３０で受信される。ホストＯＳ３０で受信された通信データ７１は、仮想計算機モニタ３１によって、仮想計算機２０の仮想的な通信ポートに届けられ、ゲストＯＳ２３によって受信される。そして、ゲストＯＳ２３が、業務処理プログラム２１である、ＨＳＳ＿ＡＰＬに通信データ７１を出力する。
【００２７】
ＨＳＳ＿ＡＰＬが対向装置７２に送信した通信データ７１は、上記と逆の流れを辿る。ここでのポイントは、ＨＳＳ＿ＡＰＬと対向装置７２間を流れる通信データ７１は、すべて、ホストＯＳ３０を経由するということである。
【００２８】
同期処理装置１０は、このＨＳＳ＿ＡＰＬと対向装置７２間を流れる通信データ７１を監視し、必要なデータを取得する監視プログラム４０を備えている。
【００２９】
図３は、監視プログラム４０を備えた同期処理装置１０の構成を示す図である。監視プログラム４０は、ホストＯＳ３０が提供するＡＰＩ（Application Program Interface）を利用して通信データ７１を取得する。このＡＰＩは、例えば、通信ドライバである。具体的なＡＰＩは、ホストＯＳ３０に依存するが、このようなＡＰＩは良く知られたものである。
【００３０】
監視プログラム４０は、例えば、通信ドライバ、または通信ドライバの付加ルーチンと監視用のプロセスとから構成される。なお、仮想計算機モニタ３１が通信データ７１の監視ＡＰＩを提供している場合、監視プログラム４０は、当該ＡＰＩを用い通信データ７１を監視しても良い。
【００３１】
図４は、監視プログラム４０の処理を説明する為の図である。
【００３２】
Ａ）まず、監視プログラム４０は、上述したＡＰＩを用いて通信データ７１を監視し、利用者の端末装置からＨＳＳ＿ＡＰＬが受信する通信データ７１を保持する（以降、保持されたデータを保持データと呼ぶ）。
【００３３】
Ｂ）監視プログラム４０は、通信データ７１を監視し、ＨＳＳ＿ＡＰＬが他の同期処理装置１０に、「更新データを正常に送信していない」ことを検出すると、保持データを、他の同期処理装置１０に送信する（図中のＢの矢印）。この送信は、ホストＯＳ３０と通信ポート１１を経由して行われる。ＨＳＳ＿ＡＰＬが他の同期処理装置１０に、更新データを正常に送信していない場合は、自系の仮想ＨＳＳに障害が発生した可能性が高い。
【００３４】
ここで、ＨＳＳ＿ＡＰＬが周期的に更新データを他の同期処理装置１０に送信している場合、監視プログラム４０は、例えば、その一周期の時間を超えて同期データの送信が無ければ、「更新データを正常に送信していない」と判断する。なお、仮想計算機モニタ３１が、各仮想計算機２０の正常／異常を通知するＡＰＩを備えている場合、監視プログラム４０は、当該ＡＰＩを用いて、仮想計算機２０の異常を検出すると、「更新データを正常に送信していない」と判断しても良い。
【００３５】
Ｃ）なお、監視プログラム４０は、ＨＳＳ＿ＡＰＬが他の同期処理装置１０に更新データを正常に送信したことを検出すると、保持データを破棄しても良い。この場合、直前の周期の自系の更新データは、他系に正常に送信されて他系の業務ファイル２２に反映されたと想定できるからである。
【００３６】
Ｄ）他の監視プログラム４０から保持データを受信した場合、監視プログラム４０は、まず、１）受信した保持データ、即ち、利用者の端末から他の同期処理装置１０のＨＳＳ＿ＡＰＬに送信された通信データ７１から利用者情報更新データを抽出する。この処理は、上述した、ＨＳＳ＿ＡＰＬのａ）の処理と同じである。
【００３７】
次に、２）監視プログラム４０は、抽出した当該利用者情報更新データに基づいて、業務ファイル２２を更新する（図中のＤの矢印）。この処理は、上述した、ＨＳＳ＿ＡＰＬのｂ）の処理と同じである。
【００３８】
なお、ここで、監視プログラム４０は、仮想計算機２０上の業務ファイル２２を、仮想計算機２０の外から更新することになる。したがって、監視プログラム４０は、業務ファイル２２について、仮想ファイルのアドレスと当該仮想ファイルを記憶する実ファイルのアドレスとの写像規則を参照することが必要となる。このような写像規則は、業務ファイル２２が当該仮想ファイル専用のディスクボリュームにアロケートされている場合は、単純なものになる。写像規則は、ボリューム単位の写像規則となるからである。無論、本実施形態における同期処理装置１０は、そのような仮想ファイルのアロケーションを条件とするものではない。
【００３９】
本実施の形態にかかる同期処理装置１０は、複数の同期処理装置１０の間で行われる周期的なファイルの同期で、更新データ消失を効率的に防止することができる。その理由は、監視プログラム４０が、業務処理プログラム２１による業務ファイル２２の更新データ送信がなされないことを検出し、自系の業務処理プログラム２１が利用者の端末装置から受信した通信データ７１である保持データを他系に送信するからである。他系の監視プログラム４０は、保持データを受信すると、保持データに基づいて、自系の業務ファイル２２を更新して利用者情報を同期させる。
【００４０】
さらに、本実施の形態にかかる同期処理装置１０は、高速なパケット通信においても、処理に必要なデータサイズの肥大化を防ぐことができる。その理由は、監視プログラム４０が、業務処理プログラム２１による業務ファイル２２の同期用の更新データ送信を検出すると、保持データを破棄するからである。
【００４１】
保持データのデータサイズが肥大化しないため、監視プログラム４０は通信データ７１の保持をメモリ上で行うことができる。そのため、同期処理装置１０のディスク入出力を圧迫しない効果がある。仮想化構成では、1台のコンピュータ装置に複数の仮想化した装置が同居することがある。そのため、ディスク入出力を圧迫しない設計にすることは重要となる。
【００４２】
＜第２の実施形態＞
図５は、本実施の形態にかかる同期処理装置１０の構成を示す図である。
【００４３】
本実施の形態にかかる同期処理装置１０は、業務処理部６２、および、監視部６３を備える。
【００４４】
業務処理部６２は、仮想計算機２０内で動作する部分であって、利用者の端末装置から受信した通信データ７１から更新データを抽出して、仮想計算機２０がアクセスするファイルを更新するとともに、更新データを含む同期データを他装置に送信する。
【００４５】
監視部６３は、業務処理部６２が端末装置から受信する通信データ７１を、仮想計算機２０を動作させる制御部から取得して保持し、業務処理部６２による同期データの送信失敗を検出すると、保持している通信データ７１を他の同期処理装置１０に送信する。また、監視部６３は、他の同期処理装置１０が保持していた通信データ７１を受信すると更新データを抽出して、ファイルを更新する。
【００４６】
ここで、制御部は、第１の実施の形態におけるホストＯＳ３０および仮想計算機モニタ３１に相当するものである。但し、制御部は、仮想計算機２０実行用の専用装置として、論理回路で構成されていても良い。
【００４７】
業務処理部６２は、第１の実施の形態における業務処理プログラム２１に相当するものである。但し、業務処理部６２は、仮想計算機２０の環境内で動作する専用装置として、論理回路で構成されていても良い。
【００４８】
なお、業務処理部６２が行う業務処理は、ＨＳＳの業務処理に限られない。通信データ７１から更新データを抽出し、仮想計算機２０がアクセスするファイルを更新し、同期データを他の同期処理装置１０に送信するのであれば、業務処理は他のものでも良い。
【００４９】
監視部６３は、第１の実施の形態における監視プログラム４０に相当するものである。但し、監視部６３は、専用装置として論理回路で構成されていても良い。
【００５０】
本実施の形態にかかる同期処理装置１０は、複数の同期処理装置１０間で行われる周期的なデータの同期で、データ消失を効率的に防止することができる。その理由は、監視部６３が、業務処理部６２によるファイルの同期用の更新データ送信がなされないことを検出すると、自系の業務処理部６２が利用者の端末装置から受信した通信データ７１である保持データを他系に送信するからである。他系の監視部６３は、保持データを受信すると、保持データに基づいて、自系のファイルを更新する。
【００５１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００５２】
１０    同期処理装置
１１    通信ポート
２０    仮想計算機
２１    業務処理プログラム
２２    業務ファイル
２３    ゲストＯＳ
３０    ホストＯＳ
４０    監視プログラム
３１    仮想計算機モニタ
６２    業務処理部
６３    監視部
７１    通信データ
７２    対向装置
９０    同期処理システム
【図１】
0006384289.tif 000002
【図２】
0006384289.tif 000003
【図３】
0006384289.tif 000004
【図４】
0006384289.tif 000005
【図５】
0006384289.tif 000006