IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アイコム株式会社の特許一覧

特許7421052サーバシステムおよびプロセスの冗長化方法
<>
  • 特許-サーバシステムおよびプロセスの冗長化方法 図1
  • 特許-サーバシステムおよびプロセスの冗長化方法 図2
  • 特許-サーバシステムおよびプロセスの冗長化方法 図3
  • 特許-サーバシステムおよびプロセスの冗長化方法 図4
  • 特許-サーバシステムおよびプロセスの冗長化方法 図5
  • 特許-サーバシステムおよびプロセスの冗長化方法 図6
  • 特許-サーバシステムおよびプロセスの冗長化方法 図7
  • 特許-サーバシステムおよびプロセスの冗長化方法 図8
  • 特許-サーバシステムおよびプロセスの冗長化方法 図9
  • 特許-サーバシステムおよびプロセスの冗長化方法 図10
  • 特許-サーバシステムおよびプロセスの冗長化方法 図11
  • 特許-サーバシステムおよびプロセスの冗長化方法 図12
  • 特許-サーバシステムおよびプロセスの冗長化方法 図13
  • 特許-サーバシステムおよびプロセスの冗長化方法 図14
  • 特許-サーバシステムおよびプロセスの冗長化方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-16
(45)【発行日】2024-01-24
(54)【発明の名称】サーバシステムおよびプロセスの冗長化方法
(51)【国際特許分類】
   G06F 11/20 20060101AFI20240117BHJP
   G06F 11/07 20060101ALI20240117BHJP
   H04L 45/28 20220101ALI20240117BHJP
【FI】
G06F11/20 623
G06F11/07 140A
G06F11/07 157
G06F11/07 196
H04L45/28
【請求項の数】 10
(21)【出願番号】P 2019048649
(22)【出願日】2019-03-15
(65)【公開番号】P2020149580
(43)【公開日】2020-09-17
【審査請求日】2021-12-17
(73)【特許権者】
【識別番号】000100746
【氏名又は名称】アイコム株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100131152
【弁理士】
【氏名又は名称】八島 耕司
(74)【代理人】
【識別番号】100174573
【弁理士】
【氏名又は名称】大坂 知美
(74)【代理人】
【識別番号】100173462
【弁理士】
【氏名又は名称】宮本 一浩
(72)【発明者】
【氏名】中野 晃
(72)【発明者】
【氏名】宮越 克明
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2006-172050(JP,A)
【文献】特開2017-027110(JP,A)
【文献】特開2010-086137(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/20
H04L 45/28
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
通信ネットワーク上に設置された第1サーバおよび第2サーバを備えたシステムであって、
前記第1サーバは複数のプロセスを実行し、前記第2サーバは、前記第1サーバで実行される複数のプロセスの少なくとも一部のプロセスを並行して実行し、
前記第1サーバおよび前記第2サーバで並行して実行されているプロセスのうち、一方のプロセスが、実際にサービスを提供する稼働モードで動作し、前記一方のプロセスに対応する他方のプロセスが、前記稼働モードの前記一方のプロセスがダウンしたとき、該ダウンしたプロセスに代わって稼働モードとなる待機モードで動作し、
稼働モードのプロセスである稼働プロセスは、待機モードのプロセスである待機プロセスに対して、自身が正常に動作していることを通知するメッセージである動作通知を定期的に送信し、
前記待機プロセスは、前記稼働プロセスから定期的に動作通知を受信している間、待機モードを継続し、
前記待機プロセスは、前記稼働プロセスから動作通知を受信しなくなると、自身の動作モードを待機モードから稼働モードに切り換えて、前記サービスの提供を開始するとともに、前記一方のプロセスがある一方のサーバにおけるダウンしない稼働モードのプロセスは、前記稼働モードで続けて動作し、
前記第1サーバで実行されるプロセスは、プロセス単位で冗長化の有無が設定される
サーバシステム。
【請求項2】
前記通信ネットワークは、第1ネットワークおよび第2ネットワークを有し、
前記第1サーバは、前記第1ネットワーク上に設けられ、前記第2サーバは、前記第2ネットワーク上に設けられ、
前記第1サーバと第2サーバとは、前記通信ネットワークとは別の通信線で接続されている
請求項1に記載のサーバシステム。
【請求項3】
前記通信ネットワーク上に、各プロセスの動作状況を記憶する管理テーブルを備えた管理サーバをさらに設け、
各プロセスは、前記管理サーバに対して、定期的に前記動作通知を送信し、
各プロセスは、自身の動作モードが待機モードから稼働モードに切り換わったとき、その旨を通知するメッセージであるモード切換通知を前記管理サーバに送信し、
前記管理サーバは、前記動作通知および前記モード切換通知によって取得した各プロセスの動作状況を前記管理テーブルに記憶し、
前記複数のプロセスのうちの所定の第1プロセスおよび第2プロセスは相互にプロセス間通信を実行し、且つ、前記第2プロセスは、前記第1サーバおよび前記第2サーバで並行して実行されており、
前記第1プロセスは、前記管理サーバに各プロセスの動作状況を問い合わせ、
前記管理サーバは、前記問い合わせに応じて前記各プロセスの動作状況を、前記第1プロセスに対して送信し、
前記第1プロセスは、受信した各プロセスの動作状況に基づいて、前記並行して実行されている第2プロセスのうち、稼働モードで動作しているプロセスを決定して、該稼働している第2プロセスを前記プロセス間通信の通信相手とする
請求項1に記載のサーバシステム。
【請求項4】
前記通信ネットワークは、異なるセグメントの第1ネットワークおよび第2ネットワークを有し、
前記第1サーバは前記第1ネットワーク上に設けられ、前記第2サーバは前記第2ネットワーク上に設けられ、
前記管理サーバは、前記第1ネットワーク上に設けられた第1管理サーバ、および、前記第2ネットワーク上に設けられた第2管理サーバを有し、
前記第1サーバ、第1管理サーバと、第2サーバ、第2管理サーバとの間は、前記ネットワークとは別の通信線で接続されており、
各プロセスは、前記動作通知およびモード切換通知を、前記第1管理サーバおよび第2管理サーバの両方に送信し、
前記第1プロセスは、自身と同じ側のネットワーク上にある管理サーバに各プロセスの動作状況を問い合わせる
請求項3に記載のサーバシステム。
【請求項5】
前記第1サーバおよび第2サーバで実行されるプロセスは、複数の通信端末から送信された音声信号を中継する呼制御プロセスであり、
前記複数の通信端末は、前記第1ネットワーク、第2ネットワークのいずれかを介して前記第1サーバまたは第2サーバにアクセスする、
請求項2または請求項4に記載のサーバシステム。
【請求項6】
前記第1サーバおよび第2サーバはそれぞれ、複数のパーテーションに分割され、各パーテーションでそれぞれ別のプロセスを実行する、
請求項5に記載のサーバシステム。
【請求項7】
前記別の通信線は、VPNで構成され、
前記第1サーバおよび第2サーバで実行されるプロセスは、複数の通信端末から送信された音声信号を中継する呼制御プロセスと、稼働モードにある呼制御プロセス同士を接続する接続プロセスとを含み、
稼働モードにある前記接続プロセスが、前記第1サーバと前記第2サーバの一方に位置する場合に、前記第1サーバと前記第2サーバの他方に位置する稼働モードにある前記呼制御プロセスに、前記VPNを介して、接続する、
請求項5または6に記載のサーバシステム。
【請求項8】
稼働モードにある前記呼制御プロセスは、該呼制御プロセスが、前記第1サーバに位置する場合に、前記VPNを介して、前記第2ネットワークに接続された通信端末に接続され、該呼制御プロセスが、前記第2サーバに位置する場合に、前記VPNを介して、前記第1ネットワークに接続された通信端末に接続され、
前記VPNがダウンした場合、前記第1サーバと前記第2サーバそれぞれに位置する呼制御プロセスと接続プロセスは、それぞれ稼働モードとなり、前記第1ネットワークに接続された通信端末間の通信と、前記第2ネットワークに接続された通信端末間の通信とをそれぞれ可能とする、
請求項7に記載のサーバシステム。
【請求項9】
通信ネットワーク上に設置された第1サーバが、複数のプロセスを実行し、
前記通信ネットワーク上に設置された第2サーバが、前記第1サーバで実行される複数のプロセスの少なくとも一部のプロセスを並行して実行し、
前記第1サーバおよび前記第2サーバで並行して実行されているプロセスのうち、一方のプロセスが、実際にサービスを提供する稼働モードで動作し、他方のプロセスが、前記稼働モードのプロセスがダウンしたとき、該ダウンしたプロセスに代わって稼働モードとなる待機モードで動作し、
稼働モードのプロセスである稼働プロセスは、待機モードのプロセスである待機プロセスに対して、自身が正常に動作していることを通知するメッセージである動作通知を定期的に送信し、
前記待機プロセスは、前記稼働プロセスから定期的に動作通知を受信している間、待機モードを継続し、
前記待機プロセスは、前記稼働プロセスから動作通知を受信しなくなると、自身の動作モードを待機モードから稼働モードに切り換えて、前記サービスの提供を開始し、
前記第1サーバで実行されるプロセスは、プロセス単位で冗長化の有無が設定される
プロセスの冗長化方法。
【請求項10】
各プロセスは、前記通信ネットワーク上に設けられた管理サーバに対して、定期的に前記動作通知を送信し、
各プロセスは、自身の動作モードが待機モードから稼働モードに切り換わったとき、その旨を通知するメッセージであるモード切換通知を前記管理サーバに送信し、
前記管理サーバは、前記動作通知および前記モード切換通知によって取得した各プロセスの動作状況を管理テーブルに記憶し、
前記第1サーバおよび前記第2サーバで並行して実行されているプロセスである第2プロセスとのプロセス間通信を実行する第1プロセスが、前記管理サーバに各プロセスの動作状況を問い合わせ、取得した各プロセスの動作状況に基づいて、前記並行して実行されている第2プロセスのうち、稼働モードで動作しているプロセスを決定して、該稼働している第2プロセスを前記プロセス間通信の通信相手とする
請求項に記載のプロセスの冗長化方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、サーバシステムの冗長化に関する。
【背景技術】
【0002】
稼働(active)サーバと待機(standby)サーバを設置し、稼働サーバと待機サーバとの間で同期をとることでサーバシステムを冗長化することは従来より知られている。このような冗長構成のサーバシステムを構成する場合、VRRPなどのプロトコルを用いて仮想IPで通信することが考えられる(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2013-077983号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、VRRPを用いるためには、同一ネットワークセグメント上に稼働サーバ、待機サーバの両方を設置する必要があり、また、この形態で冗長化されたサーバシステムは、サーバで複数のプロセスが実行されている場合、一部のプロセスに障害が発生した場合でも、全てのプロセスを稼働サーバから待機サーバへ切り換える必要があった。
【0005】
また、VRRPでは、稼働サーバは、自身が正常に動作していることを通知するため、待機サーバに向けて一定時間毎にアドバタイズメントを送信するが、逆方向すなわち、待機サーバから稼働サーバに向けてのアドバタイズメントは送信されないため、稼働サーバが、システム内の他のサーバの状態を知ることができなかった。
【0006】
この発明の目的は、プロセス単位でサーバを冗長化でき、プロセス間通信を行う場合等に、プロセスが他のプロセスの動作状況を容易に知ることができるようにすることにある。
【課題を解決するための手段】
【0007】
本発明は、通信ネットワーク上に設置された第1サーバおよび第2サーバを備えている。第1サーバは複数のプロセスを実行し、第2サーバは、第1サーバで実行される複数のプロセスの少なくとも一部のプロセスを並行して実行する。第1サーバおよび第2サーバで並行して実行されているプロセスのうち、一方のプロセスが、実際にサービスを提供する稼働モードで動作し(稼働プロセス)、一方のプロセスに対応する他方のプロセスが、稼働モードの一方のプロセスがダウンしたとき、これに代わって稼働モードとなる待機モードで動作する(待機プロセス)。稼働プロセスは、自身が正常に動作していることを通知するメッセージである動作通知を、定期的に待機プロセスに送信する。待機プロセスは、稼働プロセスから定期的に動作通知を受信している間待機モードを継続するが、稼働プロセスから動作通知を受信しなくなると、自身の動作モードを待機モードから稼働モードに切り換えて、このプロセスのサービスの提供を開始するとともに、一方のプロセスがある一方のサーバにおけるダウンしない稼働モードのプロセスは、稼働モードで続けて動作する。第1サーバで実行されるプロセスは、プロセス単位で冗長化の有無が設定される
【0008】
この発明では、第1サーバ、第2サーバでプロセスが並行して実行され、一方が稼働プロセス、他方が待機プロセスとされる。一部のプロセスが障害でダウンした場合に、サーバ全体を切り換えるのでなく、その障害が発生したプロセスの単位で切り換える。これにより、冗長構成の切り換え処理が簡略化されるとともに、第1、第2サーバの双方で一部のプロセスがダウンしていても、相手方のサーバでそのプロセスが正常に稼働していればシステム全体として動作可能であるため、より堅牢性が増す。
【0009】
通信ネットワークとして、例えばそれぞれ別の携帯電話キャリアのネットワークである第1ネットワーク、第2ネットワークを用い、第1サーバを第1ネットワーク上に設け、第2サーバを第2ネットワーク上に設けてもよい。この場合、第1サーバと第2サーバとは、専用線によるVPNなどで接続される。このように、第1サーバおよび第2サーバを別々のネットワーク上に設置することで、ネットワーク障害に対して強いシステムを構成することが可能になる。
【0010】
通信ネットワーク上に、各プロセスの動作状況を記憶する管理テーブルを備えた管理サーバをさらに設けてもよい。第1、第2サーバで実行される各プロセスは、管理サーバに対して定期的に動作通知を送信する。また、プロセスの動作モードが待機モードから稼働モードに切り換わったとき、そのプロセスはモード切換通知を管理サーバに送信する。管理サーバは、動作通知およびモード切換通知によって取得した各プロセスの動作状況を管理テーブルに記憶する。
【0011】
プロセスが、この管理テーブルの内容、すなわち、各プロセスの動作状況を参照することで、自身に通知が送られてこなくても、他のプロセスの動作状況を知ることができ、プロセス単位で稼働/待機(メイン/サブ)が切り換わっても、それに追従してプロセス間通信を維持することができる。
【0012】
例えば、第1プロセスが、第1サーバおよび第2サーバで並行して実行されているプロセス(第2プロセス)とプロセス間通信を実行する場合に、管理サーバに各プロセスの動作状況を問い合わせ、取得した各プロセスの動作状況に基づいて、2つのサーバで並行して実行されている第2プロセスのうち、稼働モードで動作しているプロセスを決定し、この稼働している第2プロセスをプロセス間通信の通信相手とする。
【0013】
通信ネットワークとして、例えばそれぞれ別の携帯電話キャリアのネットワークである第1ネットワーク、第2ネットワークを用い、第1サーバおよび第1管理サーバを第1ネットワーク上に設け、第2サーバおよび第2管理サーバを第2ネットワーク上に設けてもよい。この場合、第1サーバシステム(第1サーバ、第1管理サーバ)と第1サーバシステム(第2サーバ、第2管理サーバ)とは、専用線によるVPNなどで接続される。
【0014】
第1、第2サーバで実行される各プロセスは、第1管理サーバ、第2管理サーバの両方に対して動作通知およびモード切換通知を送信する。これにより、管理サーバの冗長化が可能になる。プロセスは、自身と同じ側のネットワーク上にある管理サーバに各プロセスの動作状況を問い合わせればよい。
【0015】
第1サーバおよび第2サーバで実行されるプロセスは、複数の通信端末から送信された音声信号を中継する呼制御プロセスであってよい。複数の通信端末のうち、第1ネットワークのSIMがセットされた通信端末は、第1ネットワークを介してサーバにアクセスする。第2ネットワークのSIMがセットされた通信端末は、第2ネットワークを介してサーバにアクセスする。第1ネットワークから第2サーバにアクセスする場合は、サーバ間をつなぐVPNを介する。
【発明の効果】
【0016】
この発明によれば、第1および第2サーバで複数のプロセスを実行する場合に、プロセス単位で冗長構成を構築することができ、サーバ(プロセス)切り換えの容易化およびより高い堅牢化を実現することができる。
【図面の簡単な説明】
【0017】
図1図1は、この発明の実施形態である音声通信システムの構成図である。
図2図2は、音声通信システムのサーバのブロック図である。
図3図3は、通信端末のブロック図である。
図4図4は、呼制御サーバ、プロビジョニングサーバのパーテーションおよび各パーテーションで実行されるプロセス(仮想サーバ)を示す図である。
図5図5は、全てのプロセスが正常に動作している場合の各プロセスおよび通信端末の接続形態を示す図である。
図6図6は、一部のプロセスがダウンした場合の各プロセスおよび通信端末の接続形態を示す図である。
図7図7は、各プロセスに設けられるステータステーブルを示す図である。
図8図8は、呼制御サーバの動作を示すフローチャートである。
図9図9は、管理サーバに設けられる管理テーブルを示す図である。
図10図10は、管理サーバの動作を示すフローチャートである。
図11図11は、一部のプロセスがダウンした場合の管理テーブルの記憶内容を示す図である。
図12図12は、通信端末に設定されるプロビジョニングデータの例を示す図である。
図13図13は、通信端末の動作を示すフローチャートである。
図14図14は、サーバシステム間をつなぐVPNがダウンした場合の呼制御プロセスと端末装置との接続形態を示す図である。
図15図15は、サーバシステム間をつなぐVPNがダウンした場合の管理テーブルの記憶内容を示す図である。
【発明を実施するための形態】
【0018】
図1は、この発明の実施形態である音声通信システム1の構成を示す図である。音声通信システム1は、複数(この実施形態では2つ)のサーバシステム2(2-1,2-2)および複数の通信端末4を有している。サーバシステム2と通信端末4とは、複数(この実施形態では2つ)のLTEネットワーク3(3-1,3-2)で相互に接続されている。2つのLTEネットワーク3-1,3-2は、それぞれ異なる通信キャリア(携帯電話会社)が提供する通信ネットワークである。
【0019】
LTEネットワーク3-1(第1キャリア)上にクラウドサーバとしてサーバシステム2-1が設置され、LTEネットワーク3-2(第2キャリア)上にクラウドサーバとしてサーバシステム2-2が設置される。サーバシステム2-1、2-2間は通信キャリア3よって提供される専用回線を用いたVPN6で接続されている。
【0020】
通信端末4のうち、LTEネットワーク3-1を介してサーバシステム2にアクセスする通信端末は、第1キャリアのSIMカードを装着しており、LTEネットワーク3-2を介してサーバシステム2にアクセスする通信端末は、第2キャリアのSIMカードを装着している。
【0021】
サーバシステム2-1は、呼制御サーバ21-1、プロビジョニングサーバ22-1および管理サーバ20-1を有している。また、サーバシステム2-2も同様に、呼制御サーバ21-2、プロビジョニングサーバ22-2および管理サーバ20-2を有している。呼制御サーバ21-1、プロビジョニングサーバ22-1、管理サーバ20-1およびLTEネットワーク3-1は、LAN(ローカル・エリア・ネットワーク)5-1で相互に接続されている。また、呼制御サーバ21-2、プロビジョニングサーバ22-2、管理サーバ20-2およびLTEネットワーク3-2は、LAN5-2で相互に接続されている。LAN5-1およびLAN5-2は、VPN6で相互に接続されている。
【0022】
したがって、サーバシステム2-1とサーバシステム2-2は、それぞれ異なる通信キャリアのクラウド上にあり、地理的に離れた場所に設置することが可能であるため、障害に強い堅牢な音声通信システムを構築することができる。また、サーバシステム2-1とサーバシステム2-2とは、専用線のVPN6で接続されているため、同一のネットワーク上にある場合と同様に、以下に説明するような柔軟なプロセスの冗長化が可能である。
【0023】
通常動作時は、サーバシステム2-1の呼制御サーバ21-1およびプロビジョニングサーバ22-1がメインサーバとして、通信端末4に対するプロビジョニングおよび呼制御を実行する。サーバシステム2-2の呼制御サーバ21-2およびプロビジョニングサーバ22-2は、メインサーバのダウンに備えたサブサーバとしてスタンバイしている。なお、メイン/サブの切り換えは、ハードウェア単位ではなく、内部で起動される複数のプロセス(仮想サーバ:図4参照)単位で行われる。
【0024】
管理サーバ20(20-1、20-2)は、サーバシステム2-1、2-2の呼制御サーバ21-1、21-2およびプロビジョニングサーバ22-1、22-2で実行される各プロセスの動作状況を管理し、要求に応じてサーバや通信端末4にその情報を提供する。このため、管理サーバ20は、図9に示すような管理テーブルを備えている。
【0025】
ある通信端末4(発呼端末)が他の通信端末4(着呼端末)と通信する場合、発呼端末が、着呼端末の識別情報を制御情報として含む音声信号を呼制御サーバ21に送信する。呼制御サーバ21は、この音声信号をLTEネットワーク3を介して着呼端末に転送する。これによって、SIP手順などの事前の呼出手続なしで(一般の無線トランシーバのような操作で)、ネットワークを介した発呼端末-着呼端末間の音声通信が可能になる。この通信方式は、国際公開WO2015/068663号パンフレットに詳細に記載されている。
【0026】
図2は、管理サーバ20(20-1,20-2)、呼制御サーバ21(21-1、21-2)、および、プロビジョニングサーバ22(22-1、22-2)のブロック図である。サーバは、制御部30、記憶部31およびネットワーク通信部32を有している。記憶部31は、たとえばハードディスクやRAMなどで構成される。管理サーバ20の場合、記憶部31には、図9に示すような管理テーブルが記憶される。呼制御サーバ21の場合、記憶部31には、図7に示すようなステータステーブルが設けられる。ネットワーク通信部32は、LAN5およびLTEネットワーク3を介して通信端末4や他のサーバと通信する。制御部30は、各サーバの動作を制御する。
【0027】
図3は、通信端末4のブロック図である。通信端末4は、図1に示したように、ハンディトランシーバの外観を有しているが、機能的にはLTEネットワーク3を介して音声信号を送受信する無線ネットワーク機器である。装置の動作を制御する制御部40はマイクロプロセッサで構成される。制御部40は、各種のデータが記憶される記憶部41を有している。記憶部41は、プロビジョニングデータ記憶エリア41Aを有し、このプロビジョニングデータ記憶エリア41Aには、図12に示すようなプロビジョニングデータが記憶される。制御部40には、操作部42、表示部43、オーディオ回路44、LTE通信部45およびカードスロット46が接続されている。操作部42は、PTTスイッチ220などのキースイッチを含み、ユーザの操作を受け付けてその操作信号を制御部40に入力する。表示部43は液晶ディスプレイを含む。液晶ディスプレイには、ユーザの操作によって選択された通信相手の識別番号や着信した通信相手の識別番号などが表示される。
【0028】
オーディオ回路44は、マイク240およびスピーカ241を有している。制御部40は、受信した音声信号をデコードしてオーディオ回路44に入力する。オーディオ回路は、このデコードされたオーディオ信号をアナログ信号に変換してスピーカ241から出力する。オーディオ回路44は、また、マイク240から入力された音声信号をデジタル信号に変換して制御部40に入力する。制御部40は、このデジタルオーディオ信号を音声パケット化してLTE通信部45に入力する。LTE通信部45は、LTE通信方式で無線通信を行う回路を有し、制御部40から入力されたパケットをLTEネットワーク3に向けて送信するとともに、LTEネットワーク3から受信したパケットを制御部40に入力する。なお、オーディオ回路44にはイヤホンコネクタ242が設けられている。イヤホンコネクタ242にイヤホンマイク(不図示)が接続されると、通信端末4本体に設けられているマイク240およびスピーカ241は機能を停止し、イヤホンマイクのマイクおよびスピーカ(イヤホン)が有効になる。カードスロット46には、端末識別情報が記憶されたICカード(SIMカード)47がセットされる。LTEネットワーク3-1で使用される通信端末4には第1キャリアのSIMカード47がセットされ、LTEネットワーク3-2で使用される通信端末4には第2キャリアのSIMカード47がセットされる。このSIMカード47に記憶されている端末識別情報(ICCID)が各通信端末4の識別情報として用いられる。
【0029】
以上の構成の通信端末4において、ユーザがPTTスイッチ220を押しながらマイク240に向けて音声を入力すると、通信端末4は、この音声信号を、予め設定された着呼端末の識別情報が書き込まれた音声パケットに編集し、この音声パケットをLTEネットワーク3を介して呼制御サーバ21に送信する。
【0030】
図4図5は、呼制御サーバ21、プロビジョニングサーバ22の冗長化構成を示す図である。図4は、呼制御サーバ21,プロビジョニングサーバ22による二重化と呼制御サーバ21の制御部30におけるパーテーション構成を示す図、図5は、呼制御サーバ21で実行される各プロセスの機能を示す図である。呼制御サーバ21は、複数のクライアントに対して独立した通信サービスを提供できるように、相互に独立した複数のプロセス(仮想サーバ)を実行する。図4に示すように、呼制御サーバ21は、6のパーテーションに分割され、各パーテーションでそれぞれ別のプロセスを実行する。プロビジョニングサーバ22は、複数のクライアントに対して共通であるが、各クライアントの通信端末4の固有識別番号に基づいて、それぞれ別のプロビジョニング処理を実行する。
【0031】
呼制御サーバ21-1の各パーテーションで実行されるプロセスは、図5に示すように、クライアントA,B,Cの音声通信を制御するための呼制御プロセスA,B,Cである。また、呼制御サーバ21-2の各パーテーションで実行されるプロセスは、図5に示すように、クライアントA,Bの音声通信を制御するための呼制御プロセスA,Bである。すなわち、クライアントA,Bの呼制御プロセスA,Bは冗長化されているが、クライアントCの呼制御プロセスCは冗長化されていない。
【0032】
呼制御プロセスAは、クライアントAの通信端末4相互間の音声通信を中継するプロセスである。呼制御プロセスCは、クライアントCの通信端末4相互間の音声通信を中継するプロセスである。なお、一つの呼制御プロセスは、所定の台数(例えば100台)までの通信端末4を収容することができる。なお、「通信端末4を収容する」とは、通信端末4を登録して、その通信端末4に対して音声通信の中継やプロビジョニングデータの送信を行うことである。所定台数以上の通信端末4を収容する場合には、呼制御プロセスを複数実行してそれぞれの呼制御プロセスに100台以内の通信端末4を収容し、各呼制御プロセスを拠点間接続プロセスでつないで、各呼制御プロセスに収容されている通信端末4相互間の音声通信を可能にする。クライアントBは、所有する(収容すべき)通信端末4の台数が多い(100台を超える)ため、2つの呼制御プロセスB1、B2が実行され、さらに、拠点間接続プロセスBrが実行されて呼制御プロセスB1、B2をつないでいる。これにより、クライアントBに属する全ての通信端末4相互間の音声通信が実現される。
【0033】
このように、クライアントA,Bの呼制御プロセスA,Bは冗長化されているが、クライアントCの呼制御プロセスCは冗長化されていない。冗長化されたハードウェアである呼制御サーバ21の内部で実行される呼制御プロセスは、プロセス単位で冗長化の有無を設定することができる。ハードウェア資源やプロセスの重要度などに基づいて、各プロセスの冗長化の有無を決定すればよい。
【0034】
プロビジョニングサーバ22は、通信端末4に図12に示すようなプロビジョニングデータを送信するためのサーバである。通信端末4は、電源オン時にプロビジョニングサーバ22にアクセスし、図12に示すプロビジョニングデータを受信する。通信端末4は、受信したプロビジョニングデータで自身の動作をセットアップし、その通信端末4を保有するクライアントの呼制御プロセスにアクセスできるようになる。プロビジョニングについては、国際公開WO2017/086416号パンフレットに詳細に記載されている。
【0035】
なお、呼制御サーバ21-1およびプロビジョニングサーバ22-1と呼制御サーバ21-2およびプロビジョニングサーバ22-2が、必ずしも同じ性能のものである必要はなく、設定可能なパーテーションの数も同数である必要はない。
【0036】
冗長化され呼制御サーバ21-1、呼制御サーバ21-2の両方で実行されている呼制御プロセスA,Bのうち、呼制御サーバ21-1で実行されているプロセスが、稼働(active)プロセスとして通信端末4相互間の音声通信を中継する呼制御処理を実際に行い、呼制御サーバ21-2で実行されている各プロセスは、待機(standby)プロセスとして、対応する稼働プロセス(呼制御サーバ21-1で実行されている同じプロセス)がダウンした場合に交替するべく待機している。各プロセスの動作モード(稼働プロセス/待機プロセス)は、管理サーバ20の管理テーブル(図9参照)に記憶される。
【0037】
なお、プロビジョニングサーバ22-1、プロビジョニングサーバ22-2は、両方とも稼働(active)モードに設定され、通信端末4からのプロビジョニング要求に応答する。
【0038】
図5は、全てのプロセスが正常に実行されているとき(通常運用)の各呼制御プロセスと通信端末4との接続関係を示している。各クライアントが所持する通信端末4には、以下の種類がある。通信キャリア1のSIMがセットされ、LTEネットワーク3-1を介してサーバシステム2にアクセスする通信端末4、および、通信キャリア2のSIMがセットされ、LTEネットワーク3-2を介してサーバシステム2にアクセスする通信端末4がある。通常運用時は、メインサーバである呼制御サーバ21-1の呼制御プロセスA,B1,B2,Cが稼働して、実際に呼制御処理を行っているため、通信端末4は全て呼制御サーバ21-1のプロセスに接続される。呼制御サーバ21-1はLTEネットワーク3-1側に接続されているため、LTEネットワーク3-2に接続される通信端末4は、LTEネットワーク3-2からVPN6を経由して呼制御サーバ21-1にアクセスする。なお、通信キャリア1のSIMおよび通信キャリア2のSIMの両方がセットされ、LTEネットワーク3-1、LTEネットワーク3-2のどうちらを介してでもサーバシステム2にアクセス可能な(マルチキャリア)通信端末4を設けてもよい。
【0039】
通常運用中に呼制御サーバ21-1のいずれかのプロセスがダウンした場合、ダウンしたプロセスが、図6(B),図6(C)に示すような形態で、呼制御サーバ21-2の待機プロセスに切り換えられる。図6では、クライアントBの呼制御プロセスB(呼制御プロセスB1,B2および拠点間接続プロセスBr)における稼働プロセスから待機プロセスへの切り換えについて説明する。
【0040】
図6(A)はクライアントBの各プロセスが正常に実行されている場合の各プロセスおよび通信端末4の接続形態を示している。この接続形態は、図5に示したものと同じである。ここでは、呼制御プロセスB1-1,B2-1および拠点間接続プロセスBr-1が稼働しており、通信端末4は、呼制御プロセスB1-1,B2-1にアクセスする。詳細には、通信端末4-1は、LTEネットワーク3-1を介して呼制御プロセスB1-1にアクセスし、通信端末4-3は、LTEネットワーク3-2およびVPN6を介して呼制御プロセスB1-1にアクセスする。通信端末4-2は、LTEネットワーク3-1を介して呼制御プロセスB2-1にアクセスし、通信端末4-4は、LTEネットワーク3-2およびVPN6を介して呼制御プロセスB2-1にアクセスする。
【0041】
図6(B)は、呼制御プロセスB2-1がダウンした場合の接続形態を示している。稼働プロセスであった呼制御プロセスB2-1がダウンしたため、対応する待機プロセスである呼制御プロセスB2-2が稼働プロセスとなる。そうすると、通信端末4-2、4-4は、呼制御プロセスB2-1から呼制御プロセスB2-2にアクセス先を変更する。詳細には、通信端末4-2は、LTEネットワーク3-1およびVPN6を介して呼制御プロセスB2-2にアクセスし、通信端末4-4は、LTEネットワーク3-2を介して呼制御プロセスB2-2にアクセスする。また、拠点間接続プロセスBr-1は、メインの呼制御プロセスB1-1とサブの呼制御プロセスB2-2とを接続するよう接続拠点を切り換える。
【0042】
図6(C)は、拠点間接続プロセスBr-1がダウンした場合の接続形態を示している。稼働プロセスであった拠点間接続プロセスBr-1がダウンしたため、待機プロセスである拠点間接続プロセスBr-2が稼働プロセスとなる。呼制御サーバ21-1の呼制御プロセスB1-1、B2-1が正常に稼働しているため、拠点間接続プロセスBr-2は、VPN6を介して、呼制御サーバ21-1の呼制御プロセスB1-1およびB2-1を接続する。なお、通常動作時と同様に呼制御プロセスB1-1およびB2-1は正常に稼働しているため、通信端末4-1~4のアクセス先に変更はない。
【0043】
このように、ハードウェアの呼制御サーバ21-1、21-2で複数のプロセス(仮想サーバ)が稼働しており、そのいずれかがダウンした場合、プロセス単位で呼制御サーバ21-1のプロセスから呼制御サーバ21-2のプロセスに切り換えられる。
【0044】
各プロセス(パーテーション)は、自身が実行しているプロセスおよび対応する相手プロセスの状態を記憶するため、記憶部31に図7に示すようなステータステーブルを有している。ステータステーブルは、自身が実行しているプロセスの名称、動作設定、動作モード(稼働モード(active)/待機モード(standby))、および、自身の動作通知有効期限、稼働中システムの動作通知有効期限の記憶エリアを有している。動作設定の欄には、メインプロセス(main)/サブプロセス(sub)/単独プロセス(alone)のいずれかの設定情報が記憶される。呼制御サーバ21-1および呼制御サーバ21-2で、同じプロセスが実行される場合、そのうちの一方(一般的にはメインサーバである呼制御サーバ21-1で実行されるプロセス)がメインプロセスに設定され、他方(一般的にはサブサーバである呼制御サーバ21-2で実行されるプロセス)がサブプロセスに設定される。両プロセスが正常に動作しているときは、メインプロセスが実際の処理を実行する稼働モードになり、サブプロセスが待機モードになる。メインプロセスがダウンした場合、サブプロセスが稼働モードになる。動作モードの欄には、このプロセスの動作モードが稼働モード(active)であるか、待機モード(stadby)であるかが記憶される。
【0045】
また、呼制御プロセスCは、呼制御サーバ21-1のみで実行されているため、動作設定の欄には、単独プロセス(alone)が記憶される。
【0046】
なお、各プロセスが管理サーバ20および対応する待機プロセスに送信する動作通知は、自身が実行しているプロセスの名称、動作設定、動作モード、および、この動作通知の有効期限を含んでいる。
【0047】
図7(A)は、メインプロセスのステータステーブルの記憶内容の例を示す図である。この例では、このプロセス(パーテーション)は、呼制御プロセスB2-1を実行しており、動作設定はメイン、動作モードは稼働モードである。動作通知有効期限は、自身が管理サーバ20および相手のサブプロセスに対して送った動作通知の有効期限が記憶される。動作通知は、自身が管理サーバ20および待機プロセスに対して、自身が正常に動作していることを通知するメッセージである。待機プロセスおよび管理サーバ20は、この動作通知の有効期限が経過する前に新たな有効期限の動作通知が送られてくることで稼働プロセスが正常に動作していることを確認する。稼働プロセス動作通知有効期限は、自身が待機中の場合に、対応する稼働プロセスから受信した動作通知の有効期限が記憶される。図7(A)は、稼働プロセスのステータステーブルであるため、稼働プロセスから受信する稼働プロセス動作通知有効期限は空欄である。
【0048】
図7(B)は、サブプロセスのステータステーブルの記憶内容の例を示す図である。この例では、このプロセス(パーテーション)は、呼制御プロセスB2-2を実行しており、動作設定はサブプロセス、動作モードは待機モードである。動作通知有効期限は、自身が管理サーバ20に対して送った動作通知の有効期限が記憶される。稼働システム動作通知有効期限には、対応する稼働プロセス(呼制御プロセスB2-1)から送られてきた動作通知の有効期限が記憶される。有効期限が経過する前に新たな有効期限の動作通知が送られてくると、その新たな有効期限でテーブルを更新し、待機モードを継続する。
【0049】
この有効期限を過ぎても稼働プロセスから動作通知が送られて来ない場合、同図右欄に示すように、このサブプロセスは、稼働プロセスであるメインプロセスがダウンしていると判断し、自身の動作モードを稼働モードに切り換えて、通信端末4の音声通信の中継を開始する。
【0050】
図8は呼制御サーバ21で実行される呼制御プロセスの動作を示すフローチャートである。図8(A)は、稼働プロセスの動作通知処理を示している。稼働プロセスは、定期的(たとえば1分毎)に、両側の管理サーバ20-1、20-2に対して動作通知を送信するとともに(S11)、対応する待機プロセスに対しても動作通知を送信する(S12)。送信した動作通知の有効期限は、次の送信予定時刻よりも長く設定されている。この有効期限で、自身のステータステーブルの動作通知の有効期限を更新する(S13)。
【0051】
図8(B)は、稼働プロセスおよび待機プロセスが実行する動作状況確認処理を示している。この処理も定期的に実行される。稼働プロセスには、他のプロセスと接続があるものがある。他のプロセスとの接続とは、図5図6に示したように、呼制御プロセスB1と拠点間接続プロセスBr、呼制御プロセスB2と拠点間プロセスBrがそれぞれ接続され音声信号等の送受信を行う形態である。自身のプロセスがこのような形態で他のプロセスで接続されている場合、他のプロセスの動作状況に合わせて接続先を切り換える等の処理が行われる。プロセスは、所定の時間ごとに管理サーバ20に各プロセスの動作状況を問い合わせる(S16)。この問い合わせに応答して管理サーバ20から各プロセスの動作状況が返信されてくると(S17)、接続先のプロセスがダウンして待機プロセスが稼働プロセスに切り換わっているなど、接続先の動作状況に変更があるかを判断する(S18)。接続先の動作状況に変更があった場合には(S18でYES)、現在の動作状況に合わせて接続先を切り換えて(S19)、処理を終了する。他のプロセスと接続がない場合、または、接続先の変更がない場合(S18でNO)には、そのまま処理を終了する。
【0052】
例えば、図6(B)のように、呼制御プロセスB2-1がダウンした場合、拠点間接続プロセスBr-1は、管理サーバ20-1に動作状況を問い合わせたときに、呼制御プロセスB2-1がダウンしていること、および、その待機プロセスであった呼制御プロセスB2-2が稼働を開始していることを知る。そこで、呼制御プロセスB2-2に対するプロセス間通信を開始することにより、呼制御プロセスBの稼働を維持する。
【0053】
図8(B)における管理サーバ20への問い合わせは、同じ側の管理サーバ20、すなわち、このプロセスが実行されている呼制御サーバ21と同じサーバシステム2-1、2-2内に設置されている管理サーバ20に対して行うが、この管理サーバ20が応答しなかった場合は、反対側の管理サーバ20(このプロセスが実行されている呼制御サーバ21と異なるサーバシステム2-1、2-2内に設置されている管理サーバ20)に再度問い合わせる。
【0054】
また、管理サーバ20への問い合わせは、一定時間毎に行ってもよいが、プロセス間通信の変更や待機プロセスの動作モードの切り換え(図8(D)参照)が発生するごとに管理サーバ20に対して各プロセスの動作状況(通信相手)を問い合わせるようにしてもよい。
【0055】
図8(C)は、待機プロセスの動作通知処理を示している。待機プロセスは、定期的(たとえば1分毎)に、両側の管理サーバ20-1、20-2に対して動作通知を送信する(S21)。送信した動作通知の有効期限は、次の送信予定時刻よりも長く設定されている。この有効期限で、自身のステータステーブルの動作通知の有効期限を更新する(S22)。
【0056】
図8(D)は、待機プロセスの動作状況確認処理を示している。この処理も定期的に実行される。待機プロセスは、ステータステーブルを参照して稼働プロセスの動作通知が有効であるかを判断する(S24)。稼働プロセスからの動作通知の有効期限が切れている場合(S24でNO)、稼働プロセスはダウンしていると判断し、図8(B)の処理で取得していた各プロセスの動作状況に合わせて接続先等を設定して、ダウンした稼働プロセス(メインプロセス)に代わって自身を稼働プロセスとして動作を開始する(S25)。同時にステータステーブルの動作モードを稼働モード(active)に書き換える(S26)。例えば、図6(C)のように、拠点間接続プロセスBr-1がダウンした場合、拠点間接続プロセスBr-2が、稼働している呼制御プロセスB1-1、B2-1とプロセス間通信を行う稼働を開始する。
【0057】
稼働プロセスとして動作を開始したのち、管理サーバ20に対して、動作モードを変更した旨を通知する(S27)。この動作モード変更通知は、動作通知を兼ねている。一方、S24において、稼働プロセスが正常に動作している場合、すなわち、動作通知の有効期限が切れていない場合は(S24でYES)、S24で動作を終了する。
【0058】
図9は、管理サーバ20に設定される管理テーブルの例を示す図である。図9には、管理テーブルのうち、呼制御サーバ21-1、21-2のプロセスに関する部分のみ記載する。プロビジョニングサーバ22-1、22-2の各プロセスについても同様のテーブルが設けられている。
【0059】
管理テーブルには、メインサーバである(第一)呼制御サーバ21-1、および、サブサーバである(第二)呼制御サーバ21-2で実行される全てのプロセスの情報が記憶されている。管理テーブルには、プロセスごとに、動作通知有効期限、動作設定、動作モードが記憶される。動作通知有効期限の欄には、プロセスから送られてきた動作通知に記載されていた有効期限が記憶される。管理サーバ20が、この有効期限以内にプロセスから新たな動作通知を受信した場合、この有効期限は、その新たな動作通知に記載されている有効期限に更新される。動作設定の欄には、メインプロセス(メイン)/サブプロセス(サブ)のいずれかの設定情報が記憶される。動作モードの欄には、稼働モード(active)/待機モード(stadby)のいずれかが記憶される。
【0060】
各プロセスから、動作通知有効期限内に新たな動作通知が送られてこなかった場合には、そのプロセスがダウンしている(動作通知を送信する機能が失われている)として、動作モードをダウンに書き換える。正常に動作しているプロセスから定期的に全プロセスの動作状況の問い合わせがあるため、この問い合わせに応答して、正常に稼働しているプロセス、正常に待機しているプロセス、および、ダウンしているプロセス等の情報を返信する。各プロセスは、この動作状況に応じて接続先の切り換えなどを行う。また、管理サーバ20は、稼働プロセスのダウンに対応して稼働を開始したプロセスから、稼働を開始した旨の通知を受信した場合、管理テーブルのこのプロセスの動作モードを稼働モードに書き換える。
【0061】
なお、管理テーブルに、プロセス間通信を行うプロセス(例えば呼制御プロセスB1-1、B1-2、Br-1など)について、通信相手である接続先プロセスを記憶するエリアを設けてもよい。
【0062】
図10は管理サーバ20の動作を表すフローチャートである。図10(A)は、有効期限更新動作を示すフローチャートである。いずれかのプロセスから動作通知を受信すると(S31)、管理テーブルのそのプロセスの動作通知有効期限を更新する(S32)。なお、プロセスが起動し、初めて動作通知を送信した場合、管理サーバ20は、このプロセスを管理テーブルに登録して動作通知有効期限を書き込む。
【0063】
図10(B)は、プロセスから稼働開始通知を受信した場合の動作を示すフローチャートである。待機プロセスから(ダウンした稼働プロセスに代わって)稼働を開始した旨の通知を受信すると(S35:図8(D)のS27参照)、管理テーブルのそのプロセスの動作モードを稼働モード(active)に変更する(S36)。この稼働開始通知は動作通知を兼ねているので、このプロセスの動作通知有効期限を更新する(S37)。そして、稼働プロセスが変更になった旨をシステム管理者の端末(パーソナルコンピュータ)に対してメール等でアラートを送信する(S38)。
【0064】
図10(C)は、テーブルメンテナンス動作を示すフローチャートである。定期的にテーブル上の全てのプロセスについて以下の処理を実行する。プロセスの動作通知の有効期限を読み出す(S41)。そしてこの有効期限を現在時刻と比較し、有効期限切れになっている場合には(S42でYES)、動作モードをダウンに書き換えて(S44)、次のプロセスのメンテンスに進む。なお、S44において、ダウン状態が継続していて既に動作モードがダウンに書き換えられている場合でも、動作モードのダウンへの書き換えが行われるが、既にダウンモードの場合は書き換えないようにしてもよい。
【0065】
動作通知の有効期限が切れていなければ(S42でNO)、現在の動作モードがダウンであるかを判断する(S45)。動作モードがダウンである場合には(S45でYES)、動作モードを待機モード(standby)に書き換えたのち(S46)、次のプロセスのメンテナンスに進む。動作通知の有効期限が切れておらず(S42でNO)且つ動作モードがダウンでない場合には(S45でNO)、このプロセスに対する処理を終了して、次のプロセスのメンテナンスに進む。
【0066】
S46に示すように、一度ダウンしたプロセスが復旧した場合、現在稼働中のプロセスのダウンに備えた待機プロセスとして動作する。なお、予め動作設定がメインプロセスとされているプロセスが復旧した場合には、そのとき稼働している対応するサブプロセスを待機モードに変更させて、メインプロセスを稼働プロセスに復帰させてもよい。
【0067】
図11(A)、(B)に、クライアントBの呼制御プロセスが、図6(B)の状態になった場合、図6(C)の状態になった場合の管理テーブルの記憶内容を示す図である。この図では、各プロセスの動作モードの欄のみを表示している。図6(B)の状態では、呼制御プロセスB2-1がダウンし、これに代えて呼制御プロセスB2-2が稼働しているため、図11(A)に示す管理テーブルにおいても、呼制御プロセスB2-1の動作モードがダウン(down)に書き換えられ、これに代えて呼制御プロセスB2-2の動作モードが稼働モード(active)になっている。
【0068】
また、図6(C)の状態では、呼制御サーバ21-1の拠点間接続プロセスBr-1がダウンし、これに代えて呼制御サーバ21-2の拠点間接続プロセスBr-2が稼働しているため、図11(B)に示す管理テーブルにおいても、拠点間接続プロセスBr-1の動作モードがダウン(down)に書き換えられ、これに代えて拠点間接続プロセスBr-2の動作モードが稼働モード(active)になっている。
【0069】
このように、各プロセスの動作モードの変更に対応して管理テーブルを更新し、他のプロセスや通信端末4からの問い合わせに対しては、このテーブルの内容を送信する。これにより、プロセスが他のプロセスの状態を知ることができるようになり、プロセス間通信の接続先を変更することや、通信端末4が、アクセスする呼制御プロセスを変更することが容易になる。
【0070】
なお、管理サーバ20は、ウェブサーバとしても機能する。管理テーブルの内容やその更新履歴等をLAN5またはLTEネットワーク3経由で管理者のパーソナルコンピュータに映すことができる。
【0071】
図10(D)は、プロセスからの問い合わせに対応する処理を示すフローチャートである。プロセスから動作状況の問い合わせがあると(S50:図8(B)のS16、図8(D)のS25参照)、問い合わせのあったプロセスに対して、各プロセスの動作状況(管理テーブルの内容)を送信する(S51)。これにより、プロセスは他のプロセスの動作状況を知ることができる。
【0072】
図10(E)は、通信端末4からの問い合わせに対応する処理を示すフローチャートである。通信端末4から稼働中の呼制御プロセスの問い合わせがあると(S54)、その通信端末4が所属するクライアントの呼制御プロセスのうち稼働している側の呼制御プロセスを通知する(S55)。これにより、稼働していた呼制御プロセスがダウンして稼働中呼制御プロセスが切り換わった場合、通信端末4がその切り換わった呼制御プロセスにアクセスすることが可能になる。
【0073】
図12は、通信端末4のメモリに記憶されるプロビジョニングデータの一例を示す図である。プロビジョニングデータは、メインプロビジョニングサーバアドレス、サブプロビジョニングサーバアドレス、メイン呼制御サーバアドレス、サブ呼制御サーバアドレス、および、各種設定情報を含んでいる。
【0074】
メインプロビジョニングサーバアドレスは、プロビジョニングサーバ22-1のIPアドレスおよびポート番号を含んでいる。サブプロビジョニングサーバアドレスは、プロビジョニングサーバ22-2のIPアドレスおよびポート番号を含んでいる。これらのアドレスは、プロビジョニングサーバ22から与えられてもよく、事前に通信端末4に記憶されていてもよい。
【0075】
メイン呼制御サーバアドレスは、呼制御サーバ21-1のIPアドレス、および、この通信端末4が所属するクライアントのプロセスのポート番号を含んでいる。サブ呼制御サーバアドレスは、プロビジョニングサーバ21-2のIPアドレス、および、この通信端末4が所属するクライアントのプロセスのポート番号を含んでいる。メインプロビジョニングサーバアドレス/サブプロビジョニングサーバアドレス、および、メイン呼制御サーバアドレス/サブ呼制御サーバアドレスには、どのアドレスのプロセスが稼働中であるかを示す稼働中フラグが設けられている。デフォルトでは、メインプロビジョニングサーバアドレスおよびメイン呼制御サーバアドレスの稼働中フラグがセットされる。
【0076】
各種設定情報は、たとえば、通信端末4の呼出ID、通知音設定(着信時の通知音の選択情報)、イヤホン設定(イヤホンマイクが接続された場合にフル・デュプレックス通信を行うか否かの設定情報)、アドレス帳(呼出可能な通信端末4の呼出IDリスト)、音量設定(通話音の音量設定情報)などである。
【0077】
図13は、通信端末4の動作を示すフローチャートである。図13(A)は、プロビジョニング動作を示すフローチャートである。この動作は通信端末4の電源オン時などに実行される。通信端末4の制御部40が、メインサーバであるプロビジョニングサーバ22-1にアクセスして、プロビジョニングデータの送信を要求する(S61)。一定時間以内にプロビジョニングサーバ22-1から応答があった場合には(S62でYES)、このサーバからプロビジョニングデータを受信して(S65)、プロビジョニングを実行する(S66)。もし、一定時間以内にプロビジョニングサーバ22-1から応答がなかった場合には(S62でNO)、サブサーバであるプロビジョニングサーバ22-2にアクセスして、プロビジョニングデータの送信を要求し(S63)、稼働中フラグをサブプロビジョニングサーバ22-2側に切り換える(S64)。そして、サブプロビジョニングサーバ22-2からプロビジョニングデータを受信する(S65)。もし、2つのプロビジョニングサーバ22-1、22-2が同時にダウンした場合、通信端末4は、以前に取得したプロビジョニングデータを用いて接続を試みるようにすればよい。
【0078】
図13(B)は、通信端末4の音声通信時の動作を示すフローチャートである。PTTボタン220が押されるとこの動作が開始される。通信端末4の制御部40が、メインの呼制御サーバ21-1のこの通信端末4に割り当てられた呼制御プロセス(仮想サーバ)に音声信号を送信する(S71)。一定時間以内に呼制御サーバ21-1のプロセスから応答があった場合には(S72でYES)、音声通信を開始する。もし、一定時間以内に呼制御サーバ21-1のプロセスから応答がなかった場合には(S72でNO)、通信不可である旨の表示を行う等して動作を停止する。この通信ダウンの状態は、それまで稼働していた呼制御プロセスがダウンしたのち、図13(C)の稼働プロセス確認前に通信が開始された場合に発生し得る状態である。
【0079】
図13(C)は、通信端末4が、稼働している呼制御プロセスを問い合わせる動作を示すフローチャートである。この処理は定期的に行われるが、図13(B)のS72で稼働中としていた呼制御プロセスから応答がなかったときに臨時に実行されるようにしてもよい。通信端末4の制御部40は、管理サーバ20に、この通信端末4を収容している稼働中の呼制御プロセスを問い合わせる(S73)。これに応答して管理サーバから稼働プロセスの情報が送られてくるので、これを受信し(S74:図10(E)S55参照)、稼働プロセスに切り換えられたかを判断する(S75)。切り換えられた場合は(S75でYES)、呼制御サーバの稼働中フラグを稼働プロセス側(サブ呼制御サーバ側)に切り換える(S76)。これ以後、通信端末4は、音声通信が発生した場合は、稼働プロセスに切り換わった呼制御プロセスに対してアクセスするようになる。
【0080】
なお、通信端末4は、運用開始時および定期的に、さらにはエリア移動などの機会ごとに、稼働モードの呼制御サーバ20に対して、登録を要求するメッセージ(レジストメッセージ)を送信する。稼働モードの呼制御サーバ20は、このメッセージを受信することにより、運用中の通信端末を把握し、この通信端末4を端末テーブルに登録することができる。通信端末4は、このレジストメッセージを稼働モードとされる呼制御サーバ20-1/2に送信しても応答がない場合、この呼制御サーバ20-1/2はダウンしているとして、反対側の呼制御サーバ20-2/1に、改めてレジストメッセージを送信する。
【0081】
図10図13に示すフローチャートでは、通信端末4は、定期的に管理サーバ21に対して、稼働モードの呼制御プロセスを問い合わせているが、上記のレジストメッセージに対する応答の有無によって稼働モードの呼制御プロセスがどちらであるかを解決してもよい。
【0082】
また、待機モードで動作している呼制御プロセスが、通信端末からレジストメッセージを受信した場合、レジストメッセージの送信先を反対側の(稼働モードの)呼制御プロセスに切り換えて再送信すべき旨の応答を通信端末に返信するようにしてもよい。
【0083】
レジストメッセージに対する応答の有無で稼働モードの呼制御サーバ20を判断するようにすれば、通信端末4の台数が多い場合でも、管理サーバ21に対する問い合わせが頻発することがなくなり、管理サーバ21の負荷を軽減することができる。ただし、一般的にレジストの間隔は、図13(C)等に示した問い合わせの間隔よりも長いため、通信端末4が稼働モードの呼制御プロセスの交代を知るまでの時間が長くなる。
【0084】
以上は、呼制御サーバ21-1、21-2のプロセスがダウンした場合の呼制御動作の切り換えについて説明した。プロセスがダウンしていない場合でも、サーバシステム2-1とサーバシステム2-2とをつなぐVPN6がダウンする場合がある。図14図15を参照して、VPN6がダウンした場合の縮退動作について説明する。
【0085】
図14は、クライアントBの呼制御プロセスにおいて、VPN6がダウンした場合のプロセス間の接続形態を示している。管理サーバ20-1、20-2、呼制御サーバ21-1、21-2、プロビジョニングサーバ22-1、22-2は正常に動作しており、呼制御プロセスB1-1、B2-1、B1-2、B2-2、および、拠点間接続プロセスBr-1、Br-2もそれぞれ正常に動作しているものとする。
【0086】
VPN6がダウンすると、サーバシステム2-1、2-2間の通信が不可能になる。この場合でも、サーバシステム2-1の管理サーバ20-1、呼制御サーバ21-1、プロビジョニングサーバ22-1は正常に動作しているため、LTEネットワーク3-1を介してサーバシステム2-1にアクセスする通信端末4(4-1、4-2)に対して呼制御プロセスBなどのサービスを継続することが可能である。
【0087】
一方、サーバシステム2-2においても、管理サーバ20-2、呼制御サーバ21-2、プロビジョニングサーバ22-2は正常に動作おり、且つ、サーバシステム2-1の各プロセスからの動作通知が届かなくなるため、管理サーバ20-2および呼制御サーバ21-2、プロビジョニングサーバ22-2の各プロセスは、サーバシステム2-1側の各プロセスが全てダウンしたと判断し、呼制御サーバ21-2、プロビジョニングサーバ22-2の各プロセスは、待機モードから稼働モードに切り換わってクライアントBに対する呼制御プロセスを稼働させる。そして、呼制御サーバ21-2で立ち上げられた呼制御プロセスは、LTEネットワーク3-2を介してサーバシステム2にアクセスする通信端末4(4-3、4-4)に対してサービスを提供する。
【0088】
このように、VPN6がダウンすると、LTEネットワーク3-1、3-2をつなぐ通信は不可能になるが、各LTEネットワーク3-1、3-2で呼制御プロセスBが稼働モードとなり、それぞれの範囲でサービスを提供できるようになる。
【0089】
このとき、サーバシステム2-1内の管理サーバ20-1の管理テーブルは、図15(A)に示すように、呼制御サーバ21-1の各プロセスが全て稼働モード(active)になっており、呼制御サーバ21-2の各プロセスの動作モードが全てダウン(down)になっている。一方、サーバシステム2-2内の管理サーバ20-2の管理テーブルは、図15(B)に示すように、呼制御サーバ21-1の各プロセスの動作モードが全てダウン(down)になっており、呼制御サーバ21-2の各プロセスが全て稼働モード(active)になっている。なお、呼制御プロセスCは、冗長化されておらず、呼制御サーバ21-1のみで実行されるため、VPN6がダウンした場合、(図5の例には記載していないが、)LTEネットワーク3-2のエリアにクライアントCの通信端末4があった場合には、この通信端末4は通信することができなくなる。
【0090】
この縮退動作は、VPN6のダウンによって相手側プロセスからの動作通知が途絶えたことに対応する動作として、図8に示した呼制御サーバ21-1、21-2の各プロセスの動作、および、図10に示した管理サーバ20-1、20-2の動作によって実現可能である。
【0091】
この実施形態では、呼制御サーバ21-1をメインサーバ、呼制御サーバ21-2をサブサーバとして、呼制御サーバ21-1で実行される各プロセスをメインとして動作設定しているが、メインとして動作設定されるプロセスを呼制御サーバ21-1、21-2に分散させてもよい。
【0092】
以上の実施形態では、サーバシステム2、ネットワーク3がそれぞれ2つずつ設けられている構成について説明したが、第3、第4、・・・のサーバシステム、ネットワークを有する構成であってもよい。そのようにすることにより、さらなる冗長化が可能になる。
【0093】
以上のように、この実施形態によれば、障害を起こしてダウンしたプロセスがあっても、それのためにサーバ全体を交代させる必要がないため、他のプロセスに対する影響を最小限にすることができる。また、専用の管理サーバ20を設置して各プロセスの動作状況を管理および問い合わせに答えることができるようにしたことにより、プロセスに障害が発生してもその障害を他のプロセスが知り、プロセス間の通信先を切り換えるなどの対応が可能になり、プロセス間通信を維持することができるようになる。
【符号の説明】
【0094】
1 音声通信システム
2(2-1、2-2) サーバシステム
20(20-1、20-2) 管理サーバ
21(21-1、21-2) 呼制御サーバ
22(22-1、22-2) プロビジョニングサーバ
3(3-1、3-2) LTEネットワーク
4(4-1~4) 通信端末
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15