WO2024052981A1 - Processing device, processing method, and program - Google Patents

Processing device, processing method, and program Download PDF

Info

Publication number
WO2024052981A1
WO2024052981A1 PCT/JP2022/033389 JP2022033389W WO2024052981A1 WO 2024052981 A1 WO2024052981 A1 WO 2024052981A1 JP 2022033389 W JP2022033389 W JP 2022033389W WO 2024052981 A1 WO2024052981 A1 WO 2024052981A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
terminal
task
sending
messages
Prior art date
Application number
PCT/JP2022/033389
Other languages
French (fr)
Japanese (ja)
Inventor
ホンジェ ジェイ
圭 大村
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2022/033389 priority Critical patent/WO2024052981A1/en
Publication of WO2024052981A1 publication Critical patent/WO2024052981A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting

Definitions

  • the present invention relates to a processing device, a processing method, and a program.
  • a message broker is middleware that exchanges messages between servers in real time.
  • a message broker can deliver messages even in systems where multiple data exchange routes exist between servers.
  • Message brokers can function effectively even in complex systems.
  • Message brokers are classified depending on whether they have a delivery guarantee function or not.
  • MQTT Message Queueing Telemetry Transport
  • IoT Internet of Things
  • Message brokers with a delivery guarantee function include Apache Kafka (Non-Patent Document 1) and Apache Pulsar (Non-Patent Document 2).
  • Apache Kafka and Apache Pulsar are designed not only to send and receive messages, but also to manage a series of operations related to message processing, such as message conversion.
  • Apache Kafka and Apache Pulsar achieve message delivery guarantee and retransmission functions using storage that accumulates messages and transmission control modules installed for each of multiple terminals.
  • control messages will be sent to each terminal in a smart city or smart factory.
  • Each terminal operates according to control messages.
  • an accurate arrival guarantee function is required, so it is conceivable to apply an existing message broker that has an arrival guarantee function.
  • smart cities or smart factories may have different situations than data centers, such as network conditions differing depending on the location and the processing capacity of each terminal differing. Problems can arise when using existing message brokers in smart cities or smart factories.
  • Non-Patent Document 1 a transmission control module is provided for each terminal, so message transmission performance may deteriorate as the number of terminals and messages increases.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technology that can efficiently transmit messages to multiple terminals.
  • a processing device includes a control unit that determines the order of a plurality of messages to be transmitted to each terminal, a transmission task that transmits each of the plurality of messages to each terminal, and a control unit that generates a transmission task that transmits each of the plurality of messages to each terminal, and It includes a communication unit that executes each transmission task to transmit data to each terminal in order.
  • a computer determines the order of a plurality of messages to be transmitted to each terminal, and the computer generates and determines each sending task to transmit each of the plurality of messages to each terminal. Execute each sending task to send to each terminal in the order in which the messages were sent.
  • One aspect of the present invention is a program that causes a computer to function as the processing device.
  • FIG. 1 is a diagram illustrating the system configuration of a communication system and functional blocks of a processing device according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an example of the data structure and data of priority data.
  • FIG. 3 is a diagram illustrating an example of the data structure and data of a task pool.
  • FIG. 4 is a diagram illustrating an example of the data structure and data of state data.
  • FIG. 5 is a flowchart illustrating an example of communication processing by the communication unit of the processing device.
  • FIG. 6 is a diagram illustrating the hardware configuration of a computer used in the processing device.
  • a processing device 1 is used in a communication system 5.
  • the communication system 5 includes a processing device 1 and a plurality of terminals 2, specifically a first terminal 2a, a second terminal 2b, and a third terminal 2c. Although a case will be described in which the communication system 5 includes three terminals 2, the number of terminals 2 does not matter.
  • the processing device 1 transmits a message to each terminal 2 included in the communication system 5.
  • the processing device 1 implements a message arrival guarantee function that guarantees that the message has reached the terminal 2, and a retransmission function that resends the message if the message has not arrived.
  • the terminal 2 receives messages from the processing device 1, and replies with the reception status in response to inquiries regarding message reception.
  • processing equipment in order to send a certain message to each terminal 2, the processing device 1 performs each sending task with each of the terminals 2 as the destination, and the processing device 1 performs each sending task to send a certain message to each terminal 2. In order to confirm, each confirmation task is generated with each of the terminals 2 as a destination.
  • the sending task and the confirmation task may each be composed of one or more tasks.
  • two sending tasks may be generated to send a message: a task to send a header part and a task to send a message body part.
  • two confirmation tasks for confirming that the message has been received at each terminal 2 may be generated: a task for confirming the start of reception at the terminal 2, and a task for confirming the completion of reception.
  • tasks other than these may be generated as the transmission task and confirmation task.
  • tasks other than the sending task and the confirmation task may be generated.
  • the processing device 1 sends each sending task whose destination is each terminal 2 from which the message has not been received, in order to resend the message.
  • each confirmation task is generated with each of the terminals 2 as a destination.
  • the processing device 1 when sending k messages to each of m terminals 2, the processing device 1 generates k ⁇ m sending tasks and k ⁇ m confirmation tasks, and executes each task. . If a certain message is not received by n terminals 2 among the m terminals 2, the processing device 1 generates n sending tasks and n confirmation tasks for retransmitting the message. , perform each task.
  • the processing device 1 determines the order of transmitting messages and the order of the terminals 2 that transmit the messages according to a predetermined policy, and executes each task according to the determined order.
  • a sending task for sending a certain message to the terminal 2 is executed, a confirmation task for confirming that the message has been received by the terminal 2 is executed.
  • the processing device 1 can complete a task in which the destination and the target message match without delay due to waiting time.
  • the processing device 1 stores terminal data 11, message data 12, priority data 13, task pool 14, and state data 15, and functions of a management section 21, a control section 22, and a communication section 23. Equipped with. Each data is stored in a storage device such as memory 902 or storage 903. Each data may be stored in external storage of the processing device 1. Each function is implemented in the CPU 901.
  • the terminal data 11 is data that associates the identifier of the terminal 2 with information about the terminal 2.
  • the identifier of the terminal 2 is, for example, assigned a number so that the processing device 1 can identify the terminal 2.
  • the identifier of the terminal 2 may be, for example, a hash value of the information of the terminal 2.
  • the information on the terminal 2 includes the name of the terminal designated by the user, the identifier connected by the processing device 1 when the terminal 2 is connected to the processing device 1, the attributes of the terminal 2, and the like.
  • the terminal data 11 is preferably stored in a nonvolatile storage medium such as a hard disk.
  • the message data 12 is data of a message sent from the processing device 1 to the terminal 2.
  • the message data 12 is, for example, data that associates a message identifier with the message content.
  • the message data 12 includes at least unsent messages as well as messages whose reception has not been confirmed at any terminal 2.
  • the priority data 13 specifies the priority of each message and terminal 2 when the processing device 1 transmits a plurality of messages to a plurality of terminals 2.
  • Priority data 13 is generated according to the message and the priority of terminal 2 determined by control unit 22. Furthermore, if there are multiple items with priorities set, the priority data 13 may also specify the priorities of the items.
  • the priority data 13 specifies the first message as having the highest priority, and specifies the second message as having the next highest priority. Furthermore, the priority data 13 specifies, for the terminals 2, the first terminal 2a as the highest priority, the second terminal 2b as the next highest priority, and the third terminal 2c as the lowest priority. Specify.
  • the priority data 13 specifies the priority for each item of the message and the terminal 2, but the priority may be specified for other items or a policy regarding the transmission order may be set. Further, the transmission order may be determined under predetermined conditions. For example, when retransmission of a message occurs, the reception status of the message at each terminal 2 may be different. Therefore, the priority data 13 is used to specify messages such as, for example, transmitting the next message after each terminal 2 receives one message, or transmitting the next message to the terminal 2 that has received one message. It is also possible to set a policy that takes into account the reception situation.
  • the task pool 14 stores each task for transmitting a message to each terminal 2 and for checking the reception status of the transmitted message.
  • tasks are stored in descending order of priority.
  • the task pool 14 stores the task with the highest priority in the first row, and the priority decreases as the rows move down to the second and third rows.
  • the task pool 14 identifies the task to be executed by the processing device 1 using the message ID, the terminal ID of the message destination, and the task type.
  • the task pool 14 is updated every time a task is generated or executed by the communication unit 23, which will be described later.
  • the status data 15 sets the message reception status at each terminal 2. If the terminal 2 is a device such as a car that is driven in a smart city, it is frequently connected to or disconnected from the processing device 1, or restarted. Therefore, the processing device 1 stores the state data 15 in a nonvolatile storage medium such as a hard disk. The processing device 1 can permanently maintain the delivery status of messages to each terminal 2, so it can deliver messages without omission, taking into consideration the previous delivery status of each terminal 2 after it has been reconnected or restarted. can do.
  • the status data 15 associates each terminal 2 and each message ID with a status such as received or unreceived.
  • "Unsent” indicates that the message has not been sent by the communication unit 23 (described later), and "Sent” indicates that the message has been sent but reception at the terminal 2 has not been confirmed.
  • Statuses such as "completed”, “received” where a confirmation message has been sent and reception at the terminal 2 has been confirmed, and "unreceived” where a confirmation message has been transmitted and reception at the terminal 2 has not been confirmed are set.
  • the conditions listed here are just examples, and the situation is not limited to these.
  • the management unit 21 manages information on the terminals 2 belonging to the communication system 5 and stores it in terminal 2 data.
  • the management unit 21 stores the hash value calculated from the information of the terminal 2 in the terminal 2 data as the identifier of the terminal 2.
  • the identifier of the terminal 2 may be a randomly issued identifier.
  • the control unit 22 When a message to be transmitted to the terminal 2 is generated, the control unit 22 associates the identifier of the message with the content of the message and stores it in the message data 12, and also determines the priority of the message to be transmitted. When a newly connected terminal 2 occurs, the control unit 22 determines the priority of the terminal 2 that transmits the message. The priority of the message sent by the processing device 1 to each terminal 2 and the priority of the terminal 2 are determined and stored in the priority data 13.
  • control unit 22 determines the order of the multiple messages to be transmitted to each terminal 2.
  • control unit 22 determines the order of the plurality of messages to be transmitted to each terminal 2.
  • the control unit 22 determines the message transmission order according to, for example, a policy regarding message attributes or a policy regarding message reception status.
  • the control unit 22 can determine the transmission order based on message urgency, arrival time, size, etc. as a policy regarding message attributes. For example, policies regarding message attributes might set high priority for urgent messages, high or low priority for small messages, and high or low priority for newly generated messages. , setting a higher or lower priority for messages that could not be sent so far.
  • a policy may be considered in which each terminal 2 receives one message and then transmits the next message.
  • each terminal 2 receives one message and then transmits the next message.
  • a policy may be considered in which the next message is sent to the terminal 2 that has received one message.
  • each terminal 2 sends the next message to the terminal 2 that has received one message, thereby changing the order of the messages received by each terminal 2, although the received messages differ depending on the terminal 2. This makes it possible to reduce message processing delays without having to do so.
  • the control unit 22 may further determine the order of the terminals 2 that transmit one message.
  • the control unit 22 may, for example, set a high or low priority for a terminal 2 that requires time to receive based on the past reception status or the performance of the terminal 2, or set a high or low priority for a terminal 2 with high performance.
  • the order of terminals 2 that transmit messages is determined according to the following policy.
  • control unit 22 may also specify the priority of each item. For example, the control unit 22 determines that the priority of the message is higher than the priority of the terminal 2.
  • control unit 22 After determining the priority order of messages and terminals 2, the transmission order policy regarding message reception status, the priority of items for multiple items to which priorities are set, etc., the control unit 22 assigns the determined items to priority. Set to data 13.
  • the communication unit 23 generates each sending task to send each of the plurality of messages to each terminal 2.
  • the destination of the message is specified by the terminal data 11.
  • the content of the message to be transmitted is specified from the message data 12.
  • the communication unit 23 sorts the execution order of each transmission task according to the order of priority data 13 determined by the control unit 22, and sets it in the task pool 14.
  • the communication unit 23 executes each transmission task to transmit the tasks set in the task pool 14 to each terminal 2 from the beginning, specifically in the order of messages determined by the control unit 22. For example, if the first terminal 2a has each sending task to send a first message and a second message, the communication unit 23 sends the first message to the first terminal 2a according to the message priority set in the priority data 13 of FIG. Each task is executed in the order of a sending task for sending a first message to the first terminal 2a and a sending task for sending a second message to the first terminal 2a.
  • the communication unit 23 further executes each sending task for transmitting a message to each terminal in the order of the terminals 2 determined by the control unit 22 according to the order of the terminals 2 set in the priority data 13. For example, if there is a sending task that sends a first message to each of the first terminal 2a, the second terminal 2b, and the third terminal 2c, the priority data of the terminal 2 set in the priority data 13 in FIG. According to the priority, the communication unit 23 sends a sending task to send the first message to the first terminal 2a, a sending task to send the first message to the second terminal 2b, and a sending task to send the first message to the third terminal 2b. Each task is executed in the order of the sending task to be sent to the terminal 2c.
  • the communication unit 23 performs a transmission task of transmitting the first message to the first terminal 2a, and a transmission task of transmitting the first message to the first terminal 2a.
  • a sending task sends the first message to the second terminal 2b, a sending task sends the first message to the third terminal 2c, a sending task sends the second message to the first terminal 2a, and a sending task sends the second message to the second terminal 2c.
  • Each task is executed in the order of the sending task to send to the terminal 2b and the sending task to send the second message to the third terminal 2c.
  • the communication unit 23 generates each confirmation task corresponding to each transmission task in order to realize the arrival guarantee function. Specifically, the communication unit 23 generates each confirmation task for each terminal 2 to confirm the reception of each of the plurality of messages. Immediately after executing a certain sending task, the communication unit 23 executes a confirmation task having the same destination and message as the sending task.
  • the communication unit 23 reflects the execution status and results of the transmission task and confirmation task in the status data 15.
  • the communication unit 23 changes the status of the status data 15 in FIG. 4 to "unsent" for the message and the terminal 2 before the transmission task is executed.
  • the communication unit 23 changes the status of messages and terminals 2 whose reception status has not been confirmed by the confirmation task to "sent”.
  • the communication unit 23 changes the status of the message and the terminal 2 whose reception status has been confirmed by the confirmation task to "received”.
  • the communication unit 23 changes the status of messages and terminals 2 whose reception status cannot be confirmed by the confirmation task to "not received”. Note that the conditions listed here are just examples and are not limited to these.
  • the communication unit 23 When the communication unit 23 confirms in the confirmation task that a certain message has not been received by a certain terminal 2, it executes a sending task to send the message to that terminal 2 and a sending task to confirm that the message has been received by that terminal 2. Generate a confirmation task to confirm. For example, the communication unit 23 generates a sending task and a confirmation task for the terminal 2 and message whose status is set to “unsent” in the status data 15. The communication unit 23 inserts each newly generated task into the task pool 14 and sorts it by priority data 13. At this time, in the task pool 14, the confirmation task is located immediately after the newly generated transmission task. The communication unit 23 executes the tasks set in the task pool 14 from the beginning.
  • the priority data 13 includes a policy of "send the next message after each terminal 2 receives one message" or "send the next message to the terminal 2 that received one message". "Send message” is set.
  • the communication unit 23 When transmitting a second message after transmitting the first message, the communication unit 23 performs, for each terminal 2, each transmission task to transmit the first message and each confirmation to confirm reception of the first message. perform tasks; After the reception of the first message is confirmed in each confirmation task, that is, after all the terminals 2 have received the first message, the communication unit 23 sends a second message to each terminal for each terminal. Execute a sending task and each confirmation task that confirms receipt of the second message. In this policy, the communication unit 23 transmits the second message to each terminal 2 after receipt of the first message is confirmed at all terminals 2 .
  • the reception status of each message at each terminal 2 will be the same. If there is a terminal 2 for which it is difficult to confirm reception, a delay may occur. Temporarily, there is a timing when the terminal 2 that has received the first message and the terminal 2 that has not received the first message coexist, or the terminal 2 that has received the first message and the terminal 2 that has received the second message. There are times when the two are mixed. However, since the messages received by each terminal 2 are almost the same, the reception status can be synchronized. For example, at a timing when terminals 2 that have received the first message and terminals 2 that have received the second message coexist, all the terminals 2 have already received the first message.
  • the communication unit 23 When transmitting a second message after transmitting the first message, the communication unit 23 performs, for each terminal 2, each transmission task to transmit the first message and each confirmation to confirm reception of the first message. After executing the tasks, each sending task for sending a second message and each receiving task for confirming reception of the second message are executed for each terminal whose reception of the first message was confirmed in the confirmation task. In this policy, as soon as the communication unit 23 receives confirmation of receipt of the first message, it transmits the second message to the terminal 2 for which reception confirmation has been obtained.
  • each terminal 2 When a task is executed according to this policy, the reception status of each message at each terminal 2 may be different. For example, there are times when terminals 2 that have not received the first message and terminals 2 that have received the third message coexist. However, even if there is a terminal 2 whose reception is difficult to confirm, a new message is sent to the terminal 2 whose reception can be confirmed. Although delays occur in some terminals 2, it is considered that delays are unlikely to occur in other terminals 2. Further, each terminal 2 can receive each message in the order in which the processing device 1 transmits the messages.
  • the communication unit 23 waits for an event to occur in step S101.
  • the event is the generation of a new message or the arrival of a timing at which a task can be executed.
  • the communication unit 23 may execute tasks sequentially, and execute generation of a new message as an interrupt process.
  • step S102 the communication unit 23 generates a transmission task addressed to each terminal 2 to transmit the new message, and a confirmation task addressed to each terminal 2 to confirm reception of the new message.
  • the communication unit 23 inserts the generated task into the task pool 14.
  • step S103 the communication unit 23 sorts each task in the task pool 14 according to the priority specified by the priority data 13. The communication unit 23 returns to step S101 and waits for an event to occur.
  • the communication unit 23 executes the first task in the task pool 14. If the first task is a sending task, the communication unit 23 executes the first sending task in the task pool 14 and deletes the executed task from the task pool 14 in step S105. In step S106, the communication unit 23 updates the "state" of the status data 15 to "sent" for the message of the executed sending task and the terminal 2. The communication unit 23 returns to step S101 and waits for an event to occur.
  • the communication unit 23 executes the first confirmation task in the task pool 14 and deletes the executed task from the task pool 14 in step S107.
  • processing is distributed according to the confirmation result of the confirmation task. If it is confirmed by the confirmation task that the message has been received, in step S106, the communication unit 23 updates the "status" of the status data 15 to "received" for the message of the executed confirmation task and the terminal 2. .
  • the communication unit 23 returns to step S101 and waits for an event to occur.
  • step S109 the communication unit 23 updates the "state" of the status data 15 to "not received” for the message of the executed confirmation task and the terminal 2. . Further, the communication unit 23 generates a transmission task for retransmission and a confirmation task for the terminal 2 and message specified by the executed confirmation task, and inserts them into the task pool 14. In step S103, the communication unit 23 sorts each task in the task pool 14 according to the priority specified by the priority data 13. The communication unit 23 returns to step S101 and waits for an event to occur.
  • the processing device 1 Since the processing device 1 according to the embodiment of the present invention sends messages to a plurality of terminals 2, it is more efficient than when one module is provided to send messages to one terminal. You can send messages directly. Furthermore, the processing device 1 can adjust the message transmission order, etc., depending on the message attributes, the status of the terminal 2, the reception status, and the like. Even when the number of messages to be transmitted and the number of destination terminals 2 increase, the processing device 1 can efficiently transmit messages.
  • the processing device 1 is suitable for a smart city or a smart factory where the reception status of messages sent simultaneously to multiple terminals differs depending on the terminal due to different network conditions or different processing at each terminal. Since the processing device 1 can transmit messages while considering the reception status of each terminal 2, it is also possible to synchronize the message reception status.
  • the processing device 1 of the present embodiment described above includes, for example, a CPU (Central Processing Unit, processor) 901, a memory 902, a storage 903 (HDD: Hard Disk Drive, SSD: Solid State Drive), and a communication device 904. , a general-purpose computer system including an input device 905 and an output device 906 is used. In this computer system, each function of the processing device 1 is realized by the CPU 901 executing a program loaded onto the memory 902.
  • a CPU Central Processing Unit, processor
  • processing device 1 may be implemented by one computer or by multiple computers. Further, the processing device 1 may be a virtual machine implemented in a computer.
  • the program of the processing unit 1 can be stored in a computer-readable recording medium such as an HDD, SSD, USB (Universal Serial Bus) memory, CD (Compact Disc), or DVD (Digital Versatile Disc), or can be distributed via a network. You can also.
  • a computer-readable recording medium such as an HDD, SSD, USB (Universal Serial Bus) memory, CD (Compact Disc), or DVD (Digital Versatile Disc), or can be distributed via a network. You can also.
  • the computer-readable recording medium is, for example, a non-transitory recording medium.
  • Processing device 2 Terminal 5 Communication system 11 Terminal data 12 Message data 13 Priority data 14 Task pool 15 Status data 21 Management unit 22 Control unit 23 Communication unit 901 CPU 902 Memory 903 Storage 904 Communication device 905 Input device 906 Output device

Abstract

A processing device 1 includes a control unit 22 that determines the order of a plurality of messages to be transmitted to terminals 2, and a communication unit 23 that generates transmission tasks for transmitting each of the plurality of messages to each terminal 2 and that executes, in the determined order of the messages, each transmission task for transmission to the corresponding terminal.

Description

処理装置、処理方法およびプログラムProcessing equipment, processing method and program
 本発明は、処理装置、処理方法およびプログラムに関する。 The present invention relates to a processing device, a processing method, and a program.
 近年、メッセージブローカーが普及している。メッセージブローカーは、サーバ間のメッセージをリアルタイムに交換するミドルウェアである。サーバ間に複数のデータ交換ルートが存在するシステムにおいても、メッセージブローカーは、メッセージを配信可能である。メッセージブローカーは、複雑なシステムにおいても有効に機能することができる。 In recent years, message brokers have become popular. A message broker is middleware that exchanges messages between servers in real time. A message broker can deliver messages even in systems where multiple data exchange routes exist between servers. Message brokers can function effectively even in complex systems.
 メッセージブローカーは、到達保証機能の有無により区分される。 Message brokers are classified depending on whether they have a delivery guarantee function or not.
 到達保証機能のないメッセージブローカーとして、MQTT(Message Queueing Telemetry Transport)などがある。MQTTは、メッセージ送受信機能を重視して設計されており、軽量である。MQTTは、IoT(Internet of Things)などのエッジにおけるメッセージ送受信機構として、よく利用される。ただし、MQTTは、メッセージを蓄積する機能および到達保証機能を有さないので、利用中のネットワークの故障、または送受信側の装置の故障等により、メッセージロスが発生するリスクがある。 MQTT (Message Queueing Telemetry Transport) is an example of a message broker that does not have a delivery guarantee function. MQTT is designed with emphasis on message sending and receiving functions and is lightweight. MQTT is often used as a message sending and receiving mechanism at the edge of IoT (Internet of Things) and other applications. However, since MQTT does not have a message storage function or a delivery guarantee function, there is a risk that message loss may occur due to a failure of the network being used or a failure of the device on the sending and receiving side.
 到達保証機能のあるメッセージブローカーとして、Apache Kafka(非特許文献1)およびApache Pulsar(非特許文献2)などがある。Apache KafkaおよびApache Pulsarは、メッセージの送受信に限らず、メッセージの変換などのメッセージの処理に関する一連の操作の管理も考慮して設計される。Apache KafkaおよびApache Pulsar は、メッセージを蓄積するストレージと、複数の端末のそれぞれに対して設けられる送信制御モジュールにより、メッセージの到達保証機能および再送機能を実現する。 Message brokers with a delivery guarantee function include Apache Kafka (Non-Patent Document 1) and Apache Pulsar (Non-Patent Document 2). Apache Kafka and Apache Pulsar are designed not only to send and receive messages, but also to manage a series of operations related to message processing, such as message conversion. Apache Kafka and Apache Pulsar achieve message delivery guarantee and retransmission functions using storage that accumulates messages and transmission control modules installed for each of multiple terminals.
 スマートシティまたはスマートファクトリーなどにおいて、各端末に対する制御用メッセージの送信が想定される。各端末は、制御用メッセージに従って動作する。制御の正確性を担保するために、正確な到達保証機能が求められるので、到達保証機能を有する既存のメッセージブローカーの適用が考えられる。 It is assumed that control messages will be sent to each terminal in a smart city or smart factory. Each terminal operates according to control messages. In order to ensure accuracy of control, an accurate arrival guarantee function is required, so it is conceivable to apply an existing message broker that has an arrival guarantee function.
 しかしながら、既存のメッセージブローカーは、データセンター内での利用を想定して設計される。データセンターで用いられる既存のメッセージブローカーは、多様な配信方法に対応しておらず、単純なメッセージ処理機能に特化する傾向がある。近年のデータセンター内のサーバ構成では、1つのデータソースを複数のバックエンドが分散処理することが多いので、サーバから送信されるメッセージは、その複数のバックエンドのいずれかに届けば処理が完了する。このように既存のメッセージブローカーは、1つのメッセージを複数の端末に同時に配信する配信方法は考慮していない。 However, existing message brokers are designed for use within data centers. Existing message brokers used in data centers do not support a variety of delivery methods and tend to specialize in simple message processing functions. In recent server configurations in data centers, one data source is often processed in a distributed manner by multiple backends, so a message sent from a server can be processed once it reaches one of the multiple backends. do. In this way, existing message brokers do not take into consideration a distribution method of simultaneously distributing one message to multiple terminals.
 一方、スマートシティまたはスマートファクトリーなどは、場所によってネットワーク状態が異なったり、各端末の処理能力が異なったりなど、データセンターとは異なる状況が考えられる。スマートシティまたはスマートファクトリーなどに既存のメッセージブローカーを用いると、問題が生じる場合がある。 On the other hand, smart cities or smart factories may have different situations than data centers, such as network conditions differing depending on the location and the processing capacity of each terminal differing. Problems can arise when using existing message brokers in smart cities or smart factories.
 特に非特許文献1および非特許文献2に記載のメッセージブローカーは、端末毎に送信制御モジュールが設けられるので、端末およびメッセージの増加に伴って、メッセージの送信性能が悪化する場合が考えられる。 In particular, in the message brokers described in Non-Patent Document 1 and Non-Patent Document 2, a transmission control module is provided for each terminal, so message transmission performance may deteriorate as the number of terminals and messages increases.
 本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、複数の端末に効率的にメッセージを送信可能な技術を提供することである。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technology that can efficiently transmit messages to multiple terminals.
 本発明の一態様の処理装置は、各端末に送信する複数のメッセージの順序を決定する制御部と、各端末に複数のメッセージのそれぞれを送信する各送信タスクを生成し、決定されたメッセージの順序で、各端末に送信する各送信タスクを実行する通信部を備える。 A processing device according to one aspect of the present invention includes a control unit that determines the order of a plurality of messages to be transmitted to each terminal, a transmission task that transmits each of the plurality of messages to each terminal, and a control unit that generates a transmission task that transmits each of the plurality of messages to each terminal, and It includes a communication unit that executes each transmission task to transmit data to each terminal in order.
 本発明の一態様の処理方法は、コンピュータが、各端末に送信する複数のメッセージの順序を決定し、前記コンピュータが、各端末に複数のメッセージのそれぞれを送信する各送信タスクを生成し、決定されたメッセージの順序で、各端末に送信する各送信タスクを実行する。 In a processing method according to one aspect of the present invention, a computer determines the order of a plurality of messages to be transmitted to each terminal, and the computer generates and determines each sending task to transmit each of the plurality of messages to each terminal. Execute each sending task to send to each terminal in the order in which the messages were sent.
 本発明の一態様は、上記処理装置として、コンピュータを機能させるプログラムである。 One aspect of the present invention is a program that causes a computer to function as the processing device.
 本発明によれば、複数の端末に効率的にメッセージを送信可能な技術を提供することができる。 According to the present invention, it is possible to provide a technology that can efficiently send messages to multiple terminals.
図1は、本発明の実施の形態に係る通信システムのシステム構成と、処理装置の機能ブロックを説明する図である。FIG. 1 is a diagram illustrating the system configuration of a communication system and functional blocks of a processing device according to an embodiment of the present invention. 図2は、優先度データのデータ構造とデータの一例を説明する図である。FIG. 2 is a diagram illustrating an example of the data structure and data of priority data. 図3は、タスクプールのデータ構造とデータの一例を説明する図である。FIG. 3 is a diagram illustrating an example of the data structure and data of a task pool. 図4は、状態データのデータ構造とデータの一例を説明する図である。FIG. 4 is a diagram illustrating an example of the data structure and data of state data. 図5は、処理装置の通信部による通信処理の一例を示すフローチャートである。FIG. 5 is a flowchart illustrating an example of communication processing by the communication unit of the processing device. 図6は、処理装置に用いられるコンピュータのハードウエア構成を説明する図である。FIG. 6 is a diagram illustrating the hardware configuration of a computer used in the processing device.
 以下、図面を参照して、本発明の実施形態を説明する。図面の記載において同一部分には同一符号を付し説明を省略する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the description of the drawings, the same parts are designated by the same reference numerals, and the description thereof will be omitted.
 (通信システム)
 本発明の実施の形態に係る処理装置1は、通信システム5に用いられる。通信システム5は、処理装置1と、複数の端末2、具体的には第1の端末2a、第2の端末2bおよび第3の端末2cを備える。通信システム5は、3つの端末2を備える場合を説明するが、端末2の数は問わない。
(Communications system)
A processing device 1 according to an embodiment of the present invention is used in a communication system 5. The communication system 5 includes a processing device 1 and a plurality of terminals 2, specifically a first terminal 2a, a second terminal 2b, and a third terminal 2c. Although a case will be described in which the communication system 5 includes three terminals 2, the number of terminals 2 does not matter.
 処理装置1は、通信システム5が備える各端末2に、メッセージを送信する。処理装置1は、メッセージが端末2に到達していることを保証するメッセージ到達保証機能と、メッセージが届いていない場合にメッセージを再送する再送機能を実現する。 The processing device 1 transmits a message to each terminal 2 included in the communication system 5. The processing device 1 implements a message arrival guarantee function that guarantees that the message has reached the terminal 2, and a retransmission function that resends the message if the message has not arrived.
 端末2は、処理装置1からメッセージを受信したり、メッセージ受信の問い合わせに対して、受信状況を返信したりする。 The terminal 2 receives messages from the processing device 1, and replies with the reception status in response to inquiries regarding message reception.
 (処理装置)
 本発明の実施の形態において処理装置1は、あるメッセージを各端末2に送信するために、端末2のそれぞれを宛先とする各送信タスクと、そのメッセージが各端末2で受信されていることを確認するために、端末2のそれぞれを宛先とする各確認タスクを生成する。
(processing equipment)
In the embodiment of the present invention, in order to send a certain message to each terminal 2, the processing device 1 performs each sending task with each of the terminals 2 as the destination, and the processing device 1 performs each sending task to send a certain message to each terminal 2. In order to confirm, each confirmation task is generated with each of the terminals 2 as a destination.
 送信タスクと確認タスクは、それぞれ1つ以上のタスクで構成されても良い。例えば、メッセージを送信する送信タスクとして、ヘッダー部分を送信するタスクと、メッセージ本体部分を送信するタスクの2つが生成されても良い。同様に、メッセージが各端末2で受信されていることを確認する確認タスクとして、端末2における受信の開始を確認するタスクと、受信の完了を確認するタスクの2つが生成されても良い。また、送信タスクと確認タスクとして、これら以外のタスクが生成されても良い。さらに送信タスクと確認タスク以外のタスクが生成されても良い。 The sending task and the confirmation task may each be composed of one or more tasks. For example, two sending tasks may be generated to send a message: a task to send a header part and a task to send a message body part. Similarly, two confirmation tasks for confirming that the message has been received at each terminal 2 may be generated: a task for confirming the start of reception at the terminal 2, and a task for confirming the completion of reception. Furthermore, tasks other than these may be generated as the transmission task and confirmation task. Furthermore, tasks other than the sending task and the confirmation task may be generated.
 確認タスクにおいて、メッセージが受信されていないことが確認されると、処理装置1は、そのメッセージを再送するために、メッセージが受信されていない端末2のそれぞれを宛先とする各送信タスクと、その再送されたメッセージが各端末2で受信されていることを確認するために、端末2のそれぞれを宛先とする各確認タスクを生成する。 When it is confirmed in the confirmation task that the message has not been received, the processing device 1 sends each sending task whose destination is each terminal 2 from which the message has not been received, in order to resend the message. In order to confirm that the retransmitted message has been received by each terminal 2, each confirmation task is generated with each of the terminals 2 as a destination.
 例えば、k個のメッセージをm台の端末2のそれぞれに送信する場合、処理装置1は、k×m個の送信タスクと、k×m個の確認タスクを生成して、各タスクを実行する。ある一つのメッセージが、m台の端末2のうちn台において受信されていない場合、処理装置1は、そのメッセージを再送するためのn個の送信タスクと、n個の確認タスクを生成して、各タスクを実行する。 For example, when sending k messages to each of m terminals 2, the processing device 1 generates k×m sending tasks and k×m confirmation tasks, and executes each task. . If a certain message is not received by n terminals 2 among the m terminals 2, the processing device 1 generates n sending tasks and n confirmation tasks for retransmitting the message. , perform each task.
 このとき処理装置1は、予め定められたポリシーに従って、メッセージを送信する順序、そのメッセージを送信する端末2の順序を決定し、決定された順序に従って、各タスクを実行する。ここで、あるメッセージを端末2に送信する送信タスクが実行された直後に、そのメッセージが端末2で受信されていることを確認する確認タスクを実行する。処理装置1は、宛先と対象となるメッセージが一致するタスクを、待ち時間による遅延が発生することなく完了することができる。 At this time, the processing device 1 determines the order of transmitting messages and the order of the terminals 2 that transmit the messages according to a predetermined policy, and executes each task according to the determined order. Here, immediately after a sending task for sending a certain message to the terminal 2 is executed, a confirmation task for confirming that the message has been received by the terminal 2 is executed. The processing device 1 can complete a task in which the destination and the target message match without delay due to waiting time.
 図1に示すように処理装置1は、端末データ11、メッセージデータ12、優先度データ13、タスクプール14および状態データ15の各データと、管理部21、制御部22及び通信部23の各機能を備える。各データは、メモリ902またはストレージ903等の記憶装置に記憶される。各データは、処理装置1の外部ストレージに記憶されても良い。各機能は、CPU901に実装される。 As shown in FIG. 1, the processing device 1 stores terminal data 11, message data 12, priority data 13, task pool 14, and state data 15, and functions of a management section 21, a control section 22, and a communication section 23. Equipped with. Each data is stored in a storage device such as memory 902 or storage 903. Each data may be stored in external storage of the processing device 1. Each function is implemented in the CPU 901.
 端末データ11は、端末2の識別子と、端末2の情報を対応づけるデータである。端末2の識別子は、例えば、処理装置1が端末2を識別するために採番される。端末2の識別子は、例えば、端末2の情報のハッシュ値であっても良い。端末2の情報は、ユーザが指定した端末の名前、端末2が処理装置1に接続した際に処理装置1から接続される識別子、端末2の属性などである。端末データ11は、ハードディスクなどの不揮発性の記憶媒体に記憶されることが好ましい。 The terminal data 11 is data that associates the identifier of the terminal 2 with information about the terminal 2. The identifier of the terminal 2 is, for example, assigned a number so that the processing device 1 can identify the terminal 2. The identifier of the terminal 2 may be, for example, a hash value of the information of the terminal 2. The information on the terminal 2 includes the name of the terminal designated by the user, the identifier connected by the processing device 1 when the terminal 2 is connected to the processing device 1, the attributes of the terminal 2, and the like. The terminal data 11 is preferably stored in a nonvolatile storage medium such as a hard disk.
 メッセージデータ12は、処理装置1から端末2に送信するメッセージのデータである。メッセージデータ12は、例えばメッセージの識別子と、そのメッセージ内容を対応づけるデータである。メッセージデータ12は、少なくとも、未送信のメッセージのほか、いずれかの端末2において受信確認の取れていないメッセージを含む。 The message data 12 is data of a message sent from the processing device 1 to the terminal 2. The message data 12 is, for example, data that associates a message identifier with the message content. The message data 12 includes at least unsent messages as well as messages whose reception has not been confirmed at any terminal 2.
 優先度データ13は、処理装置1が、複数のメッセージを複数の端末2に送信する際の、メッセージおよび端末2のそれぞれの優先度を特定する。制御部22が決定したメッセージおよび端末2の優先度に従って、優先度データ13は生成される。また、優先度が設定された項目が複数ある場合、優先度データ13は、項目の優先度も特定しても良い。 The priority data 13 specifies the priority of each message and terminal 2 when the processing device 1 transmits a plurality of messages to a plurality of terminals 2. Priority data 13 is generated according to the message and the priority of terminal 2 determined by control unit 22. Furthermore, if there are multiple items with priorities set, the priority data 13 may also specify the priorities of the items.
 図2に示す例において優先度データ13は、メッセージについて、最も高い優先度として第1のメッセージを指定し、次に高い優先度として第2のメッセージを指定する。また優先度データ13は、端末2について、最も高い優先度として第1の端末2aを指定し、次に高い優先度として第2の端末2bを指定し、最も低い優先度として第3の端末2cを指定する。 In the example shown in FIG. 2, the priority data 13 specifies the first message as having the highest priority, and specifies the second message as having the next highest priority. Furthermore, the priority data 13 specifies, for the terminals 2, the first terminal 2a as the highest priority, the second terminal 2b as the next highest priority, and the third terminal 2c as the lowest priority. Specify.
 図2に示す例において優先度データ13は、メッセージと端末2の各項目について優先度を指定するが、それ以外の項目について優先度が指定されたり、送信順序に関するポリシーが設定されても良い。また送信順序は、所定の条件下において定められても良い。例えば、メッセージの再送が発生する場合、各端末2におけるメッセージの受信状況が異なる場合がある。そこで優先度データ13は、例えば、1つのメッセージについて各端末2が受信した後に、次のメッセージを送信する、あるいは、1つのメッセージについて受信した端末2に、次のメッセージを送信する、などのメッセージの受信状況を考慮したポリシーを設定しても良い。 In the example shown in FIG. 2, the priority data 13 specifies the priority for each item of the message and the terminal 2, but the priority may be specified for other items or a policy regarding the transmission order may be set. Further, the transmission order may be determined under predetermined conditions. For example, when retransmission of a message occurs, the reception status of the message at each terminal 2 may be different. Therefore, the priority data 13 is used to specify messages such as, for example, transmitting the next message after each terminal 2 receives one message, or transmitting the next message to the terminal 2 that has received one message. It is also possible to set a policy that takes into account the reception situation.
 タスクプール14は、各端末2にメッセージを送信し、また送信したメッセージの受信状況を確認するための各タスクを格納する。タスクプール14において、優先度の高い順に、各タスクが格納される。 The task pool 14 stores each task for transmitting a message to each terminal 2 and for checking the reception status of the transmitted message. In the task pool 14, tasks are stored in descending order of priority.
 図3に示す例においてタスクプール14は、1行目に優先度の最も高いタスクを格納し、2行目、3行目と行が繰り下がるにつれて優先度が下がる。タスクプール14は、処理装置1が実行するタスクを、メッセージIDと、そのメッセージの送信先の端末IDと、タスク種別の各項目によって特定する。タスクプール14は、後述の通信部23によってタスクが生成され、または実行される度に、更新される。 In the example shown in FIG. 3, the task pool 14 stores the task with the highest priority in the first row, and the priority decreases as the rows move down to the second and third rows. The task pool 14 identifies the task to be executed by the processing device 1 using the message ID, the terminal ID of the message destination, and the task type. The task pool 14 is updated every time a task is generated or executed by the communication unit 23, which will be described later.
 状態データ15は、各端末2におけるメッセージの受信状況を設定する。端末2がスマートシティ内で駆動する車などのデバイスの場合、処理装置1と頻繁に接続または切断したり、再起動したりする。そこで、処理装置1は、状態データ15をハードディスクなどの不揮発性の記憶媒体に記憶する。処理装置1は、各端末2へのメッセージの配信状況を永続的に保持することができるので、各端末2の再接続または再起動された以前の配信状況を考慮して、漏れなくメッセージを配信することができる。 The status data 15 sets the message reception status at each terminal 2. If the terminal 2 is a device such as a car that is driven in a smart city, it is frequently connected to or disconnected from the processing device 1, or restarted. Therefore, the processing device 1 stores the state data 15 in a nonvolatile storage medium such as a hard disk. The processing device 1 can permanently maintain the delivery status of messages to each terminal 2, so it can deliver messages without omission, taking into consideration the previous delivery status of each terminal 2 after it has been reconnected or restarted. can do.
 図4に示す例において状態データ15は、各端末2および各メッセージIDについて、受信済または未受信などの状態を対応づける。状態データ15の「状態」項目に、後述の通信部23によってメッセージが送信されていないことを示す「未送信」、メッセージが送信されたが端末2における受信が確認されていないことを示す「送信済」、確認メッセージが送信され端末2における受信が確認された「受信済」、確認メッセージが送信され端末2における受信が確認されていない「未受信」などの状態が設定される。ここに挙げる状態は一例であって、これに限るものではない。 In the example shown in FIG. 4, the status data 15 associates each terminal 2 and each message ID with a status such as received or unreceived. In the "Status" item of the status data 15, "Unsent" indicates that the message has not been sent by the communication unit 23 (described later), and "Sent" indicates that the message has been sent but reception at the terminal 2 has not been confirmed. Statuses such as "completed", "received" where a confirmation message has been sent and reception at the terminal 2 has been confirmed, and "unreceived" where a confirmation message has been transmitted and reception at the terminal 2 has not been confirmed are set. The conditions listed here are just examples, and the situation is not limited to these.
 管理部21は、通信システム5に属する端末2の情報を管理し、端末2データに保持する。管理部21は、通信システム5に新たな端末2が接続されると、その端末2の情報から算出したハッシュ値を、その端末2の識別子として端末2データに格納する。このとき、端末2の識別子が既に端末データ11に設定されている場合、登録エラーを出力して、その端末2を登録しない。端末2の識別子は、ランダムに発行した識別子でも良い。 The management unit 21 manages information on the terminals 2 belonging to the communication system 5 and stores it in terminal 2 data. When a new terminal 2 is connected to the communication system 5, the management unit 21 stores the hash value calculated from the information of the terminal 2 in the terminal 2 data as the identifier of the terminal 2. At this time, if the identifier of the terminal 2 has already been set in the terminal data 11, a registration error is output and the terminal 2 is not registered. The identifier of the terminal 2 may be a randomly issued identifier.
 制御部22は、端末2に送信するメッセージが発生すると、そのメッセージの識別子とメッセージの内容を対応づけてメッセージデータ12に格納するとともに、送信するメッセージの優先度を決定する。制御部22は、新たに接続される端末2が発生すると、メッセージを送信する端末2の優先度を決定する。処理装置1が各端末2に送信するメッセージの優先度および端末2の優先度を決定して、優先度データ13に格納する。 When a message to be transmitted to the terminal 2 is generated, the control unit 22 associates the identifier of the message with the content of the message and stores it in the message data 12, and also determines the priority of the message to be transmitted. When a newly connected terminal 2 occurs, the control unit 22 determines the priority of the terminal 2 that transmits the message. The priority of the message sent by the processing device 1 to each terminal 2 and the priority of the terminal 2 are determined and stored in the priority data 13.
 制御部22は、複数のメッセージを同時に各端末2に送信する場合、各端末2に送信する複数のメッセージの順序を決定する。制御部22は、端末2に送信するメッセージが新規に発生すると、各端末2に送信する複数のメッセージの順序を決定する。 When transmitting multiple messages to each terminal 2 at the same time, the control unit 22 determines the order of the multiple messages to be transmitted to each terminal 2. When a new message to be transmitted to the terminal 2 is generated, the control unit 22 determines the order of the plurality of messages to be transmitted to each terminal 2.
 制御部22は例えば、メッセージの属性に関するポリシー、またはメッセージの受信状況に関するポリシーに従って、メッセージの送信順序を決定する。 The control unit 22 determines the message transmission order according to, for example, a policy regarding message attributes or a policy regarding message reception status.
 制御部22は、メッセージの属性に関するポリシーとして、メッセージの緊急度、到着時間、サイズ等から送信順序を決定することができる。例えば、メッセージの属性に関するポリシーは、緊急度の高いメッセージの優先度を高く設定する、サイズの小さいメッセージの優先度を高くまたは低く設定する、新規に発生したメッセージの優先度を高くまたは低く設定する、今まで送信できなかったメッセージの優先度を高くまたは低く設定する、などである。 The control unit 22 can determine the transmission order based on message urgency, arrival time, size, etc. as a policy regarding message attributes. For example, policies regarding message attributes might set high priority for urgent messages, high or low priority for small messages, and high or low priority for newly generated messages. , setting a higher or lower priority for messages that could not be sent so far.
 メッセージの受信状況に関して、1つのメッセージについて各端末2が受信した後に、次のメッセージを送信するポリシーが考えられる。この場合、あるメッセージについて、受信済の端末2と未受信の端末2が発生するものの、そのメッセージよりも前に送信したメッセージは各端末2において受信済であるので、各端末2における受信状況を同期することができる。 Regarding the message reception status, a policy may be considered in which each terminal 2 receives one message and then transmits the next message. In this case, for a certain message, there are terminals 2 that have received it and terminals 2 that have not received it, but the message sent before that message has already been received at each terminal 2, so the reception status at each terminal 2 can be checked. Can be synchronized.
 メッセージの受信状況に関して、1つのメッセージについて受信した端末2に、次のメッセージを送信するポリシーが考えられる。この場合、各端末2において、1つのメッセージを受信した端末2に対して次のメッセージを送信することで、端末2によって受信済のメッセージが異なるものの、各端末2が受信するメッセージの順序を変更することなく、メッセージの処理遅延を減らすことが可能になる。 Regarding the message reception status, a policy may be considered in which the next message is sent to the terminal 2 that has received one message. In this case, each terminal 2 sends the next message to the terminal 2 that has received one message, thereby changing the order of the messages received by each terminal 2, although the received messages differ depending on the terminal 2. This makes it possible to reduce message processing delays without having to do so.
 制御部22は、さらに、1つのメッセージを送信する端末2の順序を決定しても良い。制御部22は、例えば、過去の受信状況または端末2の性能から、受信に時間を要する端末2の優先度を高くまたは低く設定する、性能の高い端末2の優先度を高くまたは低く設定する、などのポリシーに従って、メッセージを送信する端末2の順序を決定する。 The control unit 22 may further determine the order of the terminals 2 that transmit one message. The control unit 22 may, for example, set a high or low priority for a terminal 2 that requires time to receive based on the past reception status or the performance of the terminal 2, or set a high or low priority for a terminal 2 with high performance. The order of terminals 2 that transmit messages is determined according to the following policy.
 制御部22は、メッセージの優先度および端末2の優先度など、複数の項目について優先度を設定する場合、各項目の優先度も特定しても良い。制御部22は、例えば、端末2の優先度よりも、メッセージの優先度を高くすることを決定する。 When setting priorities for multiple items, such as the message priority and the terminal 2 priority, the control unit 22 may also specify the priority of each item. For example, the control unit 22 determines that the priority of the message is higher than the priority of the terminal 2.
 制御部22は、メッセージおよび端末2の優先順序、メッセージの受信状況に関する送信順序のポリシー、優先度が設定された複数の項目についての項目の優先度などを決定すると、決定された事項を優先度データ13に設定する。 After determining the priority order of messages and terminals 2, the transmission order policy regarding message reception status, the priority of items for multiple items to which priorities are set, etc., the control unit 22 assigns the determined items to priority. Set to data 13.
 通信部23は、各端末2に複数のメッセージのそれぞれを送信する各送信タスクを生成する。メッセージの送信先は、端末データ11により特定される。送信するメッセージの内容は、メッセージデータ12から特定される。各送信タスクが生成されると通信部23は、制御部22が決定した優先度データ13の順序に従って、各送信タスクの実行順序をソートして、タスクプール14に設定する。 The communication unit 23 generates each sending task to send each of the plurality of messages to each terminal 2. The destination of the message is specified by the terminal data 11. The content of the message to be transmitted is specified from the message data 12. When each transmission task is generated, the communication unit 23 sorts the execution order of each transmission task according to the order of priority data 13 determined by the control unit 22, and sets it in the task pool 14.
 通信部23は、タスクプール14に設定されたタスクを先頭から、具体的には、制御部22によって決定されたメッセージの順序で、各端末2に送信する各送信タスクを実行する。例えば、第1の端末2aに第1のメッセージと第2のメッセージを送信する各送信タスクがある場合、図2の優先度データ13に設定されたメッセージの優先度に従って、通信部23は、第1のメッセージを第1の端末2aに送信する送信タスクおよび第2のメッセージを第1の端末2aに送信する送信タスクの順で、各タスクを実行する。 The communication unit 23 executes each transmission task to transmit the tasks set in the task pool 14 to each terminal 2 from the beginning, specifically in the order of messages determined by the control unit 22. For example, if the first terminal 2a has each sending task to send a first message and a second message, the communication unit 23 sends the first message to the first terminal 2a according to the message priority set in the priority data 13 of FIG. Each task is executed in the order of a sending task for sending a first message to the first terminal 2a and a sending task for sending a second message to the first terminal 2a.
 通信部23は、さらに、優先度データ13で設定された端末2の順序に従って、各端末にメッセージを送信する各送信タスクを、制御部22によって決定された端末2の順序で実行する。例えば、第1のメッセージを第1の端末2a、第2の端末2bおよび第3の端末2cのそれぞれに送信する各送信タスクがある場合、図2の優先度データ13に設定された端末2の優先度に従って、通信部23は、第1のメッセージを第1の端末2aに送信する送信タスク、第1のメッセージを第2の端末2bに送信する送信タスク、および第1のメッセージを第3の端末2cに送信する送信タスクの順で、各タスクを実行する。 The communication unit 23 further executes each sending task for transmitting a message to each terminal in the order of the terminals 2 determined by the control unit 22 according to the order of the terminals 2 set in the priority data 13. For example, if there is a sending task that sends a first message to each of the first terminal 2a, the second terminal 2b, and the third terminal 2c, the priority data of the terminal 2 set in the priority data 13 in FIG. According to the priority, the communication unit 23 sends a sending task to send the first message to the first terminal 2a, a sending task to send the first message to the second terminal 2b, and a sending task to send the first message to the third terminal 2b. Each task is executed in the order of the sending task to be sent to the terminal 2c.
 また優先データ13で、端末2の優先度よりもメッセージの優先度が優先される場合、通信部23は、第1のメッセージを第1の端末2aに送信する送信タスク、第1のメッセージを第2の端末2bに送信する送信タスク、第1のメッセージを第3の端末2cに送信する送信タスク、第2のメッセージを第1の端末2aに送信する送信タスク、第2のメッセージを第2の端末2bに送信する送信タスクおよび第2のメッセージを第3の端末2cに送信する送信タスクの順で、各タスクを実行する。 Further, in the priority data 13, if the priority of the message is given priority over the priority of the terminal 2, the communication unit 23 performs a transmission task of transmitting the first message to the first terminal 2a, and a transmission task of transmitting the first message to the first terminal 2a. A sending task sends the first message to the second terminal 2b, a sending task sends the first message to the third terminal 2c, a sending task sends the second message to the first terminal 2a, and a sending task sends the second message to the second terminal 2c. Each task is executed in the order of the sending task to send to the terminal 2b and the sending task to send the second message to the third terminal 2c.
 なお本発明の実施の形態において、タスクプール14が1つの場合を説明するが、タスクプール14は複数存在しても良い。またタスクを実行するスレッドが1つの場合を説明するが、通信部23は、2以上のスレッドを使って、複数のタスクを同時に実行しても良い。 Note that in the embodiment of the present invention, a case will be described in which there is one task pool 14, but a plurality of task pools 14 may exist. Furthermore, although a case will be described in which there is one thread that executes a task, the communication unit 23 may use two or more threads to simultaneously execute a plurality of tasks.
 通信部23は、到達保証機能を実現するために、各送信タスクに対応する各確認タスクを生成する。具体的には通信部23は、各端末2に複数のメッセージのそれぞれの受信を確認する各確認タスクを生成する。通信部23は、ある送信タスクを実行した直後に、その送信タスクと送信先およびメッセージが同じ確認タスクを実行する。 The communication unit 23 generates each confirmation task corresponding to each transmission task in order to realize the arrival guarantee function. Specifically, the communication unit 23 generates each confirmation task for each terminal 2 to confirm the reception of each of the plurality of messages. Immediately after executing a certain sending task, the communication unit 23 executes a confirmation task having the same destination and message as the sending task.
 例えば図3に示すタスクプール14に示すように、第1のメッセージを第1の端末2aに送信する送信タスクのすぐ次に、第1の端末2aにおける第1のメッセージの受信を確認する確認タスクが続く。これらのタスクは、連続して実行される。宛先と対象となるメッセージが一致する送信タスクと確認タスクを連続することにより、待ち時間による遅延が発生することなく、その宛先およびメッセージに関する一連の通信を完了することができる。 For example, as shown in the task pool 14 shown in FIG. 3, immediately after the sending task that sends the first message to the first terminal 2a, there is a confirmation task that confirms the reception of the first message at the first terminal 2a. continues. These tasks are executed sequentially. By sequentially performing a sending task and a confirmation task in which the destination and the target message match, a series of communications regarding the destination and message can be completed without delay due to waiting time.
 通信部23は、送信タスクおよび確認タスクの実行状況およびその結果に応じて、状態データ15に反映する。通信部23は、送信タスクの実行前のメッセージおよび端末2について、図4の状態データ15の状態を「未送信」に変更する。通信部23は、送信タスクの実行後で、確認タスクによって受信状況が確認できていないメッセージおよび端末2について、状態を「送信済」に変更する。通信部23は、確認タスクによって受信状況が確認できたメッセージおよび端末2について、状態を「受信済」に変更する。通信部23は、確認タスクによって受信状況が確認できていないメッセージおよび端末2について、状態を「未受信」に変更する。なお、ここに挙げる状態は一例であってこれに限るものではない。 The communication unit 23 reflects the execution status and results of the transmission task and confirmation task in the status data 15. The communication unit 23 changes the status of the status data 15 in FIG. 4 to "unsent" for the message and the terminal 2 before the transmission task is executed. After executing the sending task, the communication unit 23 changes the status of messages and terminals 2 whose reception status has not been confirmed by the confirmation task to "sent". The communication unit 23 changes the status of the message and the terminal 2 whose reception status has been confirmed by the confirmation task to "received". The communication unit 23 changes the status of messages and terminals 2 whose reception status cannot be confirmed by the confirmation task to "not received". Note that the conditions listed here are just examples and are not limited to these.
 通信部23は、確認タスクにおいて、あるメッセージがある端末2で受信されていないことを確認すると、その端末2にそのメッセージを送信する送信タスクと、その端末2にそのメッセージが受信されたことを確認する確認タスクを生成する。通信部23は、例えば、状態データ15において状態に「未送信」が設定された端末2およびメッセージについて、送信タスクと確認タスクを生成する。通信部23は、新たに生成した各タスクをタスクプール14に挿入し、優先度データ13でソートする。このとき、タスクプール14において、新たに生成した送信タスクの直後に確認タスクが位置する。通信部23は、タスクプール14に設定されたタスクを先頭から実行する。 When the communication unit 23 confirms in the confirmation task that a certain message has not been received by a certain terminal 2, it executes a sending task to send the message to that terminal 2 and a sending task to confirm that the message has been received by that terminal 2. Generate a confirmation task to confirm. For example, the communication unit 23 generates a sending task and a confirmation task for the terminal 2 and message whose status is set to “unsent” in the status data 15. The communication unit 23 inserts each newly generated task into the task pool 14 and sorts it by priority data 13. At this time, in the task pool 14, the confirmation task is located immediately after the newly generated transmission task. The communication unit 23 executes the tasks set in the task pool 14 from the beginning.
 ある端末2宛にメッセージの送信タスクと確認タスクしたものの、メッセージの受信が確認できない場合がある。この場合において、メッセージの受信が確認できない端末2宛にメッセージを再送する送信タスクの実行を優先するか、メッセージの受信が確認できた端末2宛に次のメッセージを送信する送信タスクの実行を優先するかが問題になる。本発明の実施の形態は、優先度データ13に、ポリシーとして「1つのメッセージについて各端末2が受信した後に、次のメッセージを送信する」または「1つのメッセージについて受信した端末2に、次のメッセージを送信する」が設定される。 Although a message transmission task and a confirmation task are performed to a certain terminal 2, there are cases where the reception of the message cannot be confirmed. In this case, give priority to executing the sending task that resends the message to terminal 2 for which reception of the message cannot be confirmed, or give priority to executing the sending task that sends the next message to terminal 2 for which reception of the message has been confirmed. The question is whether to do so. In the embodiment of the present invention, the priority data 13 includes a policy of "send the next message after each terminal 2 receives one message" or "send the next message to the terminal 2 that received one message". "Send message" is set.
 まず、「1つのメッセージについて各端末2が受信した後に、次のメッセージを送信する」ポリシーについて説明する。第1のメッセージを送信する後に、第2のメッセージを送信する場合、通信部23は、各端末2について、第1のメッセージを送信する各送信タスクと第1のメッセージの受信を確認する各確認タスクを実行する。各確認タスクにおいて第1のメッセージの受信が確認された後、すなわち、全ての端末2において第1のメッセージが受信された後に、通信部23は、各端末について、第2のメッセージを送信する各送信タスクと第2のメッセージの受信を確認する各確認タスクを実行する。このポリシーにおいて通信部23は、第1のメッセージについて、すべての端末2において受信が確認された後に、第2のメッセージを各端末2に送信する。 First, the policy of "sending the next message after each terminal 2 receives one message" will be explained. When transmitting a second message after transmitting the first message, the communication unit 23 performs, for each terminal 2, each transmission task to transmit the first message and each confirmation to confirm reception of the first message. perform tasks; After the reception of the first message is confirmed in each confirmation task, that is, after all the terminals 2 have received the first message, the communication unit 23 sends a second message to each terminal for each terminal. Execute a sending task and each confirmation task that confirms receipt of the second message. In this policy, the communication unit 23 transmits the second message to each terminal 2 after receipt of the first message is confirmed at all terminals 2 .
 このポリシーに従ってタスクを実行する場合、各端末2における各メッセージの受信状況は同一となる。受信確認の取りづらい端末2がある場合、遅延が生じる場合も考えられる。一時的に、第1のメッセージを受信した端末2と第1のメッセージを受信していない端末2が混在するタイミング、あるいは第1のメッセージを受信した端末2と第2のメッセージを受信した端末2が混在するタイミングなどが存在する。しかしながら各端末2が受信するメッセージは、ほぼ同一となるので、受信状態を同期することができる。例えば、第1のメッセージを受信した端末2と第2のメッセージを受信した端末2が混在するタイミングにおいて、全ての端末2は第1のメッセージを受信済である。 When a task is executed according to this policy, the reception status of each message at each terminal 2 will be the same. If there is a terminal 2 for which it is difficult to confirm reception, a delay may occur. Temporarily, there is a timing when the terminal 2 that has received the first message and the terminal 2 that has not received the first message coexist, or the terminal 2 that has received the first message and the terminal 2 that has received the second message. There are times when the two are mixed. However, since the messages received by each terminal 2 are almost the same, the reception status can be synchronized. For example, at a timing when terminals 2 that have received the first message and terminals 2 that have received the second message coexist, all the terminals 2 have already received the first message.
 次に、「1つのメッセージについて受信した端末2に、次のメッセージを送信する」ポリシーについて説明する。第1のメッセージを送信する後に、第2のメッセージを送信する場合、通信部23は、各端末2について、第1のメッセージを送信する各送信タスクと第1のメッセージの受信を確認する各確認タスクを実行した後、確認タスクにおいて第1のメッセージの受信が確認された各端末について、第2のメッセージを送信する各送信タスクと第2のメッセージの受信を確認する各受信タスクを実行する。このポリシーにおいて通信部23は、第1のメッセージについて、受信確認が取れ次第、その受信確認が取れた端末2に対して第2のメッセージを送信する。 Next, the policy of "sending the next message to the terminal 2 that received one message" will be explained. When transmitting a second message after transmitting the first message, the communication unit 23 performs, for each terminal 2, each transmission task to transmit the first message and each confirmation to confirm reception of the first message. After executing the tasks, each sending task for sending a second message and each receiving task for confirming reception of the second message are executed for each terminal whose reception of the first message was confirmed in the confirmation task. In this policy, as soon as the communication unit 23 receives confirmation of receipt of the first message, it transmits the second message to the terminal 2 for which reception confirmation has been obtained.
 このポリシーに従ってタスクを実行する場合、各端末2における各メッセージの受信状況は異なる場合が発生する。例えば、第1のメッセージを受信できていない端末2と、第3のメッセージを受信した端末2が混在するタイミングなどが存在する。しかしながら、受信確認の取りづらい端末2がある場合でも、受信確認の取れる端末2に新たなメッセージを送信する。一部の端末2において遅延が生じるものの、その他の端末2において、遅延が生じにくいと考えられる。また各端末2は、処理装置1が送信したメッセージの順序で、各メッセージを受信することができる。 When a task is executed according to this policy, the reception status of each message at each terminal 2 may be different. For example, there are times when terminals 2 that have not received the first message and terminals 2 that have received the third message coexist. However, even if there is a terminal 2 whose reception is difficult to confirm, a new message is sent to the terminal 2 whose reception can be confirmed. Although delays occur in some terminals 2, it is considered that delays are unlikely to occur in other terminals 2. Further, each terminal 2 can receive each message in the order in which the processing device 1 transmits the messages.
 図5を参照して、本発明の実施の形態に係る通信部23による通信処理を説明する。図5に示す処理の内容および処理の順序は一例であって、これに限るものではない。 With reference to FIG. 5, communication processing by the communication unit 23 according to the embodiment of the present invention will be described. The contents of the process and the order of the process shown in FIG. 5 are merely examples, and the present invention is not limited thereto.
 通信部23は、ステップS101において、イベントの発生を待機する。ここでイベントは、新規メッセージの発生、あるいは、タスクを実行可能なタイミングの到来である。なお図5のフローチャートにおいて、新規メッセージの発生、あるいは、タスクを実行可能なタイミングの到来をトリガーとして処理する場合を説明するが、これに限らない。例えば、通信部23は、タスクを逐次実行し、新規メッセージの発生を割り込み処理として実行しても良い。 The communication unit 23 waits for an event to occur in step S101. Here, the event is the generation of a new message or the arrival of a timing at which a task can be executed. Note that in the flowchart of FIG. 5, a case will be described in which processing is performed using the generation of a new message or the arrival of a timing at which a task can be executed as a trigger, but the present invention is not limited to this. For example, the communication unit 23 may execute tasks sequentially, and execute generation of a new message as an interrupt process.
 新規メッセージが発生すると、ステップS102において通信部23は、その新規メッセージを送信するための各端末2宛の送信タスクと、新規メッセージの受信を確認する各端末2宛の確認タスクを生成する。通信部23は、生成したタスクを、タスクプール14に挿入する。ステップS103において通信部23は、タスクプール14の各タスクを、優先度データ13が指定する優先度に従ってソートする。通信部23は、ステップS101に戻って、イベントの発生を待機する。 When a new message is generated, in step S102, the communication unit 23 generates a transmission task addressed to each terminal 2 to transmit the new message, and a confirmation task addressed to each terminal 2 to confirm reception of the new message. The communication unit 23 inserts the generated task into the task pool 14. In step S103, the communication unit 23 sorts each task in the task pool 14 according to the priority specified by the priority data 13. The communication unit 23 returns to step S101 and waits for an event to occur.
 タスクを実行可能なタイミングが到来すると、通信部23は、タスクプール14の先頭のタスクを実行する。先頭のタスクが送信タスクの場合、ステップS105において通信部23は、タスクプール14の先頭の送信タスクを実行して、タスクプール14から実行済のタスクを削除する。ステップS106において通信部23は、実行した送信タスクのメッセージおよび端末2について、状態データ15の「状態」を「送信済」に更新する。通信部23は、ステップS101に戻って、イベントの発生を待機する。 When the timing at which a task can be executed arrives, the communication unit 23 executes the first task in the task pool 14. If the first task is a sending task, the communication unit 23 executes the first sending task in the task pool 14 and deletes the executed task from the task pool 14 in step S105. In step S106, the communication unit 23 updates the "state" of the status data 15 to "sent" for the message of the executed sending task and the terminal 2. The communication unit 23 returns to step S101 and waits for an event to occur.
 先頭のタスクが確認タスクの場合、ステップS107において通信部23は、タスクプール14の先頭の確認タスクを実行して、タスクプール14から実行済のタスクを削除する。ステップS108において確認タスクによる確認結果によって処理を振り分ける。確認タスクによってメッセージが受信済であることが確認できた場合、ステップS106において通信部23は、実行した確認タスクのメッセージおよび端末2について、状態データ15の「状態」を「受信済」に更新する。通信部23は、ステップS101に戻って、イベントの発生を待機する。 If the first task is a confirmation task, the communication unit 23 executes the first confirmation task in the task pool 14 and deletes the executed task from the task pool 14 in step S107. In step S108, processing is distributed according to the confirmation result of the confirmation task. If it is confirmed by the confirmation task that the message has been received, in step S106, the communication unit 23 updates the "status" of the status data 15 to "received" for the message of the executed confirmation task and the terminal 2. . The communication unit 23 returns to step S101 and waits for an event to occur.
 確認タスクによってメッセージが未受信であることが確認できた場合、ステップS109において通信部23は、実行した確認タスクのメッセージおよび端末2について、状態データ15の「状態」を「未受信」に更新する。さらに通信部23は、実行した確認タスクで特定される端末2およびメッセージについて、再送用の送信タスクと確認タスクを生成してタスクプール14に挿入する。ステップS103において通信部23は、タスクプール14の各タスクを、優先度データ13が指定する優先度に従ってソートする。通信部23は、ステップS101に戻って、イベントの発生を待機する。 If it is confirmed by the confirmation task that the message has not been received, in step S109, the communication unit 23 updates the "state" of the status data 15 to "not received" for the message of the executed confirmation task and the terminal 2. . Further, the communication unit 23 generates a transmission task for retransmission and a confirmation task for the terminal 2 and message specified by the executed confirmation task, and inserts them into the task pool 14. In step S103, the communication unit 23 sorts each task in the task pool 14 according to the priority specified by the priority data 13. The communication unit 23 returns to step S101 and waits for an event to occur.
 このような本発明の実施の形態に係る処理装置1が、複数の端末2に対してメッセージを送信するので、1つの端末に対してメッセージを送信する1つのモジュールを設ける場合と比べて、効率的にメッセージを送信することができる。また処理装置1は、メッセージの属性、端末2の状態および受信状況などに応じて、メッセージの送信順序などを調整することが可能である。送信するメッセージの数、および送信先の端末2の数が増えた場合でも、処理装置1は、効率的にメッセージを送信することができる。 Since the processing device 1 according to the embodiment of the present invention sends messages to a plurality of terminals 2, it is more efficient than when one module is provided to send messages to one terminal. You can send messages directly. Furthermore, the processing device 1 can adjust the message transmission order, etc., depending on the message attributes, the status of the terminal 2, the reception status, and the like. Even when the number of messages to be transmitted and the number of destination terminals 2 increase, the processing device 1 can efficiently transmit messages.
 処理装置1は、スマートシティまたはスマートファクトリーなどの、ネットワーク状況が異なる、あるいは各端末の処理が異なるなどにより、複数の端末に同時に送信したメッセージの受信状況が、端末によって異なる場合に好適である。処理装置1は、各端末2の受信状況を考慮しながらメッセージを送信することができるので、メッセージの受信状況を同期することもできる。 The processing device 1 is suitable for a smart city or a smart factory where the reception status of messages sent simultaneously to multiple terminals differs depending on the terminal due to different network conditions or different processing at each terminal. Since the processing device 1 can transmit messages while considering the reception status of each terminal 2, it is also possible to synchronize the message reception status.
 上記説明した本実施形態の処理装置1は、例えば、CPU(Central Processing Unit、プロセッサ)901と、メモリ902と、ストレージ903(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置904と、入力装置905と、出力装置906とを備える汎用的なコンピュータシステムが用いられる。このコンピュータシステムにおいて、CPU901がメモリ902上にロードされたプログラムを実行することにより、処理装置1の各機能が実現される。 The processing device 1 of the present embodiment described above includes, for example, a CPU (Central Processing Unit, processor) 901, a memory 902, a storage 903 (HDD: Hard Disk Drive, SSD: Solid State Drive), and a communication device 904. , a general-purpose computer system including an input device 905 and an output device 906 is used. In this computer system, each function of the processing device 1 is realized by the CPU 901 executing a program loaded onto the memory 902.
 なお、処理装置1は、1つのコンピュータで実装されてもよく、あるいは複数のコンピュータで実装されても良い。また処理装置1は、コンピュータに実装される仮想マシンであっても良い。 Note that the processing device 1 may be implemented by one computer or by multiple computers. Further, the processing device 1 may be a virtual machine implemented in a computer.
 処理装置1のプログラムは、HDD、SSD、USB(Universal Serial Bus)メモリ、CD (Compact Disc)、DVD (Digital Versatile Disc)などのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。コンピュータ読取り可能な記録媒体は、例えば非一時的な(non-transitory)記録媒体である。 The program of the processing unit 1 can be stored in a computer-readable recording medium such as an HDD, SSD, USB (Universal Serial Bus) memory, CD (Compact Disc), or DVD (Digital Versatile Disc), or can be distributed via a network. You can also. The computer-readable recording medium is, for example, a non-transitory recording medium.
 なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。 Note that the present invention is not limited to the above-described embodiments, and many modifications can be made within the scope of the invention.
 1 処理装置
 2 端末
 5 通信システム
 11 端末データ
 12 メッセージデータ
 13 優先度データ
 14 タスクプール
 15 状態データ
 21 管理部
 22 制御部
 23 通信部
 901 CPU
 902 メモリ
 903 ストレージ
 904 通信装置
 905 入力装置
 906 出力装置
1 Processing device 2 Terminal 5 Communication system 11 Terminal data 12 Message data 13 Priority data 14 Task pool 15 Status data 21 Management unit 22 Control unit 23 Communication unit 901 CPU
902 Memory 903 Storage 904 Communication device 905 Input device 906 Output device

Claims (7)

  1.  各端末に送信する複数のメッセージの順序を決定する制御部と、
     各端末に複数のメッセージのそれぞれを送信する各送信タスクを生成し、決定されたメッセージの順序で、各端末に送信する各送信タスクを実行する通信部
     を備える処理装置。
    a control unit that determines the order of multiple messages to be sent to each terminal;
    A processing device comprising: a communication unit that generates each sending task to send each of a plurality of messages to each terminal, and executes each sending task to send each message to each terminal in the determined message order.
  2.  前記通信部は、各端末に複数のメッセージのそれぞれの受信を確認する各確認タスクを生成し、ある送信タスクを実行した直後に、前記送信タスクと送信先およびメッセージが同じ確認タスクを実行する
     請求項1に記載の処理装置。
    The communication unit generates each confirmation task for confirming reception of each of the plurality of messages in each terminal, and immediately after executing a certain sending task, executes a confirmation task having the same destination and message as the sending task.Claim. Item 1. The processing device according to item 1.
  3.  第1のメッセージを送信する後に、第2のメッセージを送信する場合、
     前記通信部は、各端末について、前記第1のメッセージを送信する各送信タスクと前記第1のメッセージの受信を確認する各確認タスクを実行し、前記各確認タスクにおいて前記第1のメッセージの受信が確認された後、各端末について、前記第2のメッセージを送信する各送信タスクと前記第2のメッセージの受信を確認する各確認タスクを実行する
     請求項1に記載の処理装置。
    When sending a second message after sending the first message,
    The communication unit executes, for each terminal, each transmission task of transmitting the first message and each confirmation task of confirming reception of the first message, and in each of the confirmation tasks, the reception of the first message is performed. 2. The processing device according to claim 1, wherein the processing device executes, for each terminal, a transmission task for transmitting the second message and a confirmation task for confirming reception of the second message for each terminal.
  4.  第1のメッセージを送信する後に、第2のメッセージを送信する場合、
     前記通信部は、各端末について、前記第1のメッセージを送信する各送信タスクと前記第1のメッセージの受信を確認する各確認タスクを実行した後、前記確認タスクにおいて前記第1のメッセージの受信が確認された各端末について、前記第2のメッセージを送信する各送信タスクと前記第2のメッセージの受信を確認する各受信タスクを実行する
     請求項1に記載の処理装置。
    When sending a second message after sending the first message,
    The communication unit executes, for each terminal, each transmission task for transmitting the first message and each confirmation task for confirming reception of the first message, and then performs reception of the first message in the confirmation task. The processing device according to claim 1, wherein for each terminal for which the second message is confirmed, a sending task for sending the second message and a receiving task for confirming reception of the second message are executed.
  5.  前記制御部はさらに、前記メッセージを送信する端末の順序を決定し、
     前記通信部はさらに、各端末に前記メッセージを送信する各送信タスクを、決定された端末の順序で実行する
     請求項1に記載の処理装置。
    The control unit further determines the order of terminals that transmit the messages,
    The processing device according to claim 1, wherein the communication unit further executes each sending task of sending the message to each terminal in the determined order of the terminals.
  6.  コンピュータが、各端末に送信する複数のメッセージの順序を決定し、
     前記コンピュータが、各端末に複数のメッセージのそれぞれを送信する各送信タスクを生成し、決定されたメッセージの順序で、各端末に送信する各送信タスクを実行する
     処理方法。
    The computer determines the order of multiple messages to send to each terminal,
    A processing method, wherein the computer generates each sending task for sending each of a plurality of messages to each terminal, and executes each sending task for sending each message to each terminal in the determined message order.
  7.  コンピュータを、請求項1ないし請求項5のいずれか1項に記載の処理装置として機能させるためのプログラム。 A program for causing a computer to function as the processing device according to any one of claims 1 to 5.
PCT/JP2022/033389 2022-09-06 2022-09-06 Processing device, processing method, and program WO2024052981A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/033389 WO2024052981A1 (en) 2022-09-06 2022-09-06 Processing device, processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/033389 WO2024052981A1 (en) 2022-09-06 2022-09-06 Processing device, processing method, and program

Publications (1)

Publication Number Publication Date
WO2024052981A1 true WO2024052981A1 (en) 2024-03-14

Family

ID=90192316

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/033389 WO2024052981A1 (en) 2022-09-06 2022-09-06 Processing device, processing method, and program

Country Status (1)

Country Link
WO (1) WO2024052981A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140243035A1 (en) * 2013-02-22 2014-08-28 Samsung Electronics Co., Ltd. Communication group generation method and apparatus
JP2019213043A (en) * 2018-06-05 2019-12-12 ボッシュ株式会社 On-vehicle gateway device, method, and program
JP2020126483A (en) * 2019-02-05 2020-08-20 Kddi株式会社 Control apparatus, information processing apparatus, computer program, and information processing method
CN111787058A (en) * 2020-05-26 2020-10-16 北京航空航天大学 Lightweight information subscription and push method in cross-domain virtual data space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140243035A1 (en) * 2013-02-22 2014-08-28 Samsung Electronics Co., Ltd. Communication group generation method and apparatus
JP2019213043A (en) * 2018-06-05 2019-12-12 ボッシュ株式会社 On-vehicle gateway device, method, and program
JP2020126483A (en) * 2019-02-05 2020-08-20 Kddi株式会社 Control apparatus, information processing apparatus, computer program, and information processing method
CN111787058A (en) * 2020-05-26 2020-10-16 北京航空航天大学 Lightweight information subscription and push method in cross-domain virtual data space

Similar Documents

Publication Publication Date Title
US10341196B2 (en) Reliably updating a messaging system
US7529855B2 (en) Dynamic modification of fragmentation size cluster communication parameter in clustered computer system
US8954504B2 (en) Managing a message subscription in a publish/subscribe messaging system
CN110297801B (en) System and method for just-in-one transaction semantics of transaction system based on fault-tolerant FPGA
US8516054B2 (en) Message handling
CN109714409B (en) Message management method and system
US6757843B1 (en) Method and apparatus for using ranking to select repair nodes in formation of a dynamic tree for multicast repair
MXPA04002731A (en) Message delivery with configurable assurances and features between two endpoints.
EP1729465A2 (en) Distributed kernel operating system
JP2008033952A (en) Most eligible server in common work queue environment
CN112118315A (en) Data processing system, method, device, electronic equipment and storage medium
CN111427711A (en) Message pushing method based on RabbitMQ
CN104579905A (en) Message passing method and system, MOM (message oriented middleware) server and receiving terminal
US9967360B2 (en) Method and system for information exchange utilizing an asynchronous persistent store protocol
CN112988428A (en) Distributed message asynchronous notification middleware implementation method and system
US7548972B2 (en) Method and apparatus for providing likely updates to views of group members in unstable group communication systems
US11582320B2 (en) Message transmitting and receiving method, communication apparatus, and program
US20190379758A1 (en) Multicasting method in distributed cache environment, and distributed cache server using the same
WO2024052981A1 (en) Processing device, processing method, and program
CN109905459B (en) Data transmission method and device
JP4415391B2 (en) Method and apparatus for transmitting data to a network and method and apparatus for receiving data from a network
CN111611068B (en) Data writing method in distributed system, server and client
JP2002169738A (en) File distributing method
CN112188411B (en) Multi-split system based on wireless Mesh network and data transmission method
KR102367017B1 (en) Communication network system and control method thereof