
34 Глава 1. Введение
тот факт, что связь между процессами может продолжаться сотни миллисекунд,
то есть на три порядка дольше. Построение интерактивных приложений с ис-
пользованием синхронной связи в глобальных системах требует большой осто-
рожности (и немалого терпения).
Другая проблема, препятствующая географическому масштабированию, со-
стоит в том, что связь в глобальных сетях фактически всегда организуется от
точки к точке и потому ненадежна. В противоположность глобальным, локаль-
ные сети обычно дают высоконадежную связь, основанную на широковещатель-
ной рассылке, что делает разработку распределенных систем для них значительно
проще. Для примера рассмотрим проблему локализации службы. В локальной
сети система просто рассылает сообщение всем машинам, опрашивая их на пред-
мет предоставления нужной службы. Машины, предоставляющие службу, отве-
чают на это сообщение, указывая в ответном сообщении свои сетевые адреса.
Невозможно представить себе подобную схему определения местоположения
в глобальной сети. Вместо этого необходимо обеспечить специальные места для
расположения служб, которые может потребоваться масштабировать на весь мир
и обеспечить их мощностью для обслуживания миллионов пользователей. Мы
вернемся к подобным службам в главе 4.
Географическая масштабируемость жестко завязана на проблемы централи-
зованных решений, которые мешают масштабированию по размеру. Если у нас
имеется система с множеством централизованных компонентов, то понятно, что
географическая масштабируемость будет ограничиваться проблемами произво-
дительности и надежности, связанными с глобальной связью. Кроме того, цен-
трализованные компоненты в настоящее время легко способны вызвать пере-
грузку сети. Представьте себе, что в каждой стране существует всего одно
почтовое отделение. Это будет означать, что для того, чтобы отправить письма
родственникам, вам необходимо отправиться на центральный почтамт, располо-
женный, возможно, в сотнях миль от вашего дома. Ясно, что это не тот путь, ко-
торым следует идти.
И, наконец, нелегкий и во многих случаях открытый вопрос, как обеспечить
масштабирование распределенной системы на множество административно не-
зависимых областей. Основная проблема, которую нужно при этом решить, со-
стоит в конфликтах правил, относящихся к использованию ресурсов (и плате за
них),
управлению и безопасности.
Так, множество компонентов распределенных систем, находящихся в одной
области, обычно может быть доверено пользователям, работающим в этой обла-
сти.
В этом случае системный администратор может тестировать и сертифициро-
вать приложения, используя специальные инструменты для проверки того фак-
та, что эти компоненты не могут ничего натворить. Проще говоря, пользователи
доверяют своему системному администратору. Однако это доверие не распро-
страняется естественным образом за границы области.
Если распределенные системы распространяются на другую область, могут
потребоваться два типа проверок безопасности. Во-первых, распределенная сис-
тема должна противостоять злонамеренным атакам из новой области. Так, на-
пример, пользователи новой области могут получить ограниченные права досту-