Проектирование информационной системы "Единая диспетчерская служба скорой помощи"

Характеристика методики проектирования архитектуры автоматизированной системы и создания ее макета. Изучение необходимости разработки технического решения по созданию конечной автоматизированной системы "Единая диспетчерская служба скорой помощи".

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.08.2018
Размер файла 4,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

служба диспетчерский помощь скорый

Аннотация

Целью данной работы является проектирование архитектуры автоматизированной системы и создания ее макета. Основной задачей АС является автоматизация работы оператора скорой помощи, система заменяет весь процесс от вызова кареты до ее приезда. В ходе работы был изучены текущий процесс деятельности, после чего был проведен анализ существующей автоматизированных системы на полное соответствие процессу. Далее были формализованы функции, необходимые к автоматизации и разработано техническое решение по созданию конечной автоматизированной системы. Техническое решение содержит описания функционала, обеспечивающего надежность и высоконагруженность.

В результате работы получена работоспособная система, состоящая из веб-сервиса и базы данных. В дальнейшем будет проведена модернизация системы путем обеспечения интеграциями со сторонними информационными системами.

Объем работы составляет 31 страницу, включая титульный лист, аннотацию, оглавление и приложение. Выпускная квалификационная работа содержит 9 иллюстрацию, 5 таблицы, демонстрирующих структуру базы данных, а также топологию системы. В работе использовано 16 информационных источника.

Abstract

The aim of this work is to design the architecture of an automated system and create its layout. The main task of the System is to automate the work of the ambulance operator, the system replaces the entire process from calling the coach to her arrival. In the course of the work, the current process of activity was studied, after which the analysis of existing automated systems for full compliance with the process was carried out. Further, the functions necessary for automation were formalized and a technical solution was developed to create the ultimate automated system. The technical solution contains descriptions of the functional ensuring reliability and high load.

As a result of the work, a workable system consisting of a web service and a database was obtained. In the future, the system will be upgraded with subsequent integration with third-party information systems.

The scope of work is 31 pages, including a cover page, an annotation, a table of contents and an annex. Graduation qualification work contains 9 illustration, 5 tables showing the structure of the database, as well as the topology of the system. 16 resources are used in the work.

Оглавление

Введение

1. Анализ текущей ситуации в сфере. Причины необходимости создания системы

1.1 Основные программные решения, эксплуатирующийся в сфере медицинской скорой помощи

1.2 Преимущества АС «Единая Диспетчерская Служба Скорой Помощи»

1.3 Последствия реализации АС

2. Прикладные решения

2.1 Алгоритм нормализации симптомов

2.2 Алгоритм ранжирования запросов

2.3 Алгоритм назначения запроса в работу

3. Архитектурное решение

3.1 Кластерная Архитектура

3.2 Гео-резервирование

3.3 Многоблочность

3.4 Особый пассивный блок Reserve

3.5 Кэширование запросов на стороне клиента

3.6 Схема топологии АС

3.7 ER-диаграмма базы данных

4. Макеты приложения

4.1 Пользовательский интерфейс клиентского мобильного приложения

4.2 Пользовательский интерфейс приложения бригады

5. Результаты тестирования

5.1 Функциональное тестирование

5.2 Нагрузочное тестирование

Заключение

Список использованных источников

Введение

В данном разделе раскрыта актуальности выбранной темы, цель создания и назначение АС «Единая Диспетчерская Служба Скорой Помощи». Помимо этого, представлена концепция приложения.

Актуальность разработки и цели создания Системы

Пререквизитами создания АС являются несколько фактов:

Массовая автоматизация и внедрения АС в коммерческие проекты.

В век информационных технологий и массовой автоматизации почти не осталось сфер, работающих по "старым методам". Плюсы внедрения АС очевидны: повышение эффективности, снижение ошибок. Тренд быстро проник в мировые тенденции. Автоматизация затронула почти все сферы жизни человека: заводы, банки, магазины, однако все сферы, относящиеся к коммерческой деятельности. Однако, по каким-то причинам автоматизация лишь немного коснулась социальной сферы деятельности.

Социальная составляющая.

В социальной сфере жизни человека отсутствует возможность получения быстрой прибыли. Поэтому и финансовый вклад в эту область мал. По данным [3] на 2010 год объем вложений достигал 45 триллионов долларов по всему миру. Тем ни менее, эта сфера жизни сильно нуждается во внедрении систем автоматизации. С ростом городов растет и нагрузка на социальные службы. Чтобы сохранить баланс и производительность необходимо переходить к новым методам работы.

Отсутствие аналогичных решений на рынке.

В своем проекта я рассмотрел одну из самых очевидных сфер жизни человека - медицина, а именно скорая медицинская помощь. Медицинская помощь по вызовы работает круглосуточно, она принимает на себя большую нагрузку и ответственность, и тем ни менее до сих пор остается отсталой от мира современных технологий.

В рамках работы был проведен анализ АС, уже существующий на рынке, в чьи функции входила бы автоматизация всего процесса работы оператора скорой помощи. Из 4 найденных ИС, ни одна не ставит перед собой цель автоматизации всего процесса. В п. 2 представлено развернутое сравнение параметров систем и их возможностей. Ни одна из существующих ИС не покрывает весь процесс вызова скорой помощи, от самого вызова до приезда бригады. Каждая система создана в помощь оператору, и не может заменить его.

Сокращение финансовых и нефинансовых издержек

Проектируемая АС «ЕДССП» разрабатывается с целью полной замены оператора и координатора бригады скорой помощи. Она покрывает весь процесс от вызова человеком кареты, до прибытия бригады. Это позволяет сократить персонал отделения, сократив тем самым финансовые издержки. Более того за счет автоматизации процесса минимизируется вероятность ошибки, а за счет использования алгоритмов снижает время прибытия кареты. Масштабируемость и надежность позволяет увеличить объем обрабатываемых запросов.

Оптимизация процесса и удобство.

За счет использования современных способов коммуникации, человеку достаточно открыть приложение, ввести что с ним случилось и отправить запрос. Знание успокаивает, это доказала компания UBER, предоставив своим клиентам, информацию о местоположении автомобиля в режиме реального времени. Аналогичное решение применяется в АС «ЕССПД», это поможет сократить случае застраивания кареты из-за трафика во дворах.

Назначение Системы

АС «Единая Диспетчерская Служба Скорой Помощи» предназначена для полной автоматизации процесса вызова бригады скорой помощи. Начиная от звонка в 03 или 112, и заканчивая приездом конкретной кареты [6]. К функционалу системы относится:

Вызов бригады скорой помощи;

Управление очередью заявок и приоритезация обращений по тяжести;

Автоматическое назначение обращения бригаде;

Отслеживание свободных бригад по участкам;

Передача информации бригаде;

Ведение реестра обращений.

Концепция приложения

В концепции представлены кейсы взаимодействия с системой как со стороны пользователя, так и со стороны бригады скорой помощи [7].

Пользовательский сценарий:

Вход в приложение

Заполнение полей:

Симптомы;

Возраст - полоса с четырьмя делениями 0-20|20-60|60-80|80-100 (заполняется автоматически);

ФИО (заполняется автоматически);

Номер моб. Телефона (заполняется автоматически);

Местоположение (заполняется автоматически) [15];

Вызывая для себя или для другого человека.

Нажатие кнопки "Вызов"

Отображение советов по оказанию первой помощи до приезда мед. команды

Отображается карта с иллюстрацией движения автомобиля скорой

Сценарий сотрудников бригады кареты скорой помощи:

Приходит уведомление о назначении вызова;

Мед. бригада видит симптомы, адрес клиента, его ФИО и номер телефона;

По приезду на место бригада уведомляет об этом;

При завершении вызова бригада уведомляет об этом.

1. Анализ текущей ситуации в сфере. причины необходимости создания системы

1.1 Основные программные решения, эксплуатирующийся в сфере медицинской скорой помощи

На текущий момент многие отделения неотложной помощи озаботились вопросом автоматизации. Спрос рождает предложение, многие компании разработчики программного обеспечения предлагают свои продукты автоматизации. На рынке представлено порядка 10 продуктов, от разных компаний в той или иной степени решающих вопрос автоматизации скорой помощи. Однако большая часть из них предоставляет только инструменты учета времени и финансов, необходимые администраторам. Задача данной работы в проектировании инструмента для людей.

Таким образом, не все программные продукты, представленные на рынке, подходят под такие задачи. К инструментам, косвенно соответствующих поставленной задаче можно отнести следующие:

ИС «Скорая помощь».

Наиболее инструмент в исследуемой области. Данный программный пакет покрывает наибольший спектр задач процесса вызова бригады [1]. К этому списку относится:

Таблица 1 Ключевые особенности ИС «Скорая помощь»

Компания

Группа компаний «Электронная медицина»

Название программного продукта

Информационная система «Скорая помощь»

Функции

Регистрация вызова;

Распределение вызова;

Формирование графиков нарядов;

Учет медикаментов;

Формирование отчетов.

Преимущества

Отображение вызова на карте (диспетчеру);

Приоритезация вызовов (только по типу неотложности);

Запись телефонного разговора;

Фиксация времени по форме №110/у;

Формирование отчетных выгрузок;

Учитывает факт задержки вызова.

Недостатки

Карта с гео-позицией отображается только диспетчеру;

Алгоритм приоритезации отсутствует. Заявки сортируются только по типу неотложности;

Необходимость диспетчера;

Не влияет на процесс со стороны населения;

Не учитывает надежность.

ИБИС «Скорой медицинской помощи».

Продукт компании «Облачные технологии». Наряду с ИС «Скорая помощь» Ставит перед собой задачи облегчения жизни отделению скорой помощи [2]. Основной упор развития системы делается на помощь диспетчеру.

Таблица 2 Ключевые особенности ИБИС «СПМ»

Компания

ООО «Облачные технологии»

Название программного продукта

ИБИС «Скорой медицинской помощи»

Функции

Регистрация вызова диспетчером;

Распределение потока заявок между диспетчерами;

Формирование отчетных выгрузок.

Преимущества

Помощь в приоритезации вызова на основе уточняющих вопросов;

Фиксирование адресу с помощью КЛАДР;

Запись диалога;

Фиксация времени по форме №110/у;

Возможность быстрого дублирования повторного вызова;

Возможность быстрого вызова нескольких бригад на одну заявку в случаи больших инцидентов;

Контроль повторяемых вызовов;

Возможность работы в случаи выхода из строя сетевого оборудования.

Недостатки

Необходимость диспетчера;

Не влияет на процесс со стороны населения;

Не учитывает надежность;

Нет связи с бригадами карет.

АСУ «Скорая помощь».

Третий ключевой игрок на рынке. Данная АСУ предназначается для оптимизации работы станции скорой помощи [4]. Отличительной особенностью является возможность интеграции с другими продуктами компании в области безопасности жизнедеятельности. Такая связка помогает лучше отслеживать экстренные ситуации в территориальных объектах.

Таблица 3 Ключевые особенности АСУ «Скорая помощь»

Компания

АО ICL - КПО ВС

Название программного продукта

АСУ «Скорая помощь»

Функции

Регистрация вызова;

Распределение вызова;

Формирование отчетности.

Преимущества

Помощь в регистрации вызова;

Контроль временных затрат на вызов;

Анализ работы учреждения.

Недостатки

Необходимость диспетчера;

Не влияет на процесс со стороны населения.

Навигационно-информационная система «РКС Скорая помощь»

Последний программный продукт «РКС Скорая помощь» максимально полностью охватывает спектр задач скорой медицинской помощи [5]. Упор сделан на работу с каретой скорой помощи, а также фиксацию всех действий бригады.

Таблица 4 Ключевые особенности «РКС Скорая помощь»

Компания

АО «Российские космические системы»

Название программного продукта

НИС «РКС Скорая помощь»

Функции

Учет транспортных средств скорой помощи;

Отображение положения карет на карте;

Назначение бригады на вызов;

Фиксация времени этапов.

Преимущества

Контроль состояния ТС;

Мониторинг времени прибытия;

Анализ работы учреждения;

Управление статусами бригады;

Управление карточками вызовов;

Ретроспективный анализ движения ТС;

Регистрация опозданий на обращения.

Недостатки

Необходимость диспетчера;

Не влияет на процесс со стороны населения.

1.2 Преимущества АС «Единая Диспетчерская Служба Скорой Помощи»

Исходя из предыдущего пункта, можно сделать вывод, что ни один из рассмотренных продуктов не ставит перед собой задачу замены диспетчера. Все АС в той или иной степени являются инструментами в помощь диспетчеру и бригаде кареты. Для полного анализа ниже представлены функции и преимущества АС ЕДССП.

Таблица 4 Сравнение АС по ключевым параметрам

ИС «Скорая помощь»

БИС «Скорой медицинской помощи»

АСУ «Скорая помощь»

«РКС Скорая помощь»

АС «ЕДССП»

Автоматизация полного процесса

Отсутствует. Каждая исследуемая АС рассчитана на помощь диспетчеру, а не пользователю.

Вызов всегда принимает диспетчер, однако далее он регистрируется в соответствующей АС;

Для пользователя точкой входа так и остается телефон.

Разрабатываемая АС полностью ориентирована на помощь пользователю. Основная концепция -- это замена диспетчеров скорой помощь, где ЕДССП выступает в роли куратора, сопровождая заявку от пользователя до бригады кареты скорой помощи.

Отказоустойчивость

Программные продукты не предоставляют инструментов и средств, обеспечивающих отказоустойчивость. Такая система является важной точкой взаимодействия, и выход ее простой может стоить не денег, а жизней людей.

Проведено исследование на тему надежности, заимствованы лучшие мировые практики. Архитектура системы призвана обеспечить надежность в 99,99% в год.

Интеллектуальная обработка запросов

Только ИС «Скорая помощь» предлагает своим пользователем возможность автоматической сортировки заявок. Однако этот алгоритм базируется на простейшей логике весов, что не гарантирует корректного распределения. Остальные АС не предоставляют такую возможность.

Автоматическая приоритезация запросов является важным компонентом системы. Ее алгоритм базируется на критичности симптомов и возрасте пострадавшего. Алгоритм описан в пункте ниже.

Стоимость

Все рассматриваемые АС платные. На них распространяется коммерческая лицензия.

Open-Source. Отсутствие лицензии на продукт

Исходя из таблицы выше видно, что существующие АС проигрывают по ключевым параметрам разрабатываемой. Главное преимущество АС «ЕДССП» - полная автоматизация процесса в сочетании с надежностью и отказоустойчивостью. Этот факт говорит о явной потребности рынка в разрабатываемой АС.

1.3 Последствия реализации АС

По предварительным расчётам, реализация и внедрение «Единой Диспетчерской Службы Скорой Помощи» отразиться на следующих показателях:

Качество предоставление услуг скорой помощи

Под этим фактором понимается общая удовлетворенность потребителей. По данным из общественного социологического исследования [3], на 2015 год меньше половины людей удовлетворены услугами скорой помощи. Разрабатываемый сервис повысит уровень качества предоставляемых услуг, путем информатизации.

Минимизация количества ошибок

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

Устранения риска человеческого фактора

Человеческий фактор играет значимую роль в процессе. Именно человек является промежуточным звеном при передаче и обработки информации. В связи с этим существует большой риск ошибки. Множество случаев, освещенных в СМИ, свидетельствуют о халатности диспетчеров. Замена человека машинными алгоритмами позволит полностью устранить этот фактор.

Снижение расходов отделения скорой помощи

Полный переход на АС позволит сократить расходы на содержание штата диспетчеров, и полностью возьмет на себя их роль в процессе. Так как АС разрабатывается на альтруистических началах, необходимы финансовые вложения только на этапе внедрения.

Уменьшение тяжелых последствий из-за опоздания кареты

СМИ неоднократно освящало случаи, когда карета скорой помощи не смогла доехать до пострадавших из-за дорожных заторов. Разрабатываемая АС предоставляет информирование пользователя о положении кареты, и в случае возникновения проблем человек может выйти на встречу кареты.

2. Прикладные решения

2.1 Алгоритм нормализации симптомов

Первым шагом всего процесса является заполнение симптомов. Так как дальнейший анализ анкеты и ранжирование ее в очереди производится автоматически, важно иметь валидные данные.

За основу взят обзор алгоритмов [16]. В качестве инструмента формализации входных данных выбран предиктивный ввод. Сам механизм предиктивного ввода реализуется при помощи метода нагруженного дерева (анг. tries).

Нагруженное дерево - является своего рода деревом поиска, упорядоченной структурой данных дерева, которая используется для хранения динамического набора или ассоциативного массив, где ключи обычно являются строками [17]. В отличие от дерева двоичного поиска ни один узел в дереве не сохраняет ключ, связанный с этим узлом; вместо этого его позиция в дереве определяет ключ, с которым он связан. Все потомки узла имеют общий префикс строки, связанной с этим узлом, а корень связан с пустой строкой. Значения не обязательно связаны с каждым узлом.

На Рисунок 1 Нагруженное дерево. ключи перечислены в узлах и значениях ниже них. Каждое полное слово имеет произвольное целочисленное значение, связанное с ним. Нагруженное дерево можно рассматривать как древовидный детерминированный конечный автомат. Каждый конечный язык порождается автоматом trie, и каждый trie может быть спрессован в детерминированный ациклический автомат конечного состояния.

Рисунок 1 Нагруженное дерево.

Поиск данных в trie быстрее в худшем случае, O (m) time (где m - длина строки поиска) по сравнению с несовершенной хэш-таблицей. У несовершенной хеш-таблицы могут быть ключевые коллизии. Ключевое столкновение -- это хеш-функция, отображающая разные ключи в одну и ту же позицию в хеш-таблице. Наихудшая скорость поиска в несовершенной хеш-таблице -- это время O (N), но гораздо более типично O (1), с O (m) временем, потраченным на оценку хэша.

В trie нет столкновений разных ключей.

Сам поиска слова по ключу представлен на Рисунок 2 Поиск значения в дереве.

В качестве входных данных предстает статический словарь с симптомами. Каждый симптом является ключом для дерева.

Рисунок 2 Поиск значения в дереве

Для реализации алгоритма используется библиотека autocomleate разработанная Vivek Narayanan и лицензированная BSD [14].

2.2 Алгоритм ранжирования запросов

Следующим этапом процесса является ранжирование запроса для постановки его в очередь.

В качестве метода ранжирования используется метод ранжирования с весами из теории принятия решений [12]. В качестве входных данных выступает справочник симптомов, аналогичный тому, который используется для нормализации симптомов ввода.

Справочник содержит в себе соответствие симптома и его вес. При получении заявки анализируется симптом, находится его весовой коэффициент и далее умножается на возраст. Исходя из возрастной категории и симптома проставляется тип бригады: детская, обычная или реанимация. Схема процесса представлена на Рисунок 3 Ранжирование заявки.

Рисунок 3 Ранжирование заявки

2.3 Алгоритм назначения запроса в работу

Последним этапом процесса является назначение заявки на рабочую бригаду. Для этого шага входными параметрами является заявка и бригады. Алгоритм назначения заявок в контексте приложения и БД представлен ниже и на Рисунок 4 Алгоритм назначения заявки на бригаду:

Отбираются все заявки с пустым ASSIGNED_DATE;

Полученное множество сортируется сначала по RATING, далее по CREATION_DATE. Вторая сортировка позволяет выстроить очередь из одинаковых по весу заявок;

Отбирается поочередно заявки из очереди;

Для заявки проверяется наличие свободной бригады IS_AVALIBALE='1' в данном секторе SECTOR_ADDRESS=SECTOR подходящей под вызов TYPE=TYPE;

Если не нашли сектор, проверяем наличие в соседнем SECTOR_NEIGHBOR_MAP;

Если не нашли подходящий тип ищем по восходящей по правилу

Детский врач только к детским вызовам;

Общий врач к Общим и Детским;

Реанимация ко всем;

При нахождении совпадения, заполняется поле BRIGADE_ID и ASSIGNED_DATE;

При отсутствии заявка возвращается в очередь до следующего работы задачи.

Рисунок 4 Алгоритм назначения заявки на бригаду

3.Архитектурное решение

3.1 Кластерная Архитектура

Сервис вызова скорой помощи должен иметь доступность 24 часа в сутки 7 дней в неделю. АС, призванная заменить текущий процесс, также должна обеспечивать круглосуточную доступность. Это требование к надежности в 99.99% доступности системы в год [8].

Первым способом достижения показателя в 99.99 является использования кластеризации серверов приложений [13] Рисунок 5 Кластеризация серверов приложений. Кластеры высокой доступности (также известные как отказоустойчивые кластеры) представляют собой группы компьютеров, которые поддерживают серверные приложения, которые могут быть надежно использованы с минимальным временем простоя. Они работают с использованием программного обеспечения высокой доступности для использования избыточных компьютеров в группах или кластерах, которые обеспечивают продолжение обслуживания при сбое системных компонентов. Без кластеризации, если сервер, на котором работает конкретное приложение, аварийно завершает работу, приложение будет недоступно до тех пор, пока поврежденный сервер не будет исправлен. Кластеризация устраняет эту ситуацию, обнаруживая ошибки аппаратного и программного обеспечения и сразу же перезапуская приложение в другой системе, не требуя административного вмешательства, процесс, известный как переход на другой ресурс. В рамках этого процесса программное обеспечение кластеризации может настроить узел перед запуском приложения на нем. Например, возможно, потребуется импортировать и смонтировать соответствующие файловые системы, возможно, потребуется настроить сетевое оборудование, и некоторые поддерживающие приложения могут также работать.

В реализациях кластера пытаются создать избыточность в кластере для устранения единичных точек отказа, включая множественные сетевые соединения и хранилище данных, которые избыточно связаны через сети хранения данных.

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

Использование кластерной архитектуры обеспечит следующие плюсы:

Балансировка нагрузки между серверами приложений;

Плавное разделение нагрузки между серверами;

Нет потери производительности при выходе из строя сервера приложения;

Горизонтальное масштабирование;

Централизованное конфигурирование серверов.

Рисунок 5 Кластеризация серверов приложений

3.2 Гео-резервирование

Следующим важным механизмом обеспечения надежности является гео-резервирование серверов приложений между несколькими ЦОДами. Это избавляет от возможных проблем на площадке ЦОД. Резервирование будет обеспечено следующим образом:

Для серверов приложений. Каждая пара серверов в кластере резервируется в разных ЦОДах. Другими словами, всегда есть зеркальный дубль сервера приложения, находящийся на другой площадке.

Для базы данных. Резервирование БД обеспечивается механизмом Oracle GoldenGate. Данный продукт позволяет реплицировать данные в режиме реального времени. В итоге активная база данных находится на одной площадке ЦОД, при этом все данные из нее реплицируются в ее резервную копию, располагающуюся на серверах другого ЦОД. При выходе из строя активной БД data source серверов приложений переключается на работу с другой БД. Таким образом вероятность выхода из строя системы по причинам проблем на площадке ЦОД, либо природных катаклизмов сведена к минимуму. При необходимости можно резервироваться тремя и более ЦОДами.

3.3 Многоблочность

В пункте Кластерная Архитектура было рассмотрено объединение серверов приложений в кластеры и использование распределённых вычислительных ресурсов. Это хорошо работает для серверов приложений, так как максимальная потеря для клиентов -- это прерывание сессии. Сервера приложений хранят локальную информацию и работают независимо друг от друга. К сожалению, такого нельзя сказать про базу данных. Она всегда является «сердцем» АС и соответственно точкой отказа. При возникновении проблем на БД возникает недоступность всей АС. Более того горизонтально масштабировать БД сложно. Даже при увеличении серверов большой объем данных будет обрабатываться длительное время.

Для решения таких проблем придуман механизм многоблочности. Многоблочность предполагает собой разбиение топологии АС на одинаковые, но независимые блоки. Блок - это набор серверов приложений и база данных. Блок обеспечивает полный набор средств для работы пользователя. Он независим от других блоков, имеет собственные вычислительные ресурсы и гео-резервирование.

Таким образом, за счет блочного шардирования база данных перестает быть точкой отказа. В контексте разрабатываемой АС планируется наличие 2 активных блоков:

Node1 - IOS app, Android app.

Node2 - Web app, WinPhone app.

Это позволит распределить нагрузку пользователей. Привязка к блоку будет обеспечена URI контекстом запроса. Перед блоком находится сервер Nginx, обеспечивающий умную балансировку между блоками. Анализируя контекст запроса сервер nginx определяет группу балансировки с серверами. Однако в группу балансировки входит только сетевой адрес LB-балансировка - входной точки блока. Данная балансировка обеспечивает распределенную нагрузку на все кластеры с серверами приложений.

Блочная архитектура решает почти все задачи надежности:

Горизонтальное масштабирование;

Распределение нагрузки;

Нет единой точки отказа;

Простота конфигурирования.

3.4 Особый пассивный блок Reserve

Многоблочность решает почти все вопросы надежности, за исключением технологических окон для обновления ПО и проведения работ, а также при непредвиденных отказах полного блока.

С другой стороны, многоблочность уже обеспечивает все инструменты, для решения и этих вопросов. Для этого вводится особый третий блок «Reserve». Этот блок не обслуживает пользовательские запросы при штатной работе системы. Он вступает в роль при выходе из строя одного или всех основных блоков. В этом случае на балансировке выставляется признак необходимости маршрутизировать запросы на Reserve, и все клиентские запросы обрабатываются уже резервным блоком. В этот момент можно проводить работы на основных блоках, либо решать возникшие проблемы выхода АС из строя.

Этот блок должен иметь мощности в 2 раза больше основного блока. Также блок простаивает во время нормальной работы. Однако эта избыточность обусловлена тем, что во внештатной ситуации для пользователя не должно измениться поведение системы.

Еще одним преимуществом блока является возможность плавного обновления АС. При выходе новой версии приложения обновляется один активный блок, и при возникших проблемах, клиенты блока переводятся в Reserve до отката приложения на стабильную версию. Reserve должен иметь стабильную версию приложения, и обновляется в последнюю очередь.

С учетом многоблочной концепции, данные нововведения позволяют:

Обеспечить работу АС при выходе из строя основных блоков;

Обеспечить возможность проведения технологических работ без недоступности АС;

Обеспечить плавное обновление версии приложения.

3.5 Кэширование запросов на стороне клиента

Все описанные выше механизмы обеспечивают переключения на резервные мощности при отказе основных. Но в момент переключения могут возникать потери запросов. Если была отправлена заявка, а блок еще не ушел в режим Reserve, при этом обслуживать клиентов он уже не может. В таком случае запрос потеряется, а это может стоить человеческой жизни.

Для этого разработан механизм кеширования запросов на толстом клиенте. Для мобильных платформ клиентом выступает мобильное приложение, для веб пользователей - веб приложение, отображающее пользовательский интерфейс, и формируемое запросы на веб сервис. При формировании запроса он помещается в локальную кеш-память устройства или сервера приложений. Запрос находится там до тех пор, пока от приложения, обрабатывающее запросы не будет получен код 200 и сообщение с кодом успешной обработки.

В случае, если получено сообщение с ошибкой, либо достигнут таймаут и сообщение не получено, запрос отправляется заново. Данные механизм доката работает заданное количество попыток, и прозрачен для пользователя.

Таким образом пользователь отправил запрос один раз, и не должен контролировать дошел ли он до сервера или нет. Вся работа доката делегирована клиентским приложениям.

3.6 Схема топологии АС

С учетом всех вышеописанных механизмов обеспечения надежности на Рисунок 6 Топология АС представлена топология архитектура АС.

Рисунок 6 Топология АС

3.7 ER-диаграмма базы данных

База данных спроектирована под нужды хранения данных приложения, и не обеспечивает никакой прикладной логики. Эта дополнительная точка отказа, поэтому весь функционал реализуется прикладным кодом приложения, и не делегируется базе данных. Диаграмма БД представлена на Рисунок 7 ER-диаграмма БД.

Рисунок 7 ER-диаграмма БД

4. Макеты приложения

4.1 Пользовательский интерфейс клиентского мобильного приложения

Пользовательский сценарий в приложении разбит на 3 шага. На втором и третьем шаге есть возможность вызова еще одной кареты.

Первый шаг - ввод своих данных: симптомы, возраст, ФИО, адрес. Адрес на данном шаге определяется автоматически, и может быть скорректирован

Второй шаг - ожидание кареты. На этом шаге на карте видно перемещение кареты в режиме реального времени

Третий шаг - окончание вызова. Финальный шаг, уведомляющий, что бригада прибыла.

Рисунок 8 Макет мобильного приложения

4.2 Пользовательский интерфейс приложения бригады

Рисунок 9 Макет приложения для бригады

5. Результаты тестирования

5.1 Функциональное тестирование

В процессе разработки были созданы отдельные модули АС, без их совмещения. Поэтому под функциональным тестированием понимается модульное тестирование отдельно взятых компонентов АС. В Таблица 5 Результаты функционального тестирования представлены результаты с временным замером.

Таблица 5 Результаты функционального тестирования

Компонент АС

Функциональная часть

Результат тестирования

Время обработки, с

Клиентское приложение

Создание заявки

?

Сформирован json файл согласно структуре заявки.

{

"symptoms": [

"зубная боль",

"головная боль",

"насморк"

],

"age": 67,

"fullname": "Иванов Иван Иванович",

"coordinates": {

"latitude": "49.182080",

"longitude": "10.854476"

}

}

0.03

Получение ответа

?

Получен и обработан ответ.

{

"result": "SUCCSESS",

"displayText": 0

}

0.03

Докат при не успешном ответе

Через заданное в настройке время (1 секунда) был повторно отправлен запрос.

{

"symptoms": [

"зубная боль",

"головная боль",

"насморк"

],

"age": 67,

"fullname": "Иванов Иван Иванович",

"coordinates": {

"latitude": "49.182080",

"longitude": "10.854476"

}

}

0.03

Получение местоположения кареты

-

Данные не получены.

Веб сервис

Получение заявки

?

Получен json объект и помещен в кеш.

0.03

Расчет рейтинга

По полученным симптомам произведен поиск в справочнике, получены веса и произведен расчет рейтинга. Заявка сохранена в БД.

8

Назначение заявки на бригаду и передача данных

?

Проверка свободной бригады и передача json объекта.

{

"symptoms": [

"зубная боль",

"головная боль",

"насморк"

],

"age": 67,

"fullname": "Иванов Иван Иванович",

"coordinates": {

"latitude": "49.182080",

"longitude": "10.854476"

}

}

3

Приложение бригады

Получение данных

?

Получение и обработка данных.

0.03

Обмен данными местоположений

-

Неверно отправляются данные.

5.2 Нагрузочное тестирование

Нагрузочное тестирование проведено для проверки работоспособности механизмов надежности из главы 4. Нагрузочное тестирование проводится следующим образом: генерируется объект json заявки случайными данными в необходимом количестве на единицу времени. Объект посылаются на веб-сервис, который записывает результат в БД. Успешно обработанным запросом считается тот, в ответ на который получен статус SUCCESS. Ответ должен уложиться в timeout 10 секунд.

В качестве единицы сервера используется Raspberry Pi 3 Model B. Характеристики: 4 ядерный процессор Broadcom BCM2837 с тактовой частотой 1,2 ГГц, оперативной памяти типа SDRAM объемом 1 Гб. [18]

График 1 Нагрузка при одном блоке и standalone режиме

График 2 Нагрузка при одном блоке и двух серверах в кластере

График 3 Нагрузка при двух блоках и standalone режиме

Из сравнения График 1 Нагрузка при одном блоке и standalone режиме. и График 2 Нагрузка при одном блоке и двух серверах в кластере. видно, что добавление еще одного сервера и объединение их в кластер с балансировкой нагрузки по стратегии round-robin позволило увеличить нагрузку вдвое.

При сравнении с График 3 Нагрузка при двух блоках и standalone режиме. особого роста производительности не видно. Это связано с тем, что на сервер поступает сразу большой для него поток запросов и с аналогичной производительностью он быстро «захлебывается». Поведение вполне ожидаемое, однако теперь ясно, что резервный блок должен быть больше по производительности чем основные блоки. Более того основная задача резервного блока не дать производительность, а начать принимать стандартный поток запросов вместо основного блока. Исходя из всего вышесказанного, ресурсы машин резервного блока должны быть равны сумме ресурсов основных блоков.

Заключение

В рамках данной работы было проведено исследование предметной области, процесс вызова скорой помощи, сформулирована и поставлена задача и выдвинуты конкретные требования к системе. Были определены подходящие под требование, но уже существующие на рынке АС, по ним был проведен сравнительный анализ, в ходе которого определено - ни одна из систем не реализует полный перечень требований.

Во второй части работы уже идет детальная проработка отдельно взятых компонентов АС. В пункте 3 детально проработаны алгоритмы обработки заявки. А в пункте 4 сформированы архитектурные решения для обеспечения надежности и высокопроизводительности, итогом которого является схема с топологией организации среды.

Для более полного представления о сервисе на Рисунок 8 Макет мобильного приложения и Рисунок 9 Макет приложения для бригады представлены gui-макеты интерфейса приложения. С экранными переходами по шагам.

В заключении проведено нагрузочное тестирование, где в качестве исследуемой АС предстает компонент веб-сервиса, который обрабатывает заявку и кладет ее в очередь в БД.

В результате, итогом работы является проработка требований и описание их реализации в виде функционального и архитектурного решения, а также проверка решений на нагрузочном тестировании.

Список использованных источников

ИС «Скорая помощь» [Электронныйресурс]. URL: http://elmed-rostov.ru/Programs/solution11.asp

ИБИС "СМП". Возможности системы [Электронныйресурс]. URL: http://oblteh.ru/skoraya-medicinskaya-pomosch-vozmozhnosti-sistemy.html

Обобщенные результаты социологических исследований отношения населения к системе здравоохранения [Электронныйресурс]. URL: https://www.rosminzdrav.ru/news/2015/09/01/2516-obobschennye-rezutaty-sotsiologicheskih-issledovaniy-otnosheniya-naseleniya-k-sisteme-zdravoohraneniya

АСУ «Скорая помощь» [Электронныйресурс]. URL: http://www.icl.ru/directions/software-products-and-solutions/safety/?sphrase_id=2120#acs-ambulance

«РКС Скорая помощь» [Электронныйресурс]. URL: http://russianspacesystems.ru/bussines/navigation/rks-navigaciya-i-monitoring/rks-skoraya-pomosh/

Инструкция по заполнению учетной формы n 110/у "карта вызова скорой медицинской помощи" [Электронныйресурс]. URL: http://www.consultant.ru/document/cons_doc_LAW_96009/25384b496552e2d1b7b4c68cdbfb00ea5a0789cc/

Нормативы скорой помощи [Электронныйресурс]. URL: http://7802662.ru/o-kompanii/medicinskie-normativy/normativy-skoroy-pomoshchi-prikaz-n-100-mz-rf/

Мартин Клеппман, (2018) “Высоконагруженные приложени. Программирование, масштабирование, поддержка.”. Издательский дом «Питер». ISBN: 978-5-4461-0512-0.

Богданов В.В. Корхов В.В. Мареев Е.Н. Станкова, (2004) “Архитектуры и топологии многопроцессорных вычислений.”. Интуит. ISBN: 5-9556-0018-3.

Olgierd Stanislaw PieczulMark Alexander McGloinMary Ellen ZurkoDavid Scott KernBrent Allan Hepburn. (2017) “Method and system for authenticating a rich client to a web or cloud application”. US9699168B2.

H. Franke, T. Nelms, H. Yu, H. D. Achilles, R. Salz. (2010) “Exploiting heterogeneous multicore-processor systems for high-performance network processing”. IBM. ISSN: 0018-8646.

А.Б. Петровский. (2009) “ Теория принятия решений: учебник для студ. Высш. Учеб. Заведений”. Издательский центр «Академия». ISBN 978-5-7695-5093-5.

van Vugt, Sander (2014) “Pro Linux High Availability Clustering”. Apress. ISBN 978-1484200803.

GitHub Алгоритм Tires [Электронныйресурс]. URL: https://github.com/vivekn/autocomplete/blob/master/README.md

JavaScript API Яндекс.Карт [Электронныйресурс]. URL: https://tech.yandex.ru/maps/doc/jsapi/2.1/quick-start/tasks/quick-start-docpage/?from=club

Филатов С. Ю. (2017) “Обзор методов предиктивного ввода”. Новые информационные технологии в автоматизированных системах. ISBN 2227-0973

Бойцов Л. М. (2017) “ Классификация и экспериментальное исследование современных алгоритмов нечеткого словарного поиска”. Яндекс.

Stress testing a Raspberry Pi web server [Электронныйресурс]. URL: https://www.michaelkranker.com/blog/stress-testing-a-raspberry-pi-web-server

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.