- •1. Введение в распределенные вычислительные системы
- •1.1 Определение распределенной вычислительной системы
- •1.2 Промежуточное программное обеспечение
- •1.3 Терминология рвс
- •1.4 Классификация рвс
- •1.5 Связь в рвс
- •2. История развития распределенных вычислений
- •2.1 Первое поколение систем распределенных вычислений
- •2.1.1 Проект fafner
- •2.1.2 Проект I-way
- •2.2 Второе поколение систем распределенных вычислений
- •2.2.2 Проект Legion
- •2.2.3 Распределенные объектные системы
- •2.3 Современные рвс
- •2.3.1 Одноранговые (peer-to-peer) сети
- •2.3.2 Сервис-ориентированная архитектура
- •2.3.3 Агенты
- •2.3.4 Облачные вычисления
- •2.4 Заключение
- •Архитектура клиент-сервер
- •4.1 Разделение приложений по уровням
- •4.1.1 Уровень представления
- •4.1.2 Уровень бизнес-логики
- •4.1.3 Уровень данных
- •4.2 Типы клиент-серверной архитектуры
- •4.2.1 Методы горизонтального распределения
- •3.1 Классическая двухуровневая архитектура «Клиент – сервер»
- •3.3 Различные модели технологии «Клиент – сервер»
- •5. Объектные распределенные системы
- •5.1 Вызов удаленных процедур.
- •5.1.1 Базовые операции rpc
- •5.2 Организация связи с использованием удаленных объектов
- •5.3 Corba
- •5.3.1 Основные понятия corba
- •5.3.2 Технология corba
- •5.3.3 Разработка на основе corba
- •3.2 Трехуровневая модель
- •3.6 Технология "Клиент-сервер" применительно к Internet
- •3.7 Технология «Клиент-сервер» применительно к Intranet
- •6. Агентные технологии
- •6.1 Понятие программного агента
- •6.2 Мультиагентные системы
- •6.2.1 Агентные платформы
- •6.3 Безопасность в системах мобильных агентов
- •10. Технологии одноранговых сетей
- •10.1 Основы технологии одноранговых сетей
- •10.1.1 Сравнение p2p и клиент-серверной технологий
- •10.1.2 Задачи p2p сетей
- •10.1.3 Основные элементы p2p сетей
- •10.2 Алгоритмы работы p2p сетей
- •10.2.1 Структура p2p сети
- •10.2.2 Алгоритмы работы p2p сетей
- •10.3 Применение технологий p2p
- •10.3.1 Распределенные вычисления
- •10.3.2 Файлообменные сети
- •10.3.3 Приложения для совместной работы
- •10.4 Достоинства и недостатки p2p
Тема Огляд клієнт – серверних архітектур
1. Введение в распределенные вычислительные системы
Область распределенных вычислительных систем в настоящее время ха- рактеризуется быстрыми темпами изменения идеологий и подходов.
За корот- кую историю существования систем такого типа появилось множество различ- ных парадигм реализации распределенных вычислений, набравших большой вес и общее признание, но практически исчезнувших впоследствии под давле- нием более новых и модных подходов. Однако когда технология исчезает из виду, очень часто она появляется вновь под новым именем. В результате про- исходит непрерывное перемешивание базовых концепций с новейшими подхо- дами к разработке.
В середине 1990-х существовало два основных подхода к разработке рас- пределенных вычислительных систем. С одной стороны, концепция Веб пред- ставляла собой ориентированное на человека распределенное информационное пространство. С другой стороны, технологии распределенных объектов, такие как CORBA [58] и DCOM [68] были в первую очередь ориентированы на созда- ние распределенных сред, которые эмулировали процесс разработки и испол- нения локальных приложений, обеспечивая преимущества доступа к сетевым ресурсам. Но, несмотря на первоначальную идею Веб как пространства, кото- рое позволяло многим людям обмениваться информацией, большинство поль- зователей просто потребляли информацию, не публикуя ничего взамен.
Между тем системы распределенных объектов росли с точки зрения предоставляемых возможностей, но становились все более тяжелыми в плане разработки и ис- пользования.
Сразу после начала нового тысячелетия произошел взрыв развития новых методов и промежуточного программного обеспечения для распределенных вычислительных систем, включая технологии одноранговых сетей (peer-to-peer или P2P) и грид-технологии. Применение P2P позволило множеству пользова- телей, которые раньше были простыми потребителями информации, поучаст- вовать в предоставлении контента. С другой стороны, применение технологии грид позволило интегрировать крупные комплексы обработки и хранения дан- ных, обеспечивая их доступность для различных правительственных и научных пользователей. Концепция грид-вычислений была ориентирована на построе- ние инфраструктуры, обеспечивающей «вычисления по требованию», анало- гично тому, как мы сейчас получаем доступ к коммунальным услугам, напри- мер, к электричеству.
В то же время, бизнес-сообщество занялось разработкой следующего по- коления спецификаций, призванных решить проблемы ранних стандартов рас- пределенных объектных технологий посредством Веб-сервисов и сервис- ориентированной архитектуры. Слияние бизнес подхода к предоставлению вычислительных ресурсов в виде сервисов и концепции грид-вычислений при- вело к появлению в конце 2010-х новой концепции получившей название Об- лачных вычислений. Далее в этой главе мы попытаемся дать определение распределенных вы- числительных систем (РВС), рассмотрим их основы и базовые понятия.
1.1 Определение распределенной вычислительной системы
Формального определения распределенной вычислительной системы в настоящее время не существует. Из множества различных определений, можно выделить ироничное определение Лесли Лампорта1 [44]:
«Распределенной вычислительной системой можно назвать такую систему, в которой отказ компьютера, о существовании которого вы даже не подозревали, может сделать ваш соб- ственный компьютер непригодным к использованию». Это определение он дал в мае 1987 года, в своем письме коллегам по поводу очередного отключения электроэнергии в машинном зале. Эндрю Таненбаум2, в своем фундаментальном труде «Распределённые си- стемы.
Принципы и парадигмы» [2] предложил следующее (чуть более строгое) определение, которого мы будем придерживаться в рамках данной книги: «Распределенная вычислительная система (РВС) – это набор соединенных каналами связи независимых компью- теров, которые с точки зрения пользователя некоторого программного обеспечения выглядят единым целым».
В этом определении фиксируются два существенных момента: автоном- ность узлов РВС и представление системы пользователем, как единой структу- ры. При этом, основным связующим звеном распределенных вычислительных систем является программное обеспечение.
1 Лесли Лампорт (родился в 1941 году) – американский ученый в области теории вычислительных си- стем, первый лауреат премии Дейкстры за достижения в области распределенных вычислений (2000 год), раз- работчик системы LaTeX. 2 Эндрю Стюарт Таненбаум (родился в 1944 году) – профессор Амстердамского свободного университе- та, создатель операционной системы Minix, автор множества учебных трудов в области информатики и вычис- лительной техники.
