Сравним сосредоточенную и распределенную системы с точки зрения надежности и безопасности.
Под надежностью понимается в соответствии с ГОСТ 27.002-89 свойство системы сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения, технического обслуживания и транспортирования.
Многие системы не являются абсолютно надежными, т.е. свойство надежности системы имеет место на конечном интервале времени, по истечении которого происходит отказ в работе. Длительность интервала безотказной работы зависит от очень большого числа факторов, предсказать которые нереально, поэтому, отказ обычно считают случайным событием.
Надежность принято характеризовать вероятностью отказа в работе (или вероятностью безотказной работы) в течение определенного отрезка времени. Другой характеристикой надежности системы является среднее время наработки на отказ.
Под безопасностью понимается состояние защищенности системы от потенциально и реально существующих угроз, или отсутствие таких угроз. Система находится в состоянии безопасности, если действие внешних и внутренних факторов не приводит к ухудшению или невозможности ее функционирования. Угрозы могут быть различного рода, в том числе угроза физического разрушения.
В контексте нашей темы интересны угрозы информационные. К ним относятся угрозы получения системой недостоверной входной информации, искажения внутрисистемной информации, а также утечка информации о функционировании системы.
Информационная безопасность — состояние защищенности информационной среды общества, обеспечивающее ее формирование, использование и развитие в интересах граждан, организаций, государства.
В качестве стандартной модели безопасности часто приводят модель CIA:
· конфиденциальность информации – confidentiality (обязательное для выполнения лицом, получившим доступ к определенной информации, требование не передавать такую информацию третьим лицам без согласия ее владельца);
· целостность (integrity);
· доступность (availability).
Под конфиденциальностью понимается доступность информации только определённому кругу лиц, под целостностью — гарантия существования информации в исходном виде, под доступностью — возможность получение информации авторизованным пользователем в нужное для него время.
Выделяют и другие категории:
· аутентичность — возможность установления автора информации;
· апеллируемость — возможность доказать что автором является именно заявленный человек, и не никто другой.
Все физические элементы любой системы являются потенциально ненадежными и уязвимыми с точки зрения безопасности.
Ненадежность элементов системы, осуществляющих переработку информации, может заключаться в полном отказе от переработки, в изменении функции (стабильном получении неверных результатов), в сбоях (периодическом возникновении ошибок).
Ненадежность элементов, осуществляющих передачу информации, может заключаться в полном прекращении передачи, в одностороннем прекращении передачи (для двунаправленных каналов), в возникновении случайных ошибок при передаче (помех).
Нарушение безопасности элементов системы, осуществляющих обработку информации, может состоять как в преднамеренных действиях злоумышленников, вызывающих отказ в работе, изменение функций (постоянное или единичное), так и в несанкционированном доступе к информации (НСД).
Нарушение безопасности элементов системы, осуществляющих передачу информации, может заключаться во вмешательстве, приводящем к полному прекращению передачи, к одностороннему прекращению передачи (для двунаправленных каналов), к замене одних сообщений на другие. Также может иметь место НСД.
Таким образом, проблемы надежности и безопасности во многом родственны. Они связаны с вмешательством в функционирование системы. Различие заключается в том, что ненадежность определяется физическими, природными факторами и не связана с чьими-то целями. Небезопасность определяется, в основном, «человеческим фактором» - наличием злоумышленников и/или беспечных сотрудников. Но одна из проблем безопасности – утечка информации при несанкционированном доступе – не имеет аналога среди проблем надежности.
Сравним две системы, Sd и Ssa , предназначенные для решения одних и тех же задач для одного и того же множества объектов. Объекты представляют собой элементы системы, расположенные в различных точках пространства. На рис. 1 и рис. 2 эти объекты показаны одинаково расположенными точками. Формально, обе системы являются распределенными, но, поскольку, в системе на рис. 1 вся обработка информации происходит в одном месте, то эту систему будем считать сосредоточенной.
Рис. 1. Сосредоточенная система
Рис. 2. Распределенная система
В распределенной системе количество элементов больше, чем в сосредоточенной: Sd включает дополнительные серверы Serva , Servb , Servc и дополнительные элементы (линии связи) Lj . Количество линий связи li объектов с серверами в сосредоточенной и распределенной системах одинаково – оно определяется количеством объектов.
Каждый фактор с точки зрения надежности, если его рассматривать изолированно, играет положительную или отрицательную роль. Например, увеличение количества ненадежных элементов в системе при прочих равных условиях играет отрицательную роль. Под прочими равными условиями здесь понимается неизменность архитектуры (соединений и распределения функций) системы, неизменность параметров элементов и проч. Если же архитектуру изменить, например, использовать дополнительные элементы для дублирования (резервирования), то надежность, напротив, повышается.
Линии связи с объектами в сосредоточенной системе имеют большую, чем в распределенной системе, длину. Это, несомненно, отрицательный фактор. Обычно с увеличением длины линии увеличивается количество помех, увеличивается стоимость передачи, увеличиваются возможности злоумышленников по съему информации или по ее искажению. Этот общий вывод не зависит от природы линии связи – проводная, оптоволоконная, радиосвязь, связь с использованием спутников и т.д. Конструкция линии связи определяет только вид зависимости и числовые характеристики параметров надежности и безопасности.
С точки зрения надежности при обработке информации распределенная система имеет преимущества перед сосредоточенной. Выход из строя сервера Serv в сосредоточенной системе приводит к полному прекращению функционирования всей системы. В распределенной системе, такой как на рис. 2, имеется четыре сервера: Serv, Serva , Servb , Servc . Выход из строя сервера Serv не мешает серверам Serva , Servb , Servc решать локальные задачи по обработке информации в отдельных подразделениях организации при условии, что для расчетов не нужна оперативная информация из других подразделений или с главного сервера.
Выход из строя сервера Serva сказывается только на работе подразделения «a» при условии, что для функционирования других серверов не нужна оперативная информация из этого подразделения. Сервер верхнего уровня Serv перестает получать информацию от сервера Serva , поэтому часть функций распределенной системы перестают работать.
В ряде случаев довольно легко создать программы резервной обработки на функционирующих серверах при выходе из строя одного из серверов, перенаправляя потоки информации.
При проектировании системы всегда приходится искать компромисс между различными факторами, с математической точки зрения – решать оптимизационную задачу. Ее существо в том, что, вообще говоря, можно обеспечить любую требуемую надежность системы, но увеличение надежности сопровождается увеличением ее стоимости. Причем, увеличивается как стоимость проектирования и реализации, так и стоимость эксплуатации (функционирования).
То же можно сказать и о безопасности. Мероприятия по безопасности имеют еще одну отрицательную черту: причинение дополнительных неудобств пользователям системы, минимальное из которых – необходимость ввода логина и пароля.
Наряду с архитектурой технических средств для отказоустойчивости распределенной системы играет большую роль методика построения алгоритмов. Она должна быть рассчитана на возможные сбои или рассогласования в работе узлов системы (при программировании в сосредоточенных системах возможность сбоя обычно не учитывается).
В настоящее время существует два подхода к разработке распределенных алгоритмов: построение отказоустойчивых алгоритмов и построение стабилизирующих алгоритмов. В устойчивых алгоритмах каждый шаг каждого процесса предпринимается с достаточной осторожностью, чтобы гарантировать, что, несмотря на сбои, правильные процессы выполняют только правильные шаги. В стабилизирующих алгоритмах правильные процессы могу быть подвержены сбоям, но алгоритм в целом гарантирует исправление ошибок.
Устойчивые алгоритмы разработаны так, чтобы учитывать возможность сбоев в некоторых процессах (относительно небольшом их количестве) и гарантировать при этом правильность выполнения тех процессов, в которых не произошло сбоев. Эти алгоритмы используют такие стратегии как голосование, вследствие чего процесс воспримет только такую информацию извне, о получении которой объявит достаточно много других процессов. Однако процесс никогда не должен ждать получения информации от всех процессов, потому что может возникнуть тупик, если при выполнении какого-либо процесса произойдет сбой.
Устойчивые алгоритмы защищают систему против отказов ограниченного числа узлов. Остающиеся работоспособными узлы поддерживают правильное (хотя возможно менее эффективное) поведение во время восстановления и реконфигурации системы. Следовательно, устойчивые алгоритмы должны использоваться, когда невозможно временное прерывание работы.
Стабилизирующие алгоритмы предлагают защиту против временных сбоев, то есть, временного аномального поведения компонент системы. Эти сбои могут происходить в больших частях распределенной системы, когда физические условия временно достигают критических значений, стимулируя ошибочное поведение памяти и процессоров.
Примером может быть система управления космической станцией, когда станция подвергается сильному космическому излучению, а также системы, в которых на многие компоненты одновременно воздействуют неблагоприятные природные условия. Когда воздействие этих условий исчезает, процессы восстанавливают свою работоспособность и функционируют на основе программ. Однако из-за их временного аномального поведения глобальное результирующее состояние системы может быть непредвиденным. Свойство стабилизации гарантирует сходимость к требуемому поведению.