Switching method, switching system, and switching program

The switching method in the cloud offloading system addresses processing delays during state transitions by synchronizing state data between servers, ensuring efficient and low-latency processing.

JP7694795B2Active Publication Date: 2025-06-18NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024502296
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-22
Publication Date
2025-06-18
Estimated Expiration
2042-02-22

AI Technical Summary

Technical Problem

Conventional cloud offloading technologies experience increased processing delays during state transitions, particularly when transferring processing states between servers, leading to input processing delays and retransmissions.

Method used

A switching method involving a system with two servers and a transfer device that synchronizes the state data between the servers, allowing for simultaneous processing and output transmission from both servers, thereby reducing delays during state transitions.

Benefits of technology

The proposed solution effectively suppresses processing delays during state transition periods by synchronizing state data in advance, ensuring seamless continuation of processing without significant latency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007694795000001
    Figure 0007694795000001
  • Figure 0007694795000002
    Figure 0007694795000002
  • Figure 0007694795000003
    Figure 0007694795000003
Patent Text Reader

Abstract

A forwarding device (30) forwards input data to a first server (20) and a second server (40), said input data having been transmitted from a terminal device (10). The first server (20) transmits output data to the forwarding device (30), said output data having been obtained by processing the input data that was forwarded from the forwarding device (30). The second server (40) accumulates the input data that was forwarded from the forwarding device (30). The first server (20) synchronizes a state with the second server (40), said state being data that changes in accordance with the processing of the input data. The second server (40) transmits output data to the forwarding device (30) after the synchronization is complete, said output data having been obtained by processing the accumulated input data. If the output data that was transmitted from the first server (20) and the output data that was transmitted from the second server (40) satisfy a prescribed condition, the forwarding device (30) pauses the forwarding of input data to the first server (20).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a switching method, a switching system, and a switching program.

Background Art

[0002] Mobile terminals such as smartphones have the characteristic of having few installed resources due to constraints related to cost, power consumption, etc. Therefore, there are cases where a mobile terminal cannot execute a process that requires a large amount of computing resources, such as rendering in a virtual space, or the execution of such a process becomes so slow that it is not practical.

[0003] Therefore, cloud offloading technology, which entrusts high-load processing to a server existing in the cloud and the mobile terminal receives the processing result of the server to execute the processing, has attracted attention.

[0004] In cloud offloading technology, first, a mobile terminal entrusts a process to a server on the cloud where a program for executing the process operates.

[0005] At that time, the mobile terminal transmits data necessary for performing the process to the server, and the server processes the received data as input and then transmits the processing result as output to the mobile terminal. The mobile terminal continues the process using the received output.

[0006] Here, there may be cases where applications that perform real-time rendering of a virtual space, such as VR (Virtual Reality) and AR (Augmented Reality), are provided by cloud offloading technology. In such applications, the delay from when an operation is performed until the rendering result is received affects the user's service satisfaction.

[0007] If the delay is too large, the scenery that the user expects for the operation and the scenery that actually appears are different, which may lead to symptoms such as VR sickness.

[0008] One of the factors contributing to the increase in latency is the movement of the user. When the user moves and the base station of the mobile service to which they connect changes, the distance between the cloud where the server that has been outsourcing the processing is located and the base station changes.

[0009] When emphasizing low-latency communication, the mobile terminal often entrusts the processing to the cloud (server) closest to the base station to which it connects. In this case, when the base station changes, the distance to the server that has been entrusted until then also becomes longer. Therefore, a process of changing the cloud to which the processing is entrusted occurs.

[0010] Here, the server of the cloud that performs the processing has data for performing the entrusted processing. The said data includes intermediate results of the processing and data used for the processing, etc. Hereinafter, such data is referred to as a state. For example, the state is data that constitutes a virtual space, data that specifies the position of a user in the virtual space, etc.

[0011] After the server to which the processing is entrusted is changed, in order for each device including the mobile terminal and the server at the destination of the change to resume the processing, it is necessary that the state has been transferred to the server at the destination of the change. For example, a method of transferring the state is known (see, for example, Non-Patent Document 1).

Prior Art Documents

Non-Patent Documents

[0012]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0013] However, the conventional technology has a problem that the processing delay may increase during the state transition period.

[0014] For example, in the technology described in Non-Patent Document 1, when the state is transferred between servers on the cloud, the server is stopped. Therefore, input packets arriving at the server during the state transfer are either queued or discarded.

[0015] As a result, input processing delay and retransmission occur, so that during the state transition period, the time until the result of the processing entrusted to the server is returned to the mobile terminal increases.

Means for Solving the Problem

[0016] To solve the above problems and achieve the object, a switching method is executed by a switching system having a first server and a second server that process input data transmitted from a terminal device and return the processing result to the terminal device as output data, and a transfer device that transfers data. The switching method includes: a transfer step in which the transfer device transfers the input data transmitted from the terminal device to the first server and the second server; a first processing step in which the first server transmits the output data obtained by processing the input data transferred from the transfer device to the transfer device; an accumulation step in which the second server accumulates the input data transferred from the transfer device; a synchronization step in which the first server synchronizes a state, which is data that changes according to the processing of the input data, with the second server; a second processing step in which, after completion of the synchronization step, the second server transmits the output data obtained by processing the input data accumulated in the accumulation step to the transfer device; and a termination step in which, when the output data transmitted from the first server in the first processing step and the output data transmitted from the second server in the second processing step satisfy a predetermined condition, the transfer device terminates the transfer of the input data to the first server in the transfer step.

Advantages of the Invention

[0017] According to the present invention, it is possible to suppress a processing delay during the state transition period.

Brief Description of the Drawings

[0018]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

DETAILED DESCRIPTION OF THE INVENTION

[0019] Hereinafter, the switching method, switching system, and switching program according to the present application will be described in detail with reference to the drawings. Note that the present invention is not limited to the embodiments described below.

[0020] [Configuration of the First Embodiment] First, the configuration of the switching system will be described with reference to FIG. 1. FIG. 1 is a diagram showing a configuration example of the switching system.

[0021] As shown in FIG. 1, the switching system 1 includes a terminal device 10, a server 20, a server 40, a transfer device 30, and a controller 50. The server 20 and the server 40 are examples of a first server and a second server, respectively.

[0022] The terminal device 10 is a UE (User Equipment) such as a smartphone. The terminal device 10 executes an application that provides content such as AR, VR, and 3D games using cloud offloading technology.

[0023] The servers 20 and 40 function as MEC (Multi-access Edge Cloud) and execute high-load processing such as 3D rendering using cloud offloading technology.

[0024] The terminal device 10 transmits input data (game commands, processing data, etc.). The terminal device 10 receives output data (game screens, processing results, etc.), which is the result of the input data processed by one of the servers.

[0025] In this way, the servers 20 and 40 process the input data transmitted from the terminal device 10 and return the processing result to the terminal device 10 as output data.

[0026] At this time, the terminal device 10 needs to communicate with one of the servers in real time. The transfer device 30 operates as a base station such as a gNB (next generation Node B) and relays the communication of the terminal device 10.

[0027] As the user moves, the terminal device 10 may move during the execution of the application. In that case, the terminal device 10 may perform a handover to a nearby base station. Also, due to the handover, the server that processes the input data transmitted from the terminal device 10 may be changed.

[0028] The switching system 1 can perform the change of the server accompanying the handover during the execution of such an application while keeping low-latency communication.

[0029] As shown in FIG. 1, in the initial state, the input data transmitted from the terminal device 10 is transferred to the server 20 by the transfer device 30. Then, the server 20 processes the input data and transmits the resulting output data to the terminal device 10 via the transfer device 30.

[0030] Here, FIG. 1 shows the state immediately after the handover from the terminal device 10 to the transfer device 30. At this time, as shown in FIG. 2, the switching system 1 starts a transfer step, an accumulation step, and a first processing step. FIG. 2 is a diagram for explaining the first processing step, the transfer step, and the accumulation step.

[0031] In the first processing step, the server 20 transmits the output data obtained by processing the input data transferred from the transfer device 30 to the transfer device 30. The first processing step is continued by the server 20 from the state of FIG. 1.

[0032] In the example of FIG. 1, the server 20 processes "Input: 99" and updates the state from 99 to 100. Then, the server 20 outputs "Output: 99".

[0033] Note that "Input: XX" and "Output: XX" are input data and output data respectively with the sequence number XX attached.

[0034] Furthermore, in the example of FIG. 2, the server 20 processes "Input: 100" and updates the state from 100 to 101.

[0035] In the transfer step, the transfer device 30 transfers "Input: 100" not only to the server 20 but also to the server 40.

[0036] In this way, the transfer device 30 transfers the input data transmitted from the terminal device 10 to the server 20 and the server 40 (start of fork). For example, the transfer device 30 transmits a copy of the packet transmitted to the server 20 to the server 40.

[0037] When the transfer device 30 receives a packet branching instruction from the controller 50, it starts the transfer step. The transfer device 30 can set a transfer path to the server 40 by IP or SDN (Software Defined Networking).

[0038] Also, the transfer device 30 may set a point-to-point tunnel with each device by tunneling protocols such as GTU-P, GRE, MPLS, L2PT, DRB (data radio bearer), VXLAN, etc.

[0039] Note that the transfer path from the transfer device 30 to the server 20 has been set before the occurrence of handover.

[0040] The transfer device 30 issues a transfer address to the terminal device 10. When it receives data addressed to the transfer address from the terminal device 10, it transfers the data to at least one of the server 20 or the server 40. When it receives data addressed to a predetermined address from the server 20 or the server 40, it transfers the data to the terminal device 10.

[0041] For example, the terminal device 10 sets the destination of a packet to the IP address set for each offload service (a service using cloud offloading technology) and transmits the packet. For example, let the IP address (transfer address) set by the terminal device 10 be "App1".

[0042] The transfer device 30 can replace the destination of the IP packet with "App1" set as the destination with the IP address of the server 20, which is "Serv1", and transmit it to the server 20 via the tunnel "interface tunnel1" set between the transfer device 30 and the server 20.

[0043] Also, the transfer device 30 can replace the destination of the IP packet with the destination set to "App1" with "Serv2", which is the IP address of the server 40, and send it to the server 40 via the tunnel "interface tunnel2" set up between the transfer device 30 and the server 40.

[0044] Also, the transfer device 30 can copy the IP packet and transfer it to both the server 20 and the server 40. Whether the transfer device 30 transfers the IP packet to the server 20, the server 40, or both depends on each step described later.

[0045] Also, in the accumulation step, the server 40 accumulates (queues) the input data transferred from the transfer device 30 as a queue. In the example of FIG. 2, the server 40 is accumulating "input: 100".

[0046] Next, as shown in FIG. 3, the switching system 1 executes a synchronization step. FIG. 3 is a diagram for explaining the synchronization step.

[0047] As shown in FIG. 3, in the synchronization step, the server 20 synchronizes the state, which is data that changes according to the processing of the input data, with the server 40.

[0048] The server 20 starts the synchronization step when it receives an instruction to transition the state from the controller 50. First, the server 20 obtains the sequence number of the input data received immediately before the transition instruction. In the example of FIG. 3, the server 20 obtains 100 as the sequence number.

[0049] Then, the server 20 sends the state for transmission obtained by copying the obtained state to the server 40. In the example of FIG. 3, the server 20 sends the state with the sequence number 100 to the server 40. Also, in this case, "input: 101" is the input data that triggers the transmission.

[0050] Since the server 20 processes input data even during and after the synchronization step, the state of the source for copying is separated from the state for transmission in an updatable state.

[0051] For example, the server 20 can obtain the state for transmission by copying the mapping table between virtual memory and physical memory. At this time, the server 20 keeps the memory pages pointed to by the state of the source for copying and the state for transmission the same. Also, when updating the memory page, the server 20 allocates a new memory page and writes data.

[0052] Subsequently, as shown in FIG. 4, the switching system 1 executes a second processing step. FIG. 4 is a diagram for explaining the second processing step.

[0053] As shown in FIG. 4, in the second processing step, after completion of the synchronization step, the server 40 transmits the output data obtained by processing the input data (data in the queue) accumulated in the accumulation step to the transfer device 30. At this time, the server 40 processes the input data and updates the state synchronized in the synchronization step.

[0054] Furthermore, when migrating to the synchronization step, since the transfer device 30 transfers input data to the server 40, the server 40 processes the transferred input data.

[0055] On the other hand, the server 20 continues to execute processing on the input data and transmits the obtained output data to the transfer device 30.

[0056] Therefore, in the second processing step, the transfer device 30 continues to receive output data from both the server 20 and the server 40.

[0057] The transfer device 30 compares the output data received from the server 20 with the output data received from the server 40 and determines whether the condition is satisfied.

[0058] The condition is that, for example, the sequence number of the output data received from server 20 is smaller than the sequence number of the output data received from server 40 at the same time. That is, when server 40 processes input data that is newer (has a larger sequence number) than server 20, the condition is satisfied.

[0059] When it is determined by transfer device 30 that the condition is satisfied, as shown in FIG. 5, switching system 1 executes a stop step. FIG. 5 is a diagram for explaining the stop step.

[0060] In the stop step, when the output data transmitted from server 20 in the first processing step and the output data transmitted from server 40 in the second processing step satisfy a predetermined condition, transfer device 30 stops transferring the input data to server 20 in the transfer step. Thereby, transfer device 30 stops forking to server 20.

[0061] Also, transfer device 30 may execute the stop step when instructed by controller 50 to execute the stop step. Thereby, the stop step can be executed automatically or at an arbitrary timing.

[0062] That is, transfer device 30 executes the stop step when there is an instruction from controller 50 or when the output data for the input data transmitted from terminal device 10 is transmitted from server 40 before being transmitted from server 20.

[0063] Also, after transmitting the output data, server 40 notifies transfer device 30 at the timing when it resumes processing the accumulated input data. Transfer device 30 stops transferring the input data to server 20 after receiving the notification.

[0064] FIG. 6 is a diagram showing a configuration example of the terminal device. As shown in FIG. 6, terminal device 10 includes an input / output IF (Interface) 11, a storage unit 12, and a control unit 13.

[0065] The input / output IF11 is an IF for inputting and outputting data to and from other devices.

[0066] The storage unit 12 is a storage device such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), or an optical disk. Note that the storage unit 12 may be a semiconductor memory capable of rewriting data, such as a RAM (Random Access Memory), a flash memory, or an NVSRAM (Non Volatile Static Random Access Memory). The storage unit 12 stores the OS (Operating System) and various programs executed on the terminal device 10.

[0067] The control unit 13 controls the entire terminal device 10. The control unit 13 is, for example, an electronic circuit such as a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a GPU (Graphics Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

[0068] Further, the control unit 13 is realized by an arithmetic unit (e.g., a CPU) executing processing based on a program and control data that define various processing procedures stored in the storage unit 12.

[0069] Further, the control unit 13 has an input / output control unit 131. The input / output control unit 131 executes high-load processing using an offload service.

[0070] The input / output control unit 131 transmits input data and receives output data.

[0071] Figure 7 is a diagram showing a configuration example of a server. As shown in Figure 7, the server 20 has an input / output IF21, a storage unit 22, and a control unit 23.

[0072] The input / output IF 21 is an IF for inputting and outputting data to and from other devices.

[0073] The storage unit 22 is a storage device such as an HDD, an SSD, or an optical disk. Note that the storage unit 22 may be a semiconductor memory capable of rewriting data, such as a RAM, a flash memory, or an NVSRAM. The storage unit 22 stores the OS and various programs executed on the server 20.

[0074] The storage unit 22 stores a data queue in which input data is accumulated. In the embodiment, the server 20 is the source server, but the server 20 may be the destination server. Therefore, the server 20 and the server 40 have equivalent functions.

[0075] The control unit 23 controls the entire server 20. The control unit 23 is, for example, an electronic circuit such as a CPU, an MPU, or a GPU, or an integrated circuit such as an ASIC or an FPGA.

[0076] Further, the control unit 23 is realized by an arithmetic unit (for example, a CPU) executing processing based on a program and control data that define various processing procedures stored in the storage unit 22.

[0077] Further, the control unit 23 includes a monitoring unit 231, a transmission unit 232, and a sequence processing unit 233.

[0078] The monitoring unit 231 monitors the memory and acquires the state. The transmission unit 232 transmits the state. The sequence processing unit 233 accumulates the input data received from the transfer device 30. Further, the sequence processing unit 233 processes the input data received from the transfer device 30 or the accumulated input data to obtain output data.

[0079] FIG. 8 is a diagram showing a configuration example of the transfer device. As shown in FIG. 8, the transfer device 30 includes an input / output IF 31, a storage unit 32, and a control unit 33.

[0080] The input / output IF 31 is an IF for inputting and outputting data to and from other devices.

[0081] The storage unit 32 is a storage device such as an HDD, SSD, or optical disk. Note that the storage unit 32 may be a semiconductor memory capable of rewriting data, such as a RAM, flash memory, or NVSRAM. The storage unit 32 stores the OS and various programs executed by the transfer device 30.

[0082] The control unit 33 controls the entire transfer device 30. The control unit 33 is, for example, an electronic circuit such as a CPU, MPU, or GPU, or an integrated circuit such as an ASIC or FPGA.

[0083] Further, the control unit 33 is realized by an arithmetic unit (e.g., a CPU) executing processing based on a program and control data that define various processing procedures stored in the storage unit 32.

[0084] Further, the control unit 33 includes a transfer unit 331, a determination unit 332, and a management unit 333.

[0085] The transfer unit 331 transfers the input data transmitted from the terminal device 10 to either or both of the server 20 and the server 40. Further, the transfer unit 331 transfers the output data transmitted from the server 20 and the server 40 to the terminal device 10.

[0086] The determination unit 332 determines whether or not the condition for executing the stop step is satisfied.

[0087] The management unit 333 manages the path. For example, the management unit 333 sets a tunnel to the server 20 or the server 40 and deletes the set tunnel.

[0088] FIG. 9 is a diagram showing a configuration example of a controller. As shown in FIG. 9, the controller 50 includes an input / output IF 51, a storage unit 52, and a control unit 53.

[0089] The input / output IF 51 is an IF for inputting and outputting data to and from other devices.

[0090] The storage unit 52 is a storage device such as an HDD, SSD, or optical disk. Note that the storage unit 52 may be a semiconductor memory capable of rewriting data, such as a RAM, flash memory, or NVSRAM. The storage unit 52 stores the OS and various programs executed by the controller 50.

[0091] The control unit 53 controls the entire controller 50. The control unit 53 is, for example, an electronic circuit such as a CPU, MPU, or GPU, or an integrated circuit such as an ASIC or FPGA.

[0092] Further, the control unit 53 is realized by the arithmetic unit (e.g., CPU) executing processing based on programs and control data that define various processing procedures stored in the storage unit 52.

[0093] Further, the control unit 53 has an instruction unit 531. The instruction unit 531 instructs the server 20 and the transfer device 30 to start each step.

[0094] [Processing of the First Embodiment] FIG. 10 is a flowchart showing the flow of the synchronization process (synchronization step). As shown in FIG. 10, the server 20 processes the input data (step S103) until it receives a migration instruction (step S101, No).

[0095] When the server 20 receives a migration instruction (step S101, Yes), it transmits the copied state to the destination server (server 40) (step S102).

[0096] FIG. 11 is a flowchart showing the flow of the transfer process (transfer step). As shown in FIG. 11, the transfer device 30 receives input data from the terminal device 10 (step S201).

[0097] Here, when not in the process of migration (before receiving the migration instruction) (step S202, No), the transfer device 30 transfers the input data to the source server (server 20) (step S204).

[0098] On the other hand, when in the process of migration (after receiving the migration instruction) (step S202, Yes), the transfer device 30 transfers the input data to both the destination server (server 40) and the source server (server 20) (steps S203, S204).

[0099] FIG. 12 is a flowchart showing the flow of the switching process (abort step). As shown in FIG. 12, the transfer device 30 receives output data from the source server (server 20) and the destination server (server 40) (step S301).

[0100] When the switching condition is not satisfied (step S302, No), the transfer device 30 ends the process.

[0101] When the switching condition is satisfied (step S302, Yes), the transfer device 30 disconnects the connection with the source server (server 20) (step S303).

[0102] For example, the transfer device 30 determines that the switching condition is satisfied when the sequence number of the output data received from the destination server is larger than the sequence number of the output data received from the source server.

[0103] [Effects of the First Embodiment] As described so far, the transfer device 30 executes a transfer step of transferring the input data transmitted from the terminal device 10 to the server 20 and the server 40. The server 20 executes a first processing step of transmitting the output data obtained by processing the input data transferred from the transfer device 30 to the transfer device 30. The server 40 executes an accumulation step of accumulating the input data transferred from the transfer device 30. The server 20 executes a synchronization step of synchronizing the state, which is data that changes according to the processing on the input data, with the server 40. After the completion of the synchronization step, the server 40 executes a second processing step of transmitting the output data obtained by processing the input data accumulated in the accumulation step to the transfer device 30. When the output data transmitted from the server 20 in the first processing step and the output data transmitted from the server 40 in the second processing step satisfy a predetermined condition, the transfer device 30 executes a cancellation step of canceling the transfer of the input data to the server 20 in the transfer step.

[0104] In this way, by synchronizing the state with the destination server in advance, it is possible to prevent the start of processing from being delayed at the destination server. As a result, according to the embodiment, it is possible to suppress the processing delay during the state transition period.

[0105] [Other Embodiments] (Synchronize the state by hash value) As shown in FIG. 13, in the synchronization step, the server 20 may synchronize the state by the hash value of the input data instead of the sequence number. FIG. 13 is a diagram for explaining a method of synchronizing the state by the hash value.

[0106] This eliminates the need to manage the sequence numbers in the transfer device 30 and each server, and also eliminates the need to provide a new in-data field or message for storing the sequence numbers.

[0107] In the transfer step, the server 20 and the server 40 calculate the hash value of the payload of the packet received as input data. After calculating the calculated hash value, the server 40 stores the input data in the queue.

[0108] In the synchronization step, the server 20 transmits the state, which is data that changes according to the processing of the input data, to the server 40 together with the hash value of the corresponding input data. At this time, the sequence number of the input data is not specified in the data transmitted from the server 20 to the server 40.

[0109] In the second processing step, the server 40 transmits to the transfer device 30 the input data whose hash value matches the hash value transmitted from the server 20 among the accumulated input data and the output data obtained by processing the input data accumulated after the said input data.

[0110] For example, in the example of FIG. 13, the server 40 can identify that the hash value "594924" received from the server 20 matches the hash value of "input: 100". Then, the server 40 starts processing based on the identified "input: 100" and the received state.

[0111] (Transmit the difference in state) The transfer device 30 may start the transfer step at a timing determined in advance by the policy. For example, the transfer device 30 starts the transfer step when a predetermined condition regarding the server 20 or the server 30 is satisfied.

[0112] Here, an example will be described in which the transfer device 30 determines the timing to start the transfer step based on the state transmitted by the server 20.

[0113] As shown in FIG. 14, after the server 20 transmits the state for the first time, it may send the difference updated from the transmitted state from the second time onwards. FIG. 14 is a diagram for explaining the method of determining the start of transfer of input data.

[0114] The server 20 executes a pre-state transmission step of transmitting the first state and then transmitting the difference that has occurred to the state one or more times after the transmission of the first state. Then, when a predetermined condition regarding the difference transmitted from the server 20 is satisfied, the transfer device 30 starts the transfer step.

[0115] Thereby, the input data received and accumulated by the server 40 can be reduced.

[0116] For example, the server 20 transmits the state or the difference in which the state has been updated for the first time, the second time,..., the nth time at a predetermined cycle.

[0117] At the first time, the server 20 transmits all the states. At the second time, the server 20 transmits only the difference due to the update that occurred during and after the transmission of the first state. Further, at the third time, the server 20 transmits only the difference due to the update that occurred during and after the transmission of the second difference.

[0118] This is because the update frequency may be different for each state. In particular, for a state with a low update frequency, it is not necessary to transmit it as if every time.

[0119] As the number of times progresses, it is considered that the difference transmitted by the server 20 becomes smaller. Therefore, when the difference transmitted by the server 20 becomes sufficiently small or when the specified number of times is reached, the transfer device 30 starts the transfer step.

[0120] [System configuration, etc.] Moreover, each component of each illustrated device is functionally conceptual and does not necessarily have to be physically configured as shown in the figures. That is, the specific forms of distribution and integration of each device are not limited to those shown in the figures, and all or part of them can be functionally or physically distributed or integrated in any unit according to various loads, usage situations, etc. Furthermore, each processing function performed by each device can be realized in whole or in any part by a CPU (Central Processing Unit) and a program analyzed and executed by the CPU, or can be realized as hardware by wired logic. Note that the program may be executed not only by the CPU but also by other processors such as a GPU.

[0121] Also, among the various processes described in this embodiment, all or part of the processes described as being automatically performed can be manually performed, or all or part of the processes described as being manually performed can be automatically performed by a known method. In addition, the processing procedures, control procedures, specific names, and information including various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified.

[0122] [Program] As one embodiment, each device of the switching system 1 can be implemented by installing a switching program that executes the above switching process as package software or online software on a desired computer. For example, by causing the information processing device to execute the above switching program, the information processing device can function as the server 20, the server 40, the transfer device 30, or the controller 50. The information processing device mentioned here includes desktop or notebook personal computers. In addition, the information processing device also includes mobile communication terminals such as smartphones, mobile phones, and PHS (Personal Handyphone System), and further includes slate terminals such as PDAs (Personal Digital Assistants) within its scope.

[0123] FIG. 15 is a diagram showing an example of a computer that executes a switching program. The computer 1000 has, for example, a memory 1010 and a CPU 1020. The computer 1000 also has a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.

[0124] The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM (Random Access Memory) 1012. The ROM 1011 stores a boot program such as a BIOS (Basic Input Output System), for example. The hard disk drive interface 1030 is connected to a hard disk drive 1090. The disk drive interface 1040 is connected to a disk drive 1100. A removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100, for example. The serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120. The video adapter 1060 is connected to, for example, a display 1130.

[0125] The hard disk drive 1090 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the program that defines each process of each device of the switching system 1 is implemented as a program module 1093 in which executable code by a computer is described. The program module 1093 is stored in the hard disk drive 1090, for example. For example, a program module 1093 for executing the same process as the functional configuration of each device of the switching system 1 is stored in the hard disk drive 1090. Note that the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).

[0126] In addition, the setting data used in the processing of the above-described embodiment is stored as program data 1094, for example, in the memory 1010 or the hard disk drive 1090. Then, the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 as necessary, and executes the processing of the above-described embodiment.

[0127] Note that the program module 1093 and the program data 1094 are not limited to being stored in the hard disk drive 1090, and may be stored, for example, in a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (such as a LAN (Local Area Network) or a WAN (Wide Area Network)). Then, the program module 1093 and the program data 1094 may be read by the CPU 1020 from another computer via the network interface 1070.

Explanation of Reference Numerals

[0128] 1 Switching system 10 Terminal device 20, 40 Server 30 Transfer device 50 Controller 11, 21, 31, 51 Input / output IF 12, 22, 32, 52 Storage unit 13, 23, 33, 53 Control unit 131 Input / output control unit 231 Monitoring unit 232 Transmission unit 233 Sequence processing unit 331 Transfer unit 332 Determination unit 333 Management unit 531 Instruction unit

Claims

1. A switching method executed by a switching system having a first server and a second server that process input data transmitted from a terminal device and return the processing result as output data to the terminal device, and a transfer device that transfers data, comprising: A transfer step in which the transfer device transfers input data transmitted from the terminal device to the first server and the second server; A first processing step in which the first server transmits output data obtained by processing the input data transferred from the transfer device to the transfer device; An accumulation step in which the second server accumulates the input data transferred from the transfer device; A synchronization step in which the first server synchronizes a state, which is data that changes according to processing on input data, with the second server; A second processing step in which, after completion of the synchronization step, the second server transmits output data obtained by processing the input data accumulated in the accumulation step to the transfer device; A termination step in which the transfer device terminates the transfer of the input data to the first server in the transfer step when the output data transmitted from the first server in the first processing step and the output data transmitted from the second server in the second processing step satisfy a predetermined condition; The switching method, characterized by including the above steps.

2. The transfer device executes the termination step when there is an instruction from a controller or when output data for the input data transmitted from the terminal device is transmitted from the second server before being transmitted from the first server. The switching method according to Claim 1.

3. In the synchronization step, the first server transmits a state, which is data that changes according to processing on input data, to the second server together with the hash value of the corresponding input data. The switching method according to claim 1 or 2, characterized in that in the second processing step, the second server transmits to the transfer device output data obtained by processing input data among the accumulated input data whose hash value matches the hash value transmitted from the first server and input data accumulated after the input data.

4. 4. The switching method according to claim 1, wherein the transfer device starts the transfer step when a predetermined condition related to the first server or the second server is satisfied.

5. The method further includes a pre-state transmission step in which the first server transmits a first state and then transmits one or more times a difference that has occurred to the state since transmitting the first state; 5. The switching method according to claim 4, wherein the transfer device starts the transfer step when a predetermined condition regarding the difference transmitted from the first server is satisfied.

6. A switching system including a first server and a second server that process input data transmitted from a terminal device and return a processing result to the terminal device as output data, and a transfer device that transfers data, The transfer device is transfers input data transmitted from the terminal device to the first server and the second server, and when output data transmitted from the first server and output data transmitted from the second server satisfy a predetermined condition, stops transferring the input data to the first server; The first server comprises: output data obtained by processing the input data transferred from the transfer device is transmitted to the transfer device, and a state, which is data that changes in response to processing of the input data, is synchronized with the second server; The second server comprises: Accumulate the input data transferred from the transfer device, and after the synchronization of the state by the first server is completed, transmit the output data obtained by processing the accumulated input data to the transfer device A switching system characterized by the above.

7. The transfer device issues a transfer address to the terminal device, and when receiving data addressed to the transfer address from the terminal device, transfers the data to at least one of the first server and the second server. When receiving data addressed to a predetermined address from the first server or the second server, the switching system according to claim 6, characterized in that the data is transferred to a terminal device. A switching program that causes a first server and a second server that process input data transmitted from a terminal device and return a processing result as output data to the terminal device, and a transfer device that transfers data, to execute processing, Transfer the input data transmitted from the terminal device to the first server and the second server, and when the output data transmitted from the first server and the output data transmitted from the second server satisfy a predetermined condition, cause the transfer device to execute a process of canceling the transfer of the input data to the first server, Transmit the output data obtained by processing the input data transferred from the transfer device to the transfer device, and cause the first server to execute a process of synchronizing a state, which is data that changes according to the processing of the input data, with the second server, Accumulate the input data transferred from the transfer device, and after the completion of the state synchronization by the first server, cause the second server to execute a process of transmitting the output data obtained by processing the accumulated input data to the transfer device A switching program characterized by the above.

Citation Information

Patent Citations

  • Grinding method of spectacle lens and its device

    JP1986014848A

  • Data analyzing method and its device and computer- readable recording medium recorded with data analytical program

    JP2000011005A

  • Artificial intelligence system and interactive response method

    JP2020052993A

  • Control device, control method, and program

    WO2018142700A1