(57)【要約】      （修正有）【課題】レプリケーションを行うシステムにおいて、データの再送に使用する資源の量を削減する。【解決手段】第１装置１１１と、第２装置２１１とを有し、第１装置は、第１装置が管理する複数の項目のうち更新された第１項目の値と、更新の順番を表す通し番号とを第２装置に送信する送信部１１１４と、通し番号を項目の識別情報に対応付けて格納する番号格納部１１１５と、番号格納部に格納されている第１項目の識別情報に対応する通し番号を、第１項目の値と共に送信された通し番号に設定する設定部１１１３と、第２装置に送信された通し番号が第２装置から送り返された場合に、当該通し番号を番号格納部から削除すると共に、当該通し番号より小さい通し番号を番号格納部から検出する検出部１１１１とを有する。送信部は、検出部により検出された通し番号と共に既に送信された第２項目の値を、第２装置に再度送信する。【選択図】図２
2015170226.tif 000002
【特許請求の範囲】
【請求項１】
第１情報処理装置と、
第２情報処理装置と、
を有し、
前記第１情報処理装置は、
前記第１情報処理装置が管理する複数の項目のうち更新された第１項目の値と、更新の順番を表す通し番号とを前記第２情報処理装置に送信する送信部と、
通し番号を項目の識別情報に対応付けて格納する番号格納部と、
前記番号格納部に格納されている前記第１項目の識別情報に対応する通し番号を、前記第１項目の値と共に送信された通し番号に設定する設定部と、
前記第２情報処理装置に送信された通し番号が前記第２情報処理装置から送り返された場合に、当該通し番号を前記番号格納部から削除すると共に、当該通し番号より小さい通し番号を前記番号格納部から検出する検出部と、
を有し、
前記送信部は、
前記検出部により検出された通し番号と共に既に送信された第２項目の値を、前記第２情報処理装置に再度送信する、
データ転送システム。
【請求項２】
前記設定部は、
前記第２項目の値に対して新たな通し番号を割り当て、前記番号格納部に格納されている前記第２項目の識別情報に対応する通し番号を、前記新たな通し番号に設定し、
前記送信部は、
前記第２項目の値と共に、前記新たな通し番号を前記第２情報処理装置に送信する
請求項１記載のデータ転送システム。
【請求項３】
前記第２情報処理装置は、
前記第１情報処理装置から前記第２項目の値と前記新たな通し番号とを受信した場合に、受信した前記新たな通し番号を前記第１情報処理装置に送り返す第２送信部
を有する請求項２記載のデータ転送システム。
【請求項４】
複数の項目のうち更新された第１項目の値と、更新の順番を表す通し番号とを他のコンピュータに送信し、
通し番号を項目の識別情報に対応付けて格納する番号格納部に格納されている前記第１項目の識別情報に対応する通し番号を、前記第１の項目の値と共に送信された通し番号に設定し、
前記他のコンピュータに送信された通し番号が前記他のコンピュータから送り返された場合に、当該通し番号を前記番号格納部から削除すると共に、当該通し番号より小さい通し番号を前記番号格納部から検出し、
前記検出された通し番号と共に既に送信された第２項目の値を、前記他のコンピュータに再度送信する、
処理をコンピュータが実行するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レプリケーションに関する。
【背景技術】
【０００２】
情報処理システムによってサービスを提供する事業者（例えば通信事業者等）は、事業継続計画（ＢＣＰ：Business continuity planning）の一環として、情報処理システムにレプリケーションを行う機能を実装する。特に、ＣＡＰＥＸ（Capital Expenditure）を削減するという観点から、仮想化環境においてレプリケーションが行われるようになっている。
【０００３】
レプリケーションとは、情報処理システムにおいて管理されるデータベースの複製を、そのデータベースが配置されたコンピュータとは別のコンピュータ上に生成することである。レプリケーションによって障害に対する耐性を高められるので、例えば災害等が発生した場合における情報処理システムの停止を抑制し、また、たとえ情報処理システムが停止したとしても早期に復旧してサービスの提供を再開することができる。
【０００４】
別のコンピュータ上に複製を生成する際には、元のデータを管理するコンピュータから複製を管理するコンピュータへデータが送信されるが、コンピュータ間の通信経路上等においてパケットロスが発生し、データの一部が失われることが有る。特に仮想化環境においては、パケットが多段のネットワーク（例えば、仮想ネットワーク、ＬＡＮ（Local Area Network）及びＷＡＮ（Wide Area Network）等）を経由するため、パケットロスが発生しやすい。
【０００５】
データの喪失に対する対処として、元のデータを管理するコンピュータが、複製を管理するコンピュータに対して何らかの方法によってデータを再送することが行われている。或る文献には、サーバとクライアントとが設けられたデータ同期システムにおいて、更新されるデータ項目とは別に、データ項目の更新に対応するグローバル一意識別子（ＧＵＩＤ）を用意し、ＧＵＩＤを用いて同期処理の中断に対処することが記載されている。但し、この文献におけるシステムは、サーバ及びクライアントの両方においてデータ項目が更新されるシステムであることを前提としている。
【０００６】
また、ＴＣＰ（Transmission Control Protocol）には再送の仕組みが設けられている。ＴＣＰにおいては、データの送達がＡＣＫ（すなわち肯定応答）により確認される。元データを管理するコンピュータは、予め定められた時間を経過してもＡＣＫを受信しない場合（すなわち、タイムアウトした場合）にデータを再送する。ここで、タイムアウトまでの時間は、タイムアウトが発生する度により長い時間に設定される。そのため、ＴＣＰにおける送達確認を利用すると、再送に利用する通信バッファをメモリにおいて保持する時間が長くなり、アプリケーションプログラムによる処理等に影響を及ぼす。よって、データの再送に利用する資源（例えばメモリ）の量が多くなるという点では適切な技術であるとは言えない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００９−５１６２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従って、本発明の目的は、１つの側面では、レプリケーションを行うシステムにおいて、データの再送に使用する資源の量を削減するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本発明に係るデータ転送システムは、第１情報処理装置と、第２情報処理装置とを有する。そして、上で述べた第１情報処理装置は、第１情報処理装置が管理する複数の項目のうち更新された第１項目の値と、更新の順番を表す通し番号とを第２情報処理装置に送信する送信部と、通し番号を項目の識別情報に対応付けて格納する番号格納部と、番号格納部に格納されている第１項目の識別情報に対応する通し番号を、第１項目の値と共に送信された通し番号に設定する設定部と、第２情報処理装置に送信された通し番号が第２情報処理装置から送り返された場合に、当該通し番号を番号格納部から削除すると共に、当該通し番号より小さい通し番号を番号格納部から検出する検出部とを有する。そして、上で述べた送信部は、検出部により検出された通し番号と共に既に送信された第２項目の値を、第２情報処理装置に再度送信する。
【発明の効果】
【００１０】
１つの側面では、レプリケーションを行うシステムにおいて、データの再送に使用する資源の量を削減できるようになる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施の形態のシステム概要を示す図である。
【図２】図２は、運用系サーバとして実行されるＶＭ及び待機系サーバとして実行されるＶＭの機能ブロック図である。
【図３】図３は、セッションデータテーブルに格納されるデータの一例を示す図である。
【図４】図４は、管理テーブルに格納されるデータの一例を示す図である。
【図５】図５は、セッションデータが更新された際に実行される処理の処理フローである。
【図６】図６は、更新通知の一例を示す図である。
【図７】図７は、シーケンス番号を含むパケットの一例を示す図である。
【図８】図８は、セッションデータを再送する際に実行される処理の処理フローである。
【図９】図９は、シーケンス番号の格納及び削除について説明するための図である。
【図１０】図１０は、シーケンス番号の格納及び削除について説明するための図である。
【図１１】図１１は、シーケンス番号の格納及び削除について説明するための図である。
【図１２】図１２は、シーケンス番号の格納及び削除について説明するための図である。
【図１３】図１３は、シーケンス番号の格納及び削除について説明するための図である。
【図１４】図１４は、シーケンス番号の格納及び削除について説明するための図である。
【図１５】図１５は、シーケンス番号の格納及び削除について説明するための図である。
【図１６】図１６は、シーケンス番号の格納及び削除について説明するための図である。
【図１７】図１７は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１２】
図１に、本実施の形態におけるシステム概要を示す。例えばインターネットであるＷＡＮ３には、拠点１０におけるネットワーク機器１３と、拠点２０におけるネットワーク機器２３とが接続される。ネットワーク機器１３は、ＬＡＮ１４を介して、物理サーバ１１及び１２並びに他のネットワーク機器（図示せず）等に接続される。
【００１３】
物理サーバ１１は、ＮＩＣ（Network Interface Card）１１２を有する。物理サーバ１１においては、複数のＶＭ（Virtual Machine）１１１が実行されており、複数のＶＭ１１１の間の通信は仮想ネットワーク１１０を介して行われる。ＶＭ１１１が物理サーバ１１以外の装置と通信を行う場合には、ＶＭ１１１はＮＩＣ１１２を介してセッションデータをネットワーク機器１３に送信する。ネットワーク機器１３は、物理サーバ１１から受信したセッションデータを他の装置に中継する。なお、拠点２０は拠点１０と同様であるので説明を省略する。
【００１４】
ＷＡＮ３には、ＬＡＮ５を介してユーザ端末５１及び５２が接続される。ユーザ端末５１及び５２は、拠点におけるＶＭが提供するサービスを利用する。
【００１５】
以下では、複数のＶＭ１１１のうちいずれかのＶＭ１１１が運用系サーバとして実行され、複数のＶＭ２１１のうちいずれかのＶＭ２１１が待機系サーバとして実行されるとする。ユーザ端末５１及び５２は、運用系サーバであるＶＭ１１１が提供するサービスを利用する。図２に、このような場合におけるＶＭ１１１及びＶＭ２１１の機能ブロック図を示す。図２の例では、運用系サーバであるＶＭ１１１は、受信部１１１０と、検出部１１１１と、管理テーブル格納部１１１２と、生成部１１１３と、送信部１１１４と、セッションデータ格納部１１１５とを有する。
【００１６】
生成部１１１３は、セッションデータ格納部１１１５に格納されているセッションデータが更新された場合に、更新されたセッションデータのコールＩＤ及びフィールド番号に対応するシーケンス番号を、生成部１１１３が生成した新たなシーケンス番号に設定する。そして、生成部１１１３は、生成されたシーケンス番号を送信部１１１４に出力する。送信部１１１４は、セッションデータ格納部１１１５に格納されているセッションデータが更新された場合に、更新されたセッションデータ、コールＩＤ、フィールド番号、及び生成されたシーケンス番号を含む更新通知を、待機系サーバであるＶＭ２１１に送信する。
【００１７】
受信部１１１０は、待機系サーバであるＶＭ２１１からシーケンス番号を受信し、検出部１１１１に出力する。検出部１１１１は、受信部１１１０から受け取ったシーケンス番号を管理テーブル格納部１１１２から削除する。また、検出部１１１１は、受信部１１１０から受け取ったシーケンス番号より小さいシーケンス番号を管理テーブル格納部１１１２から検出する。そして、検出部１１１１は、検出されたシーケンス番号を生成部１１１３に出力する。生成部１１１３は、検出部１１１１から受け取ったシーケンス番号を、生成部１１１３が生成した新たなシーケンス番号で更新する。そして、生成部１１１３は、新たなシーケンス番号、並びに新たなシーケンス番号に対応するコールＩＤ及びフィールド番号を、送信部１１１４に出力する。送信部１１１４は、生成部１１１３から受け取ったコールＩＤ及びフィールド番号に対応するセッションデータをセッションデータ格納部１１１５から読み出す。そして、送信部１１１４は、読み出したセッションデータ、コールＩＤ、フィールド番号及びシーケンス番号を含む再送通知を、待機系サーバであるＶＭ２１１に再送する。
【００１８】
待機系サーバであるＶＭ２１１は、受信部２１１０と、セッションデータ格納部２１１１と、送信部２１１２とを有する。
【００１９】
受信部２１１０は、運用系サーバであるＶＭ１１１から更新通知を受信し、セッションデータ格納部２１１１に格納されている、更新通知に含まれるコールＩＤ及びフィールド番号に対応付けて、更新通知に含まれるセッションデータを格納する。また、受信部２１１０は、更新通知に含まれるシーケンス番号を、送信部２１１２に出力する。
【００２０】
送信部２１１２は、受信部２１１０から受け取ったシーケンス番号を、運用系サーバであるＶＭ１１１に送信する。
【００２１】
図３に、セッションデータ格納部１１１５及び２１１１に格納されるセッションデータテーブルの一例を示す。図３の例では、各コールＩＤについて、フィールド番号と、フィールドに格納されたデータ（本実施の形態においては、呼の状態を表すセッションデータ）とが格納される。本実施の形態においては、セッションデータ格納部１１１５からセッションデータ格納部２１１１にレプリケーションが行われる。よって、セッションデータ格納部２１１１には、セッションデータ格納部１１１５に格納されているセッションデータテーブルの複製が格納される。
【００２２】
図４に、管理テーブル格納部１１１２に格納される管理テーブルの一例を示す。図４の例では、各コールＩＤについて、フィールド番号と、シーケンス番号とが格納される。シーケンス番号は、更新の順番を表す通し番号である。
【００２３】
次に、図５乃至図７を用いて、セッションデータが更新された際に行われる処理について説明する。
【００２４】
まず、生成部１１１３は、セッションデータ格納部１１１５に格納されているセッションデータが、例えばユーザ端末５１又は５２からの通信によって更新されたことを検出する（図５：ステップＳ１）。また、生成部１１１３は、ステップＳ１において検出されたセッションデータのコールＩＤ及びフィールド番号をセッションデータテーブルから特定する。
【００２５】
生成部１１１３は、新たにシーケンス番号を生成する（ステップＳ３）。例えば、最後に生成されたシーケンス番号が「４」である場合には、ステップＳ３においてシーケンス番号「５」を生成する。生成部１１１３は、生成されたシーケンス番号を送信部１１１４に出力する。
【００２６】
生成部１１１３は、管理テーブルにおいて、更新されたセッションデータのコールＩＤ及びフィールド番号に対応するシーケンス番号を、ステップＳ３において生成されたシーケンス番号に設定する（ステップＳ５）。ステップＳ５においては、更新されたセッションデータのコールＩＤ及びフィールド番号に対応するシーケンス番号が管理テーブルに格納されている場合には、そのシーケンス番号をステップＳ３において生成されたシーケンス番号で更新する。一方、更新されたセッションデータのコールＩＤ及びフィールド番号に対応するシーケンス番号が管理テーブルに格納されていない場合には、更新されたセッションデータのコールＩＤ及びフィールド番号に対応付けて、ステップＳ３において生成されたシーケンス番号を格納する。これにより、最後の更新の際に生成されたシーケンス番号が管理テーブルに格納されるようになる。
【００２７】
生成部１１１３は、更新されたセッションデータのコールＩＤ及びフィールド番号を送信部１１１４に出力する。送信部１１１４は、更新されたセッションデータ、更新されたセッションデータのコールＩＤ及びフィールド番号、並びにステップＳ３において生成されたシーケンス番号を含む更新通知を生成し、待機系サーバであるＶＭ２１１に送信する（ステップＳ７）。
【００２８】
図６に、更新通知の一例を示す。図６の例では、ヘッダ部と、データ部とが含まれる。ヘッダ部には、送信元アドレスと、宛先アドレスと、シーケンス番号とが含まれる。データ部には、コールＩＤと、フィールド番号と、データとが含まれる。フィールド番号とデータとのセットは、更新に係るフィールドの数だけ含まれる。
【００２９】
待機系サーバであるＶＭ２１１の受信部２１１０は、運用系サーバであるＶＭ１１１から更新通知を受信する（ステップＳ９）。
【００３０】
受信部２１１０は、セッションデータ格納部２１１１に格納されている、受信した更新通知に含まれるコールＩＤ及びフィールド番号に対応するセッションデータを、受信した更新通知に含まれるセッションデータで更新する（ステップＳ１１）。受信部２１１０は、更新通知に含まれるシーケンス番号を送信部２１１２に出力する。
【００３１】
送信部２１１２は、受信部２１１０から受け取ったシーケンス番号を含むパケットを生成し、運用系サーバであるＶＭ１１１に送り返す（ステップＳ１３）。
【００３２】
図７に、シーケンス番号を含むパケットの一例を示す。図７の例では、ヘッダ部と、データ部とが含まれる。ヘッダ部には、送信元アドレスと、宛先アドレスと、シーケンス番号とが含まれる。データ部にはその他のデータが含まれる。
【００３３】
運用系サーバであるＶＭ１１１の受信部１１１０は、待機系サーバであるＶＭ２１１から、シーケンス番号を含むパケットを受信する（ステップＳ１５）。受信部１１１０は、受信したシーケンス番号を検出部１１１１に出力する。
【００３４】
検出部１１１１は、受信部１１１０から受け取ったシーケンス番号と同じシーケンス番号を管理テーブルから削除する（ステップＳ１７）。
【００３５】
検出部１１１１は、受信部１１１０から受け取ったシーケンス番号より小さいシーケンス番号を管理テーブルから探索する（ステップＳ１９）。
【００３６】
受信部１１１０から受け取ったシーケンス番号より小さいシーケンス番号とは、受信部１１１０から受け取ったシーケンス番号より先にＶＭ２１１に送信されたシーケンス番号であるにもかかわらず、未だ送り返されていないシーケンス番号である。したがって、このシーケンス番号を含む更新通知は、待機系サーバであるＶＭ２１１に到達していない。
【００３７】
そこで、ステップＳ１９において、受信部１１１０から受け取ったシーケンス番号より小さいシーケンス番号が検出された場合、セッションデータを再送するため、以下のような処理が行われる。
【００３８】
図８を用いて、セッションデータを再送する際に実行される処理について説明する。まず、検出部１１１１は、ステップＳ１９において検出されたシーケンス番号を生成部１１１３に出力する。生成部１１１３は、管理テーブルに格納されている、検出部１１１１から受け取ったシーケンス番号を、新たなシーケンス番号で更新する（図８：ステップＳ２１）。例えば、最後に生成されたシーケンス番号が「５」である場合には、ステップＳ２１における新たなシーケンス番号を「６」とする。生成部１１１３は、新たなシーケンス番号、並びに新たなシーケンス番号に対応するコールＩＤ及びフィールド番号を、送信部１１１４に出力する。
【００３９】
送信部１１１４は、生成部１１１３から受け取ったコールＩＤ及びフィールド番号に対応するセッションデータを、セッションデータテーブルから読み出す。そして、送信部１１１４は、生成部１１１３から受け取ったコールＩＤ及びフィールド番号、そのコールＩＤ及びフィールド番号に対応するセッションデータ、並びに生成部１１１３から受け取ったシーケンス番号を含む再送通知を生成する。そして、送信部１１１４は、待機系サーバであるＶＭ２１１に再送通知を送信する（ステップＳ２３）。再送通知の構造は、図６に示した更新通知の構造と同様である。
【００４０】
待機系サーバであるＶＭ２１１の受信部２１１０は、運用系サーバであるＶＭ１１１から再送通知を受信する（ステップＳ２５）。
【００４１】
受信部２１１１は、セッションデータ格納部２１１１に格納されている、受信した再送通知に含まれるコールＩＤ及びフィールド番号に対応付けて、受信した再送通知に含まれるセッションデータをセッションデータテーブルに格納する（ステップＳ２７）。受信部２１１０は、再送通知に含まれるシーケンス番号を送信部２１１２に出力する。
【００４２】
送信部２１１２は、受信部２１１０から受け取ったシーケンス番号を含むパケットを生成し、運用系サーバであるＶＭ１１１に送り返す（ステップＳ２９）。
【００４３】
運用系サーバであるＶＭ１１１の受信部１１１０は、待機系サーバであるＶＭ２１１から、シーケンス番号を含むパケットを受信する（ステップＳ３１）。受信部１１１０は、受信したシーケンス番号を検出部１１１１に出力する。
【００４４】
検出部１１１１は、受信部１１１０から受け取ったシーケンス番号と同じシーケンス番号を管理テーブルから削除する（ステップＳ３３）。
【００４５】
検出部１１１１は、受信部１１１０から受け取ったシーケンス番号より小さいシーケンス番号を管理テーブルから探索する（ステップＳ３５）。
【００４６】
図１に示したようなシステムにおいては、ＶＭ１１１とＶＭ２１１との間で通信を行う場合には仮想ネットワーク１１０、ＬＡＮ１４及びＷＡＮ３を経由することになるので、パケットロスが発生しやすい。このような場合にＡＣＫによる送達確認を利用すると、再送のために通信バッファを保持する期間が長くなり、アプリケーションプログラムによる処理に影響を及ぼす。しかし、本実施の形態においては、ＡＣＫの受信を待たずに、更新されたセッションデータを順次送信することになる。そのため、再送のために通信バッファを保持しなくてもよくなるので、メモリの使用量を少なくすることができるようになる。
【００４７】
また、或るフィールドのセッションデータ（ここでは、ＳＤ１とする）の送信に失敗し、そのＳＤ１を再送する前に、ＳＤ１が更新されて更新後のセッションデータ（ここでは、ＳＤ２とする）の送信に成功したとする。このような場合には再送を行わなくてもよいので、再送に使用するメモリ資源及び通信帯域等を節約できるようになる。
【００４８】
なお、セッションデータが待機系サーバであるＶＭ２１１に到達したものの、シーケンス番号を含むパケットが通信の途中で失われることも考えられる。本実施の形態において、このようなケースはセッションデータの送信失敗として取り扱われるので、セッションデータの再送が行われるようになる。
【００４９】
図９乃至図１６を用いて、管理テーブルにおけるシーケンス番号の削除及び格納について具体的に説明する。初期状態として、図９に示すようなデータが管理テーブルに格納されているとする。すなわち、コールＩＤ「０１」の各フィールド番号に対応付けて、シーケンス番号「１」が格納されている。
【００５０】
図９に示した状態において、シーケンス番号「１」を含むパケットを待機系サーバであるＶＭ２１１から受信したとする。これは、シーケンス番号「１」と共に送信されたセッションデータを待機系サーバであるＶＭ２１１が受信したことを意味する。このような場合は、管理テーブルにおける全てのシーケンス番号「１」が削除され、管理テーブルは図１０に示すような状態になる。
【００５１】
図１０に示した状態において、フィールド番号が「３」及び「４」であるフィールドのセッションデータが同時に更新されたとする。この場合、管理テーブルにおけるフィールド番号「３」及び「４」に対応付けて、シーケンス番号「２」が格納され、管理テーブルは図１１に示すような状態になる。シーケンス番号「２」は、更新後のセッションデータと共に待機系サーバであるＶＭ２１１に送信される。
【００５２】
そして、シーケンス番号「２」を含むパケットを待機系サーバであるＶＭ２１１から受信したとする。これは、シーケンス番号「２」と共に送信されたセッションデータを待機系サーバであるＶＭ２１１が受信したことを意味する。このような場合は、管理テーブルにおけるフィールド番号「３」及び「４」に対応するシーケンス番号「２」が削除され、管理テーブルは図１２に示すような状態になる。
【００５３】
図１１に示した状態において、フィールド番号が「４」及び「５」であるフィールドのセッションデータが同時に更新されたとする。この場合、管理テーブルにおけるフィールド番号「４」及び「５」に対応付けて、シーケンス番号「３」が格納され、管理テーブルは図１３に示すような状態になる。フィールド番号「３」に対応するシーケンス番号「２」はそのままである。シーケンス番号「３」は、更新後のセッションデータと共に待機系サーバであるＶＭ２１１に送信される。
【００５４】
そして、シーケンス番号「３」を含むパケットを待機系サーバであるＶＭ２１１から受信したとする。これは、シーケンス番号「３」と共に送信されたセッションデータを待機系サーバであるＶＭ２１１が受信したことを意味する。このような場合は、管理テーブルにおけるフィールド番号「４」及び「５」に対応するシーケンス番号「３」が削除され、管理テーブルは図１４に示すような状態になる。
【００５５】
ここで、受信したシーケンス番号「３」より小さいシーケンス番号である「２」が検出される。そして、フィールド番号「３」に対応するシーケンス番号は、新たなシーケンス番号である「４」に更新され、管理テーブルは図１５に示すような状態になる。シーケンス番号「２」と共に待機系サーバであるＶＭ２１１に既に送信したセッションデータは、新たなシーケンス番号と共に、待機系サーバであるＶＭ２１１に再度送信される。
【００５６】
そして、シーケンス番号「４」を含むパケットを待機系サーバであるＶＭ２１１から受信したとする。これは、シーケンス番号「４」と共に送信されたセッションデータを待機系サーバであるＶＭ２１１が受信したことを意味する。このような場合は、管理テーブルにおけるフィールド番号「３」に対応するシーケンス番号「４」が削除され、管理テーブルは図１６に示すような状態になる。
【００５７】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したＶＭ１１１及び２１１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００５８】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でない場合もある。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５９】
なお、上ではシーケンス番号を利用しているが、シーケンス番号には限られない。更新の順番を示す他の識別子であってもよい。
【００６０】
なお、上で述べた物理サーバ１１及び２１は、コンピュータ装置であって、図１７に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６２】
本実施の形態の第１の態様に係るデータ転送システムは、（Ａ）第１情報処理装置と、（Ｂ）第２情報処理装置とを有する。そして、上で述べた第１情報処理装置は、（ａ１）第１情報処理装置が管理する複数の項目（例えば、上で述べたフィールド）のうち更新された第１項目の値（例えば、上で述べたデータ）と、更新の順番を表す通し番号とを第２情報処理装置に送信する送信部と、（ａ２）通し番号を項目の識別情報（例えば、上で述べたフィールド番号）に対応付けて格納する番号格納部と、（ａ３）番号格納部に格納されている第１項目の識別情報に対応する通し番号を、第１項目の値と共に送信された通し番号に設定する設定部と、（ａ４）第２情報処理装置に送信された通し番号が第２情報処理装置から送り返された場合に、当該通し番号を番号格納部から削除すると共に、当該通し番号より小さい通し番号を番号格納部から検出する検出部とを有する。そして、上で述べた送信部は、（ａ１１）検出部により検出された通し番号と共に既に送信された第２項目の値を、第２情報処理装置に再度送信する。
【００６３】
このようにすれば、無駄な再送を抑制することができ、また、ＴＣＰによる送達確認を利用する場合等と比較して通信バッファの使用量を減らすことができるので、再送に使用する資源（例えばメモリ）の量を削減しつつ再送を行えるようになる。
【００６４】
また、上で述べた設定部は、（ａ３１）第２項目の値に対して新たな通し番号を割り当て、番号格納部に格納されている第２項目の識別情報に対応する通し番号を、新たな通し番号に設定してもよい。そして、上で述べた送信部は、（ａ１２）第２項目の値と共に、新たな通し番号を第２情報処理装置に送信してもよい。このようにすれば、通常の送信の場合と同様の方法で項目の値を再送できるようになる。
【００６５】
また、上で述べた第２情報処理装置は、（ｂ１）第１情報処理装置から第２項目の値と新たな通し番号とを受信した場合に、受信した新たな通し番号を第１情報処理装置に送り返す第２送信部を有してもよい。このようにすれば、再送された第２項目の値を第２情報処理装置が受信したことを第１情報処理装置に通知できるようになる。
【００６６】
また、上で述べた第２情報処理装置は、（ｂ２）複数の項目の値の複製を管理する情報処理装置であってもよい。項目の値を消失することなく複製を適切に行えるようになる。
【００６７】
また、上で述べた複数の項目の値は、呼の状態についての値であってもよい。なお、呼の状態についての値には限られず、最新の値さえ送信できればよいという特徴がある他の値であってもよい。
【００６８】
本実施の形態の第２の態様に係るデータ転送方法は、（Ｃ）複数の項目のうち更新された第１項目の値と、更新の順番を表す通し番号とを他のコンピュータに送信し、（Ｄ）通し番号を項目の識別情報に対応付けて格納する番号格納部に格納されている第１項目の識別情報に対応する通し番号を、第１の項目の値と共に送信された通し番号に設定し、（Ｅ）他のコンピュータに送信された通し番号が他のコンピュータから送り返された場合に、当該通し番号を番号格納部から削除すると共に、当該通し番号より小さい通し番号を番号格納部から検出し、（Ｆ）検出部により検出された通し番号と共に既に送信された第２項目の値を、他のコンピュータに再度送信する処理を含む。
【００６９】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７１】
（付記１）
第１情報処理装置と、
第２情報処理装置と、
を有し、
前記第１情報処理装置は、
前記第１情報処理装置が管理する複数の項目のうち更新された第１項目の値と、更新の順番を表す通し番号とを前記第２情報処理装置に送信する送信部と、
通し番号を項目の識別情報に対応付けて格納する番号格納部と、
前記番号格納部に格納されている前記第１項目の識別情報に対応する通し番号を、前記第１項目の値と共に送信された通し番号に設定する設定部と、
前記第２情報処理装置に送信された通し番号が前記第２情報処理装置から送り返された場合に、当該通し番号を前記番号格納部から削除すると共に、当該通し番号より小さい通し番号を前記番号格納部から検出する検出部と、
を有し、
前記送信部は、
前記検出部により検出された通し番号と共に既に送信された第２項目の値を、前記第２情報処理装置に再度送信する、
データ転送システム。
【００７２】
（付記２）
前記設定部は、
前記第２項目の値に対して新たな通し番号を割り当て、前記番号格納部に格納されている前記第２項目の識別情報に対応する通し番号を、前記新たな通し番号に設定し、
前記送信部は、
前記第２項目の値と共に、前記新たな通し番号を前記第２情報処理装置に送信する
付記１記載のデータ転送システム。
【００７３】
（付記３）
前記第２情報処理装置は、
前記第１情報処理装置から前記第２項目の値と前記新たな通し番号とを受信した場合に、受信した前記新たな通し番号を前記第１情報処理装置に送り返す第２送信部
を有する付記２記載のデータ転送システム。
【００７４】
（付記４）
前記第２情報処理装置は、前記複数の項目の値の複製を管理する情報処理装置である
付記１乃至３のいずれか１つ記載のデータ転送システム。
【００７５】
（付記５）
前記複数の項目の値は、呼の状態についての値である
付記１乃至４のいずれか１つ記載のデータ転送システム。
【００７６】
（付記６）
複数の項目のうち更新された第１項目の値と、更新の順番を表す通し番号とを他のコンピュータに送信し、
通し番号を項目の識別情報に対応付けて格納する番号格納部に格納されている前記第１項目の識別情報に対応する通し番号を、前記第１の項目の値と共に送信された通し番号に設定し、
前記他のコンピュータに送信された通し番号が前記他のコンピュータから送り返された場合に、当該通し番号を前記番号格納部から削除すると共に、当該通し番号より小さい通し番号を前記番号格納部から検出し、
前記検出された通し番号と共に既に送信された第２項目の値を、前記他のコンピュータに再度送信する、
処理をコンピュータが実行するデータ転送方法。
【符号の説明】
【００７７】
１０，２０  拠点    １１，１２，２１，２２  物理サーバ
１３，２３  ネットワーク機器    １４，２４  ＬＡＮ
１１０，２１０  仮想ネットワーク    １１１，２１１  ＶＭ
１１２，２１２  ＮＩＣ    １１１０，２１１０  受信部
１１１１  検出部    １１１２  管理テーブル格納部
１１１３  生成部    １１１４，２１１２  送信部
１１１５、２１１１  セッションデータ格納部
３  ＷＡＮ    ５  ＬＡＮ
５１，５２  ユーザ端末
【図１】
2015170226.tif 000003
【図２】
2015170226.tif 000004
【図３】
2015170226.tif 000005
【図４】
2015170226.tif 000006
【図５】
2015170226.tif 000007
【図６】
2015170226.tif 000008
【図７】
2015170226.tif 000009
【図８】
2015170226.tif 000010
【図９】
2015170226.tif 000011
【図１０】
2015170226.tif 000012
【図１１】
2015170226.tif 000013
【図１２】
2015170226.tif 000014
【図１３】
2015170226.tif 000015
【図１４】
2015170226.tif 000016
【図１５】
2015170226.tif 000017
【図１６】
2015170226.tif 000018
【図１７】
2015170226.tif 000019