There's a question has now been consuming my brain for a bit: How to get sat nav/other apps working through the webui on something like an ipad?
I've now got the answer! You stream the output of apps directly to video.
Basically, on a linux server, you can use xvfb which is a virtual frame buffer. You can launch an application in here as if it were on a monitor. You can launch a satnav app for example, then stream that virtual frame buffer to h.264 video. This means you can see the output of an application that's running on the server, inside a web page. Neat huh?
I've been looking at actually implementing this, and have found that this guy has pretty much done it. He's using a technique to convert flash video to an h.264 avi using xvfb and ffmpg.
xvfb is started as a virtual screen, flash is started on this new screen, ffmpg is compiled with x11grab to capture that output, then finally it's written to video.
So instead of being written, ffmpeg can stream is (not directly but using a server or sorts) and bingo!
Since xvfb is a virtual screen, many can be started. That means, each app can run on it's own screen. Velocity can easily launch these apps. You can even have lots of apps per connected client. You're only limited by your server hardware. This is a good limitation to have since you can just throw more hardware at the problem to increase capacity (and your debts).
The final piece of this puzzle now is getting the web user events transmitted back to the xvfb. To do this, you use xte. This allows commands like: xte -x :3 'mousemove 100 100' and xte -x :3 'key h'.
So now all you need is some decent Linux based navigation s/w. Android x86 with a hack to run Google navigation anyone? ha, Google Navigation on an ipad!
There's the solution to making it all work through a web front-end