What is AllSeen?
The AllSeen Alliance is an organization that runs collaborative projects such as AllJoyn. AllJoyn is a technology aimed at enabling the Internet of Things (IoT) by defining a common language between devices and protocols. What makes AllJoyn interesting is the fact that it scales from tiny microcontroller platforms such as battery-powered temperature sensors to full-scale computing platforms like phones, tablets, and servers. AllJoyn is also open source, and is supported across multiple OS platforms including Windows, Linux (desktop and embedded), and Android.
Microsoft joined the AllSeen Alliance in July 2014, as a premiere member. Other premiere members include Panasonic, Sony, LG, Sharp, Philips, Canon, Haier, and Qualcomm. Since joining, Microsoft has built AllJoyn into Windows 10, and has contributed code back to the AllSeen Alliance on a regular basis.
The week of October 19th 2015, the AllSeen Alliance hosted its second annual summit in Seattle Washington where members were brought together to learn, to share, and to collaborate.
Windows 10 and Surface Pro 3: Certified for AllJoyn
On day one of the event, the AllSeen Alliance announced the first devices and software modules to be "Certified for AllJoyn". This certification is used to ensure that devices, apps, and Operating Systems designed to support AllJoyn work properly together.
Surface Pro 3 running Windows 10 with an LG Smart TV, and a LiFX smart bulb
The first of these certified products were:
- Microsoft Windows 10
- Microsoft Surface Pro 3
- LG Smart TV Model # 58UH6700
At Microsoft, we're excited to be represented in this initial wave of products that are AllJoyn-Certified!
UWP App Development
One of the most important aspects of building AllJoyn into Windows 10 was enabling developers to achieve the best possible developer experience when building AllJoyn into their Windows 10 apps and devices. At the AllSeen Alliance Summit, we demonstrated how AllJoyn Universal Windows Apps (UWA) are built using the Universal Windows Platform (UWP) and Visual Studio 2015. You can read a complete article describing the process here.
AllJoyn UWP app code used to control an AllJoyn device
At the summit, we demonstrated how easy it is to develop AllJoyn device companion apps using UWP by doing the following:
- Extracting an AllJoyn device interface from a running AllJoyn device (extraction of Introspection XML) using a Visual Studio Extension called AllJoyn Studio that you can download and install for free.
- Generating code using AllJoyn Studio that makes it easy to interact with AllJoyn devices and apps.
- Creating a simple user interface in Visual Studio 2015.
- Tying together the user interface (buttons, sliders, etc.) with the AllJoyn device interface which code was generated for.
In all, it takes about 10 minutes to create a simple AllJoyn application using these tools, and you can even use Visual Studio Community 2015 Edition (free) to build AllJoyn apps for Windows 10.
After our AllJoyn UWP app development session, we held a hands-on lab where participants built AllJoyn apps for Windows 10 that discovered and controlled AllJoyn-enabled LiFX smart bulbs.
Brian Rockwell helping a lab participant troubleshoot AllJoyn code
There's no better way to understand an API than to get hands-on with the code and to make it work! And if you're going to develop AllJoyn apps for devices, smart bulbs are a great device to start with since AllJoyn has a specific framework for lighting.
AllJoyn Device System Bridge
The "Internet of Things" includes many non-AllJoyn things. Wouldn't it be great if your AllJoyn app could discover and control these non-AllJoyn "Things"? This is exactly what the AllJoyn Device System Bridge (DSB) is designed to do. The DSB architecture provides an extension of AllJoyn's "Common language for devices" by providing an interoperability layer that requires no additional work or integration on the device (thing) side.
Torsten Stein giving an overview of the AllJoyn DSB architecture
The code required to implement an AllJoyn DSB has been contributed back to the AllSeen Alliance, so anyone can build a DSB for the devices they wish to bridge into the AllJoyn ecosystem. If you are developing a DSB for Windows 10, you can take advantage of a streamlined workflow that includes a DSB project template for Visual Studio 2015.
Artem Zhurid showing a Z-Wave DSB he built during the session used to control lights
In the above picture you can see an app on the screen called AllJoyn Explorer. With AllJoyn Explorer, you can view AllJoyn devices and apps running on your network, examine supported interfaces, read/view properties, sign up for signals and even invoke methods.
What's the most difficult challenge in IoT? Many IoT industry professionals would say: "Security"! The AllSeen Alliance has invested heavily in security for AllJoyn, and Microsoft has been actively involved in the development of AllJoyn's new security model. In AllJoyn terms this new security model is called AllJoyn Security 2.0 because it significantly extends security concepts in AllJoyn. This new security model has support for important new capabilities like user identity and security groups.
Dave Thaler delivering a talk describing how AllJoyn Security 2.0 works
Currently in developer preview, this new security model will be available in devices and apps in 2016. These new security capabilities will make it easier to set up, manage, and share AllJoyn devices. That's a good thing!
The AllSeen Alliance Summit is a great place to come to learn more about the inner workings of AllJoyn. One of the in-depth talks at this year's summit focused on AllJoyn's use of cryptography, a core tenet of AllJoyn security.
Greg Zaverucha covers conceptual and implementation details of cryptography in AllJoyn
People from all over the world work together in "virtual teams" to continually improve and extend the AllJoyn platform. This unique working environment enables companies and individuals to work together in a powerful way by breaking down geographic barriers. Once a year however, it's truly great to see everyone face to face at the AllSeen Alliance Summit.
If you are building a connected device, you should definitely look at AllJoyn, and think about attending the next AllSeen Alliance Summit!
- AllJoyn MSDN Documentation
- IOT developer program AllJoyn documentation
- WinHEC 2015 AllJoyn Video
- //BUILD 2015 AllJoyn Video
- Troubleshooting AllJoyn
- AllJoyn Studio
- Implementing an AllJoyn Producer
- MSDN UWP Samples
- AllJoyn DSB Mock Adapter Tutorial and Sample
- AllJoyn DSB Z-Wave Tutorial and Sample
- AllJoyn DSB GPIO Device Tutorial
- UWP Toaster + ajxmlCop