Кафедра информационных технологий курсовая работа проектирование и реализация расширяемого поискового сервера
Download 70.69 Kb.
|
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 – вернет статус запроса по его уникальному идентификатору. Рассмотрим различные варианты статуса: InWork – запрос на данный момент обрабатывается сервером; Stopped – запрос закончил обработку успешно; Error - запрос закончил работы с ошибкой; NotFound – запрос не найден. Кроме методов работы с запросами объект будет хранить всю информацию о работающий и завершенных потоках и передавать необходимые данные системе записи логов для удобной дальнейшей отладки. Download 70.69 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling