Skyhook has long been a quiet member of the billion transaction club. For years, we’ve been handling billions of location requests around the globe, augmenting and accelerating end-device location capabilities since before the original iPhone came to market. Hundreds of millions of devices have relied on Skyhook to ensure that location is not only accurate, but that it is responsive and helps provide optimal user experience to the users of those devices.
But we’ve never really talked about how we do what we do. This post begins a series of articles that describe various aspects of the Skyhook system:
- How we handle the need to rapidly process requests
What we do with all of that data
How our SDKs provide the services they provide
How we ensure privacy regarding location data
What Skyhook is doing to continue the long history of innovation in the location services domain.
Skyhook: A History
First, a quick walk down memory lane. Skyhook was founded over 11 years ago to provide location services to mobile devices by making use of the still developing Wi-Fi network of access points around the world. In 2003, this was a really big idea because there were no smart phones — especially those with Wi-Fi. That, and the deployment of Wi-Fi was still in its infancy. And there were no consumer-based apps that were around to take advantage of this location information. And everybody thought GPS was the ultimate solution. Other than that, it was clearly a foregone conclusion that hybrid positioning with Wi-Fi as a core component was going to be the winner...
Nonetheless, we built it. In fact, if you are interested in the history of location and what part Skyhook has played in that, I’d recommend picking up a copy of "You Are Here: From the Compass to GPS, the History and Future of How We Find Ourselves” written by Hiawatha Bray, a reporter for the Boston Globe. The book, which was published earlier this year is a compelling read if you are interested in the technology of location and are curious about who some of the key players have been over the years in the continuing development of location and mapping technologies.
As Hiawatha tells it:
“In Chapter 6 we witness a welcome accident. Millions of homes and businesses have installed Wi-Fi radio networks to connect computers and smartphones to the Internet. Hardly any of them knew that they were also remapping cities around the world. It took a couple of businessmen in Boston to realize that each Wi-Fi device could become a navigational beacon. When they proved the idea worked, they found themselves in a high-stakes showdown with the most powerful technology company on earth.”
Hopefully that whets your appetite as I start to drill into a bit more technical mumbo jumbo about how we do what we do.
Skyhook Under the Hood
The basics of the idea boils down to this: if you know where a radio beacon is, you can estimate your location based on the signal coming from that beacon. Better yet, if you know where multiple of them are and you can measure the signal from several of them, you can increase your the accuracy with which you can compute your location.
Figure 1: Example of receiving multiple Wi-Fi radio samples. Each radio signal is converted to a computed distance using signal strength and known characteristics of the AP.
Using Figure 1 as our model we can walk through an example of how this works.
When asked for location, a user’s device will either have or will begin to scan for radio signals. Each Wi-Fi access point operating in infrastructure mode sends out periodic Beacon Frame (in general at 100ms intervals). These beacon frames contain some key elements that we take advantage of, namely, the BSSID (e.g. MAC Address) and the device records the received signal strength of the packet. The MAC address is critical to how the system works, as it provides the key to look up information in our database about the location and qualities of that particular Wi-Fi access point.
The signal strength allows us to compute the approximate distance from that access point by using a path-loss model for Wi-Fi signal propagation. We combine that with properties we have learned about each AP to properly weight that access point relative to the others in a trilateration process.
Now this idea in and of itself is not new and can be traced way back. What is quite a bit different about using Wi-Fi access points as location beacons on a global scale is that we don’t manage the beacons. Historically, location systems using location beacons largely relied on beacons which had a precisely known location because the location system was built by the company/government that owned the beacons. As a contrast, we live in a world where our beacons can simply be shut off, moved across the street, moved around the world, and appear out of the blue.
In essence, our network of beacons is a constantly shifting, living network. This represents a fairly significant challenge, especially when you scale to, well, the world. The world of Wi-Fi is a big, dynamic, moving, changing, growing beast. And our goal has long been to tame this beast. And along the way, we’ve extended our location network to include Cell based location, GPS based location, and even added on-device sensors into the mix.
Today, we ‘manage’ a system that has seen over 1 billion access points and more than 40 Million cell base stations around the globe. And we aren’t stopping there — but we’ll save that for another post!