The present invention relates to a server and a data synchronization system that synchronize data sent from two or more pieces of mobile equipment on a mobile communication network.
Techniques that enable players and singers to perform musical sessions such as musical ensembles and duets over the Internet are known. For example, in a musical session system disclosed in Patent literature 1, a terminal (A) sends musical performance information representing a playing operation on the terminal (A) to another terminal (B) while providing the musical performance information to a musical sound generator of the terminal (A) with a predetermined delay, thereby enabling both of the terminals (A, B) to simultaneously output musical sound according to the playing operation on the terminal (A).
Also known are videoconference systems, which allow people at remote locations to conduct a conference in real time over the Internet in synchronization with one another.
Patent literature 1: Japanese Registered Patent No. 4259329
To implement these internet-based synchronization systems on a mobile communication network, so-called padding is performed in which dummy packets are inserted to adjust data arrival time differences caused by differences in transmission paths. Since packets inserted by the padding are indistinguishable from packets that are inserted in silent intervals, a receiving terminal can confuse padding with a silent interval and perform wrong processing, which can result in failure of synchronization between devices. Specifically, when a receiving terminal confuses padding data as silence, the receiving terminal resumes RTP (Real-time Transport Protocol) processing on non-silent data following the pudding data out of time, resulting in loss of the leading potion of sound. An object of the present invention is to provide a server that enables any piece of mobile equipment on a mobile communication network to synchronously receive data sent from two or more pieces of mobile equipment.
A server of the present invention includes a terminal managing part, a transmission time measuring part, a route establishing part, a route sending part, an SV synchronous data receiving part and an SV synchronous data sending part.
The terminal managing part receives synchronizing-terminal information from mobile equipment. The synchronizing terminal information indicates which group the mobile equipment belongs to and whether the mobile equipment participates in the group as a session terminal which sends data to the group or an audience terminal which receives data. The transmission time measuring part measures the transmission time from mobile equipment to the server. The route establishing part determines whether or not to change a route from mobile equipment that acts as a session terminal to the server to an alternative route that passes through any other piece of mobile equipment on the basis of whether or not the transmission times from the pieces of mobile equipment that act as session terminals belonging to the same group to the server are practically equal and establishes a route on the basis of the determination. The route sending part sends the established route to the mobile equipment that acts as a session terminal. The SV synchronous data receiving part receives data sent from mobile equipment that acts as a session terminal along an established route. The SV synchronous data sending part sends the received data to mobile equipment that acts as an audience terminal in the same group as the mobile equipment that sent the received data.
A server according to the present invention enables any mobile equipment on a mobile communication network to synchronously receive data sent from two or more mobile equipment.
Terms used herein will be described below.
Any portable device that has wireless communication capabilities is referred to as mobile equipment. The notion of mobile equipment encompasses mobile phones, PDAs, personal computers and the like.
<Group>
A set of pieces of mobile equipment participating in synchronous data transmission (reception) is herein referred to as a group. A server according to the present invention manages pieces of mobile equipment on a group-by-group basis.
<Session Terminal>
Mobile equipment that attempts to participate in a group as a data sending terminal is herein referred to as a session terminal. Taking the musical ensemble mentioned above as an example, a session terminal generates musical sound and sends the generated musical sound to audience terminals, which will be described below. In the case of the videoconference system mentioned above, a session terminal acts as a presenter.
<Audience Terminal>
Mobile equipment that attempts to participate in a group as a data receiving terminal is herein referred to as an audience terminal. Taking the musical ensemble as an example, an audience terminal listens to music sent from a session terminal, that is, acts as an audience member. In the case of the videoconference mentioned above, an audience terminal listens to a presentation by a presenter, that is, acts as an audience member. Note that mobile equipment can set itself as both of session and audience terminals. In this case, the mobile equipment sends data as a session terminal and receives as an audience terminal both of the data it has sent and data sent from another session terminal simultaneously after a certain period of time has elapsed since sending the data as the session terminal.
A server according to the present invention can change data transmission routes to enable data sent from a plurality of session terminals to be received at an audience terminal in the same group with synchronized timing.
<Transmission Time>
Transmission time represents the length of time it takes for data to be transmitted from mobile equipment to a server. For example, transmission time (round-trip time: RTT) can be measured by measuring the time of transmission of a measuring signal (such as a ping) and the time of arrival of the measuring signal sent back. In the embodiments described below, transmission time is represented by a hypothetical value for convenience of explanation.
<Route>
The term route as used herein refers to a communication path from mobile equipment to a server. Since the mobile equipment and the server exchange data over a mobile communication network, data sent from the mobile equipment to the server and data sent from the server to the mobile equipment pass through one or more base stations and switching centers. A communication path automatically established by a switching center without specification of a base station, switching center or communication method by the server is herein simply referred to as a route.
<Alternative Route>
A route that starts at a piece of mobile equipment, reaches a server, then goes from the server to another piece of mobile equipment, and returns from the other piece of the mobile equipment to the server is referred to as an alternative route. According to the present invention, an alternative route, instead of padding, is effectively used to adjust a delay, thereby achieving data synchronization.
<Intervening-Point-Specified Route>
A route from a piece of mobile equipment to a server that passes through a switching center and a base station that are specified by the server is herein referred to as an intervening-point-specified route in order to distinguish such route from a “route” for which an intervening station is not specified by the server.
<Communication-Method-Specified Route>
A route from a piece of mobile equipment to a server for which a communication method to be used is specified by the server is referred to as a communication-method-specified route in order to distinguish such route from a “route” for which a communication method is not specified by the server.
<Intervening-Point-and-Communication-Method-Specified Route>
A route from a piece of mobile equipment to a server for which a base station and a switching center to pass through and a communication method to be used are specified by the server is referred to as an Intervening-point-and-communication-method-specified route in order to distinguish such route from a “route” for which an intervening stations or a communication method is not specified by the server.
<Data/Synchronous Data>
Data sent from a session terminal and synchronously received at audience terminals is herein referred to simply as data or as synchronous data. Types of data include audio information and video information, for example.
Embodiments of the present invention will be described below in detail. Components that have the same functions are given the same reference numerals and repeated description thereof will be omitted.
<Overview of the Invention>
The relationship of a server and mobile equipment of the present invention to a mobile communication network will be described with reference to
Routes are not limited to the ones presented above. For example, mobile equipment 1a can also establish a route that passes through switching center 3Z (Z) and base station 2-9 (BS9), in addition to switching center 3W (W). Note that the example in
Routing methods in packet communication on a mobile communication network in general can be broadly classified as a method that determines a route at the start of transmission by combining sending and receiving terminal stations and a method that routes at switching centers in sequence on a network to successively determine an end-to-end route. Typically, one of these methods is used to select a route that has the shortest delay by taking traffic into consideration.
A representation in
Transmission time from mobile equipment to the server will be further described with respect to the representation in
A data synchronization system according to a first embodiment will be described below with reference to
As illustrated in
When mobile equipment 1 attempts to participate in synchronous data transmission (reception) as a session terminal or an audience terminal, first the synchronizing terminal information sending part 11 sends information about a group in which the mobile equipment 1 is attempting to participate and information that specifies whether the mobile equipment 1 is attempting to participate in as a session terminal which sends data or an audience terminal which receives data (S11). Group information may be an identification number of the group, for example. For example, a group identification number that is 8-bit information is managed and an identification number, “01101110”, for example, may be sent. Information indicating whether mobile equipment 1 is a session terminal or an audience terminal may be managed as a 2-bit terminal-type number, for example. The information indicating whether mobile equipment 1 is a session terminal or an audience terminal may be managed as a 2-bit terminal type number such as 01 for a session terminal, 10 for an audience terminal and 11 for a session-audience terminal. Additionally, a terminal ID, which may be 6-bit data, for identifying each of a plurality of session terminals and audience terminals may be added. Accordingly, the synchronizing terminal information sending part 11 can sent for example a group identification number, a terminal type number, and a terminal ID as 16-bit synchronizing terminal information.
The synchronizing terminal information receiving part 421 of the terminal managing part 42 of the server 4 receives synchronizing terminal information from mobile equipment 1 (SS421). The session terminal managing part 422 temporarily stores synchronizing terminal information associated with a session terminal(s) among pieces of received synchronizing terminal information. The audience terminal managing part 423 temporarily stores synchronizing terminal information associated with an audience terminal(s) and pieces of received synchronizing terminal information. Note that the session terminal managing part 422 and the audience terminal managing part 423 may be implemented by a single memory. Then the signal managing part 43 of the server 4 sends and receives a measuring signal to and from all pieces of mobile equipment 1 that sent synchronizing terminal information. More specifically, the measuring signal generating part 431 of the signal managing part 43 generates a measuring signal. Then the measuring signal sending part 432 sends the measuring signal to all pieces of mobile equipment that sent synchronizing terminal information (SS432). The measuring signal receiving part 121 of the reply part 12 of each piece of mobile equipment 1 receives the measuring signal from the server 4 (SS121). The measuring signal sending part 122 of the reply part 12 sends the measuring signal back to the server 4 (SS122). The measuring signal receiving part 433 of the signal managing part 43 of the server 4 receives the measuring signal sent back from the mobile equipment 1 (SS433).
Then the transmission time measuring part 44 measures transmission time it takes for the measuring signal to be transmitted from every piece of mobile equipment 1 that sent synchronizing terminal information to the server 4. Specifically, the transmission time measuring part 44 uses the difference between the time of sending the measuring signal and the time of arrival of the measuring signal sent back from mobile equipment 1 to measure the transmission time from the mobile equipment 1 to the server 4 (S44). Ping can be used for implementation of the signal managing part 43 and the transmission time measuring part 44. Ping is software used for checking the reachability of a node. Ping can be used to calculate the difference between the time of transmission of a measuring signal (packet) and the time of reception of the measuring signal to determine roundtrip latency (round trip time: RTT) or one-way latency. The transmission time measuring part 44 stores the measured transmission times in the table storage 45 along with information identifying the routes (for example information identifying the pieces of mobile equipment 1 such as the group identification number, terminal type numbers and terminal IDs). An example of a table stored in the table storage 45 will be described with reference to
A process for sending and receiving data will be described below. The input part 14 of mobile equipment 1 that acts as a session terminal acquires original data (for example, audio, music and/or video data) used for synchronous communication. The input part 14 includes a microphone, a video camera and the like. The synchronous data generating part 15 converts the original data that the input part 14 acquired to a format appropriate to synchronous communication (S15). The ME synchronous data sending part 16 sends the data generated by the synchronous data generating part 15 to the server 4 (S16). At step S16, the data is sent over the route provided from the route sending part 47 of the server 4 beforehand. Source routing may be used as a method for mobile equipment 1 to send packet data that specifies the route. Source routing allows mobile equipment 1 to explicitly specify a route. The SV synchronous data receiving part 48 of the server 4 receives the data sent over the routes from the pieces of mobile equipment 1 that act as session terminals (S48). The SV synchronous data sending part 49 sends the received data to the mobile equipment 1 that acts as an audience terminal in the same group as the pieces of mobile equipment 1 that have sent the received data (S49). In the example in
As has been described above, in the data synchronization system 100 of the first embodiment, the route establishing part 46 of the server 4 establishes routes by changing routes to alternative routes so that transmission times are practically equalized, the ME synchronous data sending part 16 of each session terminal sends data over the route established by the route establishing part 46 of the server 4, the SV synchronous data receiving part 48 and the SV synchronous data sending part 49 of the server 4 forward the data to the audience terminal. Thus, pieces of data to be received at the audience terminal can be synchronized without performing padding.
A data synchronization system of a second embodiment which includes an average calculating feature added to the transmission time measuring feature of the first embodiment will be described with reference to
As illustrated in
The following description will focus on differences from the first embodiment. The repeat instruction issuing part 51 sends a repeat instruction that indicates a predetermined measurement repeat count to the signal managing part 53. The signal managing part 53 sends a measuring signal the number of times specified by the repeat instruction and the reply part 12 of the mobile equipment 1 sends back the measuring signal (loop repeated the number of times equal to measurement repeat count; SS432, SS121, SS122, SS433). The transmission time measuring part 54 repeatedly performs measurement of transmission time the predetermined number of times (loop repeated the number of times equal to measurement repeat count; S54). The average calculating part 52 calculates the average of the transmission times measured the predetermined times for the same route (S52). Hereinafter the average is referred to as the reference transmission time. The route establishing part 56 establishes routes so that average transmission times from pieces of mobile equipment 1 that act as session terminals that belong to the same group to the server 5 are practically equalized. The repeat instruction issuing part 51, the average calculating part 52 and the transmission time measuring part 54 of the second embodiment can be implemented by the ping software mentioned above. Using the ping software, transmission of a packet may be repeated 10 times, for example, and results such as a packet loss of 0%, a minimum round trip time of 21.9 ms, an average round trip time of 24.1 ms, and a maximum round trip time of 25.7 ms can be obtained.
As has been described above, the data synchronization system 200 of the second embodiment has, in addition to the effect of the first embodiment, the effect of accommodating measurement errors to achieve more stable synchronization because the average transmission times obtained by measuring transmission times multiple times and averaging the measured transmission times are used to establish routes.
Referring to
As illustrated in
The following description will focus on differences from the first embodiment. The intervening-point specifying part 61 acquires information concerning base stations, switching centers, and controllers on a mobile communication network from the network at regular intervals. For example, the intervening-point specifying part 61 acquires information about addition, removal, relocation and replacement of base stations, switching centers, and controllers on the mobile communication network. In this way, the intervening-point specifying part 61 constantly acquires the up-to-date information about the mobile communication network. When the terminal managing part 42 receives synchronizing terminal information from mobile equipment 1 as in the first embodiment, the intervening-point specifying part 61 identifies a base station nearest to the mobile equipment 1 on the basis of intervening point information in header information of the synchronizing terminal information received by the terminal managing part 42 and selects all possible intervening-point-specified routes from the base station to the server 6. In the example in
Thus, the data synchronization system 300 of the third embodiment has, in addition to the effect of the first embodiment, the effect of more precisely establishing routes to achieve synchronization with a higher level of precision because routes are established by selecting from among intervening-point-specified routes for which base stations and switching centers to pass through are specified.
A data synchronization system of a fourth embodiment will be described below with reference to
As illustrated in
The following description will focus on differences from the first embodiment. The communication method specifying part 71 issues a communication method specifying instruction that specifies a communication method to be used in communication between mobile equipment 1 and the server 7 to the signal managing part 73. The signal managing part 73 sends a measuring signal for each communication method specified in the communication method specifying instruction and the reply part 12 of mobile equipment 1 sends back the measuring signal (loop repeated the number of times equal to the number of communication methods; SS432, SS121, SS122, SS433). The transmission time measuring part 74 performs measurement of the transmission time for each communication method specified by the communication method specifying instruction (loop repeated the number of times equal to the number of communication methods; S74). The transmission time measuring part 74 stores combinations of the measured transmission times, information identifying routes (information identifying the mobile equipment 1) and information identifying the communication methods in the table storage 75. An example of a table stored in the table storage 75 will be described with reference to
Thus, the data synchronization system 400 of the fourth embodiment has, in addition to the effect of the first embodiment, the effect of more precisely establishing routes to achieve synchronization with a higher level of precision because routes are established by selecting from among routes for which communication methods are specified.
A data synchronization system of a fifth embodiment, which is the combination of the third and fourth embodiments, will be described with reference to
As illustrated in
The server 8 of the fifth embodiment measures the transmission time over each intervening-point-and-communication-method-specified route, which is a combination of an intervening-point-specified route in the third embodiment and a communication-method-specified route in the fourth embodiment, and establishes routes by taking into consideration the intervening-point-and-communication-method-specified routes. Specifically, the transmission time measuring part 84 measures the transmission time for each intervening-point-specified route and each available communication method (loop repeated the number of times equal to the intervening-point-specified route count×the number of communication methods; S84). The transmission time measuring part 84 stores combinations of the measured transmission times, information identifying the intervening-point-specified routes, and information identifying the communication methods in the table storage 85. Taking a table for mobile equipment 1a described with reference to
Thus the data synchronization system 500 of the fifth embodiment has, in addition to the effect of the first embodiment, the effect of more precisely establishing routes to achieve synchronization with a higher level of precision because the routes are established by selecting from among routes for which intervening base stations and switching centers and communication methods are specified.
The processes described above may be performed not only in time sequence as is written or may be performed in parallel with one another or individually, depending on the throughput of the apparatuses that perform the processes or requirements. It would be understood that other modifications can be made without departing from the spirit of the present invention.
If any of the configurations described above is implemented by a computer, the processes of the functions the apparatuses need to include are described by a program. The processes of the functions are implemented on the computer by executing the program on the computer.
The program defining the processes can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any recording medium such as a magnetic recording device, an optical disc, a magneto-optical recording medium, and a semiconductor memory, for example.
The program is distributed by selling, transferring, or lending a portable recording medium on which the program is recorded, such as a DVD or a CD-ROM. The program may be stored on a storage device of a server computer and transferred from the server computer to other computers over a network, thereby distributing the program.
A computer that executes the program first stores the program recorded on a portable recording medium or transferred from a server computer into a storage device of the computer. When the computer executes the processes, the computer reads the program stored on the recording medium of the computer and executes the processes according to the read program. In another mode of execution of the program, the computer may read the program directly from a portable recording medium and execute the processes according to the program or may execute the processes according to the program each time the program is transferred from the server computer to the computer. Alternatively, the processes may be executed using a so-called ASP (Application Service Provider) service in which the program is not transferred from a server computer to the computer but process functions are implemented by instructions to execute the program and acquisition of the results of the execution. Note that the program in this mode encompasses information that is provided for processing by an electronic computer and is equivalent to the program (such as data that is not direct instructions to a computer but has the nature that defines processing of the computer).
While the apparatuses are configured by causing a computer to execute a predetermined program in the embodiments described above, at least some of the processes may be implemented by hardware.
Number | Date | Country | Kind |
---|---|---|---|
2012 -099955 | Apr 2012 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2013/061632 | 4/19/2013 | WO | 00 | 6/11/2014 |