Веб-сервис
Программное обеспечение подсистемы интернет-тестирования (вебсервис), обеспечивает интернет - тестирование удаленного пользователя, то есть удаленное взаимодействие СППР с ЛПР.
При интернет-тестировании веб-сервис взаимодействует не только с базой-данных СППР, но и базой знаний, что позволяет использовать методы обработки данных и решающие правила, предназначенных для обработки таблиц экспериментальных данных, заполненных в результате
взаимодействия с удаленным пользователем.
Каждой таблице экспериментальных данных соответствовал определенный метод ее анализа, а каждой группе аналогичных таблиц экспериментальных данных (построены по принципу тест - решающее правило) соответствовал свой мета - метод.Кроме того, у удаленного пользователя имеется возможность доступа к таблицам экспериментальных данных, так и возможности удаленного пользователя редактировать записи базы данных, то есть добавлять свои таблицы экспериментальных данных, свои методы и свои мета-методы. При этом не ставилась задача в обеспечении единой координации исследований. По существу каждый удаленный пользователь может выполнять как пассивные функции: наполнение базы данных таблицами экспериментальных данных и методами их обработки, так и использовать все информационные ресурсы веб-сервиса для решения своей конкретной задачи [171].
Модуль удаленного взаимодействия с пользователем представляет набор скриптов на языке Java и требует для работы установленного веб сервера, интерпретатора Java и СУБД MySQL. Сервер СУБД и веб-сервер могут быть установлены на разных компьютерах.
Для создания продукта применялся фреймворк Spring [220], язык Java для программирования основной функциональной части. Для доступа к данным используется драйвер mysql-connector-java, используемый в пуле c3p0. Для создания шаблонов страниц использовался шаблонизатор thymeleaf [223].
Программный модуль предназначен для обеспечения сетевыми функциями системы обработки ТЭД.
Сетевые функции предоставляются пользователю по схеме запрос-ответ. Основные запросы клиента могут быть следующих видов:- обработка ТЭД (загрузка, хранение, получение и др.), полученных в ходе клинической практики пользователя;
- ведение списка пациентов, у которых необходимо определить склонности к работе в МЧС;
- обработка информации о тестах и методики тестирования, которые могут быть использованы;
- ведение списка тестов.
Основные ответы от сервера клиенту веб-сервиса могут быть следующих видов:
- получение информации о тестах профпригодности работников МЧС;
- ведение списка тестируемых;
- ведение списка тестов, которые могут быть использованы для работников МЧС;
На основе вышеперечисленных требований составим блочную структуру программного обеспечения. Блочная структура должна отражать логическую структуру программного обеспечения и связи между модулями программного обеспечения. Ее можно представить в виде схемы, показанной на рисунке 6.2.
Рисунок 6.2 - Структура программного обеспечения веб-сервиса
Программное обеспечение состоит из следующих логических блоков:
-контроллер запросов;
-сервисный слой;
-репозиторий;
-доменный слой;
-утилиты;
-объекты передачи данных.
Все запросы, поступающие из внешней среды, перенаправляются в блок авторизации Security, который является частью фреймворка Spring. Работа в системе неавторизованных пользователей запрещена. Пользователям будет предложено зарегистрироваться, или войти в систему используя свой логин и пароль.
Контроллер запросов, обрабатывающий http-запросы пользователя, перенаправляет эти запросы на уровень бизнес-логики и формирует ответы пользователю в виде параметров модели представлений. Ответы формируются шаблонизатором на основе библиотеки thymeleaf [223]. Контроллер запросов изменяет параметры представлений или напрямую, или с помощью объектов передачи данных из модуля объектов передачи данных.
Блок описания объектов передачи данных выполняет функции сериализации данных в/из слоя представлений, необходим для маршалинга данных.Сервисный слой необходим для реализации бизнес-логики, обработки и трансляции передаваемых данных с уровня представлений на уровень данных.
Пакет описания репозиториев служит для хранения сущностей, необходим для формирования интерфейсов доступа к данным предметной области посредством стандартных JPA-интерфейсов с формированием CRUD-модели хранения данных.
Блок доменного уровня сущностей необходим для представления сущностей предметной области в таблицах реляционной базы данных с указанием взаимосвязей между сущностями.
Блок утилит содержит процедуры маппинга (проецирования) данных из сервисного слоя в слой репозиториев и обратно, классов задания ролей в базе данных, а также некоторых вспомогательных классов имплементирующих различные сервисные процедуры.
Блок настройки и инициализации необходим для настройки параметров приложения. Содержит следующие процедуры:
1. Процедура инициализации контекста приложения - необходима для настройки параметров многоязыковой поддержки и загрузки файлов, подключения основных компонент и сборки каркаса приложения, а также определения параметров окружения и места хранения статических ресурсов.
2. Процедура настройки параметров доступа к базе данных - необходима для конфигурации драйверов подключения к базе данных, настройки пула драйверов подключения, настройки менеджера персистентности, запуска менеджера транзакций.
3. Процедура инициализации секьюрити-менеджера - необходима для настройки уровней доступа, списка защищаемых контроллеров, определения точки входа в приложение и страниц авторизации.
4. Процедура настройки параметров шаблонизатора - необходима для задания путей шаблонов представлений, указания типа продукта шаблонизации и параметров кэша.
Веб-сервиса включает следующие элементы:
-персональный компьютер;
-базу данных удаленного пользователя (сегмент в базе данных СППР);
-программный модуль для формирования принятия решений (зеркальное отражение блоков принятия решений в подсистеме принятия решений);
-программный модуль агрегирования решений (зеркальное отражение блока заключений в подсистеме принятия решений).
Проведя работу по оценки необходимой мощности вычислительных средств для решения поставленных задач, были предложены рекомендации по выбору персонального компьютера. Персональный компьютер рекомендуется использовать со следующими параметрами:
-от 3 Гб оперативной памяти, например память 8 шт. Kingston
ValueRAM DDR-III DIMM 8Gb ECC Registered with Parity CL11;
-процессор семейства х86-64 с частотой не ниже 1 ГГц., например 2 шт. CPU Intel Xeon E5-2630 V2 2.6 GHz/6core/1.5+15Mb/80W/7.2 GT/s LGA2011;
-жесткий диск объемом не менее 30 Гб, например 2 шт. HDD 2 Tb SATA 6Gb/s Western Digital RE 3.5" 7200rpm 64Mb. Рекомендуемая программная конфигурация приведена ниже:
-виртуальная машина Java v7;
-СУБД MySQL v5;
-программная платформа MATLAB R2014a;
-веб-браузеры Mozilla Firefox, Google Chrome, Internet Explorer как программы-клиенты пользователей.
После выбора конфигурации программной платформы обоснуем выбор операционной системы.
Выбор программной платформы обуславливает выбор операционной системы. Отметим, что из-за кроссплатформенности частей выбранная программная платформа может быть запущена как на операционной системе из ряда Windows, так и на операционной системе из ряда Linux. Причем как на серверных операционных системах, так и на пользовательских операционных системах. Главное требование - это поддержка протокола TCP/IP и возможность запуска приведенной программной конфигурации, чему удовлетворяют все вышеприведенные семейства операционных систем.
Для администрирования СУБД рекомендуется установить на сервер phpMyAdmin.
Для корректной работы программного обеспечения должны быть выполнены следующие условия: доступность сервера через сеть Internet, а также развернута СУБД и создана база данных. Если в базе данных первоначально не было необходимых таблиц, то JPA-менеджер создаст необходимые таблицы и связи между ними.
Сформируем входные данные программного обеспечения.
К входным данным программного обеспечения относят:
-базовый URL-адрес сервера;
-адрес сервера баз данных;
-имя базы данных;
-имя пользователя базы данных и его пароль;
-максимально допустимый размер загружаемых файлов.
Данные, поступающие от пользователей:
-ФИО;
-логин;
-пароль;
-данные об используемых тестах;
-данные о тестируемых;
-данные о методах принятия решений (решающих правилах).
Все запросы от пользователей отправляются по протоколу http. Форматы запросов приведены далее.
Адрес и поля запроса «Вход в систему» представлены на рисунке 6.3.
Для выхода из системы необходимо направить get-запрос по адресу /logout.
Адрес - /login
Имя пользователя
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" j_username\"
Пароль
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" j_password\"
Рисунок 6.3 - Адреса и поля запроса «Вход в систему»
На рисунке 6.4 представлены поля и адрес запроса «Регистрация в системе».
Адрес - / /signup
Имя
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=∖" firstName∖"
Фамилия
ContentTypeHeader - text/plain ContentDispositionHeader - form-data; name=\" lastName\"
Логин
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" username\"
Пароль
ContentTypeHeader - text/plain ContentDispositionHeader - form-data; name=\" password\"Пароль еще раз
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=∖" repassword∖"_________
Рисунок 6.4 - Поля и адрес запроса «Регистрация в системе»
Для получения списка используемых тестов get-запрос на адрес /medications/get.
Для создания описания нового теста используется POST-запрос на
адрес /medications/create. Адрес и поля этого запроса приведены на рисунке
6.5.
Адрес - /medications/create
Наименование
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\"name \"
Описание
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\"description \"
Тип
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\"type \"
Рисунок 6.5 - Адрес и поля запроса для создания описания нового
теста или метода
Для редактирования описания нового метода используется GET-запрос на адрес /medications/ edit.
Адрес и поля этого запроса приведены на рисунке 6.6.Адрес - /medications/ edit
Идентификатор
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\"id \"
Рисунок 6.6 - Адрес и поля запроса «редактирование существующего описания нового метода»
Для удаления описания нового теста используется GET-запрос на адрес /medications/ delete. Адрес и поля этого запроса приведены на рисунке 6.7.
Адрес - /medications/ delete
Идентификатор
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\"id \"
Рисунок 6.7 - Адрес и поля запроса «удаление существующего теста»
Для получения списка применяемых тестов используется get-запрос на адрес / prescriptions /get.
Для создания нового метода используется POST-запрос на адрес / prescriptions /create.
Адрес и поля этого запроса приведены на рисунке 6.8.
Адрес - / prescriptions /create
Доза
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=∖" doze ∖"
Описание
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=∖"description ∖"
пациент
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=∖"patient _id\"
Лекарство
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" medication _id\"
Рисунок 6.8 - Адрес и поля запроса «создание нового метода»
Для редактирования метода используется GET-запрос на адрес / prescriptions / edit. Адрес и поля этого запроса приведены на рисунке 6.9.
Адрес - / prescriptions / edit
Идентификатор
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=∖"id ∖"________________________________
Рисунок 6.9 - Адрес и поля запроса «редактирование существующего метода»
Для удаления метода используется GET-запрос на адрес / prescriptions / delete. Адрес и поля этого запроса приведены на рисунке 6.10.
Адрес - / prescriptions / delete
Идентификатор
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=∖"id \"________________________________
Рисунок 6.10 - Адрес и поля запроса «удаление существующего лекарственного назначения»
Для получения списка описания кандидатов используется get-запрос на адрес / patients /get.
Для создания нового описания пациента используется POST-запрос на адрес / patients /create.
Адрес и поля этого запроса приведены на рисунке 6.11.
Адрес - / patients /create
Имя
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" firstname \"
Фамилия
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" lastname \"
Отчество
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" middlename \"
Дата рождения
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=∖" birth ∖"Пол
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=∖" male ∖"______________________________
Рисунок 6.11 - Адрес и поля запроса «создание нового описания
пациента»
Для редактирования описания пациента используется GET-запрос на
адрес / patients / edit. Адрес и поля этого запроса приведены на рисунке 6.12.
Адрес - / patients / edit Идентификатор ContentTypeHeader - text/plain ______ ContentDispositionHeader - form-data; name=∖"id ∖"________________________________
Рисунок 6.12 - Адрес и поля запроса «редактирование существующего
описания пациента»
Для удаления описания пациента используется GET-запрос на адрес / patients / delete. Адрес и поля этого запроса приведены на рисунке 6.13.
Адрес - / patients / delete
Идентификатор
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=\"id \"________________________________
Рисунок 6.13 - Адрес и поля запроса «удаление существующего описания пациента»
Для получения списка изображений используется get-запрос на адрес / pictures /get.
Для создания нового описания обучающей выборки используется POST-запрос на адрес / pictures /create. Для загрузки файла обучающей выборки на сервер используется POST-запрос на адрес / pictures /upload с параметром MultipartFile. Адрес и поля запроса для создания нового описания обучающей выборки приведены на рисунке 6.14.
Адрес - / pictures /create
Имя
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" name \"
Локатор ресурса
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" url \"
Путь к файлу
ContentTypeHeader - text/plain
ContentDispositionHeader - form-data; name=\" path \"
Пациент
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=\" patient_id \"__________________________
Рисунок 6.14 - Адрес и поля запроса «создание нового описания обучающей выборки»
Для редактирования описания обучающей выборки используется GET-запрос на адрес / pictures / edit. Адрес и поля этого запроса приведены на рисунке 6.15.
Адрес - / pictures / edit
Идентификатор
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=∖"id ∖"________________________________
Рисунок 6.15 - Адрес и поля запроса «редактирование существующего описания изображения»
Для удаления описания обучающей выборки используется GET-запрос на адрес / pictures / delete. Адрес и поля этого запроса приведены на рисунке
6.16.
Адрес - / pictures / delete
Идентификатор
ContentTypeHeader - text/plain
______ ContentDispositionHeader - form-data; name=∖"id ∖"________________________________
Рисунок 6.16 - Адрес и поля запроса «удаление существующего описания обучающей выборки»
Сформулируем требования к выходным данным программного тобеспечения.
К выходным данным программы можно отнести следующее:
- html-страницы, содержащие информацию по запросу пользователя;
- файлы обучающих выборок и файлы ТЭД;
- ответы системы в случае возникновения ошибок.
В случае возникновения ошибок возвращаются следующие сообщения с соответствующими кодами HTTP-ответа (отличным от 200):
Ошибка запрета доступа error.access.denied. Сообщение: «Доступ не разрешен. У вас недостаточно прав для доступа!».
Ошибка неверного запроса пользователя error.BadRequest. Сообщение: «Неправильный запрос. Проверьте данные.».
Внутренняя ошибка сервера error.InternalServerError. Сообщение: «Внутренняя ошибка сервера».
Недопустимые данные error.WrongData. Сообщение: «Проверьте вводимые данные.».
Неправильный логин или пароль status.login.failure. Сообщение: «Не могу войти. Проверьте имя и пароль!».
Совпадение логина status.signup.invalid.username.duplicate. Сообщение: «Такой логин уже занят!».
Несоответствие паролей на форме ввода пользователя status.signup.invalid.password.notmatching. Сообщение: «Пароли не соответствуют друг другу!».
6.3
Еще по теме Веб-сервис:
- список работ, опубликованных по теме диссертации
- 3.2 Снижение порога доступа к тестированию на ВИЧ
- 1 Значения деловых совещаний в менеджменте сервиса и туризма
- 1.2 Обзор основных задач, классификаций деловых совещаний и их роль в менеджменте сервиса и туризма.
- Претворение в жизнь маркетинговых мероприятий
- Общие сведения о глобальной сети Internet
- Сервисное программное обеспечение
- Киваев A.A., Шапиро Б.И.. Контактная коррекция зрения - Москва, ЛДМ Сервис,2000. - 224 c., 2000
- Проблемы обеспечения качества медицинской помощи детям
- Глава 7. Инфекции и рак
- Веб-сервис
- Чернышова Ольга Викторовна. ПСИХОЛОГИЧЕСКИЕ ФАКТОРЫ ЭФФЕКТИВНОСТИ ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ МАСТЕРОВ-КОНСУЛЬТАНТОВ СЕРВИСНЫХ ЦЕНТРОВ АВТОМОБИЛЬНЫХ КОМПАНИЙ. АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата психологических наук. ТВЕРЬ - 2014, 2014
- ОБЩАЯ ХАРАКТЕРИСТИКА ИССЛЕДОВАНИЯ
- ОСНОВНОЕ СОДЕРЖАНИЕ ДИССЕРТАЦИИ
- ЧЕРНЫШОВА ОЛЬГА ВИКТОРОВНА. ПСИХОЛОГИЧЕСКИЕ ФАКТОРЫ ЭФФЕКТИВНОСТИ ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ МАСТЕРОВ - КОНСУЛЬТАНТОВ СЕРВИСНЫХ ЦЕНТРОВ АВТОМОБИЛЬНЫХ КОМПАНИЙ. Диссертация на соискание учёной степени кандидата психологических наук. Тверь - 2014, 2014
- ВВЕДЕНИЕ
- Анализ факторов, обусловливающих потребность практики сервисных центров автомобильных компаний в повышении эффективности профессиональной деятельности мастеров - консультантов