Автор работы: Пользователь скрыл имя, 19 Октября 2013 в 16:41, дипломная работа
Разработка интернет сервиса в котором присутствуют интересные технологии фильтрации обзоров, исключая недостоверную информацию. Данный проект является по своей сути инновацией, чья практическая значимость очень велика. Представьте себе, насколько легче будет принять решение о покупке, скажем, автомобиля, если компетентный в данном вопросе пользователь четко и ясно разъяснит Вам о плюсах и минусах интересующей Вас модели.
ВВЕДЕНИЕ 4
1. Постановка задачи 6
2. Цель работы 9
2.1 Требования к системе 11
2.1.2 Выходные данные 14
3. Сравнение с аналогами 15
4. Выбор программно – технических средств реализации 30
5. Алгоритм работы web–сервиса 34
5.1 Структура базы данных 36
5.2 Описания алгоритмов для решения основных задач 39
5.2.1 Регистрация 39
5.2.2 Верификация 42
5.2.3 Аутентификация 42
5.2.4 Добавление категории 42
5.2.5 Добавление обзора 43
5.2.6 Добавление исправления 43
5.2.7 Голосование 43
5.2.8 Поиск 44
5.3 Описание алгоритма обработки запросов пользователя 46
5.4 Модель работы web–сервиса 47
6. Примеры работы Web–сервиса 50
ЗАКЛЮЧЕНИЕ
Также язык Java, воспользоваться парадигмой ООП (объектно – ориентированного программирования) и является кроссплатформенным.
Достоинства объектно–ориентированного программирования:
1. Классы позволяют проводить конструирование из полезных компонент, обладающих простыми инструментами, что дает возможность абстрагироваться от деталей реализации.
2. Данные и операции вместе образуют определенную сущность, и они не «размазываются» по всей программе, как это нередко бывает в случае процедурного программирования.
3. Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения.
4. Инкапсуляция информации защищает наиболее критичные данные от несанкционированного доступа.
5. ООП даёт возможность создавать расширяемые системы. Это одно из самых значительных достоинств ООП и именно оно отличает данный подход от традиционных методов программирования.
6. Расширяемость означает, что существующую систему можно заставить работать с новыми компонентами, причем без внесения в нее каких–либо изменений. Компоненты могут быть добавлены на этапе выполнения.
7. Обработка разнородных структур данных. Программы могут работать, не утруждая себя изучением вида объектов. Новые виды могут быть добавлены в любой момент.
8. Изменение поведения во время выполнения. На этапе выполнения один объект может быть заменен другим. Это может привести к изменению алгоритма, в котором используется данный объект.
9. Реализация родовых компонент. Алгоритмы можно обобщать до такой степени, что они уже смогут работать более, чем с одним видом объектов.
10. Расширение каркаса. Независимые от приложения части предметной области могут быть реализованы в виде каркаса и в дальнейшем расширены за счет добавления частей, специфичных для конкретного приложения.
11. Многоразового использования программного обеспечения на практике добиться не удается из–за того, что существующие компоненты уже не отвечают новым требованиям. ООП помогает этого достичь без нарушения работы уже имеющихся клиентов, что позволяет нам извлечь максимум из многоразового использования компонент.
12. Сокращается время на разработку, которое с выгодой может быть отдано другим проектам.
13. Компоненты многоразового использования обычно содержат гораздо меньше ошибок, чем вновь разработанные, ведь они уже не раз подвергались проверке.
14. Когда некая компонента используется сразу несколькими клиентами, то улучшения, вносимые в ее код, одновременно оказывают свое положительное влияние и на множество работающих с ней программ.
15. Если программа опирается на стандартные компоненты, то ее структура и пользовательский интерфейс становятся более унифицированными, что облегчает ее понимание и упрощает ее использование.
Обоснованием выбора среды программирования NetBeans стало:
Обоснованием выбора MongoDB, как программного обеспечения баз данных стало:
MongoDB, это документо–ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц.
Основные возможности данной СУБД:
1. Документо–ориентированное хранилище (простая и мощная JSON–подобная схема данных).
2. Достаточно гибкий язык для формирования запросов.
3. Динамические запросы.
4. Полная поддержка индексов.
5. Профилирование запросов.
6. Быстрые обновления «на месте».
7. Эффективное хранение двоичных данных больших объёмов, напр., фото и видео.
8. Журналирование операций, модифицирующих данные в БД.
9. Поддержка отказоустойчивости и масштабируемости: асинхронная репликация, набор реплик и шардинг.
10. Может работать в соответствии с парадигмой MapReduce.
11. Полнотекстовый поиск, в том числе на русском языке, с поддержкой морфологии.
Выбор таких программно – технических
средств был обусловлен тем, что их возможности
удовлетворяют требованиям проекта, удобны
для разработки алгоритмов и хранения
данных.
Перед началом разработки web–сервиса, необходимо определить задачи, которые он должен решать, какие запросы обрабатывать и разработать структуру базы данных. Под каждую задачу необходимы алгоритмы, которые в совокупности ее решают.
Для начала необходимо определить структуру разрабатываемого Web–сервиса и его модель (см. рис. 12).
Рис. 12 «Модель web–сервиса»
На web–сервисе есть 5 основных страниц, которые доступны напрямую или переход может быть совершен с одной из этих страниц:
– Главная страница (Index.jsp);
– Страница регистрации (Registration.jsp);
– Страница восстановления пароля (Recovery.jsp);
– Страница категории (Category.jsp);
– Страница обзора (Overview.jsp);
Каждой странице соответствует свой обработчик страницы (Handler), который при выполнении методов, может вызывать методы адаптера базы данных (DBAdapter) или к адаптеру сессии (SessionAdapter).
При переходе к странице, вызываются JSP методы обработчика страницы, которые в ней есть. Обработчик может принять данные и выполнить алгоритмы того или иного метода, которые непосредственно вызываются со страницы или из метода в обработчике возвращая результат в если это возможно.
Перед тем как приступить к разработке алгоритмов, необходимо определить структуру базы данных (см. рис. 3). В данном случае: коллекции и документы, возможность их связей. Перед этим стоит определить, какие коллекции нам необходимы:
Эти коллекции представляют собой основу для базы данных. Они обеспечивают возможность хранения данных и могут предоставить всю нужную информацию для алгоритмов.
Рис. 13 Структура базы данных
Описание значения цветов Рисунка 13.
– База данных.
– Коллекции (в РБД таблица).
– Поля (Field, в РБД колонка). Совокупность таких полей организуют Документ (Document, в РБД строка).
Перед разработкой алгоритмов, необходимо выявить задачи, которые должен выполнять web–сервис. Отталкиваясь от задачи, разработать алгоритмы, которые ее решают.
Есть 8 основных задач, которые должен решать web–сервис:
– Регистрация;
– Аутентификация;
– Верификация;
– Добавление категории;
– Добавление обзора;
– Добавление исправления;
– Голосование;
– Поиск;
Рассмотрим способы решения для каждой из них.
Этот процесс представляет собой регистрацию пользователя на web–сервисе. Пользователь должен перейти на страницу регистрации и ввести необходимые данные (имя, фамилия, логин, пароль, электронный почтовый адрес). После ввода, пользователь должен нажать кнопку «Регистрация». Данные, которые ввел пользователь, передаются в обработчик регистрации (RegistrationHandler). Внутри него вызывается метод проверки правильности данных. А именно: Уникальность логина, правильность логина (отсутствие запрещенных символов и допустимая длина), правильность пароля и подтверждение пароля, правильность введенного электронного почтового адреса и его подтверждение. После проверки, если была ошибка – выводится сообщение об ошибке, иначе пользователь заносится в базу данных и выставляется в очередь подлежащей верификации, далее происходит перенаправление на главную страницу. (Блок–схема алгоритма см. рис. 14)
Рис. 14 «Блок–схема алгоритма регистрации»
При проверке данных вызывается метод проверки правильности (метод validate() (см. рис. 15)). Этот метод проверяет все введенные данные и при наличии ошибок, заполняет список ошибок допущенными ошибками и текстом ошибок. После проверки возвращает логическое значение, соответствующее наличие хотя бы одной ошибки.
Рис. 15 «Блок–схема проверки правильности введенных данных»
Этот процесс представляет
собой проверку подлинности пользователя
(пользователь реален). Зарегистрировавшемуся
пользователю на указанный почтовый адрес
отправляется сформированная ссылка вида
«RegisterHandler?code=
После того как пользователь переходит по ссылке, в обработчике регистрации вызывается метод верификации и происходит поиск соответствующего кода в базе данных. Если код найден, то считается, что пользователь реален и в базе данных в поле ServiceBitMap выставляется бит, который отвечает за верификацию.
Этот процесс представляет собой проверку подлинности пользователя в системе. Чтобы войти на сайт под определенной учетной записью, необходимо ввести логин и пароль. Эти данные передаются в обработчик, отвечающий за проверку. Переданный пароль зашифровывается тем же способом, что и в процессе регистрации (прим. хеш+соль). После этого происходит вызов метода в адаптере к базе данных, который отвечает за аутентификацию. В него передаются логин и полученный хеш пароля. В этом методе происходит выборка пользователя по логину, у полученного документа сравниваются хеши паролей, если они совпадают, то пользователя можно считать аутентифицированным и у модуля SessionAdapter вызывается метод заполнения сессии после аутентификации. Если не совпадают, то выводится сообщение об ошибке.
Этот процесс представляет
собой добавление категории пользователем.
Чтобы добавить категорию, пользователю
необходимо перейти на страницу создания
категории и заполнить
Этот процесс представляет собой добавление обзора пользователем. Чтобы добавить обзор, пользователю необходимо перейти на страницу создания обзора и заполнить необходимые поля: Выбрать категорию к которой обзор будет принадлежать (автоматически выставляется та категория, с которой был совершен переход), название создаваемого обзора, содержимое обзора. Далее эти данные передаются в метод модуля DBAdapter, где генерируются необходимые поля и все сохраняется в базе данных.
Этот процесс представляет собой добавление предложения на изменение обзора или категории пользователем. Чтобы добавить исправление, пользователю необходимо перейти на страницу создания обзора и заполнить необходимые поля: Выбрать обзор или категорию, к которой будет создано исправление, содержимое исправления с комментарием. Далее эти данные передаются в метод модуля DBAdapter, где генерируются необходимые поля и все сохраняется в базе данных.