JP6724629B2 - Message delivery system, message delivery program, and message delivery method - Google Patents
Message delivery system, message delivery program, and message delivery method Download PDFInfo
- Publication number
- JP6724629B2 JP6724629B2 JP2016146587A JP2016146587A JP6724629B2 JP 6724629 B2 JP6724629 B2 JP 6724629B2 JP 2016146587 A JP2016146587 A JP 2016146587A JP 2016146587 A JP2016146587 A JP 2016146587A JP 6724629 B2 JP6724629 B2 JP 6724629B2
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- message
- processing device
- connection
- established
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Description
本発明は、メッセージ配信システム、メッセージ配信プログラム、およびメッセージ配信方法に関する。 The present invention relates to a message delivery system, a message delivery program, and a message delivery method.
WebSocket(ウェブソケット)は、サーバとクライアント装置とが双方向通信を行うための技術である。Websocketでは、サーバとクライアント装置とは、コネクションを確立した後は、そのコネクションを切断しない限り、データのやり取りをソケット通信で行うことができる。例えば、特許文献1に記載されたサーバでは、Websocketによりサーバに接続された複数のクライアント装置のうち特定のクライアント装置からメッセージを受信すると、当該メッセージで指定されたグループに属する他のクライアント装置にメッセージを転送している。
WebSocket is a technique for bidirectional communication between a server and a client device. In WebSocket, after establishing a connection, the server and the client device can exchange data by socket communication unless the connection is disconnected. For example, in the server described in
ところで、近年、ウェブサービスが大規模化しており、単一のウェブサーバでそのサービスをまかなうことが困難である場合が多い。そのため、大規模なウェブサービスシステムでは、複数のウェブサーバと、それらのウェブサーバの間で負荷を平準化して特定のウェブサーバへのトラフィックの集中を回避するための負荷分散装置とを設置するのが一般的である。 By the way, in recent years, web services have become large in scale, and it is often difficult to provide the services with a single web server. Therefore, in a large-scale web service system, a plurality of web servers and a load balancer for leveling the load among those web servers and avoiding the concentration of traffic to a particular web server are installed. Is common.
しかしながら、従来技術では、このような複数のウェブサーバにより負荷分散を行っているシステムにおける、Websocketを利用したメッセージングについて十分に検討されていない。 However, the related art has not sufficiently studied messaging using Websocket in a system in which the load is distributed by a plurality of such Web servers.
1つの側面では、異なる情報処理装置に接続された端末装置間でのメッセージングを実現することができるメッセージ配信システム、メッセージ配信プログラム、およびメッセージ配信方法を提供することを目的とする。 In one aspect, it is an object of the present invention to provide a message delivery system, a message delivery program, and a message delivery method capable of realizing messaging between terminal devices connected to different information processing devices.
一つの態様では、メッセージ配信システムは、負荷分散装置と第1のネットワークを介して接続され、前記負荷分散装置を介して第2のネットワークに接続された第1の情報処理装置と第2の情報処理装置とを含むメッセージ配信システムであって、前記負荷分散装置は、前記第2のネットワークに接続された端末装置を、前記第1の情報処理装置及び前記第2の情報処理装置の負荷状況に応じて前記第1の情報処理装置及び前記第2の情報処理装置に分散して割り当て、前記第1の情報処理装置は、前記第1の情報処理装置との間で接続が確立している第1の端末装置から、該第1の端末装置が属するグループの情報を含むメッセージを受信する第1の受信部と、前記第1の受信部による前記メッセージの受信に応じて、前記第1の情報処理装置との間で接続が確立している端末装置の属するグループ情報を記憶する第1の記憶部を参照して、該メッセージを送信した該第1の端末装置と同一のグループに属し、前記第1の情報処理装置との間で接続が確立している第2の端末装置に前記メッセージを送信するとともに、前記第1の情報処理装置との間で接続が確立している前記第2の情報処理装置に前記メッセージを送信する第1の送信部と、を備え、前記第2の情報処理装置は、前記第1の情報処理装置から前記メッセージを受信する第2の受信部と、前記第2の受信部による前記メッセージの受信に応じて、前記第2の情報処理装置との間で接続が確立している端末装置の属するグループ情報を記憶する第2の記憶部を参照して、前記第1の端末装置と同一のグループに属し、前記第2の情報処理装置との間で接続が確立している第3の端末装置に該メッセージを送信する第2の送信部と、を備える。
In one aspect, a message distribution system is connected to a load balancer via a first network, and is connected to a second network via the load balancer to a first information processing device and second information. A message distribution system including a processing device, wherein the load distribution device sets a terminal device connected to the second network to a load status of the first information processing device and the second information processing device. Accordingly, the first information processing apparatus and the second information processing apparatus are distributed and allocated, and the first information processing apparatus is connected to the first information processing apparatus by the first connection. A first receiving unit for receiving a message including information on a group to which the first terminal unit belongs from the first terminal unit; and the first information in response to the reception of the message by the first receiving unit. with reference to the first storage section for storing group information belongs terminal device a connection is established with the processing device, belonging to the same group as the terminal device first having transmitted the message, the sends the message to the second terminal device that has established connection with the first information processing apparatus, the second connection between the first information processing apparatus is established A first transmission unit that transmits the message to an information processing device, wherein the second information processing device includes a second reception unit that receives the message from the first information processing device; In response to the reception of the message by the second receiving unit, the second storage unit that stores the group information of the terminal device to which the connection with the second information processing device belongs is referred to, and A second transmitting unit that transmits the message to a third terminal device that belongs to the same group as the first terminal device and has a connection established with the second information processing device.
1つの側面として、異なる情報処理装置に接続された端末装置間でのメッセージングを実現することができる。 As one aspect, it is possible to realize messaging between terminal devices connected to different information processing devices.
以下、メッセージ配信システムの一実施形態について、図1〜図7に基づいて詳細に説明する。 Hereinafter, an embodiment of the message delivery system will be described in detail with reference to FIGS.
図1には、一実施形態にかかるメッセージ配信システム100の構成が概略的に示されている。メッセージ配信システム100は、端末装置としてのクライアント装置50−1〜50−nと、負荷分散装置10と、情報管理装置20と、メッセージ配信装置としての複数のウェブサーバ30−1〜30−nと、を含む。クライアント装置50−1〜50−nと、負荷分散装置10とは、インターネット等のネットワーク80を介して接続されている。負荷分散装置10、情報管理装置20、およびウェブサーバ30−1〜30−nは、LAN(Local Area Network)等のネットワーク40を介して接続されている。なお、以後の説明において、特に区別する必要のない限り、ウェブサーバ30−1〜30−nをウェブサーバ30と記載し、クライアント装置50−1〜50−nをクライアント装置50と記載する。また、ウェブサーバを単にサーバと記載する場合がある。
FIG. 1 schematically shows the configuration of a
メッセージ配信システム100において、クライアント装置50は、ウェブサーバ30により提供されるウェブサービスを利用するユーザが使用する端末である。クライアント装置50は、例えば、パーソナルコンピュータや、タブレット型端末や、スマートフォンである。ユーザは、クライアント装置50を用いてウェブサービスを利用し、他のユーザにメッセージを送信したり、他のユーザからメッセージを受信したりする。
In the
負荷分散装置10は、ウェブサーバ30−1〜30−nの間で負荷を平準化して特定のウェブサーバへのトラフィックの集中を回避する。負荷分散装置10は、各ウェブサーバの負荷状況に応じて、クライアント装置50−1〜50−nを複数のウェブサーバ30−1〜30−nに分散して割り当てる。 The load balancer 10 balances the load among the web servers 30-1 to 30-n to avoid the concentration of traffic to a specific web server. The load balancer 10 distributes and allocates the client devices 50-1 to 50-n to the plurality of web servers 30-1 to 30-n according to the load status of each web server.
情報管理装置20は、ウェブサーバ30−1〜30−nがアクセス可能なデータベースサーバやストレージである。情報管理装置20は、稼働中サーバリストを用いて、複数のウェブサーバ30−1〜30−nのうち稼働中のウェブサーバの情報を管理する。より具体的には、情報管理装置20は、起動したウェブサーバ30からIPアドレスの情報を受信すると、稼働中サーバリストに受信したIPアドレスを追加し、稼働中サーバリストを、起動したウェブサーバ30に送信する。また、情報管理装置20は、応答がない、あるいは、停止したウェブサーバ30の情報を稼働中のウェブサーバ30から受信し、応答がない、あるいは、停止したウェブサーバ30を稼働中サーバリストから削除する。
The
ここで、図4(a)を参照して、稼働中サーバリストについて説明する。図4(a)には、稼働中サーバリストのデータの一例が示されている。稼働中サーバリストは、ウェブサーバ30−1〜30−nのうち稼働中のウェブサーバのIPアドレスを管理するリストであり、図4(a)に示すように、IPアドレスのフィールドを備える。IPアドレスのフィールドには、起動したウェブサーバ30から受信したIPアドレスの情報が格納される。なお、稼働中サーバリストのデータ構成は、図4(a)に限られるものではない。例えば、稼働中サーバリストは、ウェブサーバ30の名称を格納するフィールドや、起動日時の情報を格納するフィールドを備えていてもよい。
Here, the operating server list will be described with reference to FIG. FIG. 4A shows an example of data of the operating server list. The operating server list is a list that manages the IP address of the operating web server among the web servers 30-1 to 30-n, and includes an IP address field as shown in FIG. 4A. Information on the IP address received from the activated
また、情報管理装置20は、グループリストを用いて、ユーザが作成したグループの情報を管理する。
Further, the
ここで、図4(b)を参照して、グループリストについて説明する。図4(b)には、グループリストのデータの一例が示されている。グループリストは、クライアント装置50のユーザにより作成されたグループを管理するためのリストである。グループリストは、図4(b)に示すように、groupIDおよびgroupNameなどのフィールドを備える。groupIDのフィールドには、グループを一意に識別するための識別番号が格納される。groupNameのフィールドには、グループの名称が格納される。ユーザは、グループリストに登録されているグループのいずれかに参加することで、同一グループ内の他のユーザにメッセージを送信したり、他のユーザからメッセージを受信したりすることができる。
Here, the group list will be described with reference to FIG. FIG. 4B shows an example of group list data. The group list is a list for managing groups created by the user of the
図1に戻り、ウェブサーバ30は、ユーザにウェブサービスを提供するためのサーバである。ウェブサーバ30は、図2に示すようなハードウェア構成を有する。具体的には、ウェブサーバ30は、図2に示すように、CPU(Central Processing Unit)311、ROM(Read Only Memory)312、RAM(Random Access Memory)313、記憶装置(HDD:Hard Disk Drive)314、ネットワークインタフェース315、及び可搬型記憶媒体316に記憶されたデータを読み取り可能な可搬型記憶媒体用ドライブ317等を備えている。これらウェブサーバ30の構成各部は、バス318に接続されている。CPU311は、ROM312あるいはHDD314に格納されているプログラム(メッセージ配信プログラムを含む)、或いは可搬型記憶媒体用ドライブ317が可搬型記憶媒体316から読み取ったプログラム(メッセージ配信プログラムを含む)を実行することで、ウェブサーバ30を図3の各部として機能させる。
Returning to FIG. 1, the
具体的には、図3に示すように、CPU311がプログラムを実行することにより、ウェブサーバ30は、Websocket通信部34、接続管理部33、第1受信部31a、第1送信部32a、第2受信部31b、および第2送信部32bとして機能する。なお、第1受信部31a及び第1送信部32aは、CPU311がメッセージ配信プログラムに含まれる対クライアントプログラムを実行することにより実現される。また、第2受信部31b及び第2送信部32bは、CPU311が、メッセージ配信プログラムに含まれる対サーバプログラムを実行することにより実現される。
Specifically, as shown in FIG. 3, the
Websocket通信部34は、クライアント装置50及び他のウェブサーバ30との間でWebSocketによる双方向通信を行うためのインタフェースである。Websocket通信部34は、Websocket接続部341−1〜341−n(nは任意の自然数)を含む。Websocket接続部341−1〜341−nは、ウェブサーバ30に対するクライアント装置50及び他のウェブサーバ30の接続先である。Websocket接続部341−1〜341−nは、クライアント装置50及び他のウェブサーバとの間でWebsocketによる接続が確立すると生成される。後述する第1受信部31a、第1送信部32a、第2受信部31b、及び第2送信部32bは、Websocket接続部341−1〜341−nを介して、クライアント装置50及び他のウェブサーバ30との間でWebsocketによる双方向通信を行う。なお、以後の説明において、特に区別する必要のない限り、Websocket接続部341−1〜341−nをWebsocket接続部341と記載する。
The
接続管理部33は、ウェブサーバ30とクライアント装置50との接続、および他のウェブサーバ30との接続を管理する。接続管理部33は、他のウェブサーバ30とWebsocketによる接続が確立した場合、接続サーバリストを更新する。また、接続管理部33は、他のウェブサーバ30へのメッセージの送信に失敗した場合や、他のウェブサーバ30との接続が切断した場合に、接続サーバリストを更新し、当該ウェブサーバ30の情報を情報管理装置20に送信する。さらに、接続管理部33は、クライアント装置50とWebsocketによる接続が確立すると接続クライアントリストを更新する。
The
ここで、図4(c)を参照して、接続サーバリストについて説明する。接続サーバリストは、例えばHDD314等の記憶部に記憶されている。図4(c)には、接続サーバリストのデータの一例が示されている。接続サーバリストは、ウェブサーバ30とWebsocketによる接続が確立している他のウェブサーバ30の一覧であり、図4(c)に示すように、IPアドレスのフィールドを備える。IPアドレスのフィールドには、Websocketによる接続が確立した際に他のウェブサーバ30から受信するIPアドレスの情報が格納される。なお、接続サーバリストのデータ構成は、図4(c)に限られるものではない。例えば、接続サーバリストは、ウェブサーバ30の名称を格納するフィールドや、接続が確立された日時の情報を格納するフィールドを備えていてもよい。
Here, the connection server list will be described with reference to FIG. The connection server list is stored in the storage unit such as the
次に、図4(d)を参照して、接続クライアントリストについて説明する。接続クライアントリストは、例えばHDD314等の記憶部に記憶されている。図4(d)には、接続クライアントリストのデータの一例が示されている。接続クライアントリストは、ウェブサーバ30とWebsocketによる接続が確立しているクライアント装置50の一覧であり、図4(d)に示すように、userIDおよびgroupIDのフィールドを備える。userIDのフィールドには、ウェブサーバ30とWebsocketによる接続が確立しているクライアント装置50のユーザを一意に識別するための識別子が格納される。groupIDのフィールドには、userIDにより識別されるユーザが参加しているグループのgroupID(図4(b)参照)の情報が格納される。
Next, the connection client list will be described with reference to FIG. The connected client list is stored in a storage unit such as the
図3に戻り、第1受信部31aは、Websocketにより接続が確立された、例えばクライアント装置50−1からWebsocket接続部341−1を介してメッセージを含むメッセージ情報を受信する。
Returning to FIG. 3, the
第1送信部32aは、第1受信部31aが、例えばクライアント装置50−1からWebsocket接続部341を介してメッセージ情報を受信した場合、接続クライアントリスト(図4(d))に基づいて、例えばクライアント装置50−2にWebsocket接続部341−2を介してメッセージを送信(転送)するとともに、接続サーバリスト(図4(c))に基づいて、例えばウェブサーバ30−2,30−3にWebsocket接続部341−n−1,341−nを介してメッセージ情報を送信(転送)する。本実施形態において、メッセージ情報には、メッセージを送信したクライアント装置50が属するグループの情報と、メッセージとが含まれる。
When the
第2受信部31bは、Websocketにより接続が確立された、例えばウェブサーバ30−2からWebsocket接続部341−n−1を介してメッセージ情報を受信する。 The second receiving unit 31b receives the message information from, for example, the Web server 30-2 whose connection has been established by WebSocket, via the WebSocket connecting unit 341-n-1.
第2送信部32bは、第2受信部31bが、例えばウェブサーバ30−2からWebsocket接続部341−n−1を介してメッセージ情報を受信した場合、接続クライアントリスト(図4(d))に基づいて、例えばクライアント装置50−1,50−2にメッセージを送信(転送)する。なお、第2送信部32bは、第2受信部31bがWebsocket接続部341−n−1を介してウェブサーバ30−2からメッセージ情報を受信した場合、当該メッセージ情報をWebsocket341−nを介してウェブサーバ30−3には転送しない。すなわち、第2送信部32bは、他のウェブサーバ30の接続先であるWebsocket接続部341を介して他のウェブサーバ30からメッセージ情報を受信した場合、当該メッセージ情報を他のウェブサーバ30には転送しない。
When the second receiving unit 31b receives message information from the web server 30-2 via the Websocket connecting unit 341-n-1 for example, the
次に、ウェブサーバ30が実行するメッセージ配信処理について説明する。
Next, the message delivery process executed by the
(メッセージ配信処理)
図5(a)及び図5(b)は、ウェブサーバ30が実行するメッセージ配信処理を示すフローチャートである。より具体的には、図5(a)は、第1受信部31a及び第1送信部32aが実行する処理を示すフローチャートであり、図5(b)は、第2受信部31b及び第2送信部32bが実行する処理を示すフローチャートである。
(Message delivery process)
FIG. 5A and FIG. 5B are flowcharts showing the message delivery processing executed by the
(第1受信部31a及び第1送信部32aが実行する処理)
まず、図5(a)を用いて、第1受信部31a及び第1送信部32aが実行する処理について説明する。
(Processing executed by the
First, the processing executed by the
図5(a)の処理では、ステップS401において、第1受信部31aは、クライアント装置50からメッセージ情報を受信するまで待機している。そして、第1受信部31aがメッセージ情報を受信すると、ステップS401の判断が肯定され、ステップS403に移行する。メッセージ情報は、メッセージの送信者が参加しているグループの情報と、メッセージとを含む。
In the process of FIG. 5A, in step S401, the
ステップS403に移行すると、第1送信部32aは、自サーバとWebsocketにて接続が確立しているクライアント装置50から、メッセージの転送対象となるクライアント装置50を特定する。具体的には、第1送信部32aは、接続クライアントリスト(図4(d))において、メッセージを送信したクライアント装置50のユーザと同一のグループに属するユーザを特定する。
When the process proceeds to step S403, the
続くステップS405において、第1送信部32aは、特定したクライアント装置50にメッセージを転送する。
In subsequent step S405, the
続くステップS407において、第1送信部32aは、接続サーバリスト(図4(c))に基づいて、自装置とWebsocketにて接続が確立しているウェブサーバ30にメッセージ情報を転送する。他のウェブサーバ30に転送されるメッセージ情報には、メッセージの送信者が参加しているグループの情報と、メッセージとが含まれる。なお、ステップS405及びS407の実行順序は逆でもよいし、並行して行ってもよい。
In the following step S407, the
ステップS407の処理を終了すると、ステップS401に戻る。図5(a)の処理は、ウェブサーバ30が稼働している間、繰り返し実行される。
When the process of step S407 ends, the process returns to step S401. The process of FIG. 5A is repeatedly executed while the
(第2受信部31b及び第2送信部32bが実行する処理)
次に、図5(b)のフローチャートを参照して、第2受信部31b及び第2送信部32bが実行する処理について説明する。
(Processing executed by the second receiver 31b and the
Next, the processing executed by the second receiving unit 31b and the
図5(b)の処理では、ステップS501において、第2受信部31bは、他のウェブサーバ30からメッセージ情報を受信するまで待機している。そして、第2受信部31bがメッセージ情報を受信すると、ステップS501の判断が肯定され、ステップS503に移行する。なお、本実施形態において、メッセージ情報は、メッセージの送信対象となるグループの情報と、メッセージとを含む。
In the process of FIG. 5B, in step S501, the second receiving unit 31b waits until it receives message information from another
ステップS503に移行すると、第2送信部32bは、自サーバとWebsocketにて接続が確立しているクライアント装置50から、メッセージの転送対象となるクライアント装置50を特定する。具体的には、第2送信部32bは、接続クライアントリスト(図4(d))において、メッセージ情報に含まれるグループと同一のグループに属するユーザを特定する。
When the process proceeds to step S503, the
続くステップS505において、第2送信部32bは、特定したクライアント装置50にメッセージを転送する。このとき、第2送信部32bは、他のウェブサーバ30には、メッセージ情報を転送しない。これにより、メッセージ情報がウェブサーバ30間を巡回するのを防止することができる。
In subsequent step S505, the
ステップS505の処理を終了すると、ステップS501に戻る。図5(b)の処理は、ウェブサーバ30が稼働している間、繰り返し実行される。
When the process of step S505 ends, the process returns to step S501. The process of FIG. 5B is repeatedly executed while the
ここで、クライアント装置50−1のユーザAがメッセージを送信する場合を例として、各装置が実行する処理について、図6のシーケンス図、及び、各装置の接続関係を模式的に示す図7を用いて説明する。 Here, taking the case where the user A of the client device 50-1 transmits a message as an example, the sequence diagram of FIG. 6 and the process diagram of FIG. 7 showing the connection relationship of each device for the processing executed by each device. It will be explained using.
図7は、クライアント装置50とウェブサーバ30との接続関係を模式的に示すものであり、ウェブサーバ30が備える接続管理部33、接続サーバリスト、接続クライアントリスト、第1受信部31a、第1送信部32a、第2受信部31b、及び第2送信部32bの図示を省略している。
FIG. 7 schematically shows the connection relationship between the
図7のメッセージ配信システムにおいて、ウェブサーバ30−1は、Websocket接続部341−1〜341−4をそれぞれ用いて、ユーザA、ユーザC、ユーザD及びユーザEがそれぞれ利用するクライアント装置50−1,50−3,50−4,50−5とWebsocketによる接続を確立している。ユーザA、ユーザC、ユーザD及びユーザEが属するグループのgroupIDは、それぞれ、“0001”、“0001”、“0002”、及び“0001”である。さらに、ウェブサーバ30−1は、Websocket接続部341−n及び341−n−1を用いて、ウェブサーバ30−2及びウェブサーバ30−3のそれぞれとWebsocketによる接続を確立している。 In the message delivery system of FIG. 7, the web server 30-1 uses the Websocket connection units 341-1 to 341-4, respectively, and the client device 50-1 used by the user A, the user C, the user D, and the user E, respectively. , 50-3, 50-4, 50-5, and WebSocket connection are established. The groupIDs of the groups to which the user A, the user C, the user D, and the user E belong are “0001”, “0001”, “0002”, and “0001”, respectively. Further, the web server 30-1 uses the Websocket connection units 341-n and 341-n-1 to establish a Websocket connection with each of the web server 30-2 and the web server 30-3.
また、ウェブサーバ30−2は、Websocket接続部341−1〜341―4をそれぞれ用いて、ユーザB、ユーザF、ユーザG、及びユーザHがそれぞれ利用するクライアント装置50−2,50−6,50−7,50−8とWebsocketによる接続を確立している。ユーザB、ユーザF、ユーザG、及びユーザHが属するグループのgroupIDは、それぞれ、“0001”、“0002”、“0002”及び“0003”である。また、ウェブサーバ30−2は、Websocket接続部341―n−1及び341−nを用いて、ウェブサーバ30−1及び30−3のそれぞれとWebsocketによる接続を確立している。 Further, the web server 30-2 uses the Websocket connection units 341-1 to 341-4, respectively, and the client devices 50-2, 50-6, which are used by the user B, the user F, the user G, and the user H, respectively. The connection by 50-7 and 50-8 by WebSocket is established. The groupIDs of the groups to which the user B, the user F, the user G, and the user H belong are “0001”, “0002”, “0002”, and “0003”, respectively. Further, the web server 30-2 uses the WebSocket connection units 341-n-1 and 341-n to establish WebSocket connections with the web servers 30-1 and 30-3, respectively.
図6において、クライアント装置50−1のユーザAが、メッセージ送信処理を行うと(ステップS411)、クライアント装置50−1は、メッセージ情報をウェブサーバ30−1の第1受信部31aに送信する(ステップS413)。ここで、ユーザAが、“状況を教えてください”とのメッセージを送信したとする。この場合、クライアント装置50−1は、例えば、ユーザAが参加するグループのgroupID“0001”と、メッセージ(message)“状況を教えてください”とを含むメッセージ情報をウェブサーバ30−1に送信する。
In FIG. 6, when the user A of the client device 50-1 performs the message transmission process (step S411), the client device 50-1 transmits the message information to the
ウェブサーバ30−1の第1受信部31aがメッセージ情報を受信すると(図5(a):S401/YES)、第1送信部32aがメッセージを転送するクライアント装置50を特定する(ステップS417、図5(a):S403)。ウェブサーバ30−1は、接続クライアントリスト(図4(d))を参照して、メッセージ情報に含まれるgroupID“0001”で識別されるグループに属するユーザを特定する。図7に示すメッセージ配信システムにおいて、groupID“0001”で識別されるグループに属するユーザは、ユーザA、ユーザC、及びユーザEである。したがって、ウェブサーバ30−1は、クライアント装置50−1,50−3,及び50−5をメッセージの転送対象として特定する。
When the
ウェブサーバ30−1の第1送信部32aは、特定したクライアント装置50にメッセージを転送する(ステップS419、図5(a):S405)。図7のメッセージ配信システムでは、ウェブサーバ30−1は、クライアント装置50−1,50−3,及び50−5にメッセージ情報に含まれるメッセージ“状況を教えてください”を送信する。
The
さらにウェブサーバ30−1の第1送信部32aは、自装置とWebsocketにて接続が確立しているウェブサーバ30−2及び30−3の第2受信部31bにメッセージ情報を転送する(ステップS421、図5(a):S407)。
Furthermore, the
ウェブサーバ30−2の第2送信部32bは、第2受信部31bによりメッセージ情報を受信すると(図5(b):S501/YES)、メッセージを転送するクライアント装置50を特定する(ステップS423、図5(b):S503)。ここで、図7に示すメッセージ配信システムにおいて、メッセージ情報に含まれるgroupID“0001”で識別されるグループに属するユーザは、ユーザBである。したがって、ウェブサーバ30−2は、ユーザBのクライアント装置50−2を、メッセージの転送対象として特定する。
When the second reception unit 31b receives the message information (FIG. 5B: S501/YES), the
ウェブサーバ30−2の第2送信部32bは、特定されたクライアント装置50−2にメッセージを転送する(ステップS425、図5(b):S505)。メッセージを受信したクライアント装置50−2は、メッセージを表示する(ステップS427)。これにより、ユーザAのクライアント装置50−1が接続されたウェブサーバ30−1とは異なるウェブサーバ30−2に接続されたクライアント装置50−2のユーザBに、ユーザAからのメッセージを配信することができる。なお、ウェブサーバ30−2の第2送信部32bは、ウェブサーバ30−3にはメッセージ情報を転送しない。これにより、ウェブサーバ30−1〜30−3間でメッセージ情報が巡回するのを防止することができる。
The
以上、詳細に説明したように、本実施形態に係るメッセージ配信システムは、自装置との間で接続が確立しているクライアント装置50−1(第1の端末装置)から、クライアント装置50−1が属するグループの情報を含むメッセージを受信する第1受信部31aと、第1受信部31aによるメッセージの受信に応じて、自装置との間で接続が確立しているクライアント装置50の属するグループ情報を記憶する接続クライアントリストを参照して、メッセージを送信したクライアント装置50−1と同一のグループに属し、自装置との間で接続が確立しているクライアント装置50−1,50−3,50−5(第2の端末装置)にメッセージを送信するとともに、自装置との間で接続が確立しているウェブサーバ30−2,30−3(第2の情報処理装置)にメッセージを送信する第1送信部32aと、を備えるウェブサーバ30−1(第1の情報処理装置)と、ウェブサーバ30−1からメッセージを受信する第2受信部31bと、第2受信部31bによるメッセージの受信に応じて、自装置との間で接続が確立しているクライアント装置50の属するグループ情報を記憶する接続クライアントリストを参照して、クライアント装置50−1と同一のグループに属し、該自装置との間で接続が確立しているクライアント装置50−2(第3の端末装置)にメッセージを送信する第2送信部32bと、を備えるウェブサーバ30−2と、を含んでいる。これにより、複数のウェブサーバ30−1〜30−nにより負荷分散を行っているシステムにおいて、例えば、ウェブサーバ30−1に接続されたクライアント装置50−1から送信されたメッセージを、ウェブサーバ30−1とは異なるウェブサーバ30−2に接続され、かつ、クライアント装置50−1と同一のグループに属するクライアント装置50−2に送信することができる。また、ウェブサーバ30−2は、第2受信部31bによりメッセージ情報を受信した場合、メッセージ情報を他のウェブサーバ30−3に送信しない。これにより、メッセージがウェブサーバ30間で巡回するのを防止することができる。
As described above in detail, in the message delivery system according to the present exemplary embodiment, the client device 50-1 (first terminal device), which has established a connection with the device itself, moves from the client device 50-1 to the client device 50-1. A
また、本実施形態に係るメッセージ配信システムは、ネットワークに接続された複数のウェブサーバ30−1〜30−nを含み、例えばウェブサーバ30−2は、クライアント装置50の接続先であるWebsocket接続部341−1を介してメッセージ情報を受信した場合、当該メッセージ情報をウェブサーバ30−1,30−3に転送し、ウェブサーバ30−1の接続先であるWebsocket341−n−1を介してメッセージ情報を受信した場合、当該メッセージ情報をWebsocket341−nを介してウェブサーバ30−3には転送しない。これにより、ウェブサーバ30間でメッセージ情報が巡回するのを防止することができる。
Further, the message delivery system according to the present embodiment includes a plurality of web servers 30-1 to 30-n connected to the network. For example, the web server 30-2 is a Websocket connection unit that is a connection destination of the
なお、上記実施形態において、ウェブサーバ30は、メッセージ情報の転送対象を特定する場合に、当該メッセージ情報を送信したクライアント装置50を転送対象から除外するようにしてもよい。
In the above-described embodiment, when specifying the transfer target of the message information, the
なお、上記実施形態においては、情報管理装置20が、稼働中サーバリストおよびグループリストを管理していた。しかしながら、ウェブサーバ30がアクセス可能であれば、負荷分散装置10が、稼働中サーバリストおよびグループリストを管理してもよい。
In the above embodiment, the
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。 The above processing functions can be realized by a computer. In that case, a program describing the processing contents of the functions that the processing device should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing content can be recorded in a computer-readable recording medium (excluding a carrier wave).
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。 When the program is distributed, it is sold in the form of a portable recording medium such as a DVD (Digital Versatile Disc) or a CD-ROM (Compact Disc Read Only Memory) in which the program is recorded. It is also possible to store the program in the storage device of the server computer and transfer the program from the server computer to another computer via a network.
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。 The computer that executes the program stores, for example, the program recorded in the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. In addition, the computer can also sequentially execute processing according to the received program each time the program is transferred from the server computer.
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。 The embodiment described above is a preferred embodiment of the present invention. However, the present invention is not limited to this, and various modifications can be made without departing from the scope of the present invention.
20 情報管理装置
30、30−1〜30−n ウェブサーバ(情報処理装置)
31a 第1受信部(第1の受信部)
31b 第2受信部(第2の受信部)
32a 第1送信部(第1の送信部、第3の送信部)
32b 第2送信部(第2の送信部)
33 接続管理部
50、50−1〜50−n クライアント装置(端末装置)
100 メッセージ配信システム
341、341−1〜341−n Websocket接続部(接続先)
20
31a 1st receiving part (1st receiving part)
31b Second receiver (second receiver)
32a First transmitter (first transmitter, third transmitter)
32b Second transmitter (second transmitter)
33
100
Claims (6)
前記負荷分散装置は、前記第2のネットワークに接続された端末装置を、前記第1の情報処理装置及び前記第2の情報処理装置の負荷状況に応じて前記第1の情報処理装置及び前記第2の情報処理装置に分散して割り当て、
前記第1の情報処理装置は、
前記第1の情報処理装置との間で接続が確立している第1の端末装置から、該第1の端末装置が属するグループの情報を含むメッセージを受信する第1の受信部と、
前記第1の受信部による前記メッセージの受信に応じて、前記第1の情報処理装置との間で接続が確立している端末装置の属するグループ情報を記憶する第1の記憶部を参照して、該メッセージを送信した該第1の端末装置と同一のグループに属し、前記第1の情報処理装置との間で接続が確立している第2の端末装置に前記メッセージを送信するとともに、前記第1の情報処理装置との間で接続が確立している前記第2の情報処理装置に前記メッセージを送信する第1の送信部と、
を備え、
前記第2の情報処理装置は、
前記第1の情報処理装置から前記メッセージを受信する第2の受信部と、
前記第2の受信部による前記メッセージの受信に応じて、前記第2の情報処理装置との間で接続が確立している端末装置の属するグループ情報を記憶する第2の記憶部を参照して、前記第1の端末装置と同一のグループに属し、前記第2の情報処理装置との間で接続が確立している第3の端末装置に該メッセージを送信する第2の送信部と、
を備える、
メッセージ配信システム。 A message distribution system including a first information processing device and a second information processing device connected to a load distribution device via a first network and connected to a second network via the load distribution device. hand,
The load balancer sets the terminal devices connected to the second network to the first information processing device and the first information processing device according to the load status of the first information processing device and the second information processing device. Distributed to two information processing devices,
The first information processing device is
A first receiving unit that receives a message including information on a group to which the first terminal device belongs from a first terminal device that has established a connection with the first information processing device;
In response to the reception of the message by the first receiving unit, refer to the first storage unit that stores group information to which the terminal device that has established a connection with the first information processing device belongs. belongs to a group of terminals the same first that sent the message, sends the message to the second terminal apparatus that connection is established between said first information processing apparatus, wherein a first transmission unit that transmits the message to the second information processing apparatus to which a connection has been established between the first information processing apparatus,
Equipped with
The second information processing device is
A second receiving unit that receives the message from the first information processing device;
In response to the reception of the message by the second receiving unit, refer to the second storage unit that stores the group information of the terminal device that has established a connection with the second information processing device. A second transmitting unit that transmits the message to a third terminal device that belongs to the same group as the first terminal device and has a connection established with the second information processing device,
Equipped with a,
Message delivery system.
前記第2の情報処理装置との間で接続が確立している第3の端末装置から、該第3の端末装置が属するグループの情報を含むメッセージを受信する第3の受信部と、
前記第3の受信部による前記メッセージの受信に応じて、前記第2の情報処理装置との間で接続が確立している端末装置の属するグループ情報を記憶する前記第2の記憶部を参照して、該メッセージを送信した該第3の端末装置と同一のグループに属し、前記第2の情報処理装置との間で接続が確立している第4の端末装置に前記メッセージを送信するとともに、前記第2の情報処理装置との間で接続が確立している第3の情報処理装置に前記メッセージを送信する第3の送信部と、
を備えることを特徴とする請求項1に記載のメッセージ配信システム。 The second information processing device is
A third receiving unit that receives a message including information on a group to which the third terminal device belongs from a third terminal device that has established a connection with the second information processing device;
In response to the reception of the message by the third receiving unit, reference is made to the second storage unit that stores group information to which the terminal device that has established a connection with the second information processing device belongs. And sends the message to a fourth terminal device that belongs to the same group as the third terminal device that sent the message and that has a connection established with the second information processing device, A third transmission unit that transmits the message to a third information processing apparatus that has established a connection with the second information processing apparatus;
The message delivery system according to claim 1, further comprising:
前記第1の受信部が前記第1の端末装置からメッセージを受信した場合、前記第1の情報処理装置と接続が確立されている他の情報処理装置に前記メッセージを転送し、
前記第1の受信部が前記他の情報処理装置からメッセージを受信した場合、前記他の情報処理装置には前記メッセージを転送しない、
請求項1または請求項2に記載のメッセージ配信システム。 The first transmission unit of the first information processing device,
When the first receiving unit receives a message from the first terminal device, the message is transferred to another information processing device having a connection established with the first information processing device ,
When the first receiving unit receives a message from the other information processing apparatus, the message is not transferred to the other information processing apparatus ,
The message delivery system according to claim 1 or 2 .
請求項1から請求項3のいずれか1項記載のメッセージ配信システム。The message delivery system according to any one of claims 1 to 3.
前記第1の情報処理装置として機能させる場合には、前記コンピュータを、
自装置との間で接続が確立している第1の端末装置から、該第1の端末装置が属するグループの情報を含むメッセージを受信する第1の受信部、および
前記第1の受信部による前記メッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する第1の記憶部を参照して、該メッセージを送信した該第1の端末装置と同一のグループに属し、該自装置との間で接続が確立している第2の端末装置に前記メッセージを送信するとともに、該自装置との間で接続が確立している前記第2の情報処理装置に前記メッセージを送信する第1の送信部、
として機能させ、
前記第2の情報処理装置として機能させる場合には、前記コンピュータを、
自装置との間で接続が確立している前記第1の情報処理装置から、他のメッセージを受信する第2の受信部、および
前記第2の受信部による前記他のメッセージの受信に応じて、自装置との間で接続が確立している端末装置の属するグループ情報を記憶する記憶部を参照して、前記第1の端末装置と同一のグループに属し、該自装置との間で接続が確立している第3の端末装置に該他のメッセージを送信する第2の送信部、として機能させる、
メッセージ配信プログラム。 In a message distribution system including a first information processing device and a second information processing device, which are connected to a load balancer via a first network and are connected to a second network via the load balancer, The load balancer sets the terminal device connected to the second network to the first information processing device and the first information processing device according to the load status of the first information processing device and the second information processing device. A message distribution program that causes a computer to function as the first information processing device or the second information processing device when distributedly allocated to two information processing devices,
When the computer is caused to function as the first information processing device,
A first receiving unit that receives a message including information on a group to which the first terminal device belongs from a first terminal device that has established a connection with the own device; and the first receiving unit. In response to the reception of the message, the first storage device that transmits the message with reference to the first storage unit that stores the group information of the terminal device to which the connection is established with the self device. belonging to the same group as, sends the message to the second terminal device that has established connection with the the free-device, the second being a connection is established between the free-device A first transmission unit that transmits the message to the information processing device,
Function as
When the computer is made to function as the second information processing device,
In response to a second reception unit that receives another message from the first information processing device that has established a connection with the own device, and a reception of the other message by the second reception unit. , Referring to the storage unit that stores the group information of the terminal device to which the connection is established with the own device, belongs to the same group as the first terminal device, and connects with the own device The second transmission unit for transmitting the other message to the established third terminal device ,
Message delivery program.
前記第1の情報処理装置が、前記第2のネットワークに接続された端末装置のうち、前記第1の情報処理装置及び前記第2の情報処理装置の負荷状況に応じて前記負荷分散装置により前記第1の情報処理装置に割り当てられ、前記第1の情報処理装置との間で接続が確立している第1の端末装置から、該第1の端末装置が属するグループの情報を含むメッセージを第1の受信部により受信した場合、前記第1の情報処理装置との間で接続が確立している端末装置の属するグループ情報を記憶する第1の記憶部を参照して、該メッセージを送信した該第1の端末装置と同一のグループに属し、前記第1の情報処理装置との間で接続が確立している第2の端末装置に前記メッセージを送信するとともに、前記第2の情報処理装置に前記メッセージを送信し、
前記第2の情報処理装置が、前記第1の情報処理装置から前記メッセージを受信する第2の受信部により前記メッセージを受信した場合、前記第2のネットワークに接続された端末装置のうち、前記第1の情報処理装置及び前記第2の情報処理装置の負荷状況に応じて前記負荷分散装置により前記第2の情報処理装置に割り当てられ、前記第2の情報処理装置との間で接続が確立している端末装置の属するグループ情報を記憶する第2の記憶部を参照して、前記第1の端末装置と同一のグループに属し、該自装置との間で接続が確立している第3の端末装置に該メッセージを送信する、
ことを特徴とするメッセージ配信方法。
In a message distribution system including a first information processing device and a second information processing device, which are connected to a load balancer via a first network and are connected to a second network via the load balancer,
Wherein said first information processing apparatus, of the second terminal device connected to the network, by the load balancer in accordance with the load status of the first information processing apparatus and the second information processing apparatus The first terminal device, which is assigned to the first information processing device and has a connection established with the first information processing device, sends a message including information of a group to which the first terminal device belongs to the first terminal device. When it is received by the first receiving unit, the message is transmitted by referring to the first storage unit that stores the group information of the terminal device to which the connection with the first information processing device belongs. belonging to the terminal device and the same group of first, it sends the message to the second terminal device that has established connection between said first information processing apparatus, the second information processing apparatus Send the message to
When the second information processing device receives the message by the second receiving unit that receives the message from the first information processing device, among the terminal devices connected to the second network, The load balancer allocates to the second information processing device according to the load status of the first information processing device and the second information processing device, and a connection is established with the second information processing device. A third storage unit that refers to the second storage unit that stores the group information of the terminal device that belongs to the first terminal device that belongs to the same group as the first terminal device and that has established a connection with the own device. Send the message to the terminal device of
A message delivery method characterized by the following.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016146587A JP6724629B2 (en) | 2016-07-26 | 2016-07-26 | Message delivery system, message delivery program, and message delivery method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016146587A JP6724629B2 (en) | 2016-07-26 | 2016-07-26 | Message delivery system, message delivery program, and message delivery method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018018209A JP2018018209A (en) | 2018-02-01 |
JP6724629B2 true JP6724629B2 (en) | 2020-07-15 |
Family
ID=61076647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016146587A Active JP6724629B2 (en) | 2016-07-26 | 2016-07-26 | Message delivery system, message delivery program, and message delivery method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6724629B2 (en) |
-
2016
- 2016-07-26 JP JP2016146587A patent/JP6724629B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018018209A (en) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7375203B2 (en) | Account access methods and devices, storage media, and electronic devices | |
JP5847185B2 (en) | Content sharing method and apparatus using group change information in content-centric network environment | |
CN104852972A (en) | Method for host selection based on discovered NAT type | |
CN110719221A (en) | Instant messaging method, device, equipment and storage medium | |
US9967412B2 (en) | Information processing apparatus, system, and control method for information processing apparatus | |
TW200952516A (en) | Load distribution system, load distribution method and authentication server | |
CN103098437B (en) | Based on call session server and the Message routing system of selection of SIP | |
CN102624916A (en) | Method, node manager and system for load balancing in cloud computing system | |
KR20110137917A (en) | Apparatus and method for composing personal network using pn routing table | |
US11843642B1 (en) | Serverless signaling in peer-to-peer session initialization | |
US9503485B1 (en) | Connecting communicating devices in a multi-server communication system | |
JP5593359B2 (en) | COMMUNICATION CONTROL DEVICE, MESSAGE TRANSFER METHOD, AND MESSAGE TRANSFER PROGRAM | |
JP2006221423A (en) | Data distribution method and device and storage medium | |
CN103503421A (en) | SCTP association endpoint relocation in a load balancing system | |
JP2020521388A (en) | Packet transmission method and apparatus | |
US20120265871A1 (en) | Multicast, client/service-attribute resolution | |
JP2014038483A (en) | Data distribution system, data distribution method, and program | |
US9936011B2 (en) | Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database | |
CN109246024A (en) | Load sharing method, device, terminal device and storage medium in a kind of networking | |
US9473430B2 (en) | Method and system for group number-based microblog aggregation | |
JP6724629B2 (en) | Message delivery system, message delivery program, and message delivery method | |
EP3481099B1 (en) | Load balancing method and associated device | |
KR20090006504A (en) | Apparatus and method for providing p2p service in ip multimedia subsystem | |
JP2017139567A (en) | Terminal, relay device selection apparatus, communication method, relay device selection method and program | |
JP2019149015A (en) | Server device, information processor, information processing method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190409 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200417 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200526 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200608 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6724629 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |