Network control system and program
Patent Information
- Application Number
- PCT/JP2024/009530
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-05
- Filing Date
- 2024-03-12
- Publication Date
- 2025-10-02
AI Technical Summary
Existing real-time network communication systems face challenges in maintaining service quality due to experience separation issues in distributed processing types, where discrepancies in packet arrival times and orders lead to inconsistent user experiences, and high server costs and resource utilization inefficiencies in centralized systems.
A server-oriented/client-oriented hybrid real-time network system is implemented, where a server assigns sequence numbers to events based on reception timing and transmits them in batches, while clients process events in ascending order, with mechanisms for detecting and correcting reception errors.
This approach ensures consistent user experiences across multiple clients by synchronizing event processing and maintaining service quality, reducing server load, and optimizing resource utilization.
Smart Images

Figure JP2024009530_02102025_PF_FP_ABST
Abstract
Description
Network control system and program
[0001] The present invention relates to a network control system and a program.
[0002] In recent years, with the remarkable progress of network communications, it is expected that network communications will be able to accommodate a wide variety of uses and purposes in many fields. In the following, "network communications" refers to all communications technologies for exchanging data via the Internet.
[0003] In network communications, multicast is a technology that enables the bulk transmission of data (see, for example, Patent Document 1). Using multicast makes it possible to simultaneously transmit data to a large number of clients at the cost of a single transmission process. However, while multicast is currently available in local area networks, communications over the Internet require the use of a multicast-compatible Internet Service Provider (ISP) and also require multicast-compatible router equipment, making it difficult to select and use as a commonly used technology, even though it exists as a standard. For this reason, a network cache technology known as a Content Delivery Network (CDN) is currently being used as an alternative network technology.
[0004] Network communications include unicast communications, which are one-to-one communications, multicast communications, which are one-to-many communications, and broadcast communications. However, as mentioned above, it is not realistic to use multicast communications via the Internet, and broadcast communications is also a technology intended for communications within the same local area network that does not involve the Internet.
[0005] In a network service that provides information processing via the Internet, the system is composed of a client, which is the communication device on the user side of the network service, and a server, which is the communication device on the provider side of the network service. To distinguish it from real-time network communication, which will be described later, this will be referred to as "general network communication" (non-real-time network communication). "General network communication" (non-real-time network communication) refers to, for example, HTTP (Hypertext Transfer Protocol) communication. HTTP communication here refers to HTTP / 1.0, HTTP / 1.1, HTTP / 2, HTTP / 3, and their data exchange procedures, related protocols, and derived protocols.
[0006] In general network communications, in order to reduce the frequency of communications and improve efficiency, data compression is often used to reduce the size of communication data, and data accumulation is often used to reduce the number of communications by accumulating a certain amount of data before transmitting it. By using such technologies, the efficiency of communication data size per communication is improved, and communication costs are reduced. Specifically, communication efficiency algorithms such as the Nagle algorithm are mainly used.
[0007] Furthermore, the above-mentioned data compression and data accumulation are both performed in the "communication gap" created by reducing communication frequency. However, on the other hand, if communication frequency increases, the gap decreases, and these efficiency-enhancing processes are performed during the time that should be spent on actual data communication processing, which can actually cause delays. For this reason, it is recommended to keep communication frequency to a minimum in general network communications. Furthermore, general network communications are characterized by being better suited to one-to-one individual communications than one-to-many bulk distribution.
[0008] Stream network communication refers to communication protocols used for video and audio distribution, such as the Real Time Streaming Protocol (RTSP) and the Real Time Messaging Protocol (RTMP). Stream network communication distributes continuous data at high volumes and frequencies to many users. Furthermore, to withstand large-scale viewing, stream network communication tolerates delay variations among viewers. For example, in a live broadcast, when a video of an event is distributed, it is rare for the event to be distributed to all viewers at exactly the same time. Furthermore, because stream network communication is inherently designed to tolerate delays, it is also characterized by its ease of use in improving communication efficiency through communication data compression and data storage technologies using network caches such as CDNs. Examples of protocols used include TCP, UDP, TLS, DTLS, and QUIC, as well as their data exchange procedures, related protocols, and derived protocols. To increase responsiveness, low-layer protocols with relatively little modification tend to be adopted.
[0009] Real-time network communication refers to network communication in which participants exchange large amounts of data at very high frequency. This type of communication is often used in systems that allow participants to converse with each other, such as video conferencing systems, or systems that share a space in VR or games, allowing for highly responsive communication. Real-time network communication requires highly responsive communication, so delays are unacceptable.
[0010] In general network communications, it is possible to frequently use data compression and data accumulation to improve efficiency in exchange for reducing communication frequency. The Nagle algorithm is a transmission technology that improves data transmission efficiency by packing all data into the data area that can be loaded into a packet and then transmitting the packet. In today's "general network communications," for example, it is common to use compression technology using the Nagle algorithm in combination with data accumulation technology. In other words, considering the transmission cost incurred for transmitting one packet, packing as much data as possible into the packet reduces transmission costs per transmitted amount, resulting in an increase in the net total amount of transmittable data. On the other hand, due to the characteristics of the Nagle algorithm, using the Nagle algorithm sacrifices responsiveness and tolerates delays, but instead improves the reliability of communication data delivery per communication and the efficiency of communication data size. In contrast, real-time network communications are characterized by extremely high communication frequency and very little communication gaps. Therefore, it is difficult to use bulk transmission or compression techniques that rely on data accumulation because they cause delays, and in real-time network communications, the Nagle algorithm is often disabled.
[0011] When sending the same data multiple times, using bulk transmission is less likely to cause delays. For example, within a real-time network service, when client terminal A sends data, the data sent from client terminal A is distributed to all client terminals A to N. In other words, because data is distributed to all clients in bulk without any computational processing such as identifying the destination, data can be distributed to many clients more quickly. Therefore, this method is an efficient method in cases where a client's location or status needs to be synchronized with other clients in real time. Furthermore, using this mechanism, all clients can constantly exchange information on each other's latest status and maintain a synchronized state.
[0012] Additionally, within a real-time network service, when a client sends data, the data is distributed to a specific client. In other words, data that needs to be sent only to specific clients uses individual network communication rather than bulk network communication. Unlike bulk network communication for state synchronization, the purpose of individual network distribution is often to process data linked to the actions of specific clients. For the sending client, complex destination designs for two or three clients rather than just one client should be avoided as much as possible, as this leads to a decrease in overall transmission efficiency. Even in cases like the one above, it is often the case that the entire series of operations is implemented using "bulk network communication."
[0013] In individual network delivery, a method of sending different data to each user requires calculations to be performed depending on the destination at the time of transmission, which can easily cause delays, especially in real-time network communications, and therefore cannot be used too frequently. Also, in real-time network communications, there is a limit to the number of events that can be issued per unit of time. Both individual network communications and bulk network communications consume these precious event counts. Therefore, using "individual network communications" too frequently reduces the amount of data that can be sent through "bulk network communications." Furthermore, complex destination designs also create delays due to calculations, leading to a decrease in overall transmission efficiency. For these reasons, the heavy use of individual network communications is being avoided, and bulk network communications is being used whenever possible.
[0014] For these reasons, data is often sent in a broadcast format to all participants in real-time network communication. For example, network devices such as switching hubs use the same concept, and in principle, all communication is sent in bulk to speed up network communication. Specifically, in the case of a switching hub, the machine that receives data from the switching hub will discard data that is not addressed to it. Therefore, bulk transmission is one of the mechanisms that ensures the responsiveness of real-time network communication.
[0015] Furthermore, in stream network communications, all that is required is normal video and audio delivery, so as long as there are no problems with continuous data reception, delays in the start time of transmission itself are not a problem, as mentioned above. For this reason, stream network communications facilitates streamlining by compressing data and accumulating data for bulk transmission. In contrast, in real-time network communications, if there are delays in the start time of data reception for each user, it becomes difficult to communicate normally when communication requiring immediate response occurs. For this reason, real-time network communications do not tolerate delays in continuous data reception, nor delays in the start time of data transmission itself.
[0016] While real-time network communication is a highly anticipated technology, there are many cases where companies use technologies that are clearly not responsive, and as a result, they use them in exaggerated advertising as "real-time network communication" for the sake of their sales strategies. Furthermore, the exact interpretation of the term varies widely among organizations and individuals, making it difficult to use the term in patent documents, which require accuracy. Therefore, for the sake of convenience, "real-time network communication" will be used hereafter to refer to network communication that meets the following criteria: - Network communication in which the Nagle algorithm or equivalent technology is "disabled." As long as these criteria are met, we will refer to it as "real-time network communication" regardless of the protocol or method.
[0017] For the sake of convenience, in contrast to "real-time network communication," "non-real-time network communication" hereafter will refer to network communication that satisfies the following: Network communication that "enables" the Nagle algorithm or equivalent technology. As long as this is met, it will be referred to as "non-real-time network communication" hereafter, regardless of the protocol or method.
[0018] Japanese Patent Application Laid-Open No. 2005-169138
[0019] Real-time messages used in the above-mentioned real-time network services can be categorized into event messages corresponding to "actions" and "results." Hereinafter, event messages corresponding to "actions" will be referred to as "action events," and event messages corresponding to "results" will be referred to as "result events." Hereinafter, "action events" are events that notify each client's action, and are often designed so that all clients can fire them freely and at their own discretion. Furthermore, "result events" are events that calculate and notify the results of each client's action, and are fired by the client with decision-making power regarding the results. Hereinafter, the entity with decision-making power regarding the results will be referred to as the "host." Each client fires and sends action events at its own discretion, and the "host" client calculates and determines the results based on the action, fires result events, and distributes them to all clients.
[0020] Based on the above, two typical design principles for real-time network services are the "centralized" and "distributed processing" types. In the centralized type, as shown in Figure 24, all decision-making authority as a host is assigned to a single client. In other words, because centralized management is possible, it is the least likely to cause inconsistencies. However, because all host processing is handled in one place, it is prone to high processing loads on the host. Figure 24 is a conceptual diagram; strictly speaking, communication between clients may be via a relay server or proxy server. The client (host) shown in Figure 24 is in a dominant position in the network because it can independently initiate actions and results. Incidentally, a method in which the client functions are removed from the client (host) and a server that only initiates decision events is called the "dedicated server" method.
[0021] As shown in Figure 25, the distributed processing type is a method in which host decision-making authority is distributed and assigned to each client on a behavioral event basis. This method is characterized by the fact that host processing is distributed and executed by each client, which makes it easier to distribute the load, increases responsiveness, and is likely to improve performance. However, since centralized management is not possible, it tends to be prone to "inconsistencies." Figure 25 is a conceptual diagram, and strictly speaking, communication between clients may be via a relay server or proxy server. In addition, a centralized system may be used only for the aggregation of overall results, and in reality, these design methods are often mixed. This type of mixed design method will be referred to as a "distributed hybrid type" hereinafter.
[0022] As shown in Figure 26, 1) When the result event "reset the score of client A's avatar to 0" is fired, the result event "client A's avatar leaves" can be fired. 2) When the result event "client A's avatar leaves" is fired, the result event "client B's avatar enters room X" can be fired. In the case of specifications like these, a result event that has a dependency that is essential for the establishment of a result event that occurs later will be referred to as a "critical event" hereinafter. In the example of Figure 26, the result event "reset the score of client A's avatar to 0" is a "critical event."
[0023] Here, there are fundamental principles for sending packets, which are the units of data transmission when communicating over the Internet: there is no guarantee of arrival timing, no guarantee of arrival order, and no guarantee of arrival route.
[0024] Taking the above into consideration, when the host configuration is designed as a distributed or distributed hybrid type, the experiences of each client (user) in the virtual space may be completely different. This will be referred to as the "experience separation problem" hereafter.
[0025] The "experience separation problem" only occurs when a decentralized or distributed hybrid system is adopted, and in principle does not occur when only a centralized system is adopted. We will omit the detailed mechanism, but in principle, the experience separation problem cannot be solved simply by changing the location or design of the host. Even if there is no response such as "invalidating attacks from clients with a score of zero," the problem will occur in a different form, and even if "the attacked party fires a result event," the problem will occur in a different form.
[0026] In other words, when a distributed processing type is adopted, it is difficult to identify the part of the communication that has failed, such as whether the transmission failed or whether the destination simply could not respond, and to take measures to resolve the problem. In addition, because important host processing is left to the client (user device), there is an issue of not being able to control stable service quality.
[0027] Furthermore, as mentioned above, even though the "experience separation problem" would not occur if the host were a server and a dedicated server approach was used, the distributed hybrid model is still widely adopted due to the following issues: 1) Almost all processing is done on the server side, so client-side resources are not utilized. 2) If processing is done on the client side, the cost is borne by the user, but if processing is done on the server side, the cost is borne by the service provider. 3) Since the majority of processing for all connected clients is borne on the server side, server costs tend to be high.
[0028] Therefore, the present invention has been made in consideration of the above-mentioned problems, and aims to provide a network control system and program that maintains and improves service quality by making the network a server-oriented / client-oriented hybrid real-time network and dividing the processing related to network communications between the server acting as a host and the client.
[0029] Mode 1: One or more embodiments of the present invention propose a network control system in a server-oriented / client-oriented hybrid real-time network, comprising: a plurality of client terminals; a server-oriented / client-oriented hybrid real-time network to which the plurality of client terminals are connected; and a server that controls data communication with the plurality of client terminals in the server-oriented / client-oriented hybrid real-time network, wherein the server comprises a server-side receiving unit that receives events from the plurality of client terminals, a server-side assigning unit that assigns server-side sequence numbers to the received events in accordance with the reception timing of the received events, and a server-side transmitting unit that collectively transmits at least the events to which the server-side sequence numbers have been assigned to the plurality of client terminals, and wherein the plurality of client terminals comprise a client-side transmitting unit that transmits events to the server, a client-side receiving unit that receives the events to which the server-side sequence numbers have been assigned from the server, and a processing unit that processes the received events in ascending order according to the assigned server-side sequence numbers.
[0030] Form 2: One or more embodiments of the present invention propose a network control system characterized in that the plurality of client terminals are equipped with at least a client-side assigning unit that assigns a client-side sequence number to the event at the timing of the event, and at least a client-side transmitting unit that transmits the event to which the client-side sequence number has been assigned to the server.
[0031] Mode 3: In one or more embodiments of the present invention, the plurality of client terminals comprise a generation unit that generates equal interval notification events in which a service tick time is set during a period in which the event does not occur, and a client-side reception error detection unit that determines whether the event received from the client-side reception unit has been lost; the server comprises a server-side reception unit that receives events from the plurality of client terminals, a server-side assignment unit that assigns a server-side sequence number to the event in accordance with the reception timing of the received event, and a server-side transmission unit that collectively transmits at least the events assigned the server-side sequence number to the plurality of client terminals; The present invention proposes a network control system characterized in that a client-side assigning unit assigns a client-side sequence number to a normal event or the generated equal-interval notification event, the client-side transmitting unit transmits the equal-interval notification event to which the client-side sequence number has been assigned to the server even in a section in which no normal event or event to which the client-side sequence number has been assigned has occurred, and the reception error detecting unit determines whether the event has been lost based on the missing status of the client-side sequence number, based on the events and equal-interval notification events from the multiple client terminals received by the client-side receiving unit.
[0032] Form 4: One or more embodiments of the present invention propose a network control system in which the plurality of client terminals are provided with a client-side reception error detection unit that detects reception errors in the client-side reception unit, and a display unit that displays information including image information, and when the client-side reception error detection unit detects a reception error including a missing server-side sequence number, the client-side transmission unit sends a retransmission request to the server, and the display unit displays information that visually indicates that the reception error has occurred and that processing for normal resumption is being performed.
[0033] Form 5: One or more embodiments of the present invention propose a network control system, wherein the plurality of client terminals are provided with a reception error detection unit that determines and detects the loss of the events based on the loss status of the client-side sequence numbers based on the events and the equal interval notification events from the plurality of client terminals received by the client-side receiving unit, a first display information generation unit that generates display information, and a display unit that displays information including image information, wherein when the client-side reception error detection unit detects the reception error including a state in which the loss of the client-side sequence numbers continues, the first display information generation unit generates display information indicating that the client terminal is in an unoperated state or display information indicating that a communication error is continuing, and the display unit of the client terminal displays display information indicating that the client terminal is in an unoperated state or display information indicating that a communication error is continuing.
[0034] Form 6: One or more embodiments of the present invention propose a network control system, wherein the plurality of client terminals are provided with a reception error detection unit that determines and detects the loss of the events based on the loss status of client-side sequence numbers based on the events and the equal interval notification events from the plurality of client terminals received by the client-side reception unit, a second display information generation unit that generates display information, and a display unit that displays information including image information, wherein when the client-side reception error detection unit detects a reception error including a state in which part of the client-side sequence number is lost, the client-side reception error detection unit causes the plurality of client terminals to generate the display information generated by the second display information generation unit that indicates the cause that led to the partial loss of the client-side sequence number, and the display unit of the client terminal displays the display information that indicates the cause that led to the partial loss of the client-side sequence number.
[0035] Form 7: One or more embodiments of the present invention propose a network control system characterized in that the server includes a memory unit that stores the server-side sequence number sent by the server-side transmission unit and the event to which the sequence number is assigned, and a verification unit that verifies the cause of the reception error based on the server-side sequence number stored in the memory unit.
[0036] Mode 8: One or more embodiments of the present invention are a network control system in a server-oriented / client-oriented hybrid real-time network, comprising: a plurality of client terminals; a server-oriented / client-oriented hybrid real-time network to which the plurality of client terminals are connected; and a server that controls data communication with the plurality of client terminals in the server-oriented / client-oriented hybrid real-time network, wherein the server includes a server-side receiving unit that receives events from the plurality of client terminals; a server-side assigning unit that assigns server-side sequence numbers to the events in accordance with the reception timing of the received events; and a server-side assigning unit that assigns the events to which the server-side sequence numbers are assigned to the plurality of client terminals. and a server-side sending unit that sends events to a plurality of client terminals in a batch, wherein the plurality of client terminals each have a client-side receiving unit that receives events to which the server-side sequence numbers have been assigned from the server, and a processing unit that processes the received events in ascending order according to the assigned server-side sequence numbers, and the server-side assigning unit of the server and the processing units of the plurality of client terminals are configured to operate at least when the server-side receiving unit receives information about a new client from the new client terminal as an initial synchronization request in an initial synchronization step when the new client terminal connects to the server-oriented / client-oriented hybrid real-time network.
[0037] Form 9: One or more embodiments of the present invention propose a program for causing a computer to execute a control method in a network control system including a plurality of client terminals, a server-oriented / client-oriented hybrid real-time network, and a server, the program causing a computer to execute the following steps: a server-side receiving step in which the server receives events from the plurality of client terminals; a server-side assigning step in which the server assigns server-side sequence numbers to the received events according to the reception timing of the events; a server-side sending step in which the server collectively transmits the events assigned the server-side sequence numbers to the plurality of client terminals; a client-side receiving step in which the plurality of client terminals receive the events assigned the server-side sequence numbers from the server; and a processing step in which the plurality of client terminals process the received events in ascending order according to the assigned server-side sequence numbers.
[0038] Form 10: One or more embodiments of the present invention propose a program comprising: a client-side assigning step in which the plurality of client terminals assigns at least a client-side sequence number to the event at the timing of the event; and a client-side sending step in which the plurality of client terminals send the event to which the client-side sequence number has been assigned to the server.
[0039] Form 11: One or more embodiments of the present invention propose a program for causing a computer to execute a control method in a network control system including a plurality of client terminals, a server-oriented / client-oriented hybrid real-time network, and a server, the program comprising: a server-side receiving step in which the server receives events from the plurality of client terminals; a server-side assigning step in which the server assigns server-side sequence numbers to the received events according to the reception timing of the events; a server-side transmitting step in which the server collectively transmits the events assigned the server-side sequence numbers to the plurality of client terminals; a client-side receiving step in which the plurality of client terminals receive the events assigned the server-side sequence numbers from the server; and a processing step in which the plurality of client terminals process the received events in ascending order according to the assigned server-side sequence numbers, wherein the server-side assigning step and the processing step are activated at least when information about a new client is received from the new client terminal as an initial synchronization request in an initial synchronization step when a new client terminal connects to the server-oriented / client-oriented hybrid real-time network in the server-side receiving step.
[0040] According to one or more embodiments of the present invention, the network is configured as a server-oriented / client-oriented hybrid real-time network, and processing related to network communications is shared and executed between the server as a host and the client, thereby achieving the effect of maintaining and improving service quality.
[0041] FIG. 1 is a diagram showing the configuration of a network control system according to a first embodiment of the present invention. FIG. 2 is a diagram showing the configuration of a server according to the first embodiment of the present invention. FIG. 3 is a diagram showing the configuration of a client terminal according to the first embodiment of the present invention. FIG. 4 is a conceptual diagram of processing in the network control system according to the first embodiment of the present invention. FIG. 5 is a diagram showing the processing flow of the network control system according to the first embodiment of the present invention. FIG. 6 is a diagram showing the configuration of a network control system according to a second embodiment of the present invention. FIG. 7 is a diagram showing the configuration of a server according to the second embodiment of the present invention. FIG. 8 is a diagram showing the configuration of a client terminal according to the second embodiment of the present invention. FIG. 9 is a conceptual diagram of processing in the network control system according to the second embodiment of the present invention. FIG. 10 is a diagram showing the processing flow of the network control system according to the second embodiment of the present invention. FIG. 11 is a diagram showing the configuration of a network control system according to a third embodiment of the present invention. FIG. 12 is a diagram showing the configuration of a client terminal according to the third embodiment of the present invention. FIG. 13 is a diagram showing an example of display on a display unit of a client terminal according to the third embodiment of the present invention. FIG. 14 is a diagram showing the processing flow of the network control system according to the third embodiment of the present invention. FIG. 15 is a diagram showing the configuration of a server according to the fourth embodiment of the present invention. FIG. 16 is a diagram showing the configuration of a client terminal according to the fourth embodiment of the present invention. FIG. 17 is a diagram showing an example of display on a display unit of a client terminal according to the fourth embodiment of the present invention. FIG. 18 is a diagram showing the processing flow of the network control system according to the fourth embodiment of the present invention. It is a figure which shows the processing flow of the network control system based on 5th embodiment of this invention. It is a figure which shows the structure of the centralized real-time network. It is a figure which shows the structure of the distributed hybrid real-time network. It is a conceptual diagram of the critical event.
[0042] The network control system according to this embodiment will be described with reference to FIGS. 1 to 23. FIG.
[0043] First Embodiment A network control system 1 according to this embodiment will be described with reference to FIGS. 1 to 5. FIG.
[0044] 1, the network control system 1 according to this embodiment is configured to include a server 100, a client terminal 200, and a server-oriented / client-oriented hybrid real-time network 300. In this embodiment, the client terminals A to N will be collectively referred to as 200 in the following description.
[0045] The server 100 serves as a host in the server-oriented / client-oriented hybrid real-time network 300, and receives events from a plurality of client terminals 200 (described later), as shown in FIG. 4A, for example. The server 100 assigns a server-side sequence number to the received event according to the timing of the event reception. Furthermore, as shown in FIG. 4B, the server 100 transmits the events assigned with the server-side sequence number to a plurality of client terminals 200 in a batch via the server-oriented / client-oriented hybrid real-time network 300. The configuration of the server 100 will be described in detail later.
[0046] The client terminal 200 is a terminal owned by a client that is already connected to the server-oriented / client-oriented hybrid real-time network 300, and may be a personal computer, tablet, smartphone, or the like. The client terminal 200 receives, for example, an event to which a server-side sequence number has been assigned from the server 100, and executes processing, for example, in ascending order, according to the server-side sequence number assigned to the received event. The configuration of the client terminal 200 will be described in detail later.
[0047] The server-oriented / client-oriented hybrid real-time network 300 is a network in which large amounts of data are exchanged between clients at very high frequency. Hereinafter, the server-oriented / client-oriented hybrid real-time network 300 refers to a network that does not tolerate delays and can achieve high responsiveness (hard real-time network).
[0048] <Configuration of Server 100> As shown in FIG. 2, the server 100 includes a server-side receiving unit 110, a server-side adding unit 120, a server-side transmitting unit 130, and a server-side control unit 140.
[0049] The server-side receiving unit 110 receives events, for example, from a plurality of client terminals 200. For example, the server-side receiving unit 110 receives events from the client terminals 200 connected to the server-oriented / client-oriented hybrid real-time network 300 via the server-oriented / client-oriented hybrid real-time network 300. The events received by the server-side receiving unit 110 are output to the server-side control unit 140, which will be described later.
[0050] Server-side assigning unit 120 assigns a server-side sequence number to an event, for example, in accordance with the reception timing of the event received by server-side receiving unit 110. Specifically, for example, server-side control unit 140 manages the reception timing, and server-side assigning unit 120 sequentially assigns server-side sequence numbers to events output from server-side control unit 140, for example, in ascending order, and outputs the events to which server-side sequence numbers have been assigned to server-side control unit 140.
[0051] The server-side transmitting unit 130 transmits, in bulk, at least events assigned with server-side sequence numbers output from the server-side control unit 140 (described later) to multiple client terminals 200 via the server-oriented / client-oriented hybrid real-time network 300.
[0052] The server-side control unit 140 controls the overall operation of the server 100 in accordance with a control program stored in a ROM (Read Only Memory) or the like. Specifically, the server-side control unit 140 executes reception control of the server-side receiving unit 110, transmission control of the server-side transmitting unit 130, writing and reading of events assigned with server-side sequence numbers to a storage unit (not shown), assignment processing control for the server-side assigning unit 120, and the like.
[0053] <Configuration of Client Terminal 200> As shown in FIG. 3, the client terminal 200 includes a client-side transmitting unit 210, a client-side receiving unit 220, a client-side processing unit 230, and a client-side control unit 240.
[0054] The client-side transmitting unit 210 transmits the event to the server 100. The client-side transmitting unit 210 transmits the event to the server 100 connected to the server-oriented / client-oriented hybrid real-time network 300, for example, via the server-oriented / client-oriented hybrid real-time network 300.
[0055] The client-side receiving unit 220 receives, for example, an event assigned a server-side sequence number from the server 100. The client-side receiving unit 220 receives, for example, an event assigned a server-side sequence number from the server 100 connected to the server-oriented / client-oriented hybrid real-time network 300 via the server-oriented / client-oriented hybrid real-time network 300. The event assigned a server-side sequence number received by the client-side receiving unit 220 is output to the client-side control unit 240, which will be described later.
[0056] The client-side processing unit 230 processes events received by the client-side receiving unit 220 in ascending order according to the server-side sequence numbers assigned to the events. Specifically, the client-side processing unit 230 processes events in the order of the events assigned server-side sequence numbers output from the client-side control unit 240 (described later).
[0057] The client-side control unit 240 controls the overall operation of the client terminal 200 in accordance with a control program stored in a ROM (Read Only Memory) or the like. Specifically, the client-side control unit 240 executes transmission control of the client-side transmitting unit 210, reception control of the client-side receiving unit 220, writing and reading events assigned with server-side sequence numbers to a storage unit (not shown), processing control for the client-side processing unit 230, etc.
[0058] <Processing of Network Control System 1> Processing of the network control system 1 according to this embodiment will be described with reference to FIG.
[0059] The client-side transmitting unit 210 transmits the event to the server 100 (step S110).
[0060] The server-side receiving unit 110 receives events from the multiple client terminals 200 (step S120). The events received by the server-side receiving unit 110 are output to the server-side control unit 140.
[0061] Server-side assigning unit 120 assigns a server-side sequence number to the event in accordance with the reception timing of the event received by server-side receiving unit 110 (step S130). The event to which the server-side sequence number has been assigned by server-side assigning unit 120 is output to server-side control unit 140.
[0062] The server-side transmitting unit 130 transmits the events, each assigned with a server-side sequence number output from the server-side control unit 140, to multiple client terminals 200 in a batch via the server-oriented / client-oriented hybrid real-time network 300 (step S140).
[0063] The client-side receiving unit 220 receives the event with the server-side sequence number assigned from the server 100 (step S150). The event with the server-side sequence number assigned and received by the client-side receiving unit 220 is output to the server-side control unit 140.
[0064] The client-side processing unit 230 processes the events received by the client-side receiving unit 220 in ascending order according to the assigned server-side sequence numbers (step S160).
[0065] <Actions and Effects> As described above, the network control system 1 according to this embodiment is a network control system in a server-oriented / client-oriented hybrid real-time network, and includes a plurality of client terminals 200, a server-oriented / client-oriented hybrid real-time network 300 to which the plurality of client terminals 200 are connected, and a server 100 that controls information communication with the plurality of client terminals 200 in the server-oriented / client-oriented hybrid real-time network. The server 100 includes a server-side receiving unit 110 that receives events from the plurality of client terminals 200, a server-side assigning unit 120 that assigns server-side sequence numbers to the received events in accordance with the reception timing of the events, and a server-side transmitting unit 130 that collectively transmits the events to the plurality of client terminals 200. The plurality of client terminals 200 include a client-side transmitting unit 210 that transmits events to the server, a client-side receiving unit 220 that receives events to which server-side sequence numbers have been assigned from the server 100, and a client-side processing unit 230 that processes the received events in ascending order according to the assigned server-side sequence numbers. That is, the server 100 receives events from multiple client terminals 200, assigns server-side sequence numbers to the events according to the timing of reception of the received events, and then transmits the events with the server-side sequence numbers to multiple client terminals 200 in a batch via the server-oriented / client-oriented hybrid real-time network 300. For example, the client terminal 200 receives events with server-side sequence numbers from the server 100, and processes the received events in ascending order according to the assigned server-side sequence numbers. This makes it possible to execute the same event on all clients.Therefore, by configuring the network as a server-oriented / client-oriented hybrid real-time network, and by dividing and executing processing related to network communications between the server as the host and the clients, even if there is a discrepancy in the order in which packets arrive at multiple client terminals 200, it becomes possible to reproduce the same order of event experiences on each of the multiple client terminals 200, thereby maintaining and improving service quality.
[0066] <Variation 1> A plurality of client terminals 200 may be provided with at least a client-side assigning unit that assigns a client-side sequence number to an event at the timing of the event, and a client-side transmitting unit 210 that transmits the event, to which the client-side sequence number has been assigned, to the server. With this configuration, even if a discrepancy occurs in the order in which packets arrive when the client-side transmitting unit 210 transmits the event to the server 100, it becomes possible to detect lost events and the amount of lost events by checking the loss status of the client-side sequence numbers using the assigned client-side sequence numbers, thereby further maintaining and improving service quality.
[0067] Second Embodiment A network control system 1A according to this embodiment will be described with reference to FIGS. 6 to 10. FIG.
[0068] <About the Network Control System 1A> As shown in Fig. 6, the network control system 1A according to this embodiment is configured to include a server 100A, a client terminal 200A, and a server-oriented / client-oriented hybrid real-time network 300. In this embodiment, the client terminals A to N will be collectively referred to as 200A. Furthermore, components with the same reference numerals as those in the first embodiment have similar functions, and therefore detailed descriptions thereof will be omitted.
[0069] The server 100A serves as a host in the server-oriented / client-oriented hybrid real-time network 300, and receives events from, for example, multiple client terminals 200A (described later). The server 100A then assigns a server-side sequence number to the received event according to the timing of the event reception. The server 100A then collectively transmits the events, to which the server-side sequence number has been assigned, to multiple client terminals 200A via the server-oriented / client-oriented hybrid real-time network 300. The configuration of the server 100A will be described in detail later.
[0070] For example, the client terminal 200A generates an equal interval notification event in which a service tick time is set during a period in which no event is occurring, assigns a client-side sequence number to the generated equal interval notification event, and transmits the equal interval notification event to the server 100A during a period in which no event is occurring. The configuration of the client terminal 200A will be described in detail later.
[0071] 7, the server 100 includes a server-side receiving unit 110A, a server-side assigning unit 120A, a server-side transmitting unit 130A, and a server-side control unit 140A. Note that components with the same reference numerals as those in the first embodiment have similar functions, and therefore detailed descriptions thereof will be omitted.
[0072] The server-side receiving unit 110A receives events from a plurality of client terminals 200A and equal interval notification events (beacons) generated by a generating unit of the client terminal 200A, which will be described later.
[0073] The server-side assigning unit 120A assigns server-side sequence numbers to events and equal-interval notification events in accordance with the reception timing of the events received by the server-side receiving unit 110A.
[0074] For example, as shown in FIG. 9B, the server-side transmitting section 130A collectively distributes events and equal-interval notification events to which client-side sequence numbers and server-side sequence numbers are assigned to a plurality of client terminals 200A.
[0075] The server-side control unit 140A controls the overall operation of the server 100A in accordance with a control program stored in a ROM (Read Only Memory), etc. Specifically, the server-side control unit 140A executes reception control of the server-side receiving unit 110A, transmission control of the server-side transmitting unit 130A, writing and reading of events assigned with server-side sequence numbers to a storage unit (not shown), and assignment processing control for the server-side assigning unit 120A.
[0076] 8, the client terminal 200A is configured to include a client-side transmitting unit 210A, a client-side receiving unit 220, a client-side processing unit 230, a client-side control unit 240A, a client-side adding unit 250, a generating unit 260, and a client-side reception error detecting unit 270. Note that components with the same reference numerals as those in the first embodiment have similar functions, and therefore detailed descriptions thereof will be omitted.
[0077] For example, as shown in Figure 9 (A), the client-side transmitting unit 210A transmits to the server 100A equal-interval notification events that are generated by the generating unit described below and are assigned client-side sequence numbers in sections where events assigned client-side sequence numbers and events are not occurring.
[0078] At the timing of an event, the client-side assigning unit 250 assigns a client-side sequence number to the event and to the equal-interval notification event generated by the generating unit (described later). The data in which the client-side sequence numbers have been assigned to the event and the equal-interval notification event by the client-side assigning unit 250 is output to the client-side control unit 240A (described later).
[0079] The generating unit 260 generates an equal interval notification event in which a service tick time is set in a section where no event occurs. The equal interval notification event generated by the generating unit 260 is output to the client-side control unit 240A.
[0080] The client-side reception error detection unit 270 detects the loss of an event received from the client-side reception unit 220. Specifically, the client-side reception error detection unit 270 determines the loss of an event based on the missing status of the client-side sequence number, based on the events and equal interval notification events from the multiple client terminals 200A received by the client-side reception unit 220.
[0081] The client-side control unit 240A controls the overall operation of the client terminal 200A in accordance with a control program stored in a ROM (Read Only Memory), etc. Specifically, the client-side control unit 240A executes transmission processing for the client-side transmission unit 210A, reception control for the client-side reception unit 220, writing and reading events assigned with server-side sequence numbers to a storage unit (not shown), processing control for the client-side processing unit 230, assignment processing for the client-side assignment unit 250, generation processing for the generation unit 260, etc.
[0082] <Processing of Network Control System 1A> Processing of the network control system 1A according to this embodiment will be described with reference to FIG.
[0083] The client-side assigning unit 250 assigns at least a client-side sequence number to the event at the timing of the event (step S210). The event to which the client-side sequence number has been assigned by the client-side assigning unit 250 is output to the client-side control unit 240A.
[0084] The generation unit 260 generates an equal interval notification event in which a service tick time is set during a period in which no event occurs (step S220). The equal interval notification event generated by the generation unit 260 is output to the client-side control unit 240A.
[0085] The client-side transmitting section 210A transmits to the server 100A an event to which a client-side sequence number has been assigned and an equal-interval notification event to which a client-side sequence number has been assigned in a section in which no event has occurred (step S230).
[0086] Server-side receiving unit 110A receives events with client-side sequence numbers and equal-interval notification events from multiple client terminals 200A (step S110A). The events with client-side sequence numbers and equal-interval notification events received by server-side receiving unit 110 are output to server-side control unit 140A.
[0087] Server-side assigning unit 120 assigns server-side sequence numbers to the events and the equally-interval-notification events to which client-side sequence numbers have been assigned in accordance with the reception timing of the events received by server-side receiving unit 110A (step S120A). Server-side assigning unit 120 outputs the events and the equally-interval-notification events to which client-side sequence numbers and server-side sequence numbers have been assigned to server-side control unit 140A.
[0088] The server-side transmitting unit 130 transmits the client-side sequence numbers, events assigned with server-side sequence numbers, and regular interval notification events output from the server-side control unit 140A to multiple client terminals 200A via the server-oriented / client-oriented hybrid real-time network 300 in a batch (step S130A).
[0089] The client-side receiving unit 220 receives events and equal-interval notification events assigned with client-side sequence numbers and server-side sequence numbers from the server 100A (step S140A). The client-side reception error detecting unit 270 determines whether an event has been lost based on the missing client-side sequence numbers, based on the events and equal-interval notification events from the multiple client terminals 200A received by the client-side receiving unit 220. The events and equal-interval notification events assigned with client-side sequence numbers and server-side sequence numbers received by the client-side receiving unit 220 are output to the client-side control unit 240A.
[0090] The client-side processing unit 230 processes the events received by the client-side receiving unit 220 in ascending order according to the assigned server-side sequence numbers (step S150).
[0091] <Operations and Effects> As described above, the plurality of client terminals 200A of the network control system 1A according to this embodiment include a generation unit 260 that generates equal interval notification events in which a service tick time is set during a period in which no event is occurring, and a client-side reception error detection unit 270 that determines whether an event received from the client-side reception unit 220 has been lost. The server 100A includes a server-side reception unit 110A that receives events from the plurality of client terminals 200A, a server-side assignment unit 120A that assigns a server-side sequence number to the event according to the reception timing of the received event, and a server-side assignment unit 120B that sends at least the events assigned with the server-side sequence number to the plurality of client terminals 200A. The system includes a server-side transmitter 130A that transmits event packets to the server 110A in a batch mode, in which the client-side assigner 250 assigns client-side sequence numbers to normal events or the generated regular interval notification events, and the client-side transmitter 210A transmits regular events assigned client-side sequence numbers or regular interval notification events assigned client-side sequence numbers to the server even in sections where no events are occurring. The client-side reception error detector 270 determines whether an event packet has been lost based on the events and regular interval notification events from multiple client terminals 200A received by the client-side receiver 220 and the status of missing client-side sequence numbers. Therefore, the client-side reception error detector 270 of the client terminal 200A can determine whether an event packet has been lost by checking whether a client-side sequence number has been missing. Furthermore, by shortening the service tick time for regular interval notification events sent from the client-side transmitter 210A to the server-side receiver 110A in sections where no events are occurring, the number of regular interval notification events in sections where no events are occurring increases, thereby speeding up the speed of determining whether an event packet has been lost.Therefore, by configuring the network as a server-oriented / client-oriented hybrid real-time network and dividing the network communication processing between the server as the host and the client, service quality can be maintained and improved even if there is a discrepancy in the order in which packets arrive at multiple client terminals 200A or packet loss occurs.
[0092] Third Embodiment A network control system 1B according to this embodiment will be described with reference to FIGS.
[0093] <Regarding Network Control System 1B> As shown in Fig. 11, the network control system 1B according to this embodiment is configured to include a server 100, a client terminal 200B, and a server-oriented / client-oriented hybrid real-time network 300. In this embodiment, the client terminals A to N will be collectively referred to as 200B. Furthermore, components with the same reference numerals as those in the first and second embodiments have similar functions, and therefore detailed descriptions thereof will be omitted.
[0094] For example, when client terminal 200B detects a reception error including a missing server-side sequence number, it sends a retransmission request to server 100 and displays information that visually indicates that a reception error has occurred and that processing for normal resumption is being performed. The configuration of client terminal 200B will be described in detail later.
[0095] 12, the client terminal 200B is configured to include a client-side transmitting unit 210B, a client-side receiving unit 220, a client-side processing unit 230, a client-side control unit 240B, a client-side reception error detecting unit 270, and a display unit 280. Note that components with the same reference numerals as those in the first and second embodiments have similar functions, and therefore detailed descriptions thereof will be omitted.
[0096] The client-side transmitting section 210B transmits a retransmission request to the server 100 under the control of the client-side control section 240B, which will be described later.
[0097] The display unit 280 displays information including image information, for example, image information generated by a client-side control unit 240B, which will be described later.
[0098] The client-side control unit 240B controls the overall operation of the client terminal 200B in accordance with a control program stored in a ROM (Read Only Memory) or the like. Specifically, the client-side control unit 240B executes transmission processing for the client-side transmission unit 210B, reception control for the client-side reception unit 220, writing and reading events assigned with server-side sequence numbers to a storage unit (not shown), processing control for the client-side processing unit 230, reception error detection processing for the client-side reception error detection unit 270, and image information display processing on the display unit 280. In this embodiment, for example, when the client-side reception error detection unit 270 detects a reception error including a missing server-side sequence number, the client-side control unit 240B causes the client-side transmission unit 210B to send a retransmission request to the server 100 and displays information on the display unit 280 that visually indicates that a reception error has occurred and that processing for normal resumption is being performed. Here, an example of the display of information that visually indicates that a reception error has occurred and that processing for normal resumption is being performed is an image such as that shown in FIG. 13.
[0099] <Processing of Network Control System 1B> Processing of the network control system 1B according to this embodiment will be described with reference to FIG.
[0100] The client-side transmitting unit 210 transmits the event to the server 100 (step S110).
[0101] The server-side receiving unit 110 receives events from the multiple client terminals 200B (step S120). The events received by the server-side receiving unit 110 are output to the server-side control unit 140.
[0102] Server-side assigning unit 120 assigns a server-side sequence number to the event in accordance with the reception timing of the event received by server-side receiving unit 110 (step S130). The event to which the server-side sequence number has been assigned by server-side assigning unit 120 is output to server-side control unit 140.
[0103] The server-side transmitting unit 130 transmits the events, each assigned with a server-side sequence number output from the server-side control unit 140, to multiple client terminals 200B in a batch via the server-oriented / client-oriented hybrid real-time network 300 (step S140).
[0104] The client-side receiving section 220 receives the event with the server-side sequence number from the server 100 (step S150).
[0105] The client-side reception error detection section 270 detects a reception error in the client-side reception section 220 (step S310).
[0106] When the client-side receiving error detection unit 270 detects a receiving error including a missing server-side sequence number, the client-side control unit 240B causes the client-side sending unit 210B to send a retransmission request to the server 100, and also causes the display unit 280 to display information that visually indicates that a receiving error has occurred and that processing for normal resumption is being performed (step S320).
[0107] <Operations and Effects> As described above, the multiple client terminals 200B of the network control system 1B according to this embodiment include a client-side reception error detection unit 270 that detects reception errors in the client-side reception unit 220 and a display unit 280 that displays information including image information. When the client-side reception error detection unit 270 detects a reception error including a missing server-side sequence number, the client-side transmission unit 210B transmits a retransmission request to the server 100 and displays information on the display unit 280 that visually indicates that a reception error has occurred and that processing for normal resumption is being performed. Therefore, the client can visually recognize that the client terminal 200B is currently performing processing. Therefore, by configuring the network as a server-oriented / client-oriented hybrid real-time network and dividing the processing related to network communication between the server as a host and the client, service quality can be maintained and improved even if there is a discrepancy in the order in which packets arrive at the multiple client terminals 200 or packet loss occurs.
[0108] Fourth Embodiment A network control system 1C according to this embodiment will be described with reference to FIGS. 15 to 19. FIG.
[0109] <Regarding Network Control System 1C> As shown in Fig. 15, the network control system 1C according to this embodiment is configured to include a server 100C, a client terminal 200C, and a server-oriented / client-oriented hybrid real-time network 300. In the embodiments including this embodiment, the client terminals A to N will be collectively referred to as 200C in the following description. Furthermore, components that are assigned the same reference numerals as those in the first to third embodiments have similar functions, and therefore detailed description thereof will be omitted.
[0110] When server 100C detects a reception error including a state in which the client side sequence number is continuously lost, server 100C transmits to multiple client terminals 200C display information indicating that the client terminals are in an unoperated state or display information indicating that a communication error is continuing. The configuration of server 100C will be described in detail later.
[0111] For example, the client terminal 200C displays on the display unit 280A display information indicating that the client terminal 200C is in a no-operation state or display information indicating that a communication error has occurred.
[0112] 16, the server 100C is configured to include a server-side receiving unit 110A, a server-side assigning unit 120, a server-side transmitting unit 130B, a server-side control unit 140C, and a first display information generating unit 170. Note that components with the same reference numerals as those in the first to third embodiments have similar functions, and therefore detailed descriptions thereof will be omitted.
[0113] The server-side transmitting unit 130B transmits the display information generated by the first display information generating unit 170 (described later) to the plurality of client terminals 200C.
[0114] The first display information generation unit 170 generates display information. When the server-side control unit 140C, described later, detects a reception error including a state in which the client-side sequence number is continuously lost based on reception error information detected by the server-side reception error detection unit 160, the first display information generation unit 170 generates, for multiple client terminals 200C, display information indicating that the client terminal 200C is in an unoperated state or display information indicating that a communication error is continuing. Examples of the display information generated by the first display information generation unit 170 include the display information shown in FIGS. 18(A) and 18(B). Here, FIG. 18(A) is an example of display information indicating that the client terminal 200C is in an unoperated state, and FIG. 18(B) is an example of display information indicating that a communication error is continuing. The display information generated by the first display information generation unit 170 is output to the server-side control unit 140C.
[0115] The server-side control unit 140C controls the overall operation of the server 100C in accordance with a control program stored in a ROM (Read Only Memory) or the like. Specifically, the server-side control unit 140C executes reception control of the server-side receiving unit 110A, assignment process control for the server-side assigning unit 120, transmission control for the server-side transmitting unit 130B, writing and reading of events assigned with server-side sequence numbers to a storage unit (not shown), and generation process control for the first display information generating unit 170. In this embodiment, for example, when the server-side control unit 140C detects a reception error including a state in which the client-side sequence number is continuously lost, the server-side control unit 140C transmits to multiple client terminals 200C display information indicating that the client terminals are in an unoperated state or display information indicating that a communication error is ongoing.
[0116] 17, the client terminal 200C is configured to include a client-side transmitting unit 210A, a client-side receiving unit 220, a client-side processing unit 230, a client-side control unit 240B, a client-side assigning unit 250, a generating unit 260, a client-side reception error detecting unit 270, and a display unit 280A. Note that components having the same reference numerals as those in the first to third embodiments have similar functions, and therefore detailed descriptions thereof will be omitted.
[0117] The display unit 280A displays information indicating that the client terminal 200C is in a no-operation state or information indicating that a communication error has occurred.
[0118] <Processing of Network Control System 1C> Processing of the network control system 1C according to this embodiment will be described with reference to FIG.
[0119] The client-side assigning unit 250 assigns at least a client-side sequence number to the event at the timing of the event (step S210). The event to which the client-side sequence number has been assigned by the client-side assigning unit 250 is output to the client-side control unit 240B.
[0120] The generation unit 260 generates an equal interval notification event in which a service tick time is set during a period in which no event occurs (step S220). The equal interval notification event generated by the generation unit 260 is output to the client-side control unit 240B.
[0121] The client-side transmitting section 210A transmits to the server 100C an event to which a client-side sequence number has been assigned and an equal-interval notification event to which a client-side sequence number has been assigned in a section in which no event has occurred (step S230).
[0122] The server-side receiving unit 110A receives events with client-side sequence numbers and equal-interval notification events from multiple client terminals 200C (step S110A). The events with client-side sequence numbers and equal-interval notification events received by the server-side receiving unit 110A are output to the server-side control unit 140C.
[0123] The client-side reception error detection unit 270 detects the loss of an event received from the client-side reception unit 220 (step S410).
[0124] When client-side reception error detection section 270 detects a reception error including a state in which the client-side sequence number is continuously lost, client-side control section 240B generates display information indicating that client terminal 200C is in an unoperated state or that a communication error is continuing. Then, display section 280A of client terminal 200C displays the display information indicating that client terminal 200C is in an unoperated state or that a communication error has occurred (step 420).
[0125] <Operations and Effects> As described above, server 100C of network control system 1C according to this embodiment includes server-side reception error detection unit 160 that detects reception errors in server-side reception unit 110A and first display information generation unit 170 that generates display information. Multiple client terminals 200C include display units 280A that display information including image information. When client-side reception error detection unit 270 detects a reception error that includes a continued loss of a client-side sequence number, client-side control unit 240B generates display information indicating that client terminal 200C is in an unoperated state or that a communication error is ongoing. Display unit 280A of client terminal 200C displays display information indicating that client terminal 200C is in an unoperated state or that a communication error is ongoing. Therefore, the client can visually recognize that client terminal 200C is currently in an unoperated state or that a communication error is ongoing. Therefore, by configuring the network as a server-oriented / client-oriented hybrid real-time network and having the server acting as the host and the client share the responsibility for network communication processing, it is possible to maintain and improve service quality even if there is a discrepancy in the order in which packets arrive at multiple client terminals 200C or packet loss.
[0126] Fifth Embodiment A network control system 1D according to this embodiment will be described with reference to FIGS. 20 to 18. FIG.
[0127] <Regarding Network Control System 1D> As shown in Fig. 20, the network control system 1D according to this embodiment is configured to include a server 100D, a client terminal 200D, and a server-oriented / client-oriented hybrid real-time network 300. In the embodiments including this embodiment, the client terminals A to N will be collectively referred to as 200C in the following description. Furthermore, components that are assigned the same reference numerals as those in the first to fourth embodiments have similar functions, and therefore detailed description thereof will be omitted.
[0128] When server 100D detects a reception error that includes a state in which a part of the client-side sequence number is lost, server 100D transmits, to multiple client terminals 200D, display information indicating the cause of the loss of the part of the generated client-side sequence number. The configuration of server 100D will be described in detail later.
[0129] For example, client terminal 200D displays, on display unit 280A, display information indicating the cause of the partial loss of the client-side sequence number.
[0130] 21 , the client terminal 200C is configured to include a client-side transmitting unit 210A, a client-side receiving unit 220, a client-side processing unit 230, a client-side control unit 240B, a client-side providing unit 250, a generating unit 260, a client-side reception error detecting unit 270, a display unit 280A, and a second display information generating unit 290. Note that components having the same reference numerals as those in the first to fourth embodiments have similar functions, and therefore detailed descriptions thereof will be omitted.
[0131] The second display information generation unit 290 generates display information. The second display information generation unit 290 generates display information indicating the cause of the partial loss of the generated client-side sequence number based on reception error information detected by the client-side reception error detection unit 270, which is described later, by the client-side control unit 240B. Examples of the display information generated by the second display information generation unit 290 include the display information shown in FIGS. 22(A) and 22(B). Here, FIG. 22(A) is an example of display information indicating a preparatory movement in a behavioral event, and FIG. 22(B) is an example of display information indicating a failure in transmission of a result event. The display information generated by the second display information generation unit 290 is output to the client-side control unit 240B.
[0132] The client-side control unit 240B controls the overall operation of the client terminal 200D in accordance with a control program stored in a ROM (Read Only Memory) or the like. Specifically, the client-side control unit 240B executes reception control of the client-side receiving unit 220, assignment process control for the client-side assigning unit 250, transmission control for the client-side transmitting unit 210A, writing and reading events assigned with client-side sequence numbers to a storage unit (not shown), detection process control for the client-side reception error detecting unit 270, and generation process control for the second display information generating unit 290. In this embodiment, for example, when the client-side control unit 240B detects a reception error including a state in which a part of the client-side sequence number is lost, the client-side control unit 240B transmits display information indicating the cause of the partial loss of the generated client-side sequence number to the multiple client terminals 200D.
[0133] <Processing of Network Control System 1D> Processing of the network control system 1D according to this embodiment will be described with reference to FIG.
[0134] The client-side assigning unit 250 assigns at least a client-side sequence number to the event at the timing of the event (step S210). The event to which the client-side sequence number has been assigned by the client-side assigning unit 250 is output to the client-side control unit 240B.
[0135] The generation unit 260 generates an equal interval notification event in which a service tick time is set during a period in which no event occurs (step S220). The equal interval notification event generated by the generation unit 260 is output to the client-side control unit 240B.
[0136] The client-side transmitting section 210A transmits to the server 100C an event to which a client-side sequence number has been assigned and an equal-interval notification event to which a client-side sequence number has been assigned in a section in which no event has occurred (step S230).
[0137] The client-side receiving unit 220 receives the events with client-side sequence numbers and the regular interval notification events from the server 100D (step S110A). The events with client-side sequence numbers and the regular interval notification events received by the client-side receiving unit 220 are output to the client-side control unit 240B.
[0138] The client-side reception error detector 270 detects reception errors including partial loss of the client-side sequence number (step S410A). The detection result in the client-side reception error detector 270 is output to the client-side controller 240B.
[0139] When the client-side reception error detection unit 270 detects a reception error that includes the loss of part of the client-side sequence number, the client-side control unit 240B generates display information indicating the cause that led to the loss of part of the generated client-side sequence number (step S420A).
[0140] Display unit 280A of client terminal 200C then displays information indicating the cause of the partial loss of the client side sequence number (step 430A).
[0141] <Operations and Effects> As described above, client terminal 200D of network control system 1D according to this embodiment includes second display information generator 290 that generates display information and display unit 280A that displays information including image information. When client-side reception error detector 270 detects a reception error that results in partial loss of a client-side sequence number, it causes display information indicating the cause of the partial loss of the client-side sequence number generated by second display information generator 290 to be transmitted to multiple client terminals. Display unit 280A of client terminal 200D displays the display information indicating the cause of the partial loss of the client-side sequence number. Therefore, clients can visually recognize the cause of the partial loss of the client-side sequence number from the display information indicating the cause of the partial loss of the client-side sequence number. Therefore, by configuring the network as a server-oriented / client-oriented hybrid real-time network and dividing the network communication processing between the server and the client as hosts, service quality can be maintained and improved even if discrepancies in the order in which packets arrive at multiple client terminals 200C or packet loss occur.
[0142] <Modification 2> Servers 100 to 100D may each include a memory unit that stores the server-side sequence number transmitted by the server-side transmitter, and a verification unit that verifies the cause of a reception error based on the server-side sequence number stored in the memory unit. With this configuration, it is possible to perform a replay verification when a specific client commits fraud or a malfunction occurs.
[0143] <Variation 3> A network control system in a server-oriented / client-oriented hybrid real-time network includes a plurality of client terminals, a server-oriented / client-oriented hybrid real-time network to which the plurality of client terminals are connected, and a server that controls data communication with the plurality of client terminals in the server-oriented / client-oriented hybrid real-time network, wherein the server includes a server-side receiving unit that receives events from the plurality of client terminals, a server-side assigning unit that assigns server-side sequence numbers to the events in accordance with the reception timing of the received events, and a server-side transmitting unit that collectively transmits the events assigned the server-side sequence numbers to the plurality of client terminals, and wherein the plurality of client terminals include a client-side receiving unit that receives events assigned server-side sequence numbers from the server, and a processing unit that processes the received events in ascending order according to the assigned server-side sequence numbers, and the server-side assigning unit of the server and the processing units of the plurality of client terminals may be configured to operate at least when the server-side receiving unit receives information about a new client as an initial synchronization request from the new client terminal in an initial synchronization mode when a new client terminal connects to the real-time network. By adopting such a configuration, it is possible to avoid the initial synchronization load and to make full use of the predetermined network transfer capacity limit.
[0144] The network control systems 1 to 1D of the present invention can be realized by recording the processing of the servers 100 to 100D and the client terminals 200 to 200D on a recording medium that can be read by a computer system, and having the servers 100 to 100D and the client terminals 200 to 200D read and execute the programs recorded on this recording medium. The computer system here includes hardware such as an OS and peripheral devices.
[0145] Furthermore, if the WWW (World Wide Web) system is used, the "computer system" also includes the homepage providing environment (or display environment). The above program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by transmission waves in the transmission medium. Here, the "transmission medium" that transmits the program refers to a medium that has the function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
[0146] The program may also be a program for implementing some of the functions described above, or may be a so-called differential file (differential program) that can implement the functions described above in combination with a program already stored in the computer system.
[0147] The above describes in detail an embodiment of the present invention with reference to the drawings, but the specific configuration is not limited to this embodiment, and includes designs within the scope of the gist of the present invention.
[0148] 1 to 1D; Network control system 100 to 100D; Server 200 to 200D; Client terminal 300; Server-oriented / client-oriented hybrid real-time network
Claims
1. A network control system in a server-oriented / client-oriented hybrid real-time network comprising: a plurality of client terminals; a server-oriented / client-oriented hybrid real-time network to which the plurality of client terminals are connected; and a server that controls data communication with the plurality of client terminals in the server-oriented / client-oriented hybrid real-time network, wherein the server comprises: a server-side receiving unit that receives events from the plurality of client terminals; a server-side assigning unit that assigns server-side sequence numbers to the received events in accordance with the reception timing of the events; and a server-side transmitting unit that collectively transmits at least the events to which the server-side sequence numbers have been assigned to the plurality of client terminals, wherein the plurality of client terminals comprise: a client-side transmitting unit that transmits events to the server; a client-side receiving unit that receives the events to which the server-side sequence numbers have been assigned from the server; and a processing unit that processes the received events in ascending order according to the assigned server-side sequence numbers.
2. The network control system described in claim 1, characterized in that the multiple client terminals are equipped with: a client-side assigning unit that assigns at least a client-side sequence number to the event at the timing of the event; and a client-side transmitting unit that transmits at least the event assigned the client-side sequence number to the server.
3. The network control system according to claim 2, wherein the plurality of client terminals comprise: a generation unit that generates equal interval notification events, each having a service tick time set, during a period in which no event is occurring; and a client-side reception error detection unit that determines whether the event received from the client-side reception unit has been lost; and the server comprises: a server-side reception unit that receives events from the plurality of client terminals; a server-side assignment unit that assigns a server-side sequence number to the event according to the reception timing of the received event; and a server-side transmission unit that transmits at least the events to which the server-side sequence number has been assigned to the plurality of client terminals in a batch; wherein the client-side assignment unit assigns a client-side sequence number to a normal event or the generated equal interval notification event; and the client-side transmission unit transmits the equal interval notification event to which the client-side sequence number has been assigned to the server even during a period in which no normal event or event to which the client-side sequence number has been assigned has occurred; and the reception error detection unit determines whether the event has been lost based on the loss of a client-side sequence number, based on the event and the equal interval notification event from the plurality of client terminals received by the client-side reception unit.
4. The network control system described in claim 1, characterized in that the multiple client terminals are equipped with a client-side reception error detection unit that detects reception errors in the client-side reception unit, and a display unit that displays information including image information, and when the client-side reception error detection unit detects a reception error including a missing server-side sequence number, it causes the client-side transmission unit to send a retransmission request to the server, and causes the display unit to display information that visually indicates that the reception error has occurred and that processing for normal resumption is being performed.
5. The plurality of client terminals include: a reception error detection unit that determines and detects loss of the events based on the events and the regular interval notification events from the plurality of client terminals received by the client side reception unit, according to the loss status of the client side sequence numbers; a first display information generation unit that generates display information; and a display unit that displays information including image information. を備え、 The network control system described in claim 3, characterized in that when the client-side reception error detection unit detects a reception error including a state in which the loss of the client-side sequence number continues, the first display information generation unit generates display information indicating that the client terminal is in an unoperated state or display information indicating that a communication error is continuing, and the display unit of the client terminal displays display information indicating that the client terminal is in an unoperated state or display information indicating that a communication error is continuing.
6. The plurality of client terminals include: a reception error detection unit that determines and detects loss of the events based on the events and the regular interval notification events from the plurality of client terminals received by the client side reception unit, according to the loss status of the client side sequence numbers; a second display information generation unit that generates display information; and a display unit that displays information including image information. を備え、 The network control system of claim 3, wherein when the client-side reception error detection unit detects a reception error that includes a state in which a portion of the client-side sequence number is lost, the client-side reception error detection unit generates, for the plurality of client terminals, the display information that indicates the cause that led to the partial loss of the client-side sequence number generated by the second display information generation unit, and the display unit of the client terminal displays the display information that indicates the cause that led to the partial loss of the client-side sequence number.
7. The network control system described in claim 1, characterized in that the server comprises: a memory unit that stores the server-side sequence number sent by the server-side transmission unit and the event to which the sequence number is assigned; and a verification unit that verifies the cause of a reception error based on the server-side sequence number stored in the memory unit.
8. A network control system in a server-oriented / client-oriented hybrid real-time network, comprising: a plurality of client terminals; a server-oriented / client-oriented hybrid real-time network to which the plurality of client terminals are connected; and a server that controls data communication with the plurality of client terminals in the server-oriented / client-oriented hybrid real-time network, wherein the server comprises: a server-side receiving unit that receives events from the plurality of client terminals; a server-side assigning unit that assigns server-side sequence numbers to the events in accordance with the reception timing of the received events; and a server-side transmitting unit that collectively transmits the events to which the server-side sequence numbers have been assigned to the plurality of client terminals, wherein the plurality of client terminals comprise: a client-side receiving unit that receives the events to which the server-side sequence numbers have been assigned from the server; and a processing unit that processes the received events in ascending order according to the assigned server-side sequence numbers, A network control system characterized in that the server-side providing unit of the server and the processing units of the plurality of client terminals are activated at least when the server-side receiving unit receives information about a new client as an initial synchronization request from the new client terminal during an initial synchronization step when the new client terminal connects to the server-oriented / client-oriented hybrid real-time network.
9. A program for causing a computer to execute a control method in a network control system comprising a plurality of client terminals, a server-oriented / client-oriented hybrid real-time network, and a server, the program comprising: a server-side receiving step in which the server receives events from the plurality of client terminals; a server-side assigning step in which the server assigns server-side sequence numbers to the received events according to the timing of the reception of the events; a server-side sending step in which the server collectively sends the events assigned the server-side sequence numbers to the plurality of client terminals; a client-side receiving step in which the plurality of client terminals receive the events assigned the server-side sequence numbers from the server; and a processing step in which the plurality of client terminals process the received events in ascending order according to the assigned server-side sequence numbers.
10. The program according to claim 9, further comprising: a client-side assigning step in which the plurality of client terminals assign at least a client-side sequence number to the event at the timing of the event; and a client-side sending step in which the plurality of client terminals send the event to which the client-side sequence number has been assigned to the server.
11. A program for causing a computer to execute a control method in a network control system comprising a plurality of client terminals, a server-oriented / client-oriented hybrid real-time network, and a server, comprising: a server-side receiving step in which the server receives events from the plurality of client terminals; a server-side assigning step in which the server assigns server-side sequence numbers to the received events according to the timing of reception of the events; a server-side transmitting step in which the server collectively transmits the events assigned the server-side sequence numbers to the plurality of client terminals; a client-side receiving step in which the plurality of client terminals receive the events assigned the server-side sequence numbers from the server; and a processing step in which the plurality of client terminals process the received events in ascending order according to the assigned server-side sequence numbers, wherein the server-side assigning step and the processing step are activated at least when information about a new client is received from the new client terminal as an initial synchronization request in the server-side receiving step during an initial synchronization step when a new client terminal connects to the server-oriented / client-oriented hybrid real-time network.