производительность будет достигнута при использовании интерфейсов,
обеспечивающих выполнение задачи за один вызов (обобщенные интерфейсы).
Тем не менее, если требуется поддерживать как внутрипроцессные вызовы, так и
вызовы с других физических уровней, предусмотрите детализированный интерфейс
для первого типа вызовов и фасад, который обеспечит обертывание вызовов с
других уровней, создавая эффект обобщенного интерфейса для них.
С помощью специального физического кластера отделите критически важные
процессы, выполняющиеся длительное время, от других процессов, которые могут
дать сбой, и выработайте стратегию обработки отказов. Например, обычно Веб-
серверы предоставляют достаточный объем памяти и вычислительные мощности,
но не имеют надежного механизма хранения (такого как зеркальное отображение
RAID), который может быть оперативно заменен в случае сбоя оборудования.
Спланируйте оптимальную стратегию введения дополнительных серверов или
ресурсов, что обеспечит повышение производительности и доступности.
При взаимодействии через физические границы необходимо продумать, как будет
реализовано сохранение состояния между уровнями, поскольку это влияет на
масштабируемость и производительность. Возможны следующие варианты:
◦ Без сохранения состояния. Все необходимые данные о состоянии будут
предоставлены при обращении к уровню. Такая стратегия обеспечивает лучшую
масштабируемость, но часто требует от клиента предоставления данных о
состоянии.
◦ С сохранением состояния. Состояние сохраняется или восстанавливается для
каждого клиентского запроса. Для этого требуется больше ресурсов и,
следовательно, это негативно сказывается на масштабируемости, но зачастую
такой вариант более удобен, поскольку не требует от клиента отслеживания и
предоставления данных о состоянии.
Рекомендации по размещению компонентов при распределенном
развертывании
При проектировании распределенного развертывания необходимо, прежде всего,
распределить имеющиеся логические слои и компоненты по физическим уровням. В
большинстве случаев слой представления размещается на клиенте или на Веб-сервере; слой
сервисов, бизнес-слой и слой доступа к данным – на сервере приложений; и база данных – на
собственном сервере. Но такая схема не является обязательной. При принятии решения о
размещении компонентов в распределенной среде руководствуйтесь следующими
рекомендациями:
Распределяйте компоненты только в случае необходимости. Основаниями для
реализации распределенного развертывания являются политики безопасности,
физические ограничения, совместное использование бизнес-логики и
масштабируемость.