-
Notifications
You must be signed in to change notification settings - Fork 0
14. Пояснительная записка EJB
Разрабатываемая информационная система "Порта экскурсий" позволяет автоматизировать процесс мониторинга спроса на экскурсии.
В информационной системе предусмотрены следующие РОЛИ:
- Администратор - человек, управляющий содержимым сервиса;
- Экскурсовод- проведение мероприятий;
- Клиент - выбор и заказ персонажа.
ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ: 1. для АДМИНИСТРАТОРА
- Создание и удаление клиента и экскурсовода;
2. для КЛИЕНТА
- Просмотр экскурсий;
- Оформление заявки.
3. для ЭКСКУРСОВОДА
- Создание экскурсии
- Просмотр количества предварительных заказов
ДИАГРАММЫ ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ для разных ролей:
Клиент:
Экскурсовод:
Администратор:
1. Клиент
1.1 Регистрация нового пользователя
- Пользователь вводит логин и пароль;
- После проверки регистрация завершается успешно;
- _Альтернатива:_пользователь с таким логином уже существует в системе или введен недопустимый пароль (менее четырех символов). Система предложит ввести иной логин или пароль.
1.2 Авторизация пользователя
- Пользователь вводит свои регистрационные данные;
- Данные проходят проверку, авторизация завершается успешно, затем система переходит на страницу пользователя;
- Альтернатива: данные не проходят проверку (например, если такого пользователя не существует в базе). Система предложит заново ввести логин и пароль.
1.3 Заполнение личной информации
- Авторизованный пользователь, заходит на свою страницу;
- Пользователь нажимает "изменить личные данные", после этого система переводит его на страницу редактирования личных данных;
- Пользователь вводит информацию о себе(Имя, фамилия, пол, возраст, город по которому он проводит экскурсии и т.д.), а затем подтверждает ввод данных;
- Измененные данные сохраняются и выводится сообщение "данные успешно изменены".
1.4 Просмотр информации об экскурсии
- Система выводит информацию об экскурсиях;
- Пользователь задает условия поиска (по названию, цене и др.);
- Пользователь имеет возможность отсортировать результаты поиска.
1.5 Оформление заказа
- Клиент просматривает и выбирает экскурсию;
- Клиент указывает дату и время выполнения заказа;
- Клиент указывает продолжительность экскурсии;
- Клиент указывает место отправной точки, куда необходимо прибыть экскурсоводу;
- Клиент подтверждает окончание оформления заявки.
2. Экскурсовод
2.1 Регистрация экскурсовода
- Ввод логина и пароля;
- После проверки данных регистрация успешно завершается;
- _Альтернатива:_пользователь с таким логином уже существует в системе или введен недопустимый пароль (менее четырех символов). Система предложит ввести иной логин или пароль.
2.2 Авторизация экскурсовода
- Администратор вводит свои регистрационные данные;
- Данные проходят проверку, авторизация завершается успешно, затем система переходит на страницу администратора;
- Альтернатива: данные не проходят проверку (например, если такого пользователя не существует в базе). Система предложит заново ввести логин и пароль.
2.3 Просмотр информации об экскурсии
- Система выводит информацию об экскурсиях;
- Пользователь задает условия поиска (по названию, цене и др.);
- Пользователь имеет возможность отсортировать результаты поиска.
2.4 Просмотр и изменение статуса заказов
- Просмотр заказов, имеющихся у экскурсовода на данных момент;
- Изменение статуса заказа (Принят/Не принят);
- Удаление заказа, если заказ имеет статус "Выполнен".
3. Администратор
3.1 Регистрация
- Ввод логина и пароля;
- После проверки данных регистрация успешно завершается;
- _Альтернатива:_пользователь с таким логином уже существует в системе или введен недопустимый пароль (менее четырех символов). Система предложит ввести иной логин или пароль.
3.2 Авторизация администратора
- Администратор вводит свои регистрационные данные;
- Если данные проходят проверку, авторизация завершается успешно и система переходит на страницу администратора;
- Альтернатива: данные не проходят проверку (например, если такого пользователя не существует в базе). Система предложит заново ввести логин и пароль.
3.3 Действия с экскурсиями
- После авторизации, администратор может выполнить следующее: добавить новую экскурсию или изменить уже существующую;
- Задать условия поиска, очуществить сортировку и фильтрацию.
3.4 Действия с заказами
- Просмотр заказов, имеющихся на данных момент;
- Изменение статуса заказа (Принят/Не принят);
- Удаление заказа, если заказ имеет статус "Выполнен".
Разработав и подробно описав варианты использования, разработав как статическую, так и динамическую объектные модели предметной области, необходимо определить используемые инструменты в проекте.
В качестве СУБД было решено использовать MySql, так как это открытая, бесплатная и популярная СУБД.
В качестве решения для организации бизнес-логики было решено использовать сеансовые компоненты без состояния (Stateless Session Beans), так как все временные данные можно хранить в БД, при этом в дальнейшем приложение может легко масштабироваться. Также Stateless Session Beans проще в использовании.
Так как для указанного решения уже была разработана БД, то слой доступа к данным был автоматически сгенерирован при помощи IDE IntelliJ IDEA. Для каждой полученной сущности также были сгенерированы локальные фасады (Stateless Session Beans). Вся необходимая бизнес логика, которой не хватало была добавлена в указанные классы. Было решено не создавать удаленный интерфейсов для бизнес-логики. Весь компоненты слиты в один проект. Это позволяет получить доступ к сущностям из более высокоуровневых слоев. Это удобно, например, в случае отображения данных или при подготовке создания объекта.
В ходе разработки приложения было решено реализовать GUI при помощи JQuery. Управление страницами осуществляется при помощи сервлета.
Все исходники программы расположены в репозитории по адресу: https://github.com/AnastasiyaTarasova/excursions
Для тестирования web-приложениz использовались такие браузеры как Google Chrome, Mozilla и Opera. Тестирование проводилось вручную. В качестве основы были использованы use cases из главы 1. Отдельно тестировалась корректность авторизации и ограничения доступа, а также устойчивость приложения к некорректным данным. Тестирование показало, что разработанная реализация удовлетворяет основным требованиям.
Для работы приложения понадобится СУБД MySql.
Для развертки приложения необходим GlassFish Server версии 4.1.1.
Запуск домена:
asadmin start-domain domain1
Далее скачать исходники проекта с GitHub:
`git clone https://github.com/AnastasiyaTarasova/excursions/tree/master/excursionEJB
Собрать проект:
mvn package
Развернуть приложение не сервере GlassFish:
asadmin deploy excursions.war
Также приложение можно развернуть используя удаленный интерфейс GlassFish.
Пользовательский интерфейс предусмотрен для трех ролей. Страница администратора:
Страница экскурсовода:
Страница клиента:
В ходе разработки информационной системы "Портал экскурсий" были рассмотрены все роли пользователей. Для каждой из ролей были определены функциональные требования, после чего разработаны и описаны варианты использования.
Далее, разработав и подробно описав варианты использования, разработав как статическую, так и динамическую объектные модели предметной области,был спроектирован слой предметной области. Для организации бизнес-логики разрабатываемого приложения была изучена и использована спецификация Enterprise JavaBeans (EJB).
В дальнейшем расширение системы не составит труда. Это обусловлено подходом к проектированию приложения, разделению бизнес-логики, работу с данными и преставление на разные слои.