Системы распределенной архитектуры — это системы, в которых информационная обработка выполняется на нескольких компьютерах.
Введение
Сегодня почти все программные системы значительного объёма проектируются как распределённые. Под распределённой понимается система, в которой информационная обработка выполняется не в одной электронной вычислительной машине, а равномерно распределяется среди нескольких компьютерных систем.
Проектирование распределённых систем в принципе аналогично проектированию любых других типов программного обеспечения, но тем не менее имеет некоторые специфические особенности. Так как в наше время распределённые системы достаточно широко распространены, проектировщикам программного обеспечения необходимо знать особенности их проектирования. А совсем недавно практически все большие системы были централизованными, то есть базировались на одной основной вычислительной машине, называемой мейнфрейм, а к ней подключались терминалы. Терминалы не участвовали в обработке информационных данных, поскольку все вычислительные операции осуществлялись на главном компьютере. Проектировщикам этих систем не нужно было беспокоиться о распределённых вычислениях.
У современных программных систем существует деление на следующие классы:
- Программные системы прикладного класса. Они предназначены для использования лишь на одном персональном компьютере компьютерной станции. Сюда могут быть отнесены разные версии текстовых процессоров, электронных таблиц, графических систем и тому подобное.
- Системы встроенного класса. Они предназначены для использования на одном процессоре или на процессорном наборе. К этой группе можно отнести системы, управляющие бытовым оборудованием, разными приборами и другие.
- Класс распределённых систем. В этом классе программное обеспечение работает на наборе параллельных процессоров, взаимодействующих по интернету. Сюда можно отнести сеть системы банкоматов, какого-либо банка и другие системы.
Сегодня среди вышеназванных классов программных систем присутствуют ясные границы, которые в будущем, скорее всего, будут менее заметны. В будущем, когда беспроводные сети, обладающие высоким быстродействием, появятся повсеместно, станет возможной динамическая интеграция оборудования с внутренними программными системами. К примеру, электронный органайзер может быть интегрирован в более общую систему.
Проектирование программных систем распределённой архитектуры
Можно выделить следующие главные характеристики систем распределённой архитектуры:
- Весь набор ресурсов используется совместно. Системы с распределённой архитектурой предполагают общее применение всех ресурсов технического оснащения и программного обеспечения, через возможности сети. К примеру, это могут быть жёсткие диски, принтеры, информация в фалах, компиляторы и тому подобное. Естественно, распределять ресурсы можно и в системах, обслуживающих большое количество пользователей, но в таком случае управлять предоставлением ресурсов обязана центральная ЭВМ.
- Характеристика открытости. Это означает, что возможности системы можно наращивать, добавляя новые ресурсы. Распределённые системы являются открытыми системами, к которым возможно подключить аппаратуру и программы различных производителей.
- Характеристика параллельности. В распределённой системе возможно одновременное выполнение разных процессов на различном сетевом оборудовании. Допускается взаимодействие этих процессов между собой при их выполнении.
- Характеристика масштабируемости. Следует отметить, что все системы распределённой архитектуры считаются масштабируемыми. Для подгонки системы к соответствию под новые требования, возможно её нарастить путём прибавления новых ресурсных возможностей. Правда, при практической реализации этого пункта можно столкнуться с пределом возможностей сети, соединяющей набор компьютеров системы. При подключении большого количества новых компьютеров, возможностей сети может не хватить.
- Характеристика по устойчивости к отказам. Присутствие набора компьютеров и выполнение копирования информационных данных предполагает устойчивость распределённых систем к различным сбоям оборудования и ошибкам программы. Почти все распределённые системы при появлении ошибок имеют возможность поддержания хотя бы частичной работоспособности. Абсолютный отказ в работе системы возможен лишь при фатальных сетевых ошибках.
- Характеристика прозрачности. Здесь предполагается, что пользователю предоставляется абсолютно прозрачная доступность всех ресурсов, но при этом нет доступа к данным по распределению системных ресурсов. И следует отметить, что часто фактические знания об архитектурном построении системы способны помочь пользователям оптимально пользоваться системными ресурсами.
Далее рассмотрим перечень недостатков распределённых систем:
- Повышенный уровень сложности. Распределённые системы имеют сложность, как правило, выше, чем централизованные. Существенно более трудно проанализировать и дать оценку свойствам распределённой системы в общем, а также протестировать такие системы. К примеру, быстродействие распределённой системы определяется не производительностью какого-то процессора, а полосой пропускания сети и быстродействием многих процессоров.
- Пониженный уровень безопасности. Как правило, войти в систему можно с большого числа различных компьютеров. Сетевые информационные обмены могут быть перехвачены.
- Степень управляемости. В систему могут входить компьютеры разных типов с различными версиями операционной системы. Ошибки на одном компьютере могут перейти на другие машины с самыми разными последствиями.
- Непредсказуемая реакция. Общеизвестно, что реакция распределённых систем на некоторые события не может быть предсказана и зависит от многих параметров.