Требования к распределенным системам
§ 3. Требования к распределенным системам.
Решение о построении распределенной системы часто вытекает из требований, выдвинутых заказчиком, необходимость построения распределенной системы часто обуславливается следующим нефункциональным требованиями, которые относятся к качеству системы и носят глобальный характер (функциональные можно локализовать в одном компоненте);
§ 3.1. Масштабируемость. Масштабируемость означает способность системы адаптироваться к будущему росту нагрузки. Нагрузка, которую должна нести программная система может быть определена в различных единицах.
[В компании «Боинг» старый мэйнфрейм не мог справиться с нагрузкой, поэтому для поддержки дополнительных компонентов были добавлены новые компьютеры (20 машин Sequent)]. § 3.2. Открытость. Открытость означает, что систему можно легко расширять и модифицировать. Для этого компоненты системы должны иметь четко определенные и хорошо документированные интерфейсы. Интеграция в систему новых компонентов означает, что они должны взаимодействовать с некоторыми уже имеющимися в этой системе компонентами. В интерфейсах должны быть объявлены те же услуги, которые предлагает объект. Услуга – это операция, которую компонент выполняет для пользователя или другого компонента. Услуги часто параметризуются, и полученные параметры должны быть указаны в интерфейсе. Нужно отметить, что компонент, являющийся клиентом некоторого другого компонента, сам может служить сервером для других компонентов. Формируется n-уровневая архитектура. § 3.3. Неоднородность. Неоднородность компонентов обуславливается использованием различных технологий для реализации услуг, управления данными и выполнения компонентов на аппаратурных платформах. Неоднородность компонентов может порождаться языками программирования, операционными системами, аппаратурными платформами и сетевыми протоколами. [Причинами неоднородность может быть независимость разработчиков компонентов, создание компонентов в разное время.] § 3.4. Доступ к ресурсам и их разделение. Под ресурсами понимаются аппаратура, ПО и данные. Разделение ресурсов требуется для более эффективного дорогостоящих ресурсов. [Машина Sequent, предназначенная для работы с базами данных является дорогим элементом оборудования. Для компании «Боинг» она обеспечила экономичное решение только потому, что используется несколькими сотнями инженеров.] При организации доступа к ресурсам необходимо учитывать вопросы их защиты. [В системе «видео по требованию» доступ контролируется для того, чтобы только зарегистрированные пользователем могли загружать видеофильмы, т.е. после регистрации и оплаты]. Право на доступ к ресурсам реализуется менеджерами ресурсов. § 3.5. Отказоустойчивость. Отказоустойчивость означает, что система будет продолжать работу доже при возникновении неисправностей. Отказоустойчивость компонентов, таких как сервер «видео по требованию», достигается посредством их избыточности – репликации. При отказе компонента в работу вступает его копия (реплика). |