Firefox FlyWeb offers platform-agnostic IoT interactions
Tue 26 Jul 2016
Mozilla is developing a new framework that will let the browser interact directly with IoT-enabled devices, bypassing all but local networks.
Called FlyWeb, the feature is currently built into Firefox nightly developer builds, and if its present configuration is maintained (and it is approved for mainstream release), it will ship as a ‘baked’ option rather than an installable add-on.
In this early demonstration of the technology, an Android phone serves a web app to a TV-based browser (courtesy of Raspberry Pi), with touch events forwarded via WebSocket to the TV. It’s an impressive indication of the possibility of breaking IoT interaction out of the proprietary app space:
In the next (rather more conceptual) video, which has been posted with relatively little explanation of what’s happening in it, the ‘TV’ theme re-emerges, as a woman throws her mobile video game in Chromecast-style straight onto a large TV and continues playing; but then we see FlyWeb being used to create kiosk functionality on a laptop; as a series of users approach it with their FlyWeb-enabled phones, the laptop becomes personalised via FlyWeb osmosis to the settings of the individual:
Next we see FlyWeb connecting to a ESP8266 “$5 WiFi” chip with a temperature sensor – a proxy for a home’s domestic environmental system:
In this last video, below, from late 2015, Toronto-based software developer Kannan Vijayan explains the core concept behind the project.
“Why do I have to care what smartphone platform I’m using to interact with the things around me? For that matter, why do I need to install an app in the first place? I’m never going to be in this hotel room again; I don’t want to have to go to an app store, download something, put it on my home screen, have it be there, maybe remove it later…for something I’m going to do once, maybe ten times in my life. It doesn’t make sense…why can’t the thing that I want to interact with just send me the app that I need to interact with it?”
Vijayan goes on to expound the concept that servers can be any device in one’s vicinity, away from network traffic, perhaps based on Bluetooth, and that such local servers should be allowed to advertise themselves instead of forcing users into over-burdened IP traffic and the inevitable latency and annoyance, describing this as a ‘heavyweight procedure’:
What’s being proposed is a radical replacement for the growing bespoke app industry – an IoT ecosystem where the device hands HTML5-based apps to FlyWeb in order to facilitate interactions; in effect, what was once an enduring app, with all its app store sign-ins and permissions controversies, now becomes a transient consumer experience that’s more akin to visiting a web page.
Technically FlyWeb is an add-on, but it’s one whose update cycle is in sync with the browser’s own update cycle, rather than the user-oriented process of manually updating (or removing) extra functionality. Not much control over it is on offer at the moment.
However the developers believe that a platform-agnostic IoT system could bring great benefits of security and convenience. FlyWeb’s wiki page says:
‘The connected devices market is ready to explode. As the market grows, much like the early internet, these devices are being segregated into walled gardens of one-off proprietary initiatives, such as AirPlay, the Google Cast API, etc. These solutions not only lock their users into specific vendor ecosystems — to the benefit of those vendors and detriment of their users — but also require significant investment to solve each use case.’
There are obvious security implications to letting servers advertise themselves locally without any of the IP-based accountability that you get with a list of network connections, but it’s very early in FlyWeb’s development to discount robust solutions within the framework.
The FlyWeb module can be located on disk in a local installation and deleted, though it can’t be removed in the nightly builds, or even toggled via about:config, or in fact turned off by any other means than deletion. Furthermore there’s currently no guarantee that it won’t return in a Firefox upgrade (it seems likely that it will). But these too are nascent settings right now.