Technical Details
So far we have only had our handsets communicating with other phones using Bluetooth, which typically has a maximum range of 10 meters. But in the real world, our device can also communicate with nearby Cell Towers and Wi-Fi hotspots.

Using IP, Cell Id and Mac address information, any wireless communication device (no matter how large or small), can be adopted as a Snowball network node.
This approach has great benefits:
- Snowball ads can be disseminated at greater speed over a wide area.
- Due to the mix of mobile and stationary nodes, Snowball becomes “Geographically Intelligent” and produces better quality results as more people and devices become involved.
- Snowball remains effective even in areas not covered by cellular data networks (i.e. remote areas, developing/third world nations and the London Underground). Hence it can act as a pseudo network infrastructure for the benefit of people operating in these areas.
Architecture

Snowball consists of:
- A client (Snowball Service) that is installed on your Android phone. This software runs in the background as an Android service and contains its own configuration application (Config App).
- A web server (Snowball Server), which allows Snowball to adopt Cellular Towers and Wi-Fi hotspots as Snowball nodes.
- An API which third party developers can access in order to leverage location sensitive content from within their applications
- Third party application software (Application 1, 2…) that makes use of the Snowball API (e.g. games, social networking applications, search features).
- A set of open standards for inter-device peer-to-peer communication for sharing Snowball information.
Snowball API
The public Snowball API is accessed through an Android “Content Provider” interface and can be summarised as follows:
- Post
Add a new advertisement to the Snowball network, giving the developer some control over its dissemination policy and the option to set some restrictions. Ads are typically small XML strings, containing content defined by the third party application to carry embedded information. This approach allows Snowball to support a range of very powerful content driven applications. - Search
Search through the available Meta information, for ads relating to a specific third party application. The API typically returns a list of ads, automatically sorted by their relative distance from the user. This makes service discovery efficient in terms of processing power on the device (i.e. very quick), and as an experience for the user (i.e. the nearest pizzeria is always shown first).
