(57)【要約】【課題】サービスの冗長化の効率性を向上させること。【解決手段】情報処理装置が、当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信し、受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定し、前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化し、代替先に決定された情報処理装置を示す情報を、前記端末に送信する処理を実行し、前記端末は、当該情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する。【選択図】図１１
2016197281.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置が、
当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信し、
受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定し、
前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化し、
代替先に決定された情報処理装置を示す情報を、前記端末に送信する処理を実行し、
前記端末は、当該情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する、
ことを特徴とするサービス冗長化方法。
【請求項２】
前記受信する処理は、前記サービスを利用する複数の端末のそれぞれから、当該端末が検出した、無線通信網ごとの識別情報を受信し、
前記決定する処理は、当該情報処理装置と異なる情報処理装置に対応付く、複数の識別情報が受信された場合には、前記複数の識別情報のそれぞれに対応付く情報処理装置の利用状況及び前記各端末から受信された識別情報の内訳の少なくともいずれか一方に基づいて、前記サービスの代替先を決定する、
ことを特徴とする請求項１記載のサービス冗長化方法。
【請求項３】
サービスを利用する全ての端末による当該サービスの利用の終了に応じ、当該サービスの冗長化を解除する、
処理を前記情報処理装置が実行することを特徴とする請求項１又は２記載のサービス冗長化方法。
【請求項４】
情報処理装置であって、
当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信する受信部と、
受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定する決定部と、
前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化する冗長化部と、
代替先に決定された情報処理装置を示す情報を、前記端末に送信する送信部とを有し、
前記端末は、当該情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する、
ことを特徴とする情報処理装置。
【請求項５】
情報処理装置に、
当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信し、
受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定し、
前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化し、
代替先に決定された情報処理装置を示す情報を、前記端末に送信する処理を実行させ、
前記端末は、当該情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス冗長化方法、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
ハードウェアを冗長化させ、ハードウェアが故障しても冗長化されたハードウェアに切り替えることで、サービスを継続することが、大規模なサーバでは行われている。また、ソフトウェアでは、サーバ間でサービスを冗長化し、サービスの状態を同期することで、サーバの故障時にサーバを切替えてサービスを継続することが行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１１２９０８号公報
【特許文献２】特開２００７−１１５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ハードウェアの冗長化は高価であるため、現場毎に設置するような小型のサーバへの搭載は難しい。また、ソフトウェアの冗長化においては、サービスへのアクセスがあるごとに、サービスの冗長化の多重度に応じた同期処理が必要とされる。したがって、常にサービスを冗長化するようにサーバを構成すると、サービスの提供に必要な性能以上の性能が、サーバに求められる。更に、冗長化するサーバは、利用されるか否かにかかわらず、固定的に用意される必要が有るため、冗長化のためのシステム構成が非効率である。
【０００５】
そこで、本発明は、一側面では、サービスの冗長化の効率性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
一つの案では、サービス冗長化方法は、情報処理装置が、当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信し、受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定し、前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化し、代替先に決定された情報処理装置を示す情報を、前記端末に送信する処理を実行し、前記端末は、当該情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する。
【発明の効果】
【０００７】
一側面によれば、サービスの冗長化の効率性を向上させることを目的とする。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】初期状態を示す図である。
【図３】或る端末が或るサーバに接続した際に実行される処理を説明するための図である。
【図４】別の端末が同じサーバへ接続した際に実行される処理を説明するための図である。
【図５】更に別の端末が同じサーバへ接続した際に実行される処理を説明するための図である。
【図６】接続先のサーバが故障せずにサービス１１が正常に提供されている状態を示す図である。
【図７】一部の端末がサーバとの接続を切断した場合に実行される処理を説明するための図である。
【図８】全ての端末がサーバとの接続を切断した場合に実行される処理を説明するための図である。
【図９】接続先のサーバが故障した場合に実行される処理を説明するための図である。
【図１０】本発明の実施の形態におけるサーバのハードウェア構成例を示す図である。
【図１１】本発明の実施の形態における端末及びサーバの機能構成例を示す図である。
【図１２】接続管理部がサーバへの接続時に実行する処理手順の一例を説明するためのフローチャートである。
【図１３】接続先情報の構成例を示す図である。
【図１４】接続管理部が接続要求の送信後に実行する処理手順の一例を説明するためのフローチャートである。
【図１５】アプリ接続先記憶部の構成例を示す図である。
【図１６】故障時接続先情報の構成例を示す図である。
【図１７】プロキシ部が実行する処理手順の一例を説明するためのフローチャートである。
【図１８】アプリ情報記憶部の構成例を示す図である。
【図１９】端末接続管理部が実行する処理手順の一例を説明するためのフローチャートである。
【図２０】端末接続情報の構成例を示す図である。
【図２１】ＳＳＩＤ／サーバ対応記憶部の構成例を示す図である。
【図２２】冗長化先決定部が実行する処理手順の一例を説明するためのフローチャートである。
【図２３】冗長化先情報の構成例を示す図である。
【図２４】冗長化管理部が実行する処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。図１において、サーバ１０ａ、サーバ１０ｂ、及びサーバ１０ｃ等の複数のサーバ１０は、一定区画ごとに配置されるＰＣ（Personal Computer）等のコンピュータである。但し、各サーバ１０の間隔は、一定間隔でなくてもよい。各サーバ１０は、それぞれに専用の無線通信用のアクセスポイントＡＰに接続されている。すなわち、各サーバ１０と、アクセスポイントＡＰとは対になっている。例えば、各アクセスポイントＡＰは、各サーバ１０に内蔵されていてもよい。各サーバ１０は、自らのアクセスポイントＡＰの電波の範囲内に含まれる端末２０に対して、所定のサービスを提供可能である。各サーバ１０が提供するサービスは同じであってもよいし、異なっていてもよい。但し、いずれかのサーバ１０が故障すると、当該サーバ１０によるサービスが、他のサーバ１０によって継続して提供可能であるように構成されている。そのために、各サーバ１０は、ＬＡＮ（Local Area Network）等のネットワークＮ１を介して通信可能に接続されている。
【００１０】
例えば、本システムが、学校で運用される場合には、教室ごとにサーバ１０が配置されてもよい。この場合、各サーバ１０は、学習用のサービスを提供してもよい。各端末２０は、各生徒によって利用されてもよい。端末２０の一例として、スマートフォン、タブレット端末、又はＰＣ（Personal Computer）等が挙げられる。なお、各サーバ１０は、学校以外において利用されてもよい。例えば、店舗やイベント会場等の一定区画ごとにサーバ１０が配置されてもよい。この場合、各サーバ１０は、当該サーバ１０が配置された区画において扱われている商品又はイベントに関する情報を端末２０に対して提供してもよい。
【００１１】
図２〜図９を用いて、本発明の実施の形態の概要を説明する。図２は、初期状態を示す図である。図２では、各サーバ１０の（アクセスポイントＡＰの）無線の電波の範囲が破線の楕円によって示されている。すなわち、エリアＡ１は、サーバ１０ａの電波の範囲であり、エリアＡ２は、サーバ１０ｂの電波の範囲であり、エリアＡ３は、サーバ１０ｃの電波の範囲である。なお、サーバ１０ａのアクセスポイントＡＰのＳＳＩＤ（Service Set Identifier）は、「ＳＳＩＤＡ」であるとする。また、サーバ１０ｂのアクセスポイントＡＰのＳＳＩＤは、「ＳＳＩＤＢ」であるとする。サーバ１０ｃのアクセスポイントＡＰのＳＳＩＤは、「ＳＳＩＤＣ」であるとする。
【００１２】
また、図２では、サーバ１０ａにおいてサービスＡが起動されていることが示されている。なお、サーバ１０ｂ及びサーバ１０ｃのそれぞれにおいても、それぞれに固有のサービス１１が起動されていてもよい。
【００１３】
図３は、或る端末が或るサーバに接続した際に実行される処理を説明するための図である。図３では、端末２０ａが、サーバ１０ａに接続した例が示されている。端末２０ａは、サーバ１０ａに接続すると、端末２０ａにおいて検出可能な無線のＳＳＩＤ（ＳＳＩＤＡ及びＳＳＩＤＢ）をサーバ１０ａに通知する（Ｓ１１）。サーバ１０ａは、ＳＳＩＤＢからサーバ１０ｂを特定し、サーバ１０ｂへサービスＡの冗長化を開始する（Ｓ１２）。すなわち、各サーバ１０は、ＳＳＩＤとサーバ１０との対応情報を保持している。サーバ１０ａは、また、サーバ１０ａの故障時（利用不可時）の代替サーバとして、サーバ１０ｂを選択して、端末２０ａに対して、故障時の接続先として、ＳＳＩＤＢとサーバ１０ｂの識別情報（例えば、ＩＰアドレス）とを通知する（Ｓ１３）。当該通知は、ＳＳＩＤＢで識別されるアクセスポイントＡＰを経由してサーバ１０ｂに接続すべきことを示す。
【００１４】
図４は、別の端末が同じサーバへ接続した際に実行される処理を説明するための図である。図４では、更に、端末２０ｂが、サーバ１０ａに接続した例が示されている。端末２０ｂは、サーバ１０ａに接続すると、端末２０ｂにおいて検出可能な無線のＳＳＩＤ（ＳＳＩＤＡ及びＳＳＩＤＣ）をサーバ１０ａに通知する（Ｓ２１）。サーバ１０ａは、ＳＳＩＤＣからサーバ１０ｃを特定し、サーバ１０ｃへサービスＡの冗長化を開始する（Ｓ２２）。サーバ１０ａは、また、サーバ１０ａの故障時の代替サーバとして、サーバ１０ｂを選択して、端末２０ｂに対して、故障時の接続先として、ＳＳＩＤＣとサーバ１０ｂの識別情報（例えば、ＩＰアドレス）とを通知する（Ｓ２３）。当該通知は、ＳＳＩＤＣで識別されるアクセスポイントＡＰを経由してサーバ１０ｂに接続すべきことを示す。なお、代替サーバとしてサーバ１０ｃが選択されてもよい。また、サーバ１０ｂが代替サーバとして選択される場合、サーバ１０ｃへの冗長化は、必ずしも実行されなくてもよい。
【００１５】
図５は、更に別の端末が同じサーバへ接続した際に実行される処理を説明するための図である。図５では、更に、端末２０ｃが、サーバ１０ａに接続した例が示されている。端末２０ｃは、サーバ１０ａに接続すると、端末２０ｃにおいて検出可能な無線のＳＳＩＤ（ＳＳＩＤＡ及びＳＳＩＤＣ）をサーバ１０ａに通知する（Ｓ３１）。サーバ１０ａは、ＳＳＩＤＣからサーバ１０ｃを特定するが、サーバ１０ｃへサービスＡの冗長化は開始済みであるため、冗長化処理は実行しない。また、サーバ１０ａは、サーバ１０ａの故障時のサーバ１０ａの代替サーバとして、サーバ１０ｃを選択する。ここで、サーバ１０ｃが選択されるのは、例えば、現時点において、サーバ１０ｃに係るエリアＡ３内に含まれる端末２０が最多だからである。サーバ１０ａは、故障時の接続先として、端末２０ａに対し、ＳＳＩＤＢ及びサーバ１０ｃの識別情報を通知し（Ｓ３２）、端末２０ｂに対し、ＳＳＩＤＣ及びサーバ１０ｃの識別情報を通知し（Ｓ３３）、端末２０ｃに対し、ＳＳＩＤＣ及びサーバ１０ｃの識別情報を通知する（Ｓ３４）。すなわち、代替サーバが変化したため、端末２０ａ及び端末２０ｂに対しても、サーバ１０ｃが代替サーバであることが通知される。この時点において、サーバ１０ｂへの冗長化は終了してもよい。
【００１６】
図６は、接続先のサーバが故障せずにサービス１１が正常に提供されている状態を示す図である。図６では、端末２０ａ、端末２０ｂ、及び端末２０ｃがサーバ１０ａに接続している状態において、各端末２０に対して正常にサービスＡが提供されている状態が示されている。なお、各端末２０には、図５において通知された、サーバ１０ａの故障時の接続先を示す情報が保持されている。
【００１７】
図７は、一部の端末がサーバとの接続を切断した場合に実行される処理を説明するための図である。図７では、端末２０ｂと端末２０ｃとが、サーバ１０ａとの接続を切断した例が示されている。この場合、サーバ１０ａは、故障時の代替サーバとしてサーバ１０ｂを選択し、サーバ１０ｃの冗長化を解除する（Ｓ４１）。サーバ１０ａは、端末２０ａに対して、故障時の接続先として、ＳＳＩＤＢ及びサーバ１０ｂの識別情報を通知する（Ｓ４２）。代替サーバが、サーバ１０ｃからサーバ１０ｂへ変更されるのは、例えば、サーバ１０ｂに係るエリアＡ２に含まれる端末２０の数が最多であるからである。
【００１８】
図８は、全ての端末がサーバとの接続を切断した場合に実行される処理を説明するための図である。更に、端末２０ａがサーバ１０ａとの接続を切断すると、サーバ１０ａは、サーバ１０ｂへの冗長化を解除し、冗長化を終了する。
【００１９】
図９は、接続先のサーバが故障した場合に実行される処理を説明するための図である。図９には、図６の状態において、サーバ１０ａが故障した状態が示されている。この場合、端末２０ａ、端末２０ｂ、及び端末２０ｃは、ＳＳＩＤＡに係るアクセスポイントＡＰから切断される。そこで、各端末２０は、最後に通知された、サーバ１０ａの故障時の接続先の情報を参照して、接続先を切り替える。具体的には、端末２０ａはＳＳＩＤＢに係るサーバ１０ｂのアクセスポイントＡＰ経由でサーバ１０ｃに接続する（Ｓ５１、Ｓ５４）。端末２０ｂと端末２０ｃとはＳＳＩＤＣに係るサーバ１０ｃのアクセスポイントＡＰ経由でサーバ１０ｃに接続する（Ｓ５２、Ｓ５５、Ｓ５３、Ｓ５６）。その結果、各端末２０は、サーバ１０ｃに冗長化されているサービスＡを利用することができる。
【００２０】
上記のように、本実施の形態では、或る端末２０のサーバ１０ａの利用を契機に、サービスＡを冗長化し、全ての端末２０のサーバ１０ａの利用の終了を契機にサービスＡの冗長化を終了することにより、冗長化のコストを抑えつつサーバ１０の故障時におけるサービス１１を継続が可能とされる。
【００２１】
続いて、端末２０及びサーバ１０について具体的に説明する。
【００２２】
図１０は、本発明の実施の形態におけるサーバのハードウェア構成例を示す図である。図１０のサーバ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００２３】
サーバ１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２４】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってサーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２５】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００２６】
なお、端末２０も、図１０に示されるようなハードウェアを有している。但し、端末２０は、液晶パネル等の表示装置や、タッチパネル、キーボード、又はマウス等の入力装置を備えているのが望ましい。
【００２７】
図１１は、本発明の実施の形態における端末及びサーバの機能構成例を示す図である。図１１において、端末２０は、プロキシ部２２及び接続管理部２３等を有する。これら各部は、端末２０にインストールされたプログラムが、端末２０のＣＰＵに実行させる処理により実現される。端末２０は、また、アプリ情報記憶部２１１、故障時接続先情報記憶部２１２、アプリ接続先記憶部２１３、及び接続先情報記憶部２１４等を有する。これら各記憶部は、例えば、端末２０のメモリ又は端末２０の補助記憶装置等を用いて実現可能である。また、端末２０では、１以上のアプリ２１が起動される。
【００２８】
アプリ２１は、アプリケーションプログラムである。アプリ２１は、サーバ１０において起動されているサービス１１の利用を、端末２０に実行させる。
【００２９】
プロキシ部２２は、アプリ２１が利用するサービス１１の接続先を、アプリ情報記憶部２１１を参照して制御する。アプリ情報記憶部２１１には、起動されているアプリ２１ごとに、現時点における接続先のサービス１１の宛先を示す情報が記憶される。
【００３０】
接続管理部２３は、サーバ１０との無線通信を介した接続を管理する。故障時接続先情報記憶部２１２には、接続先のサーバ１０の利用が不可能となった場合の代替先のサーバ１０を示す情報が記憶される。当該情報は、接続先のサーバ１０から通知される。
【００３１】
アプリ接続先記憶部２１３は、アプリ２１ごとに、接続先のサービス１１の宛先を示す情報が、予め記憶されている。接続先情報記憶部２１４は、当該端末２０が接続先とすべきサーバ１０のアドレス情報が、予め記憶されている。
【００３２】
一方、サーバ１０は、端末接続管理部１２、冗長化先決定部１３、及び冗長化管理部１４等を有する。これら各部は、サーバ１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。サーバ１０は、また、端末接続情報記憶部１２１、ＳＳＩＤ／サーバ対応記憶部１２２、及び冗長化先情報記憶部１２３等を利用する。これら各記憶部は、サーバ１０が有するメモリ装置１０３若しくは補助記憶装置１０２、又はサーバ１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。また、サーバ１０では、１以上のサービス１１が起動されている。
【００３３】
サービス１１は、端末２０に対して提供されるサービス１１である。端末接続管理部１２は、当該サーバ１０のサービス１１を利用する端末２０との接続を管理する。端末接続情報記憶部１２１には、当該サーバ１０に接続されている端末２０ごとに、当該端末２０の接続先や代替先のサーバ１０を示す情報等が記憶される。冗長化先決定部１３は、当該サーバ１０が利用できなくなった場合の冗長化先の決定等を行う。冗長化管理部１４は、冗長化先決定部１３によって決定された冗長化先へのサービス１１の冗長化や、冗長化先におけるサービス１１の冗長化の解除等を実行する。冗長化先情報記憶部１２３には、各冗長化先に関する情報が記憶される。ＳＳＩＤ／サーバ対応記憶部１２２には、ＳＳＩＤとサーバ１０との対応情報が記憶されている。
【００３４】
以下、端末２０及びサーバ１０のそれぞれが実行する処理手順について説明する。まず、端末２０が実行する処理について説明する。
【００３５】
図１２は、接続管理部がサーバへの接続時に実行する処理手順の一例を説明するためのフローチャートである。
【００３６】
例えば、ユーザによる、サーバ１０への接続指示の入力に応じ、接続管理部２３は、接続先情報記憶部２１４から接続先情報を取得する（Ｓ１０１）。
【００３７】
図１３は、接続先情報の構成例を示す図である。図１３に示されるように、接続先情報は、端末ＩＤ、ＳＳＩＤ、及びサーバ接続先等の項目を含む。端末ＩＤは、当該端末２０の識別情報である。ＳＳＩＤは、接続すべきアクセスポイントＡＰのＳＳＩＤである。ＳＳＩＤと共にパスフレーズが記憶されていてもよい。サーバ接続先は、接続すべきサーバ１０を示す情報である。サーバ接続先は、例えば、ＩＰアドレス又はＵＲＬ等である。
【００３８】
なお、接続先情報は、予め設定されて接続先情報記憶部２１４に記憶されている。すなわち、各端末２０には、接続先のサーバ１０が予め設定されている。例えば、学校において、或るクラスに属する生徒の端末２０には、当該クラスに設置されているサーバ１０が接続先として設定されていてもよい。
【００３９】
続いて、接続管理部２３は、取得された接続先情報のＳＳＩＤのアクセスポイントＡＰに無線接続し、当該接続先情報のサーバ接続先によって特定されるサーバ１０に接続する（Ｓ１０２）。続いて、接続管理部２３は、接続先のサーバ１０の端末接続管理部１２に対し、当該接続先情報に含まれている端末ＩＤを含む接続要求を送信する（Ｓ１０３）。
【００４０】
なお、端末ＩＤは、接続先情報に含まれていなくてよい。例えば、端末ＩＤは、端末２０ごとに固有の情報に基づいて自動的に生成されてもよい。また、図１２の処理は、サーバ１０への接続時において１回実行されればよい。
【００４１】
続いて、接続管理部２３が、接続要求の送信後に実行する処理について説明する。図１４は、接続管理部が接続要求の送信後に実行する処理手順の一例を説明するためのフローチャートである。
【００４２】
接続管理部２３は、プロキシ部２２からの要求（Ｓ２０１）、サーバ１０の端末接続管理部１２からの通知（Ｓ２１１）、又は無線接続状況の変化（Ｓ２２１）等を契機に処理を実行する。また、接続管理部２３は、定期的に（Ｓ２２１でＮＯ）、無線通信用の電波をスキャンし、端末２０から検出できる電波のＳＳＩＤのリストを取得する（Ｓ２３１）。
【００４３】
定期的にＳＳＩＤのリストを取得した場合、接続管理部２３は、当該端末２０の端末ＩＤと当該ＳＳＩＤのリストとを含む、ＳＳＩＤリストの更新要求を、図１２において接続したサーバ１０の端末接続管理部１２に送信する（Ｓ２３２）。これは、例えば、図３のステップＳ１１において、端末２０ａが、ＳＳＩＤＡ及びＳＳＩＤＢをサーバ１０ａに通知する処理に相当する。
【００４４】
また、プロキシ部２２からの要求（Ｓ２０１）とは、サービス１１へのアクセス要求をアプリ２１から受けたプロキシ部２２からの、当該アプリ２１がアクセス先とすべきサービス１１の照会要求である。当該照会要求には、アクセス要求元のアプリ２１の識別情報であるアプリＩＤが含まれている。斯かる照会要求が受信されると（Ｓ２０１でＹＥＳ）、接続管理部２３は、当該照会要求に含まれているアプリＩＤに対応するサービス接続先を、アプリ接続先記憶部２１３から取得する（Ｓ２０２）。
【００４５】
図１５は、アプリ接続先記憶部の構成例を示す図である。図１５に示されるように、アプリ接続先記憶部２１３には、端末２０にインストールされているアプリ２１ごとに、アプリＩＤとサービス接続先とが対応付けられて記憶されている。アプリＩＤは、アプリ２１ごとの識別情報である。サービス接続先情報は、アプリ２１が利用するサービス１１の宛先である。サービス１１の宛先の一例として、ＵＲＬ（Uniform Resource Locator）が挙げられる。なお、サービス接続先は、複数の値（例えば、複数のＵＲＬ）を含んでもよい。例えば、アプリ２１のインストール時等に、当該アプリ２１に関するレコードがアプリ接続先記憶部２１３に記憶されてもよい。
【００４６】
続いて、接続管理部２３は、当該端末２０の端末ＩＤと、照会要求に含まれているアプリＩＤと、取得されたサービス接続先とを含むサービス１１の利用要求を、図１２において接続したサーバ１０の端末接続管理部１２へ送信する（Ｓ２０３）。続いて、接続管理部２３は、当該サービス接続先を、プロキシ部２２に返却する（Ｓ２０４）。
【００４７】
また、サーバ１０の端末接続管理部１２からの通知（Ｓ２１１）とは、例えば、図３のステップＳ１３において説明した、サーバ１０の故障時の接続先を示す情報（故障時接続先情報）の通知である。当該通知が受信されると（Ｓ２１１でＹＥＳ）、接続管理部２３は、当該通知に含まれている故障時接続先情報を取得する（Ｓ２１２）。
【００４８】
図１６は、故障時接続先情報の構成例を示す図である。図１６において、故障時接続先情報は、ＳＳＩＤ、サーバ接続先、アプリ接続先情報等を含む。ＳＳＩＤは、現在接続中のサーバ１０の故障時にアクセスすべきアクセスポイントＡＰのＳＳＩＤである。サーバ接続先は、代替サーバのＩＰアドレス又はＵＲＬ等である。アプリ接続先情報は、アプリＩＤ及びサービス接続先を含む。アプリＩＤは、当該アプリ接続先情報が対象とするアプリ２１のアプリＩＤである。サービス接続先は、現在接続中のサーバ１０の故障時に、当該アプリ２１がアクセス先とすべきサービス１１の宛先である。すなわち、サービス接続先は、代替サーバ上におけるサービス１１の宛先である。アプリ接続先情報は、端末２０において起動されているアプリ２１ごとに故障時接続先情報に含まれる。例えば、アプリ接続先情報は、配列又はリスト構造を形成する。
【００４９】
なお、故障時接続先情報にアプリ接続先情報が含まれるのは、本実施の形態では、アプリ２１ごとにサービス１１の接続先が管理されるからである。
【００５０】
続いて、接続管理部２３は、取得された故障時接続先情報によって、故障時接続先情報記憶部２１２の記憶内容を更新する（Ｓ２１３）。すなわち、故障時接続先情報が既に故障時接続先情報記憶部２１２に記憶されている場合には、既存の故障時接続先情報が、新たな故障時接続先情報によって上書きされる。
【００５１】
また、無線接続状況の変化（Ｓ２２１）とは、接続中のサーバ１０の故障等により、当該サーバ１０のアクセスポイントＡＰとの無線接続の切断が検知されることである。接続管理部２３は、無線接続の切断を検知すると（Ｓ２２１でＹＥＳ）、故障時接続先情報記憶部２１２から故障時接続先情報を取得する（Ｓ２２２）。続いて、接続管理部２３は、故障時接続先情報のＳＳＩＤに係るアクセスポイントＡＰに無線接続し、当該故障時接続先情報のサーバ接続先によって特定されるサーバ１０に接続する（Ｓ２２３）。続いて、接続管理部２３は、当該故障時接続先情報のアプリ接続先情報をプロキシ部２２へ通知する（Ｓ２２４）。アプリ２１に、代替先のサーバ１０のサービス１１にアクセスさせるためである。
【００５２】
なお、ここでは、無線接続の切断の例を挙げたが、プロキシ部２２でサービス１１へのアクセスが失敗したような場合に、プロキシ部２２から接続管理部２３に対してサービス１１の利用不可が通知されてもよい。この場合に、接続管理部２３は、ステップＳ２２２〜Ｓ２２４を実行してもよい。つまり、接続中のサーバ１０の故障（利用不可）の判断は、無線切断以外に基づいて行われてもよい。
【００５３】
続いて、端末２０のプロキシ部２２が実行する処理について説明する。図１７は、プロキシ部が実行する処理手順の一例を説明するためのフローチャートである。
【００５４】
プロキシ部２２は、アプリ２１からのサービス１１へのアクセス要求又は接続管理部２３からのアプリ接続先情報の通知を待機している（Ｓ３０１）。アプリ２１からのサービス１１へのアクセス要求には、アクセスの内容（サービス１１に対する要求の内容）と、当該アプリ２１を識別するアプリＩＤとが含まれている。プロキシ部２２は、アプリ２１からのサービス１１へのアクセス要求を受信すると（Ｓ３０１でＹＥＳ）、アプリ情報記憶部２１１に、当該アプリ２１に対応するアプリ情報が記憶されているか否かを判定する（Ｓ３０２）。
【００５５】
アプリ２１が最初にサービス１１にアクセスする場合、当該アプリ２１に対応するアプリ情報は、アプリ情報記憶部２１１には記憶されてない（Ｓ３０２でＮＯ）。したがって、この場合、プロキシ部２２は、当該アプリ２１に対応する接続先のサービス１１を示す情報（サービス接続先）の照会要求を、接続管理部２３に送信する（Ｓ３０２）。当該照会要求には、当該アプリ２１の識別情報であるアプリＩＤが指定される。当該照会要求に応じて、接続管理部２３によって、図１４のステップＳ２０２〜Ｓ２０４が実行される。
【００５６】
接続管理部２３から接続先情報が返却されると、プロキシ部２２は、当該アプリ２１のアプリＩＤと当該サービス接続先とを対応付けて、アプリ情報記憶部２１１に記憶する（Ｓ３０４）。
【００５７】
図１８は、アプリ情報記憶部の構成例を示す図である。アプリ情報記憶部２１１の構成は、アプリ接続先記憶部２１３（図１５）と同様である。但し、アプリ情報記憶部２１１には、起動中のアプリ２１に関する情報のみが記憶される。図１８における各行が、アプリ情報に相当する。
【００５８】
ステップＳ３０４の実行後、ステップＳ３０５に進む。
【００５９】
一方、アクセス要求に含まれているアプリＩＤに対応するアプリ情報が、アプリ情報記憶部２１１に記憶されている場合（Ｓ３０２でＹＥＳ）、ステップＳ３０３及びＳ３０４は実行されずに、ステップＳ３０５に進む。
【００６０】
ステップＳ３０５において、プロキシ部２２は、アプリ情報記憶部２１１から、アクセス要求に含まれているアプリＩＤに対応するアプリ情報を取得する。続いて、プロキシ部２２は、当該アプリ情報のサービス接続先によって識別されるサービス１１へアクセス要求に応じたアクセスを行い、アクセス結果をアプリ２１に返却する（Ｓ３０６）。アクセス要求に応じたアクセスとは、アクセス要求に含まれている要求をサービス１１に対して送信することである。アクセス結果とは、当該要求に応じてサービス１１から返信される応答である。
【００６１】
一方、図１４のステップＳ２２４において、接続管理部２３からアプリ接続先情報が通知されると（Ｓ３０１でＮＯ）、プロキシ部２２は、当該アプリ接続先情報に基づいて、アプリ情報記憶部２１１に記憶されているアプリ情報を更新する（Ｓ３０７）。すなわち、アプリ情報記憶部２１１において、当該アプリ接続先情報のアプリＩＤに一致するアプリＩＤに対応付けられて記憶されているサービス接続先の値が、当該アプリ接続先情報のサービス接続先に更新される。その結果、次回のアクセス時には、更新後のサービス接続先がアクセス先となる。なお、複数のアプリ接続先情報が通知される可能性も有る。
【００６２】
続いて、サーバ１０が実行する処理について説明する。図１９は、端末接続管理部が実行する処理手順の一例を説明するためのフローチャートである。端末接続管理部１２は、端末２０の接続管理部２３からの要求を契機に動作する。接続管理部２３からの要求とは、図１２のステップＳ１０３において送信される接続要求、図１４のステップＳ２０３において送信されるサービス１１の利用要求、切断要求、及び図１４のステップＳ２３２において送信されるＳＳＩＤリストの更新要求である。なお、切断要求については後述される。
【００６３】
端末接続管理部１２は、図１２のステップＳ１０３において端末２０の接続管理部２３から送信された接続要求を受信すると（Ｓ４０１でＹＥＳ）、新たな端末接続情報を生成し、当該接続要求に含まれている端末ＩＤ等を当該端末接続情報に設定する（Ｓ４０２）。
【００６４】
図２０は、端末接続情報の構成例を示す図である。端末接続情報は、サーバ１０に接続されている端末２０ごとに生成される情報であり、端末ＩＤ、ＳＳＩＤリスト、接続先情報、及び故障時接続先情報等の項目を含む。端末ＩＤは、当該端末接続情報に対応する端末２０の端末ＩＤである。ＳＳＩＤリストは、端末ＩＤに係る端末２０によって検出されているＳＳＩＤのリストである。
【００６５】
接続先情報は、端末ＩＤに係る端末２０の現在の接続先に関する情報であり、ＳＳＩＤ、サーバ接続先、アプリ接続先情報等を含む。ＳＳＩＤは、端末ＩＤに係る端末２０の現在の接続先のアクセスポイントＡＰのＳＳＩＤである。サーバ接続先は、端末ＩＤに係る端末２０の現在の接続先のサーバ１０のＩＰアドレス又はＵＲＬ等である。アプリ接続先情報は、端末ＩＤに係る端末２０で起動されている各アプリ２１の接続先のサービス１１を示す情報である。なお、アプリ接続先情報の構成は図１６と同様であり、端末２０において起動されているアプリ２１ごとに接続先情報に含まれる。
【００６６】
故障時接続先情報は、接続先情報に係るサーバ１０の故障時における接続先に関する情報であり、その構成は、基本的に、図１６と同じである。但し、端末接続情報に属する故障時接続先情報は、更新フラグを含む点において、図１６と異なる。更新フラグは、後述される冗長化先決定部１３が実行する処理において当該故障時接続先情報が更新されたか否かを判定するためのフラグである。冗長化先決定部１３によって当該故障時接続先情報が更新された場合には、更新フラグの値が真に変更される。なお、端末接続情報に属する接続先情報のアプリ接続先情報と、当該端末接続情報に属する故障時接続先情報のアプリ接続先情報との数は一致する。前者のアプリ接続先情報に係るサービス１１ごとに、冗長化が行われ、冗長化先のサービス１１に係る情報が、後者のアプリ接続先情報だからである。すなわち、前者の各アプリ接続先情報と、後者の各アプリ接続先情報とは対をなす。
【００６７】
ステップＳ４０２では、端末接続情報の端末ＩＤに値が設定される。また、端末接続情報の接続先情報のＳＳＩＤ及びサーバ接続先のそれぞれに当該サーバ１０に対応するＳＳＩＤ、当該サーバ１０のＩＰアドレス又はＵＲＬ等が設定される。端末接続情報の他の項目の値は、後述の処理で設定される。
【００６８】
続いて、端末接続管理部１２は、生成された端末接続情報を、端末接続情報記憶部１２１に記憶する（Ｓ４０３）。したがって、端末接続情報記憶部１２１には、サーバ１０に接続されている端末２０ごとに、端末接続情報が記憶される。
【００６９】
また、端末接続管理部１２は、図１４のステップＳ２０３において端末２０の接続管理部２３から送信されたサービス１１の利用要求を受信すると（Ｓ４１１でＹＥＳ）、端末接続情報記憶部１２１において、当該利用要求に含まれている端末ＩＤに係る端末接続情報（図２０）の接続先情報に新たなアプリ接続先情報を追加し、当該アプリ接続先情報に、当該利用要求に含まれているアプリＩＤとサービス接続先とを設定する（Ｓ４１２）。なお、この時点において、当該端末接続情報の故障時接続先情報には、当該アプリ接続先情報と対をなすアプリ接続先情報は追加されない。当該対をなすアプリ接続先情報は、ステップＳ４１２における利用要求に係るサービス１１が冗長化された際に追加される。
【００７０】
続いて、端末接続管理部１２は、冗長化先決定部１３に対して冗長化先の決定を要求する（Ｓ４４１）。冗長化先決定部１３では、端末接続情報記憶部１２１に記憶されている端末接続情報の一覧に基づいて、冗長化先を決定する。冗長化先の決定に伴って、いずれかの端末接続情報の故障時接続先情報が更新される場合が有る。図５において説明したように、サービス１１を利用する端末２０の増加に伴って、故障時の接続先が変更される場合が有るからである。この場合、更新された故障時接続先情報の更新フラグは真に変更される。
【００７１】
冗長化先決定部１３による処理が終了すると、端末接続管理部１２は、端末接続情報記憶部１２１に記憶されている端末接続情報のうち、故障時接続先情報の更新フラグが真である端末接続情報を特定し、特定された端末接続情報の端末ＩＤに係る端末２０に対し、当該端末接続情報の故障時接続先情報を送信する（Ｓ４４２）。端末接続管理部１２は、送信された故障時接続先情報の更新フラグを偽に変更する。なお、ここで送信された故障時接続先情報は、図１４のステップＳ２１１において受信される。
【００７２】
また、端末接続管理部１２は、端末２０の接続管理部２３から送信された切断要求を受信すると（Ｓ４２１でＹＥＳ）、当該切断要求に含まれている端末ＩＤに係る端末接続情報（図２０）を、端末接続情報記憶部１２１から削除する（Ｓ４２２）。続いて、ステップＳ４４１及びＳ４４２が実行される。図７において説明したように、いずれかの端末２０の切断によって、他の端末２０の故障時の接続先が変更される可能性が有るからである。
【００７３】
また、端末接続管理部１２は、図１４のステップＳ２３２において送信されるＳＳＩＤリストの更新要求を受信すると（Ｓ４２１でＮＯ）、ＳＳＩＤ／サーバ対応記憶部１２２を参照して、受信したＳＳＩＤのリストから、いずれのサーバ１０にも対応しないＳＳＩＤを除去する（Ｓ４３１）。
【００７４】
図２１は、ＳＳＩＤ／サーバ対応記憶部の構成例を示す図である。図２１に示されるように、ＳＳＩＤ／サーバ対応記憶部１２２には、サーバ１０ごとに、当該サーバ１０に対応するＳＳＩＤと当該サーバ１０に係るサーバ接続先とが対応付けられて記憶されている。なお、図２１における「サーバａ」、「サーバｂ」、「サーバｃ」は、実際には、サーバ１０ａ、サーバ１０ｂ、サーバ１０ｃのそれぞれのＩＰアドレス又はＵＲＬ等を示す。
【００７５】
したがって、ＳＳＩＤ／サーバ対応記憶部１２２に記憶されていないＳＳＩＤは、サーバ１０のＳＳＩＤではないということになる。したがって、ステップＳ４３１では、受信されたＳＳＩＤのリストから、サーバ１０には対応しないＳＳＩＤが除去される。なお、この際、当該サーバ１０（自サーバ１０）に対応するＳＳＩＤも、受信されたＳＳＩＤのリストから除去される。
【００７６】
続いて、端末接続管理部１２は、端末接続情報記憶部１２１において、受信された更新要求に含まれている端末ＩＤに係る端末接続情報のＳＳＩＤリストを、ステップＳ４３１の実行後のＳＳＩＤのリストによって更新する（Ｓ４３２）。
【００７７】
続いて、ステップＳ４４１及びＳ４４２が実行される。各端末２０が検出しているＳＳＩＤが変化した場合にも、他の端末２０の故障時の接続先が変更される可能性が有るからである。
【００７８】
続いて、冗長化先決定部１３が実行する処理について説明する。図２２は、冗長化先決定部が実行する処理手順の一例を説明するためのフローチャートである。冗長化先決定部１３は、図１９のステップＳ４４１における端末接続管理部１２からの要求を契機に動作する。すなわち、サーバ１０に接続している端末２０によって検出されるＳＳＩＤに変化が有ったり、新たにサービス１１を利用する端末２０が発生したりといったように、端末２０の環境やサーバ１０に接続される端末２０の構成等に何らかの変化が発生した場合に、図２２の処理が実行される。
【００７９】
ステップＳ５０１において、冗長化先決定部１３は、端末接続情報記憶部１２１から全ての端末接続情報を取得する。続いて、冗長化先決定部１３は、ＳＳＩＤ／サーバ対応記憶部１２２からＳＳＩＤとサーバ接続先との対応情報を取得する（Ｓ５０２）。
【００８０】
続いて、冗長化先決定部１３は、各端末接続情報のＳＳＩＤリストの値に基づいて、端末接続情報ごと（すなわち、端末２０ごと）に、故障時の接続先のＳＳＩＤとサーバ接続先（代替サーバ）とを決定する（Ｓ５０３）。或る端末２０の故障時の接続先のＳＳＩＤは、当該端末２０に係る端末接続情報のＳＳＩＤリストに含まれているＳＳＩＤであれば、いずれのＳＳＩＤであってもよい。また、故障時の接続先のＳＳＩＤに対応するサーバ１０が代替サーバとして選択されてもよい。または、所定の規則に基づいて、ＳＳＩＤ及びサーバ接続先が決定されてもよい。
【００８１】
例えば、各端末接続情報のＳＳＩＤリストに含まれているＳＳＩＤの内訳に基づいて、接続先のＳＳＩＤが決定されてもよい。一例として、最も多くの端末２０によって検出されているＳＳＩＤが優先して選択されるようにしてもよい。これは、多くの端末２０に近いサーバ１０で代替することがネットワークの効率がいいと判断する例である。この場合、当該ＳＳＩＤに対応するサーバ１０が代替サーバとして決定される。但し、当該ＳＳＩＤを検出できていない端末２０については、当該端末２０において検出されているＳＳＩＤの中から別のＳＳＩＤが選択される。但し、代替サーバについては、最も多くの端末２０によって検出されているＳＳＩＤに対応するサーバ１０が選択される。この場合、当該別のＳＳＩＤに係るサーバ１０は、代替サーバへのアクセスをルーティングするために利用される。
【００８２】
他の例として、冗長化先の各サーバ１０の利用状況（負荷状況）や、無線の混み具合などから、代替先が決定されてもよい。冗長化先の各サーバ１０の利用状況に基づいて、代替先が決定される場合、サーバ１０間において、それぞれの利用状況を示す情報（例えば、それぞれに記憶されている端末接続情報）が交換されてもよい。この場合、それぞれの端末接続情報の数に基づいて、それぞれのサーバ１０の利用状況（負荷状況）が判定されてもよい。又は、各サーバ１０のＣＰＵ１０４の負荷等が、サーバ１０間で交換されてもよい。なお、各端末２０によって検出されているＳＳＩＤは、各端末２０に対応する端末接続情報のＳＳＩＤリストに基づいて特定可能である。
【００８３】
なお、ステップＳ５０３において端末接続情報ごとに決定されたＳＳＩＤとサーバ接続先は、各端末接続情報の故障時接続先情報のＳＳＩＤ及びサーバ接続先に設定される。但し、設定される値が、当該故障時接続先情報に既に設定されているＳＳＩＤ及びサーバ接続先と同じである場合、当該故障時接続先情報の更新は行われなくてもよい。
【００８４】
続いて、冗長化先決定部１３は、自サーバ１０で提供しているサービス１１のうち、現在利用されている（アクセス対象とされている）サービス１１に対応するサービス接続先をリストアップする（Ｓ５０４）。現在利用されているサービス１１は、各端末接続情報の接続先情報のアプリ接続先情報のサービス接続先を参照することで特定可能である。ステップＳ５０４では、当該サービス接続先の重複が除去された状態のリストが生成される。以下、当該リストを「サービスリスト」という。
【００８５】
続いて、冗長化先決定部１３は、サービスリストに含まれているサービス接続先のうち、当該サービス接続先に対応する冗長化先情報が冗長化先情報記憶部１２３に記憶されていないサービス接続先の有無を判定する（Ｓ５０５）。
【００８６】
図２３は、冗長化先情報の構成例を示す図である。冗長化先情報は、利用されているサービス１１ごとに冗長化先等を示す情報であり、利用されているサービス１１ごとに生成される。図２３に示されるように、冗長化先情報は、サービス接続先、サービス冗長化先、指示（冗長化／解除）、更新フラグ（真／偽）等の項目を含む。
【００８７】
サービス接続先は、利用されているサービス１１（すなわち、冗長化の対象とされるサービス１１）の宛先である。サービス冗長化先は、利用されているサービス１１の冗長化先を示す宛先（例えば、ＵＲＬ）である。指示は、当該冗長化先情報によって示される冗長化を行うのか解除するのかを示す、冗長化管理部１４に対する指示であり、「冗長化」又は「解除」が設定される。更新フラグは、当該冗長化先情報の更新の有無を示すフラグである。
【００８８】
サービスリストに含まれているサービス接続先のうち、当該サービス接続先に対応する冗長化先情報が冗長化先情報記憶部１２３に記憶されていないサービス接続先（以下、「対象サービス接続先」という。）が有る場合（Ｓ５０５でＹＥＳ）、冗長化先決定部１３は、新たな冗長化先情報を生成し、当該冗長化先情報を冗長化先情報記憶部１２３に記憶する（Ｓ５０６）。当該冗長化先情報のサービス接続先には、対象サービス接続先が設定される。当該冗長化先情報のサービス冗長化先には、新たに決定される冗長化先のサービス１１の宛先が設定される。例えば、各端末接続情報（図２０）の中で、接続先情報のアプリ接続先情報のサービス接続先に対象サービス接続先を含む端末接続情報のＳＳＩＤリストに含まれるいずれかのＳＳＩＤに対応するサーバ接続先に基づくサービス接続先が、サービス冗長化先に設定されてもよい。ＳＳＩＤに対応するサーバ接続先は、ＳＳＩＤ／サーバ対応記憶部１２２を参照して特定可能である。
【００８９】
また、新たに生成された冗長化先情報の指示には「冗長化」が設定され、更新フラグには「真」が設定される。なお、ステップＳ５０６は、当該サーバ１０において新たなサービス１１の利用が開始された際に実行される。新たなサービス１１とは、現時点まで利用が開始されていなかったサービス１１をいう。
【００９０】
続いて、冗長化先決定部１３は、サービスリストに含まれているいずれのサービス接続先にも対応しない冗長化先情報が冗長化先情報記憶部１２３に記憶されているか否かを判定する（Ｓ５０７）。すなわち、利用されなくなったサービス１１の冗長化先情報が記憶されているか否かが判定される。該当する冗長化先情報が記憶されている場合（Ｓ５０７でＹＥＳ）、冗長化先決定部１３は、当該冗長化先情報の指示に「解除」を設定し、当該冗長化先情報の更新フラグに「真」を設定する（Ｓ５０８）。
【００９１】
続いて、冗長化先決定部１３は、冗長化管理部１４に対して処理の実行を要求する（Ｓ５０９）。冗長化管理部１４は、後述されるように、冗長化先情報記憶部１２３に記憶されている冗長化先情報に基づいて、サービス１１の冗長化又は冗長化の解除を実行する。
【００９２】
冗長化管理部１４による処理が終了すると、冗長化先決定部１３は、指示が「解除」であり、更新フラグが「偽」である冗長化先情報を冗長化先情報記憶部１２３から削除する（Ｓ５１０）。続いて、冗長化先決定部１３は、端末接続情報（図２０）ごとに、当該端末接続情報（以下、「対象端末接続先情報」という。）の接続先情報の故障時接続先情報のアプリ接続先情報を更新する（Ｓ５１１）。具体的には、冗長化先決定部１３は、対象端末接続先情報の接続先情報の各アプリ接続先情報について、当該アプリ接続先情報（以下、「対象アプリ接続先情報」という。）のサービス接続先と同じサービス接続先を含む冗長化先情報を冗長化先情報記憶部１２３から検索する。冗長化先決定部１３は、対象端末接続先情報の故障時接続先情報に、対象アプリ接続先情報のアプリＩＤと同じアプリＩＤを含むアプリ接続先情報が含まれている場合には、当該アプリ接続先情報のサービス接続先に対し、検索された冗長化先情報のサービス冗長化先を設定する。対象端末接続先情報の故障時接続先情報に、対象アプリ接続先情報のアプリＩＤと同じアプリＩＤを含むアプリ接続先情報が含まれていない場合には、冗長化先決定部１３は、対象アプリ接続先情報のアプリＩＤを含み、検索された冗長化先情報のサービス冗長化先をサービス接続先とするアプリ接続先情報を、当該故障時接続先情報に追加する。
【００９３】
続いて、冗長化先決定部１３は、各端末接続情報の故障時接続先情報のうち、ステップＳ５０３又はステップＳ５１１においていずれかの項目が更新された故障時接続先情報の更新フラグに「真」を設定する（Ｓ５１２）。ここで、更新フラグに「真」が設定された故障時接続先情報は、図１９のステップＳ４４２において、当該故障時接続先情報を含む端末接続情報の端末ＩＤに係る端末２０に対して送信される。
【００９４】
続いて、冗長化管理部１４が実行する処理について説明する。図２４は、冗長化管理部が実行する処理手順の一例を説明するためのフローチャートである。冗長化管理部１４は、図２２のステップＳ５０９における、冗長化先決定部１３からの要求を契機に動作する。
【００９５】
ステップＳ６０１において、冗長化管理部１４は、更新フラグの値が「真」である冗長化先情報が、冗長化先情報記憶部１２３に記憶されているか否かを判定する（Ｓ６０１）。該当する冗長化先情報が１以上記憶されている場合（Ｓ６０１でＹＥＳ）、冗長化管理部１４は、該当する冗長化先情報を一つ取得する（Ｓ６０２）。以下、取得された冗長化先情報を「対象冗長化先情報」という。
【００９６】
続いて、冗長化管理部１４は、対象冗長化先情報の指示の値が「冗長化」であるか否かを判定する（Ｓ６０３）。当該指示の値が、「冗長化」である場合（Ｓ６０３でＹＥＳ）、冗長化管理部１４は、対象冗長化先情報のサービス接続先に係るサービス１１を、対象冗長化先情報のサービス冗長化先が示す宛先に冗長化する（Ｓ６０４）。一方、当該指示が「解除」である場合（Ｓ６０３でＮＯ）、冗長化管理部１４は、対象冗長化先情報のサービス冗長化先によって特定されるサービス１１による冗長化を解除する（Ｓ６０５）。続いて、冗長化管理部１４は、対象冗長化先情報の更新フラグに「偽」を設定し（Ｓ６０６）、ステップＳ６０１以降を繰り返す。ステップＳ６０１において、該当する冗長化先情報が記憶されていない場合（Ｓ６０１でＮＯ）、図２４の処理は終了する。
【００９７】
なお、冗長化や冗長化の解除は、公知の技術が用いられて実行されればよい。例えば、冗長化については、サービス１１をＤｏｃｋｅｒやＳｅｒｖｌｅｔ等のように配備可能な形で用意し、冗長化の際に、それらを冗長化先に配備し、冗長化開始後には、サービス１１の状態を同期するという方法が採用されてもよい。また、サービス１１へのアクセスの履歴をプロキシ部２２にて保存しておき、サーバ１０の故障時には、冗長化先のサービス１１に対して、保存しておいた履歴をリプレイすることで、冗長化先のサービス１１において、元のサービス１１の故障前の状態を再現するといった方法が採用されてもよい。また、公知の他の方法が採用されてもよい。
【００９８】
続いて、アプリ２１の利用終了時の処理について説明する。アプリ２１は、自身の終了前に、プロキシ部２２へ終了を通知する。当該通知には当該アプリ２１のアプリＩＤが含まれている。プロキシ部２２は、当該アプリＩＤに係るアプリ情報をアプリ情報記憶部２１１から削除し、当該アプリＩＤに係るアプリ２１の終了を接続管理部２３に通知する。接続管理部２３は、故障時接続先情報記憶部２１２に記憶されている故障時接続先情報（図１６）から、当該アプリＩＤを含むアプリ接続先情報を削除する。続いて、接続管理部２３は、当該端末２０の端末ＩＤと当該アプリＩＤとを含む、アプリ２１の終了通知を、接続先のサーバ１０の端末接続管理部１２に送信する。
【００９９】
当該端末接続管理部１２は、アプリ２１の終了通知を受信すると、当該終了通知に含まれている端末ＩＤを含む端末接続情報（図２０）を端末接続情報記憶部１２１から取得する。端末接続管理部１２は、取得された端末接続情報の接続先情報から、当該終了通知に含まれているアプリＩＤを含むアプリ接続先情報を削除する。続いて、端末接続管理部１２は、冗長化先決定部１３に処理の実行を要求する。冗長化先決定部１３は、当該要求に応じ、図２２において説明した処理手順を実行する。その結果、アプリ２１の終了により或るサービス１１が利用されなくなった場合には、図２２のステップＳ５０８が実行され、その効果により、図２４の処理において、当該サービス１１の冗長化が解除される。但し、他のアプリ２１又は他の端末２０から当該サービス１１が利用されている場合には、ステップＳ５０８は実行されないため、当該サービス１１の冗長化は継続する。端末接続管理部１２は、図２２の処理の実行により、端末接続情報記憶部１２１に記憶されているいずれかの端末接続情報の故障時接続先情報が更新されれば、当該端末接続情報の端末ＩＤに係る端末２０に対し、当該故障時接続先情報を送信する。当該故障時接続先情報を受信した端末２０の接続管理部２３は、図１４のステップＳ２１２及びＳ２１３を実行する。
【０１００】
以上により、アプリ２１終了時に、利用されなくなったサービス１１の冗長化が解除される。
【０１０１】
続いて、端末２０がサーバ１０との接続を切断する際の処理について説明する。端末２０の接続管理部２３は、例えば、ユーザによって切断指示が入力されると、当該端末２０の端末ＩＤを指定して、接続先のサーバ１０の端末接続管理部１２に、切断要求を送信する。また、接続管理部２３は、故障時接続先情報記憶部２１２から故障時接続先情報を削除する。
【０１０２】
接続先のサーバ１０の端末接続管理部１２は、当該切断要求に応じ、図１９のステップＳ４２２、Ｓ４４１、及びＳ４４２を実行する。その結果、当該端末２０が利用していたサービス１１が利用されなくなった場合には、図２２のステップＳ５０８が実行され、その効果により、図２４の処理において、当該サービス１１の冗長化が解除される。一方、他の端末２０から利用されているサービス１１の冗長化は継続する。
【０１０３】
以上により、端末２０がサーバ１０との接続を切断したときに、利用されなくなったサービス１１の冗長化が解除される。
【０１０４】
上述したように、本実施の形態によれば、サービス１１を提供するサーバ１０は、端末２０によるサービス１１の利用の開始に応じて当該サービス１１を冗長化する。したがって、常に代替サーバにおいてサービス１１が冗長化される場合に比べて、サービス１１の冗長化の効率性を向上させることができる。また、冗長化先は、端末２０が検出しているＳＳＩＤや、各サーバ１０の負荷状況等に基づいて動的に決定され、端末２０に通知される。したがって、サービス１１の冗長化の柔軟性を向上させることができる。
【０１０５】
また、サービス１１を利用する全ての端末２０が当該サービス１１の利用を終了すると、当該サービス１１の冗長化が解除される。斯かる点においても、サービス１１の冗長化の効率性を向上させることができる。
【０１０６】
なお、本実施の形態では、端末２０によって検出される、無線通信網ごとの識別情報がＳＳＩＤである例を説明したが、当該識別情報は、無線通信の方式に応じて適宜変更されてもよい。例えば、ＢＳＳＩＤやＭＡＣアドレスが当該識別情報として利用されてよい。また、無線通信の方式としても、無線ＬＡＮに限定されない。Ｂｌｕｅｔｏｏｔｈ（登録商標）等、他の通信方式が利用されてもよい。
【０１０７】
なお、本実施の形態において、サーバ１０は、情報処理装置の一例である。端末接続管理部１２は、受信部及び送信部の一例である。冗長化先決定部１３は、決定部の一例である。冗長化管理部１４は、冗長化部の一例である。
【０１０８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１０９】
以上の説明に関し、更に以下の項を開示する。
（付記１）
情報処理装置が、
当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信し、
受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定し、
前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化し、
代替先に決定された情報処理装置を示す情報を、前記端末に送信する処理を実行し、
前記端末は、当該情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する、
ことを特徴とするサービス冗長化方法。
（付記２）
前記受信する処理は、前記サービスを利用する複数の端末のそれぞれから、当該端末が検出した、無線通信網ごとの識別情報を受信し、
前記決定する処理は、当該情報処理装置と異なる情報処理装置に対応付く、複数の識別情報が受信された場合には、前記複数の識別情報のそれぞれに対応付く情報処理装置の利用状況及び前記各端末から受信された識別情報の内訳の少なくともいずれか一方に基づいて、前記サービスの代替先を決定する、
ことを特徴とする付記１記載のサービス冗長化方法。
（付記３）
サービスを利用する全ての端末による当該サービスの利用の終了に応じ、当該サービスの冗長化を解除する、
処理を前記情報処理装置が実行することを特徴とする付記１又は２記載のサービス冗長化方法。
（付記４）
情報処理装置であって、
当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信する受信部と、
受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定する決定部と、
前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化する冗長化部と、
代替先に決定された情報処理装置を示す情報を、前記端末に送信する送信部とを有し、
前記端末は、前記情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する、
ことを特徴とする情報処理装置。
（付記５）
前記受信部は、前記サービスを利用する複数の端末のそれぞれから、当該端末が検出した、無線通信網ごとの識別情報を受信し、
前記決定部は、当該情報処理装置と異なる情報処理装置に対応付く、複数の識別情報が受信された場合には、前記複数の識別情報のそれぞれに対応付く情報処理装置の利用状況及び前記各端末から受信された識別情報の内訳の少なくともいずれか一方に基づいて、前記サービスの代替先を決定する、
ことを特徴とする付記４記載の情報処理装置。
（付記６）
サービスを利用する全ての端末による当該サービスの利用の終了に応じ、当該サービスの冗長化を解除する解除部、
を有することを特徴とする付記４又は５記載の情報処理装置。
（付記７）
情報処理装置に、
当該情報処理装置に無線通信を介して接続された端末が検出した、無線通信網ごとの識別情報を受信し、
受信された識別情報に対応付く、当該情報処理装置と異なる情報処理装置を、当該情報処理装置が前記端末に対して提供するサービスの代替先に決定し、
前記端末による前記サービスの利用の開始に応じ、決定された代替先に前記サービスを冗長化し、
代替先に決定された情報処理装置を示す情報を、前記端末に送信する処理を実行させ、
前記端末は、当該情報処理装置を利用できない場合には、前記代替先の情報処理装置に接続する、
ことを特徴とするプログラム。
（付記８）
前記受信する処理は、前記サービスを利用する複数の端末のそれぞれから、当該端末が検出した、無線通信網ごとの識別情報を受信し、
前記決定する処理は、当該情報処理装置と異なる情報処理装置に対応付く、複数の識別情報が受信された場合には、前記複数の識別情報のそれぞれに対応付く情報処理装置の利用状況及び前記各端末から受信された識別情報の内訳の少なくともいずれか一方に基づいて、前記サービスの代替先を決定する、
ことを特徴とする付記７記載のプログラム。
（付記９）
サービスを利用する全ての端末による当該サービスの利用の終了に応じ、当該サービスの冗長化を解除する、
処理を前記情報処理装置に実行させることを特徴とする付記７又は８記載のプログラム。
【符号の説明】
【０１１０】
１０、１０ａ、１０ｂ、１０ｃ    サーバ
１１          サービス
１２          端末接続管理部
１３          冗長化先決定部
１４          冗長化管理部
２０、２０ａ、２０ｂ、２０ｃ    端末
２１          アプリ
２２          プロキシ部
２３          接続管理部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        端末接続情報記憶部
１２２        ＳＳＩＤ／サーバ対応記憶部
１２３        冗長化先情報記憶部
２１１        アプリ情報記憶部
２１２        故障時接続先情報記憶部
２１３        アプリ接続先記憶部
２１４        接続先情報記憶部
Ｂ            バス
【図１】
2016197281.tif 000003
【図２】
2016197281.tif 000004
【図３】
2016197281.tif 000005
【図４】
2016197281.tif 000006
【図５】
2016197281.tif 000007
【図６】
2016197281.tif 000008
【図７】
2016197281.tif 000009
【図８】
2016197281.tif 000010
【図９】
2016197281.tif 000011
【図１０】
2016197281.tif 000012
【図１１】
2016197281.tif 000013
【図１２】
2016197281.tif 000014
【図１３】
2016197281.tif 000015
【図１４】
2016197281.tif 000016
【図１５】
2016197281.tif 000017
【図１６】
2016197281.tif 000018
【図１７】
2016197281.tif 000019
【図１８】
2016197281.tif 000020
【図１９】
2016197281.tif 000021
【図２０】
2016197281.tif 000022
【図２１】
2016197281.tif 000023
【図２２】
2016197281.tif 000024
【図２３】
2016197281.tif 000025
【図２４】
2016197281.tif 000026