If anyone is able to help simplify building connected solutions and build a bridge between Internet of Things devices, it's probably Google. We had the opportunity to get some clarity on how they're approaching this with Brillo and Weave at the Ubiquity Dev Summit last week.
Ubiquity Dev Summit in a Nutshell
I'll start out by commending the Google Developers team on keeping cost low for attendees (the conference registration was free), handling logistics very well, providing really valuable giveaways, planning valuable sessions with quality presenters (the actual people who knew the technology the best) - and last but not least - infusing some fun and interactivity along the way.
It's worth pointing out that the conference started out on the right foot with Google folks mentioning their Code of Conduct right away and even including it in the printed materials. Throughout the conference we saw nice touches like this that showed the Google Dev Team understands and cares about developers. Heard lots of folks expressing appreciation for this as well.
- Growth and adoption of ubiquitous computing
- Building Internet of Things solutions with Brillo and Weave
- Mutli-device access to content (i.e. casting, wearables, auto, etc.)
Rise of Ubiquitous Computing
Through most of the keynotes, it was clear the scale and adoption of ubiquitous computing (also referred to as pervasive computing) is accelerating rapidly. People no longer need to sit at a desk to get the benefits of technology. With microprocessors included in a growing number of everyday devices, the opportunity to create value to our lives through the Internet of Things is even more promising.
"A recent joint report from IDC, the UN and Intel projects that there will be an average of 26 smart devices for every human in just 5 years."
Gayathri Rajan, Google
The big challenge - and what Google aims to tackle directly with Brillo and Weave - is unifying and facilitating the communication among the estimated 200 billion smart devices expected by 2020. Whether you're looking to build a simple DIY project or implement an enterprise scale m2m project, Google's new tools will be a big help.
What Brillo Is and How It Helps You
Brillo is Google's new Android based OS used for embedded development - in particular for low-power, IoT devices. It appears pretty easy for developers who are already familiar with Android, however you'll notice that it's a bare bones version in order to accommodate low-power inexpensive devices like a Raspberry Pi or Edison.
Brillo currently uses only c/c++ for development but the good news is that support for other languages is coming soon. We were glad to see Google focused on acknowledging the priority on security with IoT applications by choosing to use secure boot and signed over-the-air updates and providing timely patches at the OS level. Developers compile Google updates with custom code then remotely flash all or some of the devices.
Another nice feature is that OTA update support does not require consumers to have Google accounts or knowledge of Google at all (if you can find someone who has no knowledge of Google at all). The OS also allows different channels of OTA updates (development, staging, production, etc) and collects crash reports.
What Weave Is and How it Helps You
While Brillo is the OS, Google's Weave is a JSON based communication platform between devices and cloud services for provisioning, discovery, authentication, etc. Essentially it enables device setup, phone-to-device-to-cloud communication, and user interaction from mobile devices and the web. The chief benefit is allowing a "standardized" way for consumers to set up devices.
Fortunately, if you're using Brillo, you also have Weave since the communication platform is baked into the Brillo OS. Unfortunately, Weave DOES require the consumer to have a Google account, so keep this in mind when you're planning setup and deployment. Not surprising, Weave caches consumer information (i.e. device state) in the cloud.
The Google Dev team is clearly keen the dynamic of users expecting more from their devices - from simplicity of set up to control of their environment through mobile device to intelligent adaptation and personalization. Weave is designed to meet these growing demands and expectations from consumers regarding control and choice. It allows the consumer to determine what and who has access to device information.
Google Weave vs. Nest Weave
A big clarification is that Google's Weave is NOT the same thing as Nest Weave. There's understandably been much confusion over the two Weaves since Google's announcement of its Weave protocol last year. Though the two technologies are compatible and share the same end goal, they are two distinctly different things that achieve the goal in different ways.
Nest Weave is Nest’s proprietary application protocol that is currently used specifically with Nest devices. It provides direct device-to-device communication securely and reliably across networks in the home, including Wi-Fi and Thread. The primary components are Nest devices, but there's a growing list of brands that do support Nest Weave.
Google Weave is a communication platform that is not specific to Nest devices. As mentioned before - this Weave is used in conjunction with the Brillo OS (actually embedded in the OS). Device developers use Weave to implement a common schema to define operations and device interaction – like the “lock” and “unlock” operation for a smart door lock or switching on a smart oven.
What's Next for Google Developers
We expect to hear a lot more about Brillo and Weave at Google I/O, where there will be a huge focus on IoT. In particular we're hoping to hear about actual use cases using Google's IoT technology, developers' experiences building projects with it and consumers' experiences using the devices in those projects.
Have you had a chance to use Brillo and Weave or do you have any thoughts about the value or challenges? We'd love to hear what you have to say in the comments below.