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

Reply via email to