Thursday, October 06, 2011

Where Are They Now

It is well known fact that the question "where are you" is one of the most often asked in the world of mobile communications. 600 billion text messages per year in the US ask "where are you?" – as per Location Business Summit 2010 data. No doubt, it is the most popular question in mobile networks. But location sharing over mobile phones still faces challenges. And privacy here is probably the biggest concern.

Actually our Geo Messages project solves problems with privacy. With Geo Messages users can share location info peer to peer as signatures for messages. But it is pure one-to-one relation. What if we need to monitor several people? Here is our new service WATN. It lets you monitor locations for several people, as well as share your own location to some group of people. Obviously, in this case we need some third party server that saves our social graph (who is sharing data to whom). But we can offer the safe solution that does not hurt your privacy.

WATN requires no sign-up. It combines anonymous server-side data with local personalized records.

What if we separate location info and identity data? Just three steps:

a) assign to any participant some unique ID (just an ID, without any links to the personality)
b) save location data on the server with links to the above-mentioned IDs
c) keep the legend (descriptions for IDs, who is behind that ID) locally

In this case any participant may request location data for other participants from third party server (as per sharing rules, of course), get data with IDs and replace IDs (locally) with legend’s data. With such replacement we can show location data in the "natural" form. For example: name (nick) plus location. And in the same time the server (third party server for our users) is not aware about names.

What does it mean technically.

Server keeps location info with IDs:

ID1 -> (latitude, longitude)
ID2 -> (latitude, longitude)
ID3 -> (latitude, longitude)

And social graph – who is sharing location to whom:

ID1-> (ID2, ID3)
ID3 -> (ID1)

Local client keeps legend:

ID1 -> (name or nick)
ID2 -> (name or nick)

The algorithm. Client restores own ID (or obtains a new one). After that client saves location data on the server and obtains shared location data (by the social graph). Client modifies received data and replaces IDs with known names. So, after that our client side application is ready to show location data with names instead of IDs.

Naming. Where are the above-mentioned names (nicks) for IDs come from? WATN uses peer to peer sharing. It means that any user shares own location to another person directly. There are no circles, lists etc. As soon as some user is going to show own location info to another person he simply sends notification about this to another email address (phone number in case of SMS).

Such notification contains some text with explanation "what is it" and, what is obviously should be the main part of this process, a special link to WATN. This link contains an ID for the request originating party.

As soon as this link is fired, WATN application (client) becomes aware about two IDs: own ID1 for this client (see description above) and ID2 from the "shared with you" link (originated request ID). So, if notification is accepted, we can add social graph record (on the server) like

ID2 -> ID1

(client with ID2 shares own location info with the client with ID1. Or client with ID1 identity may read location info for ID2)

But because the notification link comes from email (or SMS) the receiver is aware about the context. He knows simply email headers ('From'), phone number or name in address book SMS comes from. It means the receiver can assign some nick (name) for ID in "shared with you" link. Actually it is a part of confirmation: set some name and confirm. And that name (nick) we can save locally. So, it is like "two phase commit" in databases – save a new social graph record on the server and create a new legend locally.

It is obviously, that in this schema each client has got own legends. We can have different names for one ID (each client technically can assign own name).

Implementation. WATN is mobile web application (HTML5). So, we can use localStorage as a persistent store for legends.

Additional options. As soon as you share your location info, you can leave messages attached to your location. WATN users that can read your location data will see your messages too.

And any time you can delete ID (as well as erase all the associated data) from the system.

You can load WATN application right to your mobile browser (iPhone, Android) with the following QR-code:

QR code

Direct link is (it is a mobile URL)

P.S. there is another service with the "similar" abbreviation: Where Are You Now.

No comments: