Since UDP is utilized for efficient location data transport, no end-to-end reliability (e.g. TCP) exists. In real-time tracking, the loss of occasional location fixes is acceptable since another location update will soon follow. However, since location data is often referenced after-the-fact to provide metrics (e.g. distance-traveled) and reconstruct users’ paths, the loss of large numbers of contiguous fixes introduces significant problems. Extended gaps can result from lack of support for simultaneous voice and data services or no cellular signal. Adaptive Location Data Buffering increases the probability that most location data points will arrive at the server. Before each location data UDP transmission, device-side APIs are checked to assess the current level of cellular signal and determine if a …show more content…
Adaptive Location Data Buffering provides two different methods to occasionally confirm an open end-to-end connection with the server. If the IP address of the device is publically addressable, the server can occasionally send “alive” messages via single UDP packets to the phone. If, for security or capacity reasons, the cellular provider does not allow publically addressable IPs, the Adaptive Location Data Buffering module occasionally opens a TCP connection from the phone to the server to determine if there is a successful “alive” response from the server. Using either method, the phone will continue to transmit UDP data to the server as long as it continues to receive “alive” messages from the server. If an “alive” message is not received, (e.g. the phone is off-network, the user is on a voice call, the server is down), then the phone begins buffering location data until the next “alive” message is