Статьи

Red Hat JBoss A-MQ и Интернет вещей

Как стать JBoss A-MQ и Android Rock Star в мире Интернета вещей!

Я хотел собрать простой пример того, как использовать Red Hat JBoss A-MQ в Интернете вещей (IoT) с помощью телеметрического транспорта очереди сообщений (MQTT) в Android. 

В первой части статьи будут освещены концепции и технологии, использованные в демонстрации. Вторая часть поможет вам начать работу с примером за пару минут, как рок-звезда. В примере показано, как легко публиковать и подписываться на тему в JBoss A-MQ из Android с помощью MQTT Client.

Часть 1 — Концепции

Что такое MQTT?

MQTT — это протокол соединения между компьютерами (M2M) / «Интернет вещей». Он был спроектирован как чрезвычайно легкий транспорт для публикации и подписки. Это полезно для соединений с удаленными местоположениями, где требуется небольшая площадь кода и / или пропускная способность сети выше. [1]

MQTT теперь является открытым стандартом OASIS. Первое совещание Технического комитета OASIS MQTT состоялось 26 марта 2013 года в Бостоне в качестве совещания F2F (Face 2 Face). [2] Очень хороший обзор MQTT от Дэйва Локка в ссылках. [3]
Что такое Red Hat JBoss A-MQ?


Небольшая, высокопроизводительная платформа обмена сообщениями с открытым исходным кодом на основе Apache ActiveMQ.
[8] В рамках программы Red Hat Developer программное обеспечение JBoss A-MQ Enterprise доступно для разработчиков, БЕСПЛАТНО! 

Какие вспомогательные проекты включены в демонстрацию?

Демонстрация включает в себя код из клиентской библиотеки Red Hat JBoss Fuse MQTT, который начал Хирам Кирино. Библиотека поддерживает API-интерфейсы блокировки, будущего и обратного вызова / продолжения. Источник находится в ссылках. [4] Я включил библиотеку в проект. Я также использовал код от Джейсона Шермана для примера приложения для Android. [5] [6] Кроме того, я использовал шаблон JBoss Rock Star Эрика Шабелла для быстрой сборки демонстрации. [7]

Требуются только следующие обновления файла activemq.xml:

1. Транспортный соединитель для mqtt. Стандартный порт 1883.

<transportConnectors>  
  <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>  
  <transportConnector name="mqtt" uri="mqtt+nio://0.0.0.0:1883"/>  
</transportConnectors> 

2. Для обеспечения безопасности мы просто используем SimpleAuthenticationPlugin.

<plugins>
   <simpleAuthenticationPlugin>
      <users>
         <authenticationUser username="system" password="manager" groups="users,admins"/>
         <authenticationUser username="user" password="password" groups="users"/>
         <authenticationUser username="guest" password="password" groups="guests"/>
      </users>
   </simpleAuthenticationPlugin>
</plugins>

Основной код в приложении Android находится в файле MQTTActivity.java в пакете org.example.mqtt. Пользовательский интерфейс приложения для Android находится в main.xml и отображается в графическом макете.

Часть 2 — Демо

Шаги для сборки и запуска демонстрации

1. Загрузите код с github по адресу 
https://github.com/kpeeples/a-mq-android-mqtt

2. Загрузите Red Hat JBoss A-MQ с 
сайта https: //www.jboss. org / products / amq.html  и поместите в каталог установки.

3. Загрузите комплект Android с 
http://developer.android.com/sdk/index.html  и распакуйте его.

4. Загрузите и запустите JBoss Developer Studio 7 или Fuse IDE.

5. Добавьте
подключаемые модули
разработчика Android.

6. Создайте виртуальное устройство Android (AVD) через JBDS в диспетчере виртуальных устройств Android в меню «Окно». Если диспетчер виртуальных устройств Android не отображается в меню «Окно», нажмите «Окно»> «Настройка перспективы»> вкладка «Доступность групп команд». Установите флажок «Android SDK и AVD Manager» и нажмите кнопку «ОК».

7. Импортируйте проект Android в JBDS

8. Запустите файл init.sh для настройки A-MQ.

9. Запустите A-MQ на переднем плане, выполнив target / jboss-a-mq-6.0.0.redhat-024 / bin / amq.

10. Щелкните правой кнопкой мыши AndroidManifest.xml и запустите как Android.

11. Подключитесь к брокеру и убедитесь, что вы используете IP вместо localhost и используете имя пользователя / пароль, введенные из activemq.xml.

12. Введите тему назначения и тестовое сообщение, затем нажмите «Отправить».

13. Сообщение будет отправлено в тему. прочитайте из темы и затем поместите в полученное поле.

Ссылки:

[1]
http://mqtt.org/

[2]
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt

[3]
https: //www.oasis-open. org / committees / download.php / 49205 / MQTT-OASIS-Webinar.pdf 

[4] 
https://github.com/fusesource/mqtt-client

[5] 
http://java.dzone.com/articles/android- mqtt-activemq

[6] 
https://github.com/jsherman1/android-mqtt-demo.git

[7] 
https://github.com/eschabell/jboss-rock-star-template

[8] 
https: // www.jboss.org/products/amq.html