Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 12:52, контрольная работа
В начале 70-х годов для удобства работы с большими массивами данных сформулирована концепция баз данных. Ее основными положениями были:
1.Независимость прикладных программ от данных, размещенных во внешней памяти
2. Отсутствие избыточности в данных
3.Способность системы противостоять сбоям и отказам.
На
рис.2.2 изображена схема интеграции информации
двух источников средствами медиатора
(как и в случае хранилищ данных, количество
источников, разумеется, может быть произвольным).
Рис. 2.2 Организация медиатора
В ответ на запрос пользователя медиатор, не "владеющий" данными непосредственно, обязан получить информацию из подходящих источников, сформировать адекватный результат и передать его пользователю.
Как видно из рис.2.2, медиатор посылает
запросы каждой из оболочек, а те в свою
очередь адресуют их соответствующим
источникам. (В определенных случаях медиатор
способен направлять какой-либо оболочке
целую серию запросов, а к некоторым другим
оболочкам не обращаться вовсе.) Оболочка
передает медиатору полученный ею итог
обработки запроса, а медиатор, осуществляя
объединение и трансляцию данных, возвращенных
оболочками, формирует окончательный
результат и отсылает его пользователю
Лекция 14
ТЕМА 3. Клиент-серверные системы
Ранее мы отмечали, что с БД одновременно может работать много пользователей. Это достигается использованием технологии "клиент/сервер".
Архитектура клиент-сервер –
это общее понятие
Клиент- это часть системы требующая для своей работы предоставление некоторых сервисов (услуг).
Сервер – это часть системы, обслуживающая клиента, т.е. предоставляющая сервисы по запросам клиентов.
Коммутационные средства – программные и технические средства, обеспечивающие взаимодействие сервера с клиентами.
Основной принцип архитектуры
клиент-сервер применительно к
технологии баз данных
1 функции
ввода-вывода и отображения
2 функции реализации прикладной задачи
3 функции
обработки данных внутри
4 функции управления базой данных
5 служебные функции
Состав типового приложения, работающего с БД, представлен на рис.3.1.
Рис.3.1. Состав типового приложения
1. Ввод-вывод и отображение предусматривает:
- формирование экранных изображений
- чтение
и запись информации в
- обработка
движений мыши и нажатий
Для этого используются различные графические интерфейсы, например,
GUI, который поддерживается в разных операционных системах Windows,
OS/2 и др.
2. Реализация
прикладной задачи означает
Обычно
для такой реализации используются
базовые или другие алгоритмические языки
(Cи++, Visual Basic и др.).
3. Обработка
данных внутри прикладной задачи
предполагает использование
4. Функции управления БД – это функции самой СУБД.
5. Служебные
функции выполняют роль связок
между первыми четырьмя
Распределение указанных 5-ти функций между клиентами и сервером является основной задачей проектирования клиент-серверных систем.
В настоящее время нет какой-либо методики такого распределения.
Как правило, распределить 5 функций строго не удается: отдельные части какой-либо функции могут присутствовать и на клиенте и на сервере.
Далее будут рассмотрены
3.2 Модели клиент
–сервер в архитектуре
баз данных
Модель удаленного доступа к данным
Клиент
Рис.3.2. Модель удаленного доступа
Частично на сервере может
присутствовать компонент
Основное достоинство –
Недостаток: Разные клиенты могут
выполнять одинаковые операции.
Следовательно, с одной стороны,
дублируется код клиентов, а с другой –
сервер выполняет одинаковые операции.
Модель активного сервера БД
В модели активного сервера функции реализации прикладной задачи и обработки данных выполняются на сервере в виде хранимых процедур и в прикладной программе клиента .
Обработка данных
выполняется операторами
В основном хранимыми
Клиент
Рис.3.3. Модель активного сервера БД
К достоинству модели следует отнести то, что хранимые процедуры могут быть использованы разными клиентами. Это существенно уменьшает дублирование отдельных фрагментов прикладной программы.
Недостатком
модели является большая
Данная трехзвенная модель находит В настоящее время все большее число поклонников находит трехзвенная модель сервера приложений (рис.3.4). Это обусловлено ее гибкостью
Клиент Сервер приложений Сервер БД
Рис.3.4. Модель сервера приложений
Общие части многих приложений различных пользователей (прежде всего это относится к задачам проверки целостности данных) реализуются на сервере приложений в виде хранимых процедур. Причем реализация общих задач может быть выполнена на любых алгоритмических языках.
К недостаткам модели следует отнести большие затраты на ее реализацию, обусловленные большей сложностью.
Кроме того эта модель менее надежная по сравнению с двухзвенной.
Клиенты и серверы в принципе могут располагаться на одном ПК.
Но более типично использование нескольких ПК, связанных сетью.
Для работы с сетью
На рис.3.5 показано взаимодействие между компонентами ППО.
Клиент выдает запрос на SQL. ППО передает этот запрос в виде сообщения сетевым протоколам. При этом ППО форматирует это сообщение в соответствии с требованиями соответствующего протокола. На приемном конце ППО преобразует сообщение в запрос, понятный серверу.
Таким образом, ППО обычно включает в себя 3 компонента, показанные на рис.3.6:
-программный интерфейс приложения (Application Programming Interfase, API),
- сетевой транслятор.
Рис. 3.6. Компоненты ППО
Эти компоненты (или их функции) в основном распределяются по нескольким уровням программного обеспечения.
Программный интерфейс приложения (АР1) открыт для клиентского приложения. Программист взаимодействует с ППО через АРI, поставляемый вместе с ППО. API ППО позволяет программисту писать стандартный код SQL вместо кода, специфичного для данного сервера БД. Иначе говоря, АР1 обеспечивает независимость клиентского процесса от сервера БД. Такая независимость означает, что сервер можно заменить без необходимости переписывать клиентское приложение.
Транслятор запросов транслирует SQL-запросы в специфичный синтаксис сервера -БД. На уровне транслятора БД SQL-запрос отображается на SQL-протокол БД. Поскольку сервер базы данных может иметь какие-то специальные функциональные возможности, транслятор запросов к БД может оптимально транслировать основной SQL-запрос в специфичный формат, используемый на сервере БД. Если SQL-запрос использует данные от двух различных серверов БД, то транслятор запросов берет на себя заботу о связи с каждым сервером и об извлечении данных в формате, подходящем для клиентского приложения.
Сетевой транслятор управляет сетевыми коммуникационными протоколами.
Напомним, что
сервер может использовать любые
сетевые протоколы. Поэтому если клиентское
приложение подключается к двум базам
данных, в одной из которых используется
протокол TCP/IP, а в другой IPX/SPX , то
сетевой транслятор обрабатывает все
детали связи каждой базы данных прозрачно
для клиентского приложения.