(57)【要約】【課題】２つのロードバランサを状況に応じて適切な切り替えることが望ましい。【解決手段】第１ロードバランサと通信接続を確立する通信接続確立部と、第１ロードバランサが動作不能になったと判定した場合に、通信接続先を第１ロードバランサから第２ロードバランサに切り替える接続切替部と、通信接続先が第１ロードバランサから第２ロードバランサに切り替えられた後、第１ロードバランサが動作可能になるまで第１ロードバランサを監視して、第１ロードバランサが動作可能になったときに、通信接続先を第２ロードバランサから第１ロードバランサに切り戻す接続切戻部とを備える通信制御装置を提供する。【選択図】図２
2017147534.tif 000002
【特許請求の範囲】
【請求項１】
第１ロードバランサと通信接続を確立する通信接続確立部と、
前記第１ロードバランサが動作不能になったと判定した場合に、通信接続先を前記第１ロードバランサから第２ロードバランサに切り替える接続切替部と、
通信接続先が前記第１ロードバランサから前記第２ロードバランサに切り替えられた後、前記第１ロードバランサが動作可能になるまで前記第１ロードバランサを監視して、前記第１ロードバランサが動作可能になったときに、通信接続先を前記第２ロードバランサから前記第１ロードバランサに切り戻す接続切戻部と
を備える通信制御装置。
【請求項２】
メールデータを受信するメールデータ受信部と、
前記第１ロードバランサと通信接続を確立している場合、前記メールデータを前記第１ロードバランサに送信し、前記第２ロードバランサと通信接続を確立している場合、前記メールデータを前記第２ロードバランサに送信するメールデータ送信部と
をさらに備える、請求項１に記載の通信制御装置。
【請求項３】
前記メールデータ受信部は、ＭＭＳメッセージを受信し、
前記メールデータ送信部は、前記メールデータ受信部が受信した前記ＭＭＳメッセージを、前記ＭＭＳメッセージの宛先のメールボックスに格納すべく、前記第１ロードバランサ又は前記第２ロードバランサに送信し、
前記第１ロードバランサは、前記メールデータ送信部から受信した前記ＭＭＳメッセージを、前記ＭＭＳメッセージを前記メールボックスに格納する複数のサーバのいずれかに送信し、
前記第２ロードバランサは、前記メールデータ送信部から受信した前記ＭＭＳメッセージを、前記複数のサーバのいずれかに送信する、請求項２に記載の通信制御装置。
【請求項４】
前記接続切戻部は、通信接続先が前記第１ロードバランサから前記第２ロードバランサに切り替えられた後、ＳＭＴＰの接続確立コマンドを前記第１ロードバランサに継続的に送信し、前記接続確立コマンドに対する正常応答を受信したことに応じて、通信接続先を前記第２ロードバランサから前記第１ロードバランサに切り戻す、請求項２又は３に記載の通信制御装置。
【請求項５】
前記通信制御装置はＭＭＳＣである、請求項１から４のいずれか一項に記載の通信制御装置。
【請求項６】
前記接続切戻部は、通信接続先が前記第１ロードバランサから前記第２ロードバランサに切り替えられた後、前記第１ロードバランサに対してネットワークの疎通を確認するコマンドを継続的に実行することによって前記第１ロードバランサを監視する、請求項１から３のいずれか一項に記載の通信制御装置。
【請求項７】
コンピュータを、請求項１から６のいずれか一項に記載の通信制御装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置及びプログラムに関する。
【背景技術】
【０００２】
ロードバランサを用いて処理を分散する技術が知られていた（例えば、特許文献１参照）。
［先行技術文献］
［特許文献］
［特許文献１］特開２００５−２７５５３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ロードバランサが動作不能になった場合に全体の処理が停止してしまうことを防止すべく、例えば、２つのロードバランサを並列に配置して動作させ、一方のロードバランサが動作不能になった場合に、他方のロードバランサに処理をさせる構成をとった場合に、状況に応じた適切な切り替えを実現できることが望ましい。
【課題を解決するための手段】
【０００４】
本発明の第１の態様によれば、第１ロードバランサと通信接続を確立する通信接続確立部と、第１ロードバランサが動作不能になったと判定した場合に、通信接続先を第１ロードバランサから第２ロードバランサに切り替える接続切替部と、通信接続先が第１ロードバランサから第２ロードバランサに切り替えられた後、第１ロードバランサが動作可能になるまで第１ロードバランサを監視して、第１ロードバランサが動作可能になったときに、通信接続先を第２ロードバランサから第１ロードバランサに切り戻す接続切戻部とを備える通信制御装置が提供される。
【０００５】
上記通信制御装置は、メールデータを受信するメールデータ受信部と、上記第１ロードバランサと通信接続を確立している場合、上記メールデータを上記第１ロードバランサに送信し、上記第２ロードバランサと通信接続を確立している場合、上記メールデータを上記第２ロードバランサに送信するメールデータ送信部とをさらに備えてよい。上記メールデータ受信部は、ＭＭＳメッセージを受信してよく、上記メールデータ送信部は、上記メールデータ受信部が受信した上記ＭＭＳメッセージを、上記ＭＭＳメッセージの宛先のメールボックスに格納すべく、上記第１ロードバランサ又は上記第２ロードバランサに送信してよく、上記第１ロードバランサは、上記メールデータ送信部から受信した上記ＭＭＳメッセージを、上記ＭＭＳメッセージを上記メールボックスに格納する複数のサーバのいずれかに送信してよく、上記第２ロードバランサは、上記メールデータ送信部から受信した上記ＭＭＳメッセージを、上記複数のサーバのいずれかに送信してよい。
【０００６】
上記接続切戻部は、通信接続先が上記第１ロードバランサから上記第２ロードバランサに切り替えられた後、ＳＭＴＰの接続確立コマンドを上記第１ロードバランサに継続的に送信し、上記接続確立コマンドに対する正常応答を受信したことに応じて、通信接続先を上記第２ロードバランサから上記第１ロードバランサに切り戻してよい。上記通信制御装置はＭＭＳＣであってよい。上記接続切戻部は、通信接続先が上記第１ロードバランサから上記第２ロードバランサに切り替えられた後、上記第１ロードバランサに対してネットワークの疎通を確認するコマンドを継続的に実行することによって上記第１ロードバランサを監視してよい。
【０００７】
本発明の第２の態様によれば、コンピュータを、上記通信制御装置として機能させるためのプログラムが提供される。
【０００８】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００９】
【図１】通信システム１０の一例を概略的に示す。
【図２】ＭＭＳＣ１００の機能構成の一例を概略的に示す。
【図３】ＭＭＳＣ１００による処理の流れの一例を概略的に示す。
【図４】ＭＭＳＣ１００による処理の流れの一例を概略的に示す。
【図５】ＭＭＳＣ１００として機能するコンピュータ１０００のハードウエア構成の一例を示す。
【発明を実施するための形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、通信システム１０の一例を概略的に示す。本実施形態に係る通信システム１０は、ネットワーク２０から受信したＭＭＳ（Ｍｕｌｔｉｍｅｄｉａ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ）メッセージを、宛先のユーザのメールボックスに格納する処理を実行する。また、通信システム１０は、メールボックスに格納したＭＭＳメッセージを宛先のユーザの通信端末に送信する処理を実行する。ネットワーク２０は、インターネット及び電話網を含んでよい。
【００１２】
通信システム１０は、ＭＭＳＣ（ＭＭＳ  Ｃｅｎｔｅｒ）１００、ＭＭＳＣ２００、ロードバランサ３００、ロードバランサ４００、サーバ群５００、サーバ群６００、ユーザ情報ＤＢ（Ｄａｔａｂａｓｅ）７００、メールボックスシステム８００、及びＳＭＳＣ（Ｓｈｏｒｔ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ  Ｃｅｎｔｅｒ）９００を有する。
【００１３】
ＭＭＳＣ１００は、ロードバランサ３００及びロードバランサ４００と接続されている。ＭＭＳＣ１００は、ロードバランサ３００及びロードバランサ４００の両方が動作可能である場合、ロードバランサ３００と通信接続を確立してよい。ＭＭＳＣ１００は、ネットワーク２０からＭＭＳメッセージを受信した場合、通信接続を確立しているロードバランサ３００又はロードバランサ４００に当該ＭＭＳメッセージを送信してよい。
【００１４】
ＭＭＳＣ２００は、ロードバランサ３００及びロードバランサ４００と接続されている。ＭＭＳＣ２００は、ロードバランサ３００及びロードバランサ４００の両方が動作可能である場合、ロードバランサ４００と通信接続を確立してよい。ＭＭＳＣ２００は、ネットワーク２０からＭＭＳメッセージを受信した場合、通信接続を確立しているロードバランサ３００又はロードバランサ４００に当該ＭＭＳメッセージを送信してよい。
【００１５】
ロードバランサ３００は、サーバ群５００と接続されている。サーバ群５００は、サーバ５１０、サーバ５２０、及びサーバ５３０を含む。なお、サーバ群５００が含むサーバの数はこれに限らず、任意の数のサーバを含んでよい。
【００１６】
ロードバランサ３００は、ＭＭＳＣ１００又はＭＭＳＣ２００からＭＭＳメッセージを受信した場合、サーバ５１０、サーバ５２０、及びサーバ５３０の負荷状況に応じて、サーバ５１０、サーバ５２０、及びサーバ５３０のいずれかに当該ＭＭＳメッセージを送信する。
【００１７】
ロードバランサ４００は、サーバ群６００と接続されている。サーバ群６００は、サーバ６１０、サーバ６２０、及びサーバ６３０を含む。なお、サーバ群６００が含むサーバの数はこれに限らず、任意の数のサーバを含んでよい。
【００１８】
ロードバランサ４００は、ＭＭＳＣ１００又はＭＭＳＣ２００からＭＭＳメッセージを受信した場合、サーバ６１０、サーバ６２０、及びサーバ６３０の負荷状況に応じて、サーバ６１０、サーバ６２０、及びサーバ６３０のいずれかに当該ＭＭＳメッセージを送信する。
【００１９】
サーバ５１０、サーバ５２０、サーバ５３０、サーバ６１０、サーバ６２０、及びサーバ６３０は、ＭＭＳメッセージを受信した場合、ユーザ情報ＤＢ７００を参照して、当該ＭＭＳメッセージを格納すべきメールボックスを特定する。ユーザ情報ＤＢ７００は、複数のユーザのそれぞれについて、電話番号及びメールアドレスの少なくともいずれかと、メールボックスを識別するメールボックスＩＤとを対応付けて格納してよい。メールボックスＩＤは、複数のユーザのそれぞれを識別するユーザＩＤと同一であってもよい。
【００２０】
サーバ５１０、サーバ５２０、サーバ５３０、サーバ６１０、サーバ６２０、及びサーバ６３０は、受信したＭＭＳメッセージの宛先に対応するメールボックスＩＤをユーザ情報ＤＢ７００から受信して、当該メールボックスＩＤによって識別されるメールボックスに当該ＭＭＳメッセージを格納させるべく、メールボックスシステム８００に送信する。
【００２１】
メールボックスシステム８００は、複数のユーザのそれぞれのメールボックスを、メールボックスＩＤと対応付けて格納する。メールボックスシステム８００は、サーバ５１０、サーバ５２０、サーバ５３０、サーバ６１０、サーバ６２０、及びサーバ６３０からメールボックスＩＤ及びＭＭＳメッセージを受信した場合、当該ＭＭＳメッセージを、当該メールボックスＩＤによって識別されるメールボックスに格納する。
【００２２】
ＭＭＳＣ１００は、ＭＭＳメッセージを受信した場合、ＳＭＳＣ９００を介して、当該ＭＭＳメッセージの宛先の通信端末に対して通知メッセージをＳＭＳ送信する。ＭＭＳＣ２００も、ＭＭＳメッセージを受信した場合、ＳＭＳＣ９００を介して、当該ＭＭＳメッセージの宛先の通信端末に対して通知メッセージをＳＭＳ送信する。
【００２３】
通知メッセージを受信した通信端末は、通知メッセージの送信元であるＭＭＳＣ１００又はＭＭＳＣ２００に対して、ＭＭＳメッセージの取得要求を送信する。取得要求を受信したＭＭＳＣ１００又はＭＭＳＣ２００は、通信接続を確立しているロードバランサ３００又はロードバランサ４００を介して、メールボックスシステム８００からＭＭＳメッセージを取得し、通信端末に送信する。
【００２４】
本実施形態に係るＭＭＳＣ１００は、ロードバランサ３００が動作不能になったと判定した場合に、通信接続先をロードバランサ３００からロードバランサ４００に切り替える。ＭＭＳＣ１００は、通信接続先をロードバランサ４００に切り替えた後、ロードバランサ３００が動作可能になるまでロードバランサ３００を監視する。そして、ロードバランサ３００が動作可能になったときに、ＭＭＳＣ１００は、通信接続先をロードバランサ４００からロードバランサ３００に切り戻す。
【００２５】
このように、ＭＭＳＣ１００が、通信接続先をロードバランサ４００に切り替えた後、ロードバランサ３００が動作可能になるまでロードバランサ３００を監視することにより、ロードバランサ３００が動作可能になったときに、迅速に、通信接続先をロードバランサ３００に切り戻すことができる。
【００２６】
本実施形態において、ＭＭＳＣ１００は通信制御装置の一例であってよい。ロードバランサ３００は第１ロードバランサの一例であってよい。ロードバランサ４００は第２ロードバランサの一例であってよい。
【００２７】
図２は、ＭＭＳＣ１００の機能構成の一例を概略的に示す。ＭＭＳＣ１００は、通信接続確立部１０２、メッセージ受信部１０４、メッセージ送信部１０６、接続切替部１０８、接続切戻部１１０、通知メッセージ送信部１１２、及び取得要求受信部１１４を備える。
【００２８】
通信接続確立部１０２は、ロードバランサ３００との間で通信接続確立処理を実行する。通信接続確立部１０２は、ロードバランサ４００との間で通信接続確立処理を実行する。
【００２９】
メッセージ受信部１０４は、ネットワーク２０を介して、ＭＭＳメッセージを受信する。メッセージ受信部１０４は、メールデータ受信部の一例であってよく、ＭＭＳメッセージはメールデータの一例であってよい。
【００３０】
メッセージ送信部１０６は、メッセージ受信部１０４がＭＭＳメッセージを受信したことに応じて、当該ＭＭＳメッセージを、通信接続を確立しているロードバランサ３００又はロードバランサ４００に送信する。メッセージ送信部１０６は、メールデータ送信部の一例であってよい。
【００３１】
接続切替部１０８は、ロードバランサ３００が動作不能になったと判定した場合に、通信接続先をロードバランサ３００からロードバランサ４００に切り替える。
【００３２】
接続切戻部１１０は、接続切替部１０８によって通信接続先がロードバランサ３００からロードバランサ４００に切り替えられた後、ロードバランサ３００が動作可能になるまでロードバランサ３００を監視して、ロードバランサ３００が動作可能になったときに、通信接続先をロードバランサ４００からロードバランサ３００に切り戻す。
【００３３】
接続切戻部１１０は、例えば、接続切替部１０８によって通信接続先がロードバランサ３００からロードバランサ４００に切り替えられた後、ロードバランサ３００に対してネットワークの疎通を確認するコマンドを継続的に実行することによって、ロードバランサ３００を監視する。ネットワークの疎通を確認するコマンドは、例えば、Ｐｉｎｇコマンド、Ｔｒａｃｅｒｏｕｔｅコマンド等である。接続切戻部１１０は、ネットワークの疎通を確認するコマンドを定期的又は非定期的に実行してよい。接続切戻部１１０がコマンドを実行するタイミングは、予め設定されていてよい。接続切戻部１１０は、ネットワークの疎通の確認がとれた場合に、通信接続先をロードバランサ４００からロードバランサ３００に切り戻す。
【００３４】
また、接続切戻部１１０は、例えば、接続切替部１０８によって通信接続先がロードバランサ３００からロードバランサ４００に切り替えられた後、ＳＭＴＰ（Ｓｅｎｄ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）の接続確立コマンドを継続的にロードバランサ３００に送信してもよい。これにより、接続切戻部１１０は、ロードバランサ３００の監視と、ロードバランサ３００が動作可能になったときのロードバランサ３００への通信接続先の切り戻しとを実現する。接続切戻部１１０が、ロードバランサ３００に対して接続確立コマンドを送信することにより、ロードバランサ３００は動作不能になっていないが、ロードバランサ３００内のＳＭＴＰ等のアプリケーションが動作不能になっていることによってサーバ群５００に対するＭＭＳメッセージの転送処理が実行できない状態のときに、動作不能であると判定することができる。接続確立コマンドは、例えば、ＨＥＬＯ又はＥＨＬＯであってよい。接続切戻部１１０は、定期的又は非定期的に接続確立コマンドを送信してよい。接続切戻部１１０が接続確立コマンドを送信するタイミングは、予め設定されていてよい。
【００３５】
通知メッセージ送信部１１２は、メッセージ受信部１０４がＭＭＳメッセージを受信したことに応じて、ＭＭＳメッセージの宛先の通信端末に対して、ＳＭＳＣ９００を介して通知メッセージをＳＭＳ送信する。取得要求受信部１１４は、ＭＭＳメッセージの取得要求を通信端末から受信する。
【００３６】
メッセージ受信部１０４は、取得要求受信部１１４がＭＭＳメッセージの取得要求を受信したことに応じて、通信接続を確立しているロードバランサ３００又はロードバランサ４００を介して、メールボックスシステム８００から当該ＭＭＳメッセージを取得する。メッセージ送信部１０６は、メッセージ受信部１０４が取得したＭＭＳメッセージを、取得要求を送信した通信端末に送信する。
【００３７】
図３は、ＭＭＳＣ１００による処理の流れの一例を概略的に示す。図３に示す処理は、ＭＭＳＣ１００とロードバランサ３００とが通信接続を確立している状態を開始状態として説明する。図３に示す各処理は、ＭＭＳＣ１００が備える制御部が主体となって実行される。
【００３８】
ステップ（ステップをＳと省略して記載する場合がある。）３０２では、メッセージ受信部１０４がＭＭＳメッセージを受信したか否かを判定する。受信したと判定した場合、Ｓ３０４に進み、受信していないと判定した場合、Ｓ３０６に進む。Ｓ３０４では、メッセージ送信部１０６が、受信したＭＭＳメッセージをロードバランサ３００（ＬＢ３００と記載する場合がある。）に送信する。
【００３９】
Ｓ３０６では、接続切替部１０８が、ロードバランサ３００の動作確認を実行するか否かを判定する。例えば、ロードバランサ３００の動作確認を予め定められた期間毎に実行するように設定されていた場合、接続切替部１０８は、前回動作確認を実行してから予め定められた期間が経過したか否かを判定する。動作確認をすると判定された場合、Ｓ３０８に進み、しないと判定された場合、Ｓ３０２に戻る。
【００４０】
Ｓ３０８では、接続切替部１０８が、ロードバランサ３００の動作確認を実行する。接続切替部１０８は、例えば、ロードバランサ３００に対してネットワークの疎通を確認するコマンドを実行することにより、ロードバランサ３００の動作確認を実行する。接続切替部１０８は、ロードバランサ３００に対して接続確立コマンドを送信することによって、ロードバランサ３００の動作確認を実行してもよい。
【００４１】
Ｓ３１０では、接続切替部１０８が、ロードバランサ３００が動作可能な状態であるか否かを判定する。動作可能な状態であると判定した場合、Ｓ３０２に戻り、動作可能な状態でないと判定した場合、Ｓ３１２に進む。
【００４２】
Ｓ３１２では、接続切替部１０８が、ロードバランサ４００（ＬＢ４００と記載する場合がある。）との通信接続が可能か否かを判定する。可能であると判定された場合、Ｓ３１４に進み、可能でないと判定された場合、Ｓ３２８に進む。Ｓ３１４では、接続切替部１０８が、ロードバランサ４００と通信接続を確立する。
【００４３】
Ｓ３１６では、メッセージ受信部１０４がＭＭＳメッセージを受信したか否かを判定する。受信したと判定した場合、Ｓ３１８に進み、受信していないと判定した場合、Ｓ３２０に進む。Ｓ３１８では、メッセージ送信部１０６が、受信したＭＭＳメッセージをロードバランサ４００に送信する。
【００４４】
Ｓ３２０では、接続切戻部１１０が、ロードバランサ３００の動作確認を実行するか否かを判定する。例えば、ロードバランサ３００の動作確認を予め定められた期間毎に実行するように設定されていた場合、接続切戻部１１０は、前回動作確認を実行してから予め定められた期間が経過したか否かを判定する。動作確認をすると判定された場合、Ｓ３２２に進み、しないと判定された場合、Ｓ３１６に戻る。
【００４５】
Ｓ３２２では、接続切戻部１１０が、ロードバランサ３００の動作確認を実行する。接続切戻部１１０は、例えば、ロードバランサ３００に対してネットワークの疎通を確認するコマンドを実行することにより、ロードバランサ３００の動作確認を実行する。接続切戻部１１０は、ロードバランサ３００に対して接続確立コマンドを送信することによって、ロードバランサ３００の動作確認を実行してもよい。
【００４６】
Ｓ３２４では、接続切戻部１１０が、ロードバランサ３００が動作可能な状態であるか否かを判定する。動作可能な状態であると判定した場合、Ｓ３２６に進み、動作可能な状態でないと判定した場合、Ｓ３１６に戻る。Ｓ３２６では、接続切戻部１１０が、ロードバランサ３００と通信接続を確立する。
【００４７】
Ｓ３２８では、接続切替部１０８が、エラー処理を実行する。接続切替部１０８は、例えば、ＭＭＳＣ１００の管理者等に対してエラーを通知する。そして、処理を終了する。
【００４８】
図４は、ＭＭＳＣ１００による処理の流れの他の一例を概略的に示す。図４に示す処理は、ＭＭＳＣ１００が、ＭＭＳメッセージを待ち受けている状態を開始状態として説明する。図４に示す各処理は、ＭＭＳＣ１００が備える制御部が主体となって実行される。
【００４９】
Ｓ４０２では、メッセージ受信部１０４がＭＭＳメッセージを受信したか否かを判定する。受信したと判定した場合、Ｓ４０４に進む。Ｓ４０４では、接続切替部１０８が、ロードバランサ３００に対して、ＳＭＴＰの接続確立コマンドであるＨＥＬＯを送信する。
【００５０】
Ｓ４０６では、接続切替部１０８が、Ｓ４０４でロードバランサ３００に送信したＨＥＬＯに対する、コマンドが正常に完了したことを示す応答を受信したか否かを判定する。応答を受信したと判定した場合、Ｓ４０８に進み、応答を受信しなかったと判定した場合、Ｓ４１２に進む。
【００５１】
Ｓ４０８では、メッセージ送信部１０６が、Ｓ４０２において受信したＭＭＳメッセージをロードバランサ３００に送信する。Ｓ４１０では、接続切替部１０８が、ロードバランサ３００に対して、ＳＭＴＰの接続終了コマンドであるＱＵＩＴを送信する。そして、Ｓ４０２に戻る。
【００５２】
Ｓ４１２では、接続切替部１０８が、ロードバランサ４００に対して、ＨＥＬＯを送信する。Ｓ４１４では、接続切替部１０８が、Ｓ４１２でロードバランサ４００に送信したＨＥＬＯに対する、コマンドが正常に完了したことを示す応答を受信したか否かを判定する。応答を受信したと判定した場合、Ｓ４１６に進み、応答を受信しなかったと判定した場合、Ｓ４３４に進む。
【００５３】
Ｓ４１６では、メッセージ送信部１０６が、Ｓ４０２において受信したＭＭＳメッセージをロードバランサ４００に送信する。Ｓ４１８では、接続切替部１０８が、ロードバランサ４００に対して、ＱＵＩＴを送信する。
【００５４】
Ｓ４２０では、メッセージ受信部１０４がＭＭＳメッセージを受信したか否かを判定する。受信したと判定した場合、Ｓ４２２に進む。Ｓ４２２では、接続切戻部１１０が、ロードバランサ３００に対して、ＨＥＬＯを送信する。
【００５５】
Ｓ４２４では、接続切戻部１１０が、Ｓ４２２でロードバランサ３００に送信したＨＥＬＯに対する、コマンドが正常に完了したことを示す応答を受信したか否かを判定する。応答を受信したと判定した場合、Ｓ４０８に戻り、応答を受信しなかったと判定した場合、Ｓ４２６に進む。
【００５６】
Ｓ４２６では、接続切戻部１１０が、ロードバランサ４００に対して、ＨＥＬＯを送信する。Ｓ４２８では、接続切戻部１１０が、Ｓ４２６でロードバランサ４００に送信したＨＥＬＯに対する、コマンドが正常に完了したことを示す応答を受信したか否かを判定する。応答を受信したと判定した場合、Ｓ４３０に進み、応答を受信しなかったと判定した場合、Ｓ４３４に進む。
【００５７】
Ｓ４３０では、メッセージ送信部１０６が、Ｓ４２０において受信したＭＭＳメッセージをロードバランサ４００に送信する。Ｓ４３２では、接続切戻部１１０が、ロードバランサ４００に対して、ＳＭＴＰの接続終了コマンドであるＱＵＩＴを送信する。そして、Ｓ４２０に戻る。
【００５８】
Ｓ４３４では、接続切戻部１１０が、エラー処理を実行する。接続切戻部１１０は、例えば、ＭＭＳＣ１００の管理者等に対してエラーを通知する。そして、処理を終了する。
【００５９】
図５は、ＭＭＳＣ１００として機能するコンピュータ１０００のハードウエア構成の一例を示す。本実施形態に係るコンピュータ１０００は、ホストコントローラ１０９２により相互に接続されるＣＰＵ１０１０、ＲＡＭ１０３０、及びグラフィックコントローラ１０８５を有するＣＰＵ周辺部と、入出力コントローラ１０９４によりホストコントローラ１０９２に接続される通信Ｉ／Ｆ１０４０、ハードディスクドライブ１０５０、及びＤＶＤドライブ１０７０を有する入出力部と、入出力コントローラ１０９４に接続されるＲＯＭ１０２０、ＦＤドライブ１０６０、及び入出力チップ１０８０を有するレガシー入出力部とを備える。
【００６０】
ＣＰＵ１０１０は、ＲＯＭ１０２０及びＲＡＭ１０３０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０８５は、ＣＰＵ１０１０などがＲＡＭ１０３０内に設けたフレーム・バッファ上に生成する画像データを取得し、ディスプレイ１０９０上に表示させる。これに代えて、グラフィックコントローラ１０８５は、ＣＰＵ１０１０などが生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６１】
通信Ｉ／Ｆ１０４０は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信Ｉ／Ｆ１０４０は、通信を行うハードウエアとして機能する。ハードディスクドライブ１０５０は、ＣＰＵ１０１０が使用するプログラム及びデータを格納する。ＤＶＤドライブ１０７０は、ＤＶＤ−ＲＯＭ１０７２からプログラム又はデータを読み取り、ＲＡＭ１０３０を介してハードディスクドライブ１０５０に提供する。
【００６２】
ＲＯＭ１０２０は、コンピュータ１０００が起動時に実行するブート・プログラム、及びコンピュータ１０００のハードウエアに依存するプログラムなどを格納する。ＦＤドライブ１０６０は、フレキシブルディスク１０６２からプログラム又はデータを読み取り、ＲＡＭ１０３０を介してハードディスクドライブ１０５０に提供する。入出力チップ１０８０は、ＦＤドライブ１０６０を入出力コントローラ１０９４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポートなどを介して各種の入出力装置を入出力コントローラ１０９４へと接続する。
【００６３】
ＲＡＭ１０３０を介してハードディスクドライブ１０５０に提供されるプログラムは、フレキシブルディスク１０６２、ＤＶＤ−ＲＯＭ１０９５、又はＩＣカードなどの記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ１０３０を介してハードディスクドライブ１０５０にインストールされ、ＣＰＵ１０１０において実行される。
【００６４】
コンピュータ１０００にインストールされ、コンピュータ１０００をＭＭＳＣ１００として機能させるプログラムは、ＣＰＵ１０１０などに働きかけて、コンピュータ１０００を、ＭＭＳＣ１００の各部としてそれぞれ機能させてよい。これらのプログラムに記述された情報処理は、コンピュータ１０００に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段である通信接続確立部１０２、メッセージ受信部１０４、メッセージ送信部１０６、接続切替部１０８、接続切戻部１１０、通知メッセージ送信部１１２、及び取得要求受信部１１４として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１０００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のＭＭＳＣ１００が構築される。
【００６５】
上記実施形態では、ＭＭＳＣ１００が、ＭＭＳメッセージをメールボックスに格納する処理を分散させるロードバランサ３００及びロードバランサ４００に対する通信接続の切り替え及び切り戻しを制御する例を挙げて説明したがこれに限らない。ＭＭＳＣ１００は、任意の処理を分散させるロードバランサ３００及びロードバランサ４００に対する通信接続の切り替え及び切り戻しを制御してよい。
【００６６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６７】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００６８】
１０  通信システム、２０  ネットワーク、１００  ＭＭＳＣ、１０２  通信接続確立部、１０４  メッセージ受信部、１０６  メッセージ送信部、１０８  接続切替部、１１０  接続切戻部、１１２  通知メッセージ送信部、１１４  取得要求受信部、２００  ＭＭＳＣ、３００  ロードバランサ、４００  ロードバランサ、５００  サーバ群、５１０  サーバ、５２０  サーバ、５３０  サーバ、６００  サーバ群、６１０  サーバ、６２０  サーバ、６３０  サーバ、７００  ユーザ情報ＤＢ、８００  メールボックスシステム、９００  ＳＭＳＣ、１０００  コンピュータ、１０１０  ＣＰＵ、１０２０  ＲＯＭ、１０３０  ＲＡＭ、１０４０  通信Ｉ／Ｆ、１０５０  ハードディスクドライブ、１０６０  ＦＤドライブ、１０６２  フレキシブルディスク、１０７０  ＤＶＤドライブ、１０７２  ＤＶＤ−ＲＯＭ、１０８０  入出力チップ、１０８５  グラフィックコントローラ、１０９０  ディスプレイ、１０９２  ホストコントローラ、１０９４  入出力コントローラ
【図１】
2017147534.tif 000003
【図２】
2017147534.tif 000004
【図３】
2017147534.tif 000005
【図４】
2017147534.tif 000006
【図５】
2017147534.tif 000007