WO2013145516A1 - 情報処理装置、情報処理システム、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法及びプログラム Download PDF

Info

Publication number
WO2013145516A1
WO2013145516A1 PCT/JP2013/000385 JP2013000385W WO2013145516A1 WO 2013145516 A1 WO2013145516 A1 WO 2013145516A1 JP 2013000385 W JP2013000385 W JP 2013000385W WO 2013145516 A1 WO2013145516 A1 WO 2013145516A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
information processing
information
relay server
connection
Prior art date
Application number
PCT/JP2013/000385
Other languages
English (en)
French (fr)
Inventor
真人 島川
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to JP2014507352A priority Critical patent/JP5880688B2/ja
Priority to CN201380015377.8A priority patent/CN104205744B/zh
Priority to US14/383,910 priority patent/US10432744B2/en
Publication of WO2013145516A1 publication Critical patent/WO2013145516A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session

Definitions

  • the present technology provides an information processing apparatus capable of communicating with another information processing apparatus on a network via a communication relay apparatus, an information processing system including the information processing apparatus, an information processing method in the information processing apparatus, and the information processing apparatus. Relates to the program to be executed.
  • the communication relay apparatus may disconnect when there is no communication for a certain period of time. Therefore, the communication relay device performs communication (KeepAlive, HeartBeat communication) for maintaining the connection at regular time intervals.
  • KeepAlive it is described in the following patent document 1, for example.
  • the time until the communication relay device disconnects varies greatly depending on the communication relay device and the communication environment to which it belongs. Nonetheless, the conventional communication relay device performs KeepAlive communication at a uniform time interval, so communication is performed more frequently than necessary to maintain the connection, resulting in an increase in communication load and traffic. It was.
  • an object of the present technology is to provide an information processing device, an information processing system, an information processing method, and a program capable of reducing a communication load due to communication processing for maintaining a connection between the information processing devices. Is to provide.
  • an information processing apparatus includes a communication unit and a control unit.
  • the communication unit can communicate with other information processing apparatuses via a relay server on the network.
  • the said control part can acquire the communication environment information which shows the communication environment of the said communication part containing the attribute information of the communication relay apparatus which relays communication with the said communication part and the said relay server.
  • the control unit can calculate a transmission interval for transmitting a maintenance signal for maintaining the connection with the relay server based on the acquired communication environment information. Further, the control unit can control the communication unit to transmit the maintenance signal to the relay server at the calculated transmission interval.
  • the information processing apparatus can determine the transmission interval of the maintenance signal according to the communication environment of the communication relay device, compared to a case where the maintenance signal is uniformly transmitted regardless of the communication environment.
  • the communication load due to the maintenance signal transmission process can be reduced.
  • the control unit calculates a duration from the connection to the disconnection when the connection is disconnected by the communication relay device after connection with the relay server by the communication unit, and the calculated duration
  • the maintenance signal transmission interval may be calculated based on the above.
  • the information processing apparatus calculates the maintenance signal transmission interval based on the time until disconnection in the past communication with the relay server, so that the maintenance signal at an appropriate interval in the next communication with the relay server.
  • the connection can be maintained by transmitting.
  • the communication unit may be able to communicate with a connection test server existing on the network.
  • the control unit calculates a duration from the connection to the disconnection when the connection is disconnected by the communication relay device after the communication unit connects to the connection test server.
  • the transmission interval of the maintenance signal may be calculated based on the continuous time.
  • the information processing apparatus communicates with the connection test server before communicating with the relay server, and calculates the maintenance signal transmission interval based on the time until disconnection with the connection test server. Communication can be performed without disconnecting the connection.
  • the communication unit may be able to receive from the relay server a notification message that notifies the existence of data addressed to the information processing device transmitted from the other information processing device.
  • the control unit can generate setting information to be set for the relay server to connect to the information processing apparatus and transmit the notification message according to the communication environment.
  • the communication unit may be controllable so as to transmit the set information to the relay server.
  • the relay server may store the transmitted setting information and transmit the notification message based on the stored setting information.
  • the information processing apparatus can transmit the setting information corresponding to the communication environment to the relay server and reliably receive the notification message.
  • the control unit can update the generated setting information according to a change in the communication environment, and can control the communication unit to transmit the updated setting information to the relay server.
  • the relay server may update the stored setting information with the updated and transmitted setting information.
  • the information processing apparatus can update the setting information according to the change and set the information to the relay server. .
  • the control unit may be capable of generating in advance a plurality of the setting information that can be generated according to a change in the communication environment.
  • the control unit may be capable of controlling the communication unit so as to transmit the generated plurality of setting information to the relay server.
  • the control unit responds to the communication environment after the change when the communication environment changes and none of the transmitted plurality of setting information corresponds to the communication environment after the change. It may be possible to generate new setting information.
  • the control unit may be capable of controlling the communication unit so as to transmit the generated new setting information to the relay server.
  • the relay server may store the plurality of transmitted setting information and transmit the notification message based on at least one of the stored plurality of setting information.
  • the information processing apparatus transmits a plurality of setting information corresponding to a plurality of communication environments to the server in advance, even if the communication environment changes, it is not necessary to transmit the setting information to the relay server each time.
  • the load on the information processing apparatus and server related to the transmission process can be reduced.
  • the information processing apparatus may further include a storage unit.
  • the communication unit generates the information processing device and the relay server generated from the relay server according to the number of information processing devices including the information processing device connected to the relay server.
  • reconnection information related to the timing at which the information processing apparatus reconnects to the relay server may be periodically received.
  • the control unit may be capable of controlling the storage unit so as to store the latest reconnection information among the reconnection information periodically received. Further, the control unit can control the communication unit to reconnect to the relay server based on the stored reconnection information when the connection between the information processing apparatus and the relay server is disconnected. May be.
  • the information processing apparatus reconnects to the relay server based on the latest reconnection information stored at that time. Therefore, a large number of other information processing devices connected to the relay server do not request reconnection to the relay server at the same timing, thereby preventing occurrence of a connection error and reducing the load on the relay server. It is reduced.
  • the communication unit may receive information indicating a maximum waiting time from the disconnection to the reconnection as the reconnection information.
  • the control unit may determine a waiting time within the maximum waiting time using a random number. Further, the control unit may control the communication unit to reconnect with the relay server after the determined waiting time has elapsed.
  • the information processing apparatus can receive the maximum waiting time information from the relay server, and can prevent further communication errors in the server only by randomly determining the waiting time within the range.
  • the relay server may send back an ACK including information indicating the maximum waiting time in response to the transmitted maintenance signal.
  • the communication unit may receive the ACK, and the control unit may acquire information indicating the maximum waiting time from the received ACK.
  • An information processing system includes a first information processing device and a second information processing device.
  • the first information processing apparatus includes a first communication unit and a first control unit.
  • the first communication unit can communicate with another information processing apparatus via the second information processing apparatus.
  • the first control unit includes communication attribute information of a communication relay device that relays communication between the first information processing device and the second information processing device, and indicates communication environment of the first communication unit Environmental information can be acquired. Further, the first control unit can calculate a transmission interval for transmitting a maintenance signal for maintaining the connection with the second information processing apparatus based on the acquired communication environment information. Furthermore, the first control unit can control the communication unit to transmit the maintenance signal to the second information processing apparatus at the calculated transmission interval.
  • the second information processing apparatus includes a second communication unit and a second control unit.
  • the second communication unit can communicate with the first communication unit and relay communication between the first information processing apparatus and the other information processing apparatus.
  • the second control unit receives the maintenance signal transmitted from the first information processing apparatus, and transmits the ACK for the maintenance signal to the first information processing apparatus. Can be controlled.
  • An information processing method acquires communication environment information indicating a communication environment of the information processing apparatus, including attribute information of a communication relay apparatus that relays communication between the information processing apparatus and the relay server. Including that.
  • the information processing apparatus is connected to an information processing apparatus that can communicate with another information processing apparatus via a relay server on the network.
  • a transmission interval for transmitting a maintenance signal for maintaining the connection with the relay server is further calculated based on the acquired communication environment information. Then, the maintenance signal is transmitted to the relay server at the calculated transmission interval.
  • a program causes an information processing apparatus that can communicate with another information processing apparatus via a relay server on a network to execute an acquisition step, a calculation step, and a transmission step.
  • acquisition step communication environment information indicating a communication environment of the information processing apparatus, including attribute information of a communication relay apparatus that relays communication between the information processing apparatus and the relay server, is acquired.
  • calculation step a transmission interval for transmitting a maintenance signal for maintaining a connection with the relay server is calculated based on the acquired communication environment information.
  • the maintenance signal is transmitted to the relay server at the calculated transmission interval.
  • FIG. 1 is a diagram illustrating a network configuration of a system according to a first embodiment of the present technology. It is the block diagram which showed the hardware constitutions of the messaging server in the said system. It is the block diagram which showed the hardware constitutions of the device in the said system. It is the block diagram which showed the software module structure of the messaging server in the said system. It is the block diagram which showed the software module structure of the device in the said system. It is the flowchart which showed the flow of the communication environment determination process by the said device. It is the flowchart which showed the flow of an example of the communication environment setting process by the said device. It is the flowchart which showed the flow of the other example of the communication environment setting process by the said device.
  • FIG. 1 is a diagram showing a network configuration of a system according to the present embodiment.
  • this system includes a messaging server 100 and a connection test server 200 on the cloud, and a plurality of devices 300 that can be connected to these servers via a WAN (Wide Area Network) 50.
  • WAN Wide Area Network
  • the device 300 includes, for example, a smartphone, a mobile phone, a tablet PC (Personal® Computer), a desktop PC, a notebook PC, a PDA (Personal® Digital Assistant), a portable AV player, an electronic book, a digital still camera, a camcorder, a television device, and a PVR. It can be any information processing apparatus such as (Personal Video Recorder), game machine, car navigation system, digital photo frame, and the like. Although only two devices 300A and 300B are shown in the figure, the number of devices 300 may be three or more.
  • Each device 300 may communicate with the messaging server 100 and the connection test server 200 via the communication relay device 350, or may directly communicate with those servers without via the communication relay device 350. Each device 300 can communicate with the messaging server 100 through a constant connection.
  • the communication relay device 350 has a function of relaying communication between an inner (device 300 side) network and an external (cloud side) network, and protects the difference in addresses used in both networks and security. Because of the mechanism, it means that an external server makes it impossible to designate and connect a specific internal device unless a special means is used. Examples of such a communication relay device 350 include a NAT router, a proxy server, and a firewall.
  • the connection test server 200 can communicate with each device 300.
  • the connection test server 200 is a server installed to perform a connection test for preventing the disconnection of the communication in advance before each device 300 communicates with the messaging server 100.
  • the device 300 may or may not use the connection test server 200.
  • the message from the device 300 can be relayed between the plurality of messaging servers 100.
  • a specific messaging server 100 among a plurality of messaging servers 100 is assigned to each device 300 as its usage server (server in charge). Any assignment method may be used. For example, the assignment is performed based on the ID of each device and the messaging server. As will be described later, when a message transmitted by a certain device 300 is received by the messaging server 100 not in charge of the device, the message is transferred to the other messaging server 100 in charge.
  • FIG. 2 is a diagram showing a hardware configuration of the messaging server 100.
  • the messaging server 100 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, an input / output interface 15, and a bus 14 for connecting them together. Is provided.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the CPU 11 appropriately accesses the RAM 13 or the like as necessary, and comprehensively controls each block of the messaging server 100 while performing various arithmetic processes.
  • the ROM 12 is a non-volatile memory in which an OS to be executed by the CPU 11, firmware such as programs and various parameters are fixedly stored.
  • the RAM 13 is used as a work area for the CPU 11 and temporarily holds the OS, various applications being executed, and various data being processed.
  • a display unit 16 an operation receiving unit 17, a storage unit 18, a communication unit 19 and the like are connected to the input / output interface 15.
  • the display unit 16 is a display device using, for example, an LCD (Liquid Crystal Display), an OELD (Organic ElectroLuminescence Display), a CRT (Cathode Ray Tube), or the like.
  • LCD Liquid Crystal Display
  • OELD Organic ElectroLuminescence Display
  • CRT Cathode Ray Tube
  • the operation receiving unit 17 is, for example, a pointing device such as a mouse, a keyboard, a touch panel, and other input devices.
  • the operation reception unit 17 is a touch panel
  • the touch panel can be integrated with the display unit 16.
  • the storage unit 18 is, for example, a nonvolatile memory such as an HDD (Hard Disk Drive), a flash memory (SSD; Solid State Drive), or other solid-state memory.
  • the storage unit 18 stores the OS, various applications, and various data. Particularly in the present embodiment, the storage unit 18 stores programs such as a plurality of software modules described later.
  • the communication unit 19 is a NIC or the like for connecting to the WAN 50 and is responsible for communication processing with the device 300.
  • connection test server 200 Since the hardware configuration of the connection test server 200 is the same as the hardware configuration of the messaging server, description thereof will be omitted.
  • connection test server 200 hardware corresponding to the CPU 11, the storage unit 18, and the communication unit 19 of the messaging server 100 are referred to as a CPU 21, a storage unit 28, and a communication unit 29, respectively.
  • FIG. 3 is a diagram illustrating a hardware configuration of the device 300.
  • the hardware configuration of the device 300 is basically the same as the hardware configuration of the server 100. That is, the device 300 includes a CPU 31, a ROM 32, a RAM 33, an input / output interface 35, a bus 34 that connects them, a display unit 36, an operation reception unit 37, a storage unit 38, and a communication unit 39.
  • the display unit 36 may be built in the device 300 or may be externally connected to the device 300.
  • the CPU 31 controls each block such as the storage unit 38 and the communication unit 39 to execute communication processing with the messaging server 100 and the connection test server 200 and various data processing.
  • the storage unit 38 stores programs such as a plurality of software modules, which will be described later, and various databases. These programs may be provided to the device 300 via the WAN 50, or may be provided as a recording medium readable by the device 300.
  • FIG. 4 is a diagram showing a configuration of software modules included in the messaging server 100.
  • the messaging server 100 includes software modules such as a connection management unit 101, a connection maintenance unit 102, a message reception unit 103, a message transfer unit 104, and a message transmission unit 105.
  • software modules such as a connection management unit 101, a connection maintenance unit 102, a message reception unit 103, a message transfer unit 104, and a message transmission unit 105.
  • connection management unit 101 establishes a connection with each device 300 and manages all the established connections.
  • connection maintaining unit 102 performs communication (KeepAlive communication) for maintaining the connection with the device 300 through the connection of the connection management unit 101. That is, the connection maintaining unit 102 returns an ACK to the KeepAlive packet (connection maintaining signal) transmitted from the device 300.
  • KeepAlive communication communication for maintaining the connection with the device 300 through the connection of the connection management unit 101. That is, the connection maintaining unit 102 returns an ACK to the KeepAlive packet (connection maintaining signal) transmitted from the device 300.
  • the message receiving unit 103 receives a message (data) from the device 300 through the connection management unit 101 connection.
  • the message transfer unit 104 transfers the message to another messaging server (not shown) in order to send the message to the device 300 that the messaging server 100 does not handle itself.
  • the message transmission unit 105 transmits a message (data) from a certain device 300 to another device 300 through the connection of the connection management unit 101.
  • FIG. 5 is a diagram illustrating a configuration of software modules included in the device 300.
  • the device 300 includes a connection management unit 301, a connection maintenance unit 302, a message transmission unit 303, a message reception unit 304, a communication environment determination unit 305, a communication setting determination unit 306, and a communication setting management unit 307. .
  • connection management unit 301 establishes a connection between the messaging server 100 and the connection test server 200 and manages all the established connections.
  • the connection maintaining unit 302 performs communication (KeepAlive communication) for maintaining the connection with the messaging server 100 through the connection of the connection management unit 301. That is, the connection maintaining unit 302 transmits a KeepAlive packet (connection maintaining signal) to the messaging server 100 at a transmission interval determined by processing to be described later.
  • KeepAlive communication communication for maintaining the connection with the messaging server 100 through the connection of the connection management unit 301. That is, the connection maintaining unit 302 transmits a KeepAlive packet (connection maintaining signal) to the messaging server 100 at a transmission interval determined by processing to be described later.
  • the message transmission unit 303 transmits a message (data) to the messaging server 100 and the connection test server 200 via the connection of the connection management unit 301.
  • the message reception unit 304 receives messages (data) from the messaging server 100 and the connection test server 200 via the connection of the connection management unit 301.
  • the communication environment determination unit 305 determines the current communication environment of the device 300. Details of the communication environment determination processing will be described later.
  • the communication setting determination unit 306 determines the communication setting for each communication environment based on the communication environment information determined by the communication environment determination unit 305. Details of this communication setting determination processing will also be described later.
  • the communication setting management unit 307 manages the communication setting information for each communication environment determined by the communication setting determination unit 306.
  • FIG. 6 is a flowchart showing a flow of communication environment determination processing by the device 300. Assume that the device 300 is connected to the messaging server 100 as a premise of the processing in FIG.
  • the communication environment determination unit 305 determines whether or not the communication state has changed (step 41).
  • the communication environment determination unit 305 determines that the communication environment type is “Unknown” (step 42).
  • the communication environment determination unit 305 acquires the IP address of the device 300 (step 43).
  • the communication environment determination unit 305 acquires WAN-side IP address information (IP address used by the messaging server 100 for connection with the device 300) from the messaging server 100 using the connection of the connection management unit 301. (Step 44).
  • the communication environment determination unit 305 determines whether or not the acquired IP address of the device 300 is the same as the WAN-side IP address acquired from the messaging server 100 (step 45).
  • the communication environment determination unit 305 determines that the communication environment type is “Global IP” (step 46).
  • the communication environment determining unit 305 determines whether or not the device 300 uses a proxy server (step 47).
  • the communication environment determination unit 305 determines that the communication environment type is “Proxy” (step 48).
  • the communication environment determination unit 305 determines whether or not the device 300 uses the NAT router (step 49).
  • the communication environment determination unit 305 determines that the communication environment type is “NAT Router” (step 50), and the NAT router (communication relay device 305) Router information is acquired (step 51).
  • the communication environment determination unit 305 acquires communication environment information based on the determined communication environment type, and determines whether the communication environment information is different from the previous setting (step 52).
  • the communication environment determining unit 305 determines that the communication environment information is different from the previous one (Yes)
  • the communication environment determining unit 305 transmits the communication environment information to the communication setting determining unit 306 (step 53).
  • the communication environment information is information for uniquely specifying the communication environment, which is acquired according to the communication environment type, and specifically includes the following information.
  • -Communication status-WAN IP address / port number-Device IP address / port number-Communication environment type-Router information router model name / MAC address / UPnP IGD compatible information, etc.
  • Communication setting judgment processing Next, a communication setting determination process based on the communication environment information will be described.
  • the communication setting determination process two processes can be considered depending on whether or not the device 300 uses the connection test server 200 prior to communication with the messaging server 100.
  • FIG. 7 is a flowchart showing a flow of communication setting determination processing when the device 300 does not use the connection test server 200.
  • the communication setting determination unit 306 of the device 300 waits for input of communication environment information from the communication environment determination unit 305 (step 61).
  • the communication setting determination unit 306 acquires communication setting information corresponding to the communication environment information from the communication setting management unit 307 ( Step 63).
  • the communication setting information refers to information obtained by adding information defining the necessity of Keep-Alive communication and the transmission interval of Keep-Alive packets (hereinafter also referred to as Keep-Alive necessity / interval) to the communication environment information. .
  • the communication environment determination unit 305 sets the default Keep Alive necessity / interval based on the communication environment information and sets the communication setting information. Is generated (step 65). Then, the communication environment determination unit 305 outputs the communication setting information to the communication setting management unit 307 (step 66).
  • the communication setting determination unit 306 maintains the connection.
  • the communication setting information is output to the unit 302 (step 67).
  • the communication setting determination unit 306 determines whether connection state change information has been acquired from the connection management unit 301 (step 68).
  • the communication setting determination unit 306 determines whether or not the connection with the messaging server 100 is disconnected based on the connection state change information (step 69).
  • the communication setting determination unit 306 reconnects with the messaging server 100 by the connection management unit 301 (step 70).
  • the communication setting determination unit 306 acquires the connection duration with the messaging server 100 up to the present time (at the time of disconnection) from the connection management unit 301 (step 71).
  • the communication setting determination unit 306 recalculates the KeepAlive necessity / interval based on the acquired connection duration time (step 72). That is, the communication setting determination unit 306 calculates, for example, the same time as the connection duration as the Keep-Alive interval. However, the transmission interval of the Keep-Alive packet may be a time slightly shorter than the connection duration time (a predetermined time is reduced).
  • the communication setting determination unit 306 determines whether or not the communication setting information needs to be updated based on the recalculated Keep / Alive necessity / interval, that is, whether or not there has been a change from the previously calculated communication setting information. Judgment is made (step 73).
  • the communication setting determination unit 306 When it is determined that the communication setting information needs to be updated (Yes), the communication setting determination unit 306 outputs the communication setting information reflecting the information after the recalculation to the communication setting management unit 307 and the connection maintenance unit 302. (Step 74).
  • FIG. 8 is a flowchart showing a communication setting determination process when the device 300 uses the connection test server 200. Unlike the case of FIG. 7, the connection destination of the device 300 is the connection test server 200 in the process of FIG.
  • steps 81 to 86 is the same as the processing from steps 61 to 66 in FIG.
  • the communication setting determination unit 306 After outputting the communication setting information in step 86, the communication setting determination unit 306 connects to the connection test server 200 by the connection management unit 301 (step 87).
  • the communication setting determination unit 306 outputs the communication setting information to the connection maintaining unit 302 (step 88), similarly to the case of FIG. 7 described above, and whether or not the connection state change information is acquired from the connection management unit 301. Is determined (step 89).
  • the communication setting determination unit 306 determines whether or not the connection with the connection test server 200 has been disconnected based on the connection state change information (step 90). ).
  • the communication setting determination unit 306 determines whether or not the prescribed number of connection tests with the connection test server 200 has been reached (step 91), and if not reached (No), the connection management unit 301 causes the connection test to be performed. Reconnect to server 200.
  • step 91 If it is determined in step 91 that the prescribed number of tests has been reached (Yes), or if the connection test server 200 is reconnected in step 92, the processing after steps 71 to 74 in FIG. This is the same as the processing (steps 92 to 96).
  • the communication setting determination unit 306 recalculates the necessity / interval of KeepKAlive based on the connection duration with the connection test server 200 until the current time (when the connection is disconnected), and determines that the communication setting information needs to be updated. If so, it outputs it to the communication setting management unit 307 and the connection maintenance unit 302.
  • FIG. 9 is a flowchart showing the flow of connection maintenance processing by the device 300.
  • connection maintaining unit 302 of the device 300 waits for input of communication setting information from the communication setting determining unit 306 or notification from a timer (step 101).
  • connection maintaining unit 302 acquires each information on the necessity of keep-alive and the transmission interval from the communication setting information (step 103).
  • connection maintaining unit 302 breaks whether or not the Keep Alive necessity is set to “necessary” (step 104).
  • a timer is set so as to notify when the Keep ⁇ ⁇ Alive interval has elapsed since the previous sending of the Keep Alive packet to the messaging server 100 (step 105).
  • connection maintaining unit 302 resets the timer so as to notify the time when the above-mentioned Keep-Alive interval has passed (Step 107).
  • connection maintaining unit 302 transmits the Keep Alive packet to the messaging server 100 (Step 108), and receives an ACK of the Keep Alive packet from the messaging server 100 (Step 109).
  • FIG. 10 is a flowchart showing the operation flow of the messaging server 100.
  • connection maintaining unit 102 of the messaging server 100 waits for reception of a Keep Alive packet from the connection management unit 101 (step 111).
  • the connection maintaining unit 102 transmits an ACK packet in response to the device 300 (step 113).
  • the device 300 determines the Keep Alive interval based on the connection duration when the connection with the messaging server 100 or the connection test server 200 is actually disconnected. Send a Keep Alive packet. Therefore, the load with communication of the messaging server 100 and the device 300 by the keep alive communication is reduced as compared with the case where the keep alive packet is transmitted at a uniform interval regardless of the communication environment.
  • FIG. 11 is a diagram showing a network configuration of the system in the present embodiment.
  • the messaging server 100 has a function of notifying a device 300 that is a message destination of a notification message that notifies that there is data (message) transmitted from a certain device 300 to another device 300.
  • a plurality of means for the notification may exist depending on the communication environment of the device 300 (for example, the specification of the communication relay device 350).
  • the device 300 When each device 300 communicates with the messaging server 100, the device 300 transmits to the messaging server 100 in advance notification means setting information for setting a notification means for the messaging server 100 to send a notification message according to the communication environment. Set the notification means.
  • the notification message may be transmitted by the messaging server 100, but the notification server 400 provided separately on the cloud may play the role.
  • the notification server 400 is provided for transmitting the notification message to the device 300 when direct communication from the outside (the messaging server 100) cannot be performed due to the presence of the communication relay device 350.
  • the notification server 400 can communicate with the messaging server 100 and each device 300 via the WAN 50.
  • the device 300 uses the notification server 400, the device 300 is always connected to the notification server 400, and establishes a connection with the messaging server 100 as necessary.
  • FIG. 12 is a diagram showing a software module configuration of the messaging server 100 in the present embodiment.
  • a notification means setting reception unit 106 As shown in the figure, compared to the module configuration (FIG. 4) of the messaging server 100 in the first embodiment, in this embodiment, a notification means setting reception unit 106, a notification means setting management unit 107, a notification means. Each software module of the determination unit 108 and the connection request notification unit 109 is added.
  • the notification means setting receiving unit 106 receives the notification means setting information transmitted from the device 300.
  • the notification means setting management unit 107 manages the notification means setting information received from the device 300.
  • the notification means setting information is stored in the storage unit 18.
  • the notification unit determination unit 108 determines a notification unit to be used based on information managed by the notification unit setting management unit 107 when communicating with the device 300.
  • connection request notification unit 109 actually executes a process for transmitting a notification message to the device 300 based on the notification unit determined by the notification unit determination unit 108.
  • connection management unit 101 manages not only the device 300 but also the connection with the notification server 400.
  • FIG. 13 is a diagram showing a software module configuration of the device 300 in the present embodiment.
  • a notification waiting unit 308, a notification unit setting transmission unit 309, a notification unit setting determination unit. 310 and a notification means setting management unit 311 are added.
  • the notification waiting unit 308 waits for a notification message transmitted from the messaging server 100 or the notification server 400.
  • the notification means setting determination unit 310 determines an appropriate notification means based on the communication environment information of the device 300, and generates or updates the notification means setting information.
  • the notification means setting transmission unit 309 transmits the generated or updated notification means setting information to the messaging server 100.
  • the notification means setting management unit 311 manages the generated or updated notification means setting information.
  • connection management unit 301 manages not only the messaging server 100 but also the notification server 400.
  • FIG. 14 is a diagram showing an example of the notification means type and corresponding notification means additional information.
  • the notification means types in this embodiment are “Notify Server”, “Global IP”, “Router UPnP IGD”, “Router User Setting”, “Proxy Server”, “Mail” and “Polling”. There are seven.
  • Notify Server indicates that the messaging server 100 can connect to each device 300 via the notification server 400.
  • the notification means is used.
  • Global IP indicates that a global IP address is assigned to the device 300 (for example, a mobile device), and the messaging server 100 can directly connect to the device 300 without going through the communication relay device 350.
  • the global IP address and port number of the device 300 are described as additional information.
  • the “Router UPnP IGD” can be set so that the NAT router (communication relay device 350) forwards communication from the outside to the internal device 300 according to an instruction from the device 300 connected thereto.
  • 100 indicates that the device 300 can be connected to the device 300 via the communication relay device 350.
  • the NAT router as the communication relay device 350 supports the NAT-Traversal mechanism based on the UPnP-IGD protocol.
  • the internal device 300 determines the port number on the WAN 50 side and the port number on the LAN side in cooperation with the messaging server 100, and communicates with the port number on the WAN 50 side using the IP address on the LAN side. / Set to NAT router to forward to port number.
  • the messaging server 100 stores the IP address and port number on the WAN side as additional information, and uses the stored IP address and port number when communicating with the device 300.
  • “Router User Setting” indicates that the same transfer setting as “UPnP IGD” is enabled not by an instruction from the device 300 but manually changed by the user using the port forwarding mechanism. Also in this case, the set IP address and port number are stored as additional information.
  • “Proxy Server” indicates that the messaging server 100 can communicate with the device 300 via the proxy server on the device 300 side.
  • the IP address and port number of the proxy server are stored as additional information.
  • “Mail” indicates a case where a notification message is transmitted from the messaging server 100 to the device 300 via electronic mail.
  • the mail address of the user of the device 300 is stored as additional information.
  • “Polling” indicates a case where a notification message is transmitted from the device 300 to the messaging server 100 by polling.
  • FIG. 15 is a diagram showing an example of the notification means setting information.
  • An example of notification means setting information in the case of “Mail” is shown.
  • the notification means setting information includes items of a device ID that uniquely identifies the device 300, a notification means type, notification means additional information, an expiration date, communication environment information, and priority.
  • the communication environment information is the same as that described in the first embodiment. The priority will be described later.
  • FIG. 16 is a flowchart showing a flow of notification means setting determination processing in the present embodiment.
  • the notification means setting determination unit 310 of the device 300 first waits for the communication environment information to be input from the communication environment determination unit 305 (step 161).
  • the notification unit setting determination unit 310 acquires notification unit setting information corresponding to the communication environment information from the notification unit setting management unit 311 (step 163).
  • the notification means setting determination unit 310 when there is no corresponding notification means setting information (Yes in step 164), the notification means setting determination unit 310 generates corresponding notification means setting information from the communication environment information (step 165).
  • the notification unit setting determination unit 310 outputs the generated notification unit setting information to the notification unit setting management unit 311 (step 166).
  • the notification means setting information is transmitted to the messaging server 100 by the notification means setting transmission unit 309.
  • all notification means setting information is transmitted to the messaging server 100.
  • FIG. 17 is a diagram showing a method for generating the notification means setting information.
  • the notification means and the priority are fixedly determined according to the communication environment type.
  • the notification means type is “Global IP” and the priority is 100.
  • the notification means type is “Router / UPnPIGD” and the priority is 200.
  • the notification means type is “Router User Setting” and the priority is 200.
  • the notification means type is “Notify Server” and the priority is 200.
  • the notification means type is “Notify Server” and the priority is 200.
  • the notification means type is “Notify Server” and the priority is 200.
  • the notification means type is “Notify Server” and the priority is 200.
  • the notification means type is “Polling” and the priority is 300.
  • the notification means type is “Mail” and the priority is 500.
  • the priority is used as a reference when the messaging server 100 selects one of a plurality of available notification means.
  • the priority is higher as the value is smaller.
  • any method can be used as a method for generating notification means setting information (notification means and priority determination method) as long as information on appropriate notification means and priority can be generated based on communication environment information. I do not care.
  • FIG. 18 is a flowchart showing the flow of message transfer processing by the messaging server 100.
  • the message receiving unit 103 of the messaging server 100 receives a message from the device 300 (300A) via the connection of the connection management unit 101 (step 181).
  • the message transfer unit 104 determines whether or not the message is a message to be processed by another messaging server (step 182).
  • the message transfer unit 104 transfers the message to the message transmission unit 105 (step 184).
  • the message transfer unit 104 is a message (addressed to the messaging server 100) to be processed by itself (the messaging server 100). Whether or not (step 185).
  • the message transfer unit 104 processes the message (step 186).
  • the message transmission unit 105 passes through the connection management unit 101. It is confirmed whether or not there is a connection with the message destination device 300B (step 187).
  • the message transmission unit 105 requests the notification means determination unit 108 to transmit a notification message regarding the message (step 189). Thereby, the notification means determination process by the notification means determination part 108 mentioned later is performed.
  • the message transmission unit 105 waits for connection with the message destination device 300B to be established via the connection management unit 101 (step 190).
  • the message transmission unit 105 transmits the message to the destination device 300B via the connection management unit 101 (step 191).
  • FIG. 19 is a flowchart showing the flow of notification means determination processing by the messaging server 100.
  • the notification unit determination unit 108 acquires notification unit setting information corresponding to the device 300 that is the message destination from the notification unit setting management unit 107 (step 201).
  • the notification means determination unit 108 confirms the application condition and expiration date in the notification means setting information shown in FIG. 15, and selects a valid entry (or a plurality of entries) as a target entry (step 202).
  • the notification means determination unit 108 ends the process.
  • the notification means determination unit 108 takes out the entry (s) having the highest priority (small value) in the notification means setting information (Step 204).
  • the notification means determination unit 108 transmits the notification message by simultaneous and parallel processing via the connection request notification unit 109 using the notification means of the plurality of entries taken out in parallel (step 205).
  • the notification means determination unit 108 determines whether any of the plurality of transmission processes has succeeded (step 206), and when any has succeeded (Yes), ends the process. If it is not successful (No), the processing from step 203 onward is repeated.
  • the device 300 transmits a plurality of notification unit setting information to the messaging server 100 in advance, and the messaging server 100 transmits a notification message by combining these notification units. . Therefore, when the device 300 moves, it is not necessary to communicate with the device 300 in order to switch the notification means each time, and thus the load on the messaging server 100 is prevented by such communication.
  • the messaging server 100 implements a plurality of notification means that have been notified in advance, so that the device 300 transmits new notification means setting information.
  • the device 300 need only transmit new notification means setting information to the messaging server 100 only when a completely new communication environment is added or when it is necessary to change existing notification means settings.
  • FIG. 20 is a diagram illustrating an example in which each device 300 performs reconnection at the same timing when the continuous connection between the plurality of devices 300 and the messaging server 100 is disconnected.
  • FIG. 21 is a diagram illustrating an example in which each device 300 performs reconnection at different timings when the continuous connection between the plurality of devices 300 and the messaging server 100 is disconnected.
  • the messaging server 100 and the device 300 maintain a constant connection between the two by keep-alive communication. However, when a failure occurs in the messaging server 100, all the connections with the device 300 that is always connected to the messaging server 100 are disconnected.
  • each device 300 waits for a certain period of time and performs reconnection processing again, but here again, the connection is made at the same timing, and a situation where a connection error further occurs is repeated.
  • the messaging server 100 recalculates the reconnection start waiting time according to the constant connection status with the device 300 and notifies each device 300 of it.
  • the information related to the reconnection start waiting time is written in, for example, an ACK packet for a Keep Alive packet transmitted from each device 300.
  • FIG. 22 is a diagram showing a software module configuration of the messaging server 100 in the system of the present embodiment.
  • a reconnection setting determination unit 110 is added in this embodiment.
  • the reconnection setting determination unit 110 periodically acquires information related to the constant connection to the messaging server 100 from the connection management unit 101, determines an appropriate reconnection start waiting time, and determines the reconnection start waiting time as the connection maintenance. Notification is made to the device 300 via the unit 102.
  • FIG. 23 is a diagram showing a software module configuration of the device 300 in the system of the present embodiment.
  • a reconnection setting management unit 312 is added in the present embodiment.
  • the reconnection setting management unit 312 manages the reconnection setting acquired via the connection maintenance unit 302 and sets it in the connection management unit 301.
  • the reconnection setting information is stored in the storage unit 38 and updated whenever the latest information is received from the messaging server 100.
  • FIG. 24 is a flowchart showing the flow of reconnection setting processing by the device 300.
  • connection maintaining unit 302 of the device 300 transmits a Keep Alive packet to the messaging server 100 at the transmission interval shown in the first embodiment (step 241).
  • connection maintaining unit 302 receives an ACK packet for the above KeepAlive packet from the messaging server 100 (step 242).
  • connection maintaining unit 302 acquires new reconnection start waiting time information (T_backoff) described in the ACK packet (step 243).
  • connection maintaining unit 302 sets the acquired reconnection start waiting time information (T_backoff) in the connection management unit 101 (step 244).
  • FIG. 25 is a flowchart showing the flow of reconnection processing by the device 300.
  • connection management unit 101 of the device 300 first waits for a change in the connection state with the messaging server 100 (step 251).
  • connection management unit 101 determines whether or not the connection with the messaging server 100 has been disconnected (step 252).
  • connection management unit 101 waits for the minimum reconnection waiting time (T_min) (step 253).
  • T_min The reconnection minimum waiting time (T_min) is determined in common for each device 300.
  • connection management unit 101 sets the latest reconnection start waiting time (T_cur_backoff) in the reconnection start waiting time information (T_backoff) acquired from the messaging server 100 (step 254).
  • connection management unit 101 uses a random number to determine T that satisfies 0 ⁇ T ⁇ T_cur_backoff (step 255).
  • connection management unit 101 waits for the time indicated by T (step 256), and then requests reconnection to the messaging server 100 (step 257).
  • connection management unit 101 determines whether or not the connection with the messaging server 100 has been established (step 258).
  • the connection management unit 101 sets the latest reconnection start waiting time (T_cur_backoff) to a smaller value of T_max_backoff and T_cur_back * 2 (step 259). Then, the processing after step 253 is repeated.
  • T_max_backoff indicates the maximum reconnection start waiting time set in advance in the device 300.
  • FIG. 26 is a flowchart showing the flow of reconnection setting determination processing by the messaging server 100.
  • the reconnection setting determination unit 110 of the messaging server 100 acquires the current number of constant connections (N) of the device 300 from the connection management unit 101 (step 261).
  • the reconnection setting determination unit 110 calculates the reconnection start waiting time (T_backoff) by the following formula based on the current number of always-on connections (N).
  • T_backoff f_backoff (N)
  • f_backoff (N) is calculated by the following equation using, for example, a connection start request (N_max_conn_req) that can be processed by the messaging server 100 per unit time.
  • f_backoff (N) N / N_max_conn_req
  • the reconnection setting determination unit 110 determines whether or not the calculated T_backoff is different from the previous value (step 263).
  • the reconnection setting determination unit 110 If it is determined that T_backoff is different from the previous value, the reconnection setting determination unit 110 describes the reconnection start waiting time (T_backoff) in the ACK for the keep alive packet via the connection maintenance unit 302. To the device 300. [Summary]
  • the messaging server 100 determines the setting for reconnection based on the connection status of all the devices 300 at that time. Then, each device 300 is notified. Therefore, it is possible to prevent the reconnection of the device 300 from being concentrated after the restoration of the messaging server 100 and further causing a connection failure.
  • the messaging server 100 describes the reconnection start waiting time on the ACK for the Keep Alive packet transmitted from each device 300 to maintain the connection. Therefore, new communication is not performed only for notification of the reconnection start waiting time, and therefore, even in an environment where there are a large number of mobile devices 300 such as mobile devices, the communication load during normal operation is not increased. Even when a failure occurs, the connection is restored with the optimum settings.
  • connection test server 200 In the first embodiment described above, only one connection test server 200 is shown on the cloud (FIG. 1), but a plurality of connection test servers 200 may be provided, and each device 300 has a dedicated connection test server 200.
  • the connection test server 200 may be determined in advance.
  • the messaging server 100 concurrently executes the notification means having the highest priority when a plurality of notification means are available.
  • the messaging server 100 may try a plurality of notification means in order regardless of the priority, or may execute all the notification means simultaneously in parallel.
  • the information related to the reconnection start waiting time is described in the ACK packet for the Keep Alive packet, but it may be transmitted separately from the ACK.
  • the messaging server 100 acquires the number of constant connections (N) of the device 300 at that time from the connection management unit 101, and a connection start request that can be processed by the messaging server 100 per unit time.
  • F_backoff (N) was calculated using (N_max_conn_req).
  • any information may be used for the information related to the connection acquired from the connection management unit 101 and the calculation formula f_backoff () for calculating T_backoff based on the information.
  • the message transmitting unit 303 and the message receiving unit 304 of each device 300 are shown as separate modules, but the connections used by both may be shared.
  • messages are used for all exchanges between the devices 300 via the messaging server 100.
  • an application of each device 300 may be provided with an RPC (Remote Procedure Call) mechanism, a stream communication mechanism, and a communication mechanism such as HTTP emulation based on this message mechanism.
  • RPC Remote Procedure Call
  • the messaging server 100 and the notification server 400 are shown as physically different servers. However, since the difference between the two results from the setting and handling of the buffer size for the connection with each device 300, the same effect can be obtained in the following forms even if the form is not operated on a physically different server. Is obtained. (1) Run both the notification server process and the messaging server process on a single server machine. (2) One server process having a notification server function and a messaging server function is operated on a single server machine (a connection form corresponding to the notification server and a messaging server corresponding to the communication status with the device 300) Switch the connection type).
  • a communication unit capable of communicating with other information processing apparatuses via a relay server on the network; It is possible to acquire communication environment information indicating a communication environment of the communication unit, including attribute information of a communication relay device that relays communication between the communication unit and the relay server, Based on the acquired communication environment information, it is possible to calculate a transmission interval for transmitting a maintenance signal for maintaining a connection with the relay server,
  • An information processing apparatus comprising: a control unit capable of controlling the communication unit to transmit the maintenance signal to the relay server at the calculated transmission interval.
  • the information processing apparatus calculates a duration from the connection to the disconnection when the connection is disconnected by the communication relay device after the communication unit connects to the relay server, and the calculated duration An information processing apparatus that calculates a transmission interval of the maintenance signal based on the information.
  • the communication unit can communicate with a connection test server existing on the network, The control unit calculates a duration from the connection to the disconnection when the connection is disconnected by the communication relay device after connection with the connection test server by the communication unit, and the calculated continuation An information processing apparatus that calculates a transmission interval of the maintenance signal based on time.
  • the communication unit is capable of receiving from the relay server a notification message for notifying the presence of data addressed to the information processing device transmitted from the other information processing device,
  • the control unit can generate setting information to be set for the relay server to connect to the information processing apparatus and transmit the notification message according to the communication environment, and the generated setting
  • the communication unit can be controlled to transmit information to the relay server;
  • the relay server stores the transmitted setting information, and transmits the notification message based on the stored setting information.
  • the information processing apparatus according to (4) The control unit can update the generated setting information in accordance with a change in the communication environment, and can control the communication unit to transmit the updated setting information to the relay server. Yes,
  • the relay server updates the stored setting information with the updated and transmitted setting information.
  • the controller is A plurality of the setting information that can be generated according to a change in the communication environment can be generated in advance, The communication unit can be controlled to transmit the generated plurality of setting information to the relay server; When the communication environment changes, and when none of the transmitted plurality of setting information corresponds to the changed communication environment, new setting information corresponding to the changed communication environment Can be generated and The communication unit can be controlled to transmit the generated new setting information to the relay server; The relay server stores the plurality of transmitted setting information, and transmits the notification message based on at least one of the stored plurality of setting information.
  • the information processing apparatus according to any one of (1) to (6), A storage unit;
  • the communication unit generates a connection between the information processing device and the relay server, generated from the relay server according to the number of information processing devices including the information processing device connected to the relay server.
  • the information processing apparatus can periodically receive reconnection information related to the timing of reconnection to the relay server,
  • the controller is The storage unit can be controlled to store the latest reconnection information among the reconnection information received periodically.
  • the communication unit can be controlled to reconnect to the relay server based on the stored reconnection information.
  • the information processing apparatus receives, as the reconnection information, information indicating a maximum waiting time from the disconnection to the reconnection, The controller is Determine a waiting time within the maximum waiting time using a random number, An information processing apparatus that controls the communication unit to reconnect to the relay server after the determined waiting time has elapsed.
  • the information processing apparatus according to (8), The relay server returns an ACK including information indicating the maximum waiting time in response to the transmitted maintenance signal, The communication unit receives the ACK, The control unit acquires information indicating the maximum waiting time from the received ACK.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)

Abstract

【課題】情報処理装置間の接続を維持するための通信処理による通信負荷を軽減すること。 【解決手段】情報処理装置は、通信部と制御部とを有する。上記通信部は、ネットワーク上の中継サーバを介して他の情報処理装置と通信可能である。上記制御部は、上記通信部と上記中継サーバとの通信を中継する通信中継装置の属性情報を含む、上記通信部の通信環境を示す通信環境情報を取得可能である。また制御部は、上記取得された通信環境情報に基づいて、上記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出可能である。さらに制御部は、上記算出された送信間隔で、上記維持信号を上記中継サーバへ送信するように上記通信部を制御可能である。

Description

情報処理装置、情報処理システム、情報処理方法及びプログラム
 本技術は、通信中継装置を介してネットワーク上の他の情報処理装置と通信可能な情報処理装置、当該情報処理装置を含む情報処理システム、当該情報処理装置における情報処理方法及び当該情報処理装置で実行されるプログラムに関する。
 NATルータやプロキシサーバ等の通信中継装置を経由した情報処理装置間の通信処理においては、一定時間通信がない場合、通信中継装置が接続を切断することがある。そこで、通信中継装置は、一定の時間間隔で接続維持のための通信(KeepAlive、HeartBeat通信)を行う。KeepAliveについては、例えば、下記特許文献1に記載されている。
特開2009-232358号公報
 しかしながら、通信中継装置が接続を切断するまでの時間は、通信中継装置やそれが属する通信環境によって大きく異なる。それにも関わらず、従来の通信中継装置は、一律の時間間隔でKeepAlive通信を行うため、接続維持のために本来必要な頻度以上に通信が行われており、通信負荷及びトラフィックの増加を招いていた。
 以上のような事情に鑑み、本技術の目的は、情報処理装置間の接続を維持するための通信処理による通信負荷を軽減することが可能な情報処理装置、情報処理システム、情報処理方法及びプログラムを提供することにある。
 上述の課題を解決するため、本技術の一形態に係る情報処理装置は、通信部と制御部とを有する。上記通信部は、ネットワーク上の中継サーバを介して他の情報処理装置と通信可能である。上記制御部は、上記通信部と上記中継サーバとの通信を中継する通信中継装置の属性情報を含む、上記通信部の通信環境を示す通信環境情報を取得可能である。また制御部は、上記取得された通信環境情報に基づいて、上記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出可能である。さらに制御部は、上記算出された送信間隔で、上記維持信号を上記中継サーバへ送信するように上記通信部を制御可能である。
 この構成によれば、情報処理装置は、通信中継装置の通信環境に応じて維持信号の送信間隔を決定することができるため、通信環境によらずに一律に維持信号を送信する場合に比べて、維持信号の送信処理による通信負荷を軽減することができる。
 上記制御部は、上記通信部による上記中継サーバとの接続後、上記通信中継装置により当該接続が切断された場合に、上記接続から上記切断までの継続時間を算出し、当該算出された継続時間を基に上記維持信号の送信間隔を算出してもよい。
 これにより情報処理装置は、中継サーバとの過去の通信における接続切断までの時間に基づいて維持信号の送信間隔を算出することで、次回の中継サーバとの通信においては適切な間隔での維持信号の送信により接続を維持することができる。
 上記通信部は、上記ネットワーク上に存在する接続テストサーバと通信可能であってもよい。この場合上記制御部は、上記通信部による上記接続テストサーバとの接続後、上記通信中継装置により当該接続が切断された場合に、上記接続から上記切断までの継続時間を算出し、当該算出された継続時間を基に上記維持信号の送信間隔を算出してもよい。
 これにより情報処理装置は、中継サーバと通信する前に接続テストサーバと通信し、それとの接続切断までの時間に基づいて維持信号の送信間隔を算出することで、中継サーバとは初回から一度も接続を切断することなく通信を行うことができる。
 上記通信部は、上記他の情報処理装置から送信された当該情報処理装置宛のデータの存在を通知する通知メッセージを上記中継サーバから受信可能であってもよい。この場合上記制御部は、上記中継サーバが当該情報処理装置に接続して上記通知メッセージを送信するために設定すべき設定情報を、上記通信環境に応じて生成可能であり、かつ、当該生成された設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。この場合上記中継サーバは、上記送信された設定情報を記憶し、当該記憶された設定情報に基づいて上記通知メッセージを送信してもよい。
 これにより情報処理装置は、通信環境に応じた設定情報を中継サーバへ送信し、通知メッセージを確実に受信することができる。
 上記制御部は、上記通信環境の変化に応じて、上記生成された設定情報を更新可能であり、かつ、当該更新された設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。この場合上記中継サーバは、上記更新され送信された設定情報により、上記記憶された設定情報を更新してもよい。
 これにより情報処理装置は、たとえば情報処理装置が携帯端末である場合等、通信環境が変化し得る場合であっても、その変化に応じて設定情報を更新して中継サーバに設定させることができる。
 上記制御部は、上記通信環境の変化に応じて生成され得る複数の上記設定情報を予め生成可能であってもよい。また制御部は、上記生成された複数の設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。また制御部は、上記通信環境の変化した場合であって、上記送信された複数の設定情報のいずれもが当該変化後の通信環境に対応していない場合に、当該変化後の通信環境に応じた新たな設定情報を生成可能であってもよい。さらに制御部は、上記生成された新たな設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。この場合上記中継サーバは、上記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも1つに基づいて上記通知メッセージを送信してもよい。
 これにより、情報処理装置は、複数の通信環境に応じた複数の設定情報を予めサーバへ送信しておくため、通信環境が変化しても、その都度設定情報を中継サーバへ送信する必要がなくなり、その送信処理に係る当該情報処理装置及びサーバの負荷を軽減できる。
 上記情報処理装置は、記憶部をさらに具備してもよい。この場合上記通信部は、上記中継サーバから、当該中継サーバに接続されている当該情報処理装置を含む複数の情報処理装置の数に応じて生成された、当該情報処理装置と上記中継サーバとの接続が切断された場合に当該情報処理装置が上記中継サーバへ再接続するタイミングに関連する再接続情報を定期的に受信可能であってもよい。この場合上記制御部は、上記定期的に受信される再接続情報のうち最新の再接続情報を記憶するように上記記憶部を制御可能であってもよい。さらに制御部は、当該情報処理装置と上記中継サーバとの接続が切断された場合に、上記記憶された再接続情報に基づいて上記中継サーバと再接続するように上記通信部を制御可能であってもよい。
 これにより情報処理装置は、何らかの障害により中継サーバとの接続が切断された場合に、その時点で記憶されている最新の再接続情報に基づいて中継サーバと再接続する。したがって、中継サーバに接続されていた多数の他の情報処理緒装置が同じタイミングで中継サーバに再接続を要求することがなくなり、それによる接続エラーの発生が防止されるとともに、中継サーバの負荷が軽減される。
 上記通信部は、上記再接続情報として、上記切断から上記再接続までの最大待ち時間を示す情報を受信してもよい。この場合上記制御部は、乱数を用いて上記最大待ち時間内の待ち時間を決定してもよい。さらに制御部は、上記決定された待ち時間の経過後に上記中継サーバと再接続するように上記通信部を制御してもよい。
 これにより情報処理装置は、中継サーバから最大待ち時間情報を受信することで、その範囲内でランダムに待ち時間を決定するだけで、サーバにおける更なる通信エラーを防ぐことができる。
 上記中継サーバは、上記送信された維持信号に対して、上記最大待ち時間を示す情報を含むACKを返信してもよい。この場合上記通信部は、上記ACKを受信し、上記制御部は、上記受信されたACKから上記最大待ち時間を示す情報を取得してもよい。
 これにより、中継サーバからの最大待ち時間を示す情報の送信処理によって通信負荷が増大するのが防止される。
 本技術の他の形態に係る情報処理システムは、第1の情報処理装置と第2の情報処理装置とを有する。上記第1の情報処理装置は、第1の通信部と、第1の制御部とを有する。上記第1の通信部は、上記第2の情報処理装置を介して他の情報処理装置と通信可能である。上記第1の制御部は、上記第1の情報処理装置と上記第2の情報処理装置との通信を中継する通信中継装置の属性情報を含む、上記第1の通信部の通信環境を示す通信環境情報を取得可能である。また第1の制御部は、上記取得された通信環境情報に基づいて、上記第2の情報処理装置との接続を維持するための維持信号を送信する送信間隔を算出可能である。さらに第1の制御部は、上記算出された送信間隔で、上記維持信号を上記第2の情報処理装置へ送信するように上記通信部を制御可能である。上記第2の情報処理装置は、第2の通信部と、第2の制御部とを有する。上記第2の通信部は、上記第1の通信部と通信して、上記第1の情報処理装置と上記他の情報処理装置との間の通信を中継可能である。上記第2の制御部は、上記第1の情報処理装置から送信された維持信号を受信し、当該維持信号に対するACKを上記第1の情報処理装置へ送信するように、上記第2の通信部を制御可能である。
 本技術の他の形態に係る情報処理方法は、情報処理装置と上記中継サーバとの通信を中継する通信中継装置の属性情報を含む、上記情報処理装置の通信環境を示す通信環境情報を取得することを含む。上記情報処理装置は、ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に接続される。上記方法では、さらに、上記取得された通信環境情報に基づいて、上記中継サーバとの接続を維持するための維持信号を送信する送信間隔が算出される。そして、上記算出された送信間隔で、上記維持信号が上記中継サーバへ送信される。
 本技術のまた別の形態に係るプログラムは、ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に、取得ステップと、算出ステップと、送信ステップとを実行させる。上記取得ステップでは、上記情報処理装置と上記中継サーバとの通信を中継する通信中継装置の属性情報を含む、上記情報処理装置の通信環境を示す通信環境情報が取得される。上記算出ステップでは、上記取得された通信環境情報に基づいて、上記中継サーバとの接続を維持するための維持信号を送信する送信間隔が算出される。上記送信ステップでは、上記算出された送信間隔で、上記維持信号が上記中継サーバへ送信される。
 以上のように、本技術によれば、情報処理装置間の接続を維持するための通信処理による通信負荷を軽減することができる。
本技術の第1の実施形態におけるシステムのネットワーク構成を示した図である。 上記システムにおけるメッセージングサーバのハードウェア構成を示したブロック図である。 上記システムにおけるデバイスのハードウェア構成を示したブロック図である。 上記システムにおけるメッセージングサーバのソフトウェアモジュール構成を示したブロック図である。 上記システムにおけるデバイスのソフトウェアモジュール構成を示したブロック図である。 上記デバイスによる通信環境判定処理の流れを示したフローチャートである。 上記デバイスによる通信環境設定処理の一例の流れを示したフローチャートである。 上記デバイスによる通信環境設定処理の他の例の流れを示したフローチャートである。 上記デバイスによる接続維持処理の流れを示したフローチャートである。 上記メッセージングサーバの処理の流れを示したフローチャートである。 本技術の第2の実施形態におけるシステムのネットワーク構成を示した図である。 第2の実施形態のシステムにおけるメッセージングサーバのソフトウェアモジュール構成を示した図である。 第2の実施形態のシステムにおけるデバイスのソフトウェアモジュール構成を示した図である。 第2の実施形態における通知手段のタイプとそれに対応する通知手段付加情報の例を示した図である。 第2の実施形態における通知手段設定情報の例を示した図である。 第2の実施形態における通知手段設定判定処理の流れを示したフローチャートである。 第2の実施形態における通知手段設定情報の生成手法について示した図である。 第2の実施形態におけるメッセージングサーバによるメッセージ転送処理の流れを示したフローチャートである。 第2の実施形態におけるメッセージングサーバによる通知手段決定処理の流れを示したフローチャートである。 複数のデバイスとメッセージングサーバとの常時接続が切断された場合に、各デバイスが同じタイミングで再接続を行う場合の例を示した図である。 複数のデバイスとメッセージングサーバとの常時接続が切断された場合に、各デバイスがタイミングをずらして再接続を行う場合の例を示した図である。 第3の実施形態のシステムにおけるメッセージングサーバのソフトウェアモジュール構成を示した図である。 第3の実施形態のシステムにおけるデバイスのソフトウェアモジュール構成を示した図である。 第3の実施形態におけるデバイスによる再接続設定処理の流れを示したフローチャートである。 第3の実施形態におけるデバイスによる再接続処理の流れを示したフローチャートである。 第3の実施形態におけるメッセージングサーバによる再接続設定判定処理の流れを示したフローチャートである。
 以下、本技術に係る実施形態を、図面を参照しながら説明する。
<第1の実施形態>
 まず、本技術の第1の実施形態を説明する。
[システムのネットワーク構成]
 図1は、本実施形態に係るシステムのネットワーク構成を示した図である。
 同図に示すように、このシステムは、クラウド上のメッセージングサーバ100及び接続テストサーバ200と、それらサーバとWAN(Wide Area Network)50を介して接続可能な複数のデバイス300とを有する。
 デバイス300は、例えばスマートフォン、携帯電話機、タブレットPC(Personal Computer)、デスクトップPC、ノートブックPC、PDA(Personal Digital Assistant)、携帯型AVプレイヤー、電子ブック、デジタルスチルカメラ、カムコーダ、テレビジョン装置、PVR(Personal Video Recorder)、ゲーム機器、カーナビゲーションシステム、デジタルフォトフレーム等、あらゆる情報処理装置であり得る。同図では、デバイス300Aとデバイス300Bの2台のみが示されているが、デバイス300の数は3台以上であっても構わない。
 各デバイス300は、通信中継装置350を介して上記メッセージングサーバ100及び接続テストサーバ200と通信する場合もあるし、通信中継装置350を介さずに直接それらのサーバと通信する場合もある。各デバイス300は、メッセージングサーバ100と常時接続により通信可能である。
 通信中継装置350とは、内側(デバイス300側)のネットワークと外部(クラウド側)のネットワークとの間の通信を中継する機能を持ち、両ネットワークにおいて利用されるアドレスの相違や、セキュリティを保護する機構のために、外部のサーバが、特別な手段を用いない限り、内部の特定のデバイスを指定して接続することを不可能にしているものをいう。このような通信中継装置350としては、例えばNATルータやプロキシサーバまたはファイアーウォールが挙げられる。
 接続テストサーバ200は、各デバイス300と通信可能である。この接続テストサーバ200は、各デバイス300がメッセージングサーバ100と通信するのに先立って、当該通信の切断を事前に防止するための接続テストを行うために設置されたサーバである。ただし、デバイス300は、接続テストサーバ200を利用してもよいし、しなくてもよい。
 同図では、メッセージングサーバ100はクラウド上に1台のみ図示されているが、メッセージングサーバ100は複数設けられていてもよい。この場合、デバイス300からのメッセージは、複数のメッセージングサーバ100間で中継され得る。
 つまり、各デバイス300には、複数のメッセージングサーバ100のうち、特定のメッセージングサーバ100が、その利用サーバ(担当サーバ)として割り当てられている。割り当ての方法は如何なるものであってもよいが、例えば、各デバイス及びメッセージングサーバのIDを元に行われる。後述するが、あるデバイス300が送信したメッセージが、当該デバイスを担当しないメッセージングサーバ100によって受信された場合、そのメッセージは、当該担当の他のメッセージングサーバ100へ転送される。
[メッセージングサーバのハードウェア構成]
 図2は、上記メッセージングサーバ100のハードウェア構成を示した図である。同図に示すように、メッセージングサーバ100は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、入出力インタフェース15、及び、これらを互いに接続するバス14を備える。
 CPU11は、必要に応じてRAM13等に適宜アクセスし、各種演算処理を行いながらメッセージングサーバ100の各ブロック全体を統括的に制御する。ROM12は、CPU11に実行させるOS、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。RAM13は、CPU11の作業用領域等として用いられ、OS、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
 入出力インタフェース15には、表示部16、操作受付部17、記憶部18、通信部19等が接続される。
 表示部16は、例えばLCD(Liquid Crystal Display)、OELD(Organic ElectroLuminescence Display)、CRT(Cathode Ray Tube)等を用いた表示デバイスである。
 操作受付部17は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の入力装置である。操作受付部17がタッチパネルである場合、そのタッチパネルは表示部16と一体となり得る。
 記憶部18は、例えばHDD(Hard Disk Drive)や、フラッシュメモリ(SSD;Solid State Drive)、その他の固体メモリ等の不揮発性メモリである。当該記憶部18には、上記OSや各種アプリケーション、各種データが記憶される。特に本実施形態において、記憶部18には、後述する複数のソフトウェアモジュール等のプログラムが記憶される。
 通信部19は、WAN50に接続するためのNIC等であり、デバイス300との間の通信処理を担う。
[接続テストサーバのハードウェア構成]
 上記接続テストサーバ200のハードウェア構成も、上記メッセージングサーバのハードウェア構成と同様であるため、説明を省略する。本実施形態では、接続テストサーバ200において、上記メッセージングサーバ100のCPU11、記憶部18、通信部19と対応するハードウェアをそれぞれCPU21、記憶部28、通信部29と称する。
[デバイスのハードウェア構成]
 図3は、上記デバイス300のハードウェア構成を示した図である。同図に示すように、デバイス300のハードウェア構成も、上記サーバ100のハードウェア構成と基本的に同様である。すなわち、デバイス300は、CPU31、ROM32、RAM33、入出力インタフェース35、及び、これらを互いに接続するバス34、表示部36、操作受付部37、記憶部38、通信部39を備える。ここで表示部36は、デバイス300に内蔵されていてもよいし、デバイス300に外部接続されていてもよい。
 CPU31は、記憶部38や通信部39等の各ブロックを制御して、メッセージングサーバ100や接続テストサーバ200との通信処理や、各種データ処理を実行する。
 記憶部38には、後述する複数のソフトウェアモジュール等のプログラムや、各種データベースが記憶される。これらのプログラムは、デバイス300に、WAN50を介して提供されてもよいし、デバイス300で読み取り可能な記録媒体として提供されてもよい。
[各機器のモジュール構成]
(メッセージングサーバのモジュール構成)
 図4は、上記メッセージングサーバ100が有するソフトウェアモジュールの構成を示した図である。
 同図に示すように、メッセージングサーバ100は、接続管理部101、接続維持部102、メッセージ受信部103、メッセージ転送部104及びメッセージ送信部105の各ソフトウェアモジュールを有する。
 接続管理部101は、各デバイス300との間で接続を確立し、確立した全ての接続を管理する。
 接続維持部102は、上記接続管理部101の接続を介して、デバイス300との接続維持のための通信(KeepAlive通信)を行う。つまり接続維持部102は、デバイス300から送信されたKeepAliveパケット(接続維持信号)に対してACKを返答する。
 メッセージ受信部103は、接続管理部101の接続を介して、デバイス300からのメッセージ(データ)を受信する。
 メッセージ転送部104は、メッセージングサーバ100が自ら担当しないデバイス300へメッセージを送るために、当該メッセージを他のメッセージングサーバ(図示せず)へ転送する。
 メッセージ送信部105は、接続管理部101の接続を介して、あるデバイス300からのメッセージ(データ)を他のデバイス300へ送信する。
(デバイスのモジュール構成)
 図5は、上記デバイス300が有するソフトウェアモジュールの構成を示した図である。
 同図に示すように、デバイス300は、接続管理部301、接続維持部302、メッセージ送信部303、メッセージ受信部304、通信環境判定部305、通信設定判定部306及び通信設定管理部307を有する。
 接続管理部301は、メッセージングサーバ100及び接続テストサーバ200との間で接続を確立し、確立した全ての接続を管理する。
 接続維持部302は、上記接続管理部301の接続を介して、メッセージングサーバ100との接続維持のための通信(KeepAlive通信)を行う。つまり接続維持部302は、メッセージングサーバ100へ、後述する処理で決定された送信間隔で、KeepAliveパケット(接続維持信号)を送信する。
 メッセージ送信部303は、接続管理部301の接続を介して、メッセージングサーバ100及び接続テストサーバ200へメッセージ(データ)を送信する。
 メッセージ受信部304は、接続管理部301の接続を介して、メッセージングサーバ100及び接続テストサーバ200からのメッセージ(データ)を受信する。
 通信環境判定部305は、デバイス300の現在の通信環境を判定する。この通信環境判定処理の詳細については後述する。
 通信設定判定部306は、通信環境判定部305により判定された通信環境情報に基づいて、通信環境ごとの通信設定を判定する。この通信設定判定処理の詳細についても後述する。
 通信設定管理部307は、上記通信設定判定部306によって判定された、通信環境ごとの通信設定情報を管理する。
[システムの動作]
 次に、以上のように構成されたシステムにおけるメッセージングサーバ100及びデバイス300の動作について説明する。本実施形態及び他の実施形態において、メッセージングサーバ100及びデバイス300における動作は、CPUと、その制御下において実行される上記各ソフトウェアモジュールとで協働して行われる。
[デバイスの動作]
 まず、デバイス300における動作について説明する。
(通信環境判定処理)
 まず、通信環境判定処理について説明する。図6は、デバイス300による通信環境判定処理の流れを示したフローチャートである。同図の処理の前提として、デバイス300はメッセージングサーバ100に接続された状態であるものとする。
 同図に示すように、通信環境判定部305は、通信状態が変化したか否かを判断する(ステップ41)。
 通信状態が変化したと判断した場合(Yes)、通信環境判定部305は、通信環境タイプを「Unknown」と判定する(ステップ42)。
 続いて通信環境判定部305は、デバイス300のIPアドレスを取得する(ステップ43)。
 続いて通信環境判定部305は、接続管理部301の接続を用いて、メッセージングサーバ100から、WAN側のIPアドレス情報(メッセージングサーバ100がデバイス300との接続に用いているIPアドレス)を取得する(ステップ44)。
 続いて通信環境判定部305は、取得したデバイス300のIPアドレスが、上記メッセージングサーバ100から取得したWAN側のIPアドレスと同一であるか否かを判断する(ステップ45)。
 デバイス300のIPアドレスがWAN側のIPアドレスであると判断した場合(Yes)、通信環境判定部305は、通信環境タイプを「Global IP」と判定する(ステップ46)。
 デバイス300のIPアドレスがWAN側のIPアドレスでないと判断した場合(No)、通信環境判定部305は、デバイス300がプロキシサーバを利用しているか否かを判断する(ステップ47)。
 デバイス300がプロキシサーバを利用していると判断した場合(Yes)、通信環境判定部305は、通信環境タイプを「Proxy」と判定する(ステップ48)。
 デバイス300がプロキシサーバを利用していないと判断した場合(No)、通信環境判定部305は、デバイス300がNATルータを利用しているか否かを判断する(ステップ49)。
 デバイス300がNATルータを利用していると判断した場合(Yes)、通信環境判定部305は、通信環境タイプを「NAT Router」と判定し(ステップ50)、NATルータ(通信中継装置305)からルータ情報を取得する(ステップ51)。
 続いて通信環境判定部305は、上記判定した通信環境タイプを基に通信環境情報を取得し、当該通信環境情報が、これまでの設定と異なるか否かを判断する(ステップ52)。
 そして通信環境判定部305は、通信環境情報がこれまでと異なると判断した場合(Yes)、当該通信環境情報を通信設定判定部306へ送信する(ステップ53)。
 ここで、通信環境情報とは、上記通信環境タイプによって取得される、通信環境を一意に指定する情報であり、具体的には、以下の情報を含む。
 - 通信状態
 - WAN側IPアドレス/ポート番号
 - デバイスIPアドレス/ポート番号
 - 通信環境タイプ
 - ルータ情報(ルータ機種名/MACアドレス/UPnP IGD対応情報等)
(通信設定判定処理)
 次に、上記通信環境情報に基づいた通信設定判定処理について説明する。当該通信設定判定処理としては、デバイス300が、メッセージングサーバ100との通信に先立って、上記接続テストサーバ200を利用するか否かに応じて2つの処理が考えられる。
(通信設定判定処理(1))
 図7は、デバイス300が接続テストサーバ200を利用しない場合の通信設定判定処理の流れを示したフローチャートである。
 同図に示すように、デバイス300の通信設定判定部306は、通信環境判定部305からの通信環境情報の入力を待つ(ステップ61)。
 通信環境判定部305から上記通信環境情報を取得した場合(ステップ62のYes)、通信設定判定部306は、上記通信設定管理部307から、当該通信環境情報に対応した通信設定情報を取得する(ステップ63)。
 ここで通信設定情報とは、上記通信環境情報に、Keep Alive通信の要否及びそのKeep Aliveパケットの送信間隔を定めた情報(以下、Keep Alive要否/間隔とも称する)を加えた情報をいう。
 上記対応する通信設定情報が存在しないと判断した場合(ステップ64のYes)、通信環境判定部305は、上記通信環境情報に基づいて、デフォルトのKeep Alive要否/間隔を設定して通信設定情報を生成する(ステップ65)。そして通信環境判定部305は、当該通信設定情報を通信設定管理部307に出力する(ステップ66)。
 上記対応する通信環境情報が存在する場合(ステップ64のNo)及び上記デフォルト設定に基づいて生成された通信環境情報が通信設定管理部307へ出力された場合、通信設定判定部306は、接続維持部302へ当該通信設定情報を出力する(ステップ67)。
 続いて通信設定判定部306は、接続管理部301から、接続状態変化情報を取得したか否かを判断する(ステップ68)。
 上記接続状態変化情報が取得された場合(Yes)、通信設定判定部306は、当該接続状態変化情報を基に、メッセージングサーバ100との接続が切断されたか否かを判断する(ステップ69)。
 メッセージングサーバ100との接続が切断されたと判断した場合、通信設定判定部306は、接続管理部301により、メッセージングサーバ100と再接続する(ステップ70)。
 続いて通信設定判定部306は、現在(接続切断時)までのメッセージングサーバ100との接続の継続時間を接続管理部301から取得する(ステップ71)。
 続いて通信設定判定部306は、上記取得された接続継続時間を基に、Keep Alive要否/間隔を再計算する(ステップ72)。すなわち、通信設定判定部306は、例えば当該接続継続時間と同一の時間をKeep Alive間隔として算出する。しかし、Keep Aliveパケットの送信間隔は、上記接続継続時間よりもやや短い(所定時間を減じた)時間とされてもよい。
 続いて通信設定判定部306は、上記再計算したKeep Alive要否/間隔により、上記通信設定情報を更新する必要があるか否か、すなわち、前回計算した通信設定情報から変化があったか否かを判断する(ステップ73)。
 通信設定情報の更新が必要であると判断した場合(Yes)、通信設定判定部306は、上記再計算後の情報を反映した通信設定情報を、通信設定管理部307及び接続維持部302へ出力する(ステップ74)。
(通信設定判定処理(2))
 図8は、デバイス300が接続テストサーバ200を利用する場合の通信設定判定処理の流れを示したフローチャートである。上記図7の場合と異なり、同図の処理では、デバイス300の接続先は接続テストサーバ200となる。
 同図に示すように、ステップ81から86までの処理は、上記図7のステップ61から66までの処理と同様である。
 上記ステップ86において通信設定情報を出力した後、通信設定判定部306は、接続管理部301により、上記接続テストサーバ200に接続する(ステップ87)。
 続いて通信設定判定部306は、上記図7の場合と同様に、接続維持部302に通信設定情報を出力し(ステップ88)、接続管理部301から、接続状態変化情報を取得したか否かを判断する(ステップ89)。
 接続状態変化情報が取得されたと判断した場合(Yes)、通信設定判定部306は、当該接続状態変化情報を基に、接続テストサーバ200との接続が切断されたか否かを判断する(ステップ90)。
 続いて通信設定判定部306は、接続テストサーバ200との規定の接続テスト回数に達したか否かを判断し(ステップ91)、達していなければ(No)、接続管理部301により、接続テストサーバ200と再接続する。
 上記ステップ91において規定のテスト回数に達したと判断した場合(Yes)、または、上記ステップ92において接続テストサーバ200と再接続した場合の後の処理は、上記図7におけるステップ71から74までの処理と同様である(ステップ92~96)。
 すなわち、通信設定判定部306は、現在(接続切断時)までの接続テストサーバ200との接続継続時間を基にKeep Alive要否/間隔を再計算し、通信設定情報の更新が必要と判断すれば、それを通信設定管理部307及び接続維持部302へ出力する。
(接続維持処理)
 次に、上記通信設定情報に基づいた接続維持処理について説明する。図9は、デバイス300による接続維持処理の流れを示したフローチャートである。
 まず、デバイス300の接続維持部302は、上記通信設定判定部306からの通信設定情報の入力またはタイマーからの通知を待つ(ステップ101)。
 通信設定情報の入力があった場合(ステップ102のYes)、接続維持部302は、当該通信設定情報から、Keep Alive要否及び送信間隔の各情報を取得する(ステップ103)。
 続いて接続維持部302は、当該Keep Alive要否が「要」に設定されているか否かを破断する(ステップ104)。
 Keep Alive要否が「要」に設定されていると判断した場合、前回メッセージングサーバ100へKeep Aliveパケットを送信してからKeep Alive間隔だけ経過した時間に通知するように、タイマーをセットする(ステップ105)。
 タイマーからの上記通知があった場合(ステップ106のYes)、接続維持部302は、上記Keep Alive間隔だけ経過した時間に通知をするようにタイマーを再セットする(ステップ107)。
 そして接続維持部302は、Keep Aliveパケットをメッセージングサーバ100へ送信し(ステップ108)、メッセージングサーバ100から当該Keep AliveパケットのACKを受信する(ステップ109)。
[メッセージングサーバの動作]
 次に、メッセージングサーバ100における動作について説明する。図10は、メッセージングサーバ100の動作の流れを示したフローチャートである。
 同図に示すように、メッセージングサーバ100の接続維持部102は、接続管理部101からのKeep Aliveパケットの受信を待つ(ステップ111)。
 そして、接続維持部102は、Keep Aliveパケットが受信された場合(ステップ112のYes)、それに応答するACKパケットをデバイス300へ送信する(ステップ113)。
[まとめ]
 以上のように、本実施形態によれば、デバイス300は、メッセージングサーバ100または接続テストサーバ200との間の接続が実際に切断された場合の接続継続時間を基にKeep Alive間隔を決定してKeep Aliveパケットを送信する。したがって、通信環境にか変わらず一律の間隔でKeep Aliveパケットが送信される場合に比べて、Keep Alive通信によるメッセージングサーバ100及びデバイス300の通信付負荷が軽減される。
<第2の実施形態>
 次に、本技術の第2の実施形態を説明する。本実施形態においては、特に説明しない箇所は、上記第1の実施形態と同様の構成である。また本実施形態において、上記第1の実施形態と同様の機能及び構成を有する箇所には同一の符号を付し、その説明を省略または簡略化する。
 図11は、本実施形態におけるシステムのネットワーク構成を示した図である。
 本実施形態では、メッセージングサーバ100は、あるデバイス300から他のデバイス300宛の送信されたデータ(メッセージ)が存在する旨を通知する通知メッセージを、メッセージの宛先のデバイス300へ通知する機能を有する。当該通知のための手段は、デバイス300の通信環境(例えば、通信中継装置350の仕様等)に応じて複数存在しうる。
 各デバイス300は、メッセージングサーバ100と通信するにあたり、その通信環境に応じて、メッセージングサーバ100が通知メッセージを送信するための通知手段を設定させる通知手段設定情報を、予めメッセージングサーバ100へ送信し、通知手段を設定させる。
 また、上記通知メッセージは、メッセージングサーバ100が送信してもよいが、クラウド上に別途設けられた通知サーバ400がその役割を担ってもよい。
 通知サーバ400は、上記通信中継装置350の存在により、外部(メッセージングサーバ100)からの直接の通信が行えない場合に、デバイス300への上記通知メッセージの送信のために設けられるものである。通知サーバ400は、メッセージングサーバ100及び各デバイス300とWAN50を介して通信可能である。デバイス300が通知サーバ400を利用する場合、デバイス300は通知サーバ400と常時接続され、メッセージングサーバ100とは必要に応じて接続を確立する。
[メッセージングサーバのソフトウェア構成]
 図12は、本実施形態におけるメッセージングサーバ100のソフトウェアモジュール構成を示した図である。
 同図に示すように、上記第1の実施形態におけるメッセージングサーバ100のモジュール構成(図4)と比較して、本実施形態では、通知手段設定受信部106、通知手段設定管理部107、通知手段決定部108及び接続要求通知部109の各ソフトウェアモジュールが追加されている。
 通知手段設定受信部106は、デバイス300から送信される上記通知手段設定情報を受信する。
 通知手段設定管理部107は、上記デバイス300から受信された通知手段設定情報を管理する。当該通知手段設定情報は、記憶部18に記憶される。
 通知手段決定部108は、デバイス300との通信に際して、上記通知手段設定管理部107で管理している情報に基づいて、利用する通知手段を決定する。
 接続要求通知部109は、上記通知手段決定部108によって決定された通知手段に基づいて、実際にデバイス300への通知メッセージの送信処理を実行する。
 また、本実施形態において、接続管理部101は、デバイス300のみならず通知サーバ400との接続も管理する。
[デバイスのソフトウェア構成]
 図13は、本実施形態におけるデバイス300のソフトウェアモジュール構成を示した図である。
 同図に示すように、上記第1の実施形態におけるデバイス300のモジュール構成(図5)と比較して、本実施形態では、通知待ち受け部308、通知手段設定送信部309、通知手段設定判定部310及び通知手段設定管理部311が追加されている。
 通知待ち受け部308は、メッセージングサーバ100または通知サーバ400から送信される通知メッセージを待ち受ける。
 通知手段設定判定部310は、デバイス300の通信環境情報に基づいて、適切な通知手段を判定し、通知手段設定情報を生成または更新する。
 通知手段設定送信部309は、上記生成または更新された通知手段設定情報をメッセージングサーバ100へ送信する。
 通知手段設定管理部311は、上記生成または更新された通知手段設定情報を管理する。
 また本実施形態において、接続管理部301は、メッセージングサーバ100のみならず通知サーバ400との接続も管理する。
[通知手段のタイプ及び通知手段設定情報]
 次に、本実施形態における上記通知手段のタイプ及び上記通知手段設定情報について説明する。
 図14は、上記通知手段のタイプとそれに対応する通知手段付加情報の例を示した図である。
 同図に示すように、本実施形態における通知手段タイプとしては、「Notify Server」、「Global IP」、「Router UPnP IGD」、「Router User Setting」、「Proxy Server」、「Mail」及び「Polling」の7つがある。
 「Notify Server」は、メッセージングサーバ100が通知サーバ400を経由して各デバイス300へ接続可能であることを示す。各デバイス300が後述のNAT Traversal機構等をサポートしない通常の通信中継装置350を経由してクラウド側と接続される場合は、当該通知手段が用いられる。
 「Global IP」は、デバイス300(例えばモバイルデバイス)にグローバルIPアドレスが割り振られており、メッセージングサーバ100からデバイス300に、通信中継装置350を介さずに直接接続可能であることを示す。このエントリでは、付加情報として、デバイス300のグローバルIPアドレス及びポート番号が記載される。
 「Router UPnP IGD」は、NATルータ(通信中継装置350)が、それに接続されたデバイス300からの指示により、外部からの通信を内部のデバイス300へ転送する設定が可能とされており、メッセージングサーバ100から通信中継装置350を経由してデバイス300へ接続可能であることを示す。これは具体的には、通信中継装置350としてのNATルータが、UPnP IGDプロトコルによるNAT Traversal機構をサポートしている場合である。この場合、内部のデバイス300が、メッセージングサーバ100と共同してWAN50側のポート番号とLAN側のポート番号とを決定して、当該WAN50側のポート番号への通信を、当該LAN側のIPアドレス/ポート番号へ転送するように、NATルータに設定する。メッセージングサーバ100は、当該WAN側のIPアドレス及びポート番号を、付加情報として記憶しておき、デバイス300と通信する際には、当該記憶されたIPアドレス及びポート番号を用いる。
 「Router User Setting」は、「UPnP IGD」と同様の転送設定が、デバイス300からの指示ではなく、ポートフォワーディング機構を用いて、ユーザが手動で変更することにより可能とされていることを示す。この場合も、設定されたIPアドレス及びポート番号は付加情報として記憶される。
 「Proxy Server」は、メッセージングサーバ100が、デバイス300側のプロキシサーバを経由してデバイス300と通信可能であることを示す。この場合、プロキシサーバのIPアドレス及びポート番号が付加情報として記憶される。
 「Mail」は、メッセージングサーバ100から電子メール経由で通知メッセージをデバイス300へ送信する場合を示す。この場合、デバイス300のユーザのメールアドレスが付加情報として記憶される。
 「Polling」は、デバイス300からメッセージングサーバ100へのポーリングにより通知メッセージが送信される場合を示す。
 図15は、上記通知手段設定情報の例を示した図である。
 同図(A)、(B)、(C)、(D)及び(E)は、通知手段タイプがそれぞれ「Global IP」、「Router UPnP IGD」、「Proxy Server」、「Notify Server」及び「Mail」である場合の通知手段設定情報の例を示す。
 同図に示すように、通知手段設定情報には、デバイス300を一意に識別するデバイスID、通知手段タイプ、通知手段付加情報、有効期限、通信環境情報及び優先度の各項目が含まれる。通信環境情報は、上記第1の実施形態において説明したものと同様である。優先度については後述する。
[システムの動作]
 次に、以上のように構成されたシステムにおけるメッセージングサーバ100及びデバイス300の動作について説明する。
[デバイスの動作]
 まず、本実施形態におけるデバイス300の動作について説明する。
(通知手段設定判定処理)
 図16は、本実施形態における通知手段設定判定処理の流れを示したフローチャートである。
 同図に示すように、デバイス300の通知手段設定判定部310は、まず、通信環境判定部305から、通信環境情報が入力されるのを待つ(ステップ161)。
 通信環境情報が取得された場合(ステップ162のYes)、通知手段設定判定部310は、通知手段設定管理部311から、当該通信環境情報に対応する通知手段設定情報を取得する(ステップ163)。
 ここで、対応する通知手段設定情報が存在しない場合(ステップ164のYes)、通知手段設定判定部310は、上記通信環境情報から、対応する通知手段設定情報を生成する(ステップ165)。
 そして通知手段設定判定部310は、当該生成した通知手段設定情報を、上記通知手段設定管理部311へ出力する(ステップ166)。
 上記通知手段設定情報は、通知手段設定送信部309によりメッセージングサーバ100へ送信される。利用されうる通知手段設定情報が複数種類存在する場合、全ての通知手段設定情報がメッセージングサーバ100へ送信される。
 図17は、上記通知手段設定情報の生成手法について示した図である。
 同図に示すように、本実施形態では、通信環境タイプに応じて、固定的に通知手段及び優先度が決定される。
 すなわち、通信環境タイプが「Global IP」であれば、通知手段タイプは「Global IP」とされ、優先度は100とされる。
 通信環境タイプがNAT Routerであり、UPnPIGDに対応している場合には、通知手段タイプは「Router/UPnPIGD」とされ、優先度は200とされる。
 通信環境タイプがNAT Routerであり、ユーザによるNAT設定が可能である場合には、通知手段タイプは「Router User Setting」とされ、優先度は200とされる。
 通信環境タイプがNAT Routerであり、NATの設定に対応不可である場合には、通知手段タイプは「Notify Server」とされ、優先度200とされる。
 通信環境タイプがProxyServerであれば、通知手段タイプは「Notify Server」とされ、優先度は200とされる。
 通信環境タイプが上記以外で、ポーリングによる通知がサポートされている場合には、通知手段タイプは「Polling」とされ、優先度は300とされる。
 通信環境タイプが上記以外で、メールによる通知がサポートされている場合には、通知手段タイプは「Mail」とされ、優先度は500とされる。
 後述するが、優先度は、メッセージングサーバ100において、利用可能な複数の通知手段からいずれかを選択する際の基準として用いられる。優先度は、その値が小さい程、高いものとされる。
 しかし、通知手段設定情報の生成方法(通知手段及び優先度の決定方法)としては、通信環境情報に基づいて適切な通知手段及び優先度に関する情報を生成できれば、どのような方法が用いられても構わない。
[メッセージングサーバの動作]
 次に、本実施形態におけるメッセージングサーバ100の動作について説明する。
(メッセージ転送処理)
 図18は、メッセージングサーバ100によるメッセージ転送処理の流れを示したフローチャートである。
 まず、メッセージングサーバ100のメッセージ受信部103は、接続管理部101の接続を介して、デバイス300(300A)からのメッセージを受信する(ステップ181)。
 続いて、メッセージ転送部104は、当該メッセージが、他のメッセージングサーバで処理されるべきメッセージであるか否かを判断する(ステップ182)。
 上記メッセージが他のメッセージングサーバで処理されるべきメッセージであると判断された場合(Yes)、メッセージ転送部104は、メッセージ送信部105へ当該メッセージを転送する(ステップ184)。
 上記メッセージが他のメッセージングサーバで処理されるべきメッセージでないと判断された場合(No)、メッセージ転送部104は、自身(メッセージングサーバ100)で処理されるべき(メッセージングサーバ100宛の)メッセージであるか否かを判断する(ステップ185)。
 上記メッセージがメッセージングサーバ100で処理されるべきメッセージであると判断された場合(Yes)、メッセージ転送部104は、当該メッセージを処理する(ステップ186)。
 上記メッセージがメッセージングサーバ100で処理されるべきメッセージでない(他のデバイス300(300B)宛のメッセージである)と判断された場合(No)、メッセージ送信部105は、接続管理部101を介して、メッセージの宛先のデバイス300Bとの接続が存在するか否かを確認する(ステップ187)。
 メッセージの宛先のデバイス300Bとの接続が存在しないと判断した場合(No)、メッセージ送信部105は、通知手段決定部108に、上記メッセージに関する通知メッセージの送信を依頼する(ステップ189)。これにより、後述する通知手段決定部108による通知手段決定処理が実行される。
 続いてメッセージ送信部105は、接続管理部101を介して、メッセージの宛先のデバイス300Bとの接続が確立されるのを待つ(ステップ190)。
 そしてメッセージ送信部105は、接続管理部101の接続を介して、上記メッセージを、その宛先のデバイス300Bへ送信する(ステップ191)。
(通知手段決定処理)
 図19は、メッセージングサーバ100による通知手段決定処理の流れを示したフローチャートである。
 同図に示すように、通知手段決定部108は、通知手段設定管理部107から、メッセージの宛先のデバイス300に対応する通知手段設定情報を取得する(ステップ201)。
 続いて通知手段決定部108は、上記図15で示した通知手段設定情報中の適用条件及び有効期限を確認し、有効なエントリ(複数可)を対象エントリとして選択する(ステップ202)。
 ここで、対象エントリが存在しない場合は(ステップ203のYes)、通知手段決定部108は処理を終了する。
 対象エントリが存在する場合(ステップ203のNo)、通知手段決定部108は、上記通知手段設定情報中の優先度が最も高い(値が小さい)エントリ(複数可)を取り出す(ステップ204)。
 通知手段決定部108は、取り出した複数のエントリの通知手段を並行して用いて、接続要求通知部109を介して、同時並行処理で通知メッセージを送信する(ステップ205)。
 そして通知手段決定部108は、上記複数の送信処理のうちいずれかが成功したか否かを判断し(ステップ206)、いずれかが成功していた場合(Yes)には処理を終了し、いずれも成功していない場合(No)には上記ステップ203以降の処理を繰り返す。
[まとめ]
 以上説明したように、本実施形態によれば、デバイス300は、予めメッセージングサーバ100に複数の通知手段設定情報を送信しておき、メッセージングサーバ100はそれらの通知手段を組み合わせて通知メッセージを送信する。したがって、デバイス300が移動する場合、そのたびに通知手段を切り替えるためにデバイス300と通信する必要がないため、そのような通信によりメッセージングサーバ100に負荷がかかるのが防止される。
 すなわち、仮にデバイス300が移動することで通知手段が変更されても、メッセージングサーバ100は、予め知らされた複数の通知手段を並行して実施するため、デバイス300が新たな通知手段設定情報を送信することはない。デバイス300は、全く新たな通信環境が加わったり、既存の通知手段設定を変更することが必要になったりしたときだけ、新たな通知手段設定情報をメッセージングサーバ100へ送信すればよい。
<第3の実施形態>
 次に、本技術の第3の実施形態を説明する。本実施形態においては、特に説明しない箇所は、上記第1及び第2の実施形態と同様の構成である。また本実施形態において、上記第1及び第2の実施形態と同様の機能及び構成を有する箇所には同一の符号を付し、その説明を省略または簡略化する。
 図20は、複数のデバイス300とメッセージングサーバ100との常時接続が切断された場合に、各デバイス300が同じタイミングで再接続を行う場合の例を示した図である。図21は、複数のデバイス300とメッセージングサーバ100との常時接続が切断された場合に、各デバイス300がタイミングをずらして再接続を行う場合の例を示した図である。
 上記第1の実施形態では、メッセージングサーバ100とデバイス300とは、Keep Alive通信により両者間の常時接続を維持していた。しかし、メッセージングサーバ100で障害が発生すると、メッセージングサーバ100に常時接続しているデバイス300との接続は全て切断されてしまう。
 この場合、図20に示すように、各デバイス300が、サーバが復旧する時間だけ待って、再接続処理を開始すると、メッセージングサーバ100が膨大な数の同時接続をサポートする場合、再接続処理が集中してしまう。そうすると、メッセージングサーバ100の接続確立処理が間に合わず、接続エラーが発生してしまう。
 そして、各デバイス300は、さらに一定時間だけ待って、再度再接続処理を行うが、ここでも同じタイミングで接続を行うことになり、さらに接続エラーが発生するという状況が繰り返される。
 一方、図21に示すように、各デバイス300が、再接続するタイミングを一定の再接続開始待ち時間の中からデバイス300毎にランダムに選択する機構を利用すれば、上記図20のような問題を解決することができる。
 しかしながら、メッセージングサーバ100に常時接続を行うデバイス300の数に変化がない場合おいては、この再接続開始待ち時間を適切に設定することは容易であるが、多数のデバイス300が移動して、その接続形態が変化する環境では、設定すべき値が常時変化するため、再接続開始待ち時間の設定も困難になると考えられる。
 そこで、本実施形態では、メッセージングサーバ100が、デバイス300との常時接続状況に応じて、再接続開始待ち時間を再計算して、各デバイス300に通知することとしている。
 上記再接続開始待ち時間に関する情報は、例えば、各デバイス300から送信されるKeep Aliveパケットに対するACKパケットに書き込まれる。
 図22は、本実施形態のシステムにおけるメッセージングサーバ100のソフトウェアモジュール構成を示した図である。
 同図に示すように、上記第2の実施形態におけるメッセージングサーバ100のモジュール構成(図12)と比較して、本実施形態では、再接続設定判定部110が追加されている。
 再接続設定判定部110は、接続管理部101から、定期的にメッセージングサーバ100に対する常時接続に関する情報を取得し、適切な再接続開始待ち時間を決定し、当該再接続開始待ち時間を、接続維持部102を介してデバイス300に通知する。
 図23は、本実施形態のシステムにおけるデバイス300のソフトウェアモジュール構成を示した図である。
 同図に示すように、上記第2の実施形態におけるデバイス300のモジュール構成(図13)と比較して、本実施形態では、再接続設定管理部312が追加されている。
 再接続設定管理部312は、接続維持部302を介して取得した再接続設定を管理し、接続管理部301に設定する。この当該再接続設定情報は、上記記憶部38に記憶され、メッセージングサーバ100から最新のものが受信されるたびに更新される。
[システムの動作]
 次に、以上のように構成されたシステムにおけるメッセージングサーバ100及びデバイス300の動作について説明する。
[デバイスの動作]
 まず、本実施形態におけるデバイス300の動作について説明する。
(再接続設定処理)
 図24は、デバイス300による再接続設定処理の流れを示したフローチャートである。
 同図に示すように、デバイス300の接続維持部302は、上記第1の実施形態で示した送信間隔で、Keep Aliveパケットをメッセージングサーバ100へ送信する(ステップ241)。
 続いて接続維持部302は、メッセージングサーバ100から上記Keep Aliveパケットに対するACKパケットを受信する(ステップ242)。
 続いて接続維持部302は、上記ACKパケットに記載されている、新たな再接続開始待ち時間情報(T_backoff)を取得する(ステップ243)。
 そして接続維持部302は、当該取得した再接続開始待ち時間情報(T_backoff)を接続管理部101に設定する(ステップ244)。
(再接続処理)
 図25は、デバイス300による再接続処理の流れを示したフローチャートである。
 同図に示すように、デバイス300の接続管理部101は、まず、メッセージングサーバ100との接続状態の変化を待つ(ステップ251)。
 続いて接続管理部101は、メッセージングサーバ100との接続が切断されたか否かを判断する(ステップ252)。
 上記接続が切断されたと判断した場合(Yes)、接続管理部101は、再接続最小待ち時間(T_min)だけ待機する(ステップ253)。当該再接続最小待ち時間(T_min)は、各デバイス300で共通して定められたものである。
 続いて接続管理部101は、最新の再接続開始待ち時間(T_cur_backoff)を、上記メッセージングサーバ100から取得した再接続開始待ち時間情報(T_backoff)に設定する(ステップ254)。
 続いて接続管理部101は、乱数を用いて、0<T≦T_cur_backoffとなるTを決定する(ステップ255)。
 続いて接続管理部101は、上記Tで示される時間だけ待機した上で(ステップ256)、メッセージングサーバ100へ再接続を要求する(ステップ257)。
 続いて接続管理部101は、メッセージングサーバ100との接続が確立できたか否かを判断する(ステップ258)。
 上記接続が確立されなかった場合(No)、接続管理部101は、最新の再接続開始待ち時間(T_cur_backoff)を、T_max_backoffとT_cur_back*2のうちいずれか小さい方の値に設定し(ステップ259)、上記ステップ253以降の処理を繰り返す。ここでT_max_backoffは、予めデバイス300に設定された、最大再接続開始待ち時間を指す。
[メッセージングサーバの動作]
 次に、本実施形態におけるメッセージングサーバ100の動作について説明する。
(再接続設定判定処理)
 図26は、メッセージングサーバ100による再接続設定判定処理の流れを示したフローチャートである。
 同図に示すように、メッセージングサーバ100の再接続設定判定部110は、接続管理部101から、現在のデバイス300の常時接続数(N)を取得する(ステップ261)。
 続いて再接続設定判定部110は、現在の常時接続数(N)に基づき、再接続開始待ち時間(T_backoff)を以下の式で計算する。
T_backoff = f_backoff(N)
 ここで、f_backoff(N)は、例えば、単位時間あたりにメッセージングサーバ100が処理可能な接続開始要求(N_max_conn_req)を用いて、以下の式で計算される。
f_backoff(N) = N / N_max_conn_req
 続いて再接続設定判定部110は、計算したT_backoffが、これまでの値と異なっているか否かを判断する(ステップ263)。
 T_backoffが、これまでの値と異なっていると判断した場合、再接続設定判定部110は、接続維持部302を介して、再接続開始待ち時間(T_backoff)を、上記Keep Aliveパケットに対するACKに記載してデバイス300へ送信する。
[まとめ]
 以上説明したように、本実施形態では、メッセージングサーバ100に障害が発生した場合に、メッセージングサーバ100は、その時点での、全デバイス300の接続状況に基づいて、再接続のための設定を決定し、各デバイス300に通知する。したがって、メッセージングサーバ100の復旧後にデバイス300の再接続が集中してさらに接続障害を引き起こすことが防止される。
 またこれにより、メッセージングサーバ100は、障害からの復旧後に再接続を行うであろうデバイス300の数に応じて、通信エラーの発生を防止しつつ、各デバイス300が適切な再接続時間で正常な接続状態に到達することを可能とする。
 さらに、メッセージングサーバ100は、各デバイス300から接続維持のために送信されるKeep Aliveパケットに対するACK上に、再接続開始待ち時間を記載する。したがって、再接続開始待ち時間を通知するためだけに新たに通信が行われることがないため、モバイルデバイスなどの移動するデバイス300が多数存在する環境においても、通常時の通信負荷を増大させずに、障害発生時にも最適な設定で接続が復旧される。
[変形例]
 本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更され得る。
 上述の第1の実施形態において、接続テストサーバ200はクラウド上に1台のみ図示されているが(図1)、接続テストサーバ200は複数台設けられてもよく、またデバイス300ごとに専用の接続テストサーバ200が予め決められていてもよい。
 上述の第2の実施形態では、メッセージングサーバ100は、複数の通知手段が利用可能な場合、優先度が最も高い通知手段を同時並行で実行していた。しかし、メッセージングサーバ100は、優先度によらずに複数の通知手段を順に試してもよいし、全ての通知手段を同時並行で実行してもよい。
 上述の第3の実施形態では、再接続開始待ち時間に関する情報は、Keep Aliveパケットに対するACKパケットに記載されていたが、当該ACKとは別個に送信されても構わない。
 上述の第3の実施形態では、メッセージングサーバ100は、接続管理部101から、その時点におけるデバイス300の常時接続数(N)を取得し、単位時間あたりにメッセージングサーバ100が処理可能な接続開始要求(N_max_conn_req)を用いてf_backoff(N)を計算した。しかし、接続管理部101から取得する接続に関する情報と、これに基づいてT_backoffを計算する計算式 f_backoff()には、どのようなものが用いられても構わない。
 上述の各実施形態では、各デバイス300のメッセージ送信部303及びメッセージ受信部304は別個のモジュールとして示されたが、両者で用いられる接続が共用されてもよい。
 上述の各実施形態では、デバイス300間のメッセージングサーバ100経由でのやり取りには、全てメッセージが用いられていた。しかし、各デバイス300のアプリケーションには、このメッセージ機構を元に、RPC(Remote Procedure Call)機構やストリーム通信機構、さらにはHTTPエミューレーション等の通信機構が提供されてもよい。
 上述の第2の実施形態では、メッセージングサーバ100と通知サーバ400とは物理的に異なるサーバとして示された。しかし、両者の違いは、各デバイス300との接続についてのバッファサイズの設定や取り扱い方から生じることから、物理的に異なるサーバ上で動作させる形態でなくとも、以下のような形態でも同様の効果が得られる。
(1)単一のサーバマシン上で通知サーバプロセスとメッセージングサーバプロセス双方を動作させる。
(2)単一のサーバマシン上で、通知サーバ機能とメッセージングサーバ機能を持った1つのサーバプロセスを動作させる(デバイス300との通信状況に応じて、通知サーバ相当の接続形態と、メッセージングサーバ相当の接続形態を切り替える)。
 上述した第1~第3の実施形態における各技術は、それぞれ独立して実施可能であるとともに、互いに矛盾しない限り、如何様にも組み合わされて実施されうる。
[その他]
 本技術は以下のような構成も採ることができる。
 (1)
 ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な通信部と、
  前記通信部と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記通信部の通信環境を示す通信環境情報を取得可能であり、
  前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出可能であり、
  前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信するように前記通信部を制御可能な制御部と
 を具備する情報処理装置。
 (2)
 前記(1)に記載の情報処理装置であって、
 前記制御部は、前記通信部による前記中継サーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
 情報処理装置。
 (3)
 前記(1)または(2)に記載の情報処理装置であって、
 前記通信部は、前記ネットワーク上に存在する接続テストサーバと通信可能であり、
 前記制御部は、前記通信部による前記接続テストサーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
 情報処理装置。
 (4)
 前記(1)~(3)のいずれかに記載の情報処理装置であって、
 前記通信部は、前記他の情報処理装置から送信された当該情報処理装置宛のデータの存在を通知する通知メッセージを前記中継サーバから受信可能であり、
 前記制御部は、前記中継サーバが当該情報処理装置に接続して前記通知メッセージを送信するために設定すべき設定情報を、前記通信環境に応じて生成可能であり、かつ、当該生成された設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
 前記中継サーバは、前記送信された設定情報を記憶し、当該記憶された設定情報に基づいて前記通知メッセージを送信する
 情報処理装置。
 (5)
 前記(4)に記載の情報処理装置であって、
 前記制御部は、前記通信環境の変化に応じて、前記生成された設定情報を更新可能であり、かつ、当該更新された設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
 前記中継サーバは、前記更新され送信された設定情報により、前記記憶された設定情報を更新する
 情報処理装置。
 (6)
 前記(4)または(5)に記載の情報処理装置であって、
 前記制御部は、
  前記通信環境の変化に応じて生成され得る複数の前記設定情報を予め生成可能であり、
  前記生成された複数の設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
  前記通信環境の変化した場合であって、前記送信された複数の設定情報のいずれもが当該変化後の通信環境に対応していない場合に、当該変化後の通信環境に応じた新たな設定情報を生成可能であり、
  前記生成された新たな設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
 前記中継サーバは、前記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも1つに基づいて前記通知メッセージを送信する
 情報処理装置。
 (7)
 前記(1)~(6)のいずれかに記載の情報処理装置であって、
 記憶部をさらに具備し、
 前記通信部は、前記中継サーバから、当該中継サーバに接続されている当該情報処理装置を含む複数の情報処理装置の数に応じて生成された、当該情報処理装置と前記中継サーバとの接続が切断された場合に当該情報処理装置が前記中継サーバへ再接続するタイミングに関連する再接続情報を定期的に受信可能であり、
 前記制御部は、
  前記定期的に受信される再接続情報のうち最新の再接続情報を記憶するように前記記憶部を制御可能であり、
  当該情報処理装置と前記中継サーバとの接続が切断された場合に、前記記憶された再接続情報に基づいて前記中継サーバと再接続するように前記通信部を制御可能である
 情報処理装置。
 (8)
 前記(7)に記載の情報処理装置であって、
 前記通信部は、前記再接続情報として、前記切断から前記再接続までの最大待ち時間を示す情報を受信し、
 前記制御部は、
  乱数を用いて前記最大待ち時間内の待ち時間を決定し、
  前記決定された待ち時間の経過後に前記中継サーバと再接続するように前記通信部を制御する
 情報処理装置。
 (9)
 前記(8)に記載の情報処理装置であって、
 前記中継サーバは、前記送信された維持信号に対して、前記最大待ち時間を示す情報を含むACKを返信し、
 前記通信部は、前記ACKを受信し、
 前記制御部は、前記受信されたACKから前記最大待ち時間を示す情報を取得する
 情報処理装置。
 11、21、31…CPU
 18、28、38…記憶部
 19、29、39…通信部
 50…WAN
 100…メッセージングサーバ
 101…接続管理部
 102…接続維持部
 103…メッセージ受信部
 104…メッセージ転送部
 105…メッセージ送信部
 106…通知手段設定受信部
 107…通知手段設定管理部
 108…通知手段決定部
 109…接続要求通知部
 110…再接続設定判定部
 200…接続テストサーバ
 300(300A,300B)…デバイス
 301…接続管理部
 302…接続維持部
 303…メッセージ送信部
 304…メッセージ受信部
 305…通信環境判定部
 306…通信設定判定部
 307…通信設定管理部
 308…通知待ち受け部
 309…通知手段設定送信部
 310…通知手段設定判定部
 311…通知手段設定管理部
 312…再接続設定管理部
 350(350A,350B)…通信中継装置
 400…通知サーバ

Claims (12)

  1.  ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な通信部と、
      前記通信部と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記通信部の通信環境を示す通信環境情報を取得可能であり、
      前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出可能であり、
      前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信するように前記通信部を制御可能な制御部と
     を具備する情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記制御部は、前記通信部による前記中継サーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
     情報処理装置。
  3.  請求項1に記載の情報処理装置であって、
     前記通信部は、前記ネットワーク上に存在する接続テストサーバと通信可能であり、
     前記制御部は、前記通信部による前記接続テストサーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
     情報処理装置。
  4.  請求項1に記載の情報処理装置であって、
     前記通信部は、前記他の情報処理装置から送信された当該情報処理装置宛のデータの存在を通知する通知メッセージを前記中継サーバから受信可能であり、
     前記制御部は、前記中継サーバが当該情報処理装置に接続して前記通知メッセージを送信するために設定すべき設定情報を、前記通信環境に応じて生成可能であり、かつ、当該生成された設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
     前記中継サーバは、前記送信された設定情報を記憶し、当該記憶された設定情報に基づいて前記通知メッセージを送信する
     情報処理装置。
  5.  請求項4に記載の情報処理装置であって、
     前記制御部は、前記通信環境の変化に応じて、前記生成された設定情報を更新可能であり、かつ、当該更新された設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
     前記中継サーバは、前記更新され送信された設定情報により、前記記憶された設定情報を更新する
     情報処理装置。
  6.  請求項4に記載の情報処理装置であって、
     前記制御部は、
      前記通信環境の変化に応じて生成され得る複数の前記設定情報を予め生成可能であり、
      前記生成された複数の設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
      前記通信環境の変化した場合であって、前記送信された複数の設定情報のいずれもが当該変化後の通信環境に対応していない場合に、当該変化後の通信環境に応じた新たな設定情報を生成可能であり、
      前記生成された新たな設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
     前記中継サーバは、前記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも1つに基づいて前記通知メッセージを送信する
     情報処理装置。
  7.  請求項1に記載の情報処理装置であって、
     記憶部をさらに具備し、
     前記通信部は、前記中継サーバから、当該中継サーバに接続されている当該情報処理装置を含む複数の情報処理装置の数に応じて生成された、当該情報処理装置と前記中継サーバとの接続が切断された場合に当該情報処理装置が前記中継サーバへ再接続するタイミングに関連する再接続情報を定期的に受信可能であり、
     前記制御部は、
      前記定期的に受信される再接続情報のうち最新の再接続情報を記憶するように前記記憶部を制御可能であり、
      当該情報処理装置と前記中継サーバとの接続が切断された場合に、前記記憶された再接続情報に基づいて前記中継サーバと再接続するように前記通信部を制御可能である
     情報処理装置。
  8.  請求項7に記載の情報処理装置であって、
     前記通信部は、前記再接続情報として、前記切断から前記再接続までの最大待ち時間を示す情報を受信し、
     前記制御部は、
      乱数を用いて前記最大待ち時間内の待ち時間を決定し、
      前記決定された待ち時間の経過後に前記中継サーバと再接続するように前記通信部を制御する
     情報処理装置。
  9.  請求項8に記載の情報処理装置であって、
     前記中継サーバは、前記送信された維持信号に対して、前記最大待ち時間を示す情報を含むACKを返信し、
     前記通信部は、前記ACKを受信し、
     前記制御部は、前記受信されたACKから前記最大待ち時間を示す情報を取得する
     情報処理装置。
  10.  第1の情報処理装置と第2の情報処理装置とを具備する情報処理システムであって、
     前記第1の情報処理装置は、
      前記第2の情報処理装置を介して他の情報処理装置と通信可能な第1の通信部と、
       前記第1の情報処理装置と前記第2の情報処理装置との通信を中継する通信中継装置の属性情報を含む、前記第1の通信部の通信環境を示す通信環境情報を取得可能であり、
       前記取得された通信環境情報に基づいて、前記第2の情報処理装置との接続を維持するための維持信号を送信する送信間隔を算出可能であり、
       前記算出された送信間隔で、前記維持信号を前記第2の情報処理装置へ送信するように前記通信部を制御可能な第1の制御部と
     を有し、
     前記第2の情報処理装置は、
      前記第1の通信部と通信して、前記第1の情報処理装置と前記他の情報処理装置との間の通信を中継可能な第2の通信部と、
      前記第1の情報処理装置から送信された維持信号を受信し、当該維持信号に対するACKを前記第1の情報処理装置へ送信するように、前記第2の通信部を制御可能な第2の制御部と
     を有する
     情報処理システム。
  11.  ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に接続された、前記情報処理装置と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記情報処理装置の通信環境を示す通信環境情報を取得し、
     前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出し、
     前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信する
     情報処理方法。
  12.  ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に、
     前記情報処理装置と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記情報処理装置の通信環境を示す通信環境情報を取得するステップと、
     前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出するステップと、
     前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信するステップと
     を実行させるプログラム。
PCT/JP2013/000385 2012-03-27 2013-01-25 情報処理装置、情報処理システム、情報処理方法及びプログラム WO2013145516A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014507352A JP5880688B2 (ja) 2012-03-27 2013-01-25 情報処理装置、情報処理システム、情報処理方法及びプログラム
CN201380015377.8A CN104205744B (zh) 2012-03-27 2013-01-25 信息处理设备、信息处理系统以及信息处理方法
US14/383,910 US10432744B2 (en) 2012-03-27 2013-01-25 Information processing apparatus, information processing system, and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012070842 2012-03-27
JP2012-070842 2012-03-27

Publications (1)

Publication Number Publication Date
WO2013145516A1 true WO2013145516A1 (ja) 2013-10-03

Family

ID=49258844

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/000385 WO2013145516A1 (ja) 2012-03-27 2013-01-25 情報処理装置、情報処理システム、情報処理方法及びプログラム

Country Status (4)

Country Link
US (1) US10432744B2 (ja)
JP (1) JP5880688B2 (ja)
CN (1) CN104205744B (ja)
WO (1) WO2013145516A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015104034A (ja) * 2013-11-27 2015-06-04 シャープ株式会社 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP2015195520A (ja) * 2014-03-31 2015-11-05 株式会社Nttドコモ 待機時間算出装置、ユーザノード及び待機時間算出方法
JP7338435B2 (ja) 2019-11-29 2023-09-05 ブラザー工業株式会社 通信装置、及び、通信装置のためのコンピュータプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106549994A (zh) * 2015-09-21 2017-03-29 张生福 窄数据传输方法及使用该方法的系统
JP6977393B2 (ja) * 2017-08-22 2021-12-08 富士フイルムビジネスイノベーション株式会社 情報処理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030679A1 (ja) * 2004-09-17 2006-03-23 Sanyo Electric Co., Ltd. 通信端末
JP2008293511A (ja) * 2006-04-28 2008-12-04 Sony Corp サーバ装置、再接続制御方法、機器装置、再接続方法、プログラム、および記録媒体
JP2010283594A (ja) * 2009-06-04 2010-12-16 Panasonic Corp 通信装置及び通信可能性判定方法
JP2011004253A (ja) * 2009-06-19 2011-01-06 Secom Co Ltd 通信接続システム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212175B1 (en) * 1997-04-22 2001-04-03 Telxon Corporation Method to sustain TCP connection
JP3264241B2 (ja) * 1998-02-10 2002-03-11 日本電気株式会社 半導体装置の製造方法
US7698396B2 (en) * 2000-01-31 2010-04-13 Hitachi Software Engineering Co., Ltd. Method of automatically recognizing network configuration including intelligent packet relay equipment, method of displaying network configuration chart, and system thereof
US7576084B2 (en) * 2001-10-12 2009-08-18 Choongwae Pharma Corporation Reverse-turn mimetics and method relating thereto
JP4331090B2 (ja) * 2004-11-05 2009-09-16 パナソニック株式会社 通信システム、情報処理装置、仲介サーバ、識別情報送信サーバ、通信方法及びプログラム
CN100481836C (zh) * 2005-09-22 2009-04-22 广东省电信有限公司研究院 软交换网中保持防火墙/地址转换设备的端口开启的方法
JP2007124487A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 通信制御方法
US7523197B2 (en) * 2006-03-09 2009-04-21 International Business Machines Corporation Method for IP address discovery in rapidly changing network environment
JP4251207B2 (ja) * 2006-04-28 2009-04-08 ソニー株式会社 サーバ装置、再接続制御方法、機器装置、再接続方法、プログラム、および記録媒体
US7729273B2 (en) * 2006-06-20 2010-06-01 General Instrument Corporation Method and apparatus for conserving bandwidth between a network device and a remote device
JP2008098813A (ja) * 2006-10-10 2008-04-24 Matsushita Electric Ind Co Ltd 情報通信装置、情報通信方法、及びプログラム
US20080165796A1 (en) * 2007-01-05 2008-07-10 International Business Machines Corporation Method for a heartbeat algorithm for a dynamically changing network environment
KR100864481B1 (ko) * 2007-05-22 2008-10-20 에스케이 텔레콤주식회사 무선 인터넷 쓰루풋 향상을 위한 고스트 서버 시스템 및그의 운용 방법
JP5444639B2 (ja) * 2007-11-20 2014-03-19 パナソニック株式会社 サーバ装置と分散サーバシステム
JP4803535B2 (ja) * 2007-11-29 2011-10-26 Necアクセステクニカ株式会社 ネットワーク接続装置およびネットワーク接続方法
CN104038585A (zh) * 2008-01-10 2014-09-10 济巴实验室有限公司 可定制的组合式多功能通信装置
JP4557028B2 (ja) * 2008-03-19 2010-10-06 ソニー株式会社 情報処理装置、情報処理方法、クライアント機器、情報処理システム
JP4978531B2 (ja) 2008-03-25 2012-07-18 日本電気株式会社 通信システム、中継伝送装置、ルータ装置及び通信方法
US8024423B2 (en) * 2009-04-29 2011-09-20 Ianywhere Solutions, Inc. Maintaining connections between mobile devices and servers
US8375134B2 (en) * 2009-06-08 2013-02-12 Microsoft Corporation Determining an efficient keep-alive interval for a network connection
US8543868B2 (en) * 2010-12-21 2013-09-24 Guest Tek Interactive Entertainment Ltd. Distributed computing system that monitors client device request time and server servicing time in order to detect performance problems and automatically issue alerts

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030679A1 (ja) * 2004-09-17 2006-03-23 Sanyo Electric Co., Ltd. 通信端末
JP2008293511A (ja) * 2006-04-28 2008-12-04 Sony Corp サーバ装置、再接続制御方法、機器装置、再接続方法、プログラム、および記録媒体
JP2010283594A (ja) * 2009-06-04 2010-12-16 Panasonic Corp 通信装置及び通信可能性判定方法
JP2011004253A (ja) * 2009-06-19 2011-01-06 Secom Co Ltd 通信接続システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015104034A (ja) * 2013-11-27 2015-06-04 シャープ株式会社 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP2015195520A (ja) * 2014-03-31 2015-11-05 株式会社Nttドコモ 待機時間算出装置、ユーザノード及び待機時間算出方法
JP7338435B2 (ja) 2019-11-29 2023-09-05 ブラザー工業株式会社 通信装置、及び、通信装置のためのコンピュータプログラム

Also Published As

Publication number Publication date
CN104205744A (zh) 2014-12-10
US20150373134A1 (en) 2015-12-24
CN104205744B (zh) 2017-03-01
US10432744B2 (en) 2019-10-01
JP5880688B2 (ja) 2016-03-09
JPWO2013145516A1 (ja) 2015-12-10

Similar Documents

Publication Publication Date Title
JP5880688B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP5962676B2 (ja) 情報処理装置、情報処理方法及びプログラム
US8874756B2 (en) Information processing unit, information processing method, client device and information processing system
JP5888405B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6183373B2 (ja) 配信装置、通信システム、負荷分散方法および負荷分散プログラム
JP6106494B2 (ja) 通信制御装置、サーバ装置、通信システム及びプログラム
US20120311184A1 (en) IP Address Assignment System, Dynamic Host Configuration Protocol Server, And Method Of Assigning An IP Address
JP5887507B2 (ja) 通信機器間の接続確立方法、通信機器、及びサーバ装置
WO2014166190A1 (zh) 一种网络设备数据转发方法及装置
JP5768017B2 (ja) 通信端末、通信方法および通信プログラム
US10135729B2 (en) Distributed gateway for local subnet
JP5880701B2 (ja) 通信システム、通信制御方法、通信中継システム、及び、通信中継制御方法
WO2007094308A1 (ja) 無線データ通信システム
WO2021057672A1 (zh) 一种序列号同步的方法及装置
WO2014061220A1 (ja) 端末、メッセージ配信システム、メッセージ配信方法およびメッセージ受信プログラム
JP2014033384A (ja) ルータ機能冗長化システム、ルータ機能冗長化方法およびルータ装置
WO2014030321A1 (ja) 情報処理装置
JP5535757B2 (ja) クライアント装置、及びプログラム
JP2009206648A (ja) シグナリングサーバ、データ通信システム、シグナリング処理代行方法およびプログラム
JP2019213219A (ja) 通信装置、通信装置の制御方法およびプログラム
JP2014050090A (ja) パケット中継装置及び方法
JP2018042199A (ja) 通信装置及び通信方法
JP2018061287A (ja) データ転送装置、データ転送方法および通信装置
JP2015204466A (ja) データ転送装置、データ転送方法および通信装置
JP2015181253A (ja) 通信端末、通信方法および通信プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13770229

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014507352

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14383910

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13770229

Country of ref document: EP

Kind code of ref document: A1