(57)【特許請求の範囲】
【請求項１】
複数の通信制御装置を有する通信制御システムであって、
第１通信制御装置は、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部を有し、
前記第２通信制御装置は、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御部を有する
ことを特徴とする通信制御システム。
【請求項２】
複数の通信制御装置を有する通信制御システムであって、
第１通信制御装置は、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部を有し、
前記第２通信制御装置は、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末からの端末情報登録処理を実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信し、
前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御部を有し、
前記プッシュ通知用通信制御装置は、
前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御部を有する
ことを特徴とする通信制御システム。
【請求項３】
請求項１または請求項２に記載されている通信制御システムであって、
前記第２端末が第３通信制御装置に接続されている場合、
前記第１通信制御装置は、
第１シグナリング制御部において、前記第１端末から前記接続要求情報を受信してから、前記接続要求情報を前記第２通信制御装置に送信するまでの間に、
複数の前記通信制御装置の中で、負荷が所定の値より低い前記第２通信制御装置と、前記第３通信制御装置とが異なることを判断して、
前記第３通信制御装置に前記第２端末の切断要求情報を送信する第１コネクション切断処理部を有し、
前記第３通信制御装置は、
前記第１通信制御装置から切断要求情報を受信して、前記第３通信制御装置と前記第２端末間の接続を切断する第２コネクション切断処理部を有する
ことを特徴とする通信制御システム。
【請求項４】
請求項１から請求項３のいずれか１項に記載されている通信制御システムであって、
前記負荷が所定の値より低い第２通信制御装置が複数存在する場合、
前記第１通信制御装置は、１つの第２通信制御装置を選択する選択処理部を有する
ことを特徴とする通信制御システム。
【請求項５】
請求項１から請求項４のいずれか１項に記載されている通信制御システムであって、
前記接続要求情報は、ＩＮＶＩＴＥリクエストメッセージであり、
前記端末情報登録処理は、ＲＥＧＩＳＴＥＲリクエストメッセージに基づく端末情報の登録処理である、
ことを特徴とする通信制御システム。
【請求項６】
複数の通信制御装置を有する通信制御システムにおける通信制御方法であって、
第１通信制御装置が、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御ステップを有し、
前記第２通信制御装置が、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御ステップを有する
ことを特徴とする通信制御方法。
【請求項７】
複数の通信制御装置を有する通信制御システムにおける通信制御方法であって、
第１通信制御装置が、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御ステップを有し、
前記第２通信制御装置が、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末からの端末情報登録処理を実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信し、
前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御ステップを有し、
前記プッシュ通知用通信制御装置は、
前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御ステップを有する
ことを特徴とする通信制御方法。
【請求項８】
通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置としてのコンピュータを、
第１通信制御装置として機能させる場合、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部、として機能させ、
第２通信制御装置として機能させる場合、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御手段、
として機能させるための通信制御プログラム。
【請求項９】
通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置としてのコンピュータを、
第１通信制御装置として機能させる場合、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部、として機能させ、
第２通信制御装置として機能させる場合、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末からの端末情報登録処理を実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信し、
前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御部、として機能させ、
前記プッシュ通知用通信制御装置として機能させる場合、
前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御部、
として機能させるための通信制御プログラム。
【請求項１０】
請求項８または請求項９に記載されている通信制御プログラムであって、
前記第２端末が第３通信制御装置に接続されている場合であり、さらに、
前記第１通信制御装置として機能させる場合、
第１シグナリング制御部において、前記第１端末から前記接続要求情報を受信してから、前記接続要求情報を前記第２通信制御装置に送信するまでの間に、
複数の前記通信制御装置の中で、負荷が所定の値より低い前記第２通信制御装置と、前記第３通信制御装置とが異なることを判断して、
前記第３通信制御装置に前記第２端末の切断要求情報を送信する第１コネクション切断処理部、として機能させ、
第３通信制御装置として機能させる場合、
前記第１通信制御装置から切断要求情報を受信して、前記第３通信制御装置と前記第２端末間の接続を切断する第２コネクション切断処理部、として機能させる
ことを特徴とする通信制御プログラム。
【請求項１１】
請求項８から請求項１０のいずれか１項に記載されている通信制御プログラムであって、
前記負荷が所定の値より低い第２通信制御装置が複数存在する場合であり、さらに、
前記第１通信制御装置として機能させる場合、
１つの第２通信制御装置を選択する選択処理部、として機能させる
ことを特徴とする通信制御プログラム。
【請求項１２】
請求項８から請求項１１のいずれか１項に記載されている通信制御プログラムであって、
前記接続要求情報は、ＩＮＶＩＴＥリクエストメッセージであり、
前記端末情報登録処理は、ＲＥＧＩＳＴＥＲリクエストメッセージに基づく端末情報の登録処理である、
ことを特徴とする通信制御プログラム。
【請求項１３】
通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置であって、
第１通信制御装置として機能する場合、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部を有し、
第２通信制御装置として機能する場合、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御部を有する、
ことを特徴とする通信制御装置。
【請求項１４】
通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置であって、
第１通信制御装置として機能する場合、
第１端末から接続要求情報を受信し、
複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部を有し、
第２通信制御装置として機能する場合、
前記第１通信制御装置から前記接続要求情報を受信し、
第２端末からの端末情報登録処理を実行して、第２端末情報を登録し、
前記第２端末に対して前記接続要求情報を送信し、
前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御部を有し、
前記プッシュ通知用通信制御装置として機能する場合、
前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御部を有する
ことを特徴とする通信制御装置。
【請求項１５】
請求項１３または請求項１４に記載されている通信制御装置であって、
前記第２端末が第３通信制御装置に接続されている場合であり、さらに、
第１通信制御装置として機能する場合、
第１シグナリング制御部において、前記第１端末から前記接続要求情報を受信してから、前記接続要求情報を前記第２通信制御装置に送信するまでの間に、
複数の前記通信制御装置の中で、負荷が所定の値より低い前記第２通信制御装置と、前記第３通信制御装置とが異なることを判断して、
前記第３通信制御装置に前記第２端末の切断要求情報を送信する第１コネクション切断処理部、を有し、
前記第３通信制御装置として機能する場合、
前記第１通信制御装置から切断要求情報を受信して、前記第３通信制御装置と前記第２端末間の接続を切断する第２コネクション切断処理部を有する
ことを特徴とする通信制御装置。
【請求項１６】
請求項１３から請求項１５のいずれか１項に記載されている通信制御装置であって、
前記負荷が所定の値より低い第２通信制御装置が複数存在する場合であり、さらに、
前記第１通信制御装置として機能させる場合、
１つの第２通信制御装置を選択する選択処理部を有する
ことを特徴とする通信制御装置。
【請求項１７】
請求項１３から請求項１６のいずれか１項に記載されている通信制御装置であって、
前記接続要求情報は、ＩＮＶＩＴＥリクエストメッセージであり、
前記端末情報登録処理は、ＲＥＧＩＳＴＥＲリクエストメッセージに基づく端末情報の登録処理である、
ことを特徴とする通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御システム、通信制御方法、通信制御プログラム、および通信制御装置に関し、例えば、複数の通信制御装置を負荷分散するための技術に関する。
【背景技術】
【０００２】
通信制御装置を有するシステムは、一例としてクライアントサーバシステムがある。クライアントサーバシステムで実現されるサービスとしては例えば、ＶｏＩＰ（ＶｏＩＰ：Voice over Internet Protocol（ＩＰ：Internet Protocol））を用いたＩＰ電話、プレゼンス、チャット、テレビ会議のようなものがある。こうしたサービスでは、クライアントサーバ間でメディア (音声、映像、テキストなど) を送受信し、そのとき ＳＩＰ（Session Initiation Protocol）を用いることが多い。ＶｏＩＰ サービスを提供するクライアントサーバシステムにおいては、システムを制御するためにＳＩＰサーバを有し、このＳＩＰサーバは、レジストレーションサーバとＶｏＩＰサーバを有する。ここで、レジストレーションサーバは、モバイル端末などのクライアントが自身のＩＰアドレスを登録するため処理構成を有する。ここで、ＶｏＩＰサーバは、クライアント間における通信の接続、通信の切断などについて制御するための処理構成を有する。ここで、ＳＩＰサーバは、一方のクライアントが他方のクライアントにＩＰ電話で通話する場合、一方のクライアントから他方のクライアントにメッセージを送信するために必要なＩＰアドレスについて解決するための処理構成を有する。ＳＩＰサーバは、クライアント間における通信アプリケーション間の関連付け（一例は、通信の開始、通信の切断など）に関わるセッションを生成するための処理構成を有する。
【０００３】
図１１に示すように、一方のクライアント（クライアント１）が他方のクライアント（クライアント２）にＩＰ電話で通話する場合、ＳＩＰサーバは、それぞれのＩＰアドレスを解決し、セッションを生成する。一例として、クライアント１とクライアント２との間で通話を開始する場合の、ＳＩＰのシーケンスは、図１２に示す通りであり、例えば、非特許文献１に記載内容に従う。
【０００４】
従来のクライアントサーバシステムは、クライアント間のＩＰ電話の通信に関して、ＳＩＰサーバ（レジストレーションサーバ、ＶｏＩＰサーバ）が各クライアントのＩＰアドレスを解決し、セッションの開始、変更、終了などのセッション制御を行う。しかし、レジストレーションサーバにＩＰアドレスを登録するクライアントの数が増大すると、ＳＩＰサーバの負荷が増大し、クライアントサーバシステムが期待通りに動作できなくなる。換言すると、図１３に示すように、１つのＳＩＰサーバに対して複数のクライアント（クライアント１〜Ｎ）が接続する態様になるため、従来のクライアントサーバシステムは、ＳＩＰサーバが単一点障害（ＳＰｏＦ：Single Point of Failure）に陥り、ＳＩＰサーバを安定的に運用できず、クライアントサーバシステムのスケーラビリティや信頼性を保障することができない。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】［online］、［平成２８年１月２１日検索］、インターネット<URL: http:// tools.ietf.org/html/rfc3261>
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＰｏＦを回避する技術として、ＤＮＳ（Domain Name Server）ラウンドロビン、ロードバランサ、クラスタリングなどの負荷分散の技術が存在する。しかし、これらの技術は、用意する機器およびソフトウェアに膨大なコストがかかる、用意する機器およびソフトウェアの設定やメンテナンスに高度の知識を要する、クライアントサーバシステムの構築に長時間を要する、などの問題がある。
【０００７】
また、非特許文献１では、ＳＰｏＦを回避することや、ＳＰｏＦの回避に伴うコスト、知識、時間に関する諸問題を解消することについて記載も示唆もない。
【０００８】
そこで、上記事情に鑑みて、本発明では、複数の通信制御装置を負荷分散することについて実現することを目的とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するため、本発明は、複数の通信制御装置を有する通信制御システムであって、第１通信制御装置は、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部を有し、前記第２通信制御装置は、前記第１通信制御装置から前記接続要求情報を受信し、第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御部を有することを特徴とする。
【００１０】
また、本発明は、複数の通信制御装置を有する通信制御システムであって、第１通信制御装置は、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部を有し、前記第２通信制御装置は、前記第１通信制御装置から前記接続要求情報を受信し、第２端末からの端末登録情報処理を実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信し、前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御部を有し、前記プッシュ通知用通信制御装置は、前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御部を有することを特徴とする。
【００１１】
また、本発明は、複数の通信制御装置を有する通信制御システムにおける通信制御方法であって、第１通信制御装置が、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御ステップを有し、前記第２通信制御装置が、前記第１通信制御装置から前記接続要求情報を受信し、第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御ステップを有することを特徴とする。
また、本発明は、複数の通信制御装置を有する通信制御システムにおける通信制御方法であって、第１通信制御装置が、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御ステップを有し、前記第２通信制御装置が、前記第１通信制御装置から前記接続要求情報を受信し、第２端末からの端末情報登録処理を実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信し、前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御ステップを有し、前記プッシュ通知用通信制御装置は、前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御ステップを有することを特徴とする。
【００１２】
また、本発明は、通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置としてのコンピュータを、第１通信制御装置として機能させる場合、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御手段、として機能させ、第２通信制御装置として機能させる場合、前記第１通信制御装置から前記接続要求情報を受信し、第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御手段、として機能させるための通信制御プログラムである。
また、本発明は、通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置としてのコンピュータを、第１通信制御装置として機能させる場合、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値所定の負荷情報より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部、として機能させ、第２通信制御装置として機能させる場合、前記第１通信制御装置から前記接続要求情報を受信し、第２端末からの端末情報登録処理を実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信し、前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御部、として機能させ、前記プッシュ通知用通信制御装置として機能させる場合、前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御部、として機能させるための通信制御プログラムである。
【００１３】
また、本発明は、通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置であって、第１通信制御装置として機能する場合、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御手段を有し、第２通信制御装置として機能する場合、前記第１通信制御装置から前記接続要求情報を受信し、第２端末へのプッシュ通知処理と第２端末からの端末情報登録処理とを実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信する第２シグナリング制御部を有することを特徴とする。
また、本発明は、通信制御システムが有する複数の通信制御装置のうちの１つである通信制御装置であって、第１通信制御装置として機能する場合、第１端末から接続要求情報を受信し、複数の前記通信制御装置の中で、負荷が所定の値より低い第２通信制御装置に前記接続要求情報を送信する第１シグナリング制御部を有し、第２通信制御装置として機能する場合、前記第１通信制御装置から前記接続要求情報を受信し、第２端末からの端末情報登録処理を実行して、第２端末情報を登録し、前記第２端末に対して前記接続要求情報を送信し、前記第２通信制御装置とは異なるプッシュ通知用通信制御装置に、前記第２端末へのプッシュ通知処理を要求する第２シグナリング制御部を有し、前記プッシュ通知用通信制御装置として機能する場合、前記第２通信制御装置からの要求に対して前記第２端末へのプッシュ通知処理を実行する第３シグナリング制御部を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、複数の通信制御装置を負荷分散することについて実現することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態の通信制御システムの全体構成図である。
【図２】第１の実施形態のシグナリングサーバの構成図である。
【図３】第１の実施形態のモバイルクライアントの構成図である。
【図４】シグナリングサーバの起動時の動作を示すフローチャートである。
【図５】サーバ状態を示すファイルの内容例である。
【図６】第１の実施形態における通信開始時の動作を示すシーケンスである。
【図７】第１の実施形態のモバイルクライアントにおけるプッシュ通信受信時の動作を示すシーケンスである。
【図８】シグナリングサーバから受信するプッシュメッセージの内容例である。
【図９】第２の実施形態のシグナリングサーバの構成図である。
【図１０】第２の実施形態における通信開始時の動作を示すシーケンスである。
【図１１】従来の、ＳＩＰのクライアントサーバシステム構成例を示す図である。
【図１２】通話サービスにおけるＳＩＰのシーケンス例である。
【図１３】ＳＰｏＦの説明図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態（以下、「実施形態」という。）について、適宜図面を参照しながら説明する。
【００１７】
≪第１の実施形態≫
図１に示すように、本実施形態の通信制御システムは、プッシュ通信サービス（２０１）と、モバイルクライアント♯１，♯２（２０２−１，２０２−２）と、シグナリングサーバ♯１〜♯３（２０３−１〜２０３−３）と、データベース（２０４）とを備えている。説明の便宜上、モバイルクライアント♯１，♯２（２０２−１，２０２−２）は、モバイルクライアント（２０２）と総称する場合がある。シグナリングサーバ♯１〜♯３（２０３−１〜２０３−３）は、シグナリングサーバ（２０３）と総称する場合がある。通信制御システムが備えるモバイルクライアント（２０２）の数は、図１に示すように２つに限られず、３以上でもよい。通信制御システムが備えるシグナリングサーバ（２０３）の数は、図１に示すように３つに限られず、２でもよいし、４以上でもよい。
【００１８】
プッシュ通知サービス（２０１）は、システム側が外部のサーバと連携して情報を能動的に通知するサービスである。モバイル端末の普及によりプッシュ通知の利用が高まり、多くのシステムで利用されている。プッシュ通知サービス（２０１）の例として、Google Cloud Messaging(GCM), Google Cloud Messaging for Chrome(GCM), Apple Push Notification Service(APNS)などがある。本実施形態では、プッシュ通知サービス（２０１）は、例えば、当該サービスを提供する装置（図示せず）上で動作して実現される機能部として扱う。
【００１９】
モバイルクライアント（２０２）は、シグナリングサーバ（２０３）と通信可能に接続して、複数のモバイルクライアント（２０２）間で通信する端末である。
【００２０】
シグナリングサーバ（２０３）は、ＶｏＩＰなどの通信サービスをモバイルクライアント（２０２）へ提供するサーバである。シグナリングサーバ（２０３）は、プッシュ通知サービス（２０１）の機能を利用してモバイルクライアント（２０２）にプッシュ通知を実行する。シグナリングサーバ（２０３）は、通信サービスの提供に用いられるデータを保存するためにデータベース（２０４）と通信可能に接続している。
【００２１】
データベース（２０４）は、シグナリングサーバ（２０３）の各々が共有するデータを保存する。本実施形態では、データベース（２０４）は、例えば、シグナリングサーバ（２０３）に通信可能に接続されているＤＢサーバ（図示せず）により提供されるデータベースによって実現される。
【００２２】
なお、モバイルクライアント（２０２）、および、シグナリングサーバ（２０３）はそれぞれ、制御部、通信部、記憶部といったハードウェアを含むコンピュータである。制御部は、例えば、ＣＰＵ（Central Processing Unit）や専用回路から構成される。通信部は、通信回線を介して情報を送受信する通信インターフェースによって構成され、内部バスなどを介して処理部に接続されている。記憶部は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュ（登録商標）メモリの記憶媒体から構成される。制御部がＣＰＵから構成される場合、制御部を含むコンピュータによる情報処理は、ＣＰＵによるプログラム実行処理で実現する。また、そのコンピュータが含む記憶部は、ＣＰＵが指令し、そのコンピュータの機能を実現するためのプログラムを記憶する。これによりソフトウェアとハードウェアの協働が実現される。本実施形態は、前記情報処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体（例：ＣＤ−ＲＯＭ）に記憶して提供することができる。また、そのプログラムを、インターネットなどのネットワークを通して提供することもできる。
【００２３】
図２に示すように、シグナリングサーバ（２０３）は、シグナリング制御部（３０１）、プッシュ通知部（３０２）、シグナリングサーバ間通信部（３０３）、および、シグナリングサーバ管理部（３０６）を備える。
【００２４】
シグナリング制御部（３０１）は、モバイルクライアント（２０２）から受信したセッション制御メッセージ（例えば、ＳＩＰのようなセッション制御を行うメッセージ）を送受信する。シグナリング制御部（３０１）は、セッション制御メッセージを解釈し、セッションの生成、更新、削除などの処理をする。
【００２５】
プッシュ通知部（３０２）は、モバイルクライアント（２０２）にプッシュ通知を行うために、プッシュ通知サービス（２０１）へプッシュメッセージの送信を要求する。
【００２６】
シグナリングサーバ間通信部（３０３）は、複数のシグナリングサーバ（２０３）間で情報のやり取りを行う。シグナリングサーバ間通信部（３０３）は、メッセージ送信部（３０４）およびメッセージ受信部（３０５）を備える。
【００２７】
メッセージ送信部（３０４）は、他のシグナリングサーバ（２０３）へセッション制御メッセージを送信する。
メッセージ受信部（３０５）は、他のシグナリングサーバ（２０３）から送信されたセッション制御メッセージを受信する。
【００２８】
シグナリングサーバ管理部（３０６）は、複数のシグナリングサーバ（２０３）の各々の状態（詳細は後記）を管理する。シグナリングサーバ管理部（３０６）は、サーバ状態通知部（３０７）、サーバ状態取得部（３０８）、サーバ状態評価部（３０９）、および、サーバ状態通知タイマ（３１０）を備える。
【００２９】
サーバ状態通知部（３０７）は、自身のシグナリングサーバ（２０３）の状態をデータベース（２０４）に保存する。自身のシグナリングサーバ（２０３）の状態には、例えば、ＩＰアドレス、ポート番号、負荷レベル、存在するセッションの数、接続クライアント数、接続中のクライアントのＩＤ（Identifier（識別情報））などがある。また、負荷レベルは、例えば、ＣＰＵ使用率、リソース使用量、ディスクＩ／Ｏ（Input／Output）量などの値から求めることができる。
【００３０】
サーバ状態取得部（３０８）は、複数のシグナリングサーバ（２０３）の各々の状態をデータベース（２０４）から取得する。
【００３１】
サーバ状態評価部（３０９）は、複数のシグナリングサーバ（２０３）の各々の状態を評価し、モバイルクライアント（２０２）が接続するのに最も適切と判断されるシグナリングサーバ（２０３）を選択する。
【００３２】
サーバ状態通知タイマ（３１０）は、専用のタイマを起動して、サーバ状態通知部（３０７）によって自身のシグナリングサーバ（２０３）の状態を定期的にデータベース（２０４）に保存するタイミングを決定する。
【００３３】
図３に示すように、モバイルクライアント（２０２）は、プッシュ受信部（４０１）、サーバアドレス管理部（４０２）、および、シグナリング制御部（４０５）を備える。
【００３４】
プッシュ受信部（４０１）は、シグナリングサーバ（２０３）からのプッシュ通知を受信する。プッシュ受信部（４０１）は、プッシュ通知されたプッシュメッセージを解釈し、接続するシグナリングサーバ（２０３）のＩＰアドレスを変更する。
【００３５】
サーバアドレス管理部（４０２）は、モバイルクライアント（２０２）が内部に保持しているシグナリングサーバ（２０３）のＩＰアドレス、ポート番号を管理する。サーバアドレス管理部（４０２）は、サーバアドレス編集部（４０３）、サーバアドレス取得部（４０４）を備える。
【００３６】
サーバアドレス編集部（４０３）は、モバイルクライアント（２０２）が内部に保持しているシグナリングサーバ（２０３）のＩＰアドレス、ポート番号を動的に変更する。
【００３７】
サーバアドレス取得部（４０４）は、モバイルクライアント（２０２）が内部に保持しているシグナリングサーバ（２０３）のＩＰアドレス、ポート番号を該当するシグナリングサーバ（２０３）から取得する。
【００３８】
シグナリング制御部（４０５）は、シグナリングサーバ（２０３）との間でセッション制御メッセージを送受信する。シグナリング制御部（４０５）は、セッション制御メッセージを解釈し、セッションの生成、更新、削除などの処理をする。
【００３９】
図４に示すように、シグナリングサーバ（２０３）は、起動時において、以下のように動作する。この動作はステップＡ１から開始する。
【００４０】
ステップＡ１にて、シグナリングサーバ（２０３）は、自身固有のＩＤを生成する。このＩＤは、初回起動時に生成され、他のシグナリングサーバ（２０３）と区別可能とする。
【００４１】
次に、ステップＡ２にて、サーバ状態通知タイマ（３１０）が、自身のタイマを起動する。これにより、自身のシグナリングサーバ（２０３）の状態の取得が開始される。
次に、ステップＡ３にて、サーバ状態通知タイマ（３１０）が、タイマの満了をサーバ状態通知部（３０７）へ通知する。
【００４２】
次に、ステップＡ４にて、サーバ状態通知部（３０７）が、シグナリングサーバ（２０３）のＩＤとともに自身のシグナリングサーバ（２０３）の状態をデータベース（２０４）に保存する。データベース（２０４）に保存されるシグナリングサーバ（２０３）の状態は、例えば、図５に示す、JavaScript（登録商標） Object Notationにより記述されたファイルとして示される。図５に示すように、シグナリングサーバ（２０３）の状態は、例えば、自身のシグナリングサーバ（２０３）のＩＤ（符号５１）およびＩＰアドレス（符号５２）、ポート番号（符号５３）、負荷レベル（符号５４）、存在するセッション数（符号５５）、接続しているモバイルクライアント（２０２）の数（符号５６）およびＩＤ（符号５７）を含む。
以降ステップＡ２〜Ａ４の動作を繰り返す。
【００４３】
図４に示す動作によれば、シグナリングサーバ（２０３）は、自身の状態を定期的にデータベースに保存させることができる。
【００４４】
図６に示すように、本実施形態の通信制御システムがモバイルクライアント♯１，♯２（２０２−１，２０２−２）間での通話を開始するときの動作は以下の通りである。ただし、モバイルクライアント♯１（２０２−１）はシグナリングサーバ♯１（２０３−１）に接続しており、モバイルクライアント♯２（２０２−２）はいずれのシグナリングサーバ（２０３）にも接続していないとする。また、セッション制御メッセージにはＳＩＰを用いる。この動作はステップＢ１から開始する。
【００４５】
ステップＢ１にて、モバイルクライアント♯１（２０２−１）は、ＲＥＧＩＳＴＥＲリクエストメッセージ（登録要求メッセージ）をシグナリングサーバ♯１（２０３−１）に送信する。ＲＥＧＩＳＴＥＲリクエストメッセージには、モバイルクライアント♯１（２０２−１）のＩＤなどが含まれている。シグナリング制御部♯１（３０１−１）は、ＲＥＧＩＳＴＥＲリクエストメッセージに対応する２００／ＲＥＧＩＳＴＥＲレスポンスメッセージをモバイルクライアント♯１（２０２−１）に送信する。なお、シグナリング制御部♯１（３０１−１）とは、シグナリングサーバ♯１（２０３−１）が備えるシグナリング制御部（３０１）（図２参照）である。また、シグナリング制御部♯１（３０１−１）は、モバイルクライアント♯１（２０１−１）のＩＤおよびコネクション情報（モバイルクライアント（２０２）とシグナリングサーバ（２０３）との間でソケットなどによる通信が確立していることを示す情報）などを自身の記憶部に保存する。
【００４６】
次に、ステップＢ２にて、シグナリング制御部♯１（３０１−１）は、モバイルクライアント♯１（２０２−１）のＩＤをサーバ状態通知部♯１（３０７−１）に通知する。なお、サーバ状態通知部♯１（３０７−１）とは、シグナリングサーバ♯１（２０３−１）が備えるサーバ状態通知部（３０７）（図２参照）である。
【００４７】
次に、ステップＢ３にて、サーバ状態通知部♯１（３０７−１）は、モバイルクライアント♯１（２０２−１）のＩＤを、シグナリングサーバ♯１（２０３−１）のＩＤと関連付けてデータベース（２０４）に保存する。この処理の一例は、図５に示すファイルの“clients”の配列（符号５７）に、モバイルクライアント♯１（２０２−１）のＩＤを追加することである。
【００４８】
次に、ステップＢ４にて、モバイルクライアント♯１（２０２−１）は、ＩＮＶＩＴＥリクエストメッセージ（発呼要求メッセージ）をシグナリングサーバ♯１（２０３−１）に送信する。このＩＮＶＩＴＥリクエストメッセージは、モバイルクライアント♯２（２０２−２）を宛先とし、モバイルクライアント♯２（２０１−２）のＩＤを含む。
【００４９】
次に、ステップＢ５にて、シグナリング制御部♯１（３０１−１）は、モバイルクライアント♯２（２０１−２）が接続している（と見込まれる）シグナリングサーバ（２０３）のＩＤの取得要求を、シグナリングサーバ♯１（２０３−１）のサーバ状態取得部（３０８）に送信する。
【００５０】
次に、ステップＢ６にて、サーバ状態取得部（３０８）は、モバイルクライアント♯２（２０２−２）のＩＤに関連付けられている、シグナリングサーバ（２０３）のＩＤをデータベース（２０４）から検索する。本処理では、モバイルクライアント♯２（２０１−２）が接続しているシグナリングサーバ（２０３）のＩＤを取得できない（モバイルクライアント♯２（２０１−２）はいずれのシグナリングサーバ（２０３）にも接続していないため）。
【００５１】
次に、ステップＢ７にて、シグナリング制御部♯１（３０１−１）は、最適なシグナリングサーバ（２０３）の情報の取得要求を、シグナリングサーバ♯１（２０３−１）のサーバ状態評価部（３０９）に送信する。
【００５２】
次に、ステップＢ８にて、サーバ状態評価部（３０９）は、データベース（２０４）から各シグナリングサーバ（２０３）の情報を取得する。サーバ状態評価部（３０９）は、取得した情報から、最適なシグナリングサーバ（２０３）を決定し、決定したシグナリングサーバ（２０３）のＩＤ、ＩＰアドレス、ポート番号を取得する。「最適なシグナリングサーバ（２０３）」とは、本実施形態の通信制御システムが有する複数のシグナリングサーバ（２０３）のうち、シグナリングサーバ（２０３）にかかる負荷が所定の負荷（負荷情報）より低いシグナリングサーバ（２０３）をいう。所定の負荷の情報は、適宜設定することができる。本処理では、最適なシグナリングサーバ（２０３）はシグナリングサーバ♯２（２０３−２）であるとする。
【００５３】
次に、ステップＢ９にて、シグナリング制御部♯１（３０１−１）は、ＩＮＶＩＴＥリクエストメッセージを、シグナリングサーバ♯１（２０３−１）のメッセージ送信部（３０４）に送信する。メッセージ送信部（３０４）は、ＩＮＶＩＴＥリクエストメッセージを、シグナリングサーバ♯２（２０３−２）に送信し、送信処理完了に関するメッセージを、シグナリング制御部♯１（３０１−１）に送信する。
【００５４】
次に、ステップＢ１０にて、シグナリングサーバ♯２（２０３−２）のメッセージ受信部（３０５）は、ＩＮＶＩＴＥリクエストメッセージを受信する。受信したＩＮＶＩＴＥリクエストメッセージは、シグナリング制御部♯２（３０１−２）に渡される。なお、シグナリング制御部♯２（３０１−２）とは、シグナリングサーバ♯２（２０３−２）が備えるシグナリング制御部（３０１）（図２参照）である。
【００５５】
次に、ステップＢ１１にて、シグナリング制御部♯２（３０１−２）は、ＩＮＶＩＴＥリクエストメッセージを記憶部に保存し、モバイルクライアント♯２（２０２−２）へプッシュ通知を行うためのプッシュ通知要求メッセージを、シグナリングサーバ♯２（２０３−２）のプッシュ通知部（３０２）に送信する。
【００５６】
次に、ステップＢ１２にて、プッシュ通知部（３０２）は、プッシュ通知要求メッセージをプッシュ通信サービス（２０１）に送信し、送信処理完了に関するメッセージを、シグナリング制御部♯２（３０１−２）に送信する。これにより、プッシュ通知は、モバイルクライアント♯２（２０２−２）に対して実行される。プッシュ通知により、シグナリングサーバ♯２（２０３−２）のＩＰアドレス、ポート番号、ＩＮＶＩＴＥリクエストのＣａｌｌ−ＩＤがモバイルクライアント♯２（２０２−２）へ通知される。
【００５７】
次に、ステップＢ１３にて、モバイルクライアント♯２（２０２−２）は、プッシュ通信サービス（２０１）からプッシュ通知を受信する。
【００５８】
次に、ステップＢ１４にて、モバイルクライアント♯２（２０２−２）は、プッシュ通知によって通知されたシグナリングサーバ♯２（２０３−２）に接続し、ＲＥＧＩＳＴＥＲリクエストメッセージを送信する。ＲＥＧＩＳＴＥＲリクエストメッセージのＸ−Ｃａｌｌ−ＩＤヘッダには、プッシュ通知に含まれる（ＩＮＶＩＴＥリクエストの）Ｃａｌｌ−ＩＤが設定される。
【００５９】
次に、ステップＢ１５にて、シグナリング制御部♯２（３０１−２）は、モバイルクライアント♯２（２０２−２）からＲＥＧＩＳＴＥＲリクエストメッセージを受信すると、ＲＥＧＩＳＴＥＲリクエストメッセージに対応する２００／ＲＥＧＩＳＴＥＲレスポンスメッセージをモバイルクライアント♯２（２０２−２）に送信する。また、シグナリング制御部♯２（３０１−２）は、モバイルクライアント♯２（２０２−２）のＩＤおよびコネクション情報を自身の記憶部に保存する。
【００６０】
次に、ステップＢ１６にて、シグナリング制御部♯２（３０１−２）は、モバイルクライアント♯２（２０２−２）のＩＤをサーバ状態通知部♯２（３０７−２）に通知する。なお、サーバ状態通知部♯２（３０７−２）とは、シグナリングサーバ♯２（２０３−２）が備えるサーバ状態通知部（３０７）（図２参照）である。
【００６１】
次に、ステップＢ１７にて、サーバ状態通知部♯２（３０７−２）は、モバイルクライアント♯２（２０２−２）のＩＤを、シグナリングサーバ♯２（２０３−２）のＩＤと関連付けてデータベース（２０４）に保存する。
【００６２】
次に、ステップＢ１８にて、シグナリング制御部♯２（３０１−２）は、ＲＥＧＩＳＴＥＲリクエストメッセージのＸ−Ｃａｌｌ−ＩＤにマッチするＩＮＶＩＴＥリクエストメッセージを検索し、抽出したＩＮＶＩＴＥリクエストメッセージをモバイルクライアント♯２（２０２−２）に送信する。モバイルクライアント♯２（２０２−２）は、ＩＮＶＩＴＥリクエストメッセージを受信する（着呼）。
【００６３】
図６に示す動作によれば、状態が最適なシグナリングサーバ（２０３）を介してモバイルクライアント（２０２）間で通信を確立することができる。
【００６４】
図７に示すように、プッシュ通信を受信したモバイルクライアント（２０２）の動作は以下の通りである。この動作は、図６のステップＢ１３，Ｂ１４を詳細化したものに相当する。この動作はステップＣ１から開始する。
【００６５】
ステップＣ１にて、モバイルクライアント（２０２）は、プッシュ通信サービス（２０１）からプッシュ通知を受信する。プッシュ通知におけるメッセージは、例えば、図８に示す、JavaScript Object Notationにより記述されたファイルとして示される。図８に示すように、プッシュ通知におけるメッセージは、プッシュ通知をしたシグナリングサーバ（２０３）のＩＰアドレス（符号８１）、ポート番号（符号８２）、および、ＩＮＶＩＴＥリクエストのＣａｌｌ−ＩＤ（符号８３）を含む。
【００６６】
次に、ステップＣ２にて、モバイルクライアント（２０２）は、プッシュ通知をプッシュ受信部（４０１）に渡す。プッシュ受信部（４０１）は、プッシュ通知に含まれるメッセージを解釈する。このメッセージがＲＥＧＩＳＴＥＲ送信要求メッセージであれば、メッセージから、プッシュ通知をしたシグナリングサーバ（２０３）のＩＰアドレス、および、ポート番号を取得する。
【００６７】
次に、ステップＣ３にて、プッシュ受信部（４０１）は、モバイルクライアント（２０２）が内部に保持しているシグナリングサーバ（２０３）のＩＰアドレス、ポート番号を変更するための変更要求をサーバアドレス編集部（４０３）に送信する。
【００６８】
次に、ステップＣ４にて、サーバアドレス編集部（４０３）は、モバイルクライアント（２０２）が内部に保持しているシグナリングサーバ（２０３）のＩＰアドレス、ポート番号を、プッシュ通知に含まれるメッセージに基づいてＩＰアドレス、ポート番号に変更する。サーバアドレス編集部（４０３）は、変更処理完了に関するメッセージを、プッシュ受信部（４０１）に送信する。
【００６９】
次に、ステップＣ５にて、プッシュ受信部（４０１）は、ＲＥＧＩＳＴＥＲリクエストメッセージの送信をシグナリング制御部（４０５）に要求する。このとき、プッシュ受信部（４０１）は、プッシュ通知に含まれるメッセージに基づいてＲＥＧＩＳＴＥＲのＸ−Ｃａｌｌ−ＩＤに設定する値（ＩＮＶＩＴＥリクエストのＣａｌｌ−ＩＤ）をシグナリング制御部（４０５）に通知する。
【００７０】
次に、ステップＣ６にて、シグナリング制御部（４０５）は、シグナリングサーバ（２０３）のＩＰアドレス、および、ポート番号をサーバアドレス取得部（４０４）に要求する。
【００７１】
次に、ステップＣ７にて、サーバアドレス取得部（４０４）は、モバイルクライアント（２０２）が内部に保持している、シグナリングサーバ（２０３）のＩＰアドレス、および、ポート番号を取得する。サーバアドレス取得部（４０４）は、取得処理完了に関するメッセージを、シグナリング制御部（４０５）に送信する。
【００７２】
次に、ステップＣ８にて、シグナリング制御部（４０５）は、ＲＥＧＩＳＴＥＲを作成する。このとき、ＲＥＧＩＳＴＥＲにプッシュ受信部（４０１）から通知されたＸ−Ｃａｌｌ−ＩＤを設定する。シグナリング制御部（４０５）は、ステップＣ７にて取得したＩＰアドレス、および、ポート番号に該当するシグナリングサーバ（２０３）へＲＥＧＩＳＴＥＲリクエストを送信する。
【００７３】
図７に示す動作によれば、モバイルクライアント（２０２）は、図６に示す動作を実現することができる。
【００７４】
第１の実施形態によれば、シグナリングサーバ（２０３）の状態を評価することで、モバイルクライアント（２０２）が接続し、セッション処理を実行する適切なシグナリングサーバ（２０３）を選択することができる。また、選択したシグナリングサーバ（２０３）の情報をプッシュ通知により能動的に通知することで、モバイルクライアント（２０２）が接続するシグナリングサーバ（２０３）を、シグナリングサーバ（２０３）側から直接制御することができる。このような方法は、従来のＤＮＳ（Domain Name Server）ラウンドロビン、ロードバランサ、クラスタリングなどの負荷分散の技術を不要とする。
したがって、負荷分散を実行するクライアントサーバシステムの低コスト化、簡易化、そして、構築短時間化を実現することができる。
【００７５】
≪第２の実施形態≫
本発明の第２の実施形態について、主に、第１の実施形態と相違する点について説明する。特別な事情を除き、第１の実施形態と重複する説明は省略する。第２の実施形態の通信制御システムの構成は、第１の実施形態のそれ（図１参照）と同じである。
【００７６】
図９に示すように、シグナリングサーバ（２０３）は、第１の実施形態と同様、シグナリング制御部（３０１）、プッシュ通知部（３０２）、シグナリングサーバ間通信部（３０３）、および、シグナリングサーバ管理部（３０６）を備える。
【００７７】
シグナリングサーバ間通信部（３０３）は、第１の実施形態のメッセージ送信部（３０４）およびメッセージ受信部（３０５）に加えて、コネクション切断部（６０１）を備える。
【００７８】
コネクション切断部（６０１）は、自身のシグナリングサーバ（２０３）とモバイルクライアント（２０２）との間で接続確立されているコネクションを切断する。
【００７９】
図１０に示すように、本実施形態の通信制御システムがモバイルクライアント♯１，♯２（２０２−１，２０２−２）間での通話を開始するときの動作は以下の通りである。ただし、モバイルクライアント♯１（２０２−１）はシグナリングサーバ♯１（２０３−１）に接続しており、モバイルクライアント♯２（２０２−２）はシグナリングサーバ♯３（２０３−３）に接続してコネクションを維持しているとする。また、セッション処理に適切なシグナリングサーバ（２０３）は、シグナリングサーバ♯２（２０３−２）であるとする。また、セッション制御メッセージにはＳＩＰを用いる。この動作はステップＤ１から開始する。
【００８０】
ステップＤ１〜ステップＤ８はそれぞれ、ステップＢ１〜ステップＢ８と同様である。ただし、ステップＢ６に相当するステップＤ６にて、本処理では、サーバ状態取得部（３０８）がシグナリングサーバ（２０３）のＩＤをデータベース（２０４）から検索する際、シグナリングサーバ♯３（２０３−３）のＩＤを返すこととする。
【００８１】
ステップＤ９にて、シグナリング制御部♯１（３０１−１）は、シグナリングサーバ♯３（２０３−３）とモバイルクライアント♯２（２０２−２）との間のコネクションを切断するための切断要求メッセージを、コネクション切断部♯１（６０１−１）に送信する。なお、コネクション切断部♯１（６０１−１）とは、シグナリングサーバ♯１（２０３−１）が備えるコネクション切断部（６０１）（図９参照）である。
【００８２】
ステップＤ１０にて、コネクション切断部♯１（６０１−１）は、モバイルクライアント♯２（２０２−２）のＩＤを、コネクション切断部♯３（６０１−３）（第２コネクション切断部）に通知する。なお、コネクション切断部♯３（６０１−３）とは、シグナリングサーバ♯３（２０３−３）が備えるコネクション切断部（６０１）（図９参照）である。
【００８３】
ステップＤ１１にて、コネクション切断部♯３（６０１−３）は、モバイルクライアント♯２（２０２−２）のＩＤに関連付けられているコネクションを切断する。コネクション切断部♯３（６０１−３）は、コネクション切断部♯１（６０１−１）にこの切断の完了通知し、コネクション切断部♯１（６０１−１）は、切断処理完了に関するメッセージを、シグナリング制御部♯１（３０１−１）に送信する。
【００８４】
ステップＤ１２にて、モバイルクライアント♯２（２０２−２）側のコネクションが切断される。
その後、本処理では、図６に記載されるステップＢ９〜ステップＢ１８の処理が実行される。
【００８５】
第２の実施形態によれば、第１の実施形態と組み合わせることによって、負荷の高いシグナリングサーバ（２０３）に接続しているモバイルクライアント（２０２）を、負荷の低いシグナリングサーバ（２０３）に接続し直すことができる。よって、通信システム全体のパフォーマンスを向上させることができる。
【００８６】
（変形例）
（１）第１，第２の実施形態では、セッション制御メッセージとしてＳＩＰを使用したが、ＨＴＴＰ（Hypertext Transfer Protocol）など他のプロトコルを使用してもよい。
【００８７】
（２）サーバ状態を示すファイルのフォーマットは、図５に示すように、JavaScript Object Notationにより記述してもよいが、ＸＭＬ（eXtensible Markup Language）など別の形式のフォーマットを使用することもできる。サーバ状態の要素は、図５に示したものに限られず、別の要素を追加することもできる。また、図８に示すプッシュ通知におけるメッセージについても、ファイルのフォーマットは、JavaScript Object Notationに代えてＸＭＬなど別の形式のフォーマットを使用することもできる。
【００８８】
（３）第１，第２の実施形態では、サーバクライアントシステムのクライアントとして、モバイルクライアントを対象としたが、プッシュ通知を受信可能なＰＣ（Personal Computer）クライアントを対象とすることもできる。
【００８９】
（４）ステップＢ８（図６）にて、サーバ状態を評価した結果、最適となるシグナリングサーバ（２０３）が複数存在する場合がある。この場合、サーバ状態評価部（３０９）、または、サーバ状態評価部（３０９）を制御するシグナリング制御部（３０１）は、複数の最適となるシグナリングサーバ（２０３）のうち１つを選択することができる。選択の方法としては、例えば、ランダムでもよいし、シグナリングサーバ（２０３）の各々に優先度を設定して、最適となるシグナリングサーバ（２０３）が複数存在した場合、優先度が最高のものを最適となるシグナリングサーバ（２０３）としてもよい。
このような方式を採用すれば、プッシュを通知されたモバイルクライアント（２０２）からＲＥＧＩＳＴＥＲリクエストメッセージを受信する１つのシグナリングサーバ（２０３）を確実に特定することができる。
【００９０】
（５）第１，第２の実施形態では、負荷が小さく最適と判定され着側のモバイルクライアント（２０２）からのＲＥＧＩＳＴＥＲリクエストメッセージを受信するシグナリングサーバ（２０３）と、着側のモバイルクライアント（２０２）にプッシュ通知を行うシグナリングサーバ（２０３）が同じであった。しかし、この両者のシグナリングサーバ（２０３）は別々のサーバであってもよい。換言すれば、着側のモバイルクライアント（２０２）にプッシュ通知を行うシグナリングサーバ（２０３）は、通信制御システムが有する複数のシグナリングサーバ（２０３）のいずれのサーバ（理論上、負荷が小さく最適と判定され着側のモバイルクライアント（２０２）からのＲＥＧＩＳＴＥＲリクエストメッセージを受信するシグナリングサーバ（２０３）は対象外となる）であってもよい。
ここで、このプッシュ通知の処理の一例は、図６のステップＢ１１とステップＢ１２において、次のように変更される。
図６のステップＢ１１に関わる変更処理において、シグナリング制御部♯２（３０１−２）は、ＩＮＶＩＴＥリクエストメッセージを記憶部に保存し、モバイルクライアント♯２（２０２−２）へプッシュ通知を行うためのプッシュ通知要求メッセージを、シグナリングサーバ＃２（２０３−２）以外のプッシュ通知部（３０２）に送信する。シグナリングサーバ＃２（２０３−２）以外のシグナリングサーバの一例は、図２のシグナリングサーバ＃１（２０３−１）、シグナリングサーバ＃３（２０３−３）、またはシグナリングサーバ＃４（図示せず）などである。
図６のステップＢ１２に関わる変更処理において、プッシュ通知部（３０２）は、プッシュ通知要求メッセージをプッシュ通信サービス（２０１）に送信し、送信処理完了に関するメッセージを、シグナリングサーバ＃２（２０３−２）のシグナリング制御部♯２（３０１−２）に送信する。
【００９１】
（６）第１，第２の実施形態では、データベース（２０４）は、通信制御システムが有する複数のシグナリングサーバ（２０３）のいずれとも異なる装置に格納されているとして説明した。しかし、データベース（２０４）が、通信制御システムが有する複数のシグナリングサーバ（２０３）のいずれかに格納されていてもよい。
【００９２】
（７）本明細書では、主に、通信サービスとしてＩＰ電話を採り上げたが、他の種類の通信サービス（例：音声、映像などのコンテンツ配信）についても本発明を適用することができる。
【００９３】
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。また、本実施形態で説明したソフトウェア構成をハードウェアとして実現することもできる。その他、ハードウェア、ソフトウェア等の具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００９４】
２０１    プッシュ通知サービス
２０２    モバイルクライアント
２０３    シグナリングサーバ
２０４    データベース
３０１    シグナリング制御部
３０２    プッシュ通知部
３０３    シグナリングサーバ間通信部
３０４    メッセージ送信部
３０５    メッセージ受信部
３０６    シグナリングサーバ管理部
３０７    サーバ状態通知部
３０８    サーバ状態取得部
３０９    サーバ状態評価部
３１０    サーバ状態通知タイマ
４０１    プッシュ受信部
４０２    サーバアドレス管理部
４０３    サーバアドレス編集部
４０４    サーバアドレス取得部
４０５    シグナリング制御部
６０１    コネクション切断部
【図１】
0006631300.tif 000002
【図２】
0006631300.tif 000003
【図３】
0006631300.tif 000004
【図４】
0006631300.tif 000005
【図５】
0006631300.tif 000006
【図６】
0006631300.tif 000007
【図７】
0006631300.tif 000008
【図８】
0006631300.tif 000009
【図９】
0006631300.tif 000010
【図１０】
0006631300.tif 000011
【図１１】
0006631300.tif 000012
【図１２】
0006631300.tif 000013
【図１３】
0006631300.tif 000014