Архитектуры распределенных систем
В последние несколько лет резко возрос интерес к сложным распределенным ИС. Под распределенными системами обычно понимают программные комплексы, составные части которых функционируют на разных компьютерах в сети. Эти части взаимодействуют друг с другом, используя ту или иную технологию различного уровня: от, например, непосредственного использования TCP до технологий с высоким уровнем абстракции, таких, как CORBA.
Рост популярности распределенных систем вызван существенным ужесточением требований, предъявляемых заказчиком к современным программным продуктам. Пожалуй, важнейшими из этих требований являются следующие:
- Обеспечение масштабируемости систем, т.е. способности эффективно обслуживать как малое, так и очень большое количество клиентов одновременно.
- Надежность создаваемых приложений. Программный комплекс должен быть устойчив не только к ошибкам пользователей (это определяется главным образом качеством клиентских приложений), но и к сбоям в системе коммуникаций. Надежность подразумевает использование транзакций, т.е. гарантированного перехода системы в процессе функционирования из одного устойчивого и достоверного состояния в другое.
- Возможность непрерывной работы в течение длительного времени (так называемый режим 24x7, т.е. режим круглосуточной работы в течение недель и месяцев).
- Высокий уровень безопасности системы, под которой понимается не только контроль доступности тех или иных ресурсов системы и защищенность информации на всех этапах функционирования, но и отслеживание выполняемых действий с высокой степенью достоверности.
- Высокая скорость разработки приложений и простота их сопровождения и модификации с использованием программистов средней квалификации.
Оказалось, что обеспечить соответствие этим требованиям, используя традиционные технологии — а именно, двухзвенные системы «клиент-сервер», в которых в качестве серверов выступают системы управления базами данных, почти невозможно.
Заметим, что далеко не для всех приложений вышеперечисленные требования являются существенными. Но необходимо иметь в виду, что термин «распределенные системы» относится к огромному числу задач самого разного класса.
Архитектура современных ИС базируется на принципах клиент-серверного взаимодействия программных компонентов информационной системы.
Под сервером обычно понимают процесс, который обслуживает информационную потребность клиента. Если в качестве серверного процесса выступает поиск или обновление базы данных, то тогда сервер называют сервером базы данных. Если в качестве процесса выступает некоторая процедура обработки данных, то тогда сервер называют сервером приложения.
Клиентом является приложение, посылающее запрос на обслуживание сервером. Задачей клиента является инициирование связи с сервером, определение вида запроса на обслуживание, получение от сервера результата обслуживания, подтверждение окончания обслуживания.
Клиент-серверная архитектура (КСА) реализует многопользовательский режим работы и является распределенной, когда клиенты и серверы располагаются на разных узлах ЛВС или ГВС. Под КСА понимают в большинстве случаев именно такую распределенную архитектуру.
Преимущество ЛВС перед централизованной структурой: простая масштабируемость ИС.
В общем случае схема КСА включает три уровня:
· Уровень представления данных пользователем;
· Уровень обработки данных приложением;
· Уровень взаимодействия с БД.
Клиент-серверная архитектура может быть реализована по-разному. Выбор конкретной схемы определяется:
· территориальным распределением объекта автоматизации;
· требованиями надежности;
· требованиями быстродействия;
· требованиями к простоте обслуживанию;
· требованиями к возможностям масштабирования.
Файл-серверная архитектура.Наиболее простой способ распределенной обработки данных. На сервере располагаются только файлы данных, а на клиентской части располагается программа обработки и СУБД. Синхронизация совместного использования базы данных файл-сервера возлагается на СУБД пользователей.
Двухуровневая клиент-серверная архитектура.Основана на использовании сервера базы данных. Клиентская часть содержит только уровень представления данных, а на сервере располагается СУБД вместе с прикладными программами. Централизованная СУБД обеспечивает совместное использование рабочими станциями базы данных, расположенной во внешней памяти сервера БД.
Пользователю передаются только те данные, которые ему необходимы.
Возможно разделение пользовательского приложения на две части: одна часть выполняется на сервере и занимается выборкой и агрегированием данных из БД, а вторая часть, предназначенная для обработки и представления данных, располагается на клиентской машине. За счет этого можно достичь увеличения общей производительности системы.
Трехуровневая архитектура клиент-сервер. Позволяет размещать прикладные программы на отдельных серверах приложений. Работа клиентской части приложения сводится к вызову необходимых функций сервера приложений, которые называются сервисами. Прикладные программы сервера приложений в свою очередь обращаются к серверу БД с помощью SQL-запросов. Такая организация позволяет еще более повысить производительность и эффективность ИС за счет:
· многократности повторного использования общих функций обработки данных в множестве клиентских приложений при существенной экономии системных ресурсов;
· параллельности в работе сервера приложений и сервера БД, причем сервер приложений может быть менее мощным по сравнению с сервером БД;
· оптимизации доступа к БД через сервер приложений из клиентских мест путем диспетчеризации выполнения запросов в вычислительной сети;
· повышения скорости и надежности обработки данных в результате дублирования программного обеспечения на нескольких серверах приложений, которые могут заменять друг друга в сети в случае перегрузки или выхода из строя одного из них;
· переноса функций администрирования системы по проверке полномочий доступа пользователей с сервера БД на сервер приложений.
Многоуровневая архитектура «клиент-сервер».Создается для территориально-распределенных предприятий. Для нее в общем случае характерны отношения «многие ко многим» между клиентскими рабочими станциями и серверами приложений, между серверами приложений и серверами баз данных. Такая организация позволяет более рационально организовать информационные потоки между структурными подразделениями в процессе выполнения общих деловых процессов. Каждый сервер приложений, как правило, обслуживает потребности какой-либо одной функциональной подсистемы и сосредоточивается в головном для подсистемы структурном подразделении. Очевидно, что ЛВС каждого из подразделений обеспечивает более быструю реакцию на запросы пользователей данного подразделения, а именно эти пользователи главным образом эксплуатируют соответствующую функциональную подсистему. Интегрированная база данных находится на отдельном сервере, на котором обеспечивается централизованное ведение и администрирование общих данных для всех приложений.
Для сокращения объема передачи данных по каналам связи в распределенной информационной системе предлагается репликация данных, то есть тиражирование данных на взаимодействующих серверах баз данных с автоматическим поддержанием соответствия копий данных.
Архитектура «тонкий клиент».Многоуровневая клиент-серверная архитектура распространяется на Интернет-приложения, связывающие множество участников делового процесса, территориально удаленных друг от друга в рамках как одного, так и нескольких предприятий на основе применения сетевого протокола TCP/IP. Достоинство распределенных приложений заключается в устранении промежуточных звеньев делового процесса, когда пользователь, минуя обращение к тому или иному подразделению, напрямую обращается к ИС для выполнения требуемой функции.
Клиент(браузер) à Интернет à Web-сервер à брокер запросов à Сервер приложений: интернет-приложение+приложение обработки данных à Сервер БД
Дата добавления: 2018-11-25; просмотров: 566;