5. Программно-технические решения, предлагаемые для организации ФИФ СГМ

"Методические рекомендации по программно-аппаратному обеспечению ведения социально-гигиенического мониторинга" (утв. Роспотребнадзором 17.11.2006 N 0100/12297-06-34)

5. Программно-технические решения, предлагаемые

для организации ФИФ СГМ

5.1. Технология "клиент/сервер" - это современная модель обработки данных, представляющая собой распределение обработки информации по нескольким компьютерам (ПК) и рабочим станциям. Использованные для обозначения основных понятий термины "клиент" и "сервер", в сущности, обозначают роли, которые играют различные компоненты в среде распределенных вычислений. Эти компоненты необязательно должны работать на разных машинах (хотя обычно это именно так). Технология клиент/сервер использует распределение прикладной программы по двум логически различным компонентам, каждый из которых решает свои задачи. Обычно клиент посылает на сервер запросы на выполнение определенной работы. Задачей сервера является обработка подобных запросов и возврат результатов клиенту. Этот процесс чаще всего осуществляется на физически разделенных компьютерах в рамках того или иного типа физической инфраструктуры локальной сети. Обычно серверные компьютеры намного мощнее и поэтому лучше приспособлены для выполнения заданий, поступающих от других систем.

Все регистры информационно-аналитической системы (ИАС) СГМ исполняются в виде программных комплексов с использованием архитектуры клиент-сервер с элементами распределенных баз данных (удаленных пользователей - клиентов) по отношению к одной базе данных с синхронизацией у удаленных клиентов необходимых данных справочно-информационного регистра. Данный подход вытекает из необходимости решения целого комплекса задач по хранению данных, обеспечению параллельного доступа к ним, их целостности, динамической изменчивости, относительно большим объемом данных, необходимостью статистической обработки всех массивов информации, аналитических функций, достоверностью данных и их защитой. Для этой цели обычно используются готовые системы управления базами данных (СУБД). Выбор СУБД должен быть осуществлен по принципу достаточности, функциональной обеспеченности, надежности, экономической целесообразности и низкой стоимости средств доступа, низкими техническими требованиями к средствам вычислительной техники, простотой администрирования, низкими эксплуатационными затратами и возможностью модернизации.

В архитектуре клиент/сервер выделяют четыре уровня управления системой: уровни приложения, программного обеспечения (ПО) промежуточного слоя, а также транспортный/коммуникационный и сетевой. Сетевой уровень представляет собой физическую передачу данных (здесь выполняются все операции по пересылке данных между клиентом и сервером). Транспортный/коммуникационный уровень обеспечивает надежную передачу информации между разнородными машинами и прозрачные коммуникации между ними. Для этого используются различные стандартные протоколы, такие как TCP/IP, SPX/IPX или SNA. Уровень ПО промежуточного слоя служит для поддержки таких средств операционной системы, как передача данных, служба каталогов и защита. Коммуникации являются основой для взаимодействия процессов. Коммуникации между процессами (IPC) реализуются через удаленные вызовы процедур (RPC). На уровне приложения осуществляются доступ к файлам, базам данных и обработка транзакций.

Распределенные вычисления рассматриваются как архитектура клиент/сервер с участием нескольких серверов (территориального, регионального и федерального уровней управления СГМ). Таким образом, в создаваемой ИАС за счет распределенной обработки информации возрастает общая пропускная способность системы и обеспечивается возможность обеспечения многозадачной работы. Кроме того, интеграция дискретных сетевых компонентов и обеспечение их функционирования как единого целого способствует увеличению эффективности и снижению издержек.

Поскольку обработка осуществляется в любом месте сети СГМ, вычисления клиент/сервер гарантируют эффективное масштабирование. При этом для обеспечения баланса между клиентом и сервером, компонент приложения выполняется на сервере только в том случае, когда централизованная обработка более эффективна. Если логика программы, взаимодействующей с централизованными данными, сосредоточена на той же машине, что и данные, они не передаются по сети, за счет чего существенно снижаются требования к сетевой среде.

С целью сокращения объема ненормализованного хранения информации и сокращения объема передачи информации от клиента к серверу и наоборот используется система кодировании данных. Посредством справочно-информационного регистра происходит кодируемая передача данных в центральный модуль от локальных и удаленных пользователей автоматизированной системы и одновременное обновление самого справочно-информационного регистра у локальных удаленных пользователей. В ФГУЗ "Федеральный центр гигиены и эпидемиологии" Роспотребнадзора информация централизована по всем регистрам.

При разработке программных комплексов предусматривается возможность организации работы под управлением операционных систем Windows 2000 (и старше), Windows 2000 Server (и старше), SQL <2> сервер - InterBase (версии 7.0 и старше), Oracle (версии 10.0 и старше), однако имеется перспектива последующей модернизации с переходом (перекомпиляцией программ и регистров) в иные операционные системы (Unix, HP-UX, Solaris и ряд других).

--------------------------------

<2> SQL - Structured Query Language - язык структурированных запросов.

В качестве базовой СУБД в ИАС СГМ может использоваться InterBase 7.0, который, как и иные серверы, прямо ориентирован на создание интегрированных, многопользовательских систем с обеспечением целостности данных при помощи развитых встроенных механизмов обработки транзакций при одновременной многопользовательской работе как пользователей в локальной сети, так и в глобальных сетях Internet. Использование языка SQL позволяет выполнять все доступные команды и из иных программных продуктов, в том числе и всех распространенных ГИС и унифицированных статистических программ.

