(57)【要約】【課題】異なる情報処理装置に接続された端末装置間でのメッセージングを実現する。【解決手段】メッセージ配信システムは、自装置と接続を確立済みの第１の端末装置からメッセージを受信する第１の受信部と、第１の受信部がメッセージを受信すると、第１の端末装置と同一のグループに属し、自装置と接続を確立済みの第２の端末装置にメッセージを送信し、自装置と接続を確立済みの第２の情報処理装置にメッセージを送信する第１の送信部と、を備える第１の情報処理装置と、第１の情報処理装置からメッセージを受信する第２の受信部と、第２の受信部がメッセージを受信すると、第１の端末装置と同一のグループに属し、自装置と接続を確立済みの第３の端末装置にメッセージを送信する第２の送信部と、を備える第２の情報処理装置と、を含む。【選択図】図１
2018018209.tif 000002
【特許請求の範囲】
【請求項１】
自装置との間で接続が確立している第１の端末装置から、該第１の端末装置が属するグループの情報を含むメッセージを受信する第１の受信部と、
前記第１の受信部による前記メッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、該メッセージを送信した該第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第２の端末装置に前記メッセージを送信するとともに、該自装置との間で接続が確立している第２の情報処理装置に前記メッセージを送信する第１の送信部と、
を備える第１の情報処理装置と、
前記第１の情報処理装置から前記メッセージを受信する第２の受信部と、
前記第２の受信部による前記メッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、前記第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第３の端末装置に該メッセージを送信する第２の送信部と、
を備える第２の情報処理装置と、
を含むメッセージ配信システム。
【請求項２】
前記第２の情報処理装置は、
自装置との間で接続が確立している第３の端末装置から、該第３の端末装置が属するグループの情報を含むメッセージを受信する第３の受信部と、
前記第３の受信部による前記メッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、該メッセージを送信した該第３の端末装置と同一のグループに属し、該自装置との間で接続が確立している第４の端末装置に前記メッセージを送信するとともに、該自装置との間で接続が確立している第３の情報処理装置に前記メッセージを送信する第３の送信部と、
を備えることを特徴とする請求項１に記載のメッセージ配信システム。
【請求項３】
ネットワークに接続された複数の情報処理装置を含むメッセージ配信システムであって、
各情報処理装置は、
端末装置が指定する第１の接続先を用いて該端末装置と接続を確立するとともに、第１の情報処理装置が指定する第２の接続先を用いて該第１の情報処理装置と接続を確立し、第２の情報処理装置が指定する第３の接続先を用いて該第２の情報処理装置と接続を確立し、
前記第１の接続先を介してメッセージを受信した場合、該メッセージを前記第１及び第２の情報処理装置に転送し、
前記第２の接続先を介して他のメッセージを受信した場合、該他のメッセージを前記第３の接続先を介して前記第２の情報処理装置には転送しない、
ことを特徴とするメッセージ配信システム。
【請求項４】
コンピュータを、
自装置との間で接続が確立している第１の端末装置から、該第１の端末装置が属するグループの情報を含むメッセージを受信する第１の受信部、
前記第１の受信部による前記メッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、該メッセージを送信した該第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第２の端末装置に前記メッセージを送信するとともに、該自装置との間で接続が確立している第１の情報処理装置に前記メッセージを送信する第１の送信部、
自装置との間で接続が確立している第２の情報処理装置から、他のメッセージを受信する第２の受信部、および
前記第２の受信部による前記他のメッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、前記第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第３の端末装置に該他のメッセージを送信する第２の送信部、
として機能させるためのメッセージ配信プログラム。
【請求項５】
第１の情報処理装置が、自装置との間で接続が確立している第１の端末装置から、該第１の端末装置が属するグループの情報を含むメッセージを第１の受信部により受信した場合、該自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、該メッセージを送信した該第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第２の端末装置に前記メッセージを送信するとともに、第２の情報処理装置に前記メッセージを送信し、
前記第２の情報処理装置が、前記第１の情報処理装置から前記メッセージを受信する第２の受信部により前記メッセージを受信した場合、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、前記第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第３の端末装置に該メッセージを送信する、
ことを特徴とするメッセージ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージ配信システム、メッセージ配信プログラム、およびメッセージ配信方法に関する。
【背景技術】
【０００２】
ＷｅｂＳｏｃｋｅｔ（ウェブソケット）は、サーバとクライアント装置とが双方向通信を行うための技術である。Ｗｅｂｓｏｃｋｅｔでは、サーバとクライアント装置とは、コネクションを確立した後は、そのコネクションを切断しない限り、データのやり取りをソケット通信で行うことができる。例えば、特許文献１に記載されたサーバでは、Ｗｅｂｓｏｃｋｅｔによりサーバに接続された複数のクライアント装置のうち特定のクライアント装置からメッセージを受信すると、当該メッセージで指定されたグループに属する他のクライアント装置にメッセージを転送している。
【０００３】
ところで、近年、ウェブサービスが大規模化しており、単一のウェブサーバでそのサービスをまかなうことが困難である場合が多い。そのため、大規模なウェブサービスシステムでは、複数のウェブサーバと、それらのウェブサーバの間で負荷を平準化して特定のウェブサーバへのトラフィックの集中を回避するための負荷分散装置とを設置するのが一般的である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１８６７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、このような複数のウェブサーバにより負荷分散を行っているシステムにおける、Ｗｅｂｓｏｃｋｅｔを利用したメッセージングについて十分に検討されていない。
【０００６】
１つの側面では、異なる情報処理装置に接続された端末装置間でのメッセージングを実現することができるメッセージ配信システム、メッセージ配信プログラム、およびメッセージ配信方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、メッセージ配信システムは、自装置との間で接続が確立している第１の端末装置から、該第１の端末装置が属するグループの情報を含むメッセージを受信する第１の受信部と、前記第１の受信部による前記メッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、該メッセージを送信した該第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第２の端末装置に前記メッセージを送信するとともに、該自装置との間で接続が確立している第２の情報処理装置に前記メッセージを送信する第１の送信部と、を備える第１の情報処理装置と、前記第１の情報処理装置から前記メッセージを受信する第２の受信部と、前記第２の受信部による前記メッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、前記第１の端末装置と同一のグループに属し、該自装置との間で接続が確立している第３の端末装置に該メッセージを送信する第２の送信部と、を備える第２の情報処理装置と、を含む。
【発明の効果】
【０００８】
１つの側面として、異なる情報処理装置に接続された端末装置間でのメッセージングを実現することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係るメッセージ配信システムの構成を概略的に示す図である。
【図２】ウェブサーバのハードウェア構成の一例を示す図である。
【図３】ウェブサーバの機能ブロック図である。
【図４】図４（ａ）は、稼働中サーバリストのデータの一例を示す図であり、図４（ｂ）は、グループリストのデータの一例を示す図であり、図４（ｃ）は、接続サーバリストのデータの一例を示す図であり、図４（ｄ）は、接続クライアントリストのデータの一例を示す図である。
【図５】図５（ａ）及び図５（ｂ）は、ウェブサーバにより実行されるメッセージ配信処理のフローチャートである。
【図６】メッセージ配信処理を説明するシーケンス図である。
【図７】メッセージ配信処理を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、メッセージ配信システムの一実施形態について、図１〜図７に基づいて詳細に説明する。
【００１１】
図１には、一実施形態にかかるメッセージ配信システム１００の構成が概略的に示されている。メッセージ配信システム１００は、端末装置としてのクライアント装置５０−１〜５０−ｎと、負荷分散装置１０と、情報管理装置２０と、メッセージ配信装置としての複数のウェブサーバ３０−１〜３０−ｎと、を含む。クライアント装置５０−１〜５０−ｎと、負荷分散装置１０とは、インターネット等のネットワーク８０を介して接続されている。負荷分散装置１０、情報管理装置２０、およびウェブサーバ３０−１〜３０−ｎは、ＬＡＮ（Local Area Network）等のネットワーク４０を介して接続されている。なお、以後の説明において、特に区別する必要のない限り、ウェブサーバ３０−１〜３０−ｎをウェブサーバ３０と記載し、クライアント装置５０−１〜５０−ｎをクライアント装置５０と記載する。また、ウェブサーバを単にサーバと記載する場合がある。
【００１２】
メッセージ配信システム１００において、クライアント装置５０は、ウェブサーバ３０により提供されるウェブサービスを利用するユーザが使用する端末である。クライアント装置５０は、例えば、パーソナルコンピュータや、タブレット型端末や、スマートフォンである。ユーザは、クライアント装置５０を用いてウェブサービスを利用し、他のユーザにメッセージを送信したり、他のユーザからメッセージを受信したりする。
【００１３】
負荷分散装置１０は、ウェブサーバ３０−１〜３０−ｎの間で負荷を平準化して特定のウェブサーバへのトラフィックの集中を回避する。負荷分散装置１０は、各ウェブサーバの負荷状況に応じて、クライアント装置５０−１〜５０−ｎを複数のウェブサーバ３０−１〜３０−ｎに分散して割り当てる。
【００１４】
情報管理装置２０は、ウェブサーバ３０−１〜３０−ｎがアクセス可能なデータベースサーバやストレージである。情報管理装置２０は、稼働中サーバリストを用いて、複数のウェブサーバ３０−１〜３０−ｎのうち稼働中のウェブサーバの情報を管理する。より具体的には、情報管理装置２０は、起動したウェブサーバ３０からＩＰアドレスの情報を受信すると、稼働中サーバリストに受信したＩＰアドレスを追加し、稼働中サーバリストを、起動したウェブサーバ３０に送信する。また、情報管理装置２０は、応答がない、あるいは、停止したウェブサーバ３０の情報を稼働中のウェブサーバ３０から受信し、応答がない、あるいは、停止したウェブサーバ３０を稼働中サーバリストから削除する。
【００１５】
ここで、図４（ａ）を参照して、稼働中サーバリストについて説明する。図４（ａ）には、稼働中サーバリストのデータの一例が示されている。稼働中サーバリストは、ウェブサーバ３０−１〜３０−ｎのうち稼働中のウェブサーバのＩＰアドレスを管理するリストであり、図４（ａ）に示すように、ＩＰアドレスのフィールドを備える。ＩＰアドレスのフィールドには、起動したウェブサーバ３０から受信したＩＰアドレスの情報が格納される。なお、稼働中サーバリストのデータ構成は、図４（ａ）に限られるものではない。例えば、稼働中サーバリストは、ウェブサーバ３０の名称を格納するフィールドや、起動日時の情報を格納するフィールドを備えていてもよい。
【００１６】
また、情報管理装置２０は、グループリストを用いて、ユーザが作成したグループの情報を管理する。
【００１７】
ここで、図４（ｂ）を参照して、グループリストについて説明する。図４（ｂ）には、グループリストのデータの一例が示されている。グループリストは、クライアント装置５０のユーザにより作成されたグループを管理するためのリストである。グループリストは、図４（ｂ）に示すように、ｇｒｏｕｐＩＤおよびｇｒｏｕｐＮａｍｅなどのフィールドを備える。ｇｒｏｕｐＩＤのフィールドには、グループを一意に識別するための識別番号が格納される。ｇｒｏｕｐＮａｍｅのフィールドには、グループの名称が格納される。ユーザは、グループリストに登録されているグループのいずれかに参加することで、同一グループ内の他のユーザにメッセージを送信したり、他のユーザからメッセージを受信したりすることができる。
【００１８】
図１に戻り、ウェブサーバ３０は、ユーザにウェブサービスを提供するためのサーバである。ウェブサーバ３０は、図２に示すようなハードウェア構成を有する。具体的には、ウェブサーバ３０は、図２に示すように、ＣＰＵ（Central Processing Unit）３１１、ＲＯＭ(Read Only Memory)３１２、ＲＡＭ(Random Access Memory)３１３、記憶装置（ＨＤＤ：Hard Disk Drive）３１４、ネットワークインタフェース３１５、及び可搬型記憶媒体３１６に記憶されたデータを読み取り可能な可搬型記憶媒体用ドライブ３１７等を備えている。これらウェブサーバ３０の構成各部は、バス３１８に接続されている。ＣＰＵ３１１は、ＲＯＭ３１２あるいはＨＤＤ３１４に格納されているプログラム（メッセージ配信プログラムを含む）、或いは可搬型記憶媒体用ドライブ３１７が可搬型記憶媒体３１６から読み取ったプログラム（メッセージ配信プログラムを含む）を実行することで、ウェブサーバ３０を図３の各部として機能させる。
【００１９】
具体的には、図３に示すように、ＣＰＵ３１１がプログラムを実行することにより、ウェブサーバ３０は、Ｗｅｂｓｏｃｋｅｔ通信部３４、接続管理部３３、第１受信部３１ａ、第１送信部３２ａ、第２受信部３１ｂ、および第２送信部３２ｂとして機能する。なお、第１受信部３１ａ及び第１送信部３２ａは、ＣＰＵ３１１がメッセージ配信プログラムに含まれる対クライアントプログラムを実行することにより実現される。また、第２受信部３１ｂ及び第２送信部３２ｂは、ＣＰＵ３１１が、メッセージ配信プログラムに含まれる対サーバプログラムを実行することにより実現される。
【００２０】
Ｗｅｂｓｏｃｋｅｔ通信部３４は、クライアント装置５０及び他のウェブサーバ３０との間でＷｅｂＳｏｃｋｅｔによる双方向通信を行うためのインタフェースである。Ｗｅｂｓｏｃｋｅｔ通信部３４は、Ｗｅｂｓｏｃｋｅｔ接続部３４１−１〜３４１−ｎ（ｎは任意の自然数）を含む。Ｗｅｂｓｏｃｋｅｔ接続部３４１−１〜３４１−ｎは、ウェブサーバ３０に対するクライアント装置５０及び他のウェブサーバ３０の接続先である。Ｗｅｂｓｏｃｋｅｔ接続部３４１−１〜３４１−ｎは、クライアント装置５０及び他のウェブサーバとの間でＷｅｂｓｏｃｋｅｔによる接続が確立すると生成される。後述する第１受信部３１ａ、第１送信部３２ａ、第２受信部３１ｂ、及び第２送信部３２ｂは、Ｗｅｂｓｏｃｋｅｔ接続部３４１−１〜３４１−ｎを介して、クライアント装置５０及び他のウェブサーバ３０との間でＷｅｂｓｏｃｋｅｔによる双方向通信を行う。なお、以後の説明において、特に区別する必要のない限り、Ｗｅｂｓｏｃｋｅｔ接続部３４１−１〜３４１−ｎをＷｅｂｓｏｃｋｅｔ接続部３４１と記載する。
【００２１】
接続管理部３３は、ウェブサーバ３０とクライアント装置５０との接続、および他のウェブサーバ３０との接続を管理する。接続管理部３３は、他のウェブサーバ３０とＷｅｂｓｏｃｋｅｔによる接続が確立した場合、接続サーバリストを更新する。また、接続管理部３３は、他のウェブサーバ３０へのメッセージの送信に失敗した場合や、他のウェブサーバ３０との接続が切断した場合に、接続サーバリストを更新し、当該ウェブサーバ３０の情報を情報管理装置２０に送信する。さらに、接続管理部３３は、クライアント装置５０とＷｅｂｓｏｃｋｅｔによる接続が確立すると接続クライアントリストを更新する。
【００２２】
ここで、図４（ｃ）を参照して、接続サーバリストについて説明する。接続サーバリストは、例えばＨＤＤ３１４等の記憶部に記憶されている。図４（ｃ）には、接続サーバリストのデータの一例が示されている。接続サーバリストは、ウェブサーバ３０とＷｅｂｓｏｃｋｅｔによる接続が確立している他のウェブサーバ３０の一覧であり、図４（ｃ）に示すように、ＩＰアドレスのフィールドを備える。ＩＰアドレスのフィールドには、Ｗｅｂｓｏｃｋｅｔによる接続が確立した際に他のウェブサーバ３０から受信するＩＰアドレスの情報が格納される。なお、接続サーバリストのデータ構成は、図４（ｃ）に限られるものではない。例えば、接続サーバリストは、ウェブサーバ３０の名称を格納するフィールドや、接続が確立された日時の情報を格納するフィールドを備えていてもよい。
【００２３】
次に、図４（ｄ）を参照して、接続クライアントリストについて説明する。接続クライアントリストは、例えばＨＤＤ３１４等の記憶部に記憶されている。図４（ｄ）には、接続クライアントリストのデータの一例が示されている。接続クライアントリストは、ウェブサーバ３０とＷｅｂｓｏｃｋｅｔによる接続が確立しているクライアント装置５０の一覧であり、図４（ｄ）に示すように、ｕｓｅｒＩＤおよびｇｒｏｕｐＩＤのフィールドを備える。ｕｓｅｒＩＤのフィールドには、ウェブサーバ３０とＷｅｂｓｏｃｋｅｔによる接続が確立しているクライアント装置５０のユーザを一意に識別するための識別子が格納される。ｇｒｏｕｐＩＤのフィールドには、ｕｓｅｒＩＤにより識別されるユーザが参加しているグループのｇｒｏｕｐＩＤ（図４（ｂ）参照）の情報が格納される。
【００２４】
図３に戻り、第１受信部３１ａは、Ｗｅｂｓｏｃｋｅｔにより接続が確立された、例えばクライアント装置５０−１からＷｅｂｓｏｃｋｅｔ接続部３４１−１を介してメッセージを含むメッセージ情報を受信する。
【００２５】
第１送信部３２ａは、第１受信部３１ａが、例えばクライアント装置５０−１からＷｅｂｓｏｃｋｅｔ接続部３４１を介してメッセージ情報を受信した場合、接続クライアントリスト（図４（ｄ））に基づいて、例えばクライアント装置５０−２にＷｅｂｓｏｃｋｅｔ接続部３４１−２を介してメッセージを送信（転送）するとともに、接続サーバリスト（図４（ｃ））に基づいて、例えばウェブサーバ３０−２，３０−３にＷｅｂｓｏｃｋｅｔ接続部３４１−ｎ−１，３４１−ｎを介してメッセージ情報を送信（転送）する。本実施形態において、メッセージ情報には、メッセージを送信したクライアント装置５０が属するグループの情報と、メッセージとが含まれる。
【００２６】
第２受信部３１ｂは、Ｗｅｂｓｏｃｋｅｔにより接続が確立された、例えばウェブサーバ３０−２からＷｅｂｓｏｃｋｅｔ接続部３４１−ｎ−１を介してメッセージ情報を受信する。
【００２７】
第２送信部３２ｂは、第２受信部３１ｂが、例えばウェブサーバ３０−２からＷｅｂｓｏｃｋｅｔ接続部３４１−ｎ−１を介してメッセージ情報を受信した場合、接続クライアントリスト（図４（ｄ））に基づいて、例えばクライアント装置５０−１，５０−２にメッセージを送信（転送）する。なお、第２送信部３２ｂは、第２受信部３１ｂがＷｅｂｓｏｃｋｅｔ接続部３４１−ｎ−１を介してウェブサーバ３０−２からメッセージ情報を受信した場合、当該メッセージ情報をＷｅｂｓｏｃｋｅｔ３４１−ｎを介してウェブサーバ３０−３には転送しない。すなわち、第２送信部３２ｂは、他のウェブサーバ３０の接続先であるＷｅｂｓｏｃｋｅｔ接続部３４１を介して他のウェブサーバ３０からメッセージ情報を受信した場合、当該メッセージ情報を他のウェブサーバ３０には転送しない。
【００２８】
次に、ウェブサーバ３０が実行するメッセージ配信処理について説明する。
【００２９】
（メッセージ配信処理）
図５（ａ）及び図５（ｂ）は、ウェブサーバ３０が実行するメッセージ配信処理を示すフローチャートである。より具体的には、図５（ａ）は、第１受信部３１ａ及び第１送信部３２ａが実行する処理を示すフローチャートであり、図５（ｂ）は、第２受信部３１ｂ及び第２送信部３２ｂが実行する処理を示すフローチャートである。
【００３０】
（第１受信部３１ａ及び第１送信部３２ａが実行する処理）
まず、図５（ａ）を用いて、第１受信部３１ａ及び第１送信部３２ａが実行する処理について説明する。
【００３１】
図５（ａ）の処理では、ステップＳ４０１において、第１受信部３１ａは、クライアント装置５０からメッセージ情報を受信するまで待機している。そして、第１受信部３１ａがメッセージ情報を受信すると、ステップＳ４０１の判断が肯定され、ステップＳ４０３に移行する。メッセージ情報は、メッセージの送信者が参加しているグループの情報と、メッセージとを含む。
【００３２】
ステップＳ４０３に移行すると、第１送信部３２ａは、自サーバとＷｅｂｓｏｃｋｅｔにて接続が確立しているクライアント装置５０から、メッセージの転送対象となるクライアント装置５０を特定する。具体的には、第１送信部３２ａは、接続クライアントリスト（図４（ｄ））において、メッセージを送信したクライアント装置５０のユーザと同一のグループに属するユーザを特定する。
【００３３】
続くステップＳ４０５において、第１送信部３２ａは、特定したクライアント装置５０にメッセージを転送する。
【００３４】
続くステップＳ４０７において、第１送信部３２ａは、接続サーバリスト（図４（ｃ））に基づいて、自装置とＷｅｂｓｏｃｋｅｔにて接続が確立しているウェブサーバ３０にメッセージ情報を転送する。他のウェブサーバ３０に転送されるメッセージ情報には、メッセージの送信者が参加しているグループの情報と、メッセージとが含まれる。なお、ステップＳ４０５及びＳ４０７の実行順序は逆でもよいし、並行して行ってもよい。
【００３５】
ステップＳ４０７の処理を終了すると、ステップＳ４０１に戻る。図５（ａ）の処理は、ウェブサーバ３０が稼働している間、繰り返し実行される。
【００３６】
（第２受信部３１ｂ及び第２送信部３２ｂが実行する処理）
次に、図５（ｂ）のフローチャートを参照して、第２受信部３１ｂ及び第２送信部３２ｂが実行する処理について説明する。
【００３７】
図５（ｂ）の処理では、ステップＳ５０１において、第２受信部３１ｂは、他のウェブサーバ３０からメッセージ情報を受信するまで待機している。そして、第２受信部３１ｂがメッセージ情報を受信すると、ステップＳ５０１の判断が肯定され、ステップＳ５０３に移行する。なお、本実施形態において、メッセージ情報は、メッセージの送信対象となるグループの情報と、メッセージとを含む。
【００３８】
ステップＳ５０３に移行すると、第２送信部３２ｂは、自サーバとＷｅｂｓｏｃｋｅｔにて接続が確立しているクライアント装置５０から、メッセージの転送対象となるクライアント装置５０を特定する。具体的には、第２送信部３２ｂは、接続クライアントリスト（図４（ｄ））において、メッセージ情報に含まれるグループと同一のグループに属するユーザを特定する。
【００３９】
続くステップＳ５０５において、第２送信部３２ｂは、特定したクライアント装置５０にメッセージを転送する。このとき、第２送信部３２ｂは、他のウェブサーバ３０には、メッセージ情報を転送しない。これにより、メッセージ情報がウェブサーバ３０間を巡回するのを防止することができる。
【００４０】
ステップＳ５０５の処理を終了すると、ステップＳ５０１に戻る。図５（ｂ）の処理は、ウェブサーバ３０が稼働している間、繰り返し実行される。
【００４１】
ここで、クライアント装置５０−１のユーザＡがメッセージを送信する場合を例として、各装置が実行する処理について、図６のシーケンス図、及び、各装置の接続関係を模式的に示す図７を用いて説明する。
【００４２】
図７は、クライアント装置５０とウェブサーバ３０との接続関係を模式的に示すものであり、ウェブサーバ３０が備える接続管理部３３、接続サーバリスト、接続クライアントリスト、第１受信部３１ａ、第１送信部３２ａ、第２受信部３１ｂ、及び第２送信部３２ｂの図示を省略している。
【００４３】
図７のメッセージ配信システムにおいて、ウェブサーバ３０−１は、Ｗｅｂｓｏｃｋｅｔ接続部３４１−１〜３４１−４をそれぞれ用いて、ユーザＡ、ユーザＣ、ユーザＤ及びユーザＥがそれぞれ利用するクライアント装置５０−１，５０−３，５０−４，５０−５とＷｅｂｓｏｃｋｅｔによる接続を確立している。ユーザＡ、ユーザＣ、ユーザＤ及びユーザＥが属するグループのｇｒｏｕｐＩＤは、それぞれ、“０００１”、“０００１”、“０００２”、及び“０００１”である。さらに、ウェブサーバ３０−１は、Ｗｅｂｓｏｃｋｅｔ接続部３４１−ｎ及び３４１−ｎ−１を用いて、ウェブサーバ３０−２及びウェブサーバ３０−３のそれぞれとＷｅｂｓｏｃｋｅｔによる接続を確立している。
【００４４】
また、ウェブサーバ３０−２は、Ｗｅｂｓｏｃｋｅｔ接続部３４１−１〜３４１―４をそれぞれ用いて、ユーザＢ、ユーザＦ、ユーザＧ、及びユーザＨがそれぞれ利用するクライアント装置５０−２，５０−６，５０−７，５０−８とＷｅｂｓｏｃｋｅｔによる接続を確立している。ユーザＢ、ユーザＦ、ユーザＧ、及びユーザＨが属するグループのｇｒｏｕｐＩＤは、それぞれ、“０００１”、“０００２”、“０００２”及び“０００３”である。また、ウェブサーバ３０−２は、Ｗｅｂｓｏｃｋｅｔ接続部３４１―ｎ−１及び３４１−ｎを用いて、ウェブサーバ３０−１及び３０−３のそれぞれとＷｅｂｓｏｃｋｅｔによる接続を確立している。
【００４５】
図６において、クライアント装置５０−１のユーザＡが、メッセージ送信処理を行うと（ステップＳ４１１）、クライアント装置５０−１は、メッセージ情報をウェブサーバ３０−１の第１受信部３１ａに送信する（ステップＳ４１３）。ここで、ユーザＡが、“状況を教えてください”とのメッセージを送信したとする。この場合、クライアント装置５０−１は、例えば、ユーザＡが参加するグループのｇｒｏｕｐＩＤ“０００１”と、メッセージ（ｍｅｓｓａｇｅ）“状況を教えてください”とを含むメッセージ情報をウェブサーバ３０−１に送信する。
【００４６】
ウェブサーバ３０−１の第１受信部３１ａがメッセージ情報を受信すると（図５（ａ）：Ｓ４０１／ＹＥＳ）、第１送信部３２ａがメッセージを転送するクライアント装置５０を特定する（ステップＳ４１７、図５（ａ）：Ｓ４０３）。ウェブサーバ３０−１は、接続クライアントリスト（図４（ｄ））を参照して、メッセージ情報に含まれるｇｒｏｕｐＩＤ“０００１”で識別されるグループに属するユーザを特定する。図７に示すメッセージ配信システムにおいて、ｇｒｏｕｐＩＤ“０００１”で識別されるグループに属するユーザは、ユーザＡ、ユーザＣ、及びユーザＥである。したがって、ウェブサーバ３０−１は、クライアント装置５０−１，５０−３，及び５０−５をメッセージの転送対象として特定する。
【００４７】
ウェブサーバ３０−１の第１送信部３２ａは、特定したクライアント装置５０にメッセージを転送する（ステップＳ４１９、図５（ａ）：Ｓ４０５）。図７のメッセージ配信システムでは、ウェブサーバ３０−１は、クライアント装置５０−１，５０−３，及び５０−５にメッセージ情報に含まれるメッセージ“状況を教えてください”を送信する。
【００４８】
さらにウェブサーバ３０−１の第１送信部３２ａは、自装置とＷｅｂｓｏｃｋｅｔにて接続が確立しているウェブサーバ３０−２及び３０−３の第２受信部３１ｂにメッセージ情報を転送する（ステップＳ４２１、図５（ａ）：Ｓ４０７）。
【００４９】
ウェブサーバ３０−２の第２送信部３２ｂは、第２受信部３１ｂによりメッセージ情報を受信すると（図５（ｂ）：Ｓ５０１／ＹＥＳ）、メッセージを転送するクライアント装置５０を特定する（ステップＳ４２３、図５（ｂ）：Ｓ５０３）。ここで、図７に示すメッセージ配信システムにおいて、メッセージ情報に含まれるｇｒｏｕｐＩＤ“０００１”で識別されるグループに属するユーザは、ユーザＢである。したがって、ウェブサーバ３０−２は、ユーザＢのクライアント装置５０−２を、メッセージの転送対象として特定する。
【００５０】
ウェブサーバ３０−２の第２送信部３２ｂは、特定されたクライアント装置５０−２にメッセージを転送する（ステップＳ４２５、図５（ｂ）：Ｓ５０５）。メッセージを受信したクライアント装置５０−２は、メッセージを表示する（ステップＳ４２７）。これにより、ユーザＡのクライアント装置５０−１が接続されたウェブサーバ３０−１とは異なるウェブサーバ３０−２に接続されたクライアント装置５０−２のユーザＢに、ユーザＡからのメッセージを配信することができる。なお、ウェブサーバ３０−２の第２送信部３２ｂは、ウェブサーバ３０−３にはメッセージ情報を転送しない。これにより、ウェブサーバ３０−１〜３０−３間でメッセージ情報が巡回するのを防止することができる。
【００５１】
以上、詳細に説明したように、本実施形態に係るメッセージ配信システムは、自装置との間で接続が確立しているクライアント装置５０−１（第１の端末装置）から、クライアント装置５０−１が属するグループの情報を含むメッセージを受信する第１受信部３１ａと、第１受信部３１ａによるメッセージの受信に応じて、自装置との間で接続が確立しているクライアント装置５０の属するグループ情報を記憶する接続クライアントリストを参照して、メッセージを送信したクライアント装置５０−１と同一のグループに属し、自装置との間で接続が確立しているクライアント装置５０−１，５０−３，５０−５（第２の端末装置）にメッセージを送信するとともに、自装置との間で接続が確立しているウェブサーバ３０−２，３０−３（第２の情報処理装置）にメッセージを送信する第１送信部３２ａと、を備えるウェブサーバ３０−１（第１の情報処理装置）と、ウェブサーバ３０−１からメッセージを受信する第２受信部３１ｂと、第２受信部３１ｂによるメッセージの受信に応じて、自装置との間で接続が確立しているクライアント装置５０の属するグループ情報を記憶する接続クライアントリストを参照して、クライアント装置５０−１と同一のグループに属し、該自装置との間で接続が確立しているクライアント装置５０−２（第３の端末装置）にメッセージを送信する第２送信部３２ｂと、を備えるウェブサーバ３０−２と、を含んでいる。これにより、複数のウェブサーバ３０−１〜３０−ｎにより負荷分散を行っているシステムにおいて、例えば、ウェブサーバ３０−１に接続されたクライアント装置５０−１から送信されたメッセージを、ウェブサーバ３０−１とは異なるウェブサーバ３０−２に接続され、かつ、クライアント装置５０−１と同一のグループに属するクライアント装置５０−２に送信することができる。また、ウェブサーバ３０−２は、第２受信部３１ｂによりメッセージ情報を受信した場合、メッセージ情報を他のウェブサーバ３０−３に送信しない。これにより、メッセージがウェブサーバ３０間で巡回するのを防止することができる。
【００５２】
また、本実施形態に係るメッセージ配信システムは、ネットワークに接続された複数のウェブサーバ３０−１〜３０−ｎを含み、例えばウェブサーバ３０−２は、クライアント装置５０の接続先であるＷｅｂｓｏｃｋｅｔ接続部３４１−１を介してメッセージ情報を受信した場合、当該メッセージ情報をウェブサーバ３０−１，３０−３に転送し、ウェブサーバ３０−１の接続先であるＷｅｂｓｏｃｋｅｔ３４１−ｎ−１を介してメッセージ情報を受信した場合、当該メッセージ情報をＷｅｂｓｏｃｋｅｔ３４１−ｎを介してウェブサーバ３０−３には転送しない。これにより、ウェブサーバ３０間でメッセージ情報が巡回するのを防止することができる。
【００５３】
なお、上記実施形態において、ウェブサーバ３０は、メッセージ情報の転送対象を特定する場合に、当該メッセージ情報を送信したクライアント装置５０を転送対象から除外するようにしてもよい。
【００５４】
なお、上記実施形態においては、情報管理装置２０が、稼働中サーバリストおよびグループリストを管理していた。しかしながら、ウェブサーバ３０がアクセス可能であれば、負荷分散装置１０が、稼働中サーバリストおよびグループリストを管理してもよい。
【００５５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００５６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００５７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００５８】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【００５９】
２０  情報管理装置
３０、３０−１〜３０−ｎ  ウェブサーバ（情報処理装置）
３１ａ  第１受信部（第１の受信部）
３１ｂ  第２受信部（第２の受信部）
３２ａ  第１送信部（第１の送信部、第３の送信部）
３２ｂ  第２送信部（第２の送信部）
３３  接続管理部
５０、５０−１〜５０−ｎ  クライアント装置（端末装置）
１００  メッセージ配信システム
３４１、３４１−１〜３４１−ｎ Ｗｅｂｓｏｃｋｅｔ接続部（接続先）
【図１】
2018018209.tif 000003
【図２】
2018018209.tif 000004
【図３】
2018018209.tif 000005
【図４】
2018018209.tif 000006
【図５】
2018018209.tif 000007
【図６】
2018018209.tif 000008
【図７】
2018018209.tif 000009