Aims

Original posted by Matthew Sackman[matthew] on 15th February 2008.

Last changed by Ashok[ashok] on 26th February 2008.

Edits by:

  • ashok (50%)
  • matthew (50%)
The chief aim here is to enable people to exchange media files that are in their pocket, with no explicit interaction at the time.

There are several phases to this:

  1. having the app see & 'know' your media files
  2. saying what you, your 'friends' and the general public can see (I'm thinking User, Group, Other is quite enough). It may be enough to just have one class ('other') at first, for simplicity.
  3. detecting that another device is within range
  4. exchanging metadata (probably two-way exchange 'do you have?' -> metadata of matching media)
  5. exchanging the actual data (preferably with graceful restart, but sod that to begin with)

The exchange portion could go something like this:

  1. Two mobiles meet. Both see each other through local network (wireless, 802.11[a-z]).
  2. They "who are you?". They exchange some sort of identifying key. SSL with client certificates is a really obvious idea here.
  3. They each look up the other in their own address book - basically, "does my owner know you and believe you're not into kiddy porn"
  4. If they both know each other, the next step would be "menu please" aka what do you have available - meta data about stuff and where it's available from
  5. The magic at this point about figuring out whether it's a good idea to try and download something from the other could be fun and challenging
  6. But basically, data is transferred in an award winning way

Right, so I'm just going to jot down some state charts or flow diagrams. Was sorta hoping this wiki would understand dot syntax and generate pretty diagrams but that would be moaning just far too soon. (We can make it support .dot files, but I can't seem to find a damn MIME type for them, which is a stumble.)

Other variations and excitements