Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
13.02.2015
Размер:
118 Кб
Скачать

Способы организации работы приложения в сети

  1. Разделение приложения на части, выполняющиеся на разных компьютерах сети

  2. Выделение специализированных серверов в сети, на которых выполняются некоторые общие для всех приложений функции

  3. Способ взаимодействия между частями приложений, работающих на разных компьютерах

Разделение приложения на части

  1. Средства представления данных на экране

  2. Логика представления данных

  3. Прикладная логика

  4. Логика данных

  5. Внутренние операции базы данных

  6. Файловые операции

Двухзвенная архитектура

  1. Недостаток масштабируемости и отсутствие отказоустойчивости (мейнфрейм)

  2. Высокая сетевая нагрузка, высокая вычислительная мощность клиента (файловый сервер)

  3. ??? (сервер БД)

Трехзвенная архитектура

  1. Слой логики обработки -> сервер приложений

  2. Возможность установки нескольких серверов приложений

  3. Упрощений разработки

  4. Распределение нагрузки

  5. Middleware (средства обработки сообщений, удаленный вызов процедур, брокеры запроса объектов)

Межпроцессное взаимодействие

  1. Совместное использование одних и тех же данных

  2. Передача друг другу сообщений

Сообщение – блок информации, отформатированный процессом-отправителем таким образом, чтобы он был понятен процессу получателю.

Заголовок: адрес, идентификатор сообщения, доп. информация

Транспортная система ОС

- экранирование деталей сложных сетевых протоколов

  1. В самом простом случае: два примитива – send & receive

  2. Модель OSI

  1. Вопросы: гарантированная доставка, реакция на отказы узла, приоритет сообщений

Синхронизация

- блокирующие

- неблокирующие

Блокирующий send – процесс, выдавший запрос на его выполнение, приостанавливается до момента получения по сети сообщения-подтверждения о том, что приемник получил отправленное сообщение

Блокирующий receive – приостанавливает вызывающий процесс до момента, когда он получит сообщение

Тайм-аут при использовании блокирующего send

Неблокирующие примитивы

- управление возвращается вызывающему процессу немедленно

Способ уведомления о приходе сообщения:

- Опрос: наличие еще одного базового примитива test, с помощью которого процесс-получатель может анализировать буфер

- Прерывание: более эффективен, но сложнее при разработке

Буферизация в примитивах передачи сообщений

Не требуется:

  1. При использовании блокирующих примитивов

  2. Отсылка сообщения без ожидания ответа о приеме

Буфер в одно сообщение – при блокирующих примитивах

При асинхронных - всегда необходим буфер

Из-за ограниченного размера буфера необходим контроль за потоком сообщений

Прием сообщений, когда еще не создан буфер: отказ + прием и хранение некий тайм-аут

Соседние файлы в папке Программирование_распределенных_систем