Реферат: Система предоставляет централизованный контроль для всех устройств в домашнем хозяйстве, позволяя пользователю контролировать все действия в домашнем хозяйстве
Аннотация
J-BASH (Java-Based Algorithm for a Smart House) или система «Java Алгоритма для Умного Дома» служит для решения проблем окружающей среды современного домашнего хозяйства, в которой имеется большое количество интеллектуальных устройств, которые отдельно контролируются, и недостаток общей интеграции. Система предоставляет централизованный контроль для всех устройств в домашнем хозяйстве, позволяя пользователю контролировать все действия в домашнем хозяйстве. Система использует технологию Java Jini для построения всепроникающей сети, позволяя тем самым соединять и отсоединять устройства от центральной контрольной точки. Она предоставляет простой в использовании графический пользовательский интерфейс центральной контрольной точки, которая контролирует различные устройства в домашнем хозяйстве. Данный отчёт освещает все ступени разработки системы, включая предварительное обзорное исследование, анализ задания, моделирование системы, описание правил использования, тестирование стратегии и критическая оценка. В приложениях вложены материалы по разработке системы.
Вступление
Задание.
В современных домашних хозяйствах используется большое количество высокоинтеллектуальных электронных устройств, действующих по отдельности зачастую достаточно неэффективно и периодически требующих внимания пользователя. Множество таких устройств содержит или может содержать микропроцессоры, работающие на базе виртуальной Java–машины. Задачей является объединение этих устройств путём разработки централизованного контролирующего механизма, использующего виртуальную Java-модель современного домашнего хозяйства, и содержащего виртуальное представление устройств домашнего хозяйства, называемого Умный Дом. Основной целью является минимизация потребности каждодневного вклада пользователя в функционирование Умного Дома.
Эта система, J-BASH или «Java Алгоритм для Умного Дома», позволяет домовладельцу среднего класса управлять домашним хозяйством из центральной контрольной точки, используя простой в использовании интерфейс. Этот интерфейс основан на тщательном анализе целевой аудитории и на аспектах Взаимодействия Человека-Компьютер. J-BASH также предоставляет интерфейс прикладного программирования (API) для интерфейса аппаратуры с целью сделать применение аппаратуры возможным в будущем.
Программный модуль покрывает только аспекты программного обеспечения, вовлечённые в работу Умного Дома. Он напрямую не рассматривает аппаратурные аспекты данной проблемы, а вместо этого представляя аппаратные устройства как виртуальные устройства в виртуальной модели домашнего хозяйства. В рамки проекта входит автоматизация каждодневных заданий в домашнем хозяйстве, насколько это возможно, используя программируемые логические устройства для достижения цели минимизации необходимости задействования человека.
Почему я выбрал эту проблему
“Из отверстий в стене выбежали маленькие мышки-роботы. Все комнаты были заполнены малюсенькими чистящими зверюшками из металла и резины. Они сталкивались со стульями, кружились вокруг них, вились в ковре, выбирая невидимую пыль. А потом они, как неизвестные захватчики, шмыгнули в свои норки и исчезли. Лишь мерцали их розовые глазки. Дом был уже чист.” [1]
Когда мне было десять лет, я читал научно-фантастический рассказ Рэя Брэдбери под названием «Пришёл сезон дождей». В этом рассказе описывается последний день жизни Умного Дома на земле после апокалипсиса. Что меня больше всего вдохновило в этом рассказе и благодаря чему он запомнился, так это то, что практически все функции, которые исполнял дом, использовали технологии, которые доступны и широко используются сегодня. Но до сих пор не было образцов объединения всех этих технологий, которые могли бы обеспечивать уровень изощрённости Умного Дома, описанного в рассказе.
Я абсолютно уверен, что технологический прогресс идёт от превращения научной фантастики в научный факт. Было выпущено огромное количество статей о проектах корпораций с мульти-миллиардными состояниями, такими как Microsoft и Sony, осуществляемых в условиях строгой секретности за закрытыми дверями, направленных на исследование и разработку управления домашним хозяйством следующего поколения. Я всё ещё не слышал об успешном использовании достаточно сложного Умного Дома и думаю, что это отчасти является следствием того, что подходы таких исследователей были неверными. Они рассматривали вначале возможности современных аппаратных устройств, а затем пытались объединить их.
Я считаю, что для борьбы с данной проблемой следует сначала разработать программное обеспечение. Алгоритм общения и взаимодействия отдельных устройств в домашнем хозяйстве гораздо важнее, чем технические детали применения какой-либо версии выявления и приведения в действие аппаратных устройств. По настоящему, будет гораздо проще разработать аппаратные устройства для этих целей, после создания определённого API, который будет определять какие задачи будут выполнять эти устройства при включении их в систему Умного Дома.
Имеется две причины, по которым была выбрана именно Java для осуществления данного проекта: во-первых, я предпочитаю программировать именно на этом языке, а во-вторых – уникальность характеристик этого языка, касающиеся взаимодействия различных аппаратных устройств. Мне показалось, что большое количество доступного материала по взаимодействию различных аппаратных устройств с микропроцессорами, которые применяют версию Виртуальной Машины Java, является показателем того, что применение алгоритма Java будет иметь огромный потенциал в будущем. И будет использоваться не как некая диковинка, а как существенная часть программного обеспечения Умного Дома.
Структура данного отчёта
Данный отчёт освещает прогресс проекта с самого его рождения 26.10.05 до создания окончательного отчёта 11.05.06. Основные темы отчёта разделены на шесть этапов, включая обзорную часть, анализ задания, разработку системы, создание документации по применению, методики тестирования и критическую оценку. Анализ задания разделён на задачи системы, детальное изложение требований, анализ опасностей и рисков, описание среды PEAS и анализ инструментария. Разработка системы разделена на: причины, по которым использовали MVC архитектуру, определение общего дизайна и UML диаграммы, демонстрирующие текущий дизайн системы. Документация по применению разбита на: применение архитектуры Jini и применение модели MVC. Методика тестирования разделена на цели тестирования, план тестирования, варианты тестов и результаты.
^ Обзор литературы
Предварительное обзорное исследование
Этот проект требовал значительного предварительного обзорного исследования. Я в основном использовал ^ Google Scholar поиск, доступный в Интернете. Я производил поиск в основном по следующим направлениям – Умный Дом, автоматизация домов и технология Jini. Основные источники, использованные при анализе и разработке проекта, приведены в разделе ссылок.
^ Google Scholar
Поисковая система Google Scholar является очень полезным инструментом при поиске электронных вариантов статей, относящихся к проекту. Она дала мне широкий обзор темы исследования, которые на сегодняшний день ведутся и бизнесменами и учёными.
^ Google Search
Просто поисковая система Google Search также является очень хорошим источником информации по теме проекта. С его помощью я смог посмотреть примеры Jini кода, примеры коммерческих проектов автоматизации дома и необходимую информацию для создания ГИП (Графический Интерфейс Пользователя), включая изображения устройств в домашнем хозяйстве.
^ Интернет сайты
Значительная часть коммерчески доступных проектов автоматизации дома имеют рекламные материалы в Интернете. Хотя они и не влияли непосредственно на проект, но служили источниками вдохновения, в частности во время сбора требований и создания прототипа ГИП.
Книги
К сожалению, оказалось очень трудно найти книги, заслуживающие доверия, по теме в виде обычных книг. Большинство книг по Jini технологии относились к версиям 1.0 или 1.1 Jini, в то время как я использовал более новую версию 2.0. Книги по теме автоматизации дома в основном фокусировались на аппаратурных аспектах и не были особенно важными. Однако несколько книжных источников были всё-таки использованы в области процесса разработки программного обеспечения с особыми требованиями к обеспечению безопасности и инженерного ПО.
^ Предшествующие разработки
В проекте использовались ранее проведённые работы из различных областей. Например, в области создания всеобъемлющих сетей был использован метод Inca X, который позволил упростить процесс инкапсуляции и использование устройств Jini. В области дизайна ГИП для упрощения его создания были использованы Jigloo GUI Builder и библиотеки Swing. Множество процедур, используемых в проекте, основаны на парадигмах инженерного ПО, используемого в промышленности.
3. Анализ и подробное изложение задания
Цели и задачи
Комфорт
Климат-контроль
Контроль окружающей атмосферы (затенение и освещение)
Контроль аппаратуры
Возобновление ресурсов
Чистка, уборка
Планирование и составление расписания дня
Контроль развлечений
Помощь в приготовлении пищи
Экономия ресурсов
Экономия электричества
Экономия воды
Экономия газа
Безопасность
Пожарная безопасность
Водная безопасность
Электрическая безопасность
Поддержка служб безопасности
Охрана
Контроль замков
Замкнутая телевизионная система
Сигнализация
Поддержка служб безопасности
Дистанционный контроль
Создание видимости присутствия
^ 3.2. Детальное рассмотрение требований
3.2.1. Функциональность
Система будет точно воспроизводить модель Умного Дома.
Система будет обеспечивать динамичное соединение новых устройств домашнего хозяйства.
Система будет обеспечивать централизованный контроль всех устройств в домашнем хозяйстве.
Система будет иметь графический интерфейс пользователя на центральной контрольной точке.
Система будет обеспечивать автоматизацию каждодневных заданий.
Система будет обеспечивать соединение с Интернетом.
Система будет обеспечивать дистанционный доступ в контрольной точке.
Система должна создавать улучшенную атмосферу для проживания её пользователю.
3.2.2. Надёжность
Система не будет использовать Microsoft
Система будет снабжена встроенной системой работы над ошибками
Система будет поддерживать всеобъемлющую сеть
Система будет использовать архитектуру Jini для поддержки распределения событий. Объект может позволять другим объектам регистрировать заинтересованность происходящим в объекте и получать уведомления в случае, если такое событие произойдёт. Это позволяет написать программы, основанные на распределении событий, с различными гарантиями по надёжности и масштабу.
3.2.2. Безопасность
Система позволит справляться с такими чрезвычайными ситуациями как пожары, наводнения, взлом, утечка газа и утечка воды.
Система будет обеспечивать как оповещение посредством сигнализации, так и автоматическое устранение аварийных ситуаций.
Система будет иметь возможность контактировать со службами безопасности в случае необходимости помощи.
3.2.4. Охрана
Система не будет использовать Microsoft.
Система будет защищена от вторжения из сети Интернет. Система будет частной сетью с межсетевым экраном и защитой proxy-системы от внешнего мира.
Система будет обеспечивать безопасное хранение данных.
Система будет использовать модель механизма защиты для технологии Jini, которая построена на сдвоенных понятиях принципа и списка контроля доступа. Службы Jini доступны от имени какого-либо логического объекта, принципа, который, как правило, исходит от пользователя системы. Службы сами по себе могут запрашивать доступ к другим службам, на основании идентичности объекта, который используют службы. Возможность доступа к службе зависит от содержания списка контроля доступа, который связан с объектом.
Система будет обеспечивать ведение журнала событий.
Система должна иметь возможность контактировать со службами безопасности в случае необходимости помощи.
^ 3.2.5. Обработка ошибок
Система будет обеспечивать отказоустойчивость.
Система будет вести журнал ошибок.
Система будет поддерживать всеобъемлющую сеть.
3.2.6. Производительность
Система будет обрабатывать все запросы пользователя за такой промежуток времени, который будет устраивать пользователя.
Время реагирования системы будет минимальным.
Система будет периодически производить автоматический самоанализ для проверки работоспособности.
^ 3.2.7. Человеческий фактор
Система будет характеризоваться простым в использовании HCI графическим пользовательским интерфейсом на контрольной точке.
Система не будет требовать высокого уровня технических знаний.
Система будет позволять исправлять ошибки, допущенные пользователем, то есть будет обеспечивать обратимость процессов.
Система будет иметь защиту от неумелого использования, то есть любые ошибочные действия пользователя не будут приводить к негативным последствиям.
Система будет требовать подтверждения пользователя при принятии важных решений.
Пользователь сможет оптимизировать систему при помощи контрольной панели.
Система будет безопасна для детей.
Система будет крайне полезной для инвалидов.
^ 3.2.8. Аппаратное обеспечение
Система будет обеспечивать сетевой интерфейс.
Система не будет зависеть от платформы, вследствие возможности применения любой платформы, поддерживающей Виртуальную Машину Java (JVM).
Система будет поставляться с API для аппаратных устройств с микроконтроллерами, работающими на базе JVM.
3.2.9. Интерфейсы
Система будет использовать API в качестве аппаратного интерфейса.
Система будет придерживаться правил Взаимодействия Человек-Компьютер для создания пользовательского интерфейса.
Система будет поддерживать голосовой ввод команд.
Система будет использовать сеть, основанную на протоколе TCP/IP для сетевого интерфейса.
Система будет использовать proxy-сервер для взаимодействия с Интернетом [2].
^ Анализ опасностей и рисков
Поскольку система J-BASH занимается средой домашнего хозяйства, то она подвержена некоторым опасностям и рискам. Таким образом, её можно считать системой с особыми требованиями к безопасности. Очень важно проанализировать возможную неисправную работу системы J-BASH и оборудования для минимизации потенциальных угроз.
^ 3.2.10. Последствия неисправной работы
наихудшими последствиями неисправного функционирования является подвергание жителей смертельным опасностям, таким как:
Пожар
Наводнение
Поражение электрическим током
Утечка газа или его взрыв
Вооружённое ограбление из-за неисправностей системы безопасности или системы замков
Голод из-за неисправностей системы замков
Авария из-за неисправной работы ворот гаража
Возможные последствия рисков, которые угрожают здоровью жителей дома:
Ожоги от огня, горячей воды или электричества
Отравление газом или дымом
Отравление едой из-за неисправности Холодильника, Морозилки, Духовки, Плиты или Микроволновой печи
Перегрев или переохлаждение из-за неисправности системы климат контроля
Переломы и вывихи
Возможные последствия рисков, которым подвержено имущество домовладельца:
Частичная потеря оборудования
Полная потеря оборудования
Ограбление
^ 3.2.11. Периодичность появления неисправностей
Вероятность и периодичность появления неисправностей компонент системы J-BASH можно оценить, используя следующую градацию[9]:
Частота
Трактовка вероятности
Часто
Постоянно происходит
Вероятно
Довольно часто происходит
Иногда
Происходило несколько раз
Редко
Редко случается
Маловероятно
Вряд ли, но всё-таки может произойти
Невероятно
Очень маловероятно, что такое случится
Основные типы компонент J-BASH можно классифицировать следующим образом по вышеуказанной шкале:
Освещение – часто
Пылесос – часто
Датчики сигнализации и CCTV – часто
Алгоритм контролирующего ПО – вероятно
Ванные, прачечные и туалетные устройства – вероятно
Камин – вероятно
Устройство гаража – вероятно
Посудомоечная машина – вероятно
Климат контроль – иногда
Кухонные устройства – иногда
Холодильник, морозилка и духовка – редко
Замки – редко
Устройства в жилой комнате – маловероятно
Устройства в спальной комнате – маловероятно
^ 3.2.12. Классификация опасностей
Формула классификации опасностей достаточно простая:
Риск = Частота * Серьёзность
Опасности можно классифицировать, используя следующую шкалу [9]:
^ Класс опасности
Описание
I
Непозволительный риск
II
Нежелательный риск, переносимый только если снижение риска непрактично или если затраты значительно превышают наносимый ущерб
III
Допустимый риск, если стоимость снижения риска меньше причиняемого ущерба
IV
Незначительный риск
Используя эту шкалу можно классифицировать угрозы и риски, которые несут в себе основные компоненты J-BASH:
Компонент
Частота выхода из строя
^ Тяжесть последствий
Класс угрозы
Камин
Вероятно
Катастрофическая
II
Дымовая сигнализация
Часто
Катастрофическая
II
Сигнализация утечки воды
Часто
Катастрофическая
II
Сигнализация утечки газа
Часто
Катастрофическая
II
Охранная сигнализация
Часто
Катастрофическая
II
Алгоритм контроля ПО
Вероятно
Катастрофическая
II
Кухонная плита
Иногда
Катастрофическая
III
Духовка
Иногда
Катастрофическая
III
Тостер
Иногда
Катастрофическая
III
Посудомоечная машина
Вероятно
Критическая
III
Стиральная машина
Вероятно
Критическая
III
Сушилка
Вероятно
Критическая
III
Душ
Вероятно
Критическая
III
Ванная
Вероятно
Критическая
III
Дверь гаража
Вероятно
Критическая
III
Климат контроль
Иногда
Критическая
III
Замки
Редко
Критическая
III
Микроволновая печь
Иногда
Небольшой
III
Кофеварка
Иногда
Небольшой
III
Раковина
Вероятно
Небольшой
III
Туалет
Вероятно
Небольшой
III
Пылесос
Часто
Небольшой
III
Освещение
Часто
Небольшой
III
Система Видео Слежения
Часто
Небольшой
III
Будильник
Маловероятно
Критическая
IV
Телефон
Маловероятно
Критическая
IV
Холодильник
Редко
Небольшой
IV
Морозилка
Редко
Небольшой
IV
Вытяжка над плитой
Редко
Небольшой
IV
Откидывающееся кресло
Маловероятно
Небольшой
IV
Кровать
Маловероятно
Небольшой
IV
Голосовое управление
Маловероятно
Небольшой
IV
Телевизор
Маловероятно
Незначительный
IV
Видео-DVD магнитофон
Маловероятно
Незначительный
IV
Радио
Маловероятно
Незначительный
IV
Аудио
Маловероятно
Незначительный
IV
Занавески
Редко
Незначительный
IV
Календарь
Маловероятно
Незначительный
IV
Зеркало
Невероятно
Незначительный
IV
^ 3.2.13. Уменьшение опасности угроз
Для уменьшения опасности потенциальных угроз до приемлемого уровня необходимо сосредоточиться на датчиках сигнализации и камине, так как они представляют наибольшую угрозу. Предлагаемые решения:
Продублировать все датчики для достижения более высокой степени безопасности.
Использовать специальный газовый датчик для камина с возможностью гашения искры в случае начала утечки газа. Также установить металлическую сетку для предотвращения вылета искр из камина и, соответственно, уменьшение угрозы возникновения пожара.
Управляющий алгоритм ПО сам по себе представляет значительную угрозу. С целью нивелирования этой угрозы необходимо использовать принципы дизайна отказоустойчивого ПО во время разработки и применения.
^ 3.3. PEAS описание рабочей среды J-BASH [7]
Исполнительное устройство
Показатель работоспособности
Местоположение
Исполнительный механизм
Датчики
Холодильник
Еда есть и не портится
Кухня
Охлаждающий элемент
Температура, давление
Морозилка
Еда есть и не портится
Кухня
Охлаждающий элемент
Температура, давление
Кухонная плита
Еда готовится хорошо
Кухня
Нагревательный элемент
Температура, давление
Вытяжка над плитой
Дым и пар быстро удаляются
Кухня
Вентилятор
Температура
Духовка
Еда готовится хорошо
Кухня
Нагревательный элемент
Температура, давление
Микроволновая печь
Еда готовится хорошо
Кухня
Нагревательный элемент
Температура, давление
Кофеварка
Кофе готовиться хорошо
Кухня
Нагревательный элемент
Температура, давление
Тостер
Тосты готовятся хорошо
Кухня
Нагревательный элемент
Температура, давление, цвет
Посудомоечная машина
Посуда моется хорошо
Кухня
Чистящий элемент
Температура, давление, вода
Откидывающееся кресло
Человеку удобно сидеть
Гостиная
Механизм кресла
Давление
Телевизор
Видно и слышно во всей комнате
Гостиная, спальня
Плазменный экран, колонки с объёмным звуком
Звук, движение
VCR/DVDR
Записи проигрываются и записываются
Гостиная, спальня
Телевизор
Звук, движение, время
Радио
Звук распространяется по всей комнате
Гостиная, спальня
Динамики
Звук, движение
Аудио
Звук распространяется по всей комнате
Гостиная, спальня
Динамики
Звук, движение
Стиральная машина
Вещи становятся чистыми
Прачечная
Моющий элемент
Температура, давление, вода
Сушилка
Вещи высыхают
Прачечная
Нагревательный элемент
Температура, давление
Бойлер
Вода нагревается до нужной температуры
Прачечная
Нагревательный элемент
Температура, давление, вода
Раковина
Вода нагрета до нужной температуры и течёт под хорошим напором
Ванная комната
Затычка, бойлер, моющие средства
Температура, давление, вода
Туалет
Поддерживается требуемая температура и чистота
Ванная комната
Нагревательный элемент, моющие средства
Температура, давление, вода
Душ
Вода нагрета до нужной температуры и течёт под хорошим напором
Ванная комната
Распылитель, бойлер, моющие средства
Температура, давление, вода
Ванна
Достигается требуемая температура воды, что позволяет использовать сауну
Ванная комната
Бойлер, водяные насосы, чистящие средства
Температура, давление, вода, химикаты
Нагрев/ охлаждение
Эффективный нагрев и охлаждение
Общее домохозяйство
Нагревательный и охлаждающий элементы
Температура, время
Освещение
Эффективное освещение комнат, в которых есть люди
Общее домохозяйство
Лампочки
Движение
Сигнализация
Эффективно будит людей
Спальня
Динамики
Время
Кровать
Даёт ощущение комфорта
Спальня
Нагревательный элемент
Давление
Пылесос
Эффективно удаляет пыль
Общее домохозяйство
Всасывающий элемент
Пыль, движение
Дверь гаража
Эффективно открывает дверь
Гараж
Двигатель
Движение, давление
Дымовая сигнализация
Хорошо будит людей и устраняет огонь
Общее домохозяйство
Динамик, оборудование для гашения огня, линии связи с пожарной станцией
Дым
Сигнализация утечки воды
Эффективно будит людей, предотвращает наводнения
Общее домохозяйство
Динамик, водяные насосы
Вода
Охранная сигнализация
Эффективно борется с нежданными гостями
Общее домохозяйство
Динамик, линии связи с участком милиции
Камеры, движение, давление
Календарь
Эффективно напоминает людям о важных делах
Общее домохозяйство
Динамик
Время
Телефон
Хорошо функционирует при разговоре
Общее домохозяйство
Динамик, микрофон
Входящие звонки
Зеркало
Хорошо отражает
Общее домохозяйство
Осветительное устройство
Движение, свет
Голосовое управление
Эффективно записывает команды пользователя
Общее домохозяйство
Микрофоны
Звук
^ Анализ инструментария
В данном проекте используется большой набор доступных инструментов для планирования, разработок и применения. Я принимал решения использовать то или иное устройство на основе его доступности, степени знакомства с ним, обзорного исследования и личного предпочтения.
Для проектного планирования в форме графиков Гантта я использовал Microsoft Project. Эта программа достаточно проста в использовании, я с ней хорошо знаком, и она даёт очень информативные графики в качестве результата. Конкурентом этой программы была Microsoft Visio, которая мне показалась слишком упрощённой, с графиками PERT, с которыми я плохо знаком.
Для разработки проекта я выбрал IBM Rational Rose. Это замечательная программа, использующая унифицированный язык моделирования (UML), позволяет детально моделировать объекты в диаграммном представлении. Эта программа доступна студентам ECS и я достаточно хорошо с ней знаком. Я также принимал к рассмотрению другие системы автоматизированной разработки программ на UML, такие как SELECT и SDE Eclipse.
В качестве языка программирования я выбрал Java. Java применяется на компьютерах с различными системами и многие современные устройства используют JVM. Есть доступные библиотеки, которые поддерживают динамические сетевые среды. Java является языком высокого уровня, который позволяет разрабатывать сложные многослойные распределённые системы, что делает его достойным кандидатом.
Для разработки рабочей среды я выбрал Eclipse. Это доступная интегрированная среда разработки, которую можно скачать в Интернете. Хотя я и не очень хорошо знаком с этой IDE, она имеет очень много важных преимуществ над остальными средами, которые я брал в рассмотрение. В них входили: версию для отдельных предприятий Borland J Builder и Microsoft Visual Studio.Net 2003.
В качестве связующего ПО я выбрал Jini. Это расширенная библиотека Java, которая общедоступна и делает возможным случайное или всеобъемлющее распределение в рабочей сети для устройств, работающих на Java. Она направлена на превращение сети в гибкий инструмент с простым администрированием, ресурсы которой могут выбирать пользователь или компьютер. Она имеет централизованный системный реестр и поддерживает ПО или виртуальные устройства, что делает её превосходным кандидатом для данного проекта. Это связующее ПО будет отвечать за соединение различных устройств в домашнем хозяйстве воедино и к центральной контрольной панели. Jini система сосредоточена на обеспечении гибкости и динамичности сети, что лучше отражает динамичную природу Умного Дома, и позволяет легко добавлять и удалять различные функции или услуги. Я также рассматривал в качестве кандидатуры Java RMI, который по-моему запутывал дела, а также простой протокол управления сетью (SNMP), с которым я совсем плохо знаком.
Для управления версиями я выбрал Concurrent Version System (CVS). Я знаком с этой системой и к тому же она интегрирована с Eclipse IDE, что позволяло мне плавно отлаживать и фиксировать файлы проекта прямо из среды разработки.
Для закодированной документации в форме кодовых комментариев и API я выбрал Javadoc. Javadoc производится Sun Microsystems и таким образом является производственным стандартом и очевидным выбором для документирования в классах Java.
В качестве сервисной платформы Jini, которая требуется для более простого применения функций Jini, я выбрал Incs X. Inca X - это платформа для визуальной разработки и применения технологии Jini, которая существенно увеличила мою производительность, позволив мне сконцентрироваться на проектировании и разработке системы J-BASH и освободив меня от потери ценного времени при установке, конфигурировании и использовании Jini. [11]
Для макетирования ГИП я выбрал MockupScreens. Это простая в использовании бесплатная программа для создания экспериментального макета ГИП. Она более подробно описывается в разделе 4.5, Макетирование ГИП. Я также принимал к рассмотрению X-Designer, но оказалось, что эта программа не запускается под Windows, что сделала её бесполезной для меня.
Для проектирования ГИП я выбрал вспомогательный программный модуль Eclipse – Jigloo. Это достаточно простой вспомогательный модуль для Eclipse IDE, который позволяет строить и управлять Swing и SWT типами объектов. В качестве конкурирующей программы я выбрал SWT Designer. Основным различием между двумя этими программами заключается в простоте использования среды разработки, основываясь на котором я выбрал именно Jigloo.
Для тестирования элементов я выбрал JUnit 4.0. Это общедоступная оболочка регрессивного тестирования, которая делает возможным записывать Java код для повторяющихся заданий. Такие возможности обычно используются при экстремальном программировании и быстрой разработке.
Для тестирования Jini я выбрал Jini LDJ Kit. Jini Комплект Поиска, Обнаружения и Объединения (LDJ Kit) – это набор тестов без согласования, инвентарь для тестирования и соответствующая документация (производство Sun Microsystems). The LDJ Kit – это набор тестов, которые дают возможность подтвердить соответствие Jini клиентов, функций или услуг поиска основным и критическим требованиям из перечня Jini.
Вышеперечисленные инструменты-программы являются основными при создании данного проекта. Остальные разнообразные программы (такие как Microsoft Word) я не буду перечислять, так как они не повлияли существенно на процесс разработки проекта.
4. Детальное устройство
4.1. Архитектура MVC
Основополагающим решением при выборе дизайна был выбор парадигмы архитектуры MVC. MVC – это Модель, Отображение и Контроллер; она достаточно часто используется при разработке информационных систем. Модель представляет собой модель Умного дома, содержащую объекты, которые отвечают за определённые устройства в доме. Отображение представляет собой контрольную панель, которая видна человеку-пользователю Умного Дома в виде графического интерфейса пользователя. Контроллер представляет собой автоматическую логическую схему, которая представляет Умный Дом.
Такой тип архитектуры позволяет разделять основные задания системы на отдельные модули, каждый из которых имеет отдельную, конкретную роль. Роль модели заключается в охватывании всех объектов, которые представляют виртуальные устройства в доме со всеми их методами и переменными. Роль отображения состоит в представлении графического интерфейса пользователя на контрольной панели пользователю таким образом, чтобы он мог контролировать различные процессы в доме. Роль контроллера более неуловима, так как он отвечает за установленное поведение домашних устройств с целью достижения максимально возможного уровня автоматизации.
^ 4.2. Сетевая модель Jini
В рабочей системе Jini имеется три основных части. Это – служба, например, холодильник; клиент – тот, кто хочет воспользоваться службой, например, контрольная панель; и в третьих – это поисковая служба, которая играет роль брокера или агента между службами и клиентами. Также существует сеть, соединяющая все три вышеперечисленных компонента. Эта сеть использует протокол TCP/IP. Смотрите Рис. 1:
Рисунок 1 – Сеть Jini
Система Jini основана на трёх основных протоколах, которые называются обнаружение, соединение и поиск. Два первых протокола, обнаружение и соединение, используются при подключении устройства к сети. Обнаружение применяется, когда служба ищет поисковую службу, при помощи которой можно зарегистрироваться. Соединение происходит, когда служба нашла поисковую службу и желает присоединиться к ней. Поиск происходит, когда клиент или пользователь хочет найти и активировать службу.
Рисунок 2 - Обнаружение
Обнаружение (Рисунок 2) – это процесс добавления службы к системе. В приведённом примере холодильник является инициатором службы. Сначала холодильник находит поисковую службу посредством групповой передачи запроса в локальную сеть.
Рисунок 3 - Соединение
Соединение (Рисунок 3) происходит, когда служебный объект для холодильника загружен в поисковую службу. Этот служебный объект содержит интерфейс на языке программирования Java для холодильника, включая методы, при помощи которых пользователи и приложения могут активировать услугу холодильника с любым описываемым атрибутом.
Рисунок 4 - Поиск
Поиск (Рисунок 4) происходит, когда клиент обнаруживает требуемую службу, такую как холодильник, по её типу, при помощи поисковой службы. Служебный объект холодильника загружается в клиента.
Рисунок 5 - Активация
Последней ступенью является активация службы, как это показано на Рисунке 5. [3-5]
^ 4.3. Основные проектные решения
Некоторые из основных проектных решений, принятых за время создания проекта:
Централизованная контрольная точка, через которую соединяются все устройства.
Адаптивный контроль устройств, основанный на текущем состоянии и данных, вводимых пользователем, которые увеличивают комфорт, безопасность, охрану и экономию энергии.
Разделение всех классов моделируемых устройств в домашнем хозяйстве в отдельный модуль Модели.
Отделение графического интерфейса пользователя в модуль Отображения.
Отделение всех автоматизированных заданий в модель Контроллера.
Технология Jini всеобъемлющей сети используется для обеспечения отказоустойчивости.
Устройства в домашнем хозяйстве (из модуля Модель) сообщаются друг с другом через Реестр в центральной контрольной точке.
ГИП (из модуля Отображения) и Контроллер общаются с устройствами через Реестр в центральной контрольной точке.
еще рефераты
Еще работы по разное
Реферат по разное
Условия и правила предоставления банковских услуг I. Введение настоящие Условия и правила предоставления банковских услуг далее Условия
17 Сентября 2013
Реферат по разное
Рэа им. Г. В. Плеханова zavial@rinetl
17 Сентября 2013
Реферат по разное
Документированная информация составляет основу управления, его эффективность в значительной степени базируются на производстве и потреблении информации
17 Сентября 2013
Реферат по разное
Асте до 18 лет, проживающих в различных городах и районах Кемеровской области, получили помощь в рамках благотворительного марафона «Кузбасс территория добра»
17 Сентября 2013