Кафедра информационных технологий курсовая работа проектирование и реализация расширяемого поискового сервера


Download 70.69 Kb.
bet8/10
Sana20.06.2023
Hajmi70.69 Kb.
#1628198
TuriКурсовая
1   2   3   4   5   6   7   8   9   10
Bog'liq
kursovaya

5.1 Обработка запроса


а) Получение запроса сервером
Эта программная часть должна поддерживать получение запросов в многопоточном режиме и передавать их в дальнейшую обработку следующим модулям. Получение любых сетевых сообщений возможны только по тем протоколам, которые изначально будут выбраны для работы.
В нашем случае используется архитектура RestAPI.
REST (Representational state transfer) – это стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web, который, как правило, используется для построения веб-служб.
В зависимости от необходимых требований к серверу методы RestAPI архитектуры будем разделять на POST (для отправки поискового запроса) и GET (для других операций). Так как любой запрос связан с определенным пользователем, то будем учитывать процесс авторизации и получением пользовательских данных из базы данных. Для шифрования данных будем использовать алгоритм MD5. Процесс запроса к серверу будем делать на авторизацию с получением соответствующего токена, который будет действителен некоторый ограниченный период времени и собственно запрос к серверу с передачей связки из логина, токена. Сервер, выполняя процесс аунтификации, либо запретит выполнение запроса, либо определит права пользователя и передаст управление следующему серверному модулю с соответствующими данными аккаунта, полученными из базы данных.
б) Разбор запроса серверным парсером
На этом этапе полученный запрос в формате json необходимо обработать и преобразовать в объектную модель для дальнейшей удобной обработки. Для этих целей выделим отдельный компонент – QueryParser.
Рассмотрим его основные обязанности.

  • Преобразование Json-текста в объектную модель;

  • Поддержка новых форматов Json-запроса;

  • Обработка критических ошибок и остановка дальнейшей обработки запроса;

  • Обработка нетипичных ситуаций и предупреждение об этом.

После обработки QueryParser должен вернуть либо готовый для работы объект запроса, либо сообщение об ошибке.
в) Обработка объект-запроса
Выделим новую сущность для обработки объект-запроса – QueryHandler. Ее основная задача – это разделение процесса обработки на несколько потоков, их контроль и работа с другими серверными модулями по необходимости (Например, сохранение некоторых пользовательских данных в базу).
Опишем методы объекта QueryHandler.

  • runQuery - запускает запрос в отдельном потоке и присваивает ему уникальный идентификатор;

  • killQuery – принудительное завершение запроса по его уникальному идентификатору (Полезно в случае критических ситуаций) ;

  • getStatus – вернет статус запроса по его уникальному идентификатору. Рассмотрим различные варианты статуса:

    1. InWork – запрос на данный момент обрабатывается сервером;

    2. Stopped – запрос закончил обработку успешно;

    3. Error - запрос закончил работы с ошибкой;

    4. NotFound – запрос не найден.

Кроме методов работы с запросами объект будет хранить всю информацию о работающий и завершенных потоках и передавать необходимые данные системе записи логов для удобной дальнейшей отладки.

Download 70.69 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling