Факультет Информационных Технологий Спецкурс: Разработка распределенных систем Семинарист: Анойкин Д.А., http://ccfit.nsu.ru/~den Задание №3 Улучшенная доска объявлений Доску объявлений используют 3 категории пользователей: гости, рекламодатели и администраторы. Гости могут производить следующие операции: Просматривать все объявления Просматривать объявления, созданные только после конкретной даты (с точностью до минуты) Сортировать текущий список объявлений по дате создания или по имени рекламодателя Регистрироваться как рекламодатели (вводится уникальное имя/пароль) Писать комментарии к объявлениям Смотреть свои комментарии, которые были сделаны во время текущей сессии Рекламодатели могут дополнительно к возможностям гостя: Входить в систему под собственным именем/паролем Просматривать только свои объявления, сортированные по дате (asc/desc) Фильтровать объявления по дате создания (с точностью до минуты) Просматривать комментарии к своим объявлениям, при этом комментарии сортируются по дате Удалять свои объявления вместе с комментариями к ним Выходить из системы Администраторы могут дополнительно к возможностям гостя: Входить в систему под собственным именем/паролем Смотреть список всех рекламодателей Смотреть все объявления определенного рекламодателя и комментарии к ним (сортируются по дате создания) Удалять рекламодателей вместе с объявлениями и комментариями к ним Выходить из системы Информация о пользователях и объявлениях хранится в базе данных. Администратор в системе только один, он создается при инициализации базы данных. Для рекламодателя также доступен standalone Java application (Swing или просто текстовый), с помощью которого он может просматривать свои объявления и комментарии к ним. Примерная структура приложения представлена ниже: 1 Факультет Информационных Технологий Спецкурс: Разработка распределенных систем Семинарист: Анойкин Д.А., http://ccfit.nsu.ru/~den Требования по реализации: Использовать Struts 1.2.x в качестве JSP-Servlet framework (http://struts.apache.org/) Использовать JBoss 3.x в качестве EJB-container В качестве базы данных использовать MySQL 4.x Оформить приложение в виде EAR файла с именем board.ear Используйте CMP Entity Beans для представления бизнес-сущностей Сортировку и фильтрацию объявлений реализовать через EJB OQL Инициализация базы производится посредством специального standalone java application Доступ к базе данных получать через JNDI. Используйте <resource-ref> с именем “jdbc/boardDB” в web.xml и ejb-jar.xml(смотри документацию по Tomcat и JBoss) Использовать роли ‘advertiser’ и ‘admin’ для рекламодателя и администратора. Ограничить доступ к соответствующим страницам доски объявлений и методам в EJB, используя: 2 Факультет Информационных Технологий Спецкурс: Разработка распределенных систем Семинарист: Анойкин Д.А., http://ccfit.nsu.ru/~den o стандартные <security-role>, <security-constraint> тэги в web.xml и в ejbjar.xml o FORM метод аутентификации для web-контейнера o Необходимо использовать перенаправление аутентификации из webcontainer и из standalone application в JBoss. Более подробно: http://www.jboss.ru/author/blandger/jboss/jboss_security_setting.htm http://www.luminis.nl/publications/websecurity.html JBoss Book, параграф “Delegate web container authentication and authorization to JBossSX” o Предпочтительно использовать org.jboss.security.auth.spi.DatabaseServerLoginModule для авторизации в JBoss (смотри JBoss Book, параграф “Using and Writing JBossSX Login Modules”) Дополнительные упражнения 1. Использовать технологию JSF при реализации web-доступа 2. Сделать web-service для работы рекламодателя с объявлениями и комментариями 3. Реализовать кластерную версию приложения, используя 2 инсталляции Jboss 3