(57)【要約】【課題】各サーバのリソースを有効活用して負荷分散をしつつ、サーバ間で情報を共有せずに、中継サーバに障害が発生しても端末間の通信を継続できるようにする。【解決手段】第１の端末ＣＬ１１，ＣＬ１２から中継サーバＲＳ１〜ＲＳ４のうちｍ個に接続するとともに、第２の端末ＣＬ２１，ＣＬ２２からｎ個に接続し、両端末に共通に接続された中継サーバの１つを現用中継サーバとして端末間の通信を中継する。そして、現用中継サーバに障害が発生した場合には、第１の端末および第２の端末において、これらに共通に接続された他の中継サーバを探索して代替中継サーバとして端末間の通信を中継する。これにより、任意に選択された中継サーバを介して端末間のデータ通信が行われるようにするとともに、現用中継サーバに障害が発生した場合に、代替中継サーバを決定する調整が端末側で行われるようにする。【選択図】図１
2018136647.tif 000002
【特許請求の範囲】
【請求項１】
中継サーバが端末間のデータ通信を中継するシステムであって、
複数の中継サーバと複数の端末とを備え、
上記複数の端末の中の第１の端末から、上記複数の中継サーバの中のｍ個（ｍ≧２）の中継サーバに接続するとともに、上記複数の端末の中の第２の端末から、上記複数の中継サーバの中のｎ個（ｎ≧２）の中継サーバに接続し、
上記第１の端末および上記第２の端末に対して共通に接続された中継サーバの１つを現用中継サーバとして、上記第１の端末と上記現用中継サーバとの間の通信および上記第２の端末と上記現用中継サーバとの間の通信を中継することにより、上記端末間のデータ通信を行うようにし、
上記現用中継サーバに障害が発生した場合、上記第１の端末および上記第２の端末において、これらに共通に接続された他の中継サーバを探索して代替中継サーバとし、上記第１の端末と上記代替中継サーバとの間の通信および上記第２の端末と上記代替中継サーバとの間の通信を中継することにより、上記端末間のデータ通信を行うようにしたことを特徴とするクラウド中継システム。
【請求項２】
上記現用中継サーバに障害が発生した場合、上記第１の端末および上記第２の端末のうちリクエスト送信元の端末から、リクエスト送信先の端末が既に接続されている上記他の中継サーバを探索し、探索した上記他の中継サーバを上記代替中継サーバとして、上記第１の端末と上記代替中継サーバとの間の通信および上記第２の端末と上記代替中継サーバとの間の通信を中継することにより、上記端末間のデータ通信を行うようにしたことを特徴とする請求項１に記載のクラウド中継システム。
【請求項３】
上記複数の中継サーバはそれぞれ、自分がどの端末と接続状態にあるのかを示す接続情報を記憶する接続情報記憶部を備え、
上記リクエスト送信元の端末から上記リクエスト送信先の端末に宛てたリクエストが上記他の中継サーバに送信された場合、当該リクエストを受信した上記他の中継サーバが上記接続情報記憶部に記憶されている上記接続情報を参照して、上記リクエスト送信先の端末にも接続されていることが確認された場合に、当該リクエストを受信した上記他の中継サーバを上記代替中継サーバとして、上記端末間のデータ通信を行うことを特徴とする請求項２に記載のクラウド中継システム。
【請求項４】
上記複数の中継サーバと上記複数の端末との接続状況を示す接続情報を記憶する接続情報記憶部を備え、
上記現用中継サーバに障害が発生した後、上記第１の端末および上記第２の端末のうちリクエスト送信元の端末から、リクエスト送信先の端末に宛てたリクエストが何れかの中継サーバに送信された場合において、当該リクエストを受信した中継サーバが上記リクエスト送信先の端末と未接続の場合、当該リクエストを受信した中継サーバは、上記接続情報記憶部に記憶されている上記接続情報を参照して、上記リクエスト送信先の端末が既に接続されている上記他の中継サーバを探索し、探索した上記他の中継サーバを上記リクエスト送信元の端末に通知することにより、当該通知した上記他の中継サーバを上記代替中継サーバとして、上記第１の端末と上記代替中継サーバとの間の通信および上記第２の端末と上記代替中継サーバとの間の通信を中継することにより、上記端末間のデータ通信を行うようにしたことを特徴とする請求項１に記載のクラウド中継システム。
【請求項５】
複数の中継サーバのうち何れかが端末間のデータ通信を中継するようになされたクラウド中継システムに用いられる上記中継サーバであって、
複数の端末の中のｉ個（ｉ≧１）の端末から成された接続要求を受け付けて上記ｉ個の端末との間にそれぞれ通信を接続する接続処理部と、
上記ｉ個の端末のうち第１の端末との間に接続された通信および上記ｉ個の端末のうち第２の端末との間に接続された通信を中継することにより、上記第１の端末と上記第２の端末との間のデータ通信を行う中継処理部とを備え、
上記中継処理部は、他の中継サーバに障害が発生した場合において、当該他の中継サーバと接続されていた端末の１つが上記ｉ個の端末の中に含まれているとき、上記他の中継サーバにより行われていた端末間の通信を更に中継することを特徴とする中継サーバ。
【請求項６】
自分がどの端末と接続状態にあるのかを示す接続情報を記憶する接続情報記憶部を更に備え、
上記中継処理部は、上記他の中継サーバに障害が発生した後、上記他の中継サーバと接続されていた端末のうちリクエスト送信元の端末から、リクエスト送信先の端末に宛てたリクエストを受信した場合、上記接続情報記憶部に記憶されている上記接続情報を参照して、上記リクエスト送信先の端末にも接続されていることが確認された場合に、上記端末間の通信を更に中継することを特徴とする請求項５に記載の中継サーバ。
【請求項７】
上記複数の中継サーバと上記複数の端末との接続状況を示す接続情報を記憶する接続情報記憶部を更に備え、
上記中継処理部は、上記他の中継サーバに障害が発生した後、上記他の中継サーバと接続されていた端末のうちリクエスト送信元の端末から、リクエスト送信先の端末に宛てたリクエストを受信した場合において、当該リクエスト送信先の端末と未接続の場合は、上記接続情報記憶部に記憶されている上記接続情報を参照して、上記リクエスト送信先の端末が既に接続されている更に別の中継サーバを探索し、探索した上記更に別の中継サーバを上記リクエスト送信元の端末に通知することを特徴とする請求項５に記載の中継サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウド中継システムおよび中継サーバに関し、特に、中継サーバが端末間のデータ通信を中継するシステムに用いて好適なものである。
【背景技術】
【０００２】
近年では、オンプレミスだったかつての情報システムに代わり、クラウドコンピューティングの運用形態が広く用いられるようになってきている。クラウドコンピューティングによれば、インターネットに接続されたサーバファームなど、外部のリソースをオンデマンドで活用することが可能となる。
【０００３】
クラウドコンピューティングの多くの形態は、クライアント端末からインターネットを介してサーバにアクセスし、当該サーバが提供するサービスをクライアント端末で受けるといったものである。これに対し、インターネットを介して端末間を接続して通信するようにした形態もある。後者の形態によれば、ある端末に記憶されているデータを別の端末からのリクエストに応じて処理することが可能である。例えば、社外端末からサーバに与えられるリクエストに応じて、サーバが社内端末からデータを取得して処理し、そのデータ処理の結果をリクエスト元の社外端末に提供することが可能である。
【０００４】
この種のシステムにおいて、リクエストを出してからデータ処理の結果を得るまでのレスポンス時間を短縮化できるようにしたシステムも知られている（例えば、特許文献１参照）。この特許文献１に記載のデータ処理システムでは、サーバが端末からデータ処理に関するリクエストを受信した場合、リクエストに応じたデータ処理を実行するために必要な元データを別の端末からサーバに送信することに代えて、別の端末にリクエストを送信してデータ処理を実行させ、当該別の端末において実行されたデータ処理の結果をサーバが受信してリクエスト元の端末に提供するようにしている。これにより、別の端末からサーバに送信するデータ量を少なくし、データ送信にかかる時間を短縮できるようにしている。
【０００５】
さらに、端末間を接続して通信する形態の一例として、ファイアウォールを超えて、インターネットからローカルシステム内のネットワーク装置への通信、あるいは異なるローカルシステム内のネットワーク装置間の通信を実現するとともに、それぞれのネットワーク機器と中継サーバとの接続が複数存在する場合でも、各接続を正常に識別可能にすることを目的とした通信システムが知られている（例えば、特許文献２参照）。
【０００６】
特許文献２に記載の通信システムでは、一のローカルシステム内の第１の端末が中継サーバにログインすると、そのときの第１の接続に対して一意の接続識別子を付与し、返送する。同様に、別のローカルシステム内の第２の端末が中継サーバにログインすると、そのときの第２の接続に対して一意の接続識別子を付与し、返送する。第１の端末と第２の端末との通信は、中継サーバと第１の端末との間の接続識別子が付与された第１の接続を用いた通信と、中継サーバと第２の端末との間の接続識別子が付与された第２の接続を用いた通信を、中継サーバにおいてそれぞれ中継することによって実現する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−９１３１４号公報
【特許文献２】特開２００２−３００２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１，２の何れにおいても、端末間の通信を中継するサーバに障害が発生して稼動できなくなると、端末間の通信が継続できなくなってしまうという問題がある。この問題を回避するために、サーバを冗長化させておくことが一般的である。冗長化とは、サーバに何らかの障害が発生した場合に備えて、障害発生後でもシステム全体の機能を維持し続けられるように、予備のサーバを平常時からバックアップとして配置し運用しておくことをいう。
【０００９】
一般に、サーバを冗長化させたシステムを構築して運用するためには、通常の現用系サーバの他に、バックアップのための待機系サーバを備え、現用系サーバと待機系サーバとで情報を共有しておく必要がある。しかしながら、この場合、端末からのリクエストに応じた処理が現用系サーバに集中して負荷が重くなる一方で、待機系サーバのリソースを有効活用できていないという問題があった。また、現用系サーバと待機系サーバとで情報を共有するために、現用系サーバに保存されている情報を待機系サーバに常時コピーして保存させるための処理が必要となり、その処理負荷も更にかかるという問題があった。
【００１０】
本発明は、このような問題を解決するために成されたものであり、冗長化させた各サーバのリソースを有効活用して負荷分散をしつつ、サーバ間で情報を共有することを必要とせずに、中継に使用していたサーバに障害が発生しても端末間の通信を継続できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
上記した課題を解決するために、本発明のクラウド中継システムは、複数の中継サーバと複数の端末とを備え、第１の端末からｍ個（ｍ≧２）の中継サーバに接続するとともに、第２の端末からｎ個（ｎ≧２）の中継サーバに接続し、第１の端末および第２の端末に対して共通に接続された中継サーバの１つを現用中継サーバとして、第１の端末と現用中継サーバとの間の通信および第２の端末と現用中継サーバとの間の通信を中継することにより、端末間のデータ通信を行う。そして、現用中継サーバに障害が発生した場合には、第１の端末および第２の端末において、これらに共通に接続された他の中継サーバを探索して代替中継サーバとし、第１の端末と代替中継サーバとの間の通信および第２の端末と代替中継サーバとの間の通信を中継することにより、端末間のデータ通信を行うようにしている。
【発明の効果】
【００１２】
上記のように構成した本発明によれば、冗長化させた複数の中継サーバの中から任意に選択された中継サーバを介して端末間のデータ通信が行われるので、複数の組み合わせで端末間のデータ通信が行われるときも、複数の中継サーバがそれらデータ通信の現用中継サーバとして稼動することになる。これにより、１つの中継サーバだけに負荷が集中することはなく、各中継サーバのリソースを有効活用して負荷分散をすることが可能となる。また、現用中継サーバに障害が発生した場合には、他の中継サーバを代替中継サーバとして使用する調整が端末側で行われるので、中継サーバ間で情報を共有することを必要とせずに、データ通信の中継に使用していた中継サーバに障害が発生しても、端末間のデータ通信を継続することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態によるクラウド中継システムの構成例を示す図である。
【図２】中継サーバを介して行われる端末間のデータ通信における接続関係の一例を示す図である。
【図３】第１の実施形態による中継サーバの機能構成例を示す図である。
【図４】第２の実施形態によるクラウド中継システムの構成例を示す図である。
【図５】第２の実施形態によるクラウド中継システムの他の構成例を示す図である。
【発明を実施するための形態】
【００１４】
（第１の実施形態）
以下、本発明の一実施形態を図面に基づいて説明する。図１は、第１の実施形態によるクラウド中継システムの構成例を示す図である。第１の実施形態によるクラウド中継システムは、第１の拠点１００にある複数の端末ＣＬ１１，ＣＬ１２，・・・の何れかと、第２の拠点２００にある複数の端末ＣＬ２１，ＣＬ２２，・・・の何れかとの間のデータ通信を中継サーバ３００が中継するシステムである。第１の拠点１００と第２の拠点２００と中継サーバ３００との間は、インターネット等の通信ネットワーク５００で接続されている。
【００１５】
第１の拠点１００には、ファイアウォールＦＷ１が設置されており、外部から端末ＣＬ１１，ＣＬ１２への接続を阻止するようになされている。すなわち、第２の拠点２００内の端末ＣＬ２１，ＣＬ２２から接続要求があった場合、ファイアウォールＦＷ１によって拒否される。ただし、第１の拠点１００の内部にある端末ＣＬ１１，ＣＬ１２から外部の中継サーバ３００に対する接続要求はファイアウォールＦＷ１を通過する。そして、いったん端末ＣＬ１１，ＣＬ１２と中継サーバ３００との間で接続が確立すれば、端末ＣＬ１１，ＣＬ１２と中継サーバ３００との間で相互にデータ通信を行うことが可能である。
【００１６】
第２の拠点２００も同様に、ファイアウォールＦＷ２が設置されており、外部から端末ＣＬ２１，ＣＬ２２への接続を阻止するようになされている。すなわち、第１の拠点１００内の端末ＣＬ１１，ＣＬ１２から接続要求があった場合、ファイアウォールＦＷ２によって拒否される。ただし、第２の拠点２００の内部にある端末ＣＬ２１，ＣＬ２２から外部の中継サーバ３００に対する接続要求はファイアウォールＦＷ２を通過する。そして、いったん端末ＣＬ２１，ＣＬ２２と中継サーバ３００との間で接続が確立すれば、端末ＣＬ２１，ＣＬ２２と中継サーバ３００との間で相互にデータ通信を行うことが可能である。
【００１７】
すなわち、第１の実施形態によるクラウド中継システムでは、第１の拠点１００内の端末ＣＬ１１，ＣＬ１２と中継サーバ３００との間のデータ通信と、第２の拠点２００内の端末ＣＬ２１，ＣＬ２２と中継サーバ３００との間のデータ通信とを中継サーバ３００が中継することにより、第１の拠点１００内の端末ＣＬ１１，ＣＬ１２と第２の拠点２００内の端末ＣＬ２１，ＣＬ２２との間でデータ通信を行うことを可能としている。
【００１８】
第１の実施形態では、複数の中継サーバＲＳ１〜ＲＳ４を備えている。これら複数の中継サーバＲＳ１〜ＲＳ４は互いに独立しており、何れも現用中継サーバとなる。すなわち、どれか１つのみが現用系サーバで、残りが待機系サーバとして使われるわけではなく、中継サーバＲＳ１〜ＲＳ４の何れもが、端末ＣＬ１１，ＣＬ１２，ＣＬ２１，ＣＬ２２に対して現用中継サーバとなり得る。また、複数の中継サーバＲＳ１〜ＲＳ４は、互いの情報を共有することは行っていない。すなわち、中継サーバＲＳ１〜ＲＳ４は何れも、自分の保持している情報を他のサーバに常時コピーして保存させるための処理は行っていない。
【００１９】
第１の実施形態では、第１の拠点１００内にある複数の端末ＣＬ１１，ＣＬ１２，・・・の中の第１の端末から、複数の中継サーバＲＳ１〜ＲＳ４の中のｍ個（ｍ≧２）の中継サーバに接続する。また、第２の拠点１００内にある複数の端末ＣＬ２１，ＣＬ２２，・・・の中の第２の端末から、複数の中継サーバＲＳ１〜ＲＳ４の中のｎ個（ｎ≧２）の中継サーバに接続する。
【００２０】
このように、第１の端末と中継サーバとの間を１：１で接続するのではなく１：ｍ（ｍ≧２）で接続するとともに、第２の端末と中継サーバとの間を１：１で接続するのではなく１：ｎ（ｎ≧２）で接続するのが、本実施形態の特徴の１つである。なお、ｍ＝ｎであってもよいし、ｍ≠ｎであってもよい。中継サーバＲＳ１〜ＲＳ４はそれぞれ、自分がどの端末と接続しているかを示す接続情報を記憶しておく。
【００２１】
第１の端末が複数の中継サーバＲＳ１〜ＲＳ４の中のどれと接続するかは、中継サーバ３００において任意に決定する。すなわち、第１の端末から中継サーバ３００に対して接続要求があったときに、中継サーバ３００が複数の中継サーバＲＳ１〜ＲＳ４の中から何れかを任意に選択して接続する。例えば、中継サーバ３００がロードバランサ（図示せず）を備え、接続要求があった時点で負荷の小さい中継サーバを選択して接続するようにすることが可能である。あるいは、ランダムに何れかの中継サーバを選択するようにしてもよい。第２の端末から接続要求があったときも同様である。
【００２２】
中継サーバ３００では、複数の中継サーバＲＳ１〜ＲＳ４のうち、第１の拠点１００内の第１の端末および第２の拠点２００内の第２の端末に対して共通に接続された中継サーバの１つを現用中継サーバとして、第１の端末と現用中継サーバとの間の通信および第２の端末と現用中継サーバとの間の通信を中継することにより、端末間のデータ通信を行う。
【００２３】
図２は、中継サーバ３００を介して行われる端末間のデータ通信における接続関係の一例を示す図である。図２（ａ）は、第１の端末が第１の拠点１００内の端末ＣＬ１１、第２の端末が第２の拠点２００内の端末ＣＬ２１であると仮定した場合に行われるデータ通信の接続関係を示す図である。また、図２（ｂ）は、第１の端末が第１の拠点１００内の端末ＣＬ１２、第２の端末が第２の拠点２００内の端末ＣＬ２２であると仮定した場合に行われるデータ通信の接続関係を示す図である。
【００２４】
図２（ａ）の例では、第１の端末ＣＬ１１は、２つの中継サーバＲＳ２，ＲＳ３に接続している。また、第２の端末ＣＬ２１は、３つの中継サーバＲＳ１〜ＲＳ３に接続している。この場合、複数の中継サーバＲＳ１〜ＲＳ４のうち、第１の端末ＣＬ１１および第２の端末ＣＬ２１に対して共通に接続された中継サーバは、ＲＳ２，ＲＳ３の２つである。この場合、中継サーバＲＳ２，ＲＳ３の何れか一方（例えば、ＲＳ２）を現用中継サーバとして、第１の端末ＣＬ１１と現用中継サーバＲＳ２との間の通信および第２の端末ＣＬ２１と現用中継サーバＲＳ２との間の通信を中継することにより、端末ＣＬ１１，ＣＬ２１間のデータ通信を行う。
【００２５】
ここで、共通に接続された中継サーバが複数ある場合、その中継サーバＲＳ２，ＲＳ３の中から何れを現用中継サーバとして用いるかは、中継サーバ３００において任意に決定する。例えば、中継サーバ３００がロードバランサ（図示せず）を備え、負荷の小さい中継サーバを選択して現用中継サーバとして決定することが可能である。あるいは、ランダムに何れかの中継サーバを選択するようにしてもよい。
【００２６】
図２（ｂ）の例では、第１の端末ＣＬ１２は、２つの中継サーバＲＳ１，ＲＳ３に接続している。また、第２の端末ＣＬ２２は、２つの中継サーバＲＳ３，ＲＳ４に接続している。この場合、複数の中継サーバＲＳ１〜ＲＳ４のうち、第１の端末ＣＬ１２および第２の端末ＣＬ２２に対して共通に接続された中継サーバは、ＲＳ３のみである。この場合は、中継サーバＲＳ３を現用中継サーバとして、第１の端末ＣＬ１２と現用中継サーバＲＳ３との間の通信および第２の端末ＣＬ２２と現用中継サーバＲＳ３との間の通信を中継することにより、端末ＣＬ１２，ＣＬ２２間のデータ通信を行う。
【００２７】
データ通信の一例として、一方の端末から他方の端末に対してデータ処理のリクエストを送信し、他方の端末がその内部に保持するデータに対してリクエストに応じた処理を実行し、実行結果のデータをリクエスト元である一方の端末に返すといったことも実行可能である。第１の実施形態によれば、第１の拠点１００と第２の拠点２００との間にＶＰＮ（Virtual Private Network）を構築したり専用線を引いたりしなくても、一方の端末から他方の端末をリモート制御して、他方の端末から必要なデータを一方の端末で入手することが可能である。
【００２８】
以上のように、第１の実施形態では、データ通信を行う２つの端末の組み合わせに応じて現用中継サーバが変わる。すなわち、図２（ａ）のように端末ＣＬ１１，ＣＬ２１間でデータ通信を行う場合は中継サーバＲＳ２が現用中継サーバとなり、図２（ｂ）のように端末ＣＬ１２，ＣＬ２２間でデータ通信を行う場合は中継サーバＲＳ３が現用中継サーバとなる。すなわち、複数の中継サーバＲＳ１〜ＲＳ４は何れも、同時に現用中継サーバとして動作し得る。
【００２９】
以上のようにして決定された現用中継サーバに障害が発生した場合は、第１の端末および第２の端末において、これらに共通に接続された他の中継サーバを探索して代替中継サーバとし、第１の端末と代替中継サーバとの間の通信および第２の端末と代替中継サーバとの間の通信を中継することにより、端末間のデータ通信を行う。
【００３０】
例えば、図２（ａ）の例において、端末ＣＬ１１，ＣＬ２１間のデータ通信に関して現用中継サーバとして動作中の中継サーバＲＳ２に障害が発生したとする。中継サーバＲＳ２に障害が発生すると、第１の端末ＣＬ１１から中継サーバＲＳ２に送信したアクションに対してレスポンスが返らなくなるので、中継サーバＲＳ２に何らかの障害が発生していることを第１の端末ＣＬ１１にて検知することが可能である。同様に、中継サーバＲＳ２に何らかの障害が発生していることを第２の端末ＣＬ２１においても検知することが可能である。
【００３１】
この場合、第１の端末ＣＬ１１および第２の端末ＣＬ２１において、これらに共通に接続された他の中継サーバＲＳ３を探索して代替中継サーバとする。具体的には、第１の端末ＣＬ１１および第２の端末ＣＬ２１うちリクエスト送信元の端末から、自分が既に接続している中継サーバに対して優先的にリクエストを送信することにより、リクエスト送信先の端末が既に接続されている他の中継サーバを探索し、探索した他の中継サーバを代替中継サーバとして決定する。
【００３２】
例えば、第１の端末ＣＬ１１がリクエスト送信元の端末で、第２の端末ＣＬ２１がリクエスト送信先の端末であるとする。この場合、リクエスト送信元の第１の端末ＣＬ１１は、障害が発生した中継サーバＲＳ２のほかに自分が接続している他の中継サーバＲＳ３に対し、第２の端末ＣＬ２１に宛てたデータ通信のリクエストを送信する。この場合、中継サーバＲＳ３は、第２の端末ＣＬ２１に接続されていることを接続情報として記憶しているから、リクエストを受け付ける。これにより、リクエスト送信元の第１の端末ＣＬ１１は、リクエスト送信先である第２の端末ＣＬ２１が既に接続されている他の中継サーバＲＳ３を見つけることができる。
【００３３】
中継サーバ３００では、このようにして探索された他の中継サーバＲＳ３を代替中継サーバとして決定し、第１の端末ＣＬ１１と代替中継サーバＲＳ３との間の通信および第２の端末ＣＬ２１と代替中継サーバＲＳ３との間の通信を中継することにより、端末ＣＬ１１，ＣＬ２１間のデータ通信を行う。これにより、現用中継サーバとして動作中であった中継サーバＲＳ２に障害が発生した場合でも、他の中継サーバＲＳ３を代替中継サーバとして、端末ＣＬ１１，ＣＬ２１間のデータ通信を継続して行うことができる。
【００３４】
なお、第２の端末ＣＬ２１がリクエスト送信元の端末で、第１の端末ＣＬ１１がリクエスト送信先の端末であるとする。この場合、リクエスト送信元の第２の端末ＣＬ２１は、障害が発生した中継サーバＲＳ２のほかに自分が接続している他の中継サーバＲＳ１に対し、第１の端末ＣＬ１１に宛てたデータ通信のリクエストを送信する。この場合、中継サーバＲＳ１は、第１の端末ＣＬ１１に接続されていることを接続情報として記憶していないから、リクエストを拒否し、第２の端末ＣＬ２１に通知する。
【００３５】
リクエスト拒否の通知を受けた第２の端末ＣＬ２１は、自分が接続しているもう１つの中継サーバＲＳ３に対し、第１の端末ＣＬ１１に宛てたデータ通信のリクエストを送信する。この場合、中継サーバＲＳ３は、第１の端末ＣＬ１１に接続されていることを接続情報として記憶しているから、リクエストを受け付ける。これにより、リクエスト送信元の第２の端末ＣＬ２１は、リクエスト送信先である第１の端末ＣＬ１１が既に接続されている他の中継サーバＲＳ３を見つけることができる。
【００３６】
また、図２（ｂ）の例において、端末ＣＬ１２，ＣＬ２２間のデータ通信に関して現用中継サーバとして動作中の中継サーバＲＳ３に障害が発生したとする。この場合、第１の端末ＣＬ１２および第２の端末ＣＬ２２において、これらに共通に接続された他の中継サーバを探索するが、見つからない。すなわち、第１の端末ＣＬ１２がリクエスト送信元の端末となる場合は、自分が接続している他の中継サーバＲＳ１からリクエスト拒否の通知を受ける。また、第２の端末ＣＬ２２がリクエスト送信元の端末となる場合は、自分が接続している他の中継サーバＲＳ４からリクエスト拒否の通知を受ける。
【００３７】
この場合は、リクエスト送信元の端末から中継サーバ３００に対して追加の接続を実行する。例えば、第１の端末ＣＬ１２がリクエスト送信元の端末で、自分が接続している他の中継サーバＲＳ１からリクエスト拒否の通知を受けた場合、第１の端末ＣＬ１２は、他の中継サーバＲＳ２，ＲＳ４のうち何れか一方または両方に対して接続要求を行い、接続する。ここで、第１の端末ＣＬ１２と中継サーバＲＳ４との間が接続されると、第１の端末ＣＬ１２から第２の端末ＣＬ２２に宛てたリクエストが受け付けられるようになる。よって、この中継サーバＲＳ４を代替中継サーバとして、端末ＣＬ１２，ＣＬ２２間のデータ通信を継続して行うことが可能となる。
【００３８】
図３は、以上のようなデータ通信を可能とするための中継サーバＲＳ１〜ＲＳ４の機能構成例を示す図である。複数の中継サーバＲＳ１〜ＲＳ４は何れも、図３に示す機能構成を有している。図３に示すように、第１の実施形態による中継サーバＲＳ１〜ＲＳ４は、その機能構成として、接続処理部３１および中継処理部３２を備えている。また、中継サーバＲＳ１〜ＲＳ４は、記憶媒体として、接続情報記憶部３３を備えている。
【００３９】
上記各機能ブロック３１，３２は、ハードウェア、ＤＳＰ（Digital Signal Processor）、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック３１，３２は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【００４０】
接続処理部３１は、複数の端末（第１の拠点１００内の端末ＣＬ１１，ＣＬ１２，・・・および第２の拠点２００内の端末ＣＬ２１，ＣＬ２２，・・・）の中のｉ個（ｉ≧１）の端末から成された接続要求を受け付けて、ｉ個の端末との間にそれぞれ通信を接続する。例えば、図２（ａ）の場合、中継サーバＲＳ２の接続処理部３１は、第１の拠点１００内の端末ＣＬ１１および第２の拠点２００内の端末ＣＬ２１から成された接続要求を受け付けて、これら２個の端末ＣＬ１１，ＣＬ２１との間にそれぞれ通信を接続する。
【００４１】
接続情報記憶部３３は、接続処理部３１により接続された端末の情報を記憶する。すなわち、接続情報記憶部３３は、どの端末と接続状態にあるのかを示す接続情報を記憶する。図２（ａ）に示す例の場合、中継サーバＲＳ２の接続情報記憶部３３は、第１の拠点１００内の端末ＣＬ１１および第２の拠点２００内の端末ＣＬ２１と接続状態にあることを示す接続情報を記憶する。
【００４２】
中継処理部３２は、接続処理部３１により接続されたｉ個の端末のうち第１の端末との間に接続された通信と、ｉ個の端末のうち第２の端末との間に接続された通信とを中継することにより、第１の端末と第２の端末との間のデータ通信を行う。図２（ａ）に示す例の場合、中継サーバＲＳ２の中継処理部３２は、第１の拠点１００内の第１の端末ＣＬ１１との間に接続された通信と、第２の拠点２００内の第２の端末ＣＬ２１との間に接続された通信とを中継することにより、第１の端末ＣＬ１１と第２の端末ＣＬ２１との間のデータ通信を行う。
【００４３】
また、中継処理部３２は、他の中継サーバに障害が発生した場合において、当該他の中継サーバと接続されていた端末の１つがｉ個の端末の中に含まれているとき、他の中継サーバにより行われていた端末間の通信を更に中継する。図２（ａ）に示す例の場合、中継サーバＲＳ３の中継処理部３２は、他の中継サーバＲＳ２に障害が発生した場合において、当該他の中継サーバＲＳ２と接続されていた端末ＣＬ１１，ＣＬ２１の両方が、中継サーバＲＳ３に接続されているｉ個の端末ＣＬ１１，ＣＬ２１の中に含まれている。よって、この場合に中継サーバＲＳ３の中継処理部３２は、他の中継サーバＲＳ２により行われていた端末ＣＬ１１，ＣＬ２１間の通信を引き継いで中継する。
【００４４】
また、図２（ｂ）に示す例の場合、例えば、中継サーバＲＳ４の中継処理部３２は、他の中継サーバＲＳ３に障害が発生した場合において、当該他の中継サーバＲＳ３と接続されていた端末ＣＬ１２，ＣＬ２２の１つ（端末ＣＬ２２）が、中継サーバＲＳ３に接続されているｉ個の端末ＣＬ２１の中に含まれている。よって、この場合に中継サーバＲＳ４の中継処理部３２は、第１の端末ＣＬ１２から中継サーバＲＳ４に対する追加接続を受け付けた後、他の中継サーバＲＳ３により行われていた端末ＣＬ２１，ＣＬ２２間の通信を引き継いで中継する。
【００４５】
以上詳しく説明したように、第１の実施形態によれば、冗長化させた複数の中継サーバＲＳ１〜ＲＳ４の中から任意に選択された中継サーバを介して端末間のデータ通信が行われるので、図２（ａ）や図２（ｂ）のように複数の組み合わせで端末間のデータ通信が行われるときも、複数の中継サーバＲＳ２，ＲＳ３がそれらデータ通信の現用中継サーバとして稼動することになる。図２（ａ）および図２（ｂ）以外の組み合わせで端末間のデータ通信が行われる場合は、他の中継サーバＲＳ１，ＲＳ４も現用中継サーバとして稼動することがある。
【００４６】
これにより、１つの中継サーバだけに負荷が集中することはなく、各中継サーバＲＳ１〜ＲＳ４のリソースを有効活用して負荷分散をすることが可能となる。また、現用中継サーバに障害が発生した場合には、他の中継サーバを代替中継サーバとして使用する調整が端末側で行われるので、中継サーバＲＳ１〜ＲＳ４間で接続情報等を共有することを必要とせずに、データ通信の中継に使用していた中継サーバに障害が発生しても、端末間のデータ通信を継続することができる。また、中継サーバＲＳ１〜ＲＳ４間で情報をコピーして共有する処理が不要であるため、必要に応じて中継サーバを増築することも容易に行うことができる。
【００４７】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。図４は、第２の実施形態によるクラウド中継システムの構成例を示す図である。なお、この図４において、図１に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【００４８】
第２の実施形態では、第１の拠点１００用の中継サーバ３００-1と、第２の拠点２００用の中継サーバ３００-2とを備えている。第１の拠点１００用の中継サーバ３００-1には、複数の中継サーバＲＳ１〜ＲＳ４のうち一部の中継サーバＲＳ１，ＲＳ２が含まれている。第２の拠点２００用の中継サーバ３００-2には、他の一部の中継サーバＲＳ３，ＲＳ４が含まれている。
【００４９】
第２の実施形態において、第１の拠点１００内の端末ＣＬ１１，ＣＬ１２は、第１の拠点１００用の中継サーバＲＳ１，ＲＳ２の中の少なくとも１つと、第２の拠点２００用の中継サーバＲＳ３，ＲＳ４の中の少なくとも１つと接続する。第２の拠点２００内の端末ＣＬ２１，ＣＬ２２も同様に、第１の拠点１００用の中継サーバＲＳ１，ＲＳ２の中の少なくとも１つと、第２の拠点２００用の中継サーバＲＳ３，ＲＳ４の中の少なくとも１つと接続する。
【００５０】
また、第２の実施形態では、端末ＣＬ１１，ＣＬ１２，ＣＬ２１，ＣＬ２２と中継サーバＲＳ１〜ＲＳ４との接続関係を示す接続情報を、第１の拠点１００用の中継サーバ３００-1と第２の拠点２００用の中継サーバ３００-2との両方から共通にアクセス可能な接続情報記憶部３３’に記憶する。すなわち、第２の実施形態では、図３に示した接続情報記憶部３３に代えて接続情報記憶部３３’を備える。
【００５１】
図４のように構成した場合、中継サーバ３００-1，３００-２（中継サーバＲＳ１〜ＲＳ４の１つ１つ）に対して、データ通信の中継機能を持たせるだけでなく、端末ＣＬ１１，ＣＬ１２，ＣＬ２１，ＣＬ２２からのリクエストに応じて所望のデータ処理を行うための機能を持たせるようにすることが可能である。
【００５２】
例えば、中継サーバＲＳ１〜ＲＳ４に対し、業務システムなどから蓄積される企業内のデータを分析するＢＩ（Business Intelligence）ツールの機能を持たせることが可能である。具体的には、中継サーバＲＳ１〜ＲＳ４は、ＢＩツールの一形態として、ダッシュボードと呼ばれるソフトウェアを実装する。ダッシュボードは、企業を取り巻く様々なデータを社内の端末ＣＬ１１，ＣＬ１２，ＣＬ２１，ＣＬ２２から取得し、集計演算をしたり、チャートやグラフなどに加工して表示したりすることを主な機能として持つ。
【００５３】
例えば、第１の拠点１００が企業の本社、第２の拠点２００が企業の工場であったとする。この場合、第１の拠点１００用の中継サーバＲＳ１，ＲＳ２は、本社の端末ＣＬ１１，ＣＬ１２に記憶されているデータを用いて、本社の業務に関するデータの分析処理等を行う。このデータ処理の結果は、本社の端末ＣＬ１１，ＣＬ１２に記憶される。また、第２の拠点２００用の中継サーバＲＳ３，ＲＳ４は、工場の端末ＣＬ２１，ＣＬ２２に記憶されているデータを用いて、工場の業務に関するデータの分析処理等を行う。このデータ処理の結果は、工場の端末ＣＬ２１，ＣＬ２２に記憶される。
【００５４】
この場合において、例えば本社において工場の分析データが必要になったときは、本社の端末ＣＬ１１，ＣＬ１２から工場の端末ＣＬ２１，ＣＬ２２をリモート制御して、工場の端末ＣＬ２１，ＣＬ２２のデータを用いて中継サーバ３００-2（中継サーバＲＳ３，ＲＳ４の何れか）において分析した結果を、工場の端末ＣＬ２１，ＣＬ２２から中継サーバ３００-2を介して本社の端末ＣＬ１１，ＣＬ１２にて入手することが可能である。なお、本社の端末ＣＬ１１，ＣＬ１２から中継サーバ３００-2をリモート制御して、中継サーバ３００-2からの指令により工場の端末ＣＬ２１，ＣＬ２２にデータ処理を実行させ、その実行結果を工場の端末ＣＬ２１，ＣＬ２２から中継サーバ３００-2を介して入手するようにすることも可能である。
【００５５】
第２の実施形態において、現用中継サーバに障害が発生した場合の処理は、第１の実施形態と同様とすることが可能である。すなわち、現用中継サーバに障害が発生した場合は、第１の端末および第２の端末において、リクエスト送信元の端末からリクエストを送信して、リクエスト送信先の端末と共通に接続されている他の中継サーバを探索して代替中継サーバとし、第１の端末と代替中継サーバとの間の通信および第２の端末と代替中継サーバとの間の通信を中継することにより、端末間のデータ通信を行う。
【００５６】
この場合、リクエスト送信元の端末からリクエストを送信した中継サーバがリクエスト送信先の端末と接続されていないときは、中継サーバを変えてリクエストを送り直し、リクエスト送信先の端末と接続されている中継サーバが見つかるまでこの処理を繰り返す必要がある。これに対し、第２の実施形態では、複数の中継サーバＲＳ１〜ＲＳ４から共通にアクセス可能な接続情報記憶部３３’を備えているので、これを利用して、リクエスト送信元の端末とリクエスト送信先の端末とに共通に接続されている中継サーバを、中継サーバ側から端末側に通知するようにしてもよい。
【００５７】
すなわち、現用中継サーバに障害が発生した後、リクエスト送信元の端末から、リクエスト送信先の端末に宛てたリクエストが何れかの中継サーバに送信された場合において、当該リクエストを受信した中継サーバがリクエスト送信先の端末と未接続の場合、当該リクエストを受信した中継サーバは、接続情報記憶部３３’に記憶されている接続情報を参照して、リクエスト送信先の端末が既に接続されている他の中継サーバを探索し、探索した他の中継サーバをリクエスト送信元の端末に通知する。
【００５８】
例えば、図２（ａ）のような接続関係がある状態において、第１の端末ＣＬ１１と第２の端末ＣＬ２１とのデータ通信を中継していた現用中継サーバＲＳ２に障害が発生した後、第２の端末ＣＬ２１から他の中継サーバＲＳ１に対し、第１の端末ＣＬ１１宛てのリクエストが送信されたとする。この場合、中継サーバＲＳ１は、第１の端末ＣＬ１１に接続されていることを接続情報として記憶していない。この場合、上述した第１の実施形態では、リクエスト拒否の通知を第２の端末ＣＬ２１に通知していた。
【００５９】
これに対し、第２の実施形態では、第１の端末ＣＬ１１宛てのリクエストを受信した中継サーバＲＳ１は、接続情報記憶部３３’に記憶されている接続情報を参照して、リクエスト送信先の第１の端末ＣＬ１１が既に接続されている他の中継サーバＲＳ３を探索し、探索した他の中継サーバＲＳ３をリクエスト送信元の第２の端末ＣＬ２１に通知する。この場合、当該通知した他の中継サーバＲＳ３を代替中継サーバとして、第１の端末ＣＬ１１と代替中継サーバＲＳ３との間の通信および第２の端末ＣＬ２１と代替中継サーバＲＳ３との間の通信を中継することにより、端末ＣＬ１１，ＣＬ２１間のデータ通信を行う。
【００６０】
このようにすれば、第１の端末ＣＬ１１および第２の端末ＣＬ２１に共通に接続されている他の中継サーバＲＳ３を効率的に探索して代替中継サーバとして決定することができ、中継サーバの切り替えをよりスムーズに行うことが可能となる。
【００６１】
なお、上記第２の実施形態では、中継サーバＲＳ１〜ＲＳ４にＢＩツール等のデータ処理機能を持たせる例について説明したが、本発明はこれに限定されない。例えば、図５に示すように、ＢＩツール等のデータ処理を行うためのサーバ４００-1，４００-２を中継サーバ３００-1，３００-２とは別に設けるようにしてもよい。この場合、データ処理サーバ４００-1，４００-２についても冗長化構成を採るようにしてもよい。
【００６２】
また、上記第１および第２の実施形態では、拠点が２つの例を示したが、拠点が３つ以上ある場合にも同様に適用することが可能である。
【００６３】
その他、上記第１および第２の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６４】
３１  接続処理部
３２  中継処理部
３３，３３’  接続情報記憶部
１００  第１の拠点
２００  第２の拠点
３００  中継サーバ
４００  データ処理サーバ
ＣＬ１１，ＣＬ１２，ＣＬ２１，ＣＬ２２  端末
ＲＳ１〜ＲＳ４  中継サーバ
【図１】
2018136647.tif 000003
【図２】
2018136647.tif 000004
【図３】
2018136647.tif 000005
【図４】
2018136647.tif 000006
【図５】
2018136647.tif 000007