JP2015154096A - data distribution system, server device, client device, program and data distribution method - Google Patents

data distribution system, server device, client device, program and data distribution method Download PDF

Info

Publication number
JP2015154096A
JP2015154096A JP2014023492A JP2014023492A JP2015154096A JP 2015154096 A JP2015154096 A JP 2015154096A JP 2014023492 A JP2014023492 A JP 2014023492A JP 2014023492 A JP2014023492 A JP 2014023492A JP 2015154096 A JP2015154096 A JP 2015154096A
Authority
JP
Japan
Prior art keywords
sequence number
packet
communication protocol
packet group
message
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.)
Granted
Application number
JP2014023492A
Other languages
Japanese (ja)
Other versions
JP5549965B1 (en
Inventor
宏樹 伊藤
Hiroki Ito
宏樹 伊藤
雅夫 額賀
Masao Nukaga
雅夫 額賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
eStijl Co Ltd
Original Assignee
eStijl Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by eStijl Co Ltd filed Critical eStijl Co Ltd
Priority to JP2014023492A priority Critical patent/JP5549965B1/en
Application granted granted Critical
Publication of JP5549965B1 publication Critical patent/JP5549965B1/en
Publication of JP2015154096A publication Critical patent/JP2015154096A/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To perform data distribution guaranteeing the order of the data, while using a plurality of communication protocols.SOLUTION: A data distribution system 1 has a server device 10, and a client device 20. The server device 10 assigns a first sequence number to each first packet included in a first packet group dividing a message according to a first communication protocol. The server device 10 also assigns a second sequence number to each packet included in a second packet group dividing a message according to a second communication protocol. Furthermore, the server device 10 assigns a third sequence number, indicating the relative distribution number each of the second packet for the first packet group, to at least any one of the first packet and second packet. Upon receiving the first packet group and second packet group from the server device 10, the client device 20 specifies the distribution order of packet groups, based on the first sequence number, second sequence number and third sequence number.

Description

本発明は、金融情報等のデータを配信する技術に関する。   The present invention relates to a technique for distributing data such as financial information.

金融情報等のデータを配信する手法として、ユニキャスト通信やブロードキャスト通信が用いられている。例えば、特許文献1には、ユニキャスト通信のみに対応した通信環境下で、ユニキャスト通信を利用して一対多のブロードキャスト通信やマルチキャスト通信を擬似的に実現する通信方法が記載されている。また、特許文献2には、無線通信システムにおける情報伝達の信頼性を高めるために、送信側において、送信しようとする周期的繰り返し送信が必要である情報と周期的繰り返し送信が必要でない情報に対してそれぞれ処理を行って、データユニットに組み立て、それぞれ互いに独立のシーケンス番号空間を利用して、組み立てられたデータユニットにシーケンス番号を設定して送信し、受信側において、受信した周期的繰り返し送信が必要である情報と周期的繰り返し送信が必要でない情報に対して、それぞれ受信処理を行う情報伝送方法が記載されている。   Unicast communication and broadcast communication are used as a technique for distributing data such as financial information. For example, Patent Document 1 describes a communication method that realizes one-to-many broadcast communication and multicast communication in a pseudo manner using unicast communication in a communication environment that supports only unicast communication. Further, in Patent Document 2, in order to increase the reliability of information transmission in a wireless communication system, information that requires periodic repeated transmission and information that does not require periodic repeated transmission are to be transmitted on the transmission side. Each of the processes is performed to assemble the data unit, and the sequence number space is set to each of the assembled data units using the sequence number spaces that are independent of each other. An information transmission method is described in which reception processing is performed on information that is necessary and information that does not require periodic repeated transmission.

また、特許文献3には、パケット欠落や順序逆転などの通信障害を防止して、ネットワークの運用性および信頼性の向上を図るために、マルチキャストの配信経路となるマルチキャストツリーの更新制御を行うことが記載されている。また、特許文献4には、パケット転送経路制御装置において、出力ポート毎にマルチキャストパケットの管理情報を格納するマルチキャスト管理テーブルを設け、また入力パケットに対して、例えば出力ポート毎にシリアル番号を付与してパケットの出力を管理することによって、ユニキャストパケットとマルチキャストパケットとの間でのパケットの出力の順序性を保証することが記載されている。   Patent Document 3 discloses that multicast tree update control for a multicast distribution route is performed in order to prevent communication failures such as packet loss and order reversal and to improve network operability and reliability. Is described. Patent Document 4 provides a multicast management table for storing management information of multicast packets for each output port in the packet transfer path control device, and assigns serial numbers to the input packets, for example, for each output port. It is described that the output order of packets between unicast packets and multicast packets is guaranteed by managing the output of packets.

特開2007−53486号公報JP 2007-53486 A 特表2008−523741号公報Special Table 2008-523741 国際公開第2006/103719号International Publication No. 2006/103719 特開2005−130366号公報JP 2005-130366 A

特許文献1乃至4に記載の技術では、複数の通信プロトコルを併用してデータ配信を行った場合、受信されるデータの順序性を保証することはできなかった。特に、特許文献4に記載の技術では、ユニキャストパケットとマルチキャストパケットとの出力の順序性を保証することができるものの、パケットを受信する側の装置においてネットワーク機器やOS、ソフトウェアの各レイヤ等でパケットの順序関係が保たれない場合があった。
これに対し本発明は、複数の通信プロトコルを併用しつつデータの順序性を保証することのできる技術を提供する。
In the techniques described in Patent Documents 1 to 4, when data distribution is performed using a plurality of communication protocols in combination, the order of received data cannot be guaranteed. In particular, the technique described in Patent Document 4 can guarantee the output order of unicast packets and multicast packets, but the network device, OS, each layer of software, etc. in the device that receives the packets. In some cases, the packet order relationship could not be maintained.
In contrast, the present invention provides a technique that can guarantee the order of data while using a plurality of communication protocols in combination.

本発明は、サーバ装置と、クライアント装置とを有し、前記サーバ装置は、メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従って前記クライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信する送信手段とを備え、前記クライアント装置は、前記サーバ装置から前記第1パケット群を前記第1通信プロトコルに従って受信する第1受信手段と、前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信する第2受信手段と、前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定する特定手段と、前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理する処理手段とを備えるデータ配信システムを提供する。
このデータ配信システムによれば、第1の通信プロトコルと第2の通信プロトコルとを併用しつつデータの順序性が保証されるデータ配信を行うことができる。
The present invention includes a server device and a client device, and the server device assigns a first sequence number to each first packet included in a first packet group in which a message is divided according to a first communication protocol. A first assigning means, a second assigning means for assigning a second sequence number to each of the second packets included in the second packet group in which the message is divided according to a second communication protocol different from the first communication protocol, and the first Third assigning means for attaching a third sequence number indicating the relative distribution order of each of the second packets to the packet group to at least one of the first packet and the second packet; and the first sequence number Alternatively, the first packet group to which the first sequence number and the third sequence number are attached is designated as the first communication process. Transmitting means for transmitting the second sequence number or the second packet number with the second sequence number and the third sequence number to the client device according to the second communication protocol. And the client device receives the first packet group from the server device according to the first communication protocol, and receives the second packet group from the server device according to the second communication protocol. Second receiving means, and the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the received first packet group and the received second packet group Based on the received first packet group and the received second packet. Specifying means for specifying the distribution order of the bets group, according to the delivery order, to provide a data distribution system and a processing means for processing the first packet group and the second packet group is the received.
According to this data distribution system, it is possible to perform data distribution in which the order of data is guaranteed while using both the first communication protocol and the second communication protocol.

また、本発明は、サーバ装置と、クライアント装置とを有し、前記サーバ装置は、メッセージに第3シーケンス番号を付す第3付与手段と、前記第3シーケンス番号が付されたメッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、前記第1通信プロトコルと異なる第2通信プロトコルに従って前記第3シーケンス番号が付されたメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、前記第1シーケンス番号が付された前記第1パケット群を前記第1通信プロトコルに従って前記クライアント装置へ送信し、前記第2シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信する送信手段とを備え、前記クライアント装置は、前記サーバ装置から前記第1パケット群を前記第1通信プロトコルに従って受信する第1受信手段と、前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信する第2受信手段と、前記受信された第1パケット群に付された前記第1シーケンス番号と前記受信された第2パケット群に付された第2シーケンス番号とに基づいてメッセージを復元し、該復元されたメッセージに付された第3シーケンス番号に基づいて該メッセージの配信順序を特定する特定手段と、前記配信順序に従って、前記復元されたメッセージを処理する処理手段とを備えるデータ配信システムを提供する。   The present invention further includes a server device and a client device, wherein the server device assigns a third sequence number to the message, and the message to which the third sequence number is attached is the first communication. First assigning means for assigning a first sequence number to each of the first packets included in the first packet group divided according to the protocol, and the third sequence number according to a second communication protocol different from the first communication protocol. Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group into which the message is divided, and the first packet group assigned with the first sequence number as the first communication Transmitting the second packet group to which the second sequence number is attached to the second communication protocol. Transmitting means for transmitting to the client device according to the first communication device, wherein the client device receives the first packet group from the server device according to the first communication protocol, and the second from the server device. A second receiving means for receiving a packet group in accordance with the second communication protocol; a first sequence number assigned to the received first packet group; and a second sequence assigned to the received second packet group. A message is restored based on the number, a specifying means for specifying a delivery order of the message based on a third sequence number attached to the restored message, and the restored message is processed according to the delivery order There is provided a data distribution system including processing means.

前記第3付与手段は、前記第1パケットに対して、直近のタイミングにおいて前記第2パケットに付与された第2シーケンス番号を、前記第3シーケンス番号として付与してもよい。
また、前記第3付与手段は、前記第2パケットに対して、直近のタイミングにおいて前記第1パケットに付与された第1シーケンス番号を、前記第3シーケンス番号として付与してもよい。
The third assigning unit may assign the second sequence number assigned to the second packet at the latest timing as the third sequence number to the first packet.
The third assigning unit may assign the first sequence number assigned to the first packet at the latest timing to the second packet as the third sequence number.

前記第1通信プロトコルに従って送信されるメッセージは、予め定められたタイミングごとのデータ値の時間変化を示すデータであり、前記第2通信プロトコルに従って送信されるメッセージは、或る時点までの前記データ値の時間変化を示すデータを含んでもよい。   The message transmitted according to the first communication protocol is data indicating a time change of the data value at each predetermined timing, and the message transmitted according to the second communication protocol is the data value up to a certain point in time. It is also possible to include data indicating the time change of the.

前記第1通信プロトコルに従って送信されるメッセージは、予め定められたタイミングごとの金融情報の時間変化を示す系列データであり、前記第2通信プロトコルに従って送信されるメッセージは、或る時点までの前記金融情報の時間変化を示すデータを含み、前記第1通信プロトコルは、マルチキャストの通信プロトコルであり、前記第2通信プロトコルは、ユニキャストの通信プロトコルであってもよい。   The message transmitted according to the first communication protocol is sequence data indicating a time change of financial information for each predetermined timing, and the message transmitted according to the second communication protocol is the financial data up to a certain point in time. Data including time change of information may be included, the first communication protocol may be a multicast communication protocol, and the second communication protocol may be a unicast communication protocol.

前記送信手段は、前記第1パケット群を第1のクライアント装置群へマルチキャストし、前記第2パケット群を第2のクライアント装置群へマルチキャストしてもよい。   The transmission means may multicast the first packet group to the first client device group and multicast the second packet group to the second client device group.

前記サーバ装置は、前記第1通信プロトコルを指定する要求を前記クライアント装置から受信した場合に、前記メッセージを該第1通信プロトコルに従って前記クライアント装置へ送信してもよい。   When the server device receives a request for designating the first communication protocol from the client device, the server device may transmit the message to the client device according to the first communication protocol.

また、本発明は、メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従ってクライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信する送信手段とを備えるサーバ装置を提供する。   Further, the present invention provides a first assigning means for assigning a first sequence number to each of the first packets included in the first packet group in which the message is divided according to the first communication protocol, and a second different from the first communication protocol. Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group into which the message is divided according to the communication protocol, and relative distribution of each of the second packets with respect to the first packet group Third assigning means for assigning a third sequence number indicating an order to at least one of the first packet and the second packet; and attaching the first sequence number or the first sequence number and the third sequence number. The transmitted first packet group is transmitted to the client device according to the first communication protocol, and the second sheet is transmitted. Providing a server apparatus and transmitting means for transmitting to the client device according Nsu number or the second sequence number and the third said sequence numbered the second packet group second communication protocol.

また、本発明は、メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、前記第1パケット群に対する前記複数の第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従って当該クライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って当該クライアント装置へ送信する送信手段とを備えるサーバ装置から、前記第1パケット群を前記第1通信プロトコルに従って受信する第1受信手段と、前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信する第2受信手段と、前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定する特定手段と、前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理する処理手段とを備えるクライアント装置を提供する。   Further, the present invention provides a first assigning means for assigning a first sequence number to each of the first packets included in the first packet group in which the message is divided according to the first communication protocol, and a second different from the first communication protocol. Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group into which the message has been divided in accordance with the communication protocol; and relative to each of the plurality of second packets with respect to the first packet group A third assigning unit for assigning a third sequence number indicating an appropriate distribution order to at least one of the first packet and the second packet, and the first sequence number or the first sequence number and the third sequence number. Is transmitted to the client device according to the first communication protocol, From the server device comprising: a second sequence number or a transmission means for transmitting the second packet group assigned the second sequence number and the third sequence number to the client device according to the second communication protocol; A first receiving means for receiving a packet group according to the first communication protocol; a second receiving means for receiving the second packet group from the server apparatus according to the second communication protocol; the received first packet group; Based on the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the received second packet groups, the received first packet group and the received Specifying means for specifying the delivery order of the second packet group, and the received packet according to the delivery order. Providing a client device and a processing means for processing the first packet group and the second packet group.

また、本発明は、コンピュータに、メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付すステップと、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付すステップと、前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付すステップと、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従ってクライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信するステップとを実行させるためのプログラムを提供する。   According to another aspect of the present invention, a step of assigning a first sequence number to each of first packets included in a first packet group in which a message is divided according to a first communication protocol is provided to a computer, and a second different from the first communication protocol. A step of assigning a second sequence number to each of the second packets included in the second packet group into which the message is divided according to the communication protocol, and a relative distribution order of each of the second packets with respect to the first packet group are shown. A step of assigning a third sequence number to at least one of the first packet and the second packet; and the first packet to which the first sequence number or the first sequence number and the third sequence number are attached A group to the client device according to the first communication protocol, and the second It provides a program for executing a step of transmitting to the client device according to sequence number or the second sequence number and the third said sequence numbered the second packet group second communication protocol.

また、本発明は、コンピュータに、メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従って前記コンピュータへ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記コンピュータへ送信する送信手段とを備えるサーバ装置から、前記第1パケット群を前記第1通信プロトコルに従って受信するステップと、前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信するステップと、前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定するステップと、前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理するステップとを実行させるためのプログラムを提供する。   The present invention also provides a computer, a first assigning unit for assigning a first sequence number to each first packet included in a first packet group in which a message is divided according to a first communication protocol, and the first communication protocol. Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group in which the message is divided according to a different second communication protocol, and the relative of each of the second packets to the first packet group Third assigning means for assigning a third sequence number indicating a general delivery order to at least one of the first packet and the second packet, the first sequence number or the first sequence number and the third sequence Sending the numbered first packet group to the computer according to the first communication protocol A transmission means for transmitting the second packet number to which the second sequence number or the second sequence number and the third sequence number are attached to the computer according to the second communication protocol; Receiving one packet group in accordance with the first communication protocol, receiving the second packet group from the server device in accordance with the second communication protocol, the received first packet group, and the received first packet group. The received first packet group and the received second packet group based on the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the two packet groups Identifying a delivery order of the first and the received first according to the delivery order It provides a program for executing and processing the packet group and the second packet group.

また、本発明は、サーバ装置が、メッセージが第1通信プロトコルに従って分割された第1パケット群の各々に第1シーケンス番号を付すステップと、前記サーバ装置が、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付すステップと、前記サーバ装置が、前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付すステップと、前記サーバ装置が、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従ってクライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信するステップと、前記クライアント装置が、前記サーバ装置から前記第1パケット群を前記第1通信プロトコルに従って受信するステップと、前記クライアント装置が、前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信するステップと、前記クライアント装置が、前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定するステップと、前記クライアント装置が、前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理するステップとを備えるデータ配信方法を提供する。   According to the present invention, the server device assigns a first sequence number to each of the first packet group in which the message is divided according to the first communication protocol, and the server device is different from the first communication protocol in the second Assigning a second sequence number to each of the second packets included in the second packet group into which the message is divided in accordance with the communication protocol, and the server device relative to each of the second packets with respect to the first packet group. Attaching a third sequence number indicating an appropriate delivery order to at least one of the first packet and the second packet, and the server device comprising the first sequence number or the first sequence number and the third packet The first packet group to which the sequence number is assigned is classified according to the first communication protocol. Transmitting to the client device the second sequence number or the second packet group to which the second sequence number and the third sequence number are attached according to the second communication protocol; A device receiving the first packet group from the server device according to the first communication protocol; and a client device receiving the second packet group from the server device according to the second communication protocol; The client device is based on the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the received first packet group and the received second packet group. The received first packet group and the received packet A data distribution method comprising: specifying a distribution order of the second packet group; and processing the client device to process the received first packet group and second packet group according to the distribution order. .

本発明によれば、複数の通信プロトコルを併用しつつデータの順序性を保証したデータ配信を行うことができる。   ADVANTAGE OF THE INVENTION According to this invention, the data delivery which guaranteed the order of data can be performed, using a some communication protocol together.

第1実施形態に係るデータ配信システム1の機能構成を示す図。The figure which shows the function structure of the data delivery system 1 which concerns on 1st Embodiment. サーバ装置10のハードウェア構成を示す図。The figure which shows the hardware constitutions of the server apparatus. クライアント装置20のハードウェア構成を示す図。The figure which shows the hardware constitutions of the client apparatus 20. サーバ装置10とクライアント装置20のソフトウェア構成を例示する図。The figure which illustrates the software structure of the server apparatus 10 and the client apparatus 20. マルチキャストパケットのパケット構成を例示する図。The figure which illustrates the packet structure of a multicast packet. ユニキャストパケットのパケット構成を例示する図。The figure which illustrates the packet structure of a unicast packet. パケットの送信順序とシーケンス番号の関係を例示する図。The figure which illustrates the relationship between the transmission order of a packet and a sequence number. データ配信システム1の動作を例示するシーケンス図。4 is a sequence diagram illustrating the operation of the data distribution system 1. FIG. 第2実施形態に係るデータ配信システム2の機能構成を示す図。The figure which shows the function structure of the data delivery system 2 which concerns on 2nd Embodiment. サーバ装置10Bとクライアント装置20Bのソフトウェア構成を例示する図。The figure which illustrates the software structure of the server apparatus 10B and the client apparatus 20B. 配信単位51から配信されるメッセージを例示する図。The figure which illustrates the message delivered from the delivery unit 51. パケットの送信順序とシーケンス番号の関係を例示する図。The figure which illustrates the relationship between the transmission order of a packet and a sequence number.

1.第1実施形態
1−1.構成
図1は、本発明の第1実施形態に係るデータ配信システム1の構成を示す図である。データ配信システム1は、サーバ装置10と、複数のクライアント装置20、20、…とを有する。サーバ装置10は、株価変動や取引情報などの金融情報を含むメッセージ(ある書式を有するデータ、いわゆる電文)をクライアント装置20へ配信する。このとき、サーバ装置10は、配信するメッセージの種別等の条件に応じて通信プロトコルを選択する。クライアント装置20は、サーバ装置10から送信されるメッセージを受信し、受信したメッセージに応じた処理を行う。例えば、クライアント装置20は、受信したメッセージに含まれる金融情報をリアルタイムでチャートに表示する。
1. First embodiment 1-1. Configuration FIG. 1 is a diagram showing a configuration of a data distribution system 1 according to the first embodiment of the present invention. The data distribution system 1 includes a server device 10 and a plurality of client devices 20, 20,. The server device 10 delivers a message (data having a certain format, so-called telegram) including financial information such as stock price fluctuations and transaction information to the client device 20. At this time, the server device 10 selects a communication protocol according to conditions such as the type of message to be distributed. The client device 20 receives the message transmitted from the server device 10 and performs processing according to the received message. For example, the client device 20 displays financial information included in the received message on a chart in real time.

サーバ装置10は、第1付与手段11と、第2付与手段12と、第3付与手段13と、送信手段14とを有する。第1付与手段11は、メッセージが第1通信プロトコルに従って分割されたパケット群(以下「第1パケット群」という)に含まれる第1パケットの各々にシーケンス番号(以下「第1シーケンス番号」という)を付す。第2付与手段12は、第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割されたパケット群(以下「第2パケット群」という)に含まれる第2パケットの各々にシーケンス番号(以下「第2シーケンス番号」という)を付す。第3付与手段13は、第1パケット群に対する第2パケットの各々の相対的な配信順序を示すシーケンス番号(以下「第3シーケンス番号」という)を、第1パケットおよび第2パケットの少なくともいずれか一方に付す。送信手段14は、第1シーケンス番号または第1シーケンス番号と第3シーケンス番号が付された第1パケット群を、第1通信プロトコルに従ってクライアント装置20へ送信し、第2シーケンス番号または第2シーケンス番号と第3シーケンス番号が付された第2パケット群を、第2通信プロトコルに従ってクライアント装置20へ送信する。   The server device 10 includes a first grant unit 11, a second grant unit 12, a third grant unit 13, and a transmission unit 14. The first assigning means 11 assigns a sequence number (hereinafter referred to as “first sequence number”) to each first packet included in a packet group (hereinafter referred to as “first packet group”) obtained by dividing the message according to the first communication protocol. Is attached. The second assigning means 12 assigns a sequence number (hereinafter referred to as “second packet”) to each second packet included in a packet group (hereinafter referred to as “second packet group”) in which a message is divided according to a second communication protocol different from the first communication protocol. 2 sequence number) ”. The third assigning means 13 assigns a sequence number (hereinafter referred to as “third sequence number”) indicating the relative distribution order of each of the second packets to the first packet group to at least one of the first packet and the second packet. Attached to one. The transmission means 14 transmits the first sequence number or the first packet group to which the first sequence number and the third sequence number are attached to the client device 20 according to the first communication protocol, and the second sequence number or the second sequence number The second packet group to which the third sequence number is attached is transmitted to the client device 20 according to the second communication protocol.

クライアント装置20は、第1受信手段21と、第2受信手段22と、特定手段23と、処理手段24とを有する。第1受信手段21は、サーバ装置10から送信されてくる第1パケット群を、第1通信プロトコルに従って受信する。第2受信手段22は、サーバ装置10から送信されてくる第2パケット群を、第2通信プロトコルに従って受信する。特定手段23は、受信された第1パケット群と受信された第2パケット群に付された第1シーケンス番号、第2シーケンス番号及び第3シーケンス番号に基づいて、受信された第1パケット群と受信された第2パケット群の配信順序を特定する。処理手段24は、配信順序に従って、受信された第1パケット群と第2パケット群を処理する。この例で、処理手段24は、受信された第1パケット群からメッセージを生成するとともに、受信された第2パケット群からメッセージを生成し、生成したメッセージに対して予め定められた情報処理を行う。   The client device 20 includes a first receiving unit 21, a second receiving unit 22, a specifying unit 23, and a processing unit 24. The first receiving means 21 receives the first packet group transmitted from the server device 10 according to the first communication protocol. The second receiving means 22 receives the second packet group transmitted from the server device 10 according to the second communication protocol. The specifying unit 23 receives the first packet group received based on the first sequence number, the second sequence number, and the third sequence number assigned to the received first packet group and the received second packet group. The distribution order of the received second packet group is specified. The processing means 24 processes the received first packet group and second packet group in accordance with the distribution order. In this example, the processing unit 24 generates a message from the received first packet group, generates a message from the received second packet group, and performs predetermined information processing on the generated message. .

図2は、サーバ装置10のハードウェア構成を例示する図である。サーバ装置10は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、ストレージ104と、通信インターフェース105とを有するコンピュータ装置である。CPU101は、サーバ装置10の各部を制御する制御装置(プロセッサ)である。ROM102は、プログラムおよびデータを記憶する不揮発性の記憶装置である。RAM103は、CPU101がプログラムを実行する際の作業領域として機能する揮発性の主記憶装置である。ストレージ104は、プログラムおよびデータを記憶する不揮発性の補助記憶装置である。通信IF105は、ネットワーク30を介した通信を行うためのインターフェースであり、この例では特に、サーバ装置10と通信を行うためのインターフェースである。ネットワーク30は、メッセージをサーバ装置10からクライアント装置20まで中継する。ネットワーク30は、インターネットのようなオープンなネットワークでもよいし、データ配信システム1に固有のクローズドなネットワークでもよい。   FIG. 2 is a diagram illustrating a hardware configuration of the server apparatus 10. The server device 10 is a computer device having a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a storage 104, and a communication interface 105. The CPU 101 is a control device (processor) that controls each unit of the server device 10. The ROM 102 is a non-volatile storage device that stores programs and data. The RAM 103 is a volatile main storage device that functions as a work area when the CPU 101 executes a program. The storage 104 is a non-volatile auxiliary storage device that stores programs and data. The communication IF 105 is an interface for performing communication via the network 30. In this example, the communication IF 105 is an interface for performing communication with the server device 10 in particular. The network 30 relays the message from the server device 10 to the client device 20. The network 30 may be an open network such as the Internet or a closed network unique to the data distribution system 1.

この例で、ストレージ104(またはROM102)に記憶されているデータ配信プログラムをCPU101が実行することにより、図1に示される機能が実装される。データ配信プログラムを実行しているCPU101は、第1付与手段11、第2付与手段12および第3付与手段13の一例である。CPU101、又はCPU101及び通信IF105は送信手段14の一例である。   In this example, the CPU 101 executes a data distribution program stored in the storage 104 (or ROM 102), thereby implementing the functions shown in FIG. The CPU 101 executing the data distribution program is an example of the first grant unit 11, the second grant unit 12, and the third grant unit 13. The CPU 101 or the CPU 101 and the communication IF 105 are an example of the transmission unit 14.

図3は、クライアント装置20のハードウェア構成を例示する図である。クライアント装置20は、CPU201と、ROM202と、RAM203と、ストレージ204と、通信インターフェース205と、ディスプレイ206と、操作部207とを有するコンピュータ装置である。CPU201は、クライアント装置20の各部を制御する制御装置(プロセッサ)である。ROM202は、プログラムおよびデータを記憶する不揮発性の記憶装置である。RAM203は、CPU201がプログラムを実行する際の作業領域として機能する揮発性の主記憶装置である。ストレージ204は、プログラムおよびデータを記憶する不揮発性の補助記憶装置である。   FIG. 3 is a diagram illustrating a hardware configuration of the client device 20. The client device 20 is a computer device that includes a CPU 201, a ROM 202, a RAM 203, a storage 204, a communication interface 205, a display 206, and an operation unit 207. The CPU 201 is a control device (processor) that controls each unit of the client device 20. The ROM 202 is a nonvolatile storage device that stores programs and data. The RAM 203 is a volatile main storage device that functions as a work area when the CPU 201 executes a program. The storage 204 is a nonvolatile auxiliary storage device that stores programs and data.

通信インターフェース205は、ネットワーク30を介した通信を行うためのインターフェースであり、この例では特に、サーバ装置10と通信を行うためのインターフェースである。ディスプレイ206は、CPU201の制御下で、プログラムの実行結果などの情報を表示する装置である。操作部207はユーザによって操作され、操作された内容に応じた情報をCPU201へ出力する。なお、ディスプレイ206と操作部207とが一体として構成されていてもよい。例えば、クライアント装置20はディスプレイ206と操作部207とが一体となったタッチスクリーンを有していてもよい。   The communication interface 205 is an interface for performing communication via the network 30. In this example, in particular, the communication interface 205 is an interface for performing communication with the server device 10. The display 206 is a device that displays information such as the execution result of the program under the control of the CPU 201. The operation unit 207 is operated by the user, and outputs information corresponding to the operated content to the CPU 201. Note that the display 206 and the operation unit 207 may be configured integrally. For example, the client device 20 may have a touch screen in which the display 206 and the operation unit 207 are integrated.

この例で、ストレージ204(またはRAM203)に記憶されているデータ処理プログラムをCPU201が実行することにより、図1に示される機能が実装される。データ処理プログラムを実行しているCPU201、又はCPU201及び通信IF205は、第1受信手段21および第2受信手段22の一例である。また、CPU201は、特定手段23および処理手段24の一例である。   In this example, when the CPU 201 executes a data processing program stored in the storage 204 (or RAM 203), the functions shown in FIG. 1 are implemented. The CPU 201 executing the data processing program, or the CPU 201 and the communication IF 205 are an example of the first receiving unit 21 and the second receiving unit 22. The CPU 201 is an example of the specifying unit 23 and the processing unit 24.

図4は、サーバ装置10とクライアント装置20のソフトウェア構成を例示する図である。なお、図4には、サーバ装置10とクライアント装置20のソフトウェア構成全体ではなく、この実施形態に係る機能に関連する構成要素が図示されている。サーバ装置10は、アプリケーション部151と、トランスポート部152とを有する。アプリケーション部151は、クライアント装置20へ配信するメッセージをトランスポート部152へ供給する。なお、メッセージは、他の装置から例えば通信ネットワークを介して取得されるデータであってもよく、また、サーバ装置10が生成するデータであってもよい。この例で、サーバ装置10は、メッセージとして、系列データとスナップショットとの2種類のデータをクライアント装置20へ配信する。系列データは、サーバ装置10から順次配信され、その順序に従って提示または解析されることによって意味をなす(意味が増える)データである。この例で、系列データは、予め定められたタイミングごとの所定のデータ値の時間変化を示すデータである。系列データは、例えば、データ値(例えば株価)と、そのデータ値に対応する時刻を示す情報を含む。また、他の例として、系列データは、ある株式会社の株券に対する取引情報を含む。   FIG. 4 is a diagram illustrating a software configuration of the server device 10 and the client device 20. Note that FIG. 4 illustrates not the entire software configuration of the server device 10 and the client device 20, but the components related to the functions according to this embodiment. The server device 10 includes an application unit 151 and a transport unit 152. The application unit 151 supplies a message to be distributed to the client device 20 to the transport unit 152. The message may be data acquired from another device, for example, via a communication network, or may be data generated by the server device 10. In this example, the server device 10 delivers two types of data, series data and snapshots, to the client device 20 as messages. The series data is data that makes sense (increases in meaning) by being sequentially delivered from the server device 10 and presented or analyzed in accordance with the order. In this example, the series data is data indicating a time change of a predetermined data value for each predetermined timing. The series data includes, for example, data values (for example, stock prices) and information indicating the time corresponding to the data values. As another example, the series data includes transaction information for a stock certificate of a stock company.

スナップショットは、所定のデータ値のその時点までの時間変化を示すデータである。この例で、スナップショットは、その時点までのデータ値(例えば株価)の時間変化を示す情報と、この時間変化を示す情報を表示するために用いられる情報(例えば、銘柄名、株価チャートの表示座標や表示フォーマット等を示す情報)とを含む。スナップショットはデータ値のそれまでの時間変化を示す情報を含んでいるため、系列データに対してデータ量が多い。スナップショットは、金融情報の配信の開始が要求されたタイミングでのみ必要とされるデータである。一方、系列データは、前回送信されたメッセージ(系列データまたはスナップショット)に対する差分(アップデート)を示すデータであり、配信を要求した全てのクライアント装置20に対して逐次送信される。   The snapshot is data indicating a temporal change of a predetermined data value up to that point. In this example, the snapshot is information indicating a time change of a data value (for example, stock price) up to that point, and information used for displaying the information indicating the time change (for example, display of a brand name and a stock price chart). Information indicating coordinates and display format). Since the snapshot includes information indicating the time change of the data value until then, the amount of data is larger than the series data. The snapshot is data that is required only when the start of distribution of financial information is requested. On the other hand, the sequence data is data indicating a difference (update) with respect to the message (sequence data or snapshot) transmitted last time, and is sequentially transmitted to all the client devices 20 that have requested distribution.

例えば、あるユーザがクライアント装置20を用いてある銘柄の取引情報を閲覧するとき、クライアント装置20は、まずその銘柄に関連するその時点での最新の全データセットであるスナップショットを受信する。その後、クライアント装置20は更新内容を示すデータセット(系列データ)を逐次受信していく。これにより、取引が開始されたタイミングではなく取引の途中でクライアント装置20がサーバ装置10へ取引情報の取得要求を行った場合であっても、ユーザは、取引が開始されたタイミングから取引情報を取得している場合と同様の取引情報を閲覧できる。   For example, when a user browses transaction information of a brand using the client device 20, the client device 20 first receives a snapshot that is the latest all data set at that time related to the brand. Thereafter, the client device 20 sequentially receives a data set (series data) indicating update contents. Thereby, even if it is a case where the client apparatus 20 makes the acquisition request | requirement of transaction information to the server apparatus 10 in the middle of a transaction instead of the timing at which the transaction is started, the user receives the transaction information from the timing when the transaction is started. You can view the same transaction information as you have acquired.

ところで、系列データやスナップショットは、その順序がクライアント装置20側で特定される必要がある。この点について、金融情報の具体例として、株式市場における株価を考える。株価は市況の変化に応じて時々刻々と変化する。株式の取引を行うユーザは、株の時間的な変化を見て将来の株価の変化を予測し、売買の意思決定をする。例えば、ある単一の時刻(時間軸上の1点)における、ある銘柄の株価が1000円だったという情報があったとしても、それは売買の意思決定においてはほとんど意味を持たない。時間的にだんだん株価が上昇してきて1000円になったのか、逆にだんだん下降してきて1000円になったのかで、その意味はまったく異なる。   By the way, the order of the sequence data and the snapshot needs to be specified on the client device 20 side. In this regard, as a specific example of financial information, consider the stock price in the stock market. Stock prices change from moment to moment as market conditions change. A user who trades stocks looks at changes in stocks over time, predicts future stock price changes, and makes trading decisions. For example, even if there is information that the stock price of a certain brand at a single time (one point on the time axis) was 1000 yen, it has little meaning in decision making for buying and selling. The meaning is completely different depending on whether the stock price has risen over time and reached 1000 yen, or conversely, it has gradually declined to 1000 yen.

なお、サーバ装置10から配信される全ての系列データやスナップショットについて順序が特定される必要はない。例えば、株式会社Aの株券に対する取引情報と、株式会社Bの株券に対する取引情報では、約定や気配の順が厳密に保たれる必要はなく、株式会社Aの株券に限定して約定や気配の順序が保たれていればよい。このように、全ての系列データとスナップショットに対して順序が特定可能である必要はなく、特定の属性を有する系列データとスナップショット(例えば、株式会社Aの取引情報)の間において順序が特定可能であればよい。   Note that the order need not be specified for all series data and snapshots distributed from the server device 10. For example, in the transaction information for the stock certificate of A Co., Ltd. and the transaction information for the stock certificate of B Co., Ltd., it is not necessary to strictly maintain the order of execution or quotation. As long as the order is kept. Thus, it is not necessary to be able to specify the order for all series data and snapshots, and the order is specified between series data having a specific attribute and snapshots (for example, trading information of Co., Ltd.). If possible.

アプリケーション部151は、メッセージの種類に応じて通信プロトコルを選択する。この例で、アプリケーション部151は、系列データの場合はマルチキャストの通信プロトコル(第1通信プロトコルの一例)を選択し、スナップショットの場合はユニキャストの通信プロトコル(第2通信プロトコルの一例)を選択する。この例で、スナップショットの送信には、コネクションレスのプロトコルであるUDP(User Datagram Protocol)が用いられる。一方、系列データの送信にはUDPを用いたIPマルチキャストが用いられる。   The application unit 151 selects a communication protocol according to the message type. In this example, the application unit 151 selects a multicast communication protocol (an example of a first communication protocol) for series data, and selects a unicast communication protocol (an example of a second communication protocol) for snapshots. To do. In this example, UDP (User Datagram Protocol), which is a connectionless protocol, is used for transmission of the snapshot. On the other hand, IP multicast using UDP is used for transmission of sequence data.

IPマルチキャスト通信はユニキャスト通信を用いた場合と比較してクライアント数に対するサーバへの負荷やネットワークリソースの使用効率が良い。しかし、スナップショットは、配信の開始を要求したクライアント装置20に対してのみ送信すればよいデータであるため、そのようなデータをマルチキャストすることは効率的でない。特に、スナップショットをマルチキャストすると、ネットワークやクライアント装置20のリソースを無駄に消費してしまう。なぜなら、多数のクライアント装置20が同時に各々に必要な複数の銘柄の取引情報をサーバ装置10へリクエストすると、全てのクライアント装置20に自装置が要求したスナップショットに加えて他のクライアント装置20が要求したスナップショット(すなわち自装置が要求していないスナップショット)が到着してしまうためである。そこで、この例では、サーバ装置10は、スナップショットを効率よく通信するために、あるクライアント装置20に対する通信で、ある銘柄に対して最新のスナップショットを送信する場合にはユニキャスト通信を行い、一方、系列データについては多数のクライアント装置20へ効率よく送信できるマルチキャスト通信を用いる。   In IP multicast communication, the load on the server and the use efficiency of network resources are better with respect to the number of clients than when unicast communication is used. However, since the snapshot is data that needs to be transmitted only to the client device 20 that has requested the start of distribution, it is not efficient to multicast such data. In particular, when a snapshot is multicast, resources of the network and the client device 20 are wasted. This is because when a large number of client devices 20 request transaction information of a plurality of brands necessary for each simultaneously to the server device 10, other client devices 20 request all the client devices 20 in addition to the snapshot requested by the own device. This is because the received snapshot (that is, the snapshot not requested by the device itself) arrives. Therefore, in this example, the server device 10 performs unicast communication when transmitting the latest snapshot to a certain brand in communication with a certain client device 20 in order to efficiently communicate the snapshot. On the other hand, multicast data that can be efficiently transmitted to a large number of client devices 20 is used for the sequence data.

トランスポート部152は、アプリケーション部151から供給されるメッセージを、選択された通信プロトコルに従って、そのサイズに応じた数のパケット群に分割し、送信する。この例で、トランスポート部152は、スナップショットをユニキャストパケット(第1パケットの一例)に分割する一方、系列データをマルチキャストパケット(第2パケットの一例)に分割する。   The transport unit 152 divides the message supplied from the application unit 151 into a number of packet groups corresponding to the size according to the selected communication protocol, and transmits the packet group. In this example, the transport unit 152 divides the snapshot into unicast packets (an example of the first packet), and divides the sequence data into multicast packets (an example of the second packet).

図5は、マルチキャストパケットの構成を例示する図である。トランスポート部152は、マルチキャストパケットに、「種別フラグ」と「マルチキャストシーケンス番号」と「宛先ID」との情報を付す。なお、マルチキャストパケットにはこれ以外の情報が付されてもよい。「種別フラグ」は、パケットの種類を表すフラグである。「種別フラグ」は、例えば最後のパケットである旨を示すフラグや、ackを含むパケットを送信する必要があることを示すフラグである。最後のパケットとは、一のメッセージが分割された複数のパケットのうちの最後のパケットである。「マルチキャストシーケンス番号」はマルチキャストパケットに付されるシーケンス番号(第1シーケンス番号の一例)である。「マルチキャストシーケンス番号」は、マルチキャストパケットが送信されるごとにインクリメントされる。「宛先ID」はマルチキャストパケットがどのクライアント宛であるかを示す、接続ごとに一意な識別情報である。「データ」は分割された系列データまたは接続管理データである。   FIG. 5 is a diagram illustrating a configuration of a multicast packet. The transport unit 152 attaches information of “type flag”, “multicast sequence number”, and “destination ID” to the multicast packet. Note that other information may be attached to the multicast packet. The “type flag” is a flag indicating the type of packet. The “type flag” is, for example, a flag indicating that it is the last packet or a flag indicating that it is necessary to transmit a packet including ack. The last packet is the last packet among a plurality of packets obtained by dividing one message. “Multicast sequence number” is a sequence number (an example of a first sequence number) assigned to a multicast packet. The “multicast sequence number” is incremented every time a multicast packet is transmitted. “Destination ID” is identification information unique to each connection indicating to which client the multicast packet is addressed. “Data” is divided series data or connection management data.

図6は、ユニキャストパケットの構成を例示する図である。トランスポート部152は、ユニキャストパケットに、「種別フラグ」と「ユニキャストシーケンス番号」と「マルチキャストシーケンス番号」と「ackシーケンス番号」との情報を付す。なお、ユニキャストパケットにはこれ以外の情報が付されてもよい。「種別フラグ」は、パケットの種類を表すフラグであり、マルチキャストパケットに含まれる「種別フラグ」と同様である。「ユニキャストシーケンス番号」は、ユニキャストパケットに付されるシーケンス番号(第2シーケンス番号の一例)である。「ユニキャストシーケンス番号」は、ユニキャストパケットが送信されるごとにインクリメントされる。「マルチキャストシーケンス番号」は、このユニキャストパケットが送信される直前に送信されたマルチキャストパケットのマルチキャストシーケンス番号である。すなわち、ユニキャストパケットには、直近のタイミングにおいてマルチキャストパケットに付されたマルチキャストシーケンス番号が付される。換言すると、ユニキャストパケットに含まれるマルチキャストシーケンス番号は、そのユニキャストパケットによって示されるスナップショットが、どの時点までの系列データを含んでいるかを示す情報である。ユニキャストパケットに付されるマルチキャストシーケンス番号は第3シーケンス番号の一例である。「ackシーケンス番号」は、接続の対向から送信され到着したパケットのユニキャストシーケンス番号である。「ackシーケンス番号」は、「種別フラグ」が特定の値である場合にのみ含まれる。「データ」は分割されたデータ、すなわち分割されたスナップショットまたは接続管理データである。   FIG. 6 is a diagram illustrating a configuration of a unicast packet. The transport unit 152 attaches information of “type flag”, “unicast sequence number”, “multicast sequence number”, and “ack sequence number” to the unicast packet. Information other than this may be attached to the unicast packet. The “type flag” is a flag indicating the type of packet, and is the same as the “type flag” included in the multicast packet. The “unicast sequence number” is a sequence number (an example of a second sequence number) given to a unicast packet. The “unicast sequence number” is incremented each time a unicast packet is transmitted. The “multicast sequence number” is a multicast sequence number of a multicast packet transmitted immediately before this unicast packet is transmitted. That is, the multicast sequence number assigned to the multicast packet at the latest timing is assigned to the unicast packet. In other words, the multicast sequence number included in the unicast packet is information indicating up to which point in time the snapshot indicated by the unicast packet includes the sequence data. The multicast sequence number assigned to the unicast packet is an example of a third sequence number. The “ack sequence number” is a unicast sequence number of a packet transmitted and received from the opposite side of the connection. The “ack sequence number” is included only when the “type flag” is a specific value. “Data” is divided data, that is, divided snapshot or connection management data.

図7は、パケット群の送信順序とシーケンス番号の関係を例示する図である。この例で、マルチキャストパケットP11、P12、…、P16にはそれぞれ、マルチキャストシーケンス番号として「MS1」、「MS2」、…、「MS6」が付される。ユニキャストパケットP21、P22、P23にはそれぞれ、ユニキャストシーケンス番号として「UC1」、「UC2」、「UC3」が付される。マルチキャストパケットP11、P12が送信された後にユニキャストパケットP21が送信される場合、ユニキャストパケットP21には、その直前に送信されたマルチキャストパケットのマルチキャストシーケンス番号である「MS2」が付される。その後、マルチキャストパケットP13〜P15が送信され、その後ユニキャストパケットP22が送信される場合、ユニキャストパケットP22には、直前に送信されたマルチキャストパケットのマルチキャストシーケンス番号である「MS5」が付される。また、ユニキャストパケットP22が送信された後に続けてユニキャストパケットP23が送信される場合、ユニキャストパケットP23にも、直近のタイミングにおいてマルチキャストパケットに付されたマルチキャストシーケンス番号である「MS5」が付される。   FIG. 7 is a diagram illustrating the relationship between the transmission order of packet groups and sequence numbers. In this example, “MS1”, “MS2”,..., “MS6” are assigned to the multicast packets P11, P12,. The unicast packets P21, P22, and P23 are assigned “UC1”, “UC2”, and “UC3” as unicast sequence numbers, respectively. When the unicast packet P21 is transmitted after the multicast packets P11 and P12 are transmitted, “MS2” which is the multicast sequence number of the multicast packet transmitted immediately before is transmitted to the unicast packet P21. Thereafter, when multicast packets P13 to P15 are transmitted and then unicast packet P22 is transmitted, “MS5”, which is the multicast sequence number of the multicast packet transmitted immediately before, is attached to unicast packet P22. In addition, when the unicast packet P23 is transmitted after the unicast packet P22 is transmitted, “MS5” that is the multicast sequence number assigned to the multicast packet at the latest timing is also attached to the unicast packet P23. Is done.

図4の説明に戻る。サーバ装置10のトランスポート部152は、送信したパケットを必要に応じて再送するために、送信したパケットをバッファ領域153にバッファする。トランスポート部152は、クライアント装置20からパケットの再送要求を受信した場合にバッファ領域153に保持しているパケットを再送する。このとき、トランスポート部152は、再送を要求されたパケットがマルチキャストパケットである場合であっても、再送を要求されたパケットをユニキャストしてもよい。   Returning to the description of FIG. The transport unit 152 of the server device 10 buffers the transmitted packet in the buffer area 153 in order to retransmit the transmitted packet as necessary. When receiving a packet retransmission request from the client device 20, the transport unit 152 retransmits the packet held in the buffer area 153. At this time, the transport unit 152 may unicast the packet requested for retransmission even when the packet requested for retransmission is a multicast packet.

クライアント装置20は、マルチキャスト受信部251と、ユニキャスト送受信部252と、順序特定部253と、アプリケーション部254とを有する。マルチキャスト受信部251は、サーバ装置10がマルチキャストしたマルチキャストパケットを受信する。ユニキャスト送受信部252は、サーバ装置10との間でユニキャストパケットを送受信する。マルチキャスト受信部251とユニキャスト送受信部252は、パケットの整列や欠落の検出を行うためのバッファ領域255、256をそれぞれ有している。   The client device 20 includes a multicast reception unit 251, a unicast transmission / reception unit 252, an order specification unit 253, and an application unit 254. The multicast receiving unit 251 receives a multicast packet multicasted by the server device 10. The unicast transmission / reception unit 252 transmits / receives unicast packets to / from the server device 10. The multicast reception unit 251 and the unicast transmission / reception unit 252 have buffer areas 255 and 256 for detecting packet alignment and missing, respectively.

順序特定部253は、受信されたユニキャストパケットとマルチキャストパケットに含まれるマルチキャストシーケンス番号とユニキャストシーケンス番号とに基づいて、ユニキャストパケットとマルチキャストパケットの順序関係を特定する。複数のマルチキャストパケット間におけるパケットの順序関係は、マルチキャストパケットに付されたマルチキャストシーケンス番号によって特定される。同様に、複数のユニキャストパケット間におけるパケットの順序関係は、ユニキャストパケットに付されたユニキャストシーケンス番号によって特定される。更に、マルチキャストパケットとユニキャストパケットの間の順序関係は、ユニキャストパケットに含まれるマルチキャストシーケンス番号をマルチキャストパケットに含まれるマルチキャストシーケンス番号と比較することで特定される。また、順序特定部253は、受信されたユニキャストパケットに含まれるユニキャストシーケンス番号とマルチキャストパケットに含まれるマルチキャストシーケンス番号に基づいてパケットの欠落を検出し、欠落を検出した場合に再送要求を行う。   The order specifying unit 253 specifies the order relationship between the unicast packet and the multicast packet based on the received unicast packet and the multicast sequence number and unicast sequence number included in the multicast packet. The order relationship of packets among a plurality of multicast packets is specified by a multicast sequence number assigned to the multicast packets. Similarly, the order relationship of packets among a plurality of unicast packets is specified by a unicast sequence number assigned to the unicast packet. Further, the order relationship between the multicast packet and the unicast packet is specified by comparing the multicast sequence number included in the unicast packet with the multicast sequence number included in the multicast packet. In addition, the order specifying unit 253 detects packet loss based on the unicast sequence number included in the received unicast packet and the multicast sequence number included in the multicast packet, and makes a retransmission request when the loss is detected. .

この例で、スナップショット(ユニキャストパケット)が届くまでの系列データ(マルチキャストパケット)がバッファ領域255に保存される。順序特定部253は、受信された各パケットに付されたシーケンス番号に基づき、パケットからメッセージを復元する。順序特定部253は、スナップショットが到着した時点で、そのスナップショットに含まれるマルチキャストシーケンス番号より小さいマルチキャストシーケンス番号が付された系列データを、そのスナップショットに含まれるデータとして破棄する。順序特定部253は、そのスナップショットに含まれるマルチキャストシーケンス番号より大きいマルチキャストシーケンス番号が付されたマルチキャストパケットの系列データを、有効なデータとしてスナップショットとともにアプリケーション部254に引き渡す。アプリケーション部254は、スナップショットや系列データに応じた処理を行う。例えば、アプリケーション部254は、スナップショットや系列データによって示される金融情報をディスプレイ206に表示する。   In this example, the sequence data (multicast packet) until the snapshot (unicast packet) arrives is stored in the buffer area 255. The order specifying unit 253 restores the message from the packet based on the sequence number assigned to each received packet. When the snapshot arrives, the order specifying unit 253 discards the sequence data assigned the multicast sequence number smaller than the multicast sequence number included in the snapshot as the data included in the snapshot. The order specifying unit 253 delivers the multicast packet sequence data with the multicast sequence number larger than the multicast sequence number included in the snapshot to the application unit 254 together with the snapshot as valid data. The application unit 254 performs processing according to the snapshot and the series data. For example, the application unit 254 displays financial information indicated by a snapshot or series data on the display 206.

1−2.動作例
図8は、データ配信システム1の動作を例示するシーケンス図である。まず、あるクライアント装置20(以下「クライアント装置20a」とする)のユーザが、操作部207を用いて、ある銘柄の取引情報をサーバ装置10に要求する操作を行う。クライアント装置20aのCPU201は、操作部207から出力される情報に応じて、指定された銘柄の取引情報の配信開始要求を、ネットワーク30を介してサーバ装置10へ送信する(S101、S102)。
1-2. Operation Example FIG. 8 is a sequence diagram illustrating the operation of the data distribution system 1. First, a user of a certain client device 20 (hereinafter referred to as “client device 20a”) uses the operation unit 207 to perform an operation of requesting the server device 10 for transaction information of a certain brand. The CPU 201 of the client device 20a transmits a distribution start request for transaction information of the specified brand to the server device 10 via the network 30 in accordance with the information output from the operation unit 207 (S101, S102).

一方、サーバ装置10は、系列データのマルチキャストを逐次行う(S103、S104)。系列データのマルチキャストパケットには、マルチキャストシーケンス番号が含まれる。マルチキャストされた系列データは、ネットワーク30を介して複数のクライアント装置20(図8の例ではクライアント装置20a、20b)へ配信される(S105、S106、S107、S108)。クライアント装置20a、20bは、受信した系列データをバッファ領域255に一時的に記憶しておく。   On the other hand, the server apparatus 10 sequentially performs multicasting of the sequence data (S103, S104). The multicast packet of the sequence data includes a multicast sequence number. Multicast series data is distributed to a plurality of client devices 20 (client devices 20a and 20b in the example of FIG. 8) via the network 30 (S105, S106, S107, and S108). The client devices 20a and 20b temporarily store the received series data in the buffer area 255.

さて、サーバ装置10のCPU101は、クライアント装置20aから配信開始要求を受信すると、まず、受信した配信開始要求に対応するスナップショットをクライアント装置20aへ送信する(S109)。このスナップショットには、ユニキャストシーケンス番号が付されるとともに、直前に送信されたマルチキャストパケットのマルチキャストシーケンス番号、すなわち「MS12」が付される。ユニキャストされたスナップショットは、ネットワーク30を介してクライアント装置20aへ配信される(S110)。また、CPU101は、ユニキャスト通信とは別途、系列データのマルチキャストを逐次行う(S111、S112)。マルチキャストされた系列データは、ネットワーク30を介してクライアント装置20a、20bへ配信される(S113、S114、S115、S116)。   When receiving the distribution start request from the client device 20a, the CPU 101 of the server device 10 first transmits a snapshot corresponding to the received distribution start request to the client device 20a (S109). The snapshot is assigned a unicast sequence number and a multicast sequence number of the multicast packet transmitted immediately before, ie, “MS12”. The unicast snapshot is distributed to the client device 20a via the network 30 (S110). Further, the CPU 101 sequentially performs multicasting of the sequence data separately from the unicast communication (S111, S112). The multicast series data is distributed to the client apparatuses 20a and 20b via the network 30 (S113, S114, S115, and S116).

クライアント装置20aのCPU201は、サーバ装置10からスナップショットを受信すると、マルチキャスト用のバッファ領域255を確認し、バッファ領域255に記憶されている系列データとの順序関係を確認する。この例で、CPU201は、スナップショットに付されたマルチキャストシーケンス番号を参照することによって、そのスナップショットがどのマルチキャストパケットの後に配信されたかを特定する。CPU201は、受信したスナップショットとそのスナップショットより後に配信された系列データとを後続処理に引き渡す。CPU201は、スナップショットと系列データとに基づいて取引情報の表示処理などの各種の処理を実行する。   When the CPU 201 of the client device 20a receives the snapshot from the server device 10, the CPU 201 confirms the multicast buffer area 255 and confirms the order relationship with the sequence data stored in the buffer area 255. In this example, the CPU 201 refers to the multicast sequence number assigned to the snapshot, and identifies which multicast packet the snapshot was distributed after. The CPU 201 delivers the received snapshot and the series data distributed after the snapshot to subsequent processing. The CPU 201 executes various processes such as a transaction information display process based on the snapshot and the series data.

この実施形態では、場合により送信先(単一の装置)を変えて送信するユニキャストパケットと、受信可能状態になっている全ての送信先に同一パケットが届くマルチキャストパケットの間で、一貫した送信順序関係が定まる。これにより、複数の通信プロトコルを併用しつつデータの順序性を保証したデータ配信を行うことができる。   In this embodiment, consistent transmission is performed between a unicast packet that is transmitted by changing the transmission destination (single device) in some cases, and a multicast packet in which the same packet reaches all transmission destinations that are in a receivable state. The order relationship is determined. Thereby, it is possible to perform data distribution that guarantees the order of data while using a plurality of communication protocols in combination.

2.第2実施形態
図9は、第2実施形態に係るデータ配信システム2の構成を示す図である。データ配信システム2は、サーバ装置10Bと、複数のクライアント装置20B、20B、…とを有する。サーバ装置10Bの構成が上述した第1実施形態に係るサーバ装置10と異なる点は、第3付与手段13に代えて、第3付与手段13Bを有している点と、送信手段14に代えて、送信手段14Bを有している点である。クライアント装置20Bの構成が上述した第1実施形態に係るクライアント装置20と異なる点は、特定手段23に代えて特定手段23Bを有している点と、処理手段24に代えて処理手段24Bを有している点である。以下の説明においては、第1実施形態と同様の構成要素や処理については同じ符号を付して適宜その説明を省略する。
2. Second Embodiment FIG. 9 is a diagram illustrating a configuration of a data distribution system 2 according to a second embodiment. The data distribution system 2 includes a server device 10B and a plurality of client devices 20B, 20B,. The difference of the configuration of the server device 10B from the server device 10 according to the first embodiment described above is that the third providing unit 13B is provided instead of the third applying unit 13, and the transmitting unit 14 is replaced. The transmission means 14B is provided. The difference of the configuration of the client device 20B from the client device 20 according to the first embodiment described above is that the specifying unit 23 is provided instead of the specifying unit 23, and the processing unit 24B is provided instead of the processing unit 24. This is the point. In the following description, the same components and processes as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted as appropriate.

第3付与手段13Bは、サーバ装置10Bがクライアント装置20Bへ配信するメッセージに第3シーケンス番号を付す。送信手段14Bは、第1シーケンス番号が付された第1パケット群を第1通信プロトコルに従ってクライアント装置20Bへ送信し、第2シーケンス番号が付された第2パケット群を第2通信プロトコルに従ってクライアント装置20Bへ送信する。特定手段23Bは、受信された第1パケット群に付された第1シーケンス番号と受信された第2パケット群に付された第2シーケンス番号とに基づいてメッセージを復元し、復元されたメッセージに付された第3シーケンス番号に基づいてメッセージの配信順序を特定する。処理手段24Bは、特定された配信順序に従って、復元されたメッセージを処理する。   The third assigning means 13B attaches the third sequence number to the message that the server device 10B delivers to the client device 20B. The transmission means 14B transmits the first packet group assigned the first sequence number to the client apparatus 20B according to the first communication protocol, and transmits the second packet group assigned the second sequence number to the client apparatus 20 according to the second communication protocol. Send to 20B. The specifying unit 23B restores the message based on the first sequence number assigned to the received first packet group and the second sequence number assigned to the received second packet group, and converts the message into the restored message. The delivery order of messages is specified based on the assigned third sequence number. The processing unit 24B processes the restored message according to the specified distribution order.

図10は、サーバ装置10Bとクライアント装置20Bのソフトウェア構成を例示する図である。なお、サーバ装置10Bとクライアント装置20Bのハードウェア構成は、上述した第1実施形態のサーバ装置10とクライアント装置20と同様である。サーバ装置10Bは、アプリケーション部151Bと、トランスポート部152Bとを有する。アプリケーション部151Bは、複数の配信単位51a、51b、…を有する。配信単位51a、51b、…は金融情報を含むメッセージをトランスポート部152Bに引き渡す。なお、以下の説明では、配信単位51a、51b、…を各々区別する必要がない場合は、これらを「配信単位51」と称する。   FIG. 10 is a diagram illustrating a software configuration of the server device 10B and the client device 20B. The hardware configurations of the server device 10B and the client device 20B are the same as those of the server device 10 and the client device 20 of the first embodiment described above. The server device 10B includes an application unit 151B and a transport unit 152B. The application unit 151B has a plurality of distribution units 51a, 51b,. Distribution units 51a, 51b,... Deliver a message including financial information to transport unit 152B. In the following description, when it is not necessary to distinguish the distribution units 51a, 51b,..., These will be referred to as “distribution units 51”.

配信単位51は、サーバ装置10B上で動作するソフトウェアにより実現される機能である。配信単位51は、メッセージを配信する。配信されるメッセージは系列データまたはスナップショットである。メッセージは、ヘッダおよび本文を含む。ヘッダは、シーケンス番号(またはID)を含む。シーケンス番号(第3シーケンス番号の一例)は、配信単位ごとにメッセージに割り振られる番号であり、1単位ずつ単調に増加する番号である。本文は、金融情報を含む。配信単位51は、メッセージを配信すべき装置のアドレスの一覧(グループ情報)を有している。メッセージが系列データである場合には、配信単位51はこの一覧に含まれるアドレスの複数の装置に系列データを送信する通信プロトコルとしてマルチキャストの通信プロトコルを選択する。一方、メッセージがスナップショットである場合には、配信単位51は、ユニキャストの通信プロトコルを選択する。   The distribution unit 51 is a function realized by software operating on the server device 10B. The delivery unit 51 delivers a message. The message to be delivered is series data or a snapshot. The message includes a header and a body. The header includes a sequence number (or ID). The sequence number (an example of a third sequence number) is a number assigned to a message for each delivery unit, and is a number that increases monotonously by one unit. The text contains financial information. The distribution unit 51 has a list (group information) of addresses of devices to which messages are to be distributed. When the message is sequence data, the distribution unit 51 selects a multicast communication protocol as a communication protocol for transmitting the sequence data to a plurality of devices having addresses included in the list. On the other hand, when the message is a snapshot, the distribution unit 51 selects a unicast communication protocol.

図11は、配信単位51から配信されるメッセージを例示する図である。この例で、メッセージのヘッダはシーケンス番号を有する。メッセージの本文は、金融情報として銘柄、価格および出来高の情報を含む。例えば、シーケンス番号1の金融情報は、A社の株式について1250円で100株の売買が成立したことを示している。シーケンス番号が小さいものが時間的に先に配信される。配信単位51からは、系列データとスナップショットとが混在して配信される。この例では、図示のように、ひとつの配信単位51から複数の銘柄のメッセージが配信される。各銘柄のメッセージは他の銘柄のメッセージとは関連性がない。すなわち、メッセージは銘柄毎に独立した関連性を有する。   FIG. 11 is a diagram illustrating a message distributed from the distribution unit 51. In this example, the message header has a sequence number. The body of the message contains information on the brand, price and volume as financial information. For example, the financial information of sequence number 1 indicates that 100 shares have been sold for 1250 yen for the stock of Company A. The one with the smaller sequence number is distributed earlier in time. From the distribution unit 51, series data and snapshots are mixedly distributed. In this example, as shown in the figure, a plurality of brand messages are distributed from one distribution unit 51. Each brand message is unrelated to other brand messages. That is, the message has an independent relationship for each brand.

なお、以下の説明では、説明の便宜上、メッセージに付されるシーケンス番号を「メッセージシーケンス番号」と称して説明する。メッセージシーケンス番号は、第3シーケンス番号の一例である。すなわち、この実施形態では、サーバ装置10Bから配信される系列データとスナップショットには、配信単位51によってメッセージシーケンス番号が第3シーケンス番号として付される。なお、配信単位51は、メッセージ(すなわち系列データとスナップショット)に、その配信単位51に割り当てられているグループ番号を付与してもよい。   In the following description, for convenience of explanation, the sequence number attached to the message will be referred to as “message sequence number”. The message sequence number is an example of a third sequence number. That is, in this embodiment, the message sequence number is assigned as the third sequence number by the distribution unit 51 to the series data and the snapshot distributed from the server device 10B. The distribution unit 51 may add a group number assigned to the distribution unit 51 to the message (that is, the series data and the snapshot).

トランスポート部152Bは、配信単位51から引き渡されるメッセージを、選択された通信プロトコルに従って、そのサイズに応じた数のパケット群に分割し、送信する。上述の実施形態に係るトランスポート部152は、ユニキャストパケットにその直前に送信されたマルチキャストパケットのマルチキャストシーケンス番号(第3シーケンス番号)を付した。しかし、この実施形態に係るトランスポート部152Bは、ユニキャストパケットにマルチキャストシーケンス番号を付さない。   The transport unit 152B divides the message delivered from the distribution unit 51 into a number of packet groups corresponding to the size according to the selected communication protocol, and transmits the packet group. The transport unit 152 according to the above-described embodiment attaches the multicast sequence number (third sequence number) of the multicast packet transmitted immediately before to the unicast packet. However, the transport unit 152B according to this embodiment does not attach a multicast sequence number to a unicast packet.

クライアント装置20Bのソフトウェア構成が上述の実施形態に係るクライアント装置20のソフトウェア構成と異なる点は、順序特定部253に代えて順序特定部253Bを有する点である。順序特定部253Bは、ユニキャストパケットに含まれるユニキャストシーケンス番号を用いて、分割されているスナップショットを復元する。また、順序特定部253Bは、マルチキャストパケットに含まれるユニキャストシーケンス番号を用いて分割されている系列データを復元する。さらに、順序特定部253Bは、復元したユニキャストパケットと系列データに含まれるメッセージシーケンス番号に従って、スナップショットと系列データとを整列する。なお、順序特定部253Bは、復元したスナップショットと系列データに、配信単位を識別するグループ番号が付されている場合には、このグループ番号とメッセージシーケンス番号とに従って、スナップショットと系列データとを配信単位ごとに整列する。順序特定部253Bは、スナップショットが到着した時点で、そのスナップショットに含まれるメッセージシーケンス番号より小さいメッセージシーケンス番号が付された系列データは、そのスナップショットに含まれるデータとして破棄し、それ以降の系列データを有効なデータとしてスナップショットとともにアプリケーション部254に引き渡す。   The software configuration of the client device 20B is different from the software configuration of the client device 20 according to the above-described embodiment in that the order specifying unit 253B is provided instead of the order specifying unit 253. The order specifying unit 253B restores the divided snapshot using the unicast sequence number included in the unicast packet. In addition, the order specifying unit 253B restores the sequence data that has been divided using the unicast sequence number included in the multicast packet. Furthermore, the order specifying unit 253B arranges the snapshot and the sequence data according to the restored unicast packet and the message sequence number included in the sequence data. In addition, when the group number which identifies a delivery unit is attached | subjected to the decompress | restored snapshot and series data, the order specific | specification part 253B performs a snapshot and series data according to this group number and a message sequence number. Sort by delivery unit. When the snapshot arrives, the order specifying unit 253B discards the series data with the message sequence number smaller than the message sequence number included in the snapshot as the data included in the snapshot, and thereafter The series data is delivered as valid data to the application unit 254 together with the snapshot.

3.変形例
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。以下にその例を示す。なお、以下の各態様を組み合わせてもよい。
3. Modifications Although the embodiment of the present invention has been described above, the present invention is not limited to the above-described embodiment, and can be implemented in various other forms. An example is shown below. In addition, you may combine each following aspect.

3−1.変形例1
上述の第1実施形態に係るサーバ装置10は、複数の通信プロトコル(通信経路)にまたがった全体の配信順序を特定するために、ユニキャストパケットにマルチキャストシーケンス番号を付与した。通信経路全体の配信順序を特定するための手法はこれに限らない。例えば、サーバ装置10は、マルチキャストパケットにユニキャストパケットのシーケンス番号を付してもよい。この例について図12を参照しつつ説明する。
3-1. Modification 1
The server device 10 according to the first embodiment described above assigns a multicast sequence number to a unicast packet in order to specify the entire distribution order across a plurality of communication protocols (communication paths). The method for specifying the distribution order of the entire communication path is not limited to this. For example, the server device 10 may add a sequence number of a unicast packet to a multicast packet. This example will be described with reference to FIG.

図12は、マルチキャストパケットにユニキャストパケットのシーケンス番号を付す場合の、パケットの送信順序とシーケンス番号の関係を例示する図である。図12は、上述した第1実施形態の図7に対応する。この例では、ユニキャストパケットP41、P42、P43には、ユニキャストシーケンス番号が付される。しかし、ユニキャストパケットP41、P42、P43には、マルチキャストシーケンス番号は付されない。マルチキャストパケットP31、P32、…、P36には、ユニキャストパケットが送信された直後に送信されるマルチキャストパケットであるか否かを示すユニキャスト直後ビットbitが含まれる。CPU101は、ユニキャストパケットが送信された直後に送信されるマルチキャストパケットのユニキャスト直後ビットbitを立て、このビットが立っているマルチキャストパケットに、直前に送信されたユニキャストパケットのユニキャストシーケンス番号を付与する。図12の例では、マルチキャストパケットP33、P36のユニキャスト直後ビットが「1」であり、マルチキャストパケットP33にはユニキャストパケットP41のユニキャストシーケンス番号である「UC1」が含まれる。また、マルチキャストパケットP36にはユニキャストパケットP43のユニキャストシーケンス番号である「UC3」が含まれる。   FIG. 12 is a diagram illustrating the relationship between the packet transmission order and the sequence number when a unicast packet sequence number is assigned to a multicast packet. FIG. 12 corresponds to FIG. 7 of the first embodiment described above. In this example, unicast sequence numbers are assigned to the unicast packets P41, P42, and P43. However, multicast sequence numbers are not assigned to the unicast packets P41, P42, and P43. The multicast packets P31, P32,..., P36 include a bit bit immediately after unicast that indicates whether the packet is a multicast packet transmitted immediately after the unicast packet is transmitted. The CPU 101 sets a bit bit immediately after the unicast of the multicast packet transmitted immediately after the unicast packet is transmitted, and sets the unicast sequence number of the unicast packet transmitted immediately before to the multicast packet in which this bit is set. Give. In the example of FIG. 12, the bits immediately after unicasting of the multicast packets P33 and P36 are “1”, and the multicast packet P33 includes “UC1” that is the unicast sequence number of the unicast packet P41. The multicast packet P36 includes “UC3” that is the unicast sequence number of the unicast packet P43.

また、他の例として、サーバ装置10が、ユニキャストパケットにマルチキャストパケットのシーケンス番号を付するとともに、マルチキャストパケットにユニキャストパケットのシーケンス番号を付してもよい。   As another example, the server device 10 may add the sequence number of the multicast packet to the unicast packet and may add the sequence number of the unicast packet to the multicast packet.

3−2.変形例2
上述の第1及び第2実施形態では、サーバ装置10(又はサーバ装置10B)から配信されるメッセージとして金融情報のデータを用いた。メッセージは金融情報に限られない。例えば、第1の通信プロトコルに従って送信されるメッセージ(系列データ)は、自然科学の実験で得られる実験データであってもよい。また、第1の通信プロトコルに従って送信されるメッセージは、データ値の時間変化を示すデータに限らず、例えば順序性を有しないデータなど、他のデータであってもよい。また、第2の通信プロトコルに従って送信されるメッセージも、スナップショットに限られない。
3-2. Modification 2
In the first and second embodiments described above, financial information data is used as a message distributed from the server device 10 (or the server device 10B). The message is not limited to financial information. For example, the message (sequence data) transmitted according to the first communication protocol may be experimental data obtained by a natural science experiment. In addition, the message transmitted according to the first communication protocol is not limited to data indicating the time change of the data value, and may be other data such as data having no order. Further, the message transmitted according to the second communication protocol is not limited to the snapshot.

3−3.変形例3
上述の実施形態では、マルチキャストの通信プロトコルと、ユニキャストの通信プロトコルを併用してデータ配信を行うシステムについて説明した。併用される通信プロトコルの種類は上述した実施形態で示したものに限られない。例えば、システムは、2種類のマルチキャスト通信プロトコルを併用する構成であってもよい。より詳細には、システムは、第1のクライアント群に一斉配信するマルチキャスト通信と、第2のクライアント群に一斉配信するマルチキャスト通信との2種類の通信経路を併用してもよい。例えば、システムが、特定のクライアント群に一斉配信するマルチキャスト通信と、第2のクライアントグループに一斉配信するマルチキャスト通信との2種類の通信経路を併用してもよい。
3-3. Modification 3
In the above-described embodiment, a system has been described in which data distribution is performed using both a multicast communication protocol and a unicast communication protocol. The types of communication protocols used together are not limited to those shown in the above-described embodiments. For example, the system may be configured to use two types of multicast communication protocols in combination. More specifically, the system may use two types of communication paths, namely, multicast communication that is simultaneously distributed to the first client group and multicast communication that is simultaneously distributed to the second client group. For example, the system may use two types of communication paths, namely, multicast communication that broadcasts to a specific client group and multicast communication that broadcasts to a second client group.

また、例えば、サーバ装置10が、マルチキャスト通信をユニキャスト通信でエミュレートし、エミュレートしたマルチキャスト通信と、通常のユニキャスト通信を併用してもよい。   For example, the server apparatus 10 may emulate multicast communication by unicast communication, and may use the emulated multicast communication and normal unicast communication in combination.

3−4.変形例4
上述の各実施形態において、系列データをマルチキャストしてスナップショットデータをユニキャストする第1モードと、系列データとスナップショットデータの両方をマルチキャストする第2モードとをユーザが選択できるようにしてもよい。この場合、ユーザが第1モードを選択した場合には、サーバ装置10は、上述の各実施形態で説明した処理を行う。一方、ユーザが第2モードを選択した場合には、クライアント装置20(クライアント装置20B)は、第2モードが選択された旨をサーバ装置10(サーバ装置10B)へ通知する。サーバ装置10は、第2モードが選択された場合は、全てのメッセージをマルチキャストする。この場合は、マルチキャストパケットを単一のクライアント装置20に対して送信するために、マルチキャストパケットに特定のクライアント宛であることを明示する情報を付してもよい。
3-4. Modification 4
In each of the embodiments described above, the user may be able to select a first mode in which sequence data is multicast and snapshot data is unicast, and a second mode in which both sequence data and snapshot data are multicast. . In this case, when the user selects the first mode, the server device 10 performs the processing described in the above embodiments. On the other hand, when the user selects the second mode, the client device 20 (client device 20B) notifies the server device 10 (server device 10B) that the second mode has been selected. The server device 10 multicasts all messages when the second mode is selected. In this case, in order to transmit a multicast packet to a single client device 20, information indicating that the packet is addressed to a specific client may be attached to the multicast packet.

このように、メッセージを複数の通信経路(通信プロトコル)を併用して送信するモードと、単一の通信経路で送信するモードとのいずれかをユーザが選択してもよい。この場合、サーバ装置10(サーバ装置10B)は、一の通信プロトコルを選択する要求をクライアント装置20(クライアント装置20B)から受信すると、指定された一の通信プロトコルに従ってメッセージをクライアント装置20(クライアント装置20B)へ送信する。   Thus, the user may select either a mode in which a message is transmitted using a plurality of communication paths (communication protocols) or a mode in which a message is transmitted through a single communication path. In this case, when the server device 10 (server device 10B) receives a request to select one communication protocol from the client device 20 (client device 20B), the client device 20 (client device 20) sends a message according to the designated one communication protocol. 20B).

3−5.変形例5
上述の各実施形態では、通信経路の信頼性を保つため、クライアント装置20(クライアント装置20B)のCPU201が、パケットの欠落を検知した場合にサーバ装置10へ再送要求を行った。欠落パケットが再送される仕組みはこれに限られない。例えば、クライアント装置20にパケットが到着したときに、到着したことを示す応答パケットをクライアント装置20がサーバ装置10へ送信し、サーバ装置10は応答パケットが予め定められた期間内に到着しなかった場合に、パケットを再送してもよい。
3-5. Modification 5
In each of the above-described embodiments, in order to maintain the reliability of the communication path, the CPU 201 of the client device 20 (client device 20B) makes a retransmission request to the server device 10 when detecting a missing packet. The mechanism for retransmitting missing packets is not limited to this. For example, when a packet arrives at the client device 20, the client device 20 transmits a response packet indicating the arrival to the server device 10, and the server device 10 did not arrive within a predetermined period. In some cases, the packet may be retransmitted.

また、安全性が保証されている通信経路を用いる場合には、その通信経路についてはサーバ装置10とクライアント装置20は欠落パケットの再送機能や順序を保つ機能を有していなくてもよい。   In addition, when using a communication path in which safety is guaranteed, the server apparatus 10 and the client apparatus 20 do not have to have a lost packet retransmission function or a function of maintaining the order for the communication path.

3−6.変形例6
上述の各実施形態において、サーバ装置10(サーバ装置10B)からメッセージを受信したクライアント装置20(クライアント装置20B)が、別の装置に対するサーバ装置として機能し、受信したメッセージを当該別の装置へ送信してもよい。また、サーバ装置10(サーバ装置10B)が、別の装置に対するクライアント装置として機能し、当該別の装置からメッセージを受信してもよい。
3-6. Modification 6
In each of the embodiments described above, the client device 20 (client device 20B) that has received a message from the server device 10 (server device 10B) functions as a server device for another device, and transmits the received message to the other device. May be. The server device 10 (server device 10B) may function as a client device for another device and receive a message from the other device.

3−7.変形例7
上述の第2実施形態では、配信単位ごとにメッセージに付されるシーケンス番号を第3シーケンス番号として用いた。メッセージに付される第3シーケンス番号はこれに限られない。例えば、第3シーケンス番号は、銘柄ごとにメッセージに付されるシーケンス番号であってもよく、また、配信銘柄全体にわたってメッセージの配信順を一意に定めるシーケンス番号、すなわち全てのメッセージの通し番号であってもよい。例えば銘柄ごとにメッセージにシーケンス番号が付される場合であっても、クライアント装置20BのCPU201は、メッセージに付されたシーケンス番号に従ってメッセージの配信順序を特定する。
3-7. Modification 7
In the second embodiment described above, the sequence number assigned to the message for each delivery unit is used as the third sequence number. The third sequence number assigned to the message is not limited to this. For example, the third sequence number may be a sequence number assigned to a message for each brand, or a sequence number that uniquely determines the delivery order of messages over the entire delivery brand, that is, a serial number for all messages. Also good. For example, even when a sequence number is attached to a message for each brand, the CPU 201 of the client device 20B specifies the message delivery order according to the sequence number attached to the message.

また、上述の第1実施形態において、上述の第2実施形態と同様にメッセージにシーケンス番号が付されていてもよい。例えば、上述の第1実施形態において、配信単位ごとにメッセージにシーケンス番号が付されてもよく、また、銘柄ごとにメッセージにシーケンス番号が付されてもよい。   Further, in the first embodiment described above, a sequence number may be attached to the message as in the second embodiment described above. For example, in the first embodiment described above, a sequence number may be assigned to a message for each delivery unit, and a sequence number may be assigned to a message for each brand.

3−8.変形例8
上述の各実施形態に係るサーバ装置10(サーバ装置10B)によって実現される機能は、単体の装置によって実現されてもよく、また、複数の装置が協働することによって実現されてもよい。また、クライアント装置20(クライアント装置20B)によって実現される機能は、単体の装置によって実現されてもよく、また、複数の装置が協働することによって実現されてもよい。
3-8. Modification 8
The functions realized by the server device 10 (server device 10B) according to the above-described embodiments may be realized by a single device or may be realized by cooperation of a plurality of devices. In addition, the function realized by the client device 20 (client device 20B) may be realized by a single device, or may be realized by cooperation of a plurality of devices.

3−9.変形例9
上述の各実施形態においてCPU101またはCPU201によって実行されるプログラムは、磁気記録媒体(磁気テープ、磁気ディスク(HDD、FD(Flexible Disk))など)、光記録媒体(光ディスク(CD(Compact Disk)、DVD(Digital Versatile Disk))など)、光磁気記録媒体、半導体メモリ(フラッシュROMなど)などのコンピュータ読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
3-9. Modification 9
In each of the embodiments described above, the program executed by the CPU 101 or the CPU 201 is a magnetic recording medium (magnetic tape, magnetic disk (HDD, FD (Flexible Disk)), etc.), optical recording medium (optical disk (CD (Compact Disk), DVD)). (Digital Versatile Disk))), a magneto-optical recording medium, and a computer-readable recording medium such as a semiconductor memory (flash ROM or the like). The program may be downloaded via a network such as the Internet.

1…データ配信システム、10…サーバ装置、11…第1付与手段、12…第2付与手段、13…第3付与手段、14…送信手段、20…クライアント装置、21…第1受信手段、22…第2受信手段、23…特定手段、24…処理手段。 DESCRIPTION OF SYMBOLS 1 ... Data delivery system, 10 ... Server apparatus, 11 ... 1st provision means, 12 ... 2nd provision means, 13 ... 3rd provision means, 14 ... Transmission means, 20 ... Client apparatus, 21 ... 1st reception means, 22 ... second receiving means, 23 ... specifying means, 24 ... processing means.

Claims (13)

サーバ装置と、
クライアント装置と
を有し、
前記サーバ装置は、
メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、
前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、
前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、
前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従って前記クライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信する送信手段と
を備え、
前記クライアント装置は、
前記サーバ装置から前記第1パケット群を前記第1通信プロトコルに従って受信する第1受信手段と、
前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信する第2受信手段と、
前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定する特定手段と、
前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理する処理手段と
を備えるデータ配信システム。
A server device;
A client device, and
The server device
First assigning means for assigning a first sequence number to each of the first packets included in the first packet group in which the message is divided according to the first communication protocol;
Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group in which the message is divided according to a second communication protocol different from the first communication protocol;
Third assigning means for attaching a third sequence number indicating a relative delivery order of each of the second packets to the first packet group to at least one of the first packet and the second packet;
The first packet number to which the first sequence number or the first sequence number and the third sequence number are attached is transmitted to the client device according to the first communication protocol, and the second sequence number or the second sequence number is transmitted. Transmitting means for transmitting the second packet group with the sequence number and the third sequence number to the client device according to the second communication protocol;
The client device is
First receiving means for receiving the first packet group from the server device according to the first communication protocol;
Second receiving means for receiving the second packet group from the server device according to the second communication protocol;
Based on the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the received first packet group and the received second packet group, the reception is performed. Specifying means for specifying the distribution order of the first packet group and the received second packet group;
A data distribution system comprising: processing means for processing the received first packet group and second packet group in accordance with the distribution order.
サーバ装置と、
クライアント装置と
を有し、
前記サーバ装置は、
メッセージに第3シーケンス番号を付す第3付与手段と、
前記第3シーケンス番号が付されたメッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、
前記第1通信プロトコルと異なる第2通信プロトコルに従って前記第3シーケンス番号が付されたメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、
前記第1シーケンス番号が付された前記第1パケット群を前記第1通信プロトコルに従って前記クライアント装置へ送信し、前記第2シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信する送信手段と
を備え、
前記クライアント装置は、
前記サーバ装置から前記第1パケット群を前記第1通信プロトコルに従って受信する第1受信手段と、
前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信する第2受信手段と、
前記受信された第1パケット群に付された前記第1シーケンス番号と前記受信された第2パケット群に付された第2シーケンス番号とに基づいてメッセージを復元し、該復元されたメッセージに付された第3シーケンス番号に基づいて該メッセージの配信順序を特定する特定手段と、
前記配信順序に従って、前記復元されたメッセージを処理する処理手段と
を備えるデータ配信システム。
A server device;
A client device, and
The server device
Third assigning means for attaching a third sequence number to the message;
First assigning means for assigning a first sequence number to each of the first packets included in the first packet group in which the message attached with the third sequence number is divided according to a first communication protocol;
Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group obtained by dividing the message assigned with the third sequence number according to a second communication protocol different from the first communication protocol; ,
The first packet group assigned the first sequence number is transmitted to the client device according to the first communication protocol, and the second packet group assigned the second sequence number is transmitted according to the second communication protocol. A transmission means for transmitting to the client device,
The client device is
First receiving means for receiving the first packet group from the server device according to the first communication protocol;
Second receiving means for receiving the second packet group from the server device according to the second communication protocol;
A message is restored based on the first sequence number assigned to the received first packet group and the second sequence number assigned to the received second packet group, and the message is attached to the restored message. Specifying means for specifying the delivery order of the messages based on the third sequence number,
A data distribution system comprising: processing means for processing the restored message according to the distribution order.
前記第3付与手段は、前記第1パケットに対して、直近のタイミングにおいて前記第2パケットに付与された第2シーケンス番号を、前記第3シーケンス番号として付与する
請求項1に記載のデータ配信システム。
The data distribution system according to claim 1, wherein the third assigning unit assigns the second sequence number assigned to the second packet at the latest timing as the third sequence number to the first packet. .
前記第3付与手段は、前記第2パケットに対して、直近のタイミングにおいて前記第1パケットに付与された第1シーケンス番号を、前記第3シーケンス番号として付与する
請求項1または3に記載のデータ配信システム。
The data according to claim 1 or 3, wherein the third assigning unit assigns the first sequence number assigned to the first packet at the latest timing as the third sequence number to the second packet. Distribution system.
前記第1通信プロトコルに従って送信されるメッセージは、予め定められたタイミングごとのデータ値の時間変化を示すデータであり、
前記第2通信プロトコルに従って送信されるメッセージは、或る時点までの前記データ値の時間変化を示すデータを含む
請求項1乃至4のいずれか1項に記載のデータ配信システム。
The message transmitted according to the first communication protocol is data indicating a time change of a data value for each predetermined timing,
The data distribution system according to any one of claims 1 to 4, wherein the message transmitted according to the second communication protocol includes data indicating a temporal change in the data value up to a certain point in time.
前記第1通信プロトコルに従って送信されるメッセージは、予め定められたタイミングごとの金融情報の時間変化を示す系列データであり、
前記第2通信プロトコルに従って送信されるメッセージは、或る時点までの前記金融情報の時間変化を示すデータを含み、
前記第1通信プロトコルは、マルチキャストの通信プロトコルであり、
前記第2通信プロトコルは、ユニキャストの通信プロトコルである
請求項1乃至5のいずれか1項に記載のデータ配信システム。
The message transmitted according to the first communication protocol is sequence data indicating a time change of financial information at each predetermined timing,
The message transmitted according to the second communication protocol includes data indicating a time change of the financial information up to a certain point in time,
The first communication protocol is a multicast communication protocol,
The data distribution system according to any one of claims 1 to 5, wherein the second communication protocol is a unicast communication protocol.
前記送信手段は、前記第1パケット群を第1のクライアント装置群へマルチキャストし、前記第2パケット群を第2のクライアント装置群へマルチキャストする
請求項1乃至5のいずれか1項に記載のデータ配信システム。
The data according to any one of claims 1 to 5, wherein the transmission unit multicasts the first packet group to a first client device group, and multicasts the second packet group to a second client device group. Distribution system.
前記サーバ装置は、前記第1通信プロトコルを指定する要求を前記クライアント装置から受信した場合に、前記メッセージを該第1通信プロトコルに従って前記クライアント装置へ送信する
請求項1乃至7のいずれか1項に記載のデータ配信システム。
8. The server device according to claim 1, wherein the server device transmits the message to the client device according to the first communication protocol when receiving a request for designating the first communication protocol from the client device. The data distribution system described.
メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、
前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、
前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、
前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従ってクライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信する送信手段と
を備えるサーバ装置。
First assigning means for assigning a first sequence number to each of the first packets included in the first packet group in which the message is divided according to the first communication protocol;
Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group in which the message is divided according to a second communication protocol different from the first communication protocol;
Third assigning means for attaching a third sequence number indicating a relative delivery order of each of the second packets to the first packet group to at least one of the first packet and the second packet;
The first sequence number or the first packet group to which the first sequence number and the third sequence number are attached is transmitted to a client device according to the first communication protocol, and the second sequence number or the second sequence is transmitted. And a transmission unit configured to transmit the second packet group to which the number and the third sequence number are assigned to the client device according to the second communication protocol.
メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、前記第1パケット群に対する前記複数の第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従って当該クライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って当該クライアント装置へ送信する送信手段とを備えるサーバ装置から、前記第1パケット群を前記第1通信プロトコルに従って受信する第1受信手段と、
前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信する第2受信手段と、
前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定する特定手段と、
前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理する処理手段と
を備えるクライアント装置。
A first assigning unit for assigning a first sequence number to each of the first packets included in the first packet group obtained by dividing the message according to the first communication protocol; and the message is divided according to a second communication protocol different from the first communication protocol. Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group, and a second distribution unit indicating a relative distribution order of each of the plurality of second packets with respect to the first packet group. A third assigning unit for assigning three sequence numbers to at least one of the first packet and the second packet; and the first sequence number or the first sequence number and the third sequence number assigned to the first sequence number. One packet group is transmitted to the client device according to the first communication protocol, and the second sequence is transmitted. Or a transmission means for transmitting the second packet group to which the second sequence number and the third sequence number are attached to the client apparatus according to the second communication protocol. First receiving means for receiving according to the first communication protocol;
Second receiving means for receiving the second packet group from the server device according to the second communication protocol;
Based on the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the received first packet group and the received second packet group, the reception is performed. Specifying means for specifying the distribution order of the first packet group and the received second packet group;
A client device comprising: processing means for processing the received first packet group and second packet group in accordance with the distribution order.
コンピュータに、
メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付すステップと、
前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付すステップと、
前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付すステップと、
前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従ってクライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信するステップと
を実行させるためのプログラム。
On the computer,
Attaching a first sequence number to each of the first packets included in the first packet group in which the message is divided according to the first communication protocol;
Attaching a second sequence number to each of the second packets included in the second packet group in which the message is divided according to a second communication protocol different from the first communication protocol;
Attaching a third sequence number indicating a relative delivery order of each of the second packets to the first packet group to at least one of the first packet and the second packet;
The first sequence number or the first packet group to which the first sequence number and the third sequence number are attached is transmitted to a client device according to the first communication protocol, and the second sequence number or the second sequence is transmitted. And a step of transmitting the second packet group with the number and the third sequence number to the client device according to the second communication protocol.
コンピュータに、
メッセージが第1通信プロトコルに従って分割された第1パケット群に含まれる第1パケットの各々に第1シーケンス番号を付す第1付与手段と、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付す第2付与手段と、前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付す第3付与手段と、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従って前記コンピュータへ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記コンピュータへ送信する送信手段とを備えるサーバ装置から、前記第1パケット群を前記第1通信プロトコルに従って受信するステップと、
前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信するステップと、
前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定するステップと、
前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理するステップと
を実行させるためのプログラム。
On the computer,
A first assigning unit for assigning a first sequence number to each of the first packets included in the first packet group obtained by dividing the message according to the first communication protocol; and the message is divided according to a second communication protocol different from the first communication protocol. Second assigning means for assigning a second sequence number to each of the second packets included in the second packet group, and a third sequence indicating a relative distribution order of each of the second packets with respect to the first packet group A third assigning unit for assigning a number to at least one of the first packet and the second packet; and the first packet to which the first sequence number or the first sequence number and the third sequence number are attached. A group is transmitted to the computer according to the first communication protocol, and the second sequence number or A first packet group from the server device comprising: transmission means for transmitting the second packet group with the second sequence number and the third sequence number to the computer according to the second communication protocol; Receiving according to a communication protocol;
Receiving the second packet group from the server device according to the second communication protocol;
Based on the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the received first packet group and the received second packet group, the reception is performed. Identifying the delivery order of the first packet group and the received second packet group;
A program for executing the received first packet group and second packet group in accordance with the distribution order.
サーバ装置が、メッセージが第1通信プロトコルに従って分割された第1パケット群の各々に第1シーケンス番号を付すステップと、
前記サーバ装置が、前記第1通信プロトコルと異なる第2通信プロトコルに従ってメッセージが分割された第2パケット群に含まれる第2パケットの各々に第2シーケンス番号を付すステップと、
前記サーバ装置が、前記第1パケット群に対する前記第2パケットの各々の相対的な配信順序を示す第3シーケンス番号を、前記第1パケットおよび前記第2パケットの少なくともいずれか一方に付すステップと、
前記サーバ装置が、前記第1シーケンス番号または前記第1シーケンス番号および前記第3シーケンス番号が付された前記第1パケット群を、前記第1通信プロトコルに従ってクライアント装置へ送信し、前記第2シーケンス番号または前記第2シーケンス番号および前記第3シーケンス番号が付された前記第2パケット群を前記第2通信プロトコルに従って前記クライアント装置へ送信するステップと、
前記クライアント装置が、前記サーバ装置から前記第1パケット群を前記第1通信プロトコルに従って受信するステップと、
前記クライアント装置が、前記サーバ装置から前記第2パケット群を前記第2通信プロトコルに従って受信するステップと、
前記クライアント装置が、前記受信された第1パケット群および該受信された第2パケット群の少なくともいずれか一方に付された前記第1シーケンス番号、前記第2シーケンス番号および前記第3シーケンス番号に基づいて、該受信された第1パケット群と該受信された第2パケット群の配信順序を特定するステップと、
前記クライアント装置が、前記配信順序に従って、前記受信された第1パケット群および第2パケット群を処理するステップと
を備えるデータ配信方法。
The server device assigning a first sequence number to each of the first packet group in which the message is divided according to the first communication protocol;
The server device assigns a second sequence number to each second packet included in a second packet group in which a message is divided according to a second communication protocol different from the first communication protocol;
The server device assigning a third sequence number indicating a relative delivery order of each of the second packets to the first packet group to at least one of the first packet and the second packet;
The server device transmits the first packet number to which the first sequence number or the first sequence number and the third sequence number are attached to a client device according to the first communication protocol, and the second sequence number Or transmitting the second packet group with the second sequence number and the third sequence number to the client device according to the second communication protocol;
The client device receiving the first packet group from the server device according to the first communication protocol;
The client device receiving the second packet group from the server device according to the second communication protocol;
The client device is based on the first sequence number, the second sequence number, and the third sequence number assigned to at least one of the received first packet group and the received second packet group. Identifying the distribution order of the received first packet group and the received second packet group;
A data distribution method comprising: the client device processing the received first packet group and second packet group according to the distribution order.
JP2014023492A 2014-02-10 2014-02-10 Data distribution system, server device, client device, program, and data distribution method Expired - Fee Related JP5549965B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014023492A JP5549965B1 (en) 2014-02-10 2014-02-10 Data distribution system, server device, client device, program, and data distribution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014023492A JP5549965B1 (en) 2014-02-10 2014-02-10 Data distribution system, server device, client device, program, and data distribution method

Publications (2)

Publication Number Publication Date
JP5549965B1 JP5549965B1 (en) 2014-07-16
JP2015154096A true JP2015154096A (en) 2015-08-24

Family

ID=51416766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014023492A Expired - Fee Related JP5549965B1 (en) 2014-02-10 2014-02-10 Data distribution system, server device, client device, program, and data distribution method

Country Status (1)

Country Link
JP (1) JP5549965B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011237A1 (en) * 2005-05-11 2007-01-11 Mockett Gregory P Interactive, rich-media, delivery over IP network using synchronized unicast and multicast
JP2008311947A (en) * 2007-06-14 2008-12-25 Panasonic Corp Contents distribution system, contents server, terminal, contents distribution method, program and recording medium
JP2009206586A (en) * 2008-02-26 2009-09-10 Kddi Corp Content transmitter, content receiver and system thereof
JP2009302746A (en) * 2008-06-11 2009-12-24 Hitachi Ltd Distribution system
JP2012018602A (en) * 2010-07-09 2012-01-26 Estijl Co Ltd Server, financial information distribution method and program
JP2013250752A (en) * 2012-05-31 2013-12-12 Estijl Co Ltd Sequence data protection method and sequence data protection program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011237A1 (en) * 2005-05-11 2007-01-11 Mockett Gregory P Interactive, rich-media, delivery over IP network using synchronized unicast and multicast
JP2008311947A (en) * 2007-06-14 2008-12-25 Panasonic Corp Contents distribution system, contents server, terminal, contents distribution method, program and recording medium
JP2009206586A (en) * 2008-02-26 2009-09-10 Kddi Corp Content transmitter, content receiver and system thereof
JP2009302746A (en) * 2008-06-11 2009-12-24 Hitachi Ltd Distribution system
JP2012018602A (en) * 2010-07-09 2012-01-26 Estijl Co Ltd Server, financial information distribution method and program
JP2013250752A (en) * 2012-05-31 2013-12-12 Estijl Co Ltd Sequence data protection method and sequence data protection program

Also Published As

Publication number Publication date
JP5549965B1 (en) 2014-07-16

Similar Documents

Publication Publication Date Title
CN101370035B (en) Method and system for dynamic client/server network management using proxy servers
JP4769585B2 (en) Standby session for communicating correlation messages over the network
US7039671B2 (en) Dynamically routing messages between software application programs using named routing nodes and named message queues
CN105553977B (en) Processing, sending method and the device of request message
US9330154B2 (en) Multicast database replication
CN102546583A (en) Service virtualization over content-centric networks
US9319362B1 (en) Messaging system with distributed filtering modules which register interests, remove any messages that do not match the registered interest, and forward any matched messages for delivery
US7536468B2 (en) Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol
EP2490397B1 (en) Scheduled network management
US10997636B2 (en) Delay-tolerant information-centric networking (DTICN)
CN102763359B (en) The traffic optimization device of SCTP and method in multicast network
US20220116748A1 (en) Push-to-talk device
US7254602B1 (en) Multicast enabled web content distribution
JP6699231B2 (en) Information distribution device, information distribution program, communication terminal, communication processing program, and information distribution system
JP5549965B1 (en) Data distribution system, server device, client device, program, and data distribution method
CN112449012B (en) Data resource scheduling method, system, server and read storage medium
US8145775B2 (en) Method to receive UDP response messages across multiple incoming UDP ports
JP5370184B2 (en) Data distribution method
KR102043031B1 (en) Server and method for load balancing of using the same
EP3902232B1 (en) Updating a transport stack in a content centric network
JP4642649B2 (en) Relay device
KR100899526B1 (en) Apparatus and Method for Processing Packet using Multi-Processor
WO2018142866A1 (en) Transfer device, transfer method and program
JP6690291B2 (en) Information distribution system, information distribution device, information distribution program, and information distribution method
JP3839967B2 (en) Broadcast communication method and communication apparatus

Legal Events

Date Code Title Description
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: 20140415

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140508

R150 Certificate of patent or registration of utility model

Ref document number: 5549965

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees