- •Технологии разработки распределенных приложений
- •Понятие распределенных технологий. Клиент-серверное приложение. Критерии разделения функций. Требования к распределенным приложениям. Примеры глобальных распределённых проектов.
- •Модели распределенных систем: функции клиента и сервера. Архитектура распределенных приложений.
- •Архитектура клиента и сервера. Функции клиента и сервера. Понятие промежуточной среды, примеры. Протоколы.
- •Семиуровневая модель osi. Назначение. Уровни, их основная характеристика, функции. Недостатки модели osi. Понятие промежуточной среды, примеры. Протоколы.
- •Сеансовый уровень
- •Транспортный уровень
- •Сетевой уровень
- •Канальный уровень
- •Физический уровень
- •Rpc. Промежуточная среда msmq. Особенности, достоинства, недостатки (в т.Ч. С точки зрения требований к распределенным системам).
- •Распределенные базы данных. Определение, решаемые задачи, требования к рбд, преимущества и недостатки, примеры, определение Дэйта (12 свойств).
- •Тиражирование данных, определение, необходимость, типы тиражирования (синхронное, асинхронное), механизмы тиражирования, архитектура систем синхронизации данных. Преимущества и недостатки.
- •Корпоративные субд. Основные возможности по работе с распределенными базами данными. Сравнение возможностей работы с распределенными бд в Oracle, ms sqlServer.
Технологии разработки распределенных приложений
Понятие распределенных технологий. Клиент-серверное приложение. Критерии разделения функций. Требования к распределенным приложениям. Примеры глобальных распределённых проектов.
Основные понятия
Клиент-серверное приложение – это приложение, в котором функции распределены как минимум между двумя компонентами: клиент и сервер.
Сервер – приложение, которое владеет некоторыми ресурсами и предоставляет их в пользование.
Клиент – это приложение, которое обслуживается у сервера.
Распределенные данные и вычисления
Свойства распределенных систем:
Распределение функций между клиентом и сервера
Двунаправленное взаимодействие клиента и сервера
Взаимодействие по инициативе клиента
Сервер управления ресурсами и осуществляет их бесконфликтное использование
Взаимодействие в распределенных системах может быть синхронное и асинхронное.
При синхронном взаимодействии клиент ожидает ответа, не выполняя никаких функций.
При асинхронном взаимодействии после отправки запроса клиент может продолжить действие, которое не требует данных из запроса.
Проблемы, возникающие при разработке распределенных систем
1) выделение ф-ий и распределение их между узлами сети.
Критерии расп. ф-ий:
*балансировка загрузки (статическая и динамическая)
*по выполняем задачам сервера.
*мимнимазация трафика в сети.
*безопасность.
2) распределение данных между узлами сети.
*централизованный ("+" безопастность, все данные в одном узле, простота в администрировании)
("-" - перегрузка)
*децентрализованный (данные должны быть приближенны к местам их обработки)
Требования к расп. приложениям.
1) Открытость (все протоколы взаимодействия компонент расп. системы - стандартизованны).
2) Масштабируемость. (добавление компонент, распределение ресурсов сервера).
3) Поддержка логической целостности данных. (запрос либо выполняется, либо нет).
4) Устойчивость. (Возможность дублирования серверами одних и тех же ф-ий).
5) Безопасность.(каждыйй компонент расп. системы д.б. уверен, что его ф-иями пользуются авторизованный пользователь либо компонент).
6) Эффективность. (минимизация накл. расходов связанную с распределенным характером системы)
Модели распределенных систем: функции клиента и сервера. Архитектура распределенных приложений.
Файл-сервер
Функции:
Предоставление доступа к данным
Бизнес-логика
Предоставление пользовательского интерфейса
Недостатки: трафик большого объема данных – неэффективно.
Преимущества:
Несколько Клиентов
Безопасность
Сервер баз данных (двухзвенная архитектура)
Преимущества:
Меньше трафик
Меньше объема передаваемой информации
Меньше функций у Клиента
Недостатки
Увеличение нагрузки на Сервер – Сервер становится «узким местом»
Небольшие изменения бизнес-логики влекут за собой необходимость изменений на всех Клиентах ПП.
Сервер приложений (трехзвенная архитектура)
Одна из модификаций – активная БД, использующая триггеры и хранимые процедуры.
Преимущества:
Масштабируемость
Гибкость
Архитектура распределенных систем
Клиент, например, средство ввода (терминал)
Недостатки:
Поклиентское обслуживание – нагрузка на Сервер
ПП никак не взаимодействуют – сложность коммуникации
Слаборазвитость методов для разделения общих ресурсов
Диспетчер отвечает за поддержку сеанса с пользователем.
Преимущества: возможность коммуникации – методы для реализации разделения доступа к общим ресурсам
Недостатки: диспетчер – «узкое место»
С развитием сетей появляется необходимость балансировки загрузки.
Хранение на Сервере и на Клиенте
Особенности:
Распределение функций между Серверами
Необходимо знать распределение каждого Сервера
Недостатки: при появлении нового Сервера необходимо сообщить Клиентам о нем – сложность масштабируемости
На каждом Сервере или Клиенте хранится информация только о диспетчере. Появилась возможность балансировки загрузки.
Преимущества: масштабируемость.
Недостатки: большая нагрузка на диспетчер.