Языки программирования.
Разработка системы, которая определяет и настраивает устройства умного дома на основе протокола ZigBee
Основная идея фреймворка OSGi — система состоит из бандлов. Основной способ взаимодействия между бандлами — сервисы: объекты, зарегистрированные в ядре системы с заявленными реализованными интерфейсами. Бандлы регистрируют сервисы для предоставления определенной функциональности другим бандлам. Помимо этого OSGi предоставляет механизм создания и обработки событий, управление импортом/экспортом… Читать ещё >
Языки программирования. Разработка системы, которая определяет и настраивает устройства умного дома на основе протокола ZigBee (реферат, курсовая, диплом, контрольная)
Язык С++
Для реализации работы с ZigBee на языке C++ можно воспользоваться библиотекой ZigbeeLib [1]. Для создания агентов можно воспользоваться библиотекой agents.h.
Язык С#
Для реализации работы с ZigBee на языке C# можно воспользоваться библиотекой GBee [2]. Однако использование данной библиотеки накладывает дополнительное ограничение на аппаратную часть системы: данная библиотека разработана специально для работы с модулями XBee.
Библиотека, которая позволяет работать с агентами, не была найдена.
Язык Java
Для работы с ZigBee устройствами для языка существует несколько библиотек:
- — библиотека zigbee4java [3];
- — библиотека ZB4O [4].
Для работы с агентами можно воспользоваться агентной платформой JADE [5].
Выбор технологий
Наиболее целесообразно использовать язык Java. Данный язык является кроссплатформенным, быстрым, для него есть большое количество библиотек и документации.
Рисунок 11 — Диаграмма ограничений.
Для работы с ZigBee сетями лучше всего подходит библиотека ZB4O т.к. в данной библиотеке помимо работы с ZigBee, как это сделано в zigbee4java, есть возможность использовать платформу OSGI, что увеличивает гибкость системы в целом.
Для разработки агентной составляющей системы необходимо воспользоваться библиотекой Jade, т.к. Jade одна из самых распространённых агентных платформ и отлично встраивается в проекты любой сложности.
Выбранные проектные решения отображены на рисунке 11.
ZB4O
ZB4OSGI — это набор OSGI бандлов (в терминах OSGI бандлы равносильны плагинам), которые позволяют интегрировать ZigBee сети вместе с платформой сервисов OSGI. Проект имеет следующие бандлы:
- — драйвера для доступа USB аппаратным ключам (dongle);
- — реализация библиотеки кластеров ZigBee;
- — реализация ZigBee профилей;
- — инструменты для взаимодействия с ZigBee устройствами и многое другое.
Теперь рассмотрим подробнее платформу OSGI. OSGi (Open Services Gateway Initiative) — спецификация динамической плагинной (модульной) подсистемы для создания Java-приложений, разрабатываемая консорциумом OSGi Alliance. Круг применений данной спецификации довольно широк: изначально разрабатывалась для создания встроенных систем (в частности, для автомобилей BMW, также в разработке спецификации активно участвует Siemens), но сейчас на базе OSGi строят многофункциональные приложения (например, Eclipse SDK) и Enterprise-системы (например, Naumen DMS).
Основная идея фреймворка OSGi — система состоит из бандлов. Основной способ взаимодействия между бандлами — сервисы: объекты, зарегистрированные в ядре системы с заявленными реализованными интерфейсами. Бандлы регистрируют сервисы для предоставления определенной функциональности другим бандлам. Помимо этого OSGi предоставляет механизм создания и обработки событий, управление импортом/экспортом java-пакетов и библиотек, методы адресации ресурсов. Распределение ресурсов и jar-файлов по бандлам позволяет однозначно решить проблему загрузки классов (jar hell), а реализация взаимодействия в виде реестра сервисов и событийной модели позволяет не запутаться в обилии взаимодействующих частей (особенно в случае большого приложения) и практически безгранично расширять приложение. Самое важное то, что можно не перезапуская приложение, устанавливать, подключать, отключать и обновлять модули системы.
Агентная платформа JADE
Java Agent Development Framework — одна из самых широко используемых платформ для создания агентов. Она включает в себя:
- — библиотеку для создания агентов;
- — runtime для исполнения агентов;
- — инструменты для отладки, мониторинга и настройки агентов.
JADE реализована согласно FIPA (Foundation for Intelligent Physical Agents). Программная среда JADE подключается к любому проекту на языке Java. Агенты JADE могут быть совершенно разными — от простых, только реагирующих на события, до сложных многокомпонентных агентов.