1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/l0km-dtalk

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

dtalk(Управление устройствами)

Фреймворк управления устройствами на основе системы публикации-подписки (pub/sub) Redis (Java).

Обзор

Терминология

Термин Описание
Устройство, переднее устройство Компьютерное устройство, реализующее определённые функции
Управляющее устройство, конечное устройство, клиент управления Приложение для управления устройствами в виде веб-приложения или локального приложения
Клиент Общий термин для устройства и управляющего устройства
Система сообщений Промежуточное программное обеспечение, предоставляющее услуги связи между клиентами и серверами на основе Redis
Канал, channel Концепция канала, унаследованная от Redis; это канал данных с уникальным именем и специфическим типом данных, используемый системой сообщений для передачи сообщений. Отправители сообщений отправляют свои сообщения на указанный канал, а все подписчики этого канала получают эти сообщения. Для одного канала могут быть несколько отправителей и подписчиков.

ВведениеВ приложениях Интернета вещей различные передовые устройства должны быть управляемы удалённо. Когда все устройства доступны через IP-адреса, проектирование системы управления устройствами можно свести к использованию простого сервера, как, например, большинство современных маршрутизаторов имеют встроенные веб-сервисы, позволяющие пользователям управлять маршрутизаторами через веб-страницы.Однако в сложных сценариях использования передние устройства могут работать в различных локальных сетях и не всегда будут доступны через IP-адреса. Поэтому прямое использование IP-адресов становится непригодным.

Для управления передними устройствами в сложной сети требуется промежуточный сервис, к которому подключаются все устройства и управляющие устройства, чтобы они могли взаимодействовать друг с другом и осуществлять управление устройствами.

dtalk был создан для достижения вышеупомянутых целей — это фреймворк управления устройствами на основе системы публикации-подписки Redis. В рамках dtalk Redis используется для предоставления промежуточного сервиса. Передние устройства подписываются на определённые каналы для получения запросов управления, выполняют соответствующие функции и отправляют результаты обратно на указанные ответственные каналы. Управляющее устройство прослушивает этот ответственный канал для получения результатов.

Ниже представлена базовая сеть dtalk:

Разработочная документация

Подробное описание dtalk см. в "Разработочной документации dtalk".

API-документация dtalk (javadoc): https://apidoc.gitee.com/l0km/dtalk

Архитектура программного обеспеченияПрограмма 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-base является общим модулем, который реализует модель меню dtalk, включая опции меню, команды устройств, контейнерные меню, а также механизмы уведомлений о сообщениях и автоматического открытия Redis.

dtalk-engine

Модуль dtalk-engine представляет собой движок меню dtalk, который реализует механизм выполнения команд меню на основе модели меню через подписку на Redis. Он слушает указанные каналы, принимает запросы на команды меню от сервера управления, находит соответствующие пункты меню и выполняет изменения опций, выполнение команд устройств и отображение подменю.

dtalk-client

Модуль dtalk-client реализует простой консольный клиент, предоставляющий интерфейс взаимодействия с менеджером меню на устройстве. Подключается к менеджеру меню на устройстве, отображает содержание меню в виде дерева, отправляет запросы на команды меню и отображает ответы.

Обмен данными между устройством и сервером управления осуществляется в формате структурированных данных JSON. Приложения могут использовать JavaScript для представления меню устройства в более богатых формах в веб-браузере.### dtalk-demo

Модуль dtalk-demo использует dtalk-engine для создания простого эмулятора устройства dtalk, представляющего консольное приложение, работающее на устройстве с запущенным движком меню dtalk. Можно подключиться к dtalk-demo с помощью dtalk-client, чтобы продемонстрировать работу dtalk.

Инструкция по установке

Технические требования

  • JDK 1.7 или выше
  • Redis 2.8.2 или выше
  • Maven 3.5.0 или выше

Внешние зависимости (dependencies)

Двоичные 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, так как это просто демонстрация. На локальной машине достаточно запустить один экземпляр 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

После компиляции можно запустить демонстрационные программы.

  1. Запуск dtalk-demo
cd dtalk
dtalk-demo\engine.bat
  1. Запуск dtalk-client
cd dtalk
dtalk-client\console.bat

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Dtalk (Device Talk) — это фреймворк для управления устройствами на стороне клиента, реализованный с использованием системы публикации и подписки на основе Redis. Развернуть Свернуть
BSD-2-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/l0km-dtalk.git
git@api.gitlife.ru:oschina-mirror/l0km-dtalk.git
oschina-mirror
l0km-dtalk
l0km-dtalk
master