JP6683049B2 - 情報処理装置、情報処理方法、情報処理システム及びプログラム - Google Patents

情報処理装置、情報処理方法、情報処理システム及びプログラム Download PDF

Info

Publication number
JP6683049B2
JP6683049B2 JP2016142090A JP2016142090A JP6683049B2 JP 6683049 B2 JP6683049 B2 JP 6683049B2 JP 2016142090 A JP2016142090 A JP 2016142090A JP 2016142090 A JP2016142090 A JP 2016142090A JP 6683049 B2 JP6683049 B2 JP 6683049B2
Authority
JP
Japan
Prior art keywords
information processing
information
processing device
connection
synchronization
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.)
Active
Application number
JP2016142090A
Other languages
English (en)
Other versions
JP2018013899A (ja
Inventor
塁 土橋
塁 土橋
浩一 三浦
浩一 三浦
山田 俊昭
俊昭 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016142090A priority Critical patent/JP6683049B2/ja
Priority to US15/651,051 priority patent/US10776392B2/en
Publication of JP2018013899A publication Critical patent/JP2018013899A/ja
Application granted granted Critical
Publication of JP6683049B2 publication Critical patent/JP6683049B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明は、装置間の接続の確立技術に関する。
複数の情報処理装置の間でデータベースを冗長化する技術が知られている。例えば、或る文献は、セッションについての情報が登録されたセッションテーブルをマスタサーバが有し、マスタサーバのセッションテーブルをレプリカサーバが複製する技術を開示する。
但し、情報処理装置の接続についての情報をデータベースに登録する場合、データベースを同期するための通信が障害等により停止すると、情報処理装置間の接続が通常どおり確立されなくなることがある。
特開2014−48969号公報
本発明の目的は、1つの側面では、装置間の接続についての情報を記憶するデータベースの同期をとることができない場合においても、装置間の接続を確立するための技術を提供することである。
本発明に係る第1情報処理装置は、第1情報処理装置と第2情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、データ格納部に格納された情報と、第2情報処理装置が管理する情報とを同期する同期部と、同期部による同期の停止中に第1情報処理装置と第2情報処理装置との間でコネクションを確立する場合、少なくとも第1情報処理装置と第2情報処理装置との間で一意な情報を生成し、生成した一意な情報を第2情報処理装置に送信する生成部と、一意な情報に基づき、第1情報処理装置と第2情報処理装置との間でコネクションを確立する通信部とを有する。
1つの側面では、装置間の接続についての情報を記憶するデータベースの同期をとることができない場合においても、装置間の接続を確立できるようになる。
図1は、本実施の形態のネットワーク構成を示す図である。 図2は、情報処理システムのシステム概要を示す図である。 図3は、情報処理装置のハードウエア構成図である。 図4は、情報処理装置の機能ブロック図である。 図5は、システムテーブルの一例を示す図である。 図6は、第1対応テーブルの一例を示す図である。 図7は、コネクションについて説明するための図である。 図8は、同期部が実行する処理の処理フローを示す図である。 図9は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。 図10は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。 図11は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。 図12は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。 図13は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。 図14は、テーブル同期処理及びテーブル分割処理の概要を説明するための図である。 図15は、テーブル分割処理の処理フローを示す図である。 図16は、使用可能範囲内についてのテーブル同期処理の処理フローを示す図である。 図17は、使用可能範囲内についてのテーブル同期処理の処理フローを示す図である。 図18は、同期テーブルの一例を示す図である。 図19は、使用可能範囲内の同期成功フラグの値と使用可能範囲外の同期成功フラグの値との組合せを示す図である。 図20は、使用可能範囲外についてのテーブル同期処理の処理フローを示す図である。 図21は、使用可能範囲外についてのテーブル同期処理の処理フローを示す図である。 図22は、ネットワークコネクタの生成の際にユーザ端末が実行する処理の処理フローを示す図である。 図23は、ネットワークコネクタを生成するためのAPIの実行結果に含まれる情報の一例を示す図である。 図24は、ネットワークコネクタ生成処理の処理フローを示す図である。 図25は、第1更新処理の処理フローを示す図である。 図26は、エンドポイントの生成の際にユーザ端末が実行する処理の処理フローである。 図27は、エンドポイント生成処理の処理フローを示す図である。 図28は、第2更新処理の処理フローを示す図である。 図29は、エンドポイントテーブルの一例を示す図である。 図30は、第2対応テーブルの一例を示す図である。 図31は、エンドポイント生成処理の処理フローを示す図である。 図32は、ネットワークコネクタの再利用について説明するための図である。 図33は、ネットワークコネクタの再利用について説明するための図である。 図34は、ネットワークコネクタの再利用について説明するための図である。
図1に、本実施の形態のネットワーク構成を示す。例えばインターネットであるネットワーク1Nには、情報処理システム1I及び情報処理システム2Iと、ユーザ端末1Tとが接続される。ユーザ端末1Tの操作者は、情報処理システム1I及び情報処理システム2Iのリソースのユーザであり、例えば情報処理システム1I及び情報処理システム2I上で実行される仮想マシンを利用する。情報処理システム1I及び情報処理システム2Iは、例えばOpenStackにより実現される。ユーザ端末1Tにおいては、ユーザ用のアプリケーションが実行されており、アプリケーションから発行されたAPI(Application Programming Interface)に従って情報処理システム1I及び情報処理システム2Iにおいて処理が実行される。
図1においては情報処理システムの数は2であり、ユーザ端末の数は1であるが、数に限定は無い。
図2に、情報処理システム1Iのシステム概要を示す。情報処理システム1Iは、情報処理装置1S乃至3Sを有する。情報処理装置1S乃至3Sは、例えばLAN(Local Area Network)であるネットワーク3Nを介して接続される。
図2においては情報処理装置の数は3であるが、数に限定は無い。また、情報処理システム1I内に物理スイッチ等の装置が設けられてもよい。
なお、情報処理システム2Iのシステム概要は情報処理システム1Iのシステム概要と同じであるので、説明を省略する。
図3に、情報処理装置1Sのハードウエア構成図を示す。例えば物理サーバである情報処理装置1Sは、1又は複数のCPU(Central Processing Unit)10と、1又は複数のメモリ(例えばDIMM(Dual Inline Memory Module))11と、1又は複数のNIC(Network Interface Card)13と、1又は複数のHDD(Hard Disk Drive)14と、バス15とを有する。
なお、情報処理装置2S及び情報処理装置3Sのハードウエア構成は情報処理装置1Sのハードウエア構成と同じであるので、説明を省略する。
本実施の形態の処理を実行するためのプログラムは、例えばHDD14に格納されており、CPU10によりメモリ11にロードされ実行されることで、図4に示すような各種機能を実現する。図4に、情報処理装置1Sの機能ブロック図を示す。情報処理装置1Sは、コネクション管理部101と、DB(DataBase)処理部103と、DB105と、同期部107とを有する。DB105は、メモリ11又はHDD14により実現される。
コネクション管理部101は、情報処理システム1I内の情報処理装置と情報処理システム2I内の情報処理装置との間で確立されるコネクションを管理する処理を実行する。DB処理部103は、DB105への書き込み及びDB105からの読み出し等を実行する。同期部107は、DB105に格納されているデータを、他の情報処理システムにおけるDB105に格納されているデータと完全同期する処理を実行する。
なお、図4においては情報処理装置1S内にコネクション管理部101、DB処理部103、DB105及び同期部107が実現される例を示したが、情報処理装置1S以外の情報処理装置において実現されてもよい。また、情報処理システム2Iにおけるいずれかの情報処理装置においても、コネクション管理部101、DB処理部103、DB105及び同期部107に相当する処理部が実現される。
なお、情報処理装置1S乃至3S及び情報処理システム2I内の情報処理装置においては、例えばユーザの仮想マシン或いはユーザのプロセスが実行されており、当該仮想マシン或いはプロセスの通信のために情報処理システム1Iと情報処理システム2Iとの間にコネクションが確立される。
図5に、DB105に格納されるシステムテーブルの一例を示す。図5の例では、システム番号と、システム名とが格納される。システムテーブルには、各情報処理システムについてエントリが設けられる。各情報処理システムのDB105は同一のシステムテーブルを記憶する。
図6に、DB105に格納される第1対応テーブルの一例を示す。図6の例では、以下で説明するネットワークコネクタのID(IDentifier)(以下、コネクタIDと呼ぶ)と、情報処理システムにおいて実行される仮想ルータ(仮想ルータについては後で説明する)のIDとが格納される。仮想ルータIDは各情報処理システムにおいて任意に設定されるため、各情報処理システムのDB105に格納されているデータの内容は異なる。
図7を用いて、本実施の形態におけるコネクションについて説明する。ユーザの仮想マシン或いはプロセスは、図7に示すように、エンドポイントを通信のチャネル(例えば仮想ポート)として利用する。図7においては、情報処理システム1Iのコネクション管理部101内にエンドポイント1010が生成されており、情報処理システム2Iのコネクション管理部201内にエンドポイント2010が生成されている。エンドポイント1010及び2010はコネクションの終端に相当し、ユーザ端末1TからのAPIに従って生成される。また、情報処理システム1Iにおいては運用開始時に仮想ルータ1020が生成され、生成されたエンドポイント1010は仮想ルータ1020に仮想的に接続される。情報処理システム2Iにおいては運用開始時に仮想ルータ2020が生成され、生成されたエンドポイント2010は仮想ルータ2020に仮想的に接続される。これにより、エンドポイント1010とエンドポイント2010との間においては1つのコネクションが生成される。本実施の形態においては、このような接続の単位がネットワークコネクタと呼ばれ、各情報処理システムにおける1台の仮想ルータ及び1つのエンドポイントが1つのネットワークコネクタに対応する。
図7においては、ネットワークコネクタの数が1であるが、数に限定は無い。
なお、DBの同期のための通信及びエンドポイント間の通信は、両方ともネットワーク1Nを経由しているが、本実施形態においては、DBの同期のための通信に特有の理由(例えば、同期部107の負荷の問題など)によって当該通信のみが停止するケースが生じるものとする。
次に、図8乃至図34を用いて、情報処理システム1Iにおいて実行される処理について説明する。
まず、図8乃至図21を用いて、同期部107が実行する処理について説明する。ここでは、情報処理システム1Iの同期部107が実行する処理を例として説明する。
情報処理システム1Iの同期部107は、他の情報処理システム(ここでは、情報処理システム2I)の同期部に監視パケットを送信し、応答を待つ(図8:ステップS1)。本実施の形態においては、各情報処理システムのDBを同期するために同期部間で実行される通信を同期通信と呼ぶ。
同期部107は、他の情報処理システムから応答を受信したか判定する(ステップS3)。すなわち、同期通信が可能であるか判定される。
他の情報処理システムから応答を受信した場合(ステップS3:Yesルート)、同期部107は、応答を受信する直前まで同期通信が可能ではなかったか判定する(ステップS9)。すなわち、同期通信が可能な状態に状態が切り替わったか判定される。
応答を受信する直前も同期通信が可能であった場合(ステップS9:Noルート)、同期は問題無く行われているので、処理はステップS1に戻る。一方、応答を受信する直前まで同期通信が可能ではなかった場合(ステップS9:Yesルート)、同期が行われていないので、同期部107はテーブル同期処理を実行する(ステップS11)。テーブル同期処理については後で説明する。そして処理はステップS13に移行する。
一方、他の情報処理システムから応答を受信していない場合(ステップS3:Noルート)、同期部107は、直前まで同期通信が可能であったか判定する(ステップS5)。
直前も同期通信が可能ではなかった場合(ステップS5:Noルート)、処理はステップS13に移行する。一方、直前まで同期通信が可能であった場合(ステップS5:Yesルート)、同期部107は、テーブル分割処理を実行する(ステップS7)。テーブル分割処理については後で説明する。そして処理はステップS13に移行する。
同期部107は、情報処理システム1Iの管理者から終了指示を受け付けたか判定する(ステップS13)。終了指示を受け付けていない場合(ステップS13:Noルート)、ステップS1の処理に戻る。一方、終了指示を受け付けた場合(ステップS13:Yesルート)、処理は終了する。
以上のような処理を実行すれば、通信の状態が切り替わったタイミングにおいてコネクタテーブルの同期又は分割を行えるようになる。
図9乃至図14を用いて、テーブル同期処理及びテーブル分割処理の概要を説明する。DB105には、図9に示すようなコネクタテーブルが格納されており、コネクタテーブルに格納されたデータが同期の対象である。コネクタテーブルには、ネットワークコネクタのIDであるコネクタIDと、コネクタIDが払い出された否かを表す払い出しフラグと、ネットワークコネクタに対して付与される識別子と、コネクタIDを払い出した情報処理システムのシステム番号と、コネクタIDを使用できる情報処理システムのシステム番号とが格納される。ネットワークコネクタに対して付与される識別子は、情報処理システム1I及び情報処理システム2Iの間で一意になるように生成される。本実施の形態においては、情報処理システムのシステム名と払い出されたコネクタIDとを含む識別子が生成される。
或る情報処理システムにおいてネットワークコネクタの生成及び削除が繰り返し行われると、コネクションの再利用によって異なるユーザのエンドポイント間で通信が行われる可能性が有る。しかし、上記のような識別子を利用することで、コネクションの再利用を防げるようになるので、セキュリティが向上する。これについては、後で詳しく説明する。
同期通信が可能な状態から同期通信が可能ではない状態に状態が切り替わった場合、コネクタテーブル(図9)のレコードのうち払い出されていないコネクタIDを含むレコードは、既に払い出されたコネクタIDの払い出し割合に従って分割され、各情報処理システムに割り当てられる。例えば図10に示すように、4つのコネクタIDが情報処理システム「AZ1」によって払い出され、2つのコネクタIDが情報処理システム「AZ2」によって払い出されている場合、払い出されていないレコードのうち2/(2+1)のレコードは情報処理システム「AZ1」の使用可能範囲として情報処理システム「AZ1」に割り当てられ、払い出されていないレコードのうち1/(2+1)のレコードは情報処理システム「AZ2」の使用可能範囲として情報処理システム「AZ2」に割り当てられる。このように、払い出されていないコネクタIDの範囲を複数の使用可能範囲に分割する処理がテーブル分割処理に相当する。
そして、テーブル同期処理においては、自情報処理システム(ここでは、情報処理システム1Iとする)の使用可能範囲についての同期と情報処理システム1I以外の情報処理システム(すなわち、情報処理システム2I)の使用可能範囲についての同期とが並行して行われる。例えば図11に示すように、コネクタID「X1」が情報処理システム「AZ1」によって払い出され、コネクタID「X2」が情報処理システム「AZ2」によって払い出されている場合、コネクタID「Y1」乃至「Y10」についてのレコードが情報処理システム「AZ1」の使用可能範囲であり、コネクタID「Z1」乃至「Z10」についてのレコードが情報処理システム「AZ2」についての使用可能範囲である。図11においては、ハッチングは情報処理システムが払い出すことができないコネクタIDの範囲を表す。ここでは、コネクタID「Y1」乃至「Y10」については、既に情報処理システム「AZ1」によってネットワークコネクタが既に生成され、コネクタID「Z1」乃至「Z10」については、既に情報処理システム「AZ2」によってネットワークコネクタが既に生成されているとする。なお、ネットワークコネクタが既に生成されている場合、コネクタテーブル(図9)のレコード内のコネクタIDが払い出されているが、必ずしもエンドポイント間のコネクションが確立されていない。
図12に示すように、情報処理システム「AZ1」は、情報処理システム「AZ1」によってネットワークコネクタが生成されたコネクタID「Y1」乃至「Y10」を情報処理システム「AZ2」に通知する。情報処理システム「AZ2」は、情報処理システム「AZ2」によってネットワークコネクタが生成されたコネクタID「Z1」乃至「Z10」を情報処理システム「AZ1」に通知する。情報処理システム「AZ1」は、コネクタID「Z1」乃至「Z5」についてエンドポイントを既に生成している。情報処理システム「AZ2」は、コネクタID「Y1」乃至「Y4」についてエンドポイントを既に生成している。エンドポイントが既に生成されている場合、コネクションが確立されエンドポイント間の通信が可能である。
図13に示すように、情報処理システム「AZ1」は、情報処理システム「AZ2」から通知されたコネクタIDのうちエンドポイントが未だ生成されていないコネクタID「Z6」乃至「Z10」を情報処理システム「AZ2」に通知する。また、情報処理システム「AZ2」は、情報処理システム「AZ1」から通知されたコネクタIDのうちエンドポイントが未だ生成されていないコネクタID「Y5」乃至「Y10」を情報処理システム「AZ1」に通知する。図13において通知されるコネクタIDは、同期が完了していないレコードに含まれるコネクタIDに相当する。従って、各情報処理システムは、どのレコードの同期が完了されていないかを把握することができる。
図14に示すように、情報処理システム「AZ1」は、情報処理システム「AZ2」から通知されたコネクタIDを含むレコードを情報処理システム「AZ2」に送信する。また、情報処理システム「AZ2」は、情報処理システム「AZ1」から通知されたコネクタIDを含むレコードを情報処理システム「AZ1」に送信する。これにより、コネクタテーブル(図9)の同期が完了する。
図15を用いて、テーブル分割処理をより詳細に説明する。まず、同期部107は、コネクタテーブル(図9)から、コネクタIDを払い出した情報処理システムのシステム番号を読み出す(図15:ステップS21)。
同期部107は、各情報処理システムについて、コネクタテーブル(図9)に格納されている全コネクタIDの数に対する当該情報処理システムが払い出したコネクタIDの数の割合を算出する(ステップS23)。ステップS23において行われる処理は、図10を用いて説明したとおりである。コネクタテーブル(図9)に格納されている全コネクタIDの数は、予め情報処理システム1Iの管理者により設定される。
同期部107は、ステップS23において算出した割合に基づき、各情報処理システムが使用できるコネクタIDの範囲(すなわち使用可能範囲)を算出する(ステップS25)。ステップS25において行われる処理は、図10を用いて説明したとおりである。
同期部107は、情報処理システム1Iのシステム番号を、システムテーブル(図5)から読み出す(ステップS27)。
同期部107は、ステップS27において読み出したシステム番号より小さいシステム番号を有する情報処理システムが使用できるコネクタIDの数の合計xを算出する(ステップS29)。例えばステップS27において読み出したシステム番号が3である場合、システム番号「1」を有する情報処理システムが使用できるコネクタIDの数と、システム番号「2」を有する情報処理システムが使用できるコネクタIDの数との合計xが算出される。
同期部107は、コネクタテーブル(図9)内の(x+1)番目のコードから順に、y(yは情報処理システム1Iが使用できるコネクタIDの数)個のレコードに情報処理システム1Iのシステム番号を書き込む(ステップS31)。そして呼び出し元の処理に戻る。
図16乃至図21を用いて、テーブル同期処理をより詳細に説明する。上で述べたように、各情報処理システムは、使用可能範囲内のコネクタIDについての同期処理と使用可能範囲外のコネクタIDについての同期処理とが並行して行われるので、まず、使用可能範囲内のコネクタIDについての同期処理(テーブル同期処理1)を説明する。
同期部107は、コネクタテーブル(図9)から、情報処理システム1Iの使用可能範囲内から払い出したコネクタID(ここでは、払い出しフラグが「1」に設定されているコネクタID)を含む同期データを、他の情報処理システム(ここでは、情報処理システム2I)に送信する(図16:ステップS41)。
同期部107は、ステップS41において送信した同期データに対する応答の受信タイマをセットする(ステップS43)。
同期部107は、情報処理システム2Iから応答を受信したか判定する(ステップS45)。
情報処理システム2Iから応答を受信していない場合(ステップS45:Noルート)、同期部107は、ステップS43においてセットされた受信タイマのタイムアウトであるか判定する(ステップS47)。受信タイマのタイムアウトではない場合(ステップS47:Noルート)、ステップS45の処理に戻る。受信タイマのタイムアウトである場合(ステップS47:Yesルート)、処理はステップS57に移行する。
一方、情報処理システム2Iから応答を受信した場合(ステップS45:Yesルート)、同期部107は、応答に含まれるコネクタIDと一致するコネクタIDを含むレコードをコネクタテーブル(図9)から抽出する。そして、同期部107は、抽出したレコードを情報処理システム2Iに送信する(ステップS49)。
同期部107は、ステップS49において送信したレコードに対する応答の受信タイマをセットする(ステップS51)。
同期部107は、情報処理システム2Iから応答を受信したか判定する(ステップS53)。
情報処理システム2Iから応答を受信した場合(ステップS53:Yesルート)、処理は端子Aを介して図17のステップS61に移行する。端子A以降については後で説明する。
一方、情報処理システム2Iから応答を受信していない場合(ステップS53:Noルート)、同期部107は、ステップS51においてセットされた受信タイマのタイムアウトであるか判定する(ステップS55)。
受信タイマのタイムアウトではない場合(ステップS55:Noルート)、処理はステップS53に戻る。受信タイマのタイムアウトである場合(ステップS55:Yesルート)、同期部107は、DB105に格納されている同期テーブルにおいて、使用可能範囲内の同期処理フラグを「ON」に設定する(ステップS57)。そして呼び出し元の処理に戻る。
図18に、DB105に格納される同期テーブルの一例を示す。図18の例では、使用可能範囲内の同期処理フラグと、使用可能範囲内の同期成功フラグと、使用可能範囲外の同期処理フラグと、使用可能範囲外の同期成功フラグとが格納される。同期処理フラグは同期処理が完了したか否かを表し、同期処理が完了した場合には「ON」に設定される。同期成功フラグは同期が成功したか否かを表し、同期が成功した場合には「ON」に設定される。
図19に、使用可能範囲内の同期成功フラグの値と使用可能範囲外の同期成功フラグの値との組合せを示す。(1)使用可能範囲内の同期成功フラグが「ON」であり且つ使用可能範囲外の同期成功フラグが「ON」である場合、同期は完全に成功したので、コネクタテーブル内の「IDを使用できるシステム」の欄に格納されている情報は削除される。(2)使用可能範囲内の同期成功フラグが「OFF」であり且つ使用可能範囲外の同期成功フラグが「ON」である場合、全体としては同期が失敗したので、使用可能範囲外のレコードについては同期処理開始前の状態へロールバックされる。(3)使用可能範囲内の同期成功フラグが「ON」であり且つ使用可能範囲外の同期成功フラグが「OFF」である場合、全体としては同期が失敗したので、コネクタテーブルのレコードの更新処理が行われずに同期処理が終了される。(4)使用可能範囲内の同期成功フラグが「OFF」であり且つ使用可能範囲外の同期成功フラグが「OFF」である場合、同期が失敗したので、コネクタテーブルのレコードの更新処理が行われずに同期処理が終了される。
図17の説明に移行し、同期部107は、使用可能範囲内の同期処理フラグ及び同期成功フラグを「ON」に設定する(図17:ステップS61)。
同期部107は、使用可能範囲外の同期処理フラグが「ON」であるか判定する(ステップS63)。使用可能範囲外の同期処理フラグが「ON」ではない場合(ステップS63:Noルート)、使用可能範囲外について同期処理が完了していないので、ステップS63の処理に戻る。
使用可能範囲外の同期処理フラグが「ON」である場合(ステップS63:Yesルート)、同期部107は、使用可能範囲外の同期成功フラグが「ON」であるか判定する(ステップS65)。使用可能範囲外の同期成功フラグが「ON」ではない場合(ステップS65:Noルート)、処理は端子Bを介して図16に移行し呼び出し元の処理に戻る。
使用可能範囲外の同期成功フラグが「ON」である場合(ステップS65:Yesルート)、同期部107は、使用可能範囲内に含まれるレコードについて、「IDを使用できるシステム」の欄の情報を削除する(ステップS67)。そして処理は端子Bを介して図16に戻り呼び出し元の処理に戻る。
図20及び図21を用いて、使用可能範囲外のコネクタIDについての同期処理(テーブル同期処理2)を説明する。
同期部107は、同期データの受信タイマをセットする(図20:ステップS71)。
同期部107は、他の情報処理システム(ここでは情報処理システム2I)から同期データを受信したか判定する(ステップS73)。
情報処理システム2Iから同期データを受信していない場合(ステップS73:Noルート)、同期部107は、ステップS71においてセットされた受信タイマのタイムアウトであるか判定する(ステップS75)。受信タイマのタイムアウトではない場合(ステップS75:Noルート)、処理はステップS73に戻る。受信タイマのタイムアウトである場合(ステップS75:Yesルート)、処理はステップS87に移行する。
一方、情報処理システム2Iから同期データを受信した場合(ステップS73:Yesルート)、同期部107は、コネクタテーブル(図9)から、使用可能範囲外のコネクタIDであって且つエンドポイントが生成されたコネクタIDを特定する(ステップS77)。エンドポイントが生成されたコネクタIDは、コネクタテーブル(図9)に識別子が登録されている。
同期部107は、ステップS77において特定したコネクタIDと、受信した同期データ内のコネクタIDとの差分に相当するコネクタIDを、情報処理システム2Iに送信する(ステップS79)。
同期部107は、ステップS79において送信したコネクタIDに対する同期データの受信タイマをセットする(ステップS81)。
同期部107は、情報処理システム2Iから同期データを受信したか判定する(ステップS83)。
情報処理システム2Iから同期データを受信した場合(ステップS83:Yesルート)、処理は端子Cを介して図21のステップS89に移行する。端子C以降については後で説明する。
一方、情報処理システム2Iから同期データを受信していない場合(ステップS83:Noルート)、同期部107は、ステップS81においてセットされた受信タイマのタイムアウトであるか判定する(ステップS85)。
受信タイマのタイムアウトではない場合(ステップS85:Noルート)、処理はステップS83に戻る。受信タイマのタイムアウトである場合(ステップS85:Yesルート)、同期部107は、DB105に格納されている同期テーブル(図18)において、使用可能範囲外の同期処理フラグを「ON」に設定する(ステップS87)。そして呼び出し元の処理に戻る。
図21の説明に移行し、同期部107は、受信した同期データに含まれるレコードで、コネクタテーブルに格納されており且つコネクタIDが受信した同期データに含まれるレコードと一致するレコードを更新する(図21:ステップS89)。
同期部107は、受信した同期データの応答を情報処理システム2Iに送信する(ステップS91)。
同期部107は、使用可能範囲外の同期処理フラグ及び同期成功フラグを「ON」に設定する(ステップS93)。
同期部107は、使用可能範囲内の同期処理フラグが「ON」であるか判定する(ステップS95)。使用可能範囲内の同期処理フラグが「ON」ではない場合(ステップS95:Noルート)、使用可能範囲内について同期処理が完了していないので、ステップS95の処理に戻る。
使用可能範囲内の同期処理フラグが「ON」である場合(ステップS95:Yesルート)、同期部107は、使用可能範囲内の同期成功フラグが「ON」であるか判定する(ステップS97)。使用可能範囲内の同期成功フラグが「ON」ではない場合(ステップS97:Noルート)、使用可能範囲外のレコードについて、同期処理開始前の状態へ戻す処理であるロールバック処理を実行する(ステップS101)。
使用可能範囲内の同期成功フラグが「ON」である場合(ステップS97:Yesルート)、同期部107は、使用可能範囲外のレコードについて、「IDを使用できるシステム」の欄の情報を削除する(ステップS99)。そして処理は端子Dを介して図20に戻り呼び出し元の処理に戻る。
以上のように、コネクタIDの範囲は分割されており、各情報処理システムの使用可能範囲を各情報処理システムの同期部が把握しているため、使用可能範囲内についての同期と使用可能範囲外についての同期とを矛盾なく並行して実行することができる。
次に、図22乃至図31を用いて、ネットワークコネクタの生成の際に実行される処理及びエンドポイントの生成の際に実行される処理について説明する。
まず、図22を用いて、ネットワークコネクタの生成の際にユーザ端末1Tが実行する処理について説明する。ユーザ端末1Tは、ユーザからの指示に従い、ネットワークコネクタを生成するためのAPIをいずれかの情報処理システムに発行し、その情報処理システムのコネクション管理部101にネットワークコネクタ生成処理を実行させる(図22:ステップS111)。ここでは、情報処理システム1Iに対してAPIが発行されたとする。ネットワークコネクタ生成処理については、後で説明する。
ユーザ端末1Tは、ネットワークコネクタを生成するためのAPIの実行結果を、情報処理システム2Iから受信する(ステップS113)。ユーザ端末1Tは、受信した実行結果をメモリ等の記憶装置に格納する。そして処理は終了する。
図23に、実行結果に含まれる情報の一例を示す。図23の例では、コネクタIDと、ネットワークコネクタに付与された識別子と、コネクタIDを払い出したシステムのシステム名とが含まれる。実行結果は、後にエンドポイント生成処理において使用される。
図24及び図25を用いて、ネットワークコネクタ生成処理について説明する。まず、コネクション管理部101は、ネットワークコネクタを生成するためのAPIをユーザ端末1Tから受信する(図24:ステップS121)。
コネクション管理部101は、情報処理システム1Iのシステム名及びコネクタIDについての通し番号を組み合わせることで、全情報処理システムの間で一意の識別子を生成する(ステップS123)。例えば、情報処理システム1Iのシステム名及びコネクタIDについての通し番号を連結することで識別子が生成される。ここで、通し番号は、情報処理システム1IにおいてコネクタIDが生成される度にインクリメントされる番号である。
コネクション管理部101は、引数としてステップS123において生成した識別子を含む、ネットワークコネクタの生成要求を、情報処理システム1I内のDB処理部103に送信し、DB処理部103に第一更新処理を実行させる(ステップS125)。
ここで、第1更新処理について説明する。まず、DB処理部103は、ネットワークコネクタの生成要求をコネクション管理部101から受信する(図25:ステップS131)。
DB処理部103は、DB間で通信障害が発生中であるか判定する(ステップS133)。DB間で通信障害が発生中である場合(ステップS133:Yesルート)、DB処理部103は、同期部107に以下の処理を実行させる。具体的には、同期部107は、使用可能範囲において払い出されていないコネクタIDを含むレコードをコネクタテーブル(図9)から1つ特定し、特定したレコードを更新する(ステップS135)。そして処理はステップS145に移行する。
ステップS135においては、特定したレコードの払い出しフラグが「1」に設定され、ネットワークコネクタの生成要求に含まれる識別子が登録され、コネクタIDを払い出したシステムとして情報処理システム1Iのシステム番号が登録される。
一方、DB間で通信障害が発生中ではない場合(ステップS133:Noルート)、DB処理部103は、同期部107に以下の処理を実行させる。具体的には、同期部107は、各情報処理システムのコネクタテーブル(図9)の排他ロックを獲得する処理を実行する(ステップS137)。ステップS137においては、各情報処理システムの同期部間で通信が行われる。
同期部107は、払い出されていないコネクタIDを含むレコードをコネクタテーブル(図9)から1つ特定し、特定したレコードを更新する(ステップS139)。ステップS139においては、特定したレコードの払い出しフラグが「1」に設定され、ネットワークコネクタの生成要求に含まれる識別子が登録され、コネクタIDを払い出したシステムとして情報処理システム1Iのシステム番号が登録される。「IDを使用できるシステム」の欄はNULLに設定される。
同期部107は、ステップS139において更新されたレコードを他の情報処理システム(ここでは、情報処理システム2I)に送信し、情報処理システム2Iのコネクタテーブルに登録させる(ステップS141)。
同期部107は、各情報処理システムのコネクタテーブル(図9)の排他ロックを解除する処理を実行する(ステップS143)。ステップS143においては、各情報処理システムの同期部間で通信が行われる。
同期部107は、更新が完了したことをDB処理部103に通知する。これに応じ、DB処理部103は、更新されたレコードを含む応答をコネクション管理部101に送信する(ステップS145)。そして処理は終了する。
図24の説明に戻り、コネクション管理部101は、ネットワークコネクタの生成要求の応答をDB処理部103から受信する(ステップS127)。
コネクション管理部101は、ネットワークコネクタの生成が正常に行われたことを示す情報(本実施の形態においては、コネクタID、識別子及びシステム番号)を含む実行結果をユーザ端末1Tに送信する(ステップS129)。そして処理は終了する。
以上のような処理を実行すれば、エンドポイントを生成して実際に通信が開始される前段階の処理である、ネットワークコネクタの生成が適切に完了する。また、たとえ通信障害が発生している間にネットワークコネクタが生成されたとしても、情報処理システム1I及び情報処理システム2Iの間で一意の識別子がネットワークコネクタに付与されるため、ネットワークコネクタの再利用が発生することを防げるようになる。
次に、エンドポイントの生成の際にユーザ端末1Tが実行する処理について説明する。ユーザ端末1Tは、ネットワークコネクタを生成するためのAPIの実行結果から、コネクタID及び識別子を取得する(図26:ステップS115)。
ユーザ端末1Tは、引数として実行結果に含まれるコネクタID及び識別子を含む、エンドポイントを生成するためのAPIを、生成されたネットワークコネクタにて接続を行う各情報処理システム(ここでは、情報処理システム1I及び2I)に対して発行し、エンドポイント生成処理をコネクション管理部101に実行させる(ステップS117)。
図27を用いて、エンドポイント生成処理について説明する。まず、コネクション管理部101は、エンドポイントを生成するためのAPIをユーザ端末1Tから受信する(図27:ステップS151)。
コネクション管理部101は、引数としてAPIに含まれるコネクタID及び識別子を含む、エンドポイントの生成要求を、情報処理システム1I内のDB処理部103に送信し、DB処理部103に第2更新処理を実行させる(ステップS153)。
図28を用いて、第2更新処理について説明する。DB処理部103は、エンドポイントの生成要求をコネクション管理部101から受信する(図28:ステップS191)。
DB処理部103は、生成要求に含まれるコネクタIDが既に払い出されたかコネクタテーブルに基づき判定する(ステップS193)。既に払い出されたコネクタIDは、コネクタテーブルにおいて払い出しフラグが「1」に設定されている。
生成要求に含まれるコネクタIDが既に払い出された場合(ステップS193:Yesルート)、DB処理部103は、生成要求に含まれるコネクタID及び識別子を含むレコードをエンドポイントテーブルに生成する。そして、DB処理部103は、同期フラグを「ON」に設定し(ステップS195)、エンドポイントの生成要求の応答をコネクション管理部101に送信する。そして処理は終了する。
図29に、エンドポイントテーブルの一例を示す。図29の例では、エンドポイントIDと、コネクタIDと、識別子と、同期フラグとが格納される。同期フラグは、エンドポイントが生成された時のDB間通信の状態を表し、DB間通信に障害が発生していた場合には「OFF」に設定される。エンドポイントテーブルのレコードは、コネクタテーブル(図9)とは異なり、運用中に削除又は追加される。
一方、生成要求に含まれるコネクタIDが既に払い出されていない場合(ステップS193:Noルート)、DB処理部103は、生成要求に含まれるコネクタIDを含むレコードを特定し、特定したレコードを更新する(ステップS197)。ステップS197においては、特定したレコードの払い出しフラグが「1」に設定され、エンドポイントの生成要求に含まれる識別子が登録され、コネクタIDを払い出したシステムとして情報処理システム1Iのシステム番号が登録される。DB間通信に障害が発生していた場合にはコネクタテーブルのレコードが更新されていないため、ステップS197の処理によって更新される。
DB処理部103は、生成要求に含まれるコネクタID及び識別子を含むレコードをエンドポイントテーブル(図29)に生成する。そして、DB処理部103は、同期フラグを「OFF」に設定し(ステップS199)、エンドポイントの生成要求の応答をコネクション管理部101に送信する。そして処理は終了する。
図27の説明に戻り、コネクション管理部101は、エンドポイントの生成要求の応答をDB処理部103から受信する(ステップS155)。
コネクション管理部101は、エンドポイントを生成するためのAPIに含まれるコネクタIDに対応する仮想ルータを、第1対応テーブル(図6)から特定する(ステップS157)。
コネクション管理部101は、ステップS157において特定した仮想ルータのIDを生成されたエンドポイントのIDに対応付けて第2対応テーブルに格納する(ステップS159)。
図30に、第2対応テーブルに格納されるデータの一例を示す。図30においては、エンドポイントのIDと、エンドポイントに対応する仮想ルータのIDとが格納される。
コネクション管理部101は、生成されたエンドポイントについて、エンドポイントテーブル(図29)の同期フラグが「ON」に設定されているか判定する(ステップS161)。
生成されたエンドポイントについて、エンドポイントテーブル(図29)の同期フラグが「ON」に設定されていない場合(ステップS161:Noルート)、処理は端子Eを介して図31のステップS167に移行する。
図31の説明に移行し、コネクション管理部101は、生成したエンドポイントに対して接続の確立指示を出力する。確立指示を受け取ったエンドポイントは、ステップS157において特定した仮想ルータを用いて、当該エンドポイントと、情報処理システム2Iにおいて同一のコネクタIDで生成されたエンドポイントとの間のコネクションを確立する処理を実行する(図31:ステップS167)。図7に示したように、仮想ルータを介してエンドポイント間に1つのコネクションが確立されれば、エンドポイント間の通信が可能になる。
コネクション管理部101は、コネクションの確立に成功したか判定する(ステップS169)。
コネクションの確立に成功した場合(ステップS169:Yesルート)、コネクション管理部101は、コネクション確立時において送受信されたパケットから識別子を取り出し、コネクションの両端のエンドポイントに設定された識別子を比較する(ステップS177)。これにより、ネットワークコネクタの正当性が確認される。
コネクションの両端のエンドポイントに設定された識別子が一致しない場合(ステップS179:Noルート)、ステップS171の処理に移行する。コネクションの両端のエンドポイントに設定された識別子が一致する場合(ステップS179:Yesルート)、コネクション管理部101は、エンドポイントを生成するためのAPIの実行結果を「正常」に設定する(ステップS181)。処理は端子Fを介して図27のステップS165に戻る。
一方、コネクションの確立に失敗した場合(ステップS169:Noルート)、コネクション管理部101は、エンドポイント及びネットワークコネクタのロールバック要求を情報処理システム1IのDB処理部103に送信し、DB処理部103に、エンドポイント及びネットワークコネクタのロールバック処理を実行させる(ステップS171)。エンドポイントのロールバックは例えばエンドポイントについてのレコードの削除であり、ネットワークコネクタのロールバックは例えばネットワークコネクタについてのレコードの削除である。
コネクション管理部101は、ロールバック処理の実行結果をDB処理部103から取得する(ステップS173)。
コネクション管理部101は、エンドポイントを生成するためのAPIの実行結果を「異常」に設定する(ステップS175)。処理は端子Fを介して図27のステップS165に戻る。
図27の説明に戻り、生成されたエンドポイントについて、エンドポイントテーブル(図29)の同期フラグが「ON」に設定されている場合(ステップS161:Yesルート)、コネクション管理部101は、エンドポイントを生成するためのAPIの実行結果を「正常」に設定する(ステップS163)。
コネクション管理部101は、エンドポイントを生成するためのAPIの実行結果をユーザ端末1Tに送信する(ステップS165)。そして処理は終了する。
図26の説明に戻り、ユーザ端末1Tは、エンドポイントを生成するためのAPIの実行結果を各情報処理システムから受信する(ステップS119)。そして処理は終了する。
以上のような処理を実行すれば、DB間の通信が停止した場合においても、ネットワークコネクタの再利用を発生させることなく、エンドポイント間での通信を開始することができるようになる。
図32乃至図34を用いて、ネットワークコネクタの再利用について説明する。図32において、ユーザAについてのエンドポイント1010とユーザAについてのエンドポイント2010との間においてコネクションが確立されている。この状態において、コネクタテーブルに登録されたコネクタIDは全て払い出されているとする。なお、他のコネクションも確立されているが、説明を簡単にするため、図32においては省略されている。
そして、同期通信が停止している間に、図33に示すようにユーザAの端末からのAPIによってエンドポイント1010が削除されたとする。この場合、情報処理システム1Iにおけるコネクタテーブルにおいて、エンドポイント1010とエンドポイント2010との間のコネクションについてのレコードは削除される。エンドポイント1010が削除されるため通信経路は無くなるが、仮想ルータ1020は削除されずに残ったままである。
そして、図34に示すように、削除されたレコードに含まれるコネクタIDが、ユーザAとは異なるユーザBの端末からのAPIによって再び払い出され、ユーザBについてのエンドポイント3010が生成されたとする。この場合、エンドポイント3010は、仮想ルータ1020及び仮想ルータ2020を介してエンドポイント2010と通信を行うことが可能になる。このように、ネットワークコネクタの再利用によって、意図しない相手との通信が行われる可能性がある。
これに対して、本実施の形態によれば、情報処理システム1Iと情報処理システム2Iとの間で、各ネットワークコネクタについて一意の識別子が生成され、識別子が一致しない限り通信は行われない。従って、ネットワークコネクタの再利用によって意図しない相手との通信が行われることはない。
また、本実施の形態によれば、同期通信が停止したとしても、エンドポイントの生成時にネットワークコネクタを生成してコネクタテーブル(図9)に登録することで、復旧後の同期通信再開時に転送するデータ量を少なくすることができる。従って、帯域が広くないネットワークであっても、他の通信に大きな影響を与えることなく同期を行うことができるようになる。また、復帰後の同期通信は、ネットワークコネクタに対してコネクタIDを払い出していない方の情報処理システムにおいてエンドポイントが生成された場合に限り行われるため、APIのための処理の性能が劣化することを抑制することができるようになる。
また、使用可能なコネクタIDの範囲が分割され、各範囲について同期が行われるので、排他ロックを獲得することなく容易に同期を行うことができるようになる。
また、同期通信が停止した場合であっても、エンドポイント間のコネクションを確立してユーザについての通信を行うことができるようになる。
また、片方の情報処理システムが停止した場合であっても、もう一方の情報処理システムにおいてネットワークコネクタ及びエンドポイントを生成しておくことができるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置1Sの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
識別子の生成方法は、上で述べたような方法には限られない。複数の情報処理システムの間で一意の情報であれば、上で述べたような方法以外の方法であってもよい。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る第1情報処理装置は、(A)第1情報処理装置と第2情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報(例えばレコード)を格納するデータ格納部(例えばコネクタテーブル)と、(B)データ格納部に格納された情報と、第2情報処理装置が管理する情報とを同期する同期部(例えば同期部107)と、(C)同期部による同期の停止中に第1情報処理装置と第2情報処理装置との間でコネクションを確立する場合、少なくとも第1情報処理装置と第2情報処理装置との間で一意な情報を生成し、生成した一意な情報を第2情報処理装置に送信する生成部(例えばコネクション管理部101)と、(D)一意な情報に基づき、第1情報処理装置と第2情報処理装置との間でコネクションを確立する通信部(例えばエンドポイント1010)とを有する。
同期部による同期の停止中にコネクションを確立する場合、コネクションの再利用が原因で意図しない相手との通信が行われる可能性があるため、コネクションを確立することは好ましくない。そこで、上記のような構成であれば、コネクションの再利用が行われることはないので、同期の停止中においてもコネクションを確立することができるようになる。
また、上記生成部は、(c1)第1情報処理装置を有するシステムの識別情報と、第1情報処理装置と第2情報処理装置との間でのコネクションの確立時に生成する通し番号とに基づき一意な情報を生成してもよい。但し、他の方法で一意な情報を生成してもよい。
また、上記通信部は、(d1)生成部により生成された一意な情報と、第2情報処理装置から受信した一意な情報とが一致するか否か判定し、生成部により生成された一意な情報と、第2情報処理装置から受信した一意な情報とが一致すると判定された場合、第1情報処理装置と第2情報処理装置との間でコネクションを確立してもよい。意図しない相手と通信することを防げるようになる。
また、(a1)上記データ格納部に格納された情報は、コネクションの識別情報を含んでもよい。上記生成部は、(c2)第1情報処理装置と第2情報処理装置との間で確立されるコネクションのうち識別情報が付与されたコネクションの数に対する、第1情報処理装置により識別情報が付与されたコネクションの数の割合を算出し、(c3)第1情報処理装置と第2情報処理装置との間で確立されるコネクションのうち識別情報が付与されていないコネクションの中から、算出した割合に基づき、第1情報処理装置により識別情報が付与されるコネクションの範囲を特定し、(c4)コネクションの生成要求を受信した場合、特定された範囲から選択された1のコネクションについて、当該コネクションに対して付与される識別情報と一意な情報とをデータ格納部に登録してもよい。上記のような構成であれば、各情報処理装置が使用できる識別情報が適切に決定されるので、情報処理装置が使用できる識別情報が枯渇することを抑制できるようになる。
また、上記同期部は、(b1)同期を再開する場合、特定された範囲に含まれるコネクションついての情報の同期と、特定された範囲に含まれないコネクションについての情報の同期とを並行して実行してもよい。同期されていない情報は、範囲に含まれるコネクションについての情報と範囲に含まれないコネクションについての情報とを含むので、上で述べたようにすれば排他ロックを獲得することなく効率的に同期を行えるようになる。
また、上記同期部は、(b2)範囲に含まれるコネクションに対して第1情報処理装置により付与された識別情報を、第2情報処理装置に送信し、(b3)第2情報処理装置から、範囲に含まれるコネクションのうち第2情報処理装置が通信に使用していないコネクションの識別情報を受信し、(b4)受信した識別情報が付与されたコネクションについての情報をデータ格納部から読み出し、読み出した当該情報を第2情報処理装置に送信してもよい。範囲に含まれるコネクションについての情報の同期を適切に行えるようになる。
また、上記同期部は、(b5)範囲に含まれないコネクションに対して第2情報処理装置により付与された識別情報を、第2情報処理装置から受信し、(b6)受信した識別情報のうち第1情報処理装置が通信に使用していないコネクションの識別情報をデータ格納部から特定し、特定した当該識別情報を第2情報処理装置に送信してもよい。範囲に含まれないコネクションについての情報の同期を適切に行えるようになる。
本実施の形態の第2の態様に係る情報処理方法は、(E)第1コンピュータと第2コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された情報と、第2コンピュータが管理する情報との同期が停止している間に、第1コンピュータと第2コンピュータとの間でコネクションを確立する場合、少なくとも第1コンピュータと第2コンピュータとの間で一意な情報を生成し、(F)生成した一意な情報を第2コンピュータに送信し、(G)一意な情報に基づき、第1コンピュータと第2コンピュータとの間でコネクションを確立する処理を含む。
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1情報処理装置であって、
前記第1情報処理装置と第2情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
前記データ格納部に格納された前記情報と、前記第2情報処理装置が管理する前記情報とを同期する同期部と、
前記同期部による同期の停止中に前記第1情報処理装置と第2情報処理装置との間でコネクションを確立する場合、少なくとも前記第1情報処理装置と前記第2情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第2情報処理装置に送信する生成部と、
前記一意な情報に基づき、前記第1情報処理装置と前記第2情報処理装置との間でコネクションを確立する通信部と、
を有する第1情報処理装置。
(付記2)
前記生成部は、
前記第1情報処理装置を有するシステムの識別情報と、前記第1情報処理装置と第2情報処理装置との間でのコネクションの確立時に生成する通し番号とに基づき前記一意な情報を生成する、
付記1記載の第1情報処理装置。
(付記3)
前記生成部は、
前記生成部により生成された前記一意な情報と、前記第2情報処理装置から受信した前記一意な情報とが一致するか否か判定し、前記生成部により生成された前記一意な情報と、前記第2情報処理装置から受信した前記一意な情報とが一致すると判定された場合、前記第1情報処理装置と前記第2情報処理装置との間でコネクションを前記通信部に確立させる、
付記1又は2記載の第1情報処理装置。
(付記4)
前記データ格納部に格納された情報は、コネクションの識別情報を含み、
前記生成部は、
前記第1情報処理装置と前記第2情報処理装置との間で確立されるコネクションのうち識別情報が付与されたコネクションの数に対する、前記第1情報処理装置により識別情報が付与されたコネクションの数の割合を算出し、
前記第1情報処理装置と前記第2情報処理装置との間で確立されるコネクションのうち識別情報が付与されていないコネクションの中から、算出した前記割合に基づき、前記第1情報処理装置により識別情報が付与されるコネクションの範囲を特定し、
コネクションの生成要求を受信した場合、特定された前記範囲から選択された1のコネクションについて、当該コネクションに対して付与される識別情報と前記一意な情報とを前記データ格納部に登録する、
付記1乃至3のいずれか1つ記載の第1情報処理装置。
(付記5)
前記同期部は、
前記同期を再開する場合、特定された前記範囲に含まれるコネクションついての情報の同期と、特定された前記範囲に含まれないコネクションについての情報の同期とを並行して実行する、
付記4記載の第1情報処理装置。
(付記6)
前記同期部は、
前記範囲に含まれるコネクションに対して前記第1情報処理装置により付与された識別情報を、前記第2情報処理装置に送信し、
前記第2情報処理装置から、前記範囲に含まれるコネクションのうち前記第2情報処理装置が通信に使用していないコネクションの識別情報を受信し、
受信した前記識別情報が付与されたコネクションについての情報を前記データ格納部から読み出し、読み出した当該情報を前記第2情報処理装置に送信する、
付記5記載の第1情報処理装置。
(付記7)
前記同期部は、
前記範囲に含まれないコネクションに対して前記第2情報処理装置により付与された識別情報を、前記第2情報処理装置から受信し、
受信した前記識別情報のうち前記第1情報処理装置が通信に使用していないコネクションの識別情報を前記データ格納部から特定し、特定した当該識別情報を前記第2情報処理装置に送信する、
付記5又は6記載の第1情報処理装置。
(付記8)
第1のコンピュータが、
前記第1コンピュータと第2コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第2コンピュータが管理する前記情報との同期が停止している間に、前記第1コンピュータと第2コンピュータとの間でコネクションを確立する場合、少なくとも前記第1コンピュータと前記第2コンピュータとの間で一意な情報を生成し、
生成した前記一意な情報を前記第2コンピュータに送信し、
前記一意な情報に基づき、前記第1コンピュータと前記第2コンピュータとの間でコネクションを確立する、
処理を実行する情報処理方法。
(付記9)
第1のコンピュータに、
前記第1コンピュータと第2コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第2コンピュータが管理する前記情報との同期が停止している間に、前記第1コンピュータと第2コンピュータとの間でコネクションを確立する場合、少なくとも前記第1コンピュータと前記第2コンピュータとの間で一意な情報を生成し、
生成した前記一意な情報を前記第2コンピュータに送信し、
前記一意な情報に基づき、前記第1コンピュータと前記第2コンピュータとの間でコネクションを確立する、
処理を実行させるプログラム。
(付記10)
第1の情報処理装置と、
第2の情報処理装置と、
を有し、
前記第1の情報処理装置は、
前記第1情報処理装置と前記第2情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
前記データ格納部に格納された前記情報と、前記第2情報処理装置が管理する前記情報とを同期する同期部と、
前記同期部による同期の停止中に前記第1情報処理装置と第2情報処理装置との間でコネクションを確立する場合、少なくとも前記第1情報処理装置と前記第2情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第2情報処理装置に送信する生成部と、
を有し、
前記第1の情報処理装置及び前記第2の情報処理装置は、
前記一意な情報に基づき、前記第1情報処理装置と前記第2情報処理装置との間でコネクションを確立する通信部、
を有する情報処理システム。
1T ユーザ端末 1N,3N ネットワーク
1I,2I 情報処理システム 1S,2S,3S 情報処理装置
10 CPU 11 メモリ
13 NIC 14 HDD
15 バス 101,201 コネクション管理部
103 DB処理部 105 DB
107 同期部 1010,2010 エンドポイント
1020,2020 仮想ルータ

Claims (10)

  1. 第1情報処理装置であって、
    前記第1情報処理装置と第2情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
    前記データ格納部に格納された前記情報と、前記第2情報処理装置が管理する前記情報とを同期する同期部と、
    前記同期部による同期の停止中に前記第1情報処理装置と第2情報処理装置との間でコネクションを確立する場合、少なくとも前記第1情報処理装置と前記第2情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第2情報処理装置に送信する生成部と、
    前記一意な情報に基づき、前記第1情報処理装置と前記第2情報処理装置との間でコネクションを確立する通信部と、
    を有する第1情報処理装置。
  2. 前記生成部は、
    前記第1情報処理装置を有するシステムの識別情報と、前記第1情報処理装置と第2情報処理装置との間でのコネクションの確立時に生成する通し番号とに基づき前記一意な情報を生成する、
    請求項1記載の第1情報処理装置。
  3. 前記生成部は、
    前記生成部により生成された前記一意な情報と、前記第2情報処理装置から受信した前記一意な情報とが一致するか否か判定し、前記生成部により生成された前記一意な情報と、前記第2情報処理装置から受信した前記一意な情報とが一致すると判定された場合、前記第1情報処理装置と前記第2情報処理装置との間でコネクションを前記通信部に確立させる、
    請求項1又は2記載の第1情報処理装置。
  4. 前記データ格納部に格納された情報は、コネクションの識別情報を含み、
    前記生成部は、
    前記第1情報処理装置と前記第2情報処理装置との間で確立されるコネクションのうち識別情報が付与されたコネクションの数に対する、前記第1情報処理装置により識別情報が付与されたコネクションの数の割合を算出し、
    前記第1情報処理装置と前記第2情報処理装置との間で確立されるコネクションのうち識別情報が付与されていないコネクションの中から、算出した前記割合に基づき、前記第1情報処理装置により識別情報が付与されるコネクションの範囲を特定し、
    コネクションの生成要求を受信した場合、特定された前記範囲から選択された1のコネクションについて、当該コネクションに対して付与される識別情報と前記一意な情報とを前記データ格納部に登録する、
    請求項1乃至3のいずれか1つ記載の第1情報処理装置。
  5. 前記同期部は、
    前記同期を再開する場合、特定された前記範囲に含まれるコネクションついての情報の同期と、特定された前記範囲に含まれないコネクションについての情報の同期とを並行して実行する、
    請求項4記載の第1情報処理装置。
  6. 前記同期部は、
    前記範囲に含まれるコネクションに対して前記第1情報処理装置により付与された識別情報を、前記第2情報処理装置に送信し、
    前記第2情報処理装置から、前記範囲に含まれるコネクションのうち前記第2情報処理装置が通信に使用していないコネクションの識別情報を受信し、
    受信した前記識別情報が付与されたコネクションについての情報を前記データ格納部から読み出し、読み出した当該情報を前記第2情報処理装置に送信する、
    請求項5記載の第1情報処理装置。
  7. 前記同期部は、
    前記範囲に含まれないコネクションに対して前記第2情報処理装置により付与された識別情報を、前記第2情報処理装置から受信し、
    受信した前記識別情報のうち前記第1情報処理装置が通信に使用していないコネクションの識別情報を前記データ格納部から特定し、特定した当該識別情報を前記第2情報処理装置に送信する、
    請求項5又は6記載の第1情報処理装置。
  8. 第1のコンピュータが、
    前記第1コンピュータと第2コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第2コンピュータが管理する前記情報との同期が停止している間に、前記第1コンピュータと第2コンピュータとの間でコネクションを確立する場合、少なくとも前記第1コンピュータと前記第2コンピュータとの間で一意な情報を生成し、
    生成した前記一意な情報を前記第2コンピュータに送信し、
    前記一意な情報に基づき、前記第1コンピュータと前記第2コンピュータとの間でコネクションを確立する、
    処理を実行する情報処理方法。
  9. 第1のコンピュータに、
    前記第1コンピュータと第2コンピュータとの間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部に格納された前記情報と、前記第2コンピュータが管理する前記情報との同期が停止している間に、前記第1コンピュータと第2コンピュータとの間でコネクションを確立する場合、少なくとも前記第1コンピュータと前記第2コンピュータとの間で一意な情報を生成し、
    生成した前記一意な情報を前記第2コンピュータに送信し、
    前記一意な情報に基づき、前記第1コンピュータと前記第2コンピュータとの間でコネクションを確立する、
    処理を実行させるプログラム。
  10. 第1の情報処理装置と、
    第2の情報処理装置と、
    を有し、
    前記第1の情報処理装置は、
    前記第1情報処理装置と前記第2情報処理装置との間で確立されるコネクション毎に当該コネクションについての情報を格納するデータ格納部と、
    前記データ格納部に格納された前記情報と、前記第2情報処理装置が管理する前記情報とを同期する同期部と、
    前記同期部による同期の停止中に前記第1情報処理装置と第2情報処理装置との間でコネクションを確立する場合、少なくとも前記第1情報処理装置と前記第2情報処理装置との間で一意な情報を生成し、生成した前記一意な情報を前記第2情報処理装置に送信する生成部と、
    を有し、
    前記第1の情報処理装置及び前記第2の情報処理装置は、
    前記一意な情報に基づき、前記第1情報処理装置と前記第2情報処理装置との間でコネクションを確立する通信部、
    を有する情報処理システム。
JP2016142090A 2016-07-20 2016-07-20 情報処理装置、情報処理方法、情報処理システム及びプログラム Active JP6683049B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016142090A JP6683049B2 (ja) 2016-07-20 2016-07-20 情報処理装置、情報処理方法、情報処理システム及びプログラム
US15/651,051 US10776392B2 (en) 2016-07-20 2017-07-17 Apparatus and method to establish a connection between apparatuses while synchronization of connection information thereof is suspended

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016142090A JP6683049B2 (ja) 2016-07-20 2016-07-20 情報処理装置、情報処理方法、情報処理システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2018013899A JP2018013899A (ja) 2018-01-25
JP6683049B2 true JP6683049B2 (ja) 2020-04-15

Family

ID=60990000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016142090A Active JP6683049B2 (ja) 2016-07-20 2016-07-20 情報処理装置、情報処理方法、情報処理システム及びプログラム

Country Status (2)

Country Link
US (1) US10776392B2 (ja)
JP (1) JP6683049B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552442B1 (en) * 2016-08-29 2020-02-04 Amazon Technologies, Inc. Stateful database application programming interface
JP6841785B2 (ja) * 2018-03-29 2021-03-10 日本電信電話株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP7194760B2 (ja) * 2021-01-13 2022-12-22 本田技研工業株式会社 制御システム、移動体、制御方法及びプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0733971A3 (en) * 1995-03-22 1999-07-07 Sun Microsystems, Inc. Method and apparatus for managing connections for communication among objects in a distributed object system
JP3515263B2 (ja) * 1995-05-18 2004-04-05 株式会社東芝 ルータ装置、データ通信ネットワークシステム、ノード装置、データ転送方法及びネットワーク接続方法
CA2229652C (en) * 1997-02-14 2002-05-21 Naoki Mori Atm network with a filtering table for securing communication
JP3866450B2 (ja) * 1999-06-22 2007-01-10 株式会社東芝 コネクション型冗長系通信システム
US7769866B2 (en) * 2003-07-14 2010-08-03 Microsoft Corporation Virtual connectivity with subscribe-notify service
KR101042745B1 (ko) * 2004-01-30 2011-06-20 삼성전자주식회사 클라이언트 단말장치와 서버 사이의 세션 재설정을 위한시스템 및 방법
US20060242206A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation System and method for peer to peer synchronization of files
US9021116B2 (en) * 2010-08-10 2015-04-28 Dell Products, Lp System and method to create virtual links for end-to-end virtualization
WO2012086041A1 (ja) * 2010-12-22 2012-06-28 富士通株式会社 同期処理方法
JP2013088855A (ja) * 2011-10-13 2013-05-13 Fujitsu Ltd 情報処理装置、その同期制御プログラム、その同期制御方法および同期制御システム
JP2013242739A (ja) * 2012-05-22 2013-12-05 Hitachi Ltd 負荷分散システム
JP5497861B2 (ja) 2012-08-31 2014-05-21 日本電信電話株式会社 サーバ、ファイル管理システム、ファイル管理方法およびファイル管理プログラム
JP5988505B2 (ja) 2013-11-26 2016-09-07 日本電信電話株式会社 仮想リソース管理装置、選択方法及び選択プログラム
US9509509B2 (en) * 2014-02-06 2016-11-29 Dropbox, Inc. Random identifier generation for offline database
JP2015191246A (ja) 2014-03-27 2015-11-02 株式会社Nttドコモ 通信システムおよび管理方法
JP6248747B2 (ja) * 2014-03-28 2017-12-20 富士通株式会社 情報処理装置、制御方法および制御プログラム
JP6193185B2 (ja) * 2014-07-09 2017-09-06 株式会社東芝 通信装置、端末装置およびプログラム
US9954979B2 (en) * 2015-09-21 2018-04-24 International Business Machines Corporation Protocol selection for transmission control protocol/internet protocol (TCP/IP)

Also Published As

Publication number Publication date
US20180025067A1 (en) 2018-01-25
US10776392B2 (en) 2020-09-15
JP2018013899A (ja) 2018-01-25

Similar Documents

Publication Publication Date Title
US10693957B2 (en) System and method for adding node in blockchain network
CN107888562B (zh) 一种平行链接入互联链的数据验证和收发方法、节点及系统
JP6382454B2 (ja) 分散ストレージ及びレプリケーションシステム、並びに方法
US7801997B2 (en) Asynchronous interconnect protocol for a clustered DBMS
JP6683049B2 (ja) 情報処理装置、情報処理方法、情報処理システム及びプログラム
US20100174807A1 (en) System and method for providing configuration synchronicity
US9614646B2 (en) Method and system for robust message retransmission
CN104615455A (zh) 一种atca架构的ipmc程序远程升级方法及装置
WO2014180207A1 (zh) 元数据服务器的迁移处理方法及装置
CN103281346A (zh) 断线重连方法、网络系统和代理服务器
CN106169964A (zh) 网络设备配置同步方法和装置
US10091288B2 (en) Ordered execution of tasks
US7076645B2 (en) Method of rebooting a multi-device cluster while maintaining cluster operation
CN113726834A (zh) 消息路由的方法、装置、系统、设备及介质
US20240152496A1 (en) Model ml registry and model serving
JP2011044955A (ja) ネットワークマネージャ機器による設定変更方法及びプログラム、ネットワーク機器の制御方法及びプログラム、ネットワークマネージャ機器及びネットワーク機器
CN112138372B (zh) 分布式系统中的数据同步方法及相关设备
JP2019045936A (ja) 情報処理装置、情報処理システム及びプログラム
CN111741102B (zh) 分布式微服务应用的升级方法及装置
CN111125001A (zh) 快照复制方法、电子设备和计算机程序产品
CN114915545B (zh) 基于dhcp网络集群的应用调度部署管理方法
CN109862557A (zh) 通道建立方法以及基站
JP6260361B2 (ja) データ転送システム及び方法
WO2016054906A1 (zh) 计费方法和设备、接入设备、服务质量控制方法和设备
KR101961792B1 (ko) 패킷의 종류를 고려해서 데이터를 동기화하고 복원하는 이중화 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200309

R150 Certificate of patent or registration of utility model

Ref document number: 6683049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150