Фреймворк управления устройствами на основе системы публикации-подписки (pub/sub) Redis (Java).
Термин | Описание |
---|---|
Устройство, переднее устройство | Компьютерное устройство, реализующее определённые функции |
Управляющее устройство, конечное устройство, клиент управления | Приложение для управления устройствами в виде веб-приложения или локального приложения |
Клиент | Общий термин для устройства и управляющего устройства |
Система сообщений | Промежуточное программное обеспечение, предоставляющее услуги связи между клиентами и серверами на основе Redis |
Канал, channel | Концепция канала, унаследованная от Redis; это канал данных с уникальным именем и специфическим типом данных, используемый системой сообщений для передачи сообщений. Отправители сообщений отправляют свои сообщения на указанный канал, а все подписчики этого канала получают эти сообщения. Для одного канала могут быть несколько отправителей и подписчиков. |
Для управления передними устройствами в сложной сети требуется промежуточный сервис, к которому подключаются все устройства и управляющие устройства, чтобы они могли взаимодействовать друг с другом и осуществлять управление устройствами.
dtalk был создан для достижения вышеупомянутых целей — это фреймворк управления устройствами на основе системы публикации-подписки Redis. В рамках dtalk Redis используется для предоставления промежуточного сервиса. Передние устройства подписываются на определённые каналы для получения запросов управления, выполняют соответствующие функции и отправляют результаты обратно на указанные ответственные каналы. Управляющее устройство прослушивает этот ответственный канал для получения результатов.
Ниже представлена базовая сеть dtalk:
Подробное описание dtalk см. в "Разработочной документации dtalk".
API-документация dtalk (javadoc): https://apidoc.gitee.com/l0km/dtalk
dtalk-engine
, выполняющегося на клиентской стороне, и dtalk-client
, работающего на серверной стороне управления. Краткое описание модулей dtalk: ├─dtalk-base общие модули dtalk├─dtalk-client реализация консольного клиента dtalk
├─dtalk-cmd модуль команд устройств dtalk
├─dtalk-common-redis общие модули для работы с Redis в dtalk
├─dtalk-demo эмулятор устройства dtalk
├─dtalk-engine реализация движка меню dtalk
└─manual документация по системе
Модуль dtalk-base
является общим модулем, который реализует модель меню dtalk, включая опции меню, команды устройств, контейнерные меню, а также механизмы уведомлений о сообщениях и автоматического открытия Redis.
Модуль dtalk-engine
представляет собой движок меню dtalk, который реализует механизм выполнения команд меню на основе модели меню через подписку на Redis. Он слушает указанные каналы, принимает запросы на команды меню от сервера управления, находит соответствующие пункты меню и выполняет изменения опций, выполнение команд устройств и отображение подменю.
Модуль dtalk-client
реализует простой консольный клиент, предоставляющий интерфейс взаимодействия с менеджером меню на устройстве. Подключается к менеджеру меню на устройстве, отображает содержание меню в виде дерева, отправляет запросы на команды меню и отображает ответы.
Обмен данными между устройством и сервером управления осуществляется в формате структурированных данных JSON. Приложения могут использовать JavaScript для представления меню устройства в более богатых формах в веб-браузере.### dtalk-demo
Модуль dtalk-demo
использует dtalk-engine
для создания простого эмулятора устройства dtalk, представляющего консольное приложение, работающее на устройстве с запущенным движком меню dtalk. Можно подключиться к dtalk-demo
с помощью dtalk-client
, чтобы продемонстрировать работу dtalk.
Двоичные jar-пакеты проекта уже были опубликованы в центральном репозитории Maven, поэтому Maven или Gradle проекты могут прямым образом использовать эти пакеты без необходимости компиляции.
Например, использование dtalk-client в Maven:
<!-- https://mvnrepository.com/artifact/com.gitee.l0km/dtalk-client -->
<dependency>
<groupId>com.gitee.l0km</groupId>
<artifactId>dtalk-client</artifactId>
<version>0.1.3</version>
</dependency>
Приведите библиотеку dtalk-engine
<!-- https://mvnrepository.com/artifact/com.gitee.l0km/dtalk-engine -->
<dependency>
<groupId>com.gitee.l0km</groupId>
<artifactId>dtalk-engine</artifactId>
<version>0.1.3</version>
</dependency>
См. Maven Центральный репозиторий
https://mvnrepository.com/artifact/com.gitee.l0km/dtalk-client
https://mvnrepository.com/artifact/com.gitee.l0km/dtalk-engine
Первоначально следует запустить Redis, так как это просто демонстрация. На локальной машине достаточно запустить один экземпляр Redis. Как dtalk-demo
, так и dtalk-client
по умолчанию подключаются к локальному Redis серверу.#### Запуск dtalk-demo
На примере версии 0.1.3, uber-jar пакет dtalk-demo
версии 0.1.3 можно скачать с:
http://central.maven.org/maven2/com/gitee/l0km/dtalk-demo/0.1.3/dtalk-client-0.1.3-standalone.jar
После скачивания uber-jar пакета, его можно запустить командой:
java -jar dtalk-demo-0.1.3-standalone.jar
Вызов java -jar dtalk-demo-0.1.3-standalone.jar -h
отобразит справочную информацию.
dtalk-client
На примере версии 0.1.3, uber-jar пакет dtalk-client
версии 0.1.3 можно скачать с:
http://central.maven.org/maven2/com/gitee/l0km/dtalk-client/0.1.3/dtalk-client-0.1.3-standalone.jar
Запуск осуществляется следующей командой:
java -jar dtalk-client-0.1.3-standalone.jar
Вызов java -jar dtalk-client-0.1.3-standalone.jar -h
отобразит справочную информацию.
# Клонировать исходный код
git clone https://gitee.com/l0km/dtalk.git
cd dtalk
# Компилировать
mvn install
После компиляции можно запустить демонстрационные программы.
dtalk-demo
cd dtalk
dtalk-demo\engine.bat
dtalk-client
cd dtalk
dtalk-client\console.bat
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )