- •Історія розвитку сбд.
- •Традиційні файлові системи. Переваги і недоліки.
- •Системи з використанням баз даних. Компоненти сбд. Переваги і недоліки.
- •5_ Системи керування базами даних. Компоненти. Функції.
- •Компоненты сбд
- •1. Зберігання, вилучення і обновлення даних
- •2. Каталог, який доступний кінцевим користувачам
- •3. Управління транзакціями
- •Розподіл обов’язків в сбд. Ад і абд.
- •7_ Архітектура сбд ansi/sparc. Три рівні. Відображення. Трехуровневая архитектура ansi-sparc
- •6_ Поняття бд. Об’єкти і зв’язки. Властивості.
- •3.5 Концептуальный уровень
- •3.6 Внутренний уровень
- •3.7 Отображения
- •3.8 Доступ к данным в трехуровневой архитектуре
- •12_ Архітектура сбд ansi/sparc. Мови баз даних. Ddl. Dml. 4gl.
- •Языки баз данных.
- •Процедурний
- •Непроцедурний
- •13_ Архітектура клієнт-сервер. Розподілена обробка. Архитектура многопользовательских субд
- •Субд в архитектуре "клиент-сервер" Лекция 19. Архитектура "клиент-сервер"
- •19.1. Открытые системы
- •19.2. Клиенты и серверы локальных сетей
- •19.3. Системная архитектура "клиент-сервер"
- •19.4. Серверы баз данных
- •19.4.1. Принципы взаимодействия между клиентскими и серверными частями
- •19.4.2. Преимущества протоколов удаленного вызова процедур
- •19.4.3. Типичное разделение функций между клиентами и серверами
- •19.4.4. Требования к аппаратным возможностям и базовому программному обеспечению клиентов и серверов
- •14_ Ранні підходи в реалізації бд. Бд на інвертованих списках. Ієрархічні та мереживі бд. Модель инвертированных списков
- •Реляційна бд. Властивості реляційних бд.
- •Реляційна модель. Домени. Оператори.
- •2. Реляционная модель данных
- •2.1. Понятие модели данных
- •Реляційна модель. Відношення. Типи відношень.
- •Реляційна модель. Класифікація обмежень цілісності.
- •Реляційна модель. Потенційні ключі.
- •Реляційне числення. Числення доменів. (самостійно)
- •5.2.3. Реляционное исчисление доменов
- •Мова sql. Запит на оновлення. Використання співвіднесених запитів в запитах на оновлення.
- •Мова sql. Запит на знищення. Використання підзапитів в запитах на знищення.
- •Мова sql. Запит на додавання. Додавання результатів запиту.
- •Мова sql. Об’єднання таблиць. Використання пропозиції union.
- •Мова sql. Використання пропозицій any, all, some.
- •Мова sql. Використання пропозиції exists.
- •Мова sql. Співвіднесений запит на вибірку.
- •Мова sql. Запит на вибірку із підзапитом.
- •Мова sql. Запит на вибірку до кількох таблиць. З’єднання таблиць. Типи з’єднань.
- •Мова sql. Запит на вибірку. Агрегатні функції
- •Історія розвитку
19.3. Системная архитектура "клиент-сервер"
Понятно, что в общем случае, чтобы прикладная программа, выполняющаяся на рабочей станции, могла запросить услугу у некоторого сервера, как минимум требуется некоторый интерфейсный программный слой, поддерживающий такого рода взаимодействие (было бы по меньшей мере неестественно требовать, чтобы прикладная программа напрямую пользовалась примитивами транспортного уровня локальной сети). Из этого, собственно, и вытекают основные принципы системной архитектуры "клиент-сервер".
Система разбивается на две части, которые могут выполняться в разных узлах сети, - клиентскую и серверную части. Прикладная программа или конечный пользователь взаимодействуют с клиентской частью системы, которая в простейшем случае обеспечивает просто надсетевой интерфейс. Клиентская часть системы при потребности обращается по сети к серверной части. Заметим, что в развитых системах сетевое обращение к серверной части может и не понадобиться, если система может предугадывать потребности пользователя, и в клиентской части содержатся данные, способные удовлетворить его следующий запрос.
Интерфейс серверной части определен и фиксирован. Поэтому возможно создание новых клиентских частей существующей системы (пример интероперабельности на системном уровне).
Основной проблемой систем, основанных на архитектуре "клиент-сервер", является то, что в соответствии с концепцией открытых систем от них требуется мобильность в как можно более широком классе аппаратно-программных решений открытых систем. Даже если ограничиться UNIX-ориентированными локальными сетями, в разных сетях применяется разная аппаратура и протоколы связи. Попытки создания систем, поддерживающих все возможные протоколы, приводит к их перегрузке сетевыми деталями в ущерб функциональности.
Еще более сложный аспект этой проблемы связан с возможностью использования разных представлений данных в разных узлах неоднородной локальной сети. В разных компьютерах может существовать различная адресация, представление чисел, кодировка символов и т.д. Это особенно существенно для серверов высокого уровня: телекоммуникационных, вычислительных, баз данных.
Общим решением проблемы мобильности систем, основанных на архитектуре "клиент-сервер" является опора на программные пакеты, реализующие протоколы удаленного вызова процедур (RPC - Remote Procedure Call). При использовании таких средств обращение к сервису в удаленном узле выглядит как обычный вызов процедуры. Средства RPC, в которых, естественно, содержится вся информация о специфике аппаратуры локальной сети и сетевых протоколов, переводит вызов в последовательность сетевых взаимодействий. Тем самым, специфика сетевой среды и протоколов скрыта от прикладного программиста.
При вызове удаленной процедуры программы RPC производят преобразование форматов данных клиента в промежуточные машинно-независимые форматы и затем преобразование в форматы данных сервера. При передаче ответных параметров производятся аналогичные преобразования.
Если система реализована на основе стандартного пакета RPC, она может быть легко перенесена в любую открытую среду.
