AllJoyn и Windows 10 — делаем так, чтобы наши устройства говорили на одном языке
Выражаем большое спасибо за подготовку статьи sgrebnov из компании Akvelon (Иваново), за помощь в написании данной статьи как непосредственному разработчику AllJoyn и эксперта по IoT/Windows. Остальные наши статьи по теме IoT можно найти по тегу iotweek.
Не так давно мы уже затрагивали тему IoT или «Интернета Вещей» в рамках прошедшей конференции WinHEC (Hardware Engineering Conference) 2015.
Одна из главных проблем, волнующих многих, это вопрос обеспечения связности и обнаружения устройств, говорящих на разных языках, протоколах и др. Эту проблему призван решить фреймворк AllJoyn, в совокупности с протоколом Thread, к рабочей группе над которым Microsoft присоединился 1 июля. Об AllJoyn и пойдёт наша речь.

Отдельно мы решили рассмотреть одну из очень важных частей этой концепции в разрезе Windows 10 (но, конечно, не ограничивающейся этой ОС) — популярный протокол взаимодействия устройств AllJoyn, который уже стал де-факто стандартом. Тем более, что Windows 10 и сопутствующий Windows 10 SDK предоставляют специальную поддержку данного протокола.
Что за AllJoyn?
AllJoyn — это фреймворк (и протокол) с открытым исходным кодом, предназначенный для взаимодействия приложений, устройств и пользователей через WiFi и Bluetooth (и другие типы сетей) вне зависимости от типа устройства.
Основной заслугой данного протокола является специальный уровень абстракции, позволяющий устройствам и приложениям предлагать себя в качестве провайдера определенных услуг и находить другие устройсва и приложения без использования какого-либо дополнительного оборудования и специальных серверов.
Архитектурно это выглядит следующим образом – AllJoyn-сеть состоит из виртуальных роутеров (Routers) и приложений (Apps). Приложения общаются со своим роутером, а роутеры, в свою очередь, с другими роутерами и другими приложениям, относящимися к данному роутеру. Таким образом, приложения могут общаться друг с другом посредством сети этих виртуальных роутеров. При этом приложение и вирутальный роутер, к которому он прикреплен, могут находится на разных физических устройствах.
Подробнее про архитектуру AllJoyn можно почитать тут (общая информация) и тут (Windows 10 IoT).

Windows 10 IoT AllJoyn
Спешу порадовать — в Windows 10 включена полная поддержка данного протокола, а именно:
Во-первых, вам не нужно заботиться об AllJoyn-роутере, описанном выше, так как Windows 10 включает специальный сервис AllJoyn Router Service, который может использоваться как вашими приложениями, так и другими устройствами в сети.

Во-вторых, Windows 10 включает специальный API для работы с AllJoyn-протоколом, который находится в пространстве имен Windows.Devices.AllJoyn (https://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.alljoyn.aspx) (поддерживаются С++, C#, JavaScript). Таким образом, вам не нужно ставить дополнительные SDK и инструменты, все уже готово и работает.
И, конечно же, дополнительные инструменты для разработчиков:
- AllJoynCodeGen — часть Windows 10 SDK (лежит в C:\Program Files (x86)\Windows Kits\10\bin\x64\), позволяет сгенерировать полностью готовую Windows Runtime библиотеку для работы с AllJoyn-сервисом, используя описание сервиса в формате xml (AllJoyn Introspection XML). Посмотреть и послушать подробнее.
- getajxml — специальная утилита, которая позволяет обнаружить все AllJoyn-устройства в сети, получить детальную информацию, в том числе сгенерировать AllJoyn Introspection XML, который можно использовать для автогенерации кода. Подробнее можно посмотреть на видео выше.
- AllJoyn Explorer — похожая утилита, выполненная в виде Windows приложения и позволяющая не только увидеть интерфейс, но и динамически вызвать методы. Скачать можно здесь.
Пример создания AllJoyn-приложения на Windows 10
Ниже мы будем использовать Windows 10 Insider Preview и бесплатную версию Visual Studio 2015 Community Edition (RC) (скачать).
Одним из популярных примеров AllJoyn является проект Connected Lighting Project, который представляет ни что иное, как лампочку, реализующую AllJoyn-интерфейс для получения информации и управления устройством.
Ниже посмотрим на процесс создания Windows 10-клиета для управления такой умной лампочкой.
Полный исходный код приложения можно найти на GitHub. Итак…
Шаг 1. Создаем новый Widows Runtime C++ компонент и используем AllJoynCodeGen (см. выше) для автогенерации кода.
Публичный AllJoyn Introspection XML для данного проекта можно найти тут.

Детальные инструкции лежат здесь.
Шаг 2. Создаем новое Windows 10 C#/XAML приложение и добавляем в зависимости только что созданный Windows Runtime компонент.
Шаг 3. Теперь мы можем реализовать логику по нахождению и управлению нашей лампочкой
Для того, чтобы найти и подсоединиться к лампочке:

Чтобы изменить яркость:

Это действительно весь код 🙂 Основные AllJoyn классы были предоставлены Windows 10 API, остальные сгенерированы c помощью AllJoynCodeGen.
Шаг 4. Тестируем:
В качестве тестовой лампочки можно использовать Lamp Simulator Application (Android, скачать). Итак, запускаем наше приложение на Windows Phone 10 телефоне и Lamp Simulator на Android, и смотрим, как это все работает вместе.
Your access to this site has been limited by the site owner
If you think you have been blocked in error, contact the owner of this site for assistance.
If you are a WordPress user with administrative privileges on this site, please enter your email address in the box below and click «Send». You will then receive an email that helps you regain access.
Block Technical Data
| Block Reason: | Access from your area has been temporarily limited for security reasons. |
|---|---|
| Time: | Sun, 29 Oct 2023 22:56:02 GMT |
About Wordfence
Wordfence is a security plugin installed on over 4 million WordPress sites. The owner of this site is using Wordfence to manage access to their site.
You can also read the documentation to learn about Wordfence’s blocking tools, or visit wordfence.com to learn more about Wordfence.
Click here to learn more: Documentation
Generated by Wordfence at Sun, 29 Oct 2023 22:56:02 GMT.
Your computer’s time: .
Для чего Служба маршрутизатора AllJoyn?
Для чего нужна Служба маршрутизатора AllJoyn в Windows 10?
Можно ли её безболезненно отключить?
Для чего служба :Удостоверение приложения AppIDSvc?
Можно ли её безболезненно отключить?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Для чего нужен Seed() и для чего его override?
Привет, ребята. Прочитал много разных статей про Seed(). И так и не могу понять зачем он нужен на.
Служба MMCSS Планировщик классов мультимедиа — постоянно останавливается служба, звук
Добрый день. Помогите, пожалуйста, решить проблему со Службой Планировщик классов мультимедиа.
Служба DHCP не запускается и служба автоматического обнаружения веб-прокси WinHTTP
Помогите не запускается служба DHCP пишет ошибку 1075 ,Не удалось запустить службу DHCP-клиент на.
Есть приложение, служба работающая на порту, при обращении к ней служба виснет
Есть приложение, служба работающая на порту, при обращении к ней служба виснет версия про.
706 / 384 / 64
Регистрация: 22.12.2013
Сообщений: 2,217
Записей в блоге: 19
Нашел сам:
llJoyn — это фреймворк (и протокол) с открытым исходным кодом, предназначенный для взаимодействия приложений, устройств и пользователей через WiFi и Bluetooth (и другие типы сетей) вне зависимости от типа устройства.
Рекомендуется оставить эту службу Вручную и не удалять её.
Еще нашел как включить лампочку с помощью этого протокола:
https://habr.com/ru/company/microsoft/blog/261515/
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Служба Apache установилась, но запускаться отказывается, ошибка 1053 Служба не ответила вовремя
В 7-ке апач 2.4 как служба устанавливался средствами самого апача из консоли. С десяткой такой.

Выбор маршрутизатора для офиса
Доброго времени суток. Нужна помочь в выборе оборудования. Можно конечно погуглить по необходимым.
Выбор гигабитного маршрутизатора для здания
Доброго времени суток, товарищи. Возник вопрос в выборе маршрутизатора для здания. Провайдер.
Выбор маршрутизатора для раздачи Wi-Fi на 6 устройств
Доброго времени суток. У меня имеется маршрутизатор D-Link DIR 300 (D1E), для раздачи Wi-Fi на 6.

Выбор ADSL2+ маршрутизатора для дома
Посоветуйте надежный ADSL маршрутизатор для дома (Ростелеком). 1) 4 LAN 2) Wi-Fi не нужен 3) Я.
Сервер для маршрутизатора/шейпера/ната
Алоха, нужно подобрать железо для сабжа. Серв будет стоять в общаге, через него в инет будут.
Служба маршрутизатора AllJoyn — что это такое?

Служба перенаправляет сообщения AllJoyn для локальных клиентов AllJoyn. В большинстве случаев — можно отключить.
Если эта служба отключена, то клиенты AllJoyn, у которых нет своих связанных маршрутизаторов — не смогут запуститься.
В интернете встречал сообщения, то эту службу можно отключить.
AllJoyn — что это вообще такое?
Оказывается это фреймворк (и протокол), предназначенный для взаимодействия программ, устройств и пользователей через Wi-Fi и Bluetooth (а также другие сети) и все это не зависит от типа устройства.
Как это все выглядит? Сеть AllJoyn состоит из виртуальных роутеров и приложений. Приложения обмениваются данными с своим роутером, а роутеры в свою очередь обменяются данными с другими роутерами и приложениями, которые относятся к этому роутеру. Но при этом приложение и его виртуальный роутер могут быть на разных физических устройствах. Подробнее об этом всем можете почитать на Хабре.
И все это нужно для того, чтобы устройства и приложения могли предлагать себя в качестве владельца определенных услуг и при этом находить другие устройства и приложения без использования дополнительного оборудования и серверов. Что-то напоминает децентрализованную сеть, где все участники сети являются полноправными и могут быть как клиентами, так и выполнять функции сервера.

Что можно сказать в итоге? Что если вы не знаете что такое AllJoyn — то вам это вряд ли нужно и службу можно отключить.
Служба маршрутизатора AllJoyn — как отключить?
У меня она была отключена. Но я ее отключил полностью, выбрав в Тип запуска — Отключена. Сделал перезагрузку, никаких проблем в итоге нет.
Итак, отключаем службу:
- Зажимаем Win + R, пишем команду services.msc, нажимаем ОК.
- Откроется окно со списком служб, находим здесь Служба маршрутизатора AllJoyn, нажимаем два раза по ней.
- Появится окошко свойств, где в Тип запуска выбираем Отключено, а потом нажимаем кнопку Остановить.
Окошко свойств службы:

Заключение
- Служба маршрутизатора AllJoyn — перенаправляет сообщения AllJoyn для локальных клиентов AllJoyn.
- Если вы не знаете что такое AllJoyn, то думаю можно спокойно отключить. Я отключил, проблем не заметил. В любом случае если что — включите обратно.
- Служба хоть и работает под процессом svchost.exe, но не является критически важной.
Надеюсь информация пригодилась, удачи и добра, до новых встреч друзья!