Hi all, :cr asked me in another thread to describe what I was envisioning for our Connected Devices projects. Here's where I'm at in my reflexion, which is still very much ongoing.
First of all, as many other said, this is a crowed & messy space. Many actors are trying to get a slice of the pie - usually by locking users and application developers in a new shiny silo. We need to be different, play by the strengths of the Web and by Mozilla's values. At its core, the web is about publishing resources at URLs that can be accessed from anywhere. As such, intranets are not really the web, and neither are Firefox OS packaged applications because they are not publicly addressable. So one question is how do we want or can apply this principles to IoT devices? Because of the heterogeneous protocols in use and the sometimes insufficient power of these "things", many won't be able to run themselves an https (or websocket) server. We need to proxy these to the web in some way. And even for those that can run as a server, we need to securely expose them to their legitimate users, inside and outside the home network. Our new platform will have to provide to web pages the ability to discover your devices and interact with them. Uses cases are plentiful, and I invite everyone to enrich the list at https://public.etherpad-mozilla.org/p/connected-home-use-cases . Overall we can see that this platform will be made of at least two components: one in your home network (the "foxbox" that will aggregate access to your devices) and one outside of your home network (the "foxbridge"). Here are a couple of ways the foxbox and foxbridge could work together. In both cases, Fx account seems an obvious candidate to manage user access: Option 1: see proposal at https://public.etherpad-mozilla.org/p/data-user-agent In this configuration, the foxbridge is used to setup a webRTC datachannel between the web page and the foxbox. Once the datachannel is active, it's used to relay access to the home devices through a JS API. That doesn't provide direct http access to the devices, but that also has the advantage of keeping all the traffic local when you are in your home network. Option 2: this is an idea from Michiel: tunneling traffic at the ip level in the foxbridge to the foxbox, giving each home its own subdomain. We could then give each device it's own dns address and expose devices as https endpoints. That's very compelling, with the exception that even when being in your local network the traffic will roundtrip through the bridge. That may be avoided if the foxbox acts as an access point and manages the home network dns. But giving web pages access to devices is not enough. There are legitimate use cases that need some persistent process running; for instance to trigger alarms, or store time serie values from a sensor. This code could run on the foxbox, or somewhere else, going through the foxbridge. It could be headless web pages, or simply web workers. More importantly, this opens the perspective of building a new way to self-host applications based on web standards, beyond the IoT case. For instance, the email backend could run this way, and the frontend as a standard web page. Lastly, I think that to be successful we can't constrain ourselves to build a platform that only addresses IoT use cases. Since we need a device to run the foxbox, we should leverage it for other use cases: - A media center. Access to local and streaming media enriched by web content, support of wifi and bluetooth speakers (an open version of products like Sonos) are high on the list. :squib has a lot of ideas on the subject. - A web games "console", powerful enough to run webVR content. Both these use cases are also relevant for the TV, so there will be strong synergy here. From a hardware point of view, they mandate a relatively powerful platform to provide a good experience. There's a long list of single board computers at http://www.board-db.org/ to choose from, up to 8 core cpus. I'm not getting in the implementation choice details yet, this will be for another email ;) Happy hacking! -- Fabrice Desré b2g team Mozilla Corporation _______________________________________________ dev-fxos mailing list [email protected] https://lists.mozilla.org/listinfo/dev-fxos