InterBase рассчитан и достаточен для использования в реализации задач ФИФ СГМ. Он обеспечивает одновременную работу нескольких десятков пользователей, поддерживает несколько операционных платформ и процессоров, обеспечивая высокую скорость обработки информации, не требует больших усилий в администрировании.

5.2. Обеспечение целостности данных в системе SQL-сервер

Одним из ключевых направлений реализации ИАС СГМ является разработка технологии обеспечения целостности данных. Поэтому особое внимание должно быть уделено разработке и апробации методов репликации и защиты данных от непредвиденных поломок и сбоев оборудования.

5.2.1. Отработка механизмов репликации данных

Модуль "репликация данных" предназначен для организации межуровневого обмена данными ИАС СГМ и для решения задач по слиянию баз данных, расположенных в территориально удаленных локальных вычислительных сетях (муниципальный, региональный и федеральный уровни управления системой). Система межуровневого обмена данными поддерживает произвольное число абонентов локальных вычислительных сетей или отдельных компьютеров, объединенных в иерархические группы и осуществляющих пересылку данных между собой.

В системе поддерживается двунаправленный полный обмен данными. При этом обеспечена возможность передачи изменений как по всей базе данных, так и по отдельным таблицам. Репликация осуществляется автоматически, при этом пакеты данных автоматически передаются другим участникам СГМ через Internet. В этом случае репликатор, находящийся на передающей стороне, формирует пакет данных, в который помещаются все изменения, произошедшие в базе данных с момента последнего обмена информацией, устанавливает TCP/IP-соединение с принимающим репликатором и передает пакет. Принимающая сторона обрабатывает пакет и возвращает отправителю соответствующие подтверждения.

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

При проведении информационного обмена в процессе репликации данных все изменения пересылаются от клиентов на сервер (в том числе от других серверов, которые для данного сервера также являются клиентами). После приема пришедших изменений, сервер выбирает изменения собственной базы данных, добавляет к ним пришедшие изменения баз данных клиентов и других серверов, разрешает возможные межсетевые конфликты и формирует почту для отсылки обратно клиентам. После этого сформированные сервером изменения передаются клиентам в соответствии с настройками. Если клиент не является другим сервером, то после приема новых данных у него происходит внедрение пришедших изменений в собственную базу данных. Если клиентом данного сервера является другой сервер, то на нем производится формирование другого пакета изменений для его клиентов и связанных с ним серверов.

ИАС СГМ предоставляет необходимую инфраструктуру для создания среды репликации, обеспечивает работу следующих важных компонентов:

1. Приложение должно предоставить коммуникационную инфраструктуру. Приложение может использовать любой способ обмена данными (например, RPC, TCP/IP, системные очереди сообщений или передача информации с нарочным на магнитном носителе).

2. Приложение отвечает за однозначное именование всех участников группы репликации. В системе репликации для однозначного определения участника группы используется уникальный номер (ID), и приложение должно по ID однозначно определять канал коммуникации с другими участниками системы СГМ.

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

4. Приложение, если требуется, может предоставить средства защиты данных. Например, приложение может шифровать записи в базе данных или использовать зашифрованный коммуникационный канал. Уровень защиты данных целиком определяется потребностями приложения.

Приложения ИАС СГМ созданы с учетом различных требований к непротиворечивости данных. Приложения могут работать в синхронном режиме, это означает, что реплики (локальные копии) базы данных гарантированно будут находиться в полном соответствии с последними изменениями данных, подтвержденными транзакциями. С учетом того, что при использовании такой модели непротиворечивости ожидалась низкая производительность распределенного приложения, в ИАС СГМ клиентские части базы данных обновляются через заданные приложением интервалы времени.

5.2.2. Обоснование методов резервного копирования и восстановления данных

Резервное копирование (backup) базы данных - это процесс считывания всех данных из базы данных и сохранения их в виде одного или нескольких файлов на диске или устройстве резервного копирования. Во время backup происходит считывание самых последних версий записей в таблицах базы данных на момент запуска процесса резервного копирования. Старые версии записей в backup не попадают.

Резервное копирование базы данных и восстановление из резервной копии (restore) - два важнейших и наиболее частых административных процесса, которые осуществляются разработчиками и администраторами СУБД в целях сохранения информации от потери в результате физической поломки диска, сбоев электропитания, действий злоумышленников или ошибок программистов.

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

Полный цикл, включающий в себя резервное копирование и восстановление из резервной копии (часто эту последовательность действий называют backup/restore или сокращенно b/r), позволяет оптимизировать данные и предотвратить БД от "разбухания".

В процессе b/r сначала все данные из базы данных копируются в backup (резервную) копию базы данных (файл специального формата), а затем на основе сохраненных данных база данных полностью пересоздается.

Основными особенностями резервного копирования базы данных InterBase является следующие:

- backup может осуществляться одновременно с работой обычных клиентских программ;

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

- во время backup происходит считывание каждой записи из каждой таблицы в базе данных. Таким образом, происходит уборка "мусора" в базе данных (garbage collection): версии записей или их фрагменты, которые не являются актуальными, уничтожаются. Место из-под удаленных версий освобождается, и оставшиеся данные переупаковываются;

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

Восстановление из резервной копии (restore) представляет собой процесс создания базы данных на основе информации, извлекаемой из файла резервной копии.

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