(57)【要約】      （修正有）【課題】装置間の接続についての情報を記憶するデータベースの同期をとることができない場合においても、装置間の接続を確立する。【解決手段】本情報処理装置は、情報処理装置と他の情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、データ格納部に格納された情報と、他の情報処理装置が管理する情報とを同期する同期部と、同期部による同期の停止中に情報処理装置と他の情報処理装置との間でコネクションを確立する場合、少なくとも情報処理装置と他の情報処理装置との間で一意な情報を生成し、生成した一意な情報を他の情報処理装置に送信する生成部と、一意な情報に基づき、情報処理装置と他の情報処理装置との間でコネクションを確立する通信部とを有する。【選択図】図４
2018013899.tif 000002
【特許請求の範囲】
【請求項１】
第１情報処理装置であって、
前記第１情報処理装置と第２情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
前記データ格納部に格納された前記情報と、前記第２情報処理装置が管理する前記情報とを同期する同期部と、
前記同期部による同期の停止中に前記第１情報処理装置と第２情報処理装置との間でコネクションを確立する場合、少なくとも前記第１情報処理装置と前記第２情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第２情報処理装置に送信する生成部と、
前記一意な情報に基づき、前記第１情報処理装置と前記第２情報処理装置との間でコネクションを確立する通信部と、
を有する第１情報処理装置。
【請求項２】
前記生成部は、
前記第１情報処理装置を有するシステムの識別情報と、前記第１情報処理装置と第２情報処理装置との間でのコネクションの確立時に生成する通し番号とに基づき前記一意な情報を生成する、
請求項１記載の第１情報処理装置。
【請求項３】
前記生成部は、
前記生成部により生成された前記一意な情報と、前記第２情報処理装置から受信した前記一意な情報とが一致するか否か判定し、前記生成部により生成された前記一意な情報と、前記第２情報処理装置から受信した前記一意な情報とが一致すると判定された場合、前記第１情報処理装置と前記第２情報処理装置との間でコネクションを前記通信部に確立させる、
請求項１又は２記載の第１情報処理装置。
【請求項４】
前記データ格納部に格納された情報は、コネクションの識別情報を含み、
前記生成部は、
前記第１情報処理装置と前記第２情報処理装置との間で確立されるコネクションのうち識別情報が付与されたコネクションの数に対する、前記第１情報処理装置により識別情報が付与されたコネクションの数の割合を算出し、
前記第１情報処理装置と前記第２情報処理装置との間で確立されるコネクションのうち識別情報が付与されていないコネクションの中から、算出した前記割合に基づき、前記第１情報処理装置により識別情報が付与されるコネクションの範囲を特定し、
コネクションの生成要求を受信した場合、特定された前記範囲から選択された１のコネクションについて、当該コネクションに対して付与される識別情報と前記一意な情報とを前記データ格納部に登録する、
請求項１乃至３のいずれか１つ記載の第１情報処理装置。
【請求項５】
前記同期部は、
前記同期を再開する場合、特定された前記範囲に含まれるコネクションついての情報の同期と、特定された前記範囲に含まれないコネクションについての情報の同期とを並行して実行する、
請求項４記載の第１情報処理装置。
【請求項６】
前記同期部は、
前記範囲に含まれるコネクションに対して前記第１情報処理装置により付与された識別情報を、前記第２情報処理装置に送信し、
前記第２情報処理装置から、前記範囲に含まれるコネクションのうち前記第２情報処理装置が通信に使用していないコネクションの識別情報を受信し、
受信した前記識別情報が付与されたコネクションについての情報を前記データ格納部から読み出し、読み出した当該情報を前記第２情報処理装置に送信する、
請求項５記載の第１情報処理装置。
【請求項７】
前記同期部は、
前記範囲に含まれないコネクションに対して前記第２情報処理装置により付与された識別情報を、前記第２情報処理装置から受信し、
受信した前記識別情報のうち前記第１情報処理装置が通信に使用していないコネクションの識別情報を前記データ格納部から特定し、特定した当該識別情報を前記第２情報処理装置に送信する、
請求項５又は６記載の第１情報処理装置。
【請求項８】
第１のコンピュータが、
前記第１コンピュータと第２コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第２コンピュータが管理する前記情報との同期が停止している間に、前記第１コンピュータと第２コンピュータとの間でコネクションを確立する場合、少なくとも前記第１コンピュータと前記第２コンピュータとの間で一意な情報を生成し、
生成した前記一意な情報を前記第２コンピュータに送信し、
前記一意な情報に基づき、前記第１コンピュータと前記第２コンピュータとの間でコネクションを確立する、
処理を実行する情報処理方法。
【請求項９】
第１のコンピュータに、
前記第１コンピュータと第２コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第２コンピュータが管理する前記情報との同期が停止している間に、前記第１コンピュータと第２コンピュータとの間でコネクションを確立する場合、少なくとも前記第１コンピュータと前記第２コンピュータとの間で一意な情報を生成し、
生成した前記一意な情報を前記第２コンピュータに送信し、
前記一意な情報に基づき、前記第１コンピュータと前記第２コンピュータとの間でコネクションを確立する、
処理を実行させるプログラム。
【請求項１０】
第１の情報処理装置と、
第２の情報処理装置と、
を有し、
前記第１の情報処理装置は、
前記第１情報処理装置と前記第２情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
前記データ格納部に格納された前記情報と、前記第２情報処理装置が管理する前記情報とを同期する同期部と、
前記同期部による同期の停止中に前記第１情報処理装置と第２情報処理装置との間でコネクションを確立する場合、少なくとも前記第１情報処理装置と前記第２情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第２情報処理装置に送信する生成部と、
を有し、
前記第１の情報処理装置及び前記第２の情報処理装置は、
前記一意な情報に基づき、前記第１情報処理装置と前記第２情報処理装置との間でコネクションを確立する通信部、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置間の接続の確立技術に関する。
【背景技術】
【０００２】
複数の情報処理装置の間でデータベースを冗長化する技術が知られている。例えば、或る文献は、セッションについての情報が登録されたセッションテーブルをマスタサーバが有し、マスタサーバのセッションテーブルをレプリカサーバが複製する技術を開示する。
【０００３】
但し、情報処理装置の接続についての情報をデータベースに登録する場合、データベースを同期するための通信が障害等により停止すると、情報処理装置間の接続が通常どおり確立されなくなることがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−４８９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、１つの側面では、装置間の接続についての情報を記憶するデータベースの同期をとることができない場合においても、装置間の接続を確立するための技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る第１情報処理装置は、第１情報処理装置と第２情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、データ格納部に格納された情報と、第２情報処理装置が管理する情報とを同期する同期部と、同期部による同期の停止中に第１情報処理装置と第２情報処理装置との間でコネクションを確立する場合、少なくとも第１情報処理装置と第２情報処理装置との間で一意な情報を生成し、生成した一意な情報を第２情報処理装置に送信する生成部と、一意な情報に基づき、第１情報処理装置と第２情報処理装置との間でコネクションを確立する通信部とを有する。
【発明の効果】
【０００７】
１つの側面では、装置間の接続についての情報を記憶するデータベースの同期をとることができない場合においても、装置間の接続を確立できるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態のネットワーク構成を示す図である。
【図２】図２は、情報処理システムのシステム概要を示す図である。
【図３】図３は、情報処理装置のハードウエア構成図である。
【図４】図４は、情報処理装置の機能ブロック図である。
【図５】図５は、システムテーブルの一例を示す図である。
【図６】図６は、第１対応テーブルの一例を示す図である。
【図７】図７は、コネクションについて説明するための図である。
【図８】図８は、同期部が実行する処理の処理フローを示す図である。
【図９】図９は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。
【図１０】図１０は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。
【図１１】図１１は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。
【図１２】図１２は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。
【図１３】図１３は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。
【図１４】図１４は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。
【図１５】図１５は、テーブル分割処理の処理フローを示す図である。
【図１６】図１６は、使用可能範囲内についてのテーブル同期処理の処理フローを示す図である。
【図１７】図１７は、使用可能範囲内についてのテーブル同期処理の処理フローを示す図である。
【図１８】図１８は、同期テーブルの一例を示す図である。
【図１９】図１９は、使用可能範囲内の同期成功フラグの値と使用可能範囲外の同期成功フラグの値との組合せを示す図である。
【図２０】図２０は、使用可能範囲外についてのテーブル同期処理の処理フローを示す図である。
【図２１】図２１は、使用可能範囲外についてのテーブル同期処理の処理フローを示す図である。
【図２２】図２２は、ネットワークコネクタの生成の際にユーザ端末が実行する処理の処理フローを示す図である。
【図２３】図２３は、ネットワークコネクタを生成するためのＡＰＩの実行結果に含まれる情報の一例を示す図である。
【図２４】図２４は、ネットワークコネクタ生成処理の処理フローを示す図である。
【図２５】図２５は、第１更新処理の処理フローを示す図である。
【図２６】図２６は、エンドポイントの生成の際にユーザ端末が実行する処理の処理フローである。
【図２７】図２７は、エンドポイント生成処理の処理フローを示す図である。
【図２８】図２８は、第２更新処理の処理フローを示す図である。
【図２９】図２９は、エンドポイントテーブルの一例を示す図である。
【図３０】図３０は、第２対応テーブルの一例を示す図である。
【図３１】図３１は、エンドポイント生成処理の処理フローを示す図である。
【図３２】図３２は、ネットワークコネクタの再利用について説明するための図である。
【図３３】図３３は、ネットワークコネクタの再利用について説明するための図である。
【図３４】図３４は、ネットワークコネクタの再利用について説明するための図である。
【発明を実施するための形態】
【０００９】
図１に、本実施の形態のネットワーク構成を示す。例えばインターネットであるネットワーク１Ｎには、情報処理システム１Ｉ及び情報処理システム２Ｉと、ユーザ端末１Ｔとが接続される。ユーザ端末１Ｔの操作者は、情報処理システム１Ｉ及び情報処理システム２Ｉのリソースのユーザであり、例えば情報処理システム１Ｉ及び情報処理システム２Ｉ上で実行される仮想マシンを利用する。情報処理システム１Ｉ及び情報処理システム２Ｉは、例えばＯｐｅｎＳｔａｃｋにより実現される。ユーザ端末１Ｔにおいては、ユーザ用のアプリケーションが実行されており、アプリケーションから発行されたＡＰＩ（Application Programming Interface）に従って情報処理システム１Ｉ及び情報処理システム２Ｉにおいて処理が実行される。
【００１０】
図１においては情報処理システムの数は２であり、ユーザ端末の数は１であるが、数に限定は無い。
【００１１】
図２に、情報処理システム１Ｉのシステム概要を示す。情報処理システム１Ｉは、情報処理装置１Ｓ乃至３Ｓを有する。情報処理装置１Ｓ乃至３Ｓは、例えばＬＡＮ（Local Area Network）であるネットワーク３Ｎを介して接続される。
【００１２】
図２においては情報処理装置の数は３であるが、数に限定は無い。また、情報処理システム１Ｉ内に物理スイッチ等の装置が設けられてもよい。
【００１３】
なお、情報処理システム２Ｉのシステム概要は情報処理システム１Ｉのシステム概要と同じであるので、説明を省略する。
【００１４】
図３に、情報処理装置１Ｓのハードウエア構成図を示す。例えば物理サーバである情報処理装置１Ｓは、１又は複数のＣＰＵ（Central Processing Unit）１０と、１又は複数のメモリ（例えばＤＩＭＭ（Dual Inline Memory Module））１１と、１又は複数のＮＩＣ（Network Interface Card）１３と、１又は複数のＨＤＤ（Hard Disk Drive）１４と、バス１５とを有する。
【００１５】
なお、情報処理装置２Ｓ及び情報処理装置３Ｓのハードウエア構成は情報処理装置１Ｓのハードウエア構成と同じであるので、説明を省略する。
【００１６】
本実施の形態の処理を実行するためのプログラムは、例えばＨＤＤ１４に格納されており、ＣＰＵ１０によりメモリ１１にロードされ実行されることで、図４に示すような各種機能を実現する。図４に、情報処理装置１Ｓの機能ブロック図を示す。情報処理装置１Ｓは、コネクション管理部１０１と、ＤＢ（DataBase）処理部１０３と、ＤＢ１０５と、同期部１０７とを有する。ＤＢ１０５は、メモリ１１又はＨＤＤ１４により実現される。
【００１７】
コネクション管理部１０１は、情報処理システム１Ｉ内の情報処理装置と情報処理システム２Ｉ内の情報処理装置との間で確立されるコネクションを管理する処理を実行する。ＤＢ処理部１０３は、ＤＢ１０５への書き込み及びＤＢ１０５からの読み出し等を実行する。同期部１０７は、ＤＢ１０５に格納されているデータを、他の情報処理システムにおけるＤＢ１０５に格納されているデータと完全同期する処理を実行する。
【００１８】
なお、図４においては情報処理装置１Ｓ内にコネクション管理部１０１、ＤＢ処理部１０３、ＤＢ１０５及び同期部１０７が実現される例を示したが、情報処理装置１Ｓ以外の情報処理装置において実現されてもよい。また、情報処理システム２Ｉにおけるいずれかの情報処理装置においても、コネクション管理部１０１、ＤＢ処理部１０３、ＤＢ１０５及び同期部１０７に相当する処理部が実現される。
【００１９】
なお、情報処理装置１Ｓ乃至３Ｓ及び情報処理システム２Ｉ内の情報処理装置においては、例えばユーザの仮想マシン或いはユーザのプロセスが実行されており、当該仮想マシン或いはプロセスの通信のために情報処理システム１Ｉと情報処理システム２Ｉとの間にコネクションが確立される。
【００２０】
図５に、ＤＢ１０５に格納されるシステムテーブルの一例を示す。図５の例では、システム番号と、システム名とが格納される。システムテーブルには、各情報処理システムについてエントリが設けられる。各情報処理システムのＤＢ１０５は同一のシステムテーブルを記憶する。
【００２１】
図６に、ＤＢ１０５に格納される第１対応テーブルの一例を示す。図６の例では、以下で説明するネットワークコネクタのＩＤ（IDentifier）（以下、コネクタＩＤと呼ぶ）と、情報処理システムにおいて実行される仮想ルータ（仮想ルータについては後で説明する）のＩＤとが格納される。仮想ルータＩＤは各情報処理システムにおいて任意に設定されるため、各情報処理システムのＤＢ１０５に格納されているデータの内容は異なる。
【００２２】
図７を用いて、本実施の形態におけるコネクションについて説明する。ユーザの仮想マシン或いはプロセスは、図７に示すように、エンドポイントを通信のチャネル（例えば仮想ポート）として利用する。図７においては、情報処理システム１Ｉのコネクション管理部１０１内にエンドポイント１０１０が生成されており、情報処理システム２Ｉのコネクション管理部２０１内にエンドポイント２０１０が生成されている。エンドポイント１０１０及び２０１０はコネクションの終端に相当し、ユーザ端末１ＴからのＡＰＩに従って生成される。また、情報処理システム１Ｉにおいては運用開始時に仮想ルータ１０２０が生成され、生成されたエンドポイント１０１０は仮想ルータ１０２０に仮想的に接続される。情報処理システム２Ｉにおいては運用開始時に仮想ルータ２０２０が生成され、生成されたエンドポイント２０１０は仮想ルータ２０２０に仮想的に接続される。これにより、エンドポイント１０１０とエンドポイント２０１０との間においては１つのコネクションが生成される。本実施の形態においては、このような接続の単位がネットワークコネクタと呼ばれ、各情報処理システムにおける１台の仮想ルータ及び１つのエンドポイントが１つのネットワークコネクタに対応する。
【００２３】
図７においては、ネットワークコネクタの数が１であるが、数に限定は無い。
【００２４】
なお、ＤＢの同期のための通信及びエンドポイント間の通信は、両方ともネットワーク１Ｎを経由しているが、本実施形態においては、ＤＢの同期のための通信に特有の理由（例えば、同期部１０７の負荷の問題など）によって当該通信のみが停止するケースが生じるものとする。
【００２５】
次に、図８乃至図３４を用いて、情報処理システム１Ｉにおいて実行される処理について説明する。
【００２６】
まず、図８乃至図２１を用いて、同期部１０７が実行する処理について説明する。ここでは、情報処理システム１Ｉの同期部１０７が実行する処理を例として説明する。
【００２７】
情報処理システム１Ｉの同期部１０７は、他の情報処理システム（ここでは、情報処理システム２Ｉ）の同期部に監視パケットを送信し、応答を待つ（図８：ステップＳ１）。本実施の形態においては、各情報処理システムのＤＢを同期するために同期部間で実行される通信を同期通信と呼ぶ。
【００２８】
同期部１０７は、他の情報処理システムから応答を受信したか判定する（ステップＳ３）。すなわち、同期通信が可能であるか判定される。
【００２９】
他の情報処理システムから応答を受信した場合（ステップＳ３：Ｙｅｓルート）、同期部１０７は、応答を受信する直前まで同期通信が可能ではなかったか判定する（ステップＳ９）。すなわち、同期通信が可能な状態に状態が切り替わったか判定される。
【００３０】
応答を受信する直前も同期通信が可能であった場合（ステップＳ９：Ｎｏルート）、同期は問題無く行われているので、処理はステップＳ１に戻る。一方、応答を受信する直前まで同期通信が可能ではなかった場合（ステップＳ９：Ｙｅｓルート）、同期が行われていないので、同期部１０７はテーブル同期処理を実行する（ステップＳ１１）。テーブル同期処理については後で説明する。そして処理はステップＳ１３に移行する。
【００３１】
一方、他の情報処理システムから応答を受信していない場合（ステップＳ３：Ｎｏルート）、同期部１０７は、直前まで同期通信が可能であったか判定する（ステップＳ５）。
【００３２】
直前も同期通信が可能ではなかった場合（ステップＳ５：Ｎｏルート）、処理はステップＳ１３に移行する。一方、直前まで同期通信が可能であった場合（ステップＳ５：Ｙｅｓルート）、同期部１０７は、テーブル分割処理を実行する（ステップＳ７）。テーブル分割処理については後で説明する。そして処理はステップＳ１３に移行する。
【００３３】
同期部１０７は、情報処理システム１Ｉの管理者から終了指示を受け付けたか判定する（ステップＳ１３）。終了指示を受け付けていない場合（ステップＳ１３：Ｎｏルート）、ステップＳ１の処理に戻る。一方、終了指示を受け付けた場合（ステップＳ１３：Ｙｅｓルート）、処理は終了する。
【００３４】
以上のような処理を実行すれば、通信の状態が切り替わったタイミングにおいてコネクタテーブルの同期又は分割を行えるようになる。
【００３５】
図９乃至図１４を用いて、テーブル同期処理及びテーブル分割処理の概要を説明する。ＤＢ１０５には、図９に示すようなコネクタテーブルが格納されており、コネクタテーブルに格納されたデータが同期の対象である。コネクタテーブルには、ネットワークコネクタのＩＤであるコネクタＩＤと、コネクタＩＤが払い出された否かを表す払い出しフラグと、ネットワークコネクタに対して付与される識別子と、コネクタＩＤを払い出した情報処理システムのシステム番号と、コネクタＩＤを使用できる情報処理システムのシステム番号とが格納される。ネットワークコネクタに対して付与される識別子は、情報処理システム１Ｉ及び情報処理システム２Ｉの間で一意になるように生成される。本実施の形態においては、情報処理システムのシステム名と払い出されたコネクタＩＤとを含む識別子が生成される。
【００３６】
或る情報処理システムにおいてネットワークコネクタの生成及び削除が繰り返し行われると、コネクションの再利用によって異なるユーザのエンドポイント間で通信が行われる可能性が有る。しかし、上記のような識別子を利用することで、コネクションの再利用を防げるようになるので、セキュリティが向上する。これについては、後で詳しく説明する。
【００３７】
同期通信が可能な状態から同期通信が可能ではない状態に状態が切り替わった場合、コネクタテーブル（図９）のレコードのうち払い出されていないコネクタＩＤを含むレコードは、既に払い出されたコネクタＩＤの払い出し割合に従って分割され、各情報処理システムに割り当てられる。例えば図１０に示すように、４つのコネクタＩＤが情報処理システム「ＡＺ１」によって払い出され、２つのコネクタＩＤが情報処理システム「ＡＺ２」によって払い出されている場合、払い出されていないレコードのうち２／（２＋１）のレコードは情報処理システム「ＡＺ１」の使用可能範囲として情報処理システム「ＡＺ１」に割り当てられ、払い出されていないレコードのうち１／（２＋１）のレコードは情報処理システム「ＡＺ２」の使用可能範囲として情報処理システム「ＡＺ２」に割り当てられる。このように、払い出されていないコネクタＩＤの範囲を複数の使用可能範囲に分割する処理がテーブル分割処理に相当する。
【００３８】
そして、テーブル同期処理においては、自情報処理システム（ここでは、情報処理システム１Ｉとする）の使用可能範囲についての同期と情報処理システム１Ｉ以外の情報処理システム（すなわち、情報処理システム２Ｉ）の使用可能範囲についての同期とが並行して行われる。例えば図１１に示すように、コネクタＩＤ「Ｘ１」が情報処理システム「ＡＺ１」によって払い出され、コネクタＩＤ「Ｘ２」が情報処理システム「ＡＺ２」によって払い出されている場合、コネクタＩＤ「Ｙ１」乃至「Ｙ１０」についてのレコードが情報処理システム「ＡＺ１」の使用可能範囲であり、コネクタＩＤ「Ｚ１」乃至「Ｚ１０」についてのレコードが情報処理システム「ＡＺ２」についての使用可能範囲である。図１１においては、ハッチングは情報処理システムが払い出すことができないコネクタＩＤの範囲を表す。ここでは、コネクタＩＤ「Ｙ１」乃至「Ｙ１０」については、既に情報処理システム「ＡＺ１」によってネットワークコネクタが既に生成され、コネクタＩＤ「Ｚ１」乃至「Ｚ１０」については、既に情報処理システム「ＡＺ２」によってネットワークコネクタが既に生成されているとする。なお、ネットワークコネクタが既に生成されている場合、コネクタテーブル（図９）のレコード内のコネクタＩＤが払い出されているが、必ずしもエンドポイント間のコネクションが確立されていない。
【００３９】
図１２に示すように、情報処理システム「ＡＺ１」は、情報処理システム「ＡＺ１」によってネットワークコネクタが生成されたコネクタＩＤ「Ｙ１」乃至「Ｙ１０」を情報処理システム「ＡＺ２」に通知する。情報処理システム「ＡＺ２」は、情報処理システム「ＡＺ２」によってネットワークコネクタが生成されたコネクタＩＤ「Ｚ１」乃至「Ｚ１０」を情報処理システム「ＡＺ１」に通知する。情報処理システム「ＡＺ１」は、コネクタＩＤ「Ｚ１」乃至「Ｚ５」についてエンドポイントを既に生成している。情報処理システム「ＡＺ２」は、コネクタＩＤ「Ｙ１」乃至「Ｙ４」についてエンドポイントを既に生成している。エンドポイントが既に生成されている場合、コネクションが確立されエンドポイント間の通信が可能である。
【００４０】
図１３に示すように、情報処理システム「ＡＺ１」は、情報処理システム「ＡＺ２」から通知されたコネクタＩＤのうちエンドポイントが未だ生成されていないコネクタＩＤ「Ｚ６」乃至「Ｚ１０」を情報処理システム「ＡＺ２」に通知する。また、情報処理システム「ＡＺ２」は、情報処理システム「ＡＺ１」から通知されたコネクタＩＤのうちエンドポイントが未だ生成されていないコネクタＩＤ「Ｙ５」乃至「Ｙ１０」を情報処理システム「ＡＺ１」に通知する。図１３において通知されるコネクタＩＤは、同期が完了していないレコードに含まれるコネクタＩＤに相当する。従って、各情報処理システムは、どのレコードの同期が完了されていないかを把握することができる。
【００４１】
図１４に示すように、情報処理システム「ＡＺ１」は、情報処理システム「ＡＺ２」から通知されたコネクタＩＤを含むレコードを情報処理システム「ＡＺ２」に送信する。また、情報処理システム「ＡＺ２」は、情報処理システム「ＡＺ１」から通知されたコネクタＩＤを含むレコードを情報処理システム「ＡＺ１」に送信する。これにより、コネクタテーブル（図９）の同期が完了する。
【００４２】
図１５を用いて、テーブル分割処理をより詳細に説明する。まず、同期部１０７は、コネクタテーブル（図９）から、コネクタＩＤを払い出した情報処理システムのシステム番号を読み出す（図１５：ステップＳ２１）。
【００４３】
同期部１０７は、各情報処理システムについて、コネクタテーブル（図９）に格納されている全コネクタＩＤの数に対する当該情報処理システムが払い出したコネクタＩＤの数の割合を算出する（ステップＳ２３）。ステップＳ２３において行われる処理は、図１０を用いて説明したとおりである。コネクタテーブル（図９）に格納されている全コネクタＩＤの数は、予め情報処理システム１Ｉの管理者により設定される。
【００４４】
同期部１０７は、ステップＳ２３において算出した割合に基づき、各情報処理システムが使用できるコネクタＩＤの範囲（すなわち使用可能範囲）を算出する（ステップＳ２５）。ステップＳ２５において行われる処理は、図１０を用いて説明したとおりである。
【００４５】
同期部１０７は、情報処理システム１Ｉのシステム番号を、システムテーブル（図５）から読み出す（ステップＳ２７）。
【００４６】
同期部１０７は、ステップＳ２７において読み出したシステム番号より小さいシステム番号を有する情報処理システムが使用できるコネクタＩＤの数の合計ｘを算出する（ステップＳ２９）。例えばステップＳ２７において読み出したシステム番号が３である場合、システム番号「１」を有する情報処理システムが使用できるコネクタＩＤの数と、システム番号「２」を有する情報処理システムが使用できるコネクタＩＤの数との合計ｘが算出される。
【００４７】
同期部１０７は、コネクタテーブル（図９）内の（ｘ＋１）番目のコードから順に、ｙ（ｙは情報処理システム１Ｉが使用できるコネクタＩＤの数）個のレコードに情報処理システム１Ｉのシステム番号を書き込む（ステップＳ３１）。そして呼び出し元の処理に戻る。
【００４８】
図１６乃至図２１を用いて、テーブル同期処理をより詳細に説明する。上で述べたように、各情報処理システムは、使用可能範囲内のコネクタＩＤについての同期処理と使用可能範囲外のコネクタＩＤについての同期処理とが並行して行われるので、まず、使用可能範囲内のコネクタＩＤについての同期処理（テーブル同期処理１）を説明する。
【００４９】
同期部１０７は、コネクタテーブル（図９）から、情報処理システム１Ｉの使用可能範囲内から払い出したコネクタＩＤ（ここでは、払い出しフラグが「１」に設定されているコネクタＩＤ）を含む同期データを、他の情報処理システム（ここでは、情報処理システム２Ｉ）に送信する（図１６：ステップＳ４１）。
【００５０】
同期部１０７は、ステップＳ４１において送信した同期データに対する応答の受信タイマをセットする（ステップＳ４３）。
【００５１】
同期部１０７は、情報処理システム２Ｉから応答を受信したか判定する（ステップＳ４５）。
【００５２】
情報処理システム２Ｉから応答を受信していない場合（ステップＳ４５：Ｎｏルート）、同期部１０７は、ステップＳ４３においてセットされた受信タイマのタイムアウトであるか判定する（ステップＳ４７）。受信タイマのタイムアウトではない場合（ステップＳ４７：Ｎｏルート）、ステップＳ４５の処理に戻る。受信タイマのタイムアウトである場合（ステップＳ４７：Ｙｅｓルート）、処理はステップＳ５７に移行する。
【００５３】
一方、情報処理システム２Ｉから応答を受信した場合（ステップＳ４５：Ｙｅｓルート）、同期部１０７は、応答に含まれるコネクタＩＤと一致するコネクタＩＤを含むレコードをコネクタテーブル（図９）から抽出する。そして、同期部１０７は、抽出したレコードを情報処理システム２Ｉに送信する（ステップＳ４９）。
【００５４】
同期部１０７は、ステップＳ４９において送信したレコードに対する応答の受信タイマをセットする（ステップＳ５１）。
【００５５】
同期部１０７は、情報処理システム２Ｉから応答を受信したか判定する（ステップＳ５３）。
【００５６】
情報処理システム２Ｉから応答を受信した場合（ステップＳ５３：Ｙｅｓルート）、処理は端子Ａを介して図１７のステップＳ６１に移行する。端子Ａ以降については後で説明する。
【００５７】
一方、情報処理システム２Ｉから応答を受信していない場合（ステップＳ５３：Ｎｏルート）、同期部１０７は、ステップＳ５１においてセットされた受信タイマのタイムアウトであるか判定する（ステップＳ５５）。
【００５８】
受信タイマのタイムアウトではない場合（ステップＳ５５：Ｎｏルート）、処理はステップＳ５３に戻る。受信タイマのタイムアウトである場合（ステップＳ５５：Ｙｅｓルート）、同期部１０７は、ＤＢ１０５に格納されている同期テーブルにおいて、使用可能範囲内の同期処理フラグを「ＯＮ」に設定する（ステップＳ５７）。そして呼び出し元の処理に戻る。
【００５９】
図１８に、ＤＢ１０５に格納される同期テーブルの一例を示す。図１８の例では、使用可能範囲内の同期処理フラグと、使用可能範囲内の同期成功フラグと、使用可能範囲外の同期処理フラグと、使用可能範囲外の同期成功フラグとが格納される。同期処理フラグは同期処理が完了したか否かを表し、同期処理が完了した場合には「ＯＮ」に設定される。同期成功フラグは同期が成功したか否かを表し、同期が成功した場合には「ＯＮ」に設定される。
【００６０】
図１９に、使用可能範囲内の同期成功フラグの値と使用可能範囲外の同期成功フラグの値との組合せを示す。（１）使用可能範囲内の同期成功フラグが「ＯＮ」であり且つ使用可能範囲外の同期成功フラグが「ＯＮ」である場合、同期は完全に成功したので、コネクタテーブル内の「ＩＤを使用できるシステム」の欄に格納されている情報は削除される。（２）使用可能範囲内の同期成功フラグが「ＯＦＦ」であり且つ使用可能範囲外の同期成功フラグが「ＯＮ」である場合、全体としては同期が失敗したので、使用可能範囲外のレコードについては同期処理開始前の状態へロールバックされる。（３）使用可能範囲内の同期成功フラグが「ＯＮ」であり且つ使用可能範囲外の同期成功フラグが「ＯＦＦ」である場合、全体としては同期が失敗したので、コネクタテーブルのレコードの更新処理が行われずに同期処理が終了される。（４）使用可能範囲内の同期成功フラグが「ＯＦＦ」であり且つ使用可能範囲外の同期成功フラグが「ＯＦＦ」である場合、同期が失敗したので、コネクタテーブルのレコードの更新処理が行われずに同期処理が終了される。
【００６１】
図１７の説明に移行し、同期部１０７は、使用可能範囲内の同期処理フラグ及び同期成功フラグを「ＯＮ」に設定する（図１７：ステップＳ６１）。
【００６２】
同期部１０７は、使用可能範囲外の同期処理フラグが「ＯＮ」であるか判定する（ステップＳ６３）。使用可能範囲外の同期処理フラグが「ＯＮ」ではない場合（ステップＳ６３：Ｎｏルート）、使用可能範囲外について同期処理が完了していないので、ステップＳ６３の処理に戻る。
【００６３】
使用可能範囲外の同期処理フラグが「ＯＮ」である場合（ステップＳ６３：Ｙｅｓルート）、同期部１０７は、使用可能範囲外の同期成功フラグが「ＯＮ」であるか判定する（ステップＳ６５）。使用可能範囲外の同期成功フラグが「ＯＮ」ではない場合（ステップＳ６５：Ｎｏルート）、処理は端子Ｂを介して図１６に移行し呼び出し元の処理に戻る。
【００６４】
使用可能範囲外の同期成功フラグが「ＯＮ」である場合（ステップＳ６５：Ｙｅｓルート）、同期部１０７は、使用可能範囲内に含まれるレコードについて、「ＩＤを使用できるシステム」の欄の情報を削除する（ステップＳ６７）。そして処理は端子Ｂを介して図１６に戻り呼び出し元の処理に戻る。
【００６５】
図２０及び図２１を用いて、使用可能範囲外のコネクタＩＤについての同期処理（テーブル同期処理２）を説明する。
【００６６】
同期部１０７は、同期データの受信タイマをセットする（図２０：ステップＳ７１）。
【００６７】
同期部１０７は、他の情報処理システム（ここでは情報処理システム２Ｉ）から同期データを受信したか判定する（ステップＳ７３）。
【００６８】
情報処理システム２Ｉから同期データを受信していない場合（ステップＳ７３：Ｎｏルート）、同期部１０７は、ステップＳ７１においてセットされた受信タイマのタイムアウトであるか判定する（ステップＳ７５）。受信タイマのタイムアウトではない場合（ステップＳ７５：Ｎｏルート）、処理はステップＳ７３に戻る。受信タイマのタイムアウトである場合（ステップＳ７５：Ｙｅｓルート）、処理はステップＳ８７に移行する。
【００６９】
一方、情報処理システム２Ｉから同期データを受信した場合（ステップＳ７３：Ｙｅｓルート）、同期部１０７は、コネクタテーブル（図９）から、使用可能範囲外のコネクタＩＤであって且つエンドポイントが生成されたコネクタＩＤを特定する（ステップＳ７７）。エンドポイントが生成されたコネクタＩＤは、コネクタテーブル（図９）に識別子が登録されている。
【００７０】
同期部１０７は、ステップＳ７７において特定したコネクタＩＤと、受信した同期データ内のコネクタＩＤとの差分に相当するコネクタＩＤを、情報処理システム２Ｉに送信する（ステップＳ７９）。
【００７１】
同期部１０７は、ステップＳ７９において送信したコネクタＩＤに対する同期データの受信タイマをセットする（ステップＳ８１）。
【００７２】
同期部１０７は、情報処理システム２Ｉから同期データを受信したか判定する（ステップＳ８３）。
【００７３】
情報処理システム２Ｉから同期データを受信した場合（ステップＳ８３：Ｙｅｓルート）、処理は端子Ｃを介して図２１のステップＳ８９に移行する。端子Ｃ以降については後で説明する。
【００７４】
一方、情報処理システム２Ｉから同期データを受信していない場合（ステップＳ８３：Ｎｏルート）、同期部１０７は、ステップＳ８１においてセットされた受信タイマのタイムアウトであるか判定する（ステップＳ８５）。
【００７５】
受信タイマのタイムアウトではない場合（ステップＳ８５：Ｎｏルート）、処理はステップＳ８３に戻る。受信タイマのタイムアウトである場合（ステップＳ８５：Ｙｅｓルート）、同期部１０７は、ＤＢ１０５に格納されている同期テーブル（図１８）において、使用可能範囲外の同期処理フラグを「ＯＮ」に設定する（ステップＳ８７）。そして呼び出し元の処理に戻る。
【００７６】
図２１の説明に移行し、同期部１０７は、受信した同期データに含まれるレコードで、コネクタテーブルに格納されており且つコネクタＩＤが受信した同期データに含まれるレコードと一致するレコードを更新する（図２１：ステップＳ８９）。
【００７７】
同期部１０７は、受信した同期データの応答を情報処理システム２Ｉに送信する（ステップＳ９１）。
【００７８】
同期部１０７は、使用可能範囲外の同期処理フラグ及び同期成功フラグを「ＯＮ」に設定する（ステップＳ９３）。
【００７９】
同期部１０７は、使用可能範囲内の同期処理フラグが「ＯＮ」であるか判定する（ステップＳ９５）。使用可能範囲内の同期処理フラグが「ＯＮ」ではない場合（ステップＳ９５：Ｎｏルート）、使用可能範囲内について同期処理が完了していないので、ステップＳ９５の処理に戻る。
【００８０】
使用可能範囲内の同期処理フラグが「ＯＮ」である場合（ステップＳ９５：Ｙｅｓルート）、同期部１０７は、使用可能範囲内の同期成功フラグが「ＯＮ」であるか判定する（ステップＳ９７）。使用可能範囲内の同期成功フラグが「ＯＮ」ではない場合（ステップＳ９７：Ｎｏルート）、使用可能範囲外のレコードについて、同期処理開始前の状態へ戻す処理であるロールバック処理を実行する（ステップＳ１０１）。
【００８１】
使用可能範囲内の同期成功フラグが「ＯＮ」である場合（ステップＳ９７：Ｙｅｓルート）、同期部１０７は、使用可能範囲外のレコードについて、「ＩＤを使用できるシステム」の欄の情報を削除する（ステップＳ９９）。そして処理は端子Ｄを介して図２０に戻り呼び出し元の処理に戻る。
【００８２】
以上のように、コネクタＩＤの範囲は分割されており、各情報処理システムの使用可能範囲を各情報処理システムの同期部が把握しているため、使用可能範囲内についての同期と使用可能範囲外についての同期とを矛盾なく並行して実行することができる。
【００８３】
次に、図２２乃至図３１を用いて、ネットワークコネクタの生成の際に実行される処理及びエンドポイントの生成の際に実行される処理について説明する。
【００８４】
まず、図２２を用いて、ネットワークコネクタの生成の際にユーザ端末１Ｔが実行する処理について説明する。ユーザ端末１Ｔは、ユーザからの指示に従い、ネットワークコネクタを生成するためのＡＰＩをいずれかの情報処理システムに発行し、その情報処理システムのコネクション管理部１０１にネットワークコネクタ生成処理を実行させる（図２２：ステップＳ１１１）。ここでは、情報処理システム１Ｉに対してＡＰＩが発行されたとする。ネットワークコネクタ生成処理については、後で説明する。
【００８５】
ユーザ端末１Ｔは、ネットワークコネクタを生成するためのＡＰＩの実行結果を、情報処理システム２Ｉから受信する（ステップＳ１１３）。ユーザ端末１Ｔは、受信した実行結果をメモリ等の記憶装置に格納する。そして処理は終了する。
【００８６】
図２３に、実行結果に含まれる情報の一例を示す。図２３の例では、コネクタＩＤと、ネットワークコネクタに付与された識別子と、コネクタＩＤを払い出したシステムのシステム名とが含まれる。実行結果は、後にエンドポイント生成処理において使用される。
【００８７】
図２４及び図２５を用いて、ネットワークコネクタ生成処理について説明する。まず、コネクション管理部１０１は、ネットワークコネクタを生成するためのＡＰＩをユーザ端末１Ｔから受信する（図２４：ステップＳ１２１）。
【００８８】
コネクション管理部１０１は、情報処理システム１Ｉのシステム名及びコネクタＩＤについての通し番号を組み合わせることで、全情報処理システムの間で一意の識別子を生成する（ステップＳ１２３）。例えば、情報処理システム１Ｉのシステム名及びコネクタＩＤについての通し番号を連結することで識別子が生成される。ここで、通し番号は、情報処理システム１ＩにおいてコネクタＩＤが生成される度にインクリメントされる番号である。
【００８９】
コネクション管理部１０１は、引数としてステップＳ１２３において生成した識別子を含む、ネットワークコネクタの生成要求を、情報処理システム１Ｉ内のＤＢ処理部１０３に送信し、ＤＢ処理部１０３に第一更新処理を実行させる（ステップＳ１２５）。
【００９０】
ここで、第１更新処理について説明する。まず、ＤＢ処理部１０３は、ネットワークコネクタの生成要求をコネクション管理部１０１から受信する（図２５：ステップＳ１３１）。
【００９１】
ＤＢ処理部１０３は、ＤＢ間で通信障害が発生中であるか判定する（ステップＳ１３３）。ＤＢ間で通信障害が発生中である場合（ステップＳ１３３：Ｙｅｓルート）、ＤＢ処理部１０３は、同期部１０７に以下の処理を実行させる。具体的には、同期部１０７は、使用可能範囲において払い出されていないコネクタＩＤを含むレコードをコネクタテーブル（図９）から１つ特定し、特定したレコードを更新する（ステップＳ１３５）。そして処理はステップＳ１４５に移行する。
【００９２】
ステップＳ１３５においては、特定したレコードの払い出しフラグが「１」に設定され、ネットワークコネクタの生成要求に含まれる識別子が登録され、コネクタＩＤを払い出したシステムとして情報処理システム１Ｉのシステム番号が登録される。
【００９３】
一方、ＤＢ間で通信障害が発生中ではない場合（ステップＳ１３３：Ｎｏルート）、ＤＢ処理部１０３は、同期部１０７に以下の処理を実行させる。具体的には、同期部１０７は、各情報処理システムのコネクタテーブル（図９）の排他ロックを獲得する処理を実行する（ステップＳ１３７）。ステップＳ１３７においては、各情報処理システムの同期部間で通信が行われる。
【００９４】
同期部１０７は、払い出されていないコネクタＩＤを含むレコードをコネクタテーブル（図９）から１つ特定し、特定したレコードを更新する（ステップＳ１３９）。ステップＳ１３９においては、特定したレコードの払い出しフラグが「１」に設定され、ネットワークコネクタの生成要求に含まれる識別子が登録され、コネクタＩＤを払い出したシステムとして情報処理システム１Ｉのシステム番号が登録される。「ＩＤを使用できるシステム」の欄はＮＵＬＬに設定される。
【００９５】
同期部１０７は、ステップＳ１３９において更新されたレコードを他の情報処理システム（ここでは、情報処理システム２Ｉ）に送信し、情報処理システム２Ｉのコネクタテーブルに登録させる（ステップＳ１４１）。
【００９６】
同期部１０７は、各情報処理システムのコネクタテーブル（図９）の排他ロックを解除する処理を実行する（ステップＳ１４３）。ステップＳ１４３においては、各情報処理システムの同期部間で通信が行われる。
【００９７】
同期部１０７は、更新が完了したことをＤＢ処理部１０３に通知する。これに応じ、ＤＢ処理部１０３は、更新されたレコードを含む応答をコネクション管理部１０１に送信する（ステップＳ１４５）。そして処理は終了する。
【００９８】
図２４の説明に戻り、コネクション管理部１０１は、ネットワークコネクタの生成要求の応答をＤＢ処理部１０３から受信する（ステップＳ１２７）。
【００９９】
コネクション管理部１０１は、ネットワークコネクタの生成が正常に行われたことを示す情報（本実施の形態においては、コネクタＩＤ、識別子及びシステム番号）を含む実行結果をユーザ端末１Ｔに送信する（ステップＳ１２９）。そして処理は終了する。
【０１００】
以上のような処理を実行すれば、エンドポイントを生成して実際に通信が開始される前段階の処理である、ネットワークコネクタの生成が適切に完了する。また、たとえ通信障害が発生している間にネットワークコネクタが生成されたとしても、情報処理システム１Ｉ及び情報処理システム２Ｉの間で一意の識別子がネットワークコネクタに付与されるため、ネットワークコネクタの再利用が発生することを防げるようになる。
【０１０１】
次に、エンドポイントの生成の際にユーザ端末１Ｔが実行する処理について説明する。ユーザ端末１Ｔは、ネットワークコネクタを生成するためのＡＰＩの実行結果から、コネクタＩＤ及び識別子を取得する（図２６：ステップＳ１１５）。
【０１０２】
ユーザ端末１Ｔは、引数として実行結果に含まれるコネクタＩＤ及び識別子を含む、エンドポイントを生成するためのＡＰＩを、生成されたネットワークコネクタにて接続を行う各情報処理システム（ここでは、情報処理システム１Ｉ及び２Ｉ）に対して発行し、エンドポイント生成処理をコネクション管理部１０１に実行させる（ステップＳ１１７）。
【０１０３】
図２７を用いて、エンドポイント生成処理について説明する。まず、コネクション管理部１０１は、エンドポイントを生成するためのＡＰＩをユーザ端末１Ｔから受信する（図２７：ステップＳ１５１）。
【０１０４】
コネクション管理部１０１は、引数としてＡＰＩに含まれるコネクタＩＤ及び識別子を含む、エンドポイントの生成要求を、情報処理システム１Ｉ内のＤＢ処理部１０３に送信し、ＤＢ処理部１０３に第２更新処理を実行させる（ステップＳ１５３）。
【０１０５】
図２８を用いて、第２更新処理について説明する。ＤＢ処理部１０３は、エンドポイントの生成要求をコネクション管理部１０１から受信する（図２８：ステップＳ１９１）。
【０１０６】
ＤＢ処理部１０３は、生成要求に含まれるコネクタＩＤが既に払い出されたかコネクタテーブルに基づき判定する（ステップＳ１９３）。既に払い出されたコネクタＩＤは、コネクタテーブルにおいて払い出しフラグが「１」に設定されている。
【０１０７】
生成要求に含まれるコネクタＩＤが既に払い出された場合（ステップＳ１９３：Ｙｅｓルート）、ＤＢ処理部１０３は、生成要求に含まれるコネクタＩＤ及び識別子を含むレコードをエンドポイントテーブルに生成する。そして、ＤＢ処理部１０３は、同期フラグを「ＯＮ」に設定し（ステップＳ１９５）、エンドポイントの生成要求の応答をコネクション管理部１０１に送信する。そして処理は終了する。
【０１０８】
図２９に、エンドポイントテーブルの一例を示す。図２９の例では、エンドポイントＩＤと、コネクタＩＤと、識別子と、同期フラグとが格納される。同期フラグは、エンドポイントが生成された時のＤＢ間通信の状態を表し、ＤＢ間通信に障害が発生していた場合には「ＯＦＦ」に設定される。エンドポイントテーブルのレコードは、コネクタテーブル（図９）とは異なり、運用中に削除又は追加される。
【０１０９】
一方、生成要求に含まれるコネクタＩＤが既に払い出されていない場合（ステップＳ１９３：Ｎｏルート）、ＤＢ処理部１０３は、生成要求に含まれるコネクタＩＤを含むレコードを特定し、特定したレコードを更新する（ステップＳ１９７）。ステップＳ１９７においては、特定したレコードの払い出しフラグが「１」に設定され、エンドポイントの生成要求に含まれる識別子が登録され、コネクタＩＤを払い出したシステムとして情報処理システム１Ｉのシステム番号が登録される。ＤＢ間通信に障害が発生していた場合にはコネクタテーブルのレコードが更新されていないため、ステップＳ１９７の処理によって更新される。
【０１１０】
ＤＢ処理部１０３は、生成要求に含まれるコネクタＩＤ及び識別子を含むレコードをエンドポイントテーブル（図２９）に生成する。そして、ＤＢ処理部１０３は、同期フラグを「ＯＦＦ」に設定し（ステップＳ１９９）、エンドポイントの生成要求の応答をコネクション管理部１０１に送信する。そして処理は終了する。
【０１１１】
図２７の説明に戻り、コネクション管理部１０１は、エンドポイントの生成要求の応答をＤＢ処理部１０３から受信する（ステップＳ１５５）。
【０１１２】
コネクション管理部１０１は、エンドポイントを生成するためのＡＰＩに含まれるコネクタＩＤに対応する仮想ルータを、第１対応テーブル（図６）から特定する（ステップＳ１５７）。
【０１１３】
コネクション管理部１０１は、ステップＳ１５７において特定した仮想ルータのＩＤを生成されたエンドポイントのＩＤに対応付けて第２対応テーブルに格納する（ステップＳ１５９）。
【０１１４】
図３０に、第２対応テーブルに格納されるデータの一例を示す。図３０においては、エンドポイントのＩＤと、エンドポイントに対応する仮想ルータのＩＤとが格納される。
【０１１５】
コネクション管理部１０１は、生成されたエンドポイントについて、エンドポイントテーブル（図２９）の同期フラグが「ＯＮ」に設定されているか判定する（ステップＳ１６１）。
【０１１６】
生成されたエンドポイントについて、エンドポイントテーブル（図２９）の同期フラグが「ＯＮ」に設定されていない場合（ステップＳ１６１：Ｎｏルート）、処理は端子Ｅを介して図３１のステップＳ１６７に移行する。
【０１１７】
図３１の説明に移行し、コネクション管理部１０１は、生成したエンドポイントに対して接続の確立指示を出力する。確立指示を受け取ったエンドポイントは、ステップＳ１５７において特定した仮想ルータを用いて、当該エンドポイントと、情報処理システム２Ｉにおいて同一のコネクタＩＤで生成されたエンドポイントとの間のコネクションを確立する処理を実行する（図３１：ステップＳ１６７）。図７に示したように、仮想ルータを介してエンドポイント間に１つのコネクションが確立されれば、エンドポイント間の通信が可能になる。
【０１１８】
コネクション管理部１０１は、コネクションの確立に成功したか判定する（ステップＳ１６９）。
【０１１９】
コネクションの確立に成功した場合（ステップＳ１６９：Ｙｅｓルート）、コネクション管理部１０１は、コネクション確立時において送受信されたパケットから識別子を取り出し、コネクションの両端のエンドポイントに設定された識別子を比較する（ステップＳ１７７）。これにより、ネットワークコネクタの正当性が確認される。
【０１２０】
コネクションの両端のエンドポイントに設定された識別子が一致しない場合（ステップＳ１７９：Ｎｏルート）、ステップＳ１７１の処理に移行する。コネクションの両端のエンドポイントに設定された識別子が一致する場合（ステップＳ１７９：Ｙｅｓルート）、コネクション管理部１０１は、エンドポイントを生成するためのＡＰＩの実行結果を「正常」に設定する（ステップＳ１８１）。処理は端子Ｆを介して図２７のステップＳ１６５に戻る。
【０１２１】
一方、コネクションの確立に失敗した場合（ステップＳ１６９：Ｎｏルート）、コネクション管理部１０１は、エンドポイント及びネットワークコネクタのロールバック要求を情報処理システム１ＩのＤＢ処理部１０３に送信し、ＤＢ処理部１０３に、エンドポイント及びネットワークコネクタのロールバック処理を実行させる（ステップＳ１７１）。エンドポイントのロールバックは例えばエンドポイントについてのレコードの削除であり、ネットワークコネクタのロールバックは例えばネットワークコネクタについてのレコードの削除である。
【０１２２】
コネクション管理部１０１は、ロールバック処理の実行結果をＤＢ処理部１０３から取得する（ステップＳ１７３）。
【０１２３】
コネクション管理部１０１は、エンドポイントを生成するためのＡＰＩの実行結果を「異常」に設定する（ステップＳ１７５）。処理は端子Ｆを介して図２７のステップＳ１６５に戻る。
【０１２４】
図２７の説明に戻り、生成されたエンドポイントについて、エンドポイントテーブル（図２９）の同期フラグが「ＯＮ」に設定されている場合（ステップＳ１６１：Ｙｅｓルート）、コネクション管理部１０１は、エンドポイントを生成するためのＡＰＩの実行結果を「正常」に設定する（ステップＳ１６３）。
【０１２５】
コネクション管理部１０１は、エンドポイントを生成するためのＡＰＩの実行結果をユーザ端末１Ｔに送信する（ステップＳ１６５）。そして処理は終了する。
【０１２６】
図２６の説明に戻り、ユーザ端末１Ｔは、エンドポイントを生成するためのＡＰＩの実行結果を各情報処理システムから受信する（ステップＳ１１９）。そして処理は終了する。
【０１２７】
以上のような処理を実行すれば、ＤＢ間の通信が停止した場合においても、ネットワークコネクタの再利用を発生させることなく、エンドポイント間での通信を開始することができるようになる。
【０１２８】
図３２乃至図３４を用いて、ネットワークコネクタの再利用について説明する。図３２において、ユーザＡについてのエンドポイント１０１０とユーザＡについてのエンドポイント２０１０との間においてコネクションが確立されている。この状態において、コネクタテーブルに登録されたコネクタＩＤは全て払い出されているとする。なお、他のコネクションも確立されているが、説明を簡単にするため、図３２においては省略されている。
【０１２９】
そして、同期通信が停止している間に、図３３に示すようにユーザＡの端末からのＡＰＩによってエンドポイント１０１０が削除されたとする。この場合、情報処理システム１Ｉにおけるコネクタテーブルにおいて、エンドポイント１０１０とエンドポイント２０１０との間のコネクションについてのレコードは削除される。エンドポイント１０１０が削除されるため通信経路は無くなるが、仮想ルータ１０２０は削除されずに残ったままである。
【０１３０】
そして、図３４に示すように、削除されたレコードに含まれるコネクタＩＤが、ユーザＡとは異なるユーザＢの端末からのＡＰＩによって再び払い出され、ユーザＢについてのエンドポイント３０１０が生成されたとする。この場合、エンドポイント３０１０は、仮想ルータ１０２０及び仮想ルータ２０２０を介してエンドポイント２０１０と通信を行うことが可能になる。このように、ネットワークコネクタの再利用によって、意図しない相手との通信が行われる可能性がある。
【０１３１】
これに対して、本実施の形態によれば、情報処理システム１Ｉと情報処理システム２Ｉとの間で、各ネットワークコネクタについて一意の識別子が生成され、識別子が一致しない限り通信は行われない。従って、ネットワークコネクタの再利用によって意図しない相手との通信が行われることはない。
【０１３２】
また、本実施の形態によれば、同期通信が停止したとしても、エンドポイントの生成時にネットワークコネクタを生成してコネクタテーブル（図９）に登録することで、復旧後の同期通信再開時に転送するデータ量を少なくすることができる。従って、帯域が広くないネットワークであっても、他の通信に大きな影響を与えることなく同期を行うことができるようになる。また、復帰後の同期通信は、ネットワークコネクタに対してコネクタＩＤを払い出していない方の情報処理システムにおいてエンドポイントが生成された場合に限り行われるため、ＡＰＩのための処理の性能が劣化することを抑制することができるようになる。
【０１３３】
また、使用可能なコネクタＩＤの範囲が分割され、各範囲について同期が行われるので、排他ロックを獲得することなく容易に同期を行うことができるようになる。
【０１３４】
また、同期通信が停止した場合であっても、エンドポイント間のコネクションを確立してユーザについての通信を行うことができるようになる。
【０１３５】
また、片方の情報処理システムが停止した場合であっても、もう一方の情報処理システムにおいてネットワークコネクタ及びエンドポイントを生成しておくことができるようになる。
【０１３６】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置１Ｓの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【０１３７】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１３８】
識別子の生成方法は、上で述べたような方法には限られない。複数の情報処理システムの間で一意の情報であれば、上で述べたような方法以外の方法であってもよい。
【０１３９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１４０】
本実施の形態の第１の態様に係る第１情報処理装置は、（Ａ）第１情報処理装置と第２情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報（例えばレコード）を格納するデータ格納部（例えばコネクタテーブル）と、（Ｂ）データ格納部に格納された情報と、第２情報処理装置が管理する情報とを同期する同期部（例えば同期部１０７）と、（Ｃ）同期部による同期の停止中に第１情報処理装置と第２情報処理装置との間でコネクションを確立する場合、少なくとも第１情報処理装置と第２情報処理装置との間で一意な情報を生成し、生成した一意な情報を第２情報処理装置に送信する生成部（例えばコネクション管理部１０１）と、（Ｄ）一意な情報に基づき、第１情報処理装置と第２情報処理装置との間でコネクションを確立する通信部（例えばエンドポイント１０１０）とを有する。
【０１４１】
同期部による同期の停止中にコネクションを確立する場合、コネクションの再利用が原因で意図しない相手との通信が行われる可能性があるため、コネクションを確立することは好ましくない。そこで、上記のような構成であれば、コネクションの再利用が行われることはないので、同期の停止中においてもコネクションを確立することができるようになる。
【０１４２】
また、上記生成部は、（ｃ１）第１情報処理装置を有するシステムの識別情報と、第１情報処理装置と第２情報処理装置との間でのコネクションの確立時に生成する通し番号とに基づき一意な情報を生成してもよい。但し、他の方法で一意な情報を生成してもよい。
【０１４３】
また、上記通信部は、（ｄ１）生成部により生成された一意な情報と、第２情報処理装置から受信した一意な情報とが一致するか否か判定し、生成部により生成された一意な情報と、第２情報処理装置から受信した一意な情報とが一致すると判定された場合、第１情報処理装置と第２情報処理装置との間でコネクションを確立してもよい。意図しない相手と通信することを防げるようになる。
【０１４４】
また、（ａ１）上記データ格納部に格納された情報は、コネクションの識別情報を含んでもよい。上記生成部は、（ｃ２）第１情報処理装置と第２情報処理装置との間で確立されるコネクションのうち識別情報が付与されたコネクションの数に対する、第１情報処理装置により識別情報が付与されたコネクションの数の割合を算出し、（ｃ３）第１情報処理装置と第２情報処理装置との間で確立されるコネクションのうち識別情報が付与されていないコネクションの中から、算出した割合に基づき、第１情報処理装置により識別情報が付与されるコネクションの範囲を特定し、（ｃ４）コネクションの生成要求を受信した場合、特定された範囲から選択された１のコネクションについて、当該コネクションに対して付与される識別情報と一意な情報とをデータ格納部に登録してもよい。上記のような構成であれば、各情報処理装置が使用できる識別情報が適切に決定されるので、情報処理装置が使用できる識別情報が枯渇することを抑制できるようになる。
【０１４５】
また、上記同期部は、（ｂ１）同期を再開する場合、特定された範囲に含まれるコネクションついての情報の同期と、特定された範囲に含まれないコネクションについての情報の同期とを並行して実行してもよい。同期されていない情報は、範囲に含まれるコネクションについての情報と範囲に含まれないコネクションについての情報とを含むので、上で述べたようにすれば排他ロックを獲得することなく効率的に同期を行えるようになる。
【０１４６】
また、上記同期部は、（ｂ２）範囲に含まれるコネクションに対して第１情報処理装置により付与された識別情報を、第２情報処理装置に送信し、（ｂ３）第２情報処理装置から、範囲に含まれるコネクションのうち第２情報処理装置が通信に使用していないコネクションの識別情報を受信し、（ｂ４）受信した識別情報が付与されたコネクションについての情報をデータ格納部から読み出し、読み出した当該情報を第２情報処理装置に送信してもよい。範囲に含まれるコネクションについての情報の同期を適切に行えるようになる。
【０１４７】
また、上記同期部は、（ｂ５）範囲に含まれないコネクションに対して第２情報処理装置により付与された識別情報を、第２情報処理装置から受信し、（ｂ６）受信した識別情報のうち第１情報処理装置が通信に使用していないコネクションの識別情報をデータ格納部から特定し、特定した当該識別情報を第２情報処理装置に送信してもよい。範囲に含まれないコネクションについての情報の同期を適切に行えるようになる。
【０１４８】
本実施の形態の第２の態様に係る情報処理方法は、（Ｅ）第１コンピュータと第２コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された情報と、第２コンピュータが管理する情報との同期が停止している間に、第１コンピュータと第２コンピュータとの間でコネクションを確立する場合、少なくとも第１コンピュータと第２コンピュータとの間で一意な情報を生成し、（Ｆ）生成した一意な情報を第２コンピュータに送信し、（Ｇ）一意な情報に基づき、第１コンピュータと第２コンピュータとの間でコネクションを確立する処理を含む。
【０１４９】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１５０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５１】
（付記１）
第１情報処理装置であって、
前記第１情報処理装置と第２情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
前記データ格納部に格納された前記情報と、前記第２情報処理装置が管理する前記情報とを同期する同期部と、
前記同期部による同期の停止中に前記第１情報処理装置と第２情報処理装置との間でコネクションを確立する場合、少なくとも前記第１情報処理装置と前記第２情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第２情報処理装置に送信する生成部と、
前記一意な情報に基づき、前記第１情報処理装置と前記第２情報処理装置との間でコネクションを確立する通信部と、
を有する第１情報処理装置。
【０１５２】
（付記２）
前記生成部は、
前記第１情報処理装置を有するシステムの識別情報と、前記第１情報処理装置と第２情報処理装置との間でのコネクションの確立時に生成する通し番号とに基づき前記一意な情報を生成する、
付記１記載の第１情報処理装置。
【０１５３】
（付記３）
前記生成部は、
前記生成部により生成された前記一意な情報と、前記第２情報処理装置から受信した前記一意な情報とが一致するか否か判定し、前記生成部により生成された前記一意な情報と、前記第２情報処理装置から受信した前記一意な情報とが一致すると判定された場合、前記第１情報処理装置と前記第２情報処理装置との間でコネクションを前記通信部に確立させる、
付記１又は２記載の第１情報処理装置。
【０１５４】
（付記４）
前記データ格納部に格納された情報は、コネクションの識別情報を含み、
前記生成部は、
前記第１情報処理装置と前記第２情報処理装置との間で確立されるコネクションのうち識別情報が付与されたコネクションの数に対する、前記第１情報処理装置により識別情報が付与されたコネクションの数の割合を算出し、
前記第１情報処理装置と前記第２情報処理装置との間で確立されるコネクションのうち識別情報が付与されていないコネクションの中から、算出した前記割合に基づき、前記第１情報処理装置により識別情報が付与されるコネクションの範囲を特定し、
コネクションの生成要求を受信した場合、特定された前記範囲から選択された１のコネクションについて、当該コネクションに対して付与される識別情報と前記一意な情報とを前記データ格納部に登録する、
付記１乃至３のいずれか１つ記載の第１情報処理装置。
【０１５５】
（付記５）
前記同期部は、
前記同期を再開する場合、特定された前記範囲に含まれるコネクションついての情報の同期と、特定された前記範囲に含まれないコネクションについての情報の同期とを並行して実行する、
付記４記載の第１情報処理装置。
【０１５６】
（付記６）
前記同期部は、
前記範囲に含まれるコネクションに対して前記第１情報処理装置により付与された識別情報を、前記第２情報処理装置に送信し、
前記第２情報処理装置から、前記範囲に含まれるコネクションのうち前記第２情報処理装置が通信に使用していないコネクションの識別情報を受信し、
受信した前記識別情報が付与されたコネクションについての情報を前記データ格納部から読み出し、読み出した当該情報を前記第２情報処理装置に送信する、
付記５記載の第１情報処理装置。
【０１５７】
（付記７）
前記同期部は、
前記範囲に含まれないコネクションに対して前記第２情報処理装置により付与された識別情報を、前記第２情報処理装置から受信し、
受信した前記識別情報のうち前記第１情報処理装置が通信に使用していないコネクションの識別情報を前記データ格納部から特定し、特定した当該識別情報を前記第２情報処理装置に送信する、
付記５又は６記載の第１情報処理装置。
【０１５８】
（付記８）
第１のコンピュータが、
前記第１コンピュータと第２コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第２コンピュータが管理する前記情報との同期が停止している間に、前記第１コンピュータと第２コンピュータとの間でコネクションを確立する場合、少なくとも前記第１コンピュータと前記第２コンピュータとの間で一意な情報を生成し、
生成した前記一意な情報を前記第２コンピュータに送信し、
前記一意な情報に基づき、前記第１コンピュータと前記第２コンピュータとの間でコネクションを確立する、
処理を実行する情報処理方法。
【０１５９】
（付記９）
第１のコンピュータに、
前記第１コンピュータと第２コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第２コンピュータが管理する前記情報との同期が停止している間に、前記第１コンピュータと第２コンピュータとの間でコネクションを確立する場合、少なくとも前記第１コンピュータと前記第２コンピュータとの間で一意な情報を生成し、
生成した前記一意な情報を前記第２コンピュータに送信し、
前記一意な情報に基づき、前記第１コンピュータと前記第２コンピュータとの間でコネクションを確立する、
処理を実行させるプログラム。
【０１６０】
（付記１０）
第１の情報処理装置と、
第２の情報処理装置と、
を有し、
前記第１の情報処理装置は、
前記第１情報処理装置と前記第２情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
前記データ格納部に格納された前記情報と、前記第２情報処理装置が管理する前記情報とを同期する同期部と、
前記同期部による同期の停止中に前記第１情報処理装置と第２情報処理装置との間でコネクションを確立する場合、少なくとも前記第１情報処理装置と前記第２情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第２情報処理装置に送信する生成部と、
を有し、
前記第１の情報処理装置及び前記第２の情報処理装置は、
前記一意な情報に基づき、前記第１情報処理装置と前記第２情報処理装置との間でコネクションを確立する通信部、
を有する情報処理システム。
【符号の説明】
【０１６１】
１Ｔ  ユーザ端末    １Ｎ，３Ｎ  ネットワーク
１Ｉ，２Ｉ  情報処理システム    １Ｓ，２Ｓ，３Ｓ  情報処理装置
１０  ＣＰＵ    １１  メモリ
１３  ＮＩＣ    １４  ＨＤＤ
１５  バス    １０１，２０１  コネクション管理部
１０３  ＤＢ処理部    １０５  ＤＢ
１０７  同期部    １０１０，２０１０  エンドポイント
１０２０，２０２０  仮想ルータ
【図１】
2018013899.tif 000003
【図２】
2018013899.tif 000004
【図３】
2018013899.tif 000005
【図４】
2018013899.tif 000006
【図５】
2018013899.tif 000007
【図６】
2018013899.tif 000008
【図７】
2018013899.tif 000009
【図８】
2018013899.tif 000010
【図９】
2018013899.tif 000011
【図１０】
2018013899.tif 000012
【図１１】
2018013899.tif 000013
【図１２】
2018013899.tif 000014
【図１３】
2018013899.tif 000015
【図１４】
2018013899.tif 000016
【図１５】
2018013899.tif 000017
【図１６】
2018013899.tif 000018
【図１７】
2018013899.tif 000019
【図１８】
2018013899.tif 000020
【図１９】
2018013899.tif 000021
【図２０】
2018013899.tif 000022
【図２１】
2018013899.tif 000023
【図２２】
2018013899.tif 000024
【図２３】
2018013899.tif 000025
【図２４】
2018013899.tif 000026
【図２５】
2018013899.tif 000027
【図２６】
2018013899.tif 000028
【図２７】
2018013899.tif 000029
【図２８】
2018013899.tif 000030
【図２９】
2018013899.tif 000031
【図３０】
2018013899.tif 000032
【図３１】
2018013899.tif 000033
【図３２】
2018013899.tif 000034
【図３３】
2018013899.tif 000035
【図３４】
2018013899.tif 000036