Processing device, program, and processing method
By realizing content acquisition, transmission and delay control in the processing device, calculating and applying adjustment time, the problem of limited buffer capacity of the user terminal is solved, and efficient content distribution synchronization between multiple user terminals is achieved.
Patent Information
- Application Number
- JP2023222576
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-28
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2043-12-28
AI Technical Summary
In the prior art, hardware limitations of user terminals lead to limited buffer capacity, making it difficult to achieve content distribution synchronization between multiple user terminals.
By implementing content acquisition, transmission, adjustment time acquisition and delay control unit in the processing device, the reference time of the group belonging to multiple user terminals is obtained, the adjustment time is calculated, and the content transmission is delayed in data transmission, so as to realize the synchronization of content distribution among multiple user terminals.
It effectively improves the ease of content distribution synchronization between multiple user terminals, reduces dependence on the buffer capacity of user terminals, and reduces the development costs of servers and user terminals.
Smart Images

Figure 0007658418000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a processing device, a program, and a processing method. [Background technology]
[0002] Conventionally, content distribution has been synchronized among a plurality of user terminals. For example, MMT (MPEG Media Transport) is used as a technology for synchronizing distribution of content such as moving images.
[0003] The following Patent Document 1 discloses transmitting video packets from a video transmitting device to a user terminal using the MMT method. Patent Document 1 discloses synchronizing video distribution by buffering video packets in a user terminal according to a time stamp that indicates the time to display the video and is transmitted based on the MMT method. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2018-074480 A Summary of the Invention [Problem to be solved by the invention]
[0005] However, there is a problem in that the buffer capacity of the user terminal is limited due to hardware constraints.
[0006] Therefore, the present invention has been made in consideration of the above problems, and an object of the present invention is to provide a technology that makes it possible to more easily achieve synchronization of content distribution among multiple user terminals. [Means for solving the problem]
[0007] In order to solve the above problem, according to an aspect of the present invention, a processing device includes: a content acquisition unit that acquires content to be distributed to a plurality of user terminals from a server; a content transmission unit that transmits the content acquired by the content acquisition unit to a first user terminal among the plurality of user terminals, the first user terminal being a user terminal in a distribution path of the content from the server that includes the processing device; an adjustment time acquisition unit that acquires an adjustment time for distribution of the content to the first user terminal, the adjustment time being calculated based on a reference time set for a first group to which the first user terminal belongs, in one or more groups to which each of the plurality of user terminals belongs; and a delay control unit that delays transmission of the content to the first user terminal by the content transmission unit based on the adjustment time so that distribution of the content to the first user terminal and one or more of the user terminals belonging to the first group are synchronized. the content acquisition unit acquires first data distributed through the distribution path from the server, the content transmission unit transmits the first data to the first user terminal, the adjustment time is a time obtained by subtracting a first transmission delay time, which is a transmission delay time of the content to the first user terminal and is calculated based on a first time when the first data is transmitted by the content transmission unit, from the reference time, and the first transmission delay time is a time obtained by subtracting from the reference time a first transmission delay time, which is a transmission delay time of the content to the first user terminal and is calculated based on a first time when the first data is transmitted by the content transmission unit, and the first transmission delay time is a time obtained by subtracting from the reference time a first transmission delay time, which is a time obtained by subtracting from the reference time a first transmission delay time the time until a fourth time when the first data is delivered to the first user terminal, the reference time being set based on a plurality of transmission delay times including the first transmission delay time and a second transmission delay time which is a transmission delay time of the content to the user terminal, the second transmission delay time being calculated for each of one or more of the user terminals based on second data transmitted at the same time as the first data, and further being the maximum value among values obtained by adding up an average of the plurality of transmission delay times and a jitter calculated from the plurality of transmission delay times for the first user terminal and the one or more user terminals belonging to the first group; A processing device is provided.
[0008] Also, according to the present disclosure, a computer is caused to function as: a content acquisition unit that acquires content to be distributed to a plurality of user terminals from a server; a content transmission unit that transmits the content acquired by the content acquisition unit to a first user terminal, which is a user terminal among the plurality of user terminals and which is a processing device having the computer in a distribution path of the content from the server; an adjustment time acquisition unit that acquires an adjustment time for distribution of the content to the first user terminal, which is calculated based on a reference time set in a first group to which the first user terminal belongs, in one or more groups to which each of the plurality of user terminals belongs; and a delay control unit that delays transmission of the content to the first user terminal by the content transmission unit based on the adjustment time, so that distribution of the content to the first user terminal and one or more of the user terminals belonging to the first group are synchronized. the content acquisition unit acquires first data distributed through the distribution path from the server, the content transmission unit transmits the first data to the first user terminal, the adjustment time is a time obtained by subtracting a first transmission delay time, which is a transmission delay time of the content to the first user terminal and is calculated based on a first time when the first data is transmitted by the content transmission unit, from the reference time, and the first transmission delay time is a time obtained by subtracting from the reference time a first transmission delay time, which is a transmission delay time of the content to the first user terminal and is calculated based on a first time when the first data is transmitted by the content transmission unit, and the first transmission delay time is a time obtained by subtracting from the reference time a first transmission delay time, which is a time obtained by subtracting from the reference time a first transmission delay time the time until a fourth time when the first data is delivered to the first user terminal, the reference time being set based on a plurality of transmission delay times including the first transmission delay time and a second transmission delay time which is a transmission delay time of the content to the user terminal, the second transmission delay time being calculated for each of the one or more user terminals based on second data transmitted at the same time as the first data, and the reference time being the maximum value among values obtained by adding up an average of the plurality of transmission delay times and a jitter calculated from the plurality of transmission delay times for the first user terminal and the one or more user terminals belonging to the first group. The program is provided.
[0009] According to the present disclosure, there is also provided a processing method for a processing device, the processing method including: acquiring, from a server, content to be distributed to a plurality of user terminals; 1. a step of transmitting the acquired content to a first user terminal, which is a user terminal including the processing device in a distribution path of the content from the server, among the plurality of user terminals. Second and acquiring an adjustment time for the delivery of the content to the first user terminal, the adjustment time being calculated based on a reference time set in a first group to which the first user terminal belongs, in one or more groups to which each of the plurality of user terminals belongs. Third and delaying the transmission of the content to the first user terminal in the content transmitting step based on the adjustment time so that the delivery of the content to the first user terminal and one or more of the user terminals belonging to the first group is synchronized. Fourth Steps and the first step includes acquiring first data distributed through the distribution path from the server, and the second step includes transmitting the first data to the first user terminal, the adjustment time being a time obtained by subtracting a first transmission delay time, which is a transmission delay time of the content to the first user terminal and is calculated based on a first time when the first data is transmitted by the second step, from the reference time, and the first transmission delay time is a time obtained by subtracting from the reference time a first transmission delay time, which is a transmission delay time of the content to the first user terminal and is calculated based on a first time when the first data is transmitted by the second step, and the first transmission delay time is a time obtained by subtracting from the reference time a first transmission delay time, which is a time obtained by subtracting from the reference time a first transmission delay time the reference time is a time obtained by adding up a time until a fourth time when the first data is delivered to a first user terminal, the reference time being set based on a plurality of transmission delay times including the first transmission delay time and a second transmission delay time which is a transmission delay time of the content to the user terminal, the second transmission delay time being calculated for each of the one or more user terminals based on second data transmitted at the same time as the first data, and the reference time being a maximum value among values obtained by adding up an average of the plurality of transmission delay times and a jitter calculated from the plurality of transmission delay times for the first user terminal and the one or more user terminals belonging to the first group. A processing method is provided. Effect of the Invention
[0010] As described above, according to the present invention, synchronization of content distribution among a plurality of user terminals can be more easily achieved. [Brief description of the drawings]
[0011] [Figure 1] 1 is a diagram illustrating an example of a configuration of a system 1 according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a block diagram showing an example of a configuration of a UE 110 according to the present embodiment. [Diagram 3] FIG. 2 is a block diagram showing an example of the configuration of various servers installed in a data center according to the present embodiment. [Figure 4] FIG. 2 is a block diagram showing an example of the configuration of various servers included in the Internet 3 according to the present embodiment. [Diagram 5] FIG. 2 is a block diagram showing an example of the configuration of various servers included in the Internet 3 according to the present embodiment. [Figure 6] 1 is a flowchart showing an example of an operation flow of the system 1 according to the first embodiment of the present invention. [Figure 7] 7 is a sequence diagram showing an example of the flow of operations in step S1 of the flow diagram shown in FIG. 6, performed by the system 1. FIG. [Figure 8] 7 is a sequence diagram showing an example of the flow of operations in step S2 of the flowchart shown in FIG. 6, performed by the system 1. FIG. [Figure 9] 13 is a diagram showing an example of information stored in the synchronized viewing control server 340. FIG. [Figure 10] 7 is a sequence diagram showing an example of the flow of operations in step S3 of the flowchart shown in FIG. 6, performed by the system 1. FIG. [Figure 11] 13 is a diagram showing an example of a data relay server path management table stored in the data relay server management unit 348. FIG. [Figure 12] 7 is a diagram showing an example of the data flow in step S4 of the flow diagram shown in FIG. 6 by the system 1. FIG. [Figure 13] 7 is a sequence diagram showing an example of the flow of operations in step S4 of the flowchart shown in FIG. 6, performed by the system 1. FIG. [Figure 14] 11 is a diagram for explaining a method of calculating a delay time of video data for each UE 110. FIG. [Figure 15] 7 is a sequence diagram showing an example of the flow of operations in step S5 of the flowchart shown in FIG. 6, performed by the system 1. FIG. [Figure 16] 7 is a diagram showing an example of the data flow in step S6 of the flow diagram shown in FIG. 6 by the system 1. FIG. [Figure 17] 7 is a sequence diagram showing an example of the flow of operations in step S6 of the flowchart shown in FIG. 6, performed by the system 1. FIG. [Figure 18] 7 is a sequence diagram showing an example of the flow of operations performed by the system 1 in step S7 of the flowchart shown in FIG. 6. FIG. [Figure 19]FIG. 1 is a diagram showing an example of the configuration of a system 11 according to the present embodiment. [Figure 20] FIG. 3 is a block diagram showing an example of the configuration of the data collection server 3301 and the synchronized viewing control server 3401. [Figure 21] FIG. 2 is a block diagram showing an example of the configuration of an AN data collection server 350. [Figure 22] 7 is a diagram showing an example of the data flow in step S4 of the flow diagram shown in FIG. 6 by the system 11. FIG. [Figure 23] 7 is a sequence diagram showing an example of the flow of operations performed by the system 11 in step S4 of the flowchart shown in FIG. 6. [Figure 24] 7 is a sequence diagram showing an example of the flow of operations performed by the system 11 in step S5 of the flowchart shown in FIG. 6. [Diagram 25] FIG. 9 is a diagram showing a hardware configuration of a processing device 900 as an example of each device according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this specification and the drawings, components having substantially the same functional configurations are designated by the same reference numerals, and duplicated explanations will be omitted.
[0013] In addition, in this specification and drawings, multiple components having substantially the same functional configuration may be distinguished by adding different alphabets after the same reference numeral. However, when there is no need to particularly distinguish between multiple components having substantially the same functional configuration, each of the multiple components is given only the same reference numeral.
[0014] <<0. Conventional Technology>> First, as a conventional technique, a technique for synchronizing content distribution among multiple user terminals using the MMT (MPEG Media Transport) method will be described. Synchronization of distribution means matching the timing of content playback among multiple user terminals. This allows simultaneous viewing of the distribution by each user. Here, an example will be described in which the content is a video. However, the content may also be an image, audio, or the like.
[0015] A server that distributes content transmits video packets to user equipment (UE) using the MMT method. The system for realizing content distribution includes one master UE and multiple slave UEs. Each UE operates as a master UE or a slave UE based on its settings.
[0016] Generally, in the MMT method, a PTS (Presentation Time Stamp), which indicates the time when a video signal and an audio signal are presented in a UE, is set using UTC (Coordinated Universal Time). Here, Patent Document 1 describes that a server sets the transmission time of a video packet in the PTS and transmits a video packet including the PTS to each UE.
[0017] Each UE decodes the received video packet. Furthermore, each UE calculates its own PTS offset, which is the difference between the time when the video becomes available and the PTS. Then, the master UE collects each PTS offset from each slave UE.
[0018] The master UE sets the maximum value of the collected PTS offsets as a common offset, and then transmits the value of the common offset to the slave UE.
[0019] Each UE (master UE and slave UE) buffers video packets by the difference between the common offset and its own PTS offset, and then presents the video to the user. This synchronizes the distribution of video among the UEs.
[0020] Here, an example will be described in which a server distributes video to one master UE and three slave UEs. In the following, the three slave UEs in the example described here will also be referred to as "UE(1)", "UE(2)", and "UE(3)". First, assume that the server distributes video packets to each UE at 1:02:03 UTC (hereinafter, written as "01:02:03". In the following, UTC times may be written in a similar format).
[0021] In this case, the PTS of the video packet is set to "01:02:03". Here, it is assumed that the playable time of the master UE is "01:02:03". It is also assumed that the reception time of UE(1) is "01:02:04" and the playable time is "01:02:06". It is also assumed that the reception time of UE(2) is "01:02:05" and the playable time is "01:02:10". It is also assumed that the reception time of UE(3) is "01:02:07" and the playable time is "01:02:09". In this case, the master UE calculates its own PTS offset as "0 seconds", UE(1) as "3 seconds", UE(2) as "7 seconds", and UE(3) as "6 seconds". It is also assumed that the maximum value of each PTS offset, "7 seconds", is set as the common offset.
[0022] Based on the difference between the common offset set as above and its own PTS offset, the master UE buffers video packets for "7 seconds," UE(1) for "4 seconds," UE(2) for "0 seconds" (i.e., no buffering), and UE(3) for "1 second," and presents them to the user. In other words, all UEs will present video at the time "01:02:10."
[0023] However, the technology of Patent Document 1 imposes a heavy load of communication processing on the UEs, particularly the master UE, and the load increases as the number of UEs increases.
[0024] In addition, in the technology of Patent Document 1, in order to synchronize the contents, data is stored in a buffer in the memory of each UE between decoding and playback, so a buffer capacity is required to match the time to delay the playback of the video. In particular, if some of the UEs are located far away from each other, the value of the common offset becomes large, so the time to delay the playback of the video also becomes large. In other words, in such a case, the UE is required to have a larger buffer capacity. However, since the UE has hardware constraints, there is a problem in that the buffer capacity is limited.
[0025] Furthermore, the server must be equipped with a function to set the transmission time to the PTS in addition to the normal MMT protocol processing function. Each UE must also be equipped with a function to calculate the PTS offset and a function to buffer video packets. These factors result in high costs for developing the server and UE.
[0026] Therefore, in one embodiment of the present invention, a technique is proposed for synchronizing video delivery without implementing the MMT protocol and without the UE performing buffering.
[0027] <<1.Prerequisite technology>> Next, the premise technology of the present invention will be described. A service provider may enter into a contract with a CDN (Content Delivery Network) provider to provide content distribution via the Internet. A service provider is a provider that provides any service. A CDN provider is a provider that distributes content using an ISP (Internet Service Provider). An ISP is a provider that provides a service of connecting to the Internet using the lines of a telecommunications provider. A telecommunications provider is a provider that provides telecommunications services such as landline telephones and mobile phones.
[0028] CDN operators typically install origin servers in their data centers and distribute content to users from the origin servers. An origin server is a server that serves as the source of content when distributing content via a CDN. By using edge servers distributed on the network as cache servers for distribution, CDN operators can prevent unnecessary content traffic from flowing into the backbone on the Internet where ISPs are interconnected. At the same time, by distributing content from edge servers that are close to the user, it is possible to reduce delays.
[0029] One embodiment of the present invention relates to the delivery of content via the edge server described above. In particular, in the embodiment of the present invention, the CDN is an MEC-CDN extended by MEC (Multi-access Edge Computing). MEC is a technology in which an edge server is arranged on a mobile communication network and various data is delivered from the edge server to a user. By delivering data from an edge server geographically close to the user, it is possible to reduce the network load and delay compared to, for example, the case of delivering data from a server arranged on a cloud.
[0030] The network that constitutes the system provided by the CDN operator consists of a mobile communication network and the Internet, and the MEC-CDN consists of a conventional CDN node and a mobile edge CDN node. In one embodiment of the present invention, an example will be described in which a zookeeper who runs a zoo is the service operator and streams video (which may also include audio) as content.
[0031] <<2. First embodiment>> <2-1. Overview> First, a system for realizing content distribution according to a first embodiment of the present invention will be described with reference to Fig. 1. Fig. 1 is a diagram showing an example of a configuration of a system 1 according to this embodiment. The system 1 is a system related to content distribution. As shown in Fig. 1, the system 1 according to this embodiment is composed of a mobile communication network 2 and the Internet 3. An AMR (Autonomous Mobile Robot) 100 and a UE 110 are connected to the mobile communication network 2.
[0032] The mobile communication network 2 is a network operated by a telecommunications carrier. The mobile communication network 2 may realize, for example, communication according to 5G (5th Generation Mobile Communication System) or B5G (Beyond 5G).
[0033] The mobile communication network 2 includes a CN (Core Network) 4 and a RAN (Radio Access Network) 5. Various devices that operate the CN 4 are accommodated in communication stations distributed throughout the country. These communication stations distributed throughout the country are connected by a transport layer, and the overlay network is referred to here as a communication carrier network.
[0034] The CN4 is a network that accommodates the RAN 5. That is, the CN4 serves as the backbone of the RAN 5. The CN4 plays various roles related to communication by the UE 110 connected to the RAN 5, such as authentication of the UE 110, location management, and policy control.
[0035] CN4 includes a central DC (Center Data Center) 41, regional DCs (RDCs) 42 (42-1 to 42-3), and edge DCs (EDCs) 43 (43U, 43D-1 to 43D-5). The central DC 41, regional DCs 42, and edge DCs 43 are three-tiered data centers, and constitute a MEC-CDN. A plurality of regional DCs 42 are connected under one central DC 41, and a plurality of edge DCs 43 are connected to the regional DC 42. The upper data center and the lower data center are connected by a network. The lower data center plays the role of a cache for the upper data center. These data centers are geographically distributed.
[0036] A server is installed in each of the multiple data centers. Hereinafter, when servers having the same function are installed in each data center, a code including an alphabet may be attached to distinguish which hierarchical data center the server is installed in. Specifically, the central DC 41 may be associated with the "C", the regional DC 42 with the "R", and the edge DC 43 with the "E". For example, the data relay server 420 installed in both the central DC 41 and the regional DC 42-1 may be distinguished as the "data relay server 420C" and the "data relay server 420R". Furthermore, when each configuration includes the same function, a distinction may be made by attaching a hyphen and a number. For example, the data relay server 420 installed in both the edge DC 43-1 and the edge DC 43-3 may be distinguished as the "data relay server 420E-1" and the "data relay server 420E-2".
[0037] As shown in FIG. 1, the central DC 41 includes a data relay server 420C. The regional DC 42-1 includes a data relay server 420R. The edge DC 43U includes an upload server 410 as an edge server. The edges DCs 43D-1 to 43D-5 include a data relay server 420E as an edge server. An edge DC 43 that includes the upload server 410 but does not include the data relay server 420 may be given a reference symbol including "U". An edge DC 43 that includes the data relay server 420 but does not include the upload server 410 may be given a reference symbol including "D". An edge DC 43 that includes the data relay server 420 but does not include the upload server 410 may be referred to as an "edge DC 43D" when there is no particular need to distinguish between them.
[0038] The upload server 410 and the data relay server 420 will be described later in detail. The edge DC 43 (more specifically, each of the servers installed in the edge DC 43) connects to a network provided by a base station 51, described later, that covers a geographical range corresponding to (i.e., close to) the location of the edge DC 43. For example, the upload server 410 installed in the edge DC 43U connects to a network provided by a base station 51-1.
[0039] The RAN5 is a wireless network that provides wireless communication. The RAN5 may be a wireless network of a mobile communication system such as 5G (5th Generation) or B5G (Beyond 5th Generation). Alternatively, the RAN5 may be a wireless network that complies with a wireless communication standard such as Wi-Fi (registered trademark) or Bluetooth. The RAN5 is It includes base stations 51 (51-1 to 51-9).
[0040] The AMR (Autonomous Mobile Robot) 100 (100-1 and 100-2) is an autonomous robot. An autonomous robot is a robot that detects its own position or route by using a mounted sensor and moves around. Therefore, there is no need to install a guidance device to guide the direction of movement within the range where the autonomous robot moves.
[0041] The AMR 100 records and stores video while autonomously traveling in the zoo. For example, the AMR 100 may record events such as shows and feedings held in the zoo. The video recorded by the AMR 100 is distributed as content to the user of the UE 110.
[0042] The UE 110 is a terminal operated by a user. The UE 110 may be any processing device such as a smartphone or a PC (Personal Computer). The UE 110 receives distribution of video content from the upload server 410 via the data relay server 420 through a network provided by the nearest base station 51.
[0043] Each UE 110 belongs to a group. One or more groups may be set in the system 1. Video delivery to UEs 110 belonging to the same group is synchronized. That is, users of UEs 110 belonging to the same group can view the delivery at the same time (or approximately the same time).
[0044] The upload server 410 is a server to which the video captured by the AMR 100 is uploaded. The upload server 410 functions as an origin server according to the present embodiment. That is, the video stored in the upload server 410 is distributed to each UE 110 as content.
[0045] The upload server 410 is connected to an edge DC43U which is connected to a base station 51-1 that provides a network to which the AMR 100 is connected. Although an example in which one upload server 410 is installed in the system 1 is shown in Fig. 1, two or more upload servers 410 may be installed. For example, the upload server 410 may be installed in an edge DC43 other than the edge DC43U.
[0046] The data relay server 420 is a server that is disposed on a distribution path of video data from the upload server 410 to the UE 110 and relays video data between the upload server 410 and the UE 110, and is an example of a processing device. For example, there may be multiple data relay servers 420 on the distribution path of video data between the upload server 410 and the UE 110. That is, video data relayed from the upload server 410 to the data relay server 420 may be relayed to other data relay servers 420 in sequence.
[0047] Of the data relay servers 420 included in the distribution path of video to each UE 110, the data relay server 420 closest to the UE 110 to which video is distributed on the distribution path buffers video data and transmits it to the UE 110 so that distribution is synchronized with other UEs 110 to which the same video is distributed. Hereinafter, the data relay server 420E closest to the UE 110 on the distribution path of video data to the UE 110 is also referred to as the "nearest data relay server 420E" of the UE 110. In addition, the edge DC43 connected to the base station 51 that provides the network to which the UE 110 or the AMR 100 is connected is also referred to as the "nearest edge DC43" of the UE 110 or the AMR 100. Details of buffering by the data relay server 420 will be described later.
[0048] The data relay server 420 may be installed in each of the central DC 41, the regional DC 42, and the edge DC 43. However, the data relay server 420 does not have to be installed in all data centers, and for example, as shown in Fig. 1, the data relay server 420 does not have to be installed in the edge DC 43U. The UE 110-1, which has the edge DC 43U as the nearest edge DC 43, receives video distribution from the upload server 410 without going through the data relay server 420.
[0049] The upload server 410, the data relay server 420E, and the UE 110 are equipped with data transfer modules MD (MD410, MD420-1, MD110-1, etc.). The data transfer module MD is a module that transmits at least one of a reception log indicating the reception time when each device received data and a transmission log indicating the transmission time when data was transmitted to a higher-level server. For example, the data transfer module MD may transmit at least one of the reception time or transmission time of video data (more specifically, video packets constituting the video data), which is data of a video distributed by the upload server 410, to the higher-level server.
[0050] Furthermore, the CN4 includes a provider NW (network) management server 430. The provider NW management server 430 is a server that manages communication paths between each data center. For example, the provider NW management server 430 may identify one or more data relay servers 420 included in the shortest communication path from the edge DC43 where the upload server 410 is installed to the edge DC43 nearest to each UE 110, and identify the respective IP addresses of the one or more data relay servers 420.
[0051] The CN4 also includes a router 60. The router 60 is a communication device that connects the mobile communication network 2 and the Internet 3 and transfers data between the mobile communication network 2 and the Internet 3.
[0052] Next, a description will be given of various servers operated by a service provider or a CDN provider, which are installed on the Internet 3. As shown in FIG. 1, the Internet 3 includes a service server 310, an authentication server 320, a data collection server 330, and a synchronized viewing control server 340.
[0053] The service server 310 is a portal server operated by a service provider that provides a distribution service for distributing videos as content to users. The service server 310 manages various information related to the videos. For example, the service server 310 may manage information on the upload server 410 that stores the videos, the names of the videos (content names), and the like.
[0054] In addition, the service server 310 provides various screens, such as a login screen and a content page including a list of viewable videos, to the UE 110. The user can view a desired video selected from a list included in the content page displayed on the UE 110.
[0055] The authentication server 320 is a server operated by a service provider that executes a login process for a user in a distribution service. More specifically, the authentication server 320 receives login information including a user ID (Identification) and a password input by the user to a login screen displayed on the UE 110 from the service server 310. Then, the authentication server 320 executes authentication of the user based on whether or not the received login information matches the login information stored in a database.
[0056] The data collection server 330 is a server operated by a CDN operator that collects the reception log and transmission log transmitted by the data transfer module MD. The data collection server 330 also calculates the delay time of data transmission from the upload server 410 to each UE 110 based on the time indicated by the reception log and transmission log.
[0057] The synchronized viewing control server 340 is a server operated by a CDN operator that controls buffering of video data by the data relay server 420 so that video distribution to UE 110 playing the same video is synchronized. The synchronized viewing control server 340 may calculate the time for buffering video data in the data relay server 420 based on the delay time calculated by the data collection server 330. A method for controlling buffering by the synchronized viewing control server 340 will be described in detail later.
[0058] <2-2. Configuration example> Next, an example of the configuration of each device according to this embodiment will be described.
[0059] <2-2-1. UE110 configuration example> First, a configuration example of the UE 110 will be described. Fig. 2 is a block diagram showing an example of the configuration of the UE 110 according to the present embodiment. As shown in Fig. 2, the UE 110 has a control unit 111, a communication unit 112, a storage unit 113, and an operation display unit 115.
[0060] (Control unit 111) The control unit 111 functions as a calculation processing unit and a control unit, and controls the overall operation of the UE 110 in accordance with various programs. The control unit 111 is realized by an electronic circuit such as a CPU (Central Processing Unit) or a microprocessor. The control unit 111 may include a ROM (Read Only Memory) that stores the programs to be used, calculation parameters, etc., and a RAM (Random Access Memory) that temporarily stores parameters that change as appropriate.
[0061] (Communication unit 112) The communication unit 112 is a communication module for transmitting and receiving data to and from other devices. The communication unit 112 performs communication conforming to any communication standard, whether wired or wireless. The communication unit 112 communicates with each device via a network provided by the base station 51. For example, the communication unit 112 receives video data of a video captured by the AMR 100 from a server installed in the nearest edge DC 43. The communication unit 112 may receive video data distributed by the upload server 410 via the nearest data relay server 420E. The communication unit 112 may also receive information for displaying various screens related to the distribution service on the operation display unit 115 from the service server 310. The communication unit 112 may also transmit information input to the operation display unit 115 to the service server 310.
[0062] (Data transfer module MD110) The communication unit 112 also has a data transfer module MD110. The data transfer module MD110 is a module that transmits a reception log indicating the reception time to the data collection server 330 when data transmitted by the upload server 410 is received. Hereinafter, such a reception log transmitted by the UE 110 is also referred to as a "UE reception log." The data transfer module MD110 may be implemented by being installed in the UE 110 as a plug-in, for example.
[0063] (Storage unit 113) The storage unit 113 is a device that stores information. The storage unit 113 is configured with any storage medium such as a hard disk drive (HDD), a solid state drive (SSD), a flash memory, etc. The storage unit 113 stores information for the operation of the UE 110.
[0064] (Reception log management unit 114) The storage unit 113 also includes a reception log management unit 114. The reception log management unit 114 manages a data reception log. The data transfer module MD110 may transmit a UE reception log extracted from the reception log managed by the reception log management unit 114 to the data collection server 330.
[0065] (Operation display section 115) The operation display unit 115 has a function as a display unit that displays various screens based on data received by the communication unit 112. For example, the operation display unit 115 displays various screens related to the distribution service based on data received by the communication unit 112 from the service server 310. The operation display unit 115 also displays videos distributed from the upload server 410 as content. Furthermore, the operation display unit 115 has a function as an operation unit that accepts input of login information (user ID and password) for the video distribution service and selection of a video to be distributed.
[0066] For example, the function of the display unit may be realized by a liquid crystal display (LCD) or an OLED (Organic Light Emitting Diode) device. Also, the function of the operation unit may be realized by, for example, a touch panel. Note that the function of the display unit and the function of the operation unit may be configured separately.
[0067] <2-2-2. Examples of server configurations installed in data centers> Next, a configuration example of various servers installed in a data center will be described with reference to Fig. 3. Fig. 3 is a block diagram showing an example of the configuration of various servers installed in a data center according to this embodiment.
[0068] -Example of upload server 410 configuration 3 shows an example of the configuration of the upload server 410. The upload server 410 includes a control unit 411, a communication unit 412, and a storage unit 413.
[0069] (Control unit 411) The control unit 411 functions as a calculation processing device and a control device, and controls the overall operation of the upload server 410 in accordance with various programs. The control unit 411 is realized by electronic circuits such as a CPU or a microprocessor. The control unit 411 may include a ROM that stores the programs to be used and calculation parameters, and a RAM that temporarily stores parameters that change as appropriate.
[0070] (Communication unit 412) The communication unit 412 is a communication module for transmitting and receiving data to and from other devices. The communication unit 412 performs communication in compliance with any wired or wireless communication standard. As an example, the communication unit 412 receives video data of a video captured by the AMR 100. The communication unit 412 also distributes the video to each UE 110 by relaying the video data to a data relay server 420 as a relay destination in accordance with relay destination information managed by a video data storage unit 414 described later.
[0071] (Data transfer module MD410) The communication unit 412 also has a data transfer module MD410. The data transfer module MD410 is a module that transmits a transmission log indicating the transmission time to the data collection server 330 when the communication unit 412 transmits data. Hereinafter, such a transmission log transmitted by the upload server 410 is also referred to as an "upload server transmission log."
[0072] (Storage unit 413) The storage unit 413 is a device that stores information. The storage unit 413 is configured with any storage medium such as a HDD, an SSD, or a flash memory. The storage unit 413 stores information for the operation of the upload server 410. The storage unit 413 also has a video data accumulation unit 414, a relay destination management unit 415, and a transmission / reception log management unit 416.
[0073] (Video data storage unit 414) The video data storage unit 414 stores the video data uploaded from the AMR 100 and received by the communication unit 412. The video data storage unit 414 may store the video data uploaded from the AMR 100 in association with a content name, for example. The content name may be given to each video by the service provider when uploading. However, the timing at which the content name is given is not particularly limited, and may be given by the service provider when the content information is stored in the service server 310, for example.
[0074] (Relay destination management unit 415) The relay destination management unit 415 manages relay destination information of the video data distributed from the communication unit 412 to each UE 110. The relay destination information may include, for example, the IP address of the data relay server 420 to which each video data stored in the video data storage unit 414 is to be relayed.
[0075] The relay destination information managed by the relay destination management unit 415 is received from the synchronized viewing control server 340 by the communication unit 412 .
[0076] (Transmission / reception log management unit 416) The transmission / reception log management unit 416 manages the data transmission log. The data transfer module MD410 may transmit the upload server transmission log extracted from the transmission log managed by the transmission / reception log management unit 416 to the data collection server 330.
[0077] Example of the configuration of the data relay server 420 Next, we will explain an example of the configuration of the data relay server 420. The lower part of Fig. 3 shows an example of the configuration of the data relay server 420. The data relay server 420 comprises a control unit 421, a communication unit 422, and a storage unit 423.
[0078] (Control unit 421) The control unit 421 functions as an arithmetic processing unit and control device, and controls the overall operation of the data relay server 420 in accordance with various programs. The control unit 421 is realized by electronic circuits such as a CPU or a microprocessor. The control unit 421 may also include a ROM for storing the programs and arithmetic parameters to be used, and a RAM for temporarily storing parameters that change as appropriate.
[0079] In particular, the control unit 421 of the data relay server 420E installed in the edge DC43D functions as a delay control unit that delays the transmission of video data by a communication unit 422 described below. The control unit 421 delays the transmission of video data by the communication unit 422 based on an adjustment time managed by an adjustment time management unit 424 described below.
[0080] (Communication unit 422) The communication unit 422 is a communication module for transmitting and receiving data to and from other devices. The communication unit 422 performs communication conforming to any communication standard, whether wired or wireless. The communication unit 422 relays video data distributed from the upload server 410 to the UE 110. For example, the communication unit 422 functions as a content acquisition unit that receives video data of a video distributed from the upload server 410. Then, the communication unit 422 transmits the video data to a relay destination according to relay destination information managed by a relay destination management unit 425 described later. For example, the communication unit 422 may receive video data from the upload server 410 or another data relay server 420 and transmit the video data to the other data relay server 420.
[0081] Furthermore, the communication unit 422 of the data relay server 420E installed in the edge DC43D functions as a content transmission unit that transmits video data distributed from the upload server 410 to the multiple UEs 110 to the UE 110. More specifically, the data relay server 420E installed in the edge DC43D transmits video data from the communication unit 422 to the UE 110 that, among the multiple UEs 110, designates itself as the nearest data relay server 420E. Such a UE 110 is a first user terminal with respect to the data relay server 420E. The UE 110 that is the first user terminal belongs to a first group out of one or more groups that are set.
[0082] Here, communication unit 422 transmits the video data temporarily stored in buffer unit 427 (described later) to UE 110, which is the first user terminal, when the adjustment time has elapsed, in accordance with the control of control unit 421. Details of the adjustment time will be described later, but this allows the distribution to UE 110, which is the first user terminal, to be synchronized with other UEs 110 belonging to the first group that receive the same video distribution.
[0083] The communication unit 422 also functions as an adjustment time acquisition unit that receives the adjustment time stored in the adjustment time management unit 424 from the synchronized viewing control server 340 .
[0084] (Data transfer module MD420) Furthermore, the communication unit 422 has a data transfer module MD420. However, as described above, it is not necessary for all data relay servers 420 to include the data transfer module MD420. More specifically, it is sufficient that the data relay server 420E installed on the edge DC43D includes the data transfer module MD420.
[0085] The data transfer module MD420 is a module that transmits a reception log indicating the time of reception to the data collection server 330 when the communication unit 422 receives data. Hereinafter, such a reception log transmitted by the data relay server 420 is also referred to as the "data relay server reception log." In addition, when the communication unit 422 transmits data, a transmission log indicating the time of transmission is transmitted to the data collection server 330. Hereinafter, such a transmission log transmitted by the data relay server 420 is also referred to as the "data relay server transmission log."
[0086] (Storage unit 423) The storage unit 423 is a device that stores information. The storage unit 423 is configured with any storage medium, such as a HDD, SSD, or flash memory. The storage unit 423 stores information for the operation of the data relay server 420. The storage unit 423 also has an adjustment time management unit 424, a relay destination management unit 425, a transmission and reception log management unit 426, and a buffer unit 427.
[0087] (Adjustment time management department 424) The adjustment time management unit 424 manages the adjustment time indicating the time for delaying the transmission of video data from the communication unit 422 to the UE 110. The adjustment time management unit 424 manages the adjustment time for each UE 110 for which the data relay server 420 having the adjustment time management unit 424 that receives video distribution is the nearest data relay server 420.
[0088] (Relay destination management unit 425) The relay destination management unit 425 manages relay destination information of the video data distributed from the communication unit 422 to each UE 110. The relay destination information may include, for example, the IP address of the data relay server 420 to which each video data received from another data relay server 420 or the upload server 410 is to be relayed.
[0089] The relay destination information managed by the relay destination management unit 425 is received from the synchronized viewing control server 340 by the communication unit 422 .
[0090] (Transmission / reception log management unit 426) The transmission and reception log management unit 426 manages the data transmission log. The data transfer module MD420 may transmit the data relay server reception log and the data relay server transmission log extracted from the transmission and reception log managed by the transmission and reception log management unit 426 to the data collection server 330.
[0091] (Buffer unit 427) The buffer unit 427 accumulates the video data received by the communication unit 422. The video data accumulated in the buffer unit 427 is delayed by the adjustment time according to the control of the control unit 421 and transmitted to the UE 110.
[0092] <2-2-3. Examples of server configurations included in Internet 3> Next, configuration examples of various servers included in the Internet 3 will be described with reference to Fig. 4 and Fig. 5. Fig. 4 and Fig. 5 are block diagrams showing configuration examples of various servers included in the Internet 3 according to this embodiment.
[0093] Example of the configuration of the service server 310 4 shows an example of the configuration of the service server 310. The service server 310 includes a control unit 311, a communication unit 312, and a storage unit 313.
[0094] (Control unit 311) The control unit 311 functions as an arithmetic processing device and a control device, and controls the overall operation of the service server 310 in accordance with various programs. The control unit 311 is realized by an electronic circuit such as a CPU or a microprocessor. The control unit 311 may include a ROM for storing the programs to be used and arithmetic parameters, and a RAM for temporarily storing parameters that change as appropriate.
[0095] (Communication unit 312) The communication unit 312 is a communication module for transmitting and receiving data to and from other devices. The communication unit 312 performs communication in compliance with any wired or wireless communication standard. As an example, the communication unit 312 receives information related to a video distribution service from each UE 110. For example, the communication unit 312 receives login information of a user and selection information of a video desired to be distributed. The communication unit 312 also transmits the login information of the user to the authentication server 320. Then, the communication unit 312 receives information from the authentication server 320 as to whether or not the login information matches the login information of a user registered in advance.
[0096] (Storage unit 313) The storage unit 313 is a device that stores information. The storage unit 313 is configured with any storage medium such as a HDD, an SSD, or a flash memory. The storage unit 313 stores information for the operation of the service server 310. The storage unit 313 also has a content information management unit 314.
[0097] (Content information management unit 314) The content information management unit 314 manages content information, which is information about moving images that a user can view as content. For example, the content information includes a content name, an identification name of the upload server 410 in which the content is stored, and a URL (Uniform Resource Locator) of the content.
[0098] Example of the configuration of the data collection server 330 4 shows an example of the configuration of the data collection server 330. The data collection server 330 includes a control unit 331, a communication unit 333, and a storage unit 334.
[0099] (Control unit 331) The control unit 331 functions as an arithmetic processing unit and a control device, and controls the overall operation of the data collection server 330 in accordance with various programs. The control unit 331 is realized by electronic circuits such as a CPU or a microprocessor. The control unit 331 may include a ROM for storing the programs and arithmetic parameters to be used, and a RAM for temporarily storing parameters that change as appropriate.
[0100] (Delay time calculation unit 332) Furthermore, the control unit 331 has a delay time calculation unit 332. The delay time calculation unit 332 calculates a transmission delay time (hereinafter, simply referred to as "delay time") of data transmitted from the upload server 410 to each UE 110 from the transmission log and reception log collected from each device. The calculation of the delay time will be described later in detail.
[0101] (Communication Department 333) The communication unit 333 is a communication module for transmitting and receiving data to and from other devices. The communication unit 333 performs communication in compliance with any wired or wireless communication standard. The communication unit 333 acquires transmission and reception logs from each device. For example, the communication unit 333 acquires a UE reception log from each UE 110. The communication unit 333 also acquires an upload server transmission log from the upload server 410. The communication unit 333 also acquires a data relay server reception log and a data relay server transmission log from the data relay server 420.
[0102] (Storage unit 334) The storage unit 334 is a device that stores information. The storage unit 334 is configured with any storage medium such as a HDD, an SSD, or a flash memory. The storage unit 334 stores information for the operation of the data collection server 330. The storage unit 334 also includes a transmission / reception data management unit 335.
[0103] (Transmission / reception data management unit 335) The transmission / reception data management unit 335 stores the transmission logs and reception logs received from each device by the communication unit 333. The delay time calculation unit 332 extracts the transmission logs and reception logs related to the same data from the transmission logs and reception logs stored in the transmission / reception data management unit 335, and calculates the delay time.
[0104] Example of the configuration of the synchronized viewing control server 340 First, a description will be given of an example of the configuration of the synchronized viewing control server 340. Fig. 5 shows an example of the configuration of the synchronized viewing control server 340. The synchronized viewing control server 340 includes a control unit 341, a communication unit 343, and a storage unit 344.
[0105] (Control unit 341) The control unit 341 functions as an arithmetic processing device and a control device, and controls the overall operation of the synchronized viewing control server 340 in accordance with various programs. The control unit 341 is realized by an electronic circuit such as a CPU or a microprocessor. The control unit 341 may include a ROM for storing the programs to be used and arithmetic parameters, and a RAM for temporarily storing parameters that change as appropriate.
[0106] (Adjustment time calculation unit 342) The control unit 341 also has an adjustment time calculation unit 342. The adjustment time calculation unit 342 calculates an adjustment time for each UE 110 based on a delay time from the upload server 410 to each UE 110, which is acquired by the communication unit 343 from the data collection server 330. The calculation of the adjustment time will be described later in detail.
[0107] (Communication Department 343) The communication unit 343 is a communication module for transmitting and receiving data to and from other devices. The communication unit 343 performs communication in compliance with any wired or wireless communication standard. For example, the communication unit 343 receives the delay time from the upload server 410 to each UE 110 from the data collection server 330. In addition, the communication unit 343 transmits the adjustment time for each UE 110 to the data relay server 420 that is closest to the UE 110 for which the adjustment time has been calculated.
[0108] (Storage unit 344) The storage unit 344 is a device that stores information. The storage unit 344 is configured with any storage medium such as a HDD, an SSD, or a flash memory. The storage unit 344 stores information for the operation of the synchronized viewing control server 340. The storage unit 344 also has a UE-EDC management unit 345, a group management unit 346, a user management unit 347, and a data relay server management unit 348.
[0109] (UE-EDC Management Department 345) The UE-EDC management unit 345 stores, for each UE 110, the correspondence between the UE 110 and the data relay server 420 closest to the UE 110.
[0110] (Group Management Department 346) The group management unit 346 stores information about the group to which each UE 110 belongs. The group management unit 346 manages the UEs 110 that are synchronized with each other in terms of video delivery by making them belong to the same group.
[0111] (User management unit 347) The user management unit 347 manages information about the user of each UE 110. For example, the user management unit 347 may manage the user ID of each user, the identification number of the group to which each user belongs, the IP address and port number of each UE 110, and the like.
[0112] (Data relay server management unit 348) The data relay server management unit 348 manages the distribution path of video data from the upload server 410 to each data relay server 420E. More specifically, the data relay server management unit 348 may manage the IP addresses of the data relay servers 420 included in the distribution path of video data from the upload server 410 to each data relay server 420E.
[0113] <2-3. Example of operation> Next, an operation example of the system 1 according to the first embodiment of the present invention will be described.
[0114] Fig. 6 is a flow diagram showing an example of the flow of the operation of the system 1 according to the first embodiment of the present invention. As shown in Fig. 6, the operation of the system 1 according to the first embodiment of the present invention is divided into the steps of (S1) transmission of video data from the AMR 100, (S2) user login processing, (S3) setting of relaying of video data, (S4) measurement of delay time, (S5) calculation of group delay amount, (S6) setting of adjustment time, and (S7) relaying of video data.
[0115] Each of these steps will be described below with reference to FIGS.
[0116] (S1) Transmission of video data from AMR100 FIG. 7 is a sequence diagram showing an example of the flow of the operation in step S1 of the flow diagram shown in FIG. 6 by the system 1. First, the AMR 100 establishes a session with the network provided by the base station 51. Then, the AMR 100 requests a DNS (Domain Name System) server to perform name resolution using the FQDN (Fully Qualified Domain Name) of the upload server 410 as an argument (step S101). The DNS server is a name resolution server that responds to a name resolution request received from a client. Although not shown in FIG. 1, the DNS server is installed in the CN4. The AMR 100 requests the nearest DNS server (local DNS server) in the CN4 to perform name resolution. The FQDN of the upload server 410 may be obtained, for example, by inputting the FQDN designated by the CDN operator by the service provider.
[0117] The DNS server that receives the name resolution request from the AMR 100 performs name resolution for the FQDN of the upload server 410, and returns an IP address that corresponds to the FQDN (step S102).
[0118] The AMR 100 transmits the captured video data to the IP address acquired from the DNS server, thereby uploading the video data to the upload server 410 (step S103). Here, the content name of the video data is transmitted together with the video data. The AMR 100 may transmit video data captured in advance, or may upload the video being captured in real time.
[0119] When communication unit 412 of upload server 410 receives the video data, control unit 411 associates the video data with the content name and stores it in video data storage unit 414. When storage of the video data in video data storage unit 414 is completed, control unit 411 transmits "OK" from communication unit 412 to AMR 100, indicating that storage of the video data has been successful (step S104).
[0120] Next, control unit 411 controls communication unit 412 to notify service server 310 of the content name of the video data and the URL indicating the storage location of the content (step S105).
[0121] When communication unit 312 of service server 310 receives the content name and URL, control unit 311 stores content information including the identification name of upload server 410 where the video data is stored in content information management unit 314, the content name, and the URL, in content information management unit 314. When storage of the video data in content information management unit 314 is completed, control unit 311 transmits "OK" from communication unit 312 to upload server 410, indicating that storage of the content information was successful (step S106).
[0122] (S2) User login process FIG. 8 is a sequence diagram showing an example of the flow of operations in step S2 of the flowchart shown in FIG. 6 by the system 1. In FIG.
[0123] First, the user inputs login information into a login screen for a distribution service displayed on UE 110. Communication unit 112 of UE 110 transmits the input login information to make a login request to service server 310 (step S201).
[0124] The control unit 311 of the service server 310 controls the communication unit 312 to request user authentication from the authentication server 320 using the login information received by the communication unit 312 as an argument (step S202).
[0125] The authentication server 320 executes user authentication by checking whether login information matching the login information received from the service server 310 is stored in the login information database (step S203). Here, it is assumed that login information matching the login information is stored, that is, the user authentication is successful.
[0126] If the user authentication is successful, the authentication server 320 transmits to the service server 310 an "OK" indicating that the user authentication is successful (step S204).
[0127] When communication unit 312 receives "OK" from authentication server 320, control unit 311 of service server 310 generates content page information for displaying a content page showing a list of contents that can be viewed by the user (i.e., contents that can be distributed to UE 110) based on the information stored in content information management unit 314. The content page may be, for example, a page including a list of content names. The content page information includes the content name and the content URL. Then, control unit 311 controls communication unit 312 to transmit the content page information to UE 110 (step S205).
[0128] The operation display unit 115 of the UE 110 displays the content page based on the content page information received by the communication unit 112 from the service server 310. Then, the operation display unit 115 accepts an input of a selection of content that the user desires to view from a list of viewable contents displayed on the content page. The control unit 111 acquires a content URL of the selected content from the content page information (step S206). The control unit 111 of the UE 110 notifies the service server 310 of the acquired content URL (step S207).
[0129] The control unit 311 of the service server 310 controls the communication unit 312 to transmit to the synchronized viewing control server 340 the content URL received by the communication unit 312, as well as the user ID of the user of the UE 110 that sent the content URL, and the IP address and port number of the UE 110 (step S208).
[0130] When the communication unit 343 receives the above information, the control unit 341 of the synchronized viewing control server 340 identifies the IP address of the local DNS server of the UE 110 and the IP address of the nearest data relay server 420E, and updates the UE-EDC correspondence table stored in the UE-EDC management unit 345 (step S209). Note that each IP address may be identified by a server (not shown) managed by the CDN operator when user authentication is successful. The synchronized viewing control server 340 can obtain each IP address from such a server.
[0131] Fig. 9 is a diagram showing an example of information stored in the synchronized viewing control server 340. The upper part of Fig. 9 shows an example of a UE-EDC correspondence table managed by the UE-EDC management unit 345. The UE-EDC correspondence table 3451 managed by the UE-EDC management unit 345 includes the IP address of the local DNS server of each UE 110 and the IP address of the nearest data relay server 420E. For example, the UE-EDC correspondence table 3451 indicates that the IP address of the local DNS server of the UE 110 used by a user with a user ID of "10027" is "200.100.100.1" and the IP address of the nearest data relay server 420E is "200.100.200.10".
[0132] The control unit 341 of the synchronized viewing control server 340 extracts the FQDN of the upload server 410 and the path name of the content from the content URL. Then, the control unit 341 determines whether a group of users who will receive the content selected by the user already exists. For example, the control unit 341 may make the determination by referring to a group management table managed by the group management unit 346.
[0133] An example of a group management table managed by group management unit 346 is shown in the middle of Fig. 9. As shown in Fig. 9, group management table 3461 includes a group ID for identifying a group, an FQDN of upload server 410, and a path name of the content. For example, group management table 3461 indicates that a group with a group ID of "001" is a group to which UE 110 belongs that receives video data, as content, stored in " / path1 / content1" of upload server 410 with an FQDN of "uploader1.zoo.co.jp".
[0134] If the combination of the FQDN of upload server 410 and the path name of the content extracted from the content URL acquired from service server 310 is not included in group management table 3461, control unit 341 updates group management table 3461 (step S210). Specifically, control unit 311 associates the newly generated group ID with the combination of the FQDN of upload server 410 and the path name of the content, and stores them in group management table 3461. Note that if the combination is already included in group management table 3461, the process of step S210 is skipped.
[0135] Furthermore, the control unit 341 associates the user about whom the communication unit 343 has acquired various information from the service server 310 in step S208 with a group corresponding to the content selected by the user. More specifically, the control unit 341 associates the group corresponding to the content URL acquired in step S208 with the user (i.e., with the UE 110) and updates the user management table managed by the user management unit 347 (step S211). By such processing, it is possible to make the UEs 110 receiving the same video distribution belong to the same group.
[0136] An example of a user management table managed by the user management unit 347 is shown in the lower part of Fig. 9. As shown in Fig. 9, the user management table 3471 includes a user ID, a group to which the user of the user ID belongs (i.e., a group to which the UE 110 used by the user belongs), an IP address of the UE 110, and a port number. For example, in step S208, it is assumed that a content URL including a user ID "10027", an IP address "410.10.10.1" of the UE 110, a port number "100", and "uploader1.zoo.co.jp / path1 / content1 / " is acquired. In this case, the control unit 341 refers to the group management table 3461 to identify "group 1" corresponding to the content URL, and stores it in association with the user ID, the IP address of the UE 110, and the port number as shown in the second row of the user management table 3471.
[0137] When the update of each management table is completed, the control unit 341 controls the communication unit 343 to transmit "OK" indicating that the update of the management table is completed to the upload server 410 (step S212). The control unit 411 of the upload server 410 controls the communication unit 412 to transmit "OK" indicating that the selection of the content has been accepted to the UE 110 (step S213).
[0138] The system 1 executes the process of step S2 for all users who log in to the service server 310 and select content to view.
[0139] (S3) Video data relay settings FIG. 10 is a sequence diagram showing an example of the flow of operations performed by the system 1 in step S3 of the flowchart shown in FIG.
[0140] First, the control unit 341 of the synchronized viewing control server 340 extracts a group ID corresponding to each UE 110 that belongs to a group, that is, for each UE 110 whose information is stored in the user management table 3471. Then, the control unit 341 refers to the group management table 3461 and extracts the FQDN of the upload server 410 that corresponds to the extracted group ID, thereby acquiring the FQDN of the upload server 410 that corresponds to each UE 110 (S301).
[0141] The control unit 341 controls the communication unit 343 to request a DNS server (not shown in Fig. 1) to perform name resolution of the FQDN of each of the acquired upload servers 410 (step S302). The DNS server is included in CN4.
[0142] The DNS server that receives the name resolution request from the synchronized viewing control server 340 performs name resolution of the FQDN of the upload server 410, and returns an IP address that corresponds to the FQDN (step S303).
[0143] The control unit 341 of the synchronized viewing control server 340 refers to the UE-EDC correspondence table 3451 and extracts the IP address of the data relay server 420E that is closest to each UE 110 (step S304).
[0144] The control unit 341 of the synchronized viewing control server 340 requests the operator NW management server 430 for a communication path between the upload server 410 and the data relay server 420E (step S305). Here, for each UE 110, the control unit 341 takes as arguments the IP address of the upload server 410 corresponding to the group to which the UE 110 belongs, obtained from the DNS server, and the IP address of the data relay server 420E nearest to the UE 110, extracted from the UE-EDC correspondence table 3451. Note that, if there are duplicate combinations of upload servers 410 and data relay servers 420E corresponding to each UE 110, the control unit 341 only needs to make a request for a communication path for the duplicate combination at least once.
[0145] In response to the received route request, the provider NW management server 430 identifies a communication route between each upload server 410 and the data relay server 420E, and transmits the identified communication route to the synchronized viewing control server 340 (step S306). More specifically, the provider NW management server 430 transmits, as the communication route, a list of IP addresses of data centers that are between the upload server 410 and the data relay server 420E and that can communicate with each other.
[0146] Next, the control unit 341 of the synchronized viewing control server 340 controls the communication unit 343 to request each server to set the communication path received by the communication unit 343 as a delivery path for each video data. More specifically, the control unit 341 controls the communication unit 343 to transmit a path setting request to each server to set the relay destination of data from each server on the communication path as the relay destination of the video data to be delivered.
[0147] First, the control unit 341 makes a relay destination setting request to the upload server 410 for each distribution route, using as an argument the IP address of the data relay server 420 that is the relay destination of the video data of the upload server 410 on the distribution route from the upload server 410 to the UE 110 (step S307). However, if there are duplicate data relay servers 420 that are the relay destination of video data distributed to UE 110 belonging to the same group, the control unit 341 needs to make at least one relay destination setting request using as an argument the IP address of the duplicate data relay server 420 that is the relay destination.
[0148] When the control unit 411 of the upload server 410 sets the relay destination in response to the relay destination setting request received by the communication unit 412, the communication unit 412 sends an "OK" to the synchronized viewing control server 340, indicating that the relay destination setting was successful (step S308).
[0149] Next, the control unit 341 of the synchronized viewing control server 340 makes a relay destination setting request to each data relay server 420 (420a to 420n) for each distribution route, using as an argument the IP address of the data relay server 420 or UE 110 that is the relay destination of the video data of each data relay server 420 (420a to 420n) included in the distribution route from the upload server 410 to the UE 110 (steps S309a to n). Note that a to n are integers, and a to n are set according to the distribution route. Here, if there are duplicate data relay servers 420 that are the relay destinations of video data distributed to UE 110 belonging to the same group, the control unit 341 only needs to make a relay destination setting request at least once, using as an argument the IP address of the duplicate data relay server 420 that is the relay destination.
[0150] When the control unit 421 of each data relay server 420 (420a to 420n) performs relay destination setting in response to the relay destination setting request received by the communication unit 422, the communication unit 422 transmits "OK" to the synchronized viewing control server 340, indicating that the relay destination setting was successful (steps S310a to S310n).
[0151] The control unit 341 of the synchronized viewing control server 340 updates the data relay server path management table stored in the data relay server management unit 348 (step S311). Fig. 11 shows an example of the data relay server path management table stored in the data relay server management unit 348. The data relay server path management table 3481 stores the delivery path to each UE 110 of the delivery destination for each upload server 410. For example, Fig. 11 shows that the IP addresses of each data relay server 420 and UE 110 included in the delivery path from the upload server 410 to a certain UE 110 are "XXXX", "YYYY", ...
[0152] (S4) Measurement of delay time Fig. 12 is a diagram showing an example of a data flow in step S4 of the flow diagram shown in Fig. 6 by the system 1. Fig. 13 is a sequence diagram showing an example of an operation flow in step S4 of the flow diagram shown in Fig. 6 by the system 1.
[0153] In step S4, a delay time of data transmission is measured for each UE 110. As an example, as shown in Fig. 12, the delay time for the UE 110-2 is measured based on the transmission and reception logs collected by the data collection server 330 from the upload server 410, the data relay server 420E-1, and the UE 110-2.
[0154] Here, the process of step S4 is performed after the start of distribution of video data according to the distribution route set up to step S3.
[0155] When video data is transmitted from the communication unit 412, the data transfer module MD410 of the upload server 410 transmits an upload server transmission log to the data collection server 330 (step S401). The upload server transmission log indicates the time of transmission by the communication unit 412 of video packets constituting the video data. Note that video packets transmitted to a UE 110 to which a certain data relay server 420E is closest are an example of first data for that data relay server 420E. Note that video packets transmitted to a UE 110 to which a certain data relay server 420E is not closest are an example of second data for that data relay server 420E.
[0156] More specifically, the data transfer module MD410 may transmit the upload server transmission log at a predetermined interval according to the sequence number of the video packet that constitutes the video data. The predetermined interval may be, for example, 1000 packets. For example, the data transfer module MD410 may transmit the upload server transmission log for a video packet whose last three digits of the sequence number are "001".
[0157] When the communication unit 333 receives the upload server transmission log from the upload server 410, the delay time calculation unit 332 of the data collection server 330 stores the upload server transmission log in the transmitted and received data management unit 335 (step S402). Note that the time indicated in the upload server transmission log is an example of the first time.
[0158] Next, when the video data is received by the communication unit 422 of the data transfer module MD420 (MD420-a to MD420-n) of the data relay server 420E (420E-a to 420E-n) nearest to each UE 110 to which the video data is delivered, the data transfer module MD420 transmits a data relay server reception log to the data collection server 330. Furthermore, when video data is transmitted from the communication unit 422, the data transfer module MD420 of each data relay server 420E transmits a data relay server transmission log to the data collection server 330 (steps S403a to S403n).
[0159] More specifically, the data transfer module MD420 transmits the data relay server reception log and the data relay server transmission log when a video packet corresponding to the upload server transmission log transmitted in step S401 is transmitted and received. The data transfer module MD420 transmits the data relay server reception log and the data relay server transmission log for the video packet corresponding to the upload server transmission log by referencing the sequence number. For example, the data transfer module MD420 may transmit the data relay server reception log and the data relay server transmission log for the video packet whose last three digits are "001" for which the data transfer module MD410 transmits the upload server transmission log. The time indicated by the data relay server reception log is an example of the third time. The time indicated by the data relay server transmission log is an example of the second time.
[0160] When the communication unit 333 receives the data relay server reception log and the data relay server transmission log from each data relay server 420E, the delay time calculation unit 332 of the data collection server 330 stores the data relay server reception log and the data relay server transmission log in the transmitted and received data management unit 335 (steps S404a-n).
[0161] Next, when the data transfer module MD110 (MD110-a to MD110-m) of each UE 110 (110-a to 110E-m) to which the video data is delivered receives the video data from the communication unit 112, the data transfer module MD110 (MD110-a to MD110-m) transmits a UE reception log to the data collection server 330 (steps S405a to m). Note that a to m are integers, and a to m are set according to the delivery path. Specifically, the data transfer module MD110 transmits the UE reception log when a video packet corresponding to the upload server transmission log transmitted in step S401 is transmitted or received. The data transfer module MD110 transmits the UE reception log for the video packet corresponding to the upload server transmission log by referring to the sequence number. For example, the data transfer module MD110 may transmit the UE reception log for the video packet whose last three digits of the sequence number are "001", for which the data transfer module MD410 transmits the upload server transmission log. Note that the time indicated by the UE reception log is an example of the fourth time.
[0162] When the communication unit 333 receives the UE reception log from each UE 110, the delay time calculation unit 332 of the data collection server 330 stores the UE reception log in the transmission / reception data management unit 335 (steps S406a to m).
[0163] Next, the delay time calculation unit 332 calculates the delay time of the video data for each UE 110. The delay time of a UE 110 for which the data relay server 420E is the nearest is a first transmission delay time for that data relay server 420E. The delay time of a UE 110 for which the data relay server 420E is not the nearest is a second transmission delay time for that data relay server 420E. A specific method of calculating the delay time will be described with reference to Fig. 14. Fig. 14 is a diagram for explaining a method of calculating the delay time of the video data for each UE 110.
[0164] First, the delay time calculation unit 332 extracts the upload server transmission log, data relay server reception log, data relay server transmission log, and UE reception log for the same video packet stored in the transmission and reception data management unit 335. Here, as shown in Fig. 14, it is assumed that the upload server transmission log, data relay server reception log, data relay server transmission log, and UE reception log represent transmission time T1, reception time T2, transmission time T3, and reception time T4, respectively.
[0165] From the extracted transmission and reception log, the delay time calculation unit 332 calculates the time from transmission time T1 to reception time T2 as the inter-DC transmission time v, which is the transmission time from the upload server 410 to the data relay server 420E.
[0166] Furthermore, the delay time calculation unit 332 calculates the time from the transmission time T3 to the reception time T4 as the EDC-UE transmission time μ, which is the transmission time from the data relay server 420E to the UE 110.
[0167] Then, the delay time calculation unit 332 calculates the sum of the inter-DC transmission time v and the EDC-UE transmission time μ corresponding to the UE 110 as the delay time for the UE 110. The delay time calculation unit 332 stores, in the transmission and reception data management unit 335, the IP address and port number of the upload server 410 that is the distribution source for each UE 110, the time indicated by the UE reception log, the IP address and port number of the UE 110, and the delay time (step S407).
[0168] Here, an example in which the delay time is calculated based on video packets of a video distributed as content has been described, but data used to calculate the delay time is not limited to this. More specifically, packets other than video packets may be used as long as they are packets transmitted to UE 110 via data relay server 420E starting from upload server 410 on the same communication path as the distribution path of the video distributed as content. For example, the delay time may be calculated based on packets constituting a ping transmitted as pre-processing before the start of video distribution. Also, the delay time may be calculated based on video packets of a commercial message (CM) video distributed to each UE 110 before the distribution of the video as content.
[0169] (S5) Calculating group delay FIG. 15 is a sequence diagram showing an example of the flow of operations performed by the system 1 in step S5 of the flowchart shown in FIG.
[0170] In step S5, the synchronized viewing control server 340 calculates the amount of group delay used to synchronize the delivery of content to the UEs 110 belonging to the same group.
[0171] First, the adjustment time calculation unit 342 of the synchronized viewing control server 340 controls the communication unit 343 to transmit a request for the most recent multiple delay times for each UE 110 belonging to each group to the data collection server 330 (step S501).
[0172] When the communication unit 333 receives the delay time request, the control unit 331 of the data collection server 330 extracts a plurality of delay times most recently calculated for each UE 110 of each group stored in the transmission / reception data management unit 335. Then, the control unit 331 controls the communication unit 333 to transmit a list of the extracted delay times for each UE 110 to the synchronized viewing control server 340 (step S502).
[0173] The adjustment time calculation unit 342 of the synchronized viewing control server 340 calculates the average delay time and jitter included in the list based on the list of delay times for each UE received by the communication unit 343. Furthermore, the adjustment time calculation unit 342 calculates a total value by adding up the average delay time and jitter of each UE 110. Then, for each group, the adjustment time calculation unit 342 sets the maximum total value of the above total values of the UEs 110 belonging to the group as the group delay amount (step S503). The group delay amount is a reference time for synchronizing video distribution among the UEs 110 belonging to the same group.
[0174] (S6) Setting the adjustment time Fig. 16 is a diagram showing an example of a data flow in step S6 of the flow diagram shown in Fig. 6 by the system 1. Fig. 17 is a sequence diagram showing an example of an operation flow in step S6 of the flow diagram shown in Fig. 6 by the system 1.
[0175] 16, an adjustment time for the UE 110 that is the destination of video data is set in the data relay server 420E (420E-1, 420E-2, 420E-4, and 420E-5) that is closest to each UE 110 to which video data is delivered. For example, an adjustment time for the UE 110-2 is set in the data relay server 420E-1.
[0176] First, the adjustment time calculation unit 342 of the synchronized viewing control server 340 calculates an adjustment time for each UE 110 belonging to each group (step S601). The adjustment time may be calculated by subtracting the delay time of the UE 110 from the group delay amount of the group to which the UE 110 belongs. More specifically, the adjustment time is set as an adjustment time Δ from the reception time T2 to the transmission time T3 in FIG. 14.
[0177] The control unit 341 refers to the data relay server path management table 3481 stored in the data relay server management unit 348, and acquires the IP address of the data relay server 420E closest to each UE 110. Then, the control unit 341 transmits a setting request for the adjustment time of the corresponding UE 110 to each of the acquired IP addresses of the data relay servers 420E (420-a to 420-n) as the transmission destination (steps S602a to n). The setting request for the adjustment time of the corresponding UE 110 includes the adjustment time calculated in step S601.
[0178] When the communication unit 422 of the control unit 421 of each data relay server 420E receives the adjustment time setting request, the control unit 421 controls the storage of the adjustment time of each UE 110 for which the data relay server 420E is the nearest data relay server 420E in the adjustment time management unit 424. The UE 110 for which the data relay server 420E is the nearest is the first user terminal for the data relay server 420E. Then, when the storage of the adjustment time is completed, the control unit 421 controls the communication unit 422 to transmit "OK" to the synchronized viewing control server 340, indicating that the adjustment time setting was successful (steps 603a-n).
[0179] (S7) Relaying video data FIG. 18 is a sequence diagram showing an example of the flow of operations performed by the system 1 in step S7 of the flowchart shown in FIG.
[0180] First, the control unit 411 of the upload server 410 controls the communication unit 412 to transmit the video data to the data relay server 420-a that relays the video data according to the relay destination setting (step S701). The communication unit 412 may transmit the video data using a protocol such as RTP (Real-time Transport Protocol) or secure RTP, or other real-time video distribution protocols.
[0181] Upon receiving the video data, the control unit 421 of the data relay server 420-a controls the communication unit 422 to transmit the video data to the data relay server 420-b that relays the video data in accordance with the relay destination setting (step S702-a).
[0182] Next, each data relay server 420 (420-b to 420-p) included in the distribution path of the video data receives the video data from the source data relay server 420, and controls the communication unit 422 to transmit the video data to each data relay server 420 that will relay the video data according to the relay destination setting (steps S702-b to p). More specifically, the video data is relayed up to the data relay server 420E. Note that a, b to p are integers, and a to p are set according to the distribution path.
[0183] When the communication unit 422 of the data relay server 420E closest to the UE 110 receives video from the data relay server 420-p, the control unit 421 controls the video data to be temporarily stored in the buffer unit 427, thereby delaying the transmission of the video data (step S703).
[0184] Then, the control unit 421 controls the communication unit 422 to transmit the video data stored in the buffer unit 427 to the UE 110 when the adjustment time corresponding to the UE 110 and managed by the adjustment time management unit 424 has elapsed since the video data was received by the communication unit 422 (step S704). In general, a server can have a larger buffer than a user terminal, so that it is easy to implement having the relay server 420 perform such control even when the adjustment time is large.
[0185] The control unit 111 of the UE 110 controls the communication unit 112 to decode the received video data and display the video on the operation display unit 115 (step S705). The processes of steps S701 to S705 are executed for each UE 110, so that the delivery of video to UEs 110 belonging to the same group is synchronized. Specifically, the video is played on each UE 110 at a timing when a time equivalent to the group delay amount has elapsed from the time when the upload server 410 delivered the video. Here, if there are multiple UEs 110 that are closest to the same data relay server 420E, the control unit 421 of the data relay server 420E controls the communication unit 422 to transmit video data to each of the multiple UEs 110 with a delay of the corresponding adjustment time. In this way, the control unit 421 of the data relay server 420E can transmit different content with a delay even if multiple UEs 110 belong to different groups.
[0186] Each step of the flow chart of FIG. 6 has been described above. Among the steps described so far, steps S4 to S7 may be repeated. The processing of steps S4 to S7 may be executed at a predetermined interval. For example, the adjustment time may be calculated by the synchronized viewing control server 340 at a predetermined interval based on the transmission and reception logs transmitted from each data transfer module MD to the data collection server 330 at the predetermined interval. Then, the calculated adjustment time may be transmitted from the synchronized viewing control server 340 to the data relay server 420E at the predetermined interval. The predetermined interval may be expressed, for example, by the number of packets. Note that, when steps S4 to S7 are repeated, transmission and reception logs may be transmitted from the upload server 410, the data relay server 420E, and the data transfer module MD of the UE 110 to the data collection server 330 in response to the transmission and reception of the video data transmitted in step S7. That is, the processing of steps S7 and S4 may be executed in parallel.
[0187] By repeating the processes of steps S4 to S7, even if the state of each network changes and the delay time for each UE 110 changes, the adjustment time is dynamically changed, so that synchronization of video distribution can be maintained. For example, a network failure occurs in a part of the mobile communication network 2, which may cause a detouring of the distribution path. In this case, among the multiple UEs 110 belonging to the group, a UE 110 with a large delay time may occur. Here, by dynamically changing the adjustment time, synchronization of video distribution can be maintained. Furthermore, when the network is restored, it is assumed that the distribution path returns to the path before the occurrence of the network failure, and the delay time of the UE 110 returns to the time before the occurrence of the network failure. Even in such a case, by dynamically changing the adjustment time, synchronization of video distribution can still be maintained.
[0188] <2-4. Summary> According to the configuration described above, since data collection server 330 measures the delay time of each UE 110, UE 110 does not need to collect the delay time. Therefore, compared with the conventional content synchronization method using the MMT method, implementation of upload server 410 and UE 110, which are the content distribution sources, becomes easier, and the load on upload server 410 and UE 110 is reduced.
[0189] Furthermore, by using the buffer of the data relay server 420E to adjust the delay, it is possible to achieve synchronization of video distribution even if the group includes a UE 110 that is located farther away than other UEs 110 and has a large delay time, compared to when the UE 110 has a buffer.
[0190] Furthermore, according to the configuration of this embodiment, the upload server 410 and the UE 110 do not need to implement any special protocol, and can use software for the commonly used RTP protocol, making it possible to achieve synchronization of video distribution at low cost.
[0191] Furthermore, according to the configuration of this embodiment, by setting a group for each video, even if there are multiple videos being distributed, the distribution of the same video to the UEs 110 that receive the distribution of the video is synchronized. Furthermore, according to the configuration of this embodiment, even if the nearest data relay server 420E is different, it is possible to synchronize the distribution of the UEs 110 that belong to the same group.
[0192] <<3. Second embodiment>> <3-1. Overview> Next, a second embodiment of the present invention will be described. In the second embodiment of the present invention, the method of calculating the delay time is different from that of the first embodiment. Here, among the configurations of the system according to the second embodiment of the present invention, the configurations different from the configuration of the system 1 according to the first embodiment of the present invention will be mainly described, and a detailed description of the configurations that are the same as the configuration of the system 1 according to the first embodiment of the present invention will be omitted.
[0193] First, a configuration example of the system 11 according to the second embodiment of the present invention will be described. FIG. 19 is a diagram showing an example of the configuration of the system 11 according to this embodiment. The system 11 includes a mobile communication network 12 and the Internet 13. The mobile communication network 12 includes a CN 14. The Internet 13 includes a data collection server for AN 350 in addition to the Internet 3 according to the first embodiment. The Internet 13 also includes a data collection server 3301 and a synchronized viewing control server 3401 instead of the data collection server 330 and the synchronized viewing control server 340 according to the first embodiment. The data collection server 3301 calculates the delay time for the UE 110 in a different manner from the data collection server 330. The synchronized viewing control server 3401 calculates the group delay time and the adjustment time for each UE 110 in a different manner from the synchronized viewing control server 340.
[0194] Furthermore, the CN14 includes an AN (Autonomous Network) controller 440 in addition to the CN4 according to the first embodiment.
[0195] The CN14 according to the second embodiment of the present invention is an autonomous network that autonomously recovers from a failure under the control of the AN controller 440. The AN controller 440 is a device that constantly monitors the network in the CN4. The AN controller 440 autonomously recovers from a failure that occurs in the CN4. When a failure occurs in the CN4, the AN controller 440 manages communication paths to avoid the failure and to circumvent it until the failure is recovered. When no failure occurs, the AN controller 440 controls communication in the CN4 so that each data is transmitted via a communication path with a shorter transmission time based on the measurement result of the transmission time between each data center.
[0196] The AN data collection server 350 is a server that collects the transmission times between the data centers by the AN controller 440 .
[0197] <3-2. Configuration example> Next, an example of the configuration of each device according to this embodiment will be described.
[0198] -Example of the configuration of the data collection server 3301 Fig. 20 is a block diagram showing an example of the configuration of the data collection server 3301 and the synchronized viewing control server 3401. As shown in the upper part of Fig. 20, the data collection server 3301 includes a control unit 3311 instead of the control unit 331 of the data collection server 330 according to the first embodiment. The control unit 3311 differs from the control unit 331 in that it includes a delay time calculation unit 3321. The delay time calculation unit 3321 calculates the delay time for the UE 110 by a method different from that of the delay time calculation unit 332. The method of calculating the delay time will be described later.
[0199] Example of the configuration of the synchronized viewing control server 3401 20, the synchronized viewing control server 3401 includes a control unit 3411 instead of the control unit 341 of the synchronized viewing control server 340 according to the first embodiment. The control unit 3411 differs from the control unit 341 in that it includes an adjustment time calculation unit 3421. The adjustment time calculation unit 3421 calculates the group delay time of each group and the adjustment time for each UE 110 using a method different from that of the adjustment time calculation unit 342. The method of calculating the group delay time and the adjustment time for each UE 110 will be described later.
[0200] Example of configuration of the -AN data collection server 350 21 is a block diagram showing an example of the configuration of the AN data collection server 350. The AN data collection server 350 includes a control unit 351, a communication unit 352, and a storage unit 353.
[0201] (Control unit 351) The control unit 351 functions as a calculation processing unit and a control unit, and controls the overall operation of the AN data collection server 350 in accordance with various programs. The control unit 351 is realized by electronic circuits such as a CPU or a microprocessor. The control unit 351 may include a ROM for storing the programs to be used and calculation parameters, and a RAM for temporarily storing parameters that change as appropriate.
[0202] (Communication section 352) The communication unit 352 is a communication module for transmitting and receiving data to and from other devices. The communication unit 352 performs communication in compliance with any wired or wireless communication standard. The communication unit 352 collects the transmission time between each data center from the AN controller 440.
[0203] (Storage unit 353) The storage unit 353 is a device that stores information. The storage unit 353 is configured with any storage medium such as a HDD, an SSD, or a flash memory. The storage unit 353 stores information for the operation of the AN data collection server 350. The storage unit 353 also includes a transmission time storage unit 354.
[0204] (Transmission time storage unit 354) The transmission time storage unit 354 stores the transmission time between each data center received by the communication unit 352 .
[0205] <3-2. Example of operation> Next, an operation example according to the second embodiment will be described. In the second embodiment, the operation is performed according to the flow diagram shown in Fig. 6. Here, in steps S1 to S3 and S7, the same processing as the processing explained in detail in the operation example of the first embodiment may be performed. Therefore, the details of steps S4 to S6 will be explained below.
[0206] (S4) Measurement of delay time Fig. 22 is a diagram showing an example of a data flow in step S4 of the flow diagram shown in Fig. 6 by the system 11. Fig. 23 is a sequence diagram showing an example of an operation flow in step S4 of the flow diagram shown in Fig. 6 by the system 11.
[0207] In step S4 by the system 11, the data delay time is measured for each UE 110. In this embodiment, as shown in Fig. 22, for example, the delay time for the UE 110-2 is measured based on the transmission and reception logs collected by the data collection server 3301 from the data relay server 420E-1 and the UE 110-2, and the transmission times between the data centers provided by the AN controller 440 to the AN data collection server 350.
[0208] First, the AN controller 440 transmits the transmission time between each data center to the AN data collection server 350 (step S1401). More specifically, the AN controller 440 measures the transmission time from the edge DC43U where each upload server 410 is installed to the edge DC43D where each data relay server 420E is installed. The AN controller 440 transmits the IP address of the data center corresponding to the transmission time to the AN data collection server 350 along with the transmission time.
[0209] The control unit 351 of the AN data collection server 350 controls the communication unit 352 to store the transmission times between the data centers received in the transmission / reception data management unit 335 (step S1402).
[0210] Next, when the video data is transmitted from the communication unit 422, the data transfer module MD420 (MD420-a to MD420-n) of the data relay server 420E (420E-a to 420E-n) closest to each UE 110 to which the video data is delivered transmits a data relay server transmission log to the data collection server 3301 (steps S1403a to n). Here, unlike steps S403-a to n in the first embodiment described using FIG. 13, the data relay server 420 does not need to transmit a data relay server reception log.
[0211] When the communication unit 333 receives the data relay server transmission log from each data relay server 420E, the delay time calculation unit 3321 of the data collection server 3301 stores the data relay server transmission log in the transmission and reception data management unit 335 (steps S1404a-n).
[0212] The processing of steps S1405-a to S1405-m and steps S1406-a to S1406-m executed subsequently is similar to the processing of steps S405-a to S406-a to S406-m in the first embodiment described with reference to FIG. 13, and therefore description thereof will be omitted.
[0213] Next, the delay time calculation unit 3321 calculates the delay time of the video data for the UE 110. Here, the delay time calculation unit 3321 extracts the data relay server transmission log and the UE reception log for the same video packet stored in the transmission / reception data management unit 335. Then, the delay time calculation unit 3321 calculates the time from the time indicated by the data relay server transmission log to the time indicated by the UE reception log as the delay time for the UE 110. Note that the delay time for the UE 110 according to the second embodiment coincides with the EDC-UE transmission time μ shown in FIG. 14.
[0214] Then, the delay time calculation unit 3321 stores, for each UE 110, the IP address and port number of the upload server 410 that is the distribution source, the time indicated by the UE reception log, the IP address and port number of the UE 110, and the delay time in the transmission and reception data management unit 335 (step S1407).
[0215] (S5) Calculating group delay FIG. 24 is a sequence diagram showing an example of the flow of operations performed by the system 11 in step S5 of the flowchart shown in FIG.
[0216] The processes in steps S1501 and S1502 are similar to those in steps S501 and S502 in the first embodiment described with reference to FIG. 13, and therefore will not be described.
[0217] Next, the adjustment time calculation unit 3421 of the synchronized viewing control server 3401 according to the second embodiment of the present invention controls the communication unit 343 to request the AN data collection server 350 for the transmission time between each data center. More specifically, the communication unit 343 requests each transmission time from the edge DC43U where the upload server 410 to which the content delivery is requested is installed to the edge DC43D where the nearest data relay server 420E of the UE 110 to which the content is delivered is installed (step S1503). Note that, hereinafter, the transmission time from the edge DC43U where the upload server 410 to which the content delivery to the UE 110 is requested is installed to the edge DC43D where the nearest data relay server 420E of the UE 110 is installed is also referred to as the "DC transmission time corresponding to the UE 110".
[0218] The control unit 351 of the AN data collection server 350 extracts the transmission time stored in the transmission time storage unit 354 based on the request for transmission time received by the communication unit 352, and controls the communication unit 352 to transmit it to the synchronous viewing control server 340 (step S1504).
[0219] The adjustment time calculation unit 3421 of the synchronized viewing control server 3401 calculates the average delay time and jitter included in the list based on the list of delay times for each UE 110 received by the communication unit 343. Furthermore, the adjustment time calculation unit 3421 calculates, for each UE 110, a sum of the average delay time and jitter of the UE 110 and the inter-DC transmission time corresponding to that UE 110.
[0220] Then, the adjustment time calculation unit 3421 sets the maximum sum of the sums of the UEs 110 belonging to each group as the group delay amount (step S1505). The group delay amount is a reference time for synchronizing the delivery of video among the UEs 110 belonging to the same group.
[0221] (S6) Setting the adjustment time The process of step S6 according to the second embodiment is executed according to the sequence diagram shown in Fig. 17. However, the method of calculating the adjustment time in step S601 is different from that of the first embodiment.
[0222] In the second embodiment, in step S601, the synchronized viewing control server 3402 of the synchronized viewing control server 3401 calculates, for each UE 110 belonging to each group, a value obtained by subtracting the sum of the delay time of the UE 110 and the inter-DC transmission time corresponding to the UE 110 from the group delay amount of the group to which the UE 110 belongs, as an adjustment time. Then, the processes from step S602 onwards are executed based on the calculated adjustment time.
[0223] The mobile communication network 2 according to the second embodiment of the present invention has been described above. The mobile communication network 2 calculates an adjustment time for the UE 110 using the inter-DC transmission time measured by the AN controller 440. Since the adjustment time can be calculated by making use of the measurement by the AN controller 440, it is possible to more easily realize synchronization of the playback timing of content in a plurality of user terminals when the AN 440 is installed.
[0224] <<4. Hardware configuration example>> Next, examples of the hardware configurations of the AMR 100, UE 110, service server 310, authentication server 320, data collection server 330, data collection server 3301, synchronized viewing control server 340, synchronized viewing control server 3401, AN data collection server 350, upload server 410, data relay server 420, operator NW management server 430 and AN controller 440 according to the first and second embodiments of the present invention will be described.
[0225] In the following, a hardware configuration example of the processing device 900 will be described as a hardware configuration example of the AMR100, UE110, service server 310, authentication server 320, data collection server 330, data collection server 3301, synchronized viewing control server 340, synchronized viewing control server 3401, AN data collection server 350, upload server 410, data relay server 420, operator NW management server 430, and AN controller 440 according to the embodiment of the present invention. Note that the hardware configuration example of the processing device 900 described below is merely an example of the hardware configuration of the AMR100, UE110, service server 310, authentication server 320, data collection server 330, data collection server 3301, synchronized viewing control server 340, synchronized viewing control server 3401, AN data collection server 350, upload server 410, data relay server 420, operator NW management server 430, and AN controller 440. Therefore, the hardware configurations of AMR100, UE110, service server 310, authentication server 320, data collection server 330, data collection server 3301, synchronized viewing control server 340, synchronized viewing control server 3401, AN data collection server 350, upload server 410, data relay server 420, operator NW management server 430 and AN controller 440 may be such that unnecessary components are deleted from the hardware configuration of the processing device 900 described below, or new components may be added.
[0226] 25 is a diagram showing a hardware configuration of a processing device 900 as an example of each device according to an embodiment of the present invention. The processing device 900 includes a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, a RAM (Random Access Memory) 903, a host bus 904, a bridge 905, an external bus 906, an interface 907, an input device 908, an output device 909, a storage device 910, and a communication device 911.
[0227] The CPU 901 functions as an arithmetic processing device and control device, and controls the overall operation of the processing device 900 in accordance with various programs. The CPU 901 may also be a microprocessor. The ROM 902 stores programs and arithmetic parameters used by the CPU 901. The RAM 903 temporarily stores programs used in the execution of the CPU 901 and parameters that change appropriately during the execution. These are connected to each other by a host bus 904 consisting of a CPU bus etc.
[0228] The host bus 904 is connected to an external bus 906, such as a PCI (Peripheral Component Interconnect / Interface) bus, via a bridge 905. It is not necessary to configure the host bus 904, bridge 905, and external bus 906 separately, and these functions may be implemented in a single bus.
[0229] The input device 908 is composed of input means such as a mouse, keyboard, touch panel, button, microphone, switch, and lever for the user to input information, and an input control circuit that generates an input signal based on the user's input and outputs it to the CPU 901. A user who operates the processing device 900 can input various data to the processing device 900 and instruct the processing operation by operating this input device 908.
[0230] The output device 909 includes, for example, a display device such as a CRT (Cathode Ray Tube) display device, a Liquid Crystal Display (LCD) device, an OLED (Organic Light Emitting Diode) device, or a lamp, and an audio output device such as a speaker.
[0231] The storage device 910 is a device for storing data. The storage device 910 may include a storage medium, a recording device for recording data in the storage medium, a reading device for reading data from the storage medium, and a deleting device for deleting data recorded in the storage medium. The storage device 910 is configured, for example, with an HDD (Hard Disk Drive). This storage device 910 drives a hard disk and stores programs executed by the CPU 901 and various data.
[0232] The communication unit 911 is, for example, a communication interface configured with a communication device for connecting to a network, etc. Also, the communication unit 911 may be compatible with either wireless communication or wired communication.
[0233] <<5. Supplementary Information>> Although the preferred embodiment of the present invention has been described in detail above with reference to the accompanying drawings, the present invention is not limited to such an example. It is clear that a person having ordinary knowledge in the technical field to which the present invention pertains can conceive of various modified or altered examples within the scope of the technical ideas described in the claims, and it is understood that these also naturally belong to the technical scope of the present invention.
[0234] For example, in the above embodiment, the upload server 410 and the data relay server 420 are installed in the edge DC 43, but the present invention is not limited to this example. For example, the upload server 410 or the data relay server 420 may be installed in the central DC 41 or the regional DC 42.
[0235] In the above embodiment, an example has been described in which the system 1 and the system 11 include the mobile communication network 2 or the mobile communication network 12, but the network to which the UE 110 is connected, which is included in the present invention, is not limited to a mobile communication network. For example, the network to which the UE 110 is connected may be a fixed network connected to the Internet, an overseas fixed network connected to the Internet via an undersea cable, or the like.
[0236] In the above embodiment, an example has been described in which all UEs 110 receiving the same video belong to the same group, but a plurality of groups may be set for the same video. [Explanation of symbols]
[0237] 1, 11 System 100 AMR 110UE 2, 12 Mobile communication network 3.13 Internet 310 Service Server 320 Authentication Server 330 Data Collection Server 340 Synchronized Viewing Control Server Data collection server for 350 AN 4, 14CN 41 Central DC 42 Regional DC 43 Edge DC 410 Upload Server 420 Data Relay Server 430 Provider Network Management Server 440AN Controller 5.RAN 51 Base station 60 Router MD Data Transfer Module
Claims
1. A processing device comprising: a content acquisition unit that acquires content to be distributed to a plurality of user terminals from a server; a content transmission unit that transmits the content acquired by the content acquisition unit to a first user terminal, which is a user terminal among the plurality of user terminals and in which the processing device is included in a distribution path of the content from the server; an adjustment time acquisition unit that acquires an adjustment time for the delivery of the content to the first user terminal, the adjustment time being calculated based on a reference time set in a first group to which the first user terminal belongs, in one or more groups to which each of the plurality of user terminals belongs; a delay control unit that delays the transmission of the content by the content transmission unit to the first user terminal based on the adjustment time so that the distribution of the content to the first user terminal and one or more of the user terminals belonging to the first group is synchronized; Equipped with The content acquisition unit acquires, from the server, first data distributed through the distribution path; The content transmission unit transmits the first data to the first user terminal; the adjustment time is a time obtained by subtracting a first transmission delay time, which is a transmission delay time of the content to the first user terminal, calculated based on a first time when the first data is transmitted by the content transmitter, from the reference time; the first transmission delay time is a sum of a time from a second time when the first data is transmitted by the server to a third time when the first data is acquired by the content acquisition unit and a time from the first time to a fourth time when the first data is distributed to the first user terminal, the reference time is set based on a plurality of transmission delay times including the first transmission delay time and a second transmission delay time, which is a transmission delay time of the content to the user terminal, calculated for each of one or more of the user terminals based on second data transmitted at the same time as the first data; Further, the maximum value among the sums of the average of the plurality of transmission delay times and the jitter calculated from the plurality of transmission delay times for the first user terminal and the one or more user terminals belonging to the first group, Processing unit.
2. The processing device according to claim 1, wherein the server and the processing device are each located in a different edge data center (EDC) that constitutes a multi-access edge computing-enabled content delivery network (MEC-CDN) including a mobile communication network.
3. The server and the processing device are disposed in different edge DCs constituting a MEC-CDN, The MEC-CDN is an Autonomous Network (AN), the first transmission delay time is a sum of a transmission time between the server and a data center in which each of the processing devices is installed, the transmission time being acquired from a controller that controls a communication path in the AN, and a time from the first time to a fourth time at which the first data is delivered to the first user terminal; The processing device of claim 1 .
4. 2. The processing device according to claim 1, wherein the first transmission delay time is calculated based on at least one of a transmission time and a reception time of the first data being transmitted to a higher-level server by modules included in the user terminal, the server, and the processing device.
5. The processing device according to claim 1 , wherein the adjustment time acquisition unit acquires the adjustment time at predetermined intervals.
6. The processing device according to claim 1 , wherein the delay control unit transmits different pieces of the content to each of a plurality of the first user terminals belonging to different groups with a delay.
7. Computer, a content acquisition unit that acquires content to be distributed to a plurality of user terminals from a server; a content transmission unit that transmits the content acquired by the content acquisition unit to a first user terminal, which is a user terminal that includes a processing device having the computer in a distribution path of the content from the server, among the plurality of user terminals; an adjustment time acquisition unit that acquires an adjustment time for the delivery of the content to the first user terminal, the adjustment time being calculated based on a reference time set in a first group to which the first user terminal belongs, in one or more groups to which each of the plurality of user terminals belongs; a delay control unit that delays the transmission of the content by the content transmission unit to the first user terminal based on the adjustment time so that the distribution of the content to the first user terminal and one or more of the user terminals belonging to the first group is synchronized; Function as function as The content acquisition unit acquires, from the server, first data distributed through the distribution path; The content transmission unit transmits the first data to the first user terminal; the adjustment time is a time obtained by subtracting a first transmission delay time, which is a transmission delay time of the content to the first user terminal, calculated based on a first time when the first data is transmitted by the content transmitter, from the reference time; the first transmission delay time is a sum of a time from a second time when the first data is transmitted by the server to a third time when the first data is acquired by the content acquisition unit and a time from the first time to a fourth time when the first data is distributed to the first user terminal, the reference time is set based on a plurality of transmission delay times including the first transmission delay time and a second transmission delay time, which is a transmission delay time of the content to the user terminal, calculated for each of one or more of the user terminals based on second data transmitted at the same time as the first data; Further, the program is a maximum value among the values obtained by adding up the average of the multiple transmission delay times and the jitter calculated from the multiple transmission delay times for the first user terminal and the one or more user terminals belonging to the first group.
8. A processing method for a processing device, comprising: The processing method includes: A first step of acquiring content to be distributed to a plurality of user terminals from a server; a second step of transmitting the acquired content to a first user terminal, which is a user terminal among the plurality of user terminals and in which the processing device is included in a distribution path of the content from the server; a third step of acquiring an adjustment time for the delivery of the content to the first user terminal, the adjustment time being calculated based on a reference time set in a first group to which the first user terminal belongs, in one or more groups to which each of the plurality of user terminals belongs; a fourth step of delaying the transmission of the content to the first user terminal in the step of transmitting the content based on the adjustment time so that the delivery of the content to the first user terminal and one or more of the user terminals belonging to the first group is synchronized; having The first step includes acquiring, from the server, first data to be distributed through the distribution path; The second step includes transmitting the first data to the first user terminal; the adjustment time is a time obtained by subtracting a first transmission delay time, which is a transmission delay time of the content to the first user terminal, calculated based on a first time when the first data is transmitted in the second step, from the reference time; the first transmission delay time is a sum of a time from a second time when the first data is transmitted by the server to a third time when the first data is acquired by the first step and a time from the first time to a fourth time when the first data is distributed to the first user terminal, the reference time is set based on a plurality of transmission delay times including the first transmission delay time and a second transmission delay time, which is a transmission delay time of the content to the user terminal, calculated for each of one or more of the user terminals based on second data transmitted at the same time as the first data; Further, the processing method is such that the average of the multiple transmission delay times and the jitter calculated from the multiple transmission delay times are added up for the first user terminal and the one or more user terminals belonging to the first group, which is the maximum value.
Citation Information
Patent Citations
Network system, network apparatus, and distribution method
JP2013066088A
Content distribution server, content distribution system, and content distribution program
JP2014212506A
Reception terminal and program
JP2018074480A