(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-07
(45)【発行日】2023-11-15
(54)【発明の名称】チャットシステムおよびチャット管理装置
(51)【国際特許分類】
H04L 51/04 20220101AFI20231108BHJP
G06F 9/50 20060101ALI20231108BHJP
G06F 11/20 20060101ALI20231108BHJP
H04L 47/125 20220101ALI20231108BHJP
H04L 67/1008 20220101ALI20231108BHJP
【FI】
H04L51/04
G06F9/50 150D
G06F11/20 641
H04L47/125
H04L67/1008
(21)【出願番号】P 2019212888
(22)【出願日】2019-11-26
【審査請求日】2022-07-15
(73)【特許権者】
【識別番号】316013389
【氏名又は名称】ウイングアーク1st株式会社
(74)【代理人】
【識別番号】100105784
【氏名又は名称】橘 和之
(72)【発明者】
【氏名】河瀬 康弘
(72)【発明者】
【氏名】渡辺 博憲
(72)【発明者】
【氏名】阿部 孝仁
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特開2018-180591(JP,A)
【文献】特開2005-182702(JP,A)
【文献】国際公開第2010/110155(WO,A1)
【文献】特開2012-208781(JP,A)
【文献】特表2010-506244(JP,A)
【文献】特開2007-310749(JP,A)
【文献】特開2005-182641(JP,A)
【文献】CAMServer 冗長化・負荷分散,株式会社Chat&Messenger,2019年01月04日,pp.1-4,https://chat-messenger.com/manual/camserver/load-balancing
(58)【調査した分野】(Int.Cl.,DB名)
H04L 51/04
G06F 9/50
G06F 11/20
H04L 47/125
H04L 67/1008
(57)【特許請求の範囲】
【請求項1】
複数のトークサーバと、
ユーザ端末から投稿されるコンテンツを上記複数のトークサーバに振り分けて配信する
複数のゲートウェイ装置と、
上記複数のトークサーバおよび上記
複数のゲートウェイ装置を制御するチャット管理装置とを備え、
上記複数のトークサーバのそれぞれは、
上記チャット管理装置による制御のもと1以上のチャットルームを設定するルーム設定部と、
上記チャットルームに属するユーザの上記ユーザ端末から上記ゲートウェイ装置を介して投稿されるコンテンツを該当のチャットルームにて受信し、当該受信したコンテンツを、上記複数のトークサーバとは異なる独立した外部記憶装置に提供してデータベースに記憶させる投稿関連処理部とを備え、
上記
複数のゲートウェイ装置
のそれぞれは、上記チャットルームに属するユーザの上記ユーザ端末から投稿されたコンテンツを、該当のチャットルームが設定されているトークサーバに配信する振分配信部を備え、
上記チャット管理装置は、
複数のチャットルームを上記複数のトークサーバに分散および冗長化して割り当てるルーム割当部と、
上記ルーム割当部による割り当てに従って、上記チャットルームに属するユーザの上記ユーザ端末から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバとするように上記
複数のゲートウェイ装置を制御する配信先制御部とを備え、
上記ユーザ端末から投稿されるコンテンツを上記複数のゲートウェイ装置のどれで受信し、上記ゲートウェイ装置で受信したコンテンツを上記複数のトークサーバのどれに配信するかについて、上記複数のトークサーバおよび上記複数のゲートウェイ装置のそれぞれを処理負荷の均等振り分けの点に基づいて制御し、
上記配信先制御部は、上記複数のトークサーバの動作状況を監視し、一のトークサーバに障害が発生したことを検知した場合、当該一のトークサーバから他のトークサーバに切り替えて上記コンテンツを配信するように上記ゲートウェイ装置を制御する
ことを特徴とするチャットシステム。
【請求項2】
上記ルーム割当部は、上記複数のチャットルームのそれぞれについて現用系および待機系を設定し、上記現用系の複数のチャットルームを上記複数のトークサーバに分散して割り当てるとともに、上記待機系の複数のチャットルームを、対応する現用系のチャットルームと同じトークサーバとならないように上記複数のトークサーバに分散して割り当て、
上記配信先制御部は、上記ルーム割当部による割り当てに従って、上記チャットルームに属するユーザの上記ユーザ端末から投稿されたコンテンツの配信先を、該当の現用系のチャットルームが設定されているトークサーバとするように上記ゲートウェイ装置を制御し、
上記配信先制御部は、上記複数のトークサーバの動作状況を監視し、一のトークサーバに障害が発生したことを検知した場合、当該一のトークサーバから、当該一のトークサーバに設定されている現用系のチャットルームに対応する待機系のチャットルームが設定されている他のトークサーバに切り替えて上記コンテンツを配信するように上記ゲートウェイ装置を制御する
ことを特徴とする請求項1に記載のチャットシステム。
【請求項3】
上記ルーム割当部は、上記複数のトークサーバにおける処理負荷が均等性に関する所定の条件を満たすように、上記複数のチャットルームを上記複数のトークサーバに分散して割り当てることを特徴とする請求項1に記載のチャットシステム。
【請求項4】
上記ルーム割当部は、上記複数のトークサーバにおける処理負荷が均等性に関する所定の条件を満たすように、上記現用系の複数のチャットルームを上記複数のトークサーバに分散して割り当てるとともに、上記待機系の複数のチャットルームを、対応する現用系のチャットルームと同じトークサーバとならないように上記複数のトークサーバに分散して割り当てることを特徴とする請求項2に記載のチャットシステム。
【請求項5】
上記ルーム割当部は、上記複数のトークサーバにおける処理負荷を監視し、上記複数のトークサーバにおける処理負荷が上記均等性に関する所定の条件を満たさなくなったことを検知した場合、上記均等性に関する所定の条件を満たすように上記複数のチャットルームの上記複数のトークサーバに対する割り当てを再実行し、
上記ルーム設定部は、上記ルーム割当部により上記複数のチャットルームの割り当てが再実行された場合、再実行後の割り当てに従って、上記1以上のチャットルームを再設定し、
上記配信先制御部は、上記ルーム割当部により上記複数のチャットルームの割り当てが再実行された場合、再実行後の割り当てに従って、上記コンテンツの配信先とするトークサーバを切り替えるように上記ゲートウェイ装置を制御する
ことを特徴とする請求項3または4に記載のチャットシステム。
【請求項6】
上記ユーザ端末と上記トークサーバとの間は、常時接続状態もしくは頻繁な接続状態が保たれており、
上記トークサーバは、あるチャットルームに属するユーザの上記ユーザ端末から投稿されたコンテンツを一の上記ゲートウェイ装置を介して受信した場合、当該一のゲートウェイ装置を介して、上記あるチャットルームに属する複数のユーザの上記ユーザ端末に対して、コンテンツの投稿を受け付けたことを通知する
ことを特徴とする請求項1~5の何れか1項に記載のチャットシステム。
【請求項7】
チャットルームに属するユーザのユーザ端末から投稿されるコンテンツを該当のチャットルームにて受信し、当該受信したコンテンツをトークサーバとは異なる独立した外部記憶装置に提供してデータベースに記憶させる処理をそれぞれ行う複数の上記トークサーバと、上記ユーザ端末から投稿されるコンテンツを上記複数のトークサーバに振り分けて配信する
複数のゲートウェイ装置とを制御するチャット管理装置であって、
複数のチャットルームを上記複数のトークサーバに分散および冗長化して割り当てるルーム割当部と、
上記ルーム割当部による割り当てに従って、上記チャットルームに属するユーザの上記ユーザ端末から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバとするように上記
複数のゲートウェイ装置を制御する配信先制御部とを備え、
上記ユーザ端末から投稿されるコンテンツを上記複数のゲートウェイ装置のどれで受信し、上記ゲートウェイ装置で受信したコンテンツを上記複数のトークサーバのどれに配信するかについて、上記複数のトークサーバおよび上記複数のゲートウェイ装置のそれぞれを処理負荷の均等振り分けの点に基づいて制御し、
上記配信先制御部は、上記複数のトークサーバの動作状況を監視し、一のトークサーバに障害が発生したことを検知した場合、当該一のトークサーバから他のトークサーバに切り替えて上記コンテンツを配信するように上記ゲートウェイ装置を制御する
ことを特徴とするチャット管理装置。
【請求項8】
上記ルーム割当部は、上記複数のチャットルームのそれぞれについて現用系および待機系を設定し、上記現用系の複数のチャットルームを上記複数のトークサーバに分散して割り当てるとともに、上記待機系の複数のチャットルームを、対応する現用系のチャットルームと同じトークサーバとならないように上記複数のトークサーバに分散して割り当て、
上記配信先制御部は、上記ルーム割当部による割り当てに従って、上記チャットルームに属するユーザの上記ユーザ端末から投稿されたコンテンツの配信先を、該当の現用系のチャットルームが設定されているトークサーバとするように上記ゲートウェイ装置を制御し、
上記配信先制御部は、上記複数のトークサーバの動作状況を監視し、一のトークサーバに障害が発生したことを検知した場合、当該一のトークサーバから、当該一のトークサーバに設定されている現用系のチャットルームに対応する待機系のチャットルームが設定されている他のトークサーバに切り替えて上記コンテンツを配信するように上記ゲートウェイ装置を制御する
ことを特徴とする請求項7に記載のチャット管理装置。
【請求項9】
上記ルーム割当部は、上記複数のトークサーバにおける処理負荷が均等性に関する所定の条件を満たすように、上記複数のチャットルームを上記複数のトークサーバに分散して割り当てることを特徴とする請求項7に記載のチャット管理装置。
【請求項10】
上記ルーム割当部は、上記複数のトークサーバにおける処理負荷が均等性に関する所定の条件を満たすように、上記現用系の複数のチャットルームを上記複数のトークサーバに分散して割り当てるとともに、上記待機系の複数のチャットルームを、対応する現用系のチャットルームと同じトークサーバとならないように上記複数のトークサーバに分散して割り当てることを特徴とする請求項8に記載のチャット管理装置。
【請求項11】
上記ルーム割当部は、上記複数のトークサーバにおける処理負荷を監視し、上記複数のトークサーバにおける処理負荷が上記均等性に関する所定の条件を満たさなくなったことを検知した場合、上記均等性に関する所定の条件を満たすように上記複数のチャットルームの上記複数のトークサーバに対する割り当てを再実行し、
上記配信先制御部は、上記ルーム割当部により上記複数のチャットルームの割り当てが再実行された場合、再実行後の割り当てに従って、上記コンテンツの配信先とするトークサーバを切り替えるように上記ゲートウェイ装置を制御する
ことを特徴とする請求項9または10に記載のチャット管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、チャットシステムおよびチャット管理装置に関し、特に、複数のサーバに複数のチャットルームを分散して管理するようになされたチャットシステムに用いて好適なものである。
【背景技術】
【0002】
近年、ビジネス上の様々な業務にビジネスチャットが使われている。ビジネスチャットは、電子メールの代わりにチャットを用いることによって社内でのコミュニケーションを円滑にすることを主目的としたものであり、チャットによる業務連絡のほか、業務上のタスク管理、スケジュール管理、効率的な情報共有、ワークフロー管理、書類自動作成などの機能を備えたものも提供されている。一般に、チャットシステムではチャットルームが設定され、チャットルームに参加するユーザ間でメッセージの交換等が行われる。
【0003】
従来、複数のチャットルームを複数のマッチングサーバに分散して管理するようにしたチャットシステムが知られている(例えば、特許文献1参照)。特許文献1に記載のチャットシステムにおいて、クライアント端末は、チャットルームが複数のマッチングサーバに均等に分散して振り分けられるように規定された所定の対応関係に従って、1つのマッチングサーバを複数のマッチングサーバから選択する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1には、複数のマッチングサーバに対してチャットルームを均等に分散して割り振るように管理することが開示されているが、何れかのマッチングサーバに障害が発生した場合の対応方法については記載されていない。なお、障害対策としてサーバを冗長化しておき、現用系サーバに障害が発生したときに待機系サーバに切り替えるようにシステムを構成するのが一般的である。しかしながら、障害発生時の切り替えに備えて、現用系サーバと待機系サーバとの間でデータの同期処理を常時行うと、チャットに関する種々の処理(以下、単にチャット処理という)を行っている現用系サーバの計算資源の一部が同期処理に奪われる。そのため、肝心のチャット処理のレスポンス性能が損なわれ、サービス品質が低下してしまうという弊害を生じる。
【0006】
特許文献1にも記載されているように、チャットルームは動的に開設され、また、動的に閉設され得る。また、個々のチャットルームに対する参加者の人数や投稿されるコンテンツの数も動的に変動する。しかしながら、特許文献1には、このように状態が動的に変動し得る複数のチャットルームを複数のマッチングサーバに対して均等に分散して割り振るために、具体的にどのように処理を実行するかは明記されていない。そのため、動的に変動する状態に応じて、一部のマッチングサーバの処理負荷が高くなることもあり得る。この場合、当該一部のマッチングサーバに割り当てられているチャットルームに関するチャット処理のレスポンス性能が損なわれ、サービス品質が低下してしまうという弊害を生じる。
【0007】
本発明は、このような問題を解決するために成されたものであり、複数のサーバに複数のチャットルームを分散して管理するようになされたチャットシステムにおいて、チャット処理のレスポンス性能を損なうことを極力抑制できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
上記した課題を解決するために、本発明のチャットシステムは、複数のトークサーバと、ユーザ端末から投稿されるコンテンツを複数のトークサーバに振り分けて配信する複数のゲートウェイ装置と、複数のトークサーバおよび複数のゲートウェイ装置を制御するチャット管理装置とを備えて構成される。ここで、複数のトークサーバのそれぞれは、チャット管理装置による制御のもと1以上のチャットルームを設定し、チャットルームに属するユーザのユーザ端末からゲートウェイ装置を介して投稿されるコンテンツを該当のチャットルームにて受信し、当該受信したコンテンツを、複数のトークサーバとは異なる独立した外部記憶装置に提供してデータベースに記憶させる処理を行う。ゲートウェイ装置は、チャットルームに属するユーザのユーザ端末から投稿されたコンテンツを、該当のチャットルームが設定されているトークサーバに配信する。チャット管理装置は、ユーザ端末から投稿されるコンテンツを複数のゲートウェイ装置のどれで受信し、ゲートウェイ装置で受信したコンテンツを複数のトークサーバのどれに配信するかについて、複数のトークサーバおよび複数のゲートウェイ装置のそれぞれを処理負荷の均等振り分けの点に基づいて制御する。
【0009】
以上のように構成されたチャットシステムにおいて、本発明の一の態様では、チャット管理装置は、複数のチャットルームを複数のトークサーバに分散および冗長化して割り当てるルーム割当部と、当該ルーム割当部による割り当てに従って、チャットルームに属するユーザのユーザ端末から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバとするようにゲートウェイ装置を制御する配信先制御部とを備える。そして、配信先制御部が、複数のトークサーバの動作状況を監視し、一のトークサーバに障害が発生したことを検知した場合に、当該一のトークサーバから他のトークサーバに切り替えてコンテンツを配信するようにゲートウェイ装置を制御するようにしている。
【0010】
本発明の他の態様では、チャット管理装置は、複数のトークサーバにおける処理負荷が均等性に関する所定の条件を満たすように、複数のチャットルームを複数のトークサーバに分散して割り当てるルーム割当部と、当該ルーム割当部による割り当てに従って、チャットルームに属するユーザのユーザ端末から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバとするようにゲートウェイ装置を制御する配信先制御部とを備える。そして、ルーム割当部が、複数のトークサーバにおける処理負荷を監視し、複数のトークサーバにおける処理負荷が均等性に関する所定の条件を満たさなくなったことを検知した場合に、均等性に関する所定の条件を満たすように複数のチャットルームの複数のトークサーバに対する割り当てを再実行し、再実行後の割り当てに従って、トークサーバにおいて1以上のチャットルームを再設定するとともに、配信先制御部がコンテンツの配信先とするトークサーバを切り替えるようにゲートウェイ装置を制御するようにしている。
【発明の効果】
【0011】
上記のように構成した本発明によれば、ユーザ端末から複数のトークサーバのチャットルームに投稿されたコンテンツは、それぞれトークサーバとは異なる独立した外部記憶装置に提供して記憶されるので、各トークサーバから提供されたコンテンツが外部記憶装置に集約して記憶されている。そのため、本発明の一の態様のように、障害対策として複数のチャットルームを複数のトークサーバに冗長化しても、チャットルームに投稿されたコンテンツのデータの同期処理をトークサーバ間で行う必要がない。このため、チャット処理を行っているトークサーバの計算資源の一部が同期処理に奪われることがなく、チャット処理のレスポンス性能を損なうことを極力抑制することができる。
【0012】
また、本発明の他の態様のように、複数のトークサーバにおける処理負荷が均等性に関する所定の条件を満たすように、複数のチャットルームを複数のトークサーバに分散して割り当てることとした場合において、動的に変動するチャットルームの状態に応じて、一部のトークサーバの処理負荷が高くなることがあったとしても、処理負荷が均等性に関する所定の条件を満たさなくなると、当該所定の条件を満たすように複数のチャットルームの複数のトークサーバに対する割り当てが再実行される。これにより、動的に変動するチャットルームの状態に応じて、複数のチャットルームの割り当ても動的に変更され、均等性に関する所定の条件を満たすように状態が保たれる。そのため、チャット処理のレスポンス性能を損なうことを極力抑制することができる。また、チャットルームの割り当てを再実行するときにもデータの同期処理を行う必要がなく、この点からもチャット処理のレスポンス性能を損なうことを極力抑制することができる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態によるチャットシステムの構成例を示す図である。
【
図2】第1の実施形態によるゲートウェイ装置、トークサーバおよびチャット管理装置の機能構成例を示すブロック図である。
【
図3】第1の実施形態によるチャットルームの割り当て例を模式的に示す図である。
【
図4】第1の実施形態によるチャットシステムの動作例を示すフローチャートである。
【
図5】第2の実施形態によるチャットシステムの構成例を示す図である。
【
図6】第2の実施形態によるトークサーバおよびチャット管理装置の機能構成例を示すブロック図である。
【
図7】第2の実施形態によるチャットルームの割り当て例を模式的に示す図である。
【
図8】第2の実施形態によるチャットシステムの動作例を示すフローチャートである。
【発明を実施するための形態】
【0014】
(第1の実施形態)
以下、本発明の第1の実施形態を図面に基づいて説明する。
図1は、第1の実施形態によるチャットシステム1の構成例を示す図である。
図1に示すように、第1の実施形態によるチャットシステム1は、複数のゲートウェイ装置11,12と、複数のトークサーバ21,22,23と、チャット管理装置30とを備えて構成される。以下では、複数のゲートウェイ装置11,12をゲートウェイ装置群10といい、複数のトークサーバ21,22,23をトークサーバ群20ということがある。
【0015】
ゲートウェイ装置群10、トークサーバ群20およびチャット管理装置30は、例えばLAN(Local Area Network)により接続されている。そして、ゲートウェイ装置群10とチャット管理装置30との間、トークサーバ群20とチャット管理装置30との間、および、ゲートウェイ装置群10とトークサーバ群20との間で所定の通信が行われる。この通信の内容の詳細は後述する。本実施形態において、複数のゲートウェイ装置11,12の間で通信を行う必要はなく、複数のトークサーバ21,22,23の間で通信を行う必要はない。
【0016】
複数のトークサーバ21,22,23は、それぞれデータサーバ100に接続されている。トークサーバ群20とデータサーバ100との間は、上述のLANとは別のLANまたはインターネット等の広域ネットワークにより接続されている。データサーバ100は、本実施形態のチャットシステム1とは別のシステムとして構成されるものであり、チャットシステム1においてやり取りされる種々のコンテンツのデータを履歴データ記憶部101に記憶して管理する。コンテンツは、例えば、ユーザ端末200から投稿されるメッセージ、当該メッセージに付与されるドキュメント、画像、音声などの各種ファイルなどである。
【0017】
なお、以上説明したLANまたは広域ネットワークは一例に過ぎず、接続形態が以上の例に限定されるものではない。
【0018】
このように、本実施形態では、複数のトークサーバ21,22,23が、自身に投稿されたコンテンツのデータをそれぞれ内部に記憶して保存する形態ではなく、トークサーバ群20とは異なる独立した外部記憶装置である履歴データ記憶部101に提供して記憶させる形態を採用している。これにより、履歴データ記憶部101には、複数のユーザ端末200から複数のトークサーバ21,22,23に対して分散して投稿されたコンテンツのデータが集約して記憶される。なお、履歴データ記憶部101は、物理的に1つの記憶媒体であることを要するものではない。すなわち、複数のトークサーバ21,22,23に投稿されたコンテンツのデータを外部記憶装置としての履歴データ記憶部101に集約して記憶する形態であればよく、物理的に1つの記憶媒体か複数の記憶媒体かは問わない。
【0019】
複数のユーザ端末200は、例えばスマートフォン、タブレット端末、ノート型パソコンなどの携帯端末、あるいは据置型のパソコンなどにより構成される。ユーザ端末200には、チャットシステム1が提供するチャット機能を利用するためのアプリケーションプログラム(以下、チャットアプリという)がインストールされている。
【0020】
ユーザ端末200は、チャットアプリを利用して、インターネットまたは携帯電話網等の広域ネットワークを介してチャットシステム1に接続可能であり、チャットシステム1にアクセスしてチャットを行うことができるようになされている。また、複数のユーザ端末200は、インターネットまたは携帯電話網等の広域ネットワークを介してデータサーバ100に接続可能であり、データサーバ100にアクセスして、履歴データ記憶部101に保存されているチャットの履歴を閲覧することができるようになされている。
【0021】
複数のトークサーバ21,22,23はそれぞれ、チャットに関する種々の処理(チャット処理)を行う。複数のゲートウェイ装置11,12はそれぞれ、ユーザ端末200から投稿されるコンテンツを複数のトークサーバ21,22,23に振り分けて配信する。すなわち、ユーザ端末200から投稿されたコンテンツは、ゲートウェイ装置群10の中の何れかを介してトークサーバ群20の中の何れか(ユーザが参加しているチャットルームが設定されているもの)に配信される。なお、ユーザ端末200から投稿されたコンテンツを複数のゲートウェイ装置11,12のどれを経由させるかについては、任意に定めることが可能である。一例として、複数のユーザ端末200からの投稿をロードバランサによって複数のゲートウェイ装置11,12に適宜振り分ける。
【0022】
以下の説明において、ゲートウェイ装置群10の中の何れか1つについて説明するときはゲートウェイ装置10*と表記し、トークサーバ群20の中の何れか1つについて説明するときはトークサーバ20*と表記することとする。同様に、複数のユーザ端末200の中の何れか1つについて説明するときはユーザ端末200*と表記することとする。
【0023】
あるチャットルームに属するユーザから投稿されたコンテンツの配信を受けたトークサーバ20*は、配信元のゲートウェイ装置10*を介して、そのチャットルームに属する複数のユーザのユーザ端末200に対して、コンテンツの投稿を受け付けたことを通知する。この通知は、投稿されたメッセージの内容を提示するものであってもよい。本実施形態のチャットシステム1では、ユーザ端末200からトークサーバ群20へのコンテンツの投稿と、それに対する応答としてトークサーバ群20からユーザ端末200へ返信する投稿受信通知とを含むチャット処理を遅延なく行うことができるようにするために、ユーザ端末200とトークサーバ群20との間は、常時接続状態もしくは頻繁な接続により常時接続に近しい状態を保つようにしている。
【0024】
また、ユーザ端末200からコンテンツの配信を受けたトークサーバ20*は、当該コンテンツをデータサーバ100に供給する。データサーバ100は、トークサーバ20*から供給されたコンテンツを履歴データ記憶部101に記憶して保存する。上述のように、データサーバ100は、本実施形態のチャットシステム1とは別のシステムとして構成されており、履歴データ記憶部101に記憶された過去のチャットの履歴の閲覧に関する処理は、トークサーバ群20とは異なるデータサーバ100によって行われる。これにより、履歴の閲覧に関する処理によってトークサーバ群20の計算資源が奪われないようにして、トークサーバ群20が行うチャット処理のレスポンス性能(リアルタイム性)を上げることができるようにしている。
【0025】
チャット管理装置30は、複数のゲートウェイ装置11,12および複数のトークサーバ21,22,23を制御する。すなわち、チャット管理装置30は、ユーザ端末200から投稿されるコンテンツをゲートウェイ装置11,12のどれで受信し、そのコンテンツをトークサーバ21,22,23のどれに配信するかを制御する。また、チャット管理装置30は、複数のトークサーバ21,22,23におけるチャットルームの設定の割り当てを制御する。
【0026】
図2は、ゲートウェイ装置10*(各ゲートウェイ装置11,12の何れも同じ構成)、トークサーバ20*(各トークサーバ21,22,23の何れも同じ構成)およびチャット管理装置30の機能構成例を示すブロック図である。
図2(a)に示すように、ゲートウェイ装置10*は、機能構成として、振分配信部10Aを備えている。また、
図2(b)に示すように、トークサーバ20*は、機能構成として、ルーム設定部20Aおよび投稿関連処理部20Bを備えている。また、
図2(c)に示すように、チャット管理装置30は、機能構成として、ルーム割当部30Aおよび配信先制御部30Bを備えている。
【0027】
上記各機能ブロック10A,20A,20B,30A,30Bは、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック10A,20A,20B,30A,30Bは、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【0028】
トークサーバ20*のルーム設定部20Aは、チャット管理装置30による制御のもと、1以上のチャットルームをトークサーバ20*内に設定する。チャット管理装置30のルーム割当部30Aは、複数のチャットルームのそれぞれについて現用系および待機系を設定し、現用系の複数のチャットルームを複数のトークサーバ21,22,23に分散して割り当てるとともに、待機系の複数のチャットルームを複数のトークサーバ21,22,23に分散して割り当てる。このときルーム割当部30Aは、待機系の複数のチャットルームを、対応する現用系のチャットルームと同じトークサーバとならないように複数のトークサーバ21,22,23に分散して割り当てる。
【0029】
ユーザ端末200を使用するユーザは、チャットを行うに当たり、チャットアプリの機能を通じて、新規のチャットルームを作成したり、既存のチャットルームへ参加したりすることが可能である。あるユーザによって新規のチャットルームが作成されると、そのチャットルームがルーム割当部30Aによって何れかのトークサーバ20*に割り当てられるとともに、そのユーザが新規チャットルームに登録される。また、あるユーザから既存のチャットルームへの参加が申請されると、そのユーザが既存チャットルームに登録される。このようなチャットルームの作成処理やチャットルームに対するユーザの登録処理は、チャット管理装置30によって行われる。
【0030】
図3は、複数のトークサーバ21,22,23に対する複数のチャットルームの割り当て例を模式的に示す図である。ここでは説明のため、9個のチャットルームを3つのトークサーバ21,22,23に分散して割り当てた例を示している。
図3において、(1)~(9)の番号を付したチャットルームは現用系、(#1)~(#9)の番号を付したチャットルームは待機系であり、同じ数字を付した現用系と待機系が1:1に対応しているものとする。
【0031】
現用系のチャットルームとは、トークサーバ21,22,23に障害が発生していない正常動作時に、トークサーバ21,22,23がチャット処理に使用するものである。待機系のチャットルームとは、正常動作時には使用されず、何れかのトークサーバ20*に障害が発生した場合に、現用系に代えて使用されるものである。本実施形態において待機系のチャットルームは、起動状態にしておくが現用系と同期はとらず、障害発生時に現用系からの切り替えを行うウォームスタンバイ方式の構成とする。
【0032】
図3の例では、現用系の3つのチャットルーム(1)~(3)を第1のトークサーバ21に割り当て、現用系の3つのチャットルーム(4)~(6)を第2のトークサーバ22に割り当て、現用系の3つのチャットルーム(7)~(9)を第3のトークサーバ23に割り当てている。また、待機系の3つのチャットルーム(#1)~(#3)を第2のトークサーバ22に割り当て、待機系の3つのチャットルーム(#4)~(#6)を第3のトークサーバ23に割り当て、待機系の3つのチャットルーム(#7)~(#9)を第1のトークサーバ21に割り当てている。
【0033】
ここでは、1つのトークサーバ20*に割り当てられた現用系の複数のチャットルームに対応する待機系の複数のチャットルームを1つのトークサーバ20*に割り当てる例を示したが、これに限定されるものではない。すなわち、待機系の複数のチャットルームが、対応する現用系のチャットルームと同じトークサーバに割り当てられないようにすればよい。例えば、第1のトークサーバ21に割り当てられた現用系の3つのチャットルーム(1)~(3)に対応する待機系の3つのチャットルーム(#1)~(#3)を、他の2つのトークサーバ22,23に分散して割り当てるようにしてもよい。他のチャットルーム(4)~(9),(#4)~(#9)についても同様である。
【0034】
3つのトークサーバ21,22,23に障害が発生していない正常動作時は、3つのトークサーバ21,22,23に分散して割り当てられた現用系のチャットルーム(1)~(9)を使用してチャット処理を行う。一方、何れかのトークサーバ20*に障害が発生した場合は、そのトークサーバ20*に割り当てられている現用系のチャットルームから待機系のチャットルームに切り替えてチャット処理を継続する。例えば、第1のトークサーバ21に障害が発生した場合、当該第1のトークサーバ21に割り当てられている現用系のチャットルーム(1)~(3)から、第2のトークサーバ22に割り当てられている待機系のチャットルーム(#1)~(#3)に切り替えてチャット処理を継続する。
【0035】
何れかのトークサーバ20*における障害発生に応じて、現用系のチャットルームから待機系のチャットルームに切り替える際に、それまでのチャット処理を通じてやり取りされたコンテンツのデータについて同期処理を行う必要はない。上述したように、複数のトークサーバ21,22,23がユーザ端末200から受信したコンテンツのデータはデータサーバ100に提供され、履歴データ記憶部101に集約して保存されている。そのため、例えば第1のトークサーバ21に障害が発生した場合に、第1のトークサーバ21から第2のトークサーバ22にチャットルーム(1)~(3)に関するコンテンツのデータを同期処理によってコピーすることが必要になることはない。
【0036】
また、ユーザ端末200とトークサーバ群20との間は常時接続状態もしくはそれに近い状態となっているが、何れかのトークサーバ20*における障害発生に応じて現用系のチャットルームから待機系のチャットルームに切り替える際に、ユーザ端末200とゲートウェイ装置群10との間の通信が途絶えることはない。チャットルームの切り替えに関わる何れかのゲートウェイ装置10と何れかのトークサーバ20との間の通信だけがわずかな時間だけ中断し、現用系のチャットルームから待機系のチャットルームへの切り替えが終わった後は速やかに通信ができる状態となる。このため、ユーザは、自分が参加するチャットルームが設定されているトークサーバ20*において障害が発生したとしても、チャットシステム1と接続不能になったと感じることはなく、一時的なパフォーマンスの低下を体験するのみでチャットを継続することが可能である。
【0037】
チャット管理装置30の配信先制御部30Bは、ルーム割当部30Aによる割り当てに従って、チャットルームに属するユーザのユーザ端末200から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバとするようにゲートウェイ装置11,12を制御する。トークサーバ21,22,23に障害が発生していない正常動作時に、配信先制御部30Bは、現用系のチャットルームが設定されているトークサーバをコンテンツの配信先とするようにゲートウェイ装置11,12を制御する。
【0038】
図3のように9個のチャットルームが割り当てられている例において、第1のチャットルームに属するユーザのユーザ端末200から投稿されるコンテンツに関しては、現用系のチャットルーム(1)が設定されている第1のトークサーバ21を配信先としてゲートウェイ装置11,12に設定する。同様に、第4のチャットルームに属するユーザのユーザ端末200から投稿されるコンテンツに関しては、現用系のチャットルーム(4)が設定されている第2のトークサーバ22を配信先としてゲートウェイ装置11,12に設定する。
【0039】
ゲートウェイ装置10*の振分配信部10Aは、チャットルームに属するユーザのユーザ端末200から投稿されたコンテンツを、該当のチャットルームが設定されているトークサーバ21,22,23に配信する。
図3のように9個のチャットルームが割り当てられている例において、トークサーバ21,22,23に障害が発生していない正常動作時に振分配信部10Aは、例えば第1のチャットルームに属するユーザのユーザ端末200から投稿されたコンテンツを、現用系のチャットルーム(1)が設定されている第1のトークサーバ21に配信する。同様に、振分配信部10Aは、第4のチャットルームに属するユーザのユーザ端末200から投稿されたコンテンツを、現用系のチャットルーム(4)が設定されている第2のトークサーバ22に配信する。
【0040】
トークサーバ20*の投稿関連処理部20Bは、チャットルームに属するユーザのユーザ端末200からゲートウェイ装置11,12を介して投稿されるコンテンツを該当のチャットルームにて受信し、当該受信したコンテンツをデータサーバ100に提供して履歴データ記憶部101のデータベースに記憶させる。また、上述したように、投稿関連処理部20Bは、コンテンツの投稿を受け付けたことをゲートウェイ装置11,12を介してユーザ端末200に通知する。
【0041】
チャット管理装置30の配信先制御部30Bは、複数のトークサーバ21,22,23の動作状況を監視し、一のトークサーバ20*に障害が発生したことを検知した場合、当該一のトークサーバ20*から、当該一のトークサーバ20*に設定されている現用系のチャットルームに対応する待機系のチャットルームが設定されている他のトークサーバ20*に切り替えてコンテンツを配信するようにゲートウェイ装置11,12を制御する。例えば、
図3のように9個のチャットルームが割り当てられている例において、配信先制御部30Bは、現用系のチャットルーム(1)~(3)が設定されている第1のトークサーバ21に障害が発生したことを検知した場合、第1~第3のチャットルームに属するユーザのユーザ端末200から投稿されるコンテンツの投稿先を、待機系のチャットルーム(#1)~(#3)が設定されている第2のトークサーバ22に切り替えるようにゲートウェイ装置11,12を制御する。
【0042】
図4は、上記のように構成した第1の実施形態によるチャットシステム1の動作例を示すフローチャートである。
図4に示すフローチャートは、チャットシステム1が動作している間は継続して実行される。なお、この
図4では、コンテンツの投稿やチャットの履歴の閲覧に関する処理は省略している。
【0043】
まず、チャット管理装置30は、ユーザ端末200からチャットルームの作成要求があったか否かを判定する(ステップS1)。チャットルームの作成要求がない場合、チャット管理装置30はさらに、ユーザ端末200から既存のチャットルームへの参加申請があったか否かを判定する(ステップS2)。既存のチャットルームへの参加申請があった場合、チャット管理装置30は、参加申請を行ったユーザを、既存のチャットルームの参加者として登録する(ステップS3)。その後、処理はステップS8に遷移する。また、ステップS2で既存のチャットルームへの参加申請がないと判定された場合も、処理はステップS8に遷移する。
【0044】
ステップS1において、チャットルームの作成要求があったとチャット管理装置30にて判定された場合、ルーム割当部30Aは、現用系および待機系のそれぞれについて新規のチャットルームを作成し、現用系のチャットルームを何れかのトークサーバ20*に割り当てるとともに、待機系のチャットルームを現用系のチャットルームとは異なる別のトークサーバ20*に割り当てる(ステップS4)。
【0045】
次いで、トークサーバ21,22,23のルーム設定部20Aは、チャット管理装置30のルーム割当部30Aによる割り当てに従って、新規に作成されたチャットルームを設定する(ステップS5)。そして、チャット管理装置30は、チャットルームの作成要求を行ったユーザを、新規に作成したチャットルームの参加者として登録する(ステップS6)。
【0046】
また、チャット管理装置30の配信先制御部30Bは、ルーム割当部30Aによる割り当てに従って、チャットルームに属するユーザのユーザ端末200から投稿されたコンテンツの配信先を、該当の現用系のチャットルームが設定されているトークサーバとするようにゲートウェイ装置11,12を制御する(ステップS7)。その後、処理はステップS8に遷移する。
【0047】
ステップS8において、チャット管理装置30の配信先制御部30Bは、複数のトークサーバ21,22,23の動作状況を監視し、一のトークサーバ20*に障害が発生したか否かを判定する。障害の発生が検知されない場合、処理はステップS1に戻る。一方、何れかのトークサーバ20*における障害の発生が検知された場合、配信先制御部30Bは、障害が発生した一のトークサーバ20*から、当該一のトークサーバ20*に設定されている現用系のチャットルームに対応する待機系のチャットルームが設定されている他のトークサーバ20*に切り替えてコンテンツを配信するようにゲートウェイ装置11,12を制御する(ステップS9)。その後、処理はステップS1に戻る。
【0048】
以上詳しく説明したように、第1の実施形態によれば、ユーザ端末200から複数のトークサーバ21,22,23のチャットルームに投稿されたコンテンツは、それぞれトークサーバ21,22,23の外部記憶装置である履歴データ記憶部101に提供して記憶されるので、各トークサーバ21,22,23から提供されたコンテンツのデータが集約して記憶されている。そのため、障害対策として複数のチャットルームを冗長化し、現用系のチャットルームと待機系のチャットルームとをそれぞれ複数のトークサーバ21,22,23に分散して設定しておくとしても、チャットルームに投稿されたコンテンツのデータの同期処理を定期的に行う必要がない。また、現用系から待機系に切り替える際にも同期処理を行う必要がない。このため、チャット処理を行っているトークサーバ21,22,23の計算資源の一部が同期処理に奪われることがなく、チャット処理のレスポンス性能を損なうことを極力抑制することができる。
【0049】
なお、上記第1の実施形態では、何れかのトークサーバ20*に障害が発生した場合に、そのトークサーバ20*に割り当てられている現用系のチャットルームから待機系のチャットルームに切り替えてチャット処理を継続することについて説明した。この場合、それまで待機系であったチャットルームを現用系に切り替えて、それに対応する待機系のチャットルームを何れかのトークサーバ20*に対して新たに設定するようにしてもよい。例えば、
図3の例で第1のトークサーバ21に障害が発生した場合、第2のトークサーバ22に割り当てられている待機系のチャットルーム(#1)~(#3)を現用系のチャットルーム(1)~(3)に切り替えて、待機系のチャットルーム(#1)~(#3)を別のトークサーバ20*に新たに設定する。このようにすれば、障害が発生した第1のトークサーバ21がいつ復活するか分からない状況の中で、現用系のチャットルームと待機系のチャットルームとが常に存在する状態とすることができる。
【0050】
また、上記第1の実施形態では、現用系のチャットルームと待機系のチャットルームとを同数とする例、すなわち、待機系のチャットルームを1つ設定する例について説明したが、本発明はこれに限定されない。例えば、1つの現用系のチャットルームに対して複数の待機系のチャットルームを設定するようにしてもよい。この場合、複数の待機系のチャットルームを複数の異なるトークサーバ20に設定するのが好ましい。現用系のチャットルームが設定されているトークサーバ20*に障害が発生した場合、チャット管理装置30は、例えば、複数の待機系のチャットルームが設定されている複数のトークサーバ20の負荷状態を検出し、負荷状態が低いトークサーバ20*に設定されている待機系のチャットルームに切り替えるようにする。
【0051】
また、現用系のチャットルームに対して待機系のチャットルームを設定せず、コールドスタンバイ方式の構成とするようにしてもよい。この場合、現用系のチャットルームが設定されている一のトークサーバ20*に障害が発生した場合、他のトークサーバ20*に設定されている他の現用系のチャットルームに切り替えてチャット処理を継続するようにする。このように構成する場合、切り替え時に若干のダウンタイムが発生する可能性があるが、新規にチャットルームを構築するコスト(処理時間)が少なく、運用上許容できる範囲に収まる。
【0052】
(第2の実施形態)
次に、本発明の第2の実施形態を図面に基づいて説明する。
図5は、第2の実施形態によるチャットシステム1’の構成例を示す図である。なお、この
図5において、
図1に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。また、以下の説明において、トークサーバ群20’の中の何れか1つについて説明するときはトークサーバ20’*と表記することとする。
【0053】
図5に示すように、第2の実施形態によるチャットシステム1’は、複数のゲートウェイ装置11,12と、複数のトークサーバ21’,22’,23’と、チャット管理装置30’とを備えて構成される。以下では、複数のトークサーバ21’,22’,23’をトークサーバ群20’ということがある。
【0054】
図6は、トークサーバ20’*(各トークサーバ21’,22’,23’の何れも同じ構成)およびチャット管理装置30’の機能構成例を示すブロック図である。なお、この
図6において、
図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
図6(a)に示すように、トークサーバ20’*は、機能構成として、ルーム設定部20A’および投稿関連処理部20Bを備えている。また、
図6(b)に示すように、チャット管理装置30’は、機能構成として、ルーム割当部30A’および配信先制御部30B’を備えている。
【0055】
上記各機能ブロック20A’,20B,30A’,30B’は、ハードウェア、DSP、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック20A’,20B,30A’,30B’は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【0056】
チャット管理装置30’のルーム割当部30A’は、複数のトークサーバ21’,22’,23’における処理負荷が均等性に関する所定の条件を満たすように、複数のチャットルームを複数のトークサーバ21’,22’,23’に分散して割り当てる。例えば、ルーム割当部30A’は、複数のトークサーバ21’,22’,23’にかかる処理負荷の差分が所定値以下になるという所定の条件を満たすように、複数のチャットルームを複数のトークサーバ21’,22’,23’に分散して割り当てる。
【0057】
トークサーバ21’,22’,23’にかかる処理負荷は、設定されるチャットルームの数、チャットルームに対する参加者の人数、チャットルーム内で投稿されるコンテンツの数などによって動的に変動する。例えば、ルーム割当部30A’は、新規のチャットルームを作成して何れかのトークサーバ20’*に割り当てる際に、複数のトークサーバ21’,22’,23’における処理負荷を実測し、最も処理負荷の小さいトークサーバ20’*に新規のチャットルームを割り当てることにより、複数のトークサーバ21’,22’,23’にかかる処理負荷の差分が所定値以下となるようにする。なお、最も処理負荷の小さいトークサーバ20’*に割り当てることを必須とするものではなく、処理負荷の差分が所定値以下となるようにすればよい。
【0058】
なお、ここでは複数のトークサーバ21’,22’,23’における処理負荷を実測する例について説明したが、これに限定されない。例えば、複数のトークサーバ21’,22’,23’に設定済みのチャットルームの数およびチャットルームに対する参加者の人数に基づいて、所定の関数に従って処理負荷を推定するようにしてもよい。また、チャットルームの数およびチャットルームに対する参加者の人数に加え、履歴データ記憶部101にチャットルーム毎に記憶されているコンテンツの数に基づいて、所定の関数に従って処理負荷を推定するようにしてもよい。
【0059】
図7は、複数のトークサーバ21’,22’,23’に対する複数のチャットルームの割り当て例を模式的に示す図である。ここでは説明のため、9個のチャットルーム(1)~(9)を3つのトークサーバ21’,22’,23’に分散して割り当てた例を示している。
【0060】
図7の例では、3つのチャットルーム(1)(5)(9)を第1のトークサーバ21’に割り当て、3つのチャットルーム(2)(3)(6)を第2のトークサーバ22’に割り当て、3つのチャットルーム(4)(7)(8)を第3のトークサーバ23’に割り当てている。3つのチャットルーム(1)(5)(9)に関するチャット処理を行う第1のトークサーバ21’にかかる処理負荷と、3つのチャットルーム(2)(3)(6)に関するチャット処理を行う第2のトークサーバ22’にかかる処理負荷と、3つのチャットルーム(4)(7)(8)に関するチャット処理を行う第3のトークサーバ23’にかかる処理負荷との差分が所定値以下になるという所定の条件を満たしているものとする。
【0061】
チャット管理装置30’の配信先制御部30B’は、ルーム割当部30A’による割り当てに従って、チャットルームに属するユーザのユーザ端末200から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバとするようにゲートウェイ装置11,12を制御する。
図7のように9個のチャットルームが割り当てられている例において、第1のチャットルームに属するユーザのユーザ端末200から投稿されるコンテンツに関しては、チャットルーム(1)が設定されている第1のトークサーバ21’を配信先としてゲートウェイ装置11,12に設定する。同様に、第4のチャットルームに属するユーザのユーザ端末200から投稿されるコンテンツに関しては、チャットルーム(4)が設定されている第3のトークサーバ23’を配信先としてゲートウェイ装置11,12に設定する。
【0062】
チャット管理装置30’のルーム割当部30A’は、複数のトークサーバ21’,22’,23’における処理負荷を監視し、複数のトークサーバ21’,22’,23’における処理負荷が均等性に関する所定の条件を満たさなくなったことを検知した場合、均等性に関する所定の条件を満たすように複数のチャットルームの複数のトークサーバ21’,22’,23’に対する割り当てを再実行する。
【0063】
例えば、
図7のように9個のチャットルームが割り当てられている例において、例えば第1のトークサーバ21’に設定されている第1のチャットルーム(1)への参加者が多くなり、コンテンツの投稿数も多くなったため、第1のトークサーバ21’にかかる処理負荷が増大し、均等性に関する所定の条件を満たさなくなったとする。この場合、ルーム割当部30A’は、3つのトークサーバ21’,22’,23’に設定済みの9個のチャットルーム(1)~(9)を対象として、均等性に関する所定の条件を満たすように複数のトークサーバ21’,22’,23’に対する割り当てを再実行する。
【0064】
なお、3つのトークサーバ21’,22’,23’に設定済みの9個のチャットルーム(1)~(9)を対象とすると言っても、全てのチャットルームをそれまでとは別のトークサーバ21’,22’,23’に再設定することを要するものではない。例えば、第1のチャットルーム(1)が原因で処理負荷が増大した第1のトークサーバ21’に設定されている第5のチャットルーム(5)および第9のチャットルーム(9)の少なくとも一方を第2のトークサーバ22’または第3のトークサーバ23’に移すことによって均等性に関する所定の条件を満たすようになれば、それで十分である。第5のチャットルーム(5)および第9のチャットルーム(9)を第2のトークサーバ22’または第3のトークサーバ23’に移すだけでは所定の条件を満たすことができない場合に、第2のトークサーバ22’または第3のトークサーバ23’に元々設定されている他のチャットルームも含めて再設定を行うようにしてよい。
【0065】
トークサーバ21’,22’,23’のルーム設定部20A’は、チャット管理装置30’のルーム設定部20A’による制御のもと、1以上のチャットルームをトークサーバ21’,22’,23’内に設定する。また、ルーム設定部20A’は、ルーム割当部30A’により複数のチャットルームの割り当てが再実行された場合、再実行後の割り当てに従って、トークサーバ21’,22’,23’内における1以上のチャットルームを再設定する。
【0066】
複数のトークサーバ21’,22’,23’は、チャットルームの再設定を行う際に、それまでのチャット処理を通じてやり取りされたコンテンツのデータについて同期処理を行う必要はない。すなわち、例えば第1のトークサーバ21’に設定されていた第1のチャットルーム(1)を第2のトークサーバ22’に移して再設定する場合に、第1のチャットルーム(1)に関するコンテンツのデータを同期処理によって第1のトークサーバ21’から第2のトークサーバ22’にコピーすることが必要になることはない。また、チャットルームの再設定を行っている間も、ユーザ端末200とゲートウェイ装置群10との間は接続状態が維持されているので、ユーザは、チャットシステム1と接続不能になったと感じることはなく、一時的なパフォーマンスの低下を体験のみでチャットを継続することができる。
【0067】
チャット管理装置30の配信先制御部30B’は、ルーム割当部30A’による割り当てに従って、チャットルームに属するユーザのユーザ端末200から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバ21’,22’,23’とするようにゲートウェイ装置11,12を制御する。配信先制御部30B’は、ルーム割当部30A’により複数のチャットルームの割り当てが再実行された場合は、再実行後の割り当てに従って、コンテンツの配信先とするトークサーバ21’,22’,23’を切り替えるようにゲートウェイ装置11,12を制御する。
【0068】
図8は、上記のように構成した第2の実施形態によるチャットシステム1’の動作例を示すフローチャートである。
図8に示すフローチャートは、チャットシステム1’が動作している間は継続して実行される。
【0069】
まず、チャット管理装置30’は、ユーザ端末200からチャットルームの作成要求があったか否かを判定する(ステップS11)。チャットルームの作成要求がない場合、チャット管理装置30’はさらに、ユーザ端末200から既存のチャットルームへの参加申請があったか否かを判定する(ステップS12)。既存のチャットルームへの参加申請があった場合、チャット管理装置30’は、参加申請を行ったユーザを、既存のチャットルームの参加者として登録する(ステップS13)。その後、処理はステップS18に遷移する。また、ステップS12で既存のチャットルームへの参加申請がないと判定された場合も、処理はステップS18に遷移する。
【0070】
ステップS11において、チャットルームの作成要求があったとチャット管理装置30’にて判定された場合、ルーム割当部30A’は、新規のチャットルームを作成し、複数のトークサーバ21’,22’,23’における処理負荷が均等性に関する所定の条件を満たすように、当該作成したチャットルームを何れかのトークサーバ20’*に割り当てる(ステップS14)。
【0071】
次いで、トークサーバ21,22,23のルーム設定部20A’は、チャット管理装置30’のルーム割当部30A’による割り当てに従って、新規に作成されたチャットルームを設定する(ステップS15)。そして、チャット管理装置30’は、チャットルームの作成要求を行ったユーザを、新規に作成したチャットルームの参加者として登録する(ステップS16)。
【0072】
また、チャット管理装置30’の配信先制御部30B’は、ルーム割当部30A’による割り当てに従って、チャットルームに属するユーザのユーザ端末200から投稿されたコンテンツの配信先を、該当のチャットルームが設定されているトークサーバとするようにゲートウェイ装置11,12を制御する(ステップS17)。その後、処理はステップS18に遷移する。
【0073】
ステップS18において、チャット管理装置30’のルーム割当部30A’は、複数のトークサーバ21’,22’,23’における処理負荷を監視し、複数のトークサーバ21’,22’,23’における処理負荷が均等性に関する所定の条件を満たすか否かを判定する。所定の条件を満たしている場合、処理はステップS1に戻る。一方、所定の条件を満たさないと判定された場合、ルーム割当部30A’は、均等性に関する所定の条件を満たすように複数のチャットルームの複数のトークサーバ21’,22’,23’に対する割り当てを再実行する(ステップS19)。
【0074】
チャットルームの割り当てが再実行された場合、ルーム設定部20A’は、再実行後の割り当てに従って、トークサーバ21’,22’,23’内におけるチャットルームを再設定する(ステップS20)。また、配信先制御部30B’は、再実行後の割り当てに従って、コンテンツの配信先とするトークサーバ21’,22’,23’を切り替えるようにゲートウェイ装置11,12を制御する(ステップS21)。その後、処理はステップS11に戻る。
【0075】
以上詳しく説明したように、第2の実施形態では、チャット管理装置30’のルーム割当部30A’が、複数のトークサーバ21’,22’,23’における処理負荷を監視し、処理負荷が均等性に関する所定の条件を満たさなくなったことを検知した場合に、均等性に関する所定の条件を満たすように複数のチャットルームの複数のトークサーバ21’,22’,23’に対する割り当てを再実行し、再実行後の割り当てに従って、トークサーバ21’,22’,23’において1以上のチャットルームを再設定するようにしている。
【0076】
このように、第2の実施形態によれば、複数のトークサーバ21’,22’,23’における処理負荷が均等性に関する所定の条件を満たすように、複数のチャットルームを複数のトークサーバ21’,22’,23’に分散して割り当てることとした場合において、動的に変動するチャットルームの状態に応じて、一部のトークサーバ20’*の処理負荷が高くなることがあったとしても、処理負荷が均等性に関する所定の条件を満たさなくなると、当該所定の条件を満たすように複数のチャットルームの複数のトークサーバ21’,22’,23’に対する割り当てが再実行される。これにより、動的に変動するチャットルームの状態に応じて、複数のチャットルームの割り当ても動的に変更され、均等性に関する所定の条件を満たすように状態が保たれる。そのため、チャット処理のレスポンス性能を損なうことを極力抑制することができる。
【0077】
また、このようなチャットルームの再設定を行う際に、チャットルームに投稿されたコンテンツのデータの同期処理を行う必要がない。このため、チャット処理を行っているトークサーバ21’,22’,23’の計算資源の一部が同期処理に奪われることがなく、チャット処理のレスポンス性能を損なうことを極力抑制することができる。
【0078】
なお、以上に説明した第2の実施形態を第1の実施形態に組み合わせて適用するようにしてもよい。この場合、チャットルームの再割り当ては、現用系のチャットルームだけを対象として行うようにしてもよいし、現用系および待機系の両方のチャットルームを対象として行うようにしてもよい。どちらの場合も、現用系のチャットルームとそれに対応する待機系のチャットルームとが同じトークサーバ20’*に割り当てられないようにする。
【0079】
上記第1および第2の実施形態では、複数のゲートウェイ装置11,12を設ける例について説明したが、本発明はこれに限定されない。例えば、ゲートウェイ装置は1つのみとしてもよい。ただし、処理負荷を分散させることができるという観点から、複数のゲートウェイ装置11,12を設けるのが好ましい。
【0080】
また、上記第1および第2の実施形態では、トークサーバ群20,20’がコンテンツの投稿に関する処理を行い、コンテンツの履歴の閲覧に関する処理をデータサーバ100が行う構成について説明したが、本発明はこれに限定されない。例えば、トークサーバ群20,20’がコンテンツの投稿に関する処理と履歴の閲覧に関する処理との両方を行う構成としてもよい。ただし、上記実施形態のように処理を分けることにより、トークサーバ群20,20’は、複数のユーザ端末200から頻繁に行われるコンテンツの投稿およびそれに対してユーザ端末200に応答する投稿受信通知に関する処理に専念でき、履歴の閲覧に関する処理によって計算資源が奪われることがないので、コンテンツの投稿に関するレスポンス性能を上げることができる点で好ましい。
【0081】
また、上記第1および第2の実施形態では、ゲートウェイ装置群10およびトークサーバ群20,20’の数を固定としたが、本発明はこれに限定されない。例えば、ゲートウェイ装置群10およびトークサーバ群20,20’にかかる負荷状況に応じて、使用数を増減する構成としてもよい。例えば、複数のトークサーバ21,22,23に係る処理負荷が全て所定の閾値を超えた場合に、新たなトークサーバを自動的に追加するようにする。トークサーバ群20がクラウド環境で使用される仮想マシンの場合、オンデマンドで新たなトークサーバを追加することが可能である。
【0082】
その他、上記第1および第2の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0083】
1,1’ チャットシステム
11,12 ゲートウェイ装置
21,22,23 トークサーバ
21’,22’,23’ トークサーバ
30,30’ チャット管理装置
10A 振分配信部
20A,20A’ ルーム設定部
20B 投稿関連処理部
30A,30A’ ルーム割当部
30B,30B’ 配信先制御部