Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информация и данные предметных областей.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.32 Mб
Скачать
  1. Реализация клиент-сервер.

Основные правила архитектуры клиент-сервер. Модели распределений. Модели архитектуры клиент-сервер: RDA-модель, DBS-модель, AS-модель. Преимущества и недостатки. Технологии COM\DCOM, CORBA, MIDAS, EJB

Архитектура системы — представление о совокупности функциональных компонентов системы и их взаимосвязях.

Практически все модели организации взаимодействия пользователя с базой данных, построены на основе архитектуры клиент-сервер.

Наиболее популярна в настоящее время архитектура клиент-сервер, когда множество машин-клиентов осуществляют доступ к одному серверу баз данных. В таких системах, которые можно определить как системы типа много-клиентов/один-сервер, проблемы управления базой данных решаются относительно просто, поскольку вся она хранится на одном сервере.

Более распределенной и более гибкой является архитектура типа много-кпиентов/много-серверов, когда база данных размещена на нескольких серверах, которым, для того чтобы вычислить результат пользовательского запроса или выполнить транзакцию, необходимо взаимодействовать друг с другом.

В истинно распределенной СУБД клиентские и серверные машины не различаются. В идеале каждый узел может выступать и как клиент, и как сервер. Такие архитектуры, тип которых определяют как равный-к-равному (peer-to-peer), требуют сложных протоколов управления данными, распределенными по нескольким узлам.

Архитектура клиент-сервер основана на распределении функций между двумя типами независимых и автономных процессов: серверами и клиентами. Сеть связывает воедино серверы и клиенты, предоставляя средства связи.

Если вся обработка данных происходит на стороне сервера, а клиент выполняет только функции интерфейса с пользователем, то клиентское приложение называют «тонким» клиентом. Если часть обработки данных происходит на стороне клиента — то «толстым» клиентом.

Архитектура клиент-сервер включает в себя три основных компонента:

1. Клиенты. Клиент представляет собой любой процесс компьютера, который запрашивает сервис от сервера. Клиент также называется интерфейсным приложением. Клиентский процесс, базируется на графическом интерфейсе пользователя.

2. Серверы. Сервер — это компьютерный процесс, предоставляющий сервис клиентам. Сервер также называют серверным приложением. Серверный процесс характеризуется независимостью от местоположения, оптимизацией использования ресурсов, масштабируемостью и способностью к взаимодействию с другими системами.

3. Коммуникационное промежуточное программное обеспечение передачи данных (ППО). Представляет собой любой компьютерный процесс, посредством которого клиенты и серверы взаимодействуют друг с другом. Это ПО называют еще уровнем коммуникаций. ППО обычно привязано к сети. Все клиентские запросы и ответы сервера передаются по сети в форме сообщений, в которых содержатся управляющая информация и данные.

Клиентский процесс, базирующийся на графическом интерфейсе пользователя, запрашивает сервисы у серверного приложения. Клиентский процесс и серверный процесс взаимодействуют при помощи промежуточного программного обеспечения (ППО).

Клиентский процесс посылает SQL-запрос через коммуникационное ППО. Коммуникационное ППО направляет SQL-запрос процессу сервера БД. Процесс сервера БД получает запрос, проверяет его и выполняет.

ППО гарантирует, что сообщения между клиентами и серверами будут правильно маршрутизоваться и доставляться по нужному адресу.

Правила архитектуры клиент-сервер

Для корректного взаимодействия компонентов клиент-серверной архитектуры между собой требуется их соответствие некоторым основным правилам. Эти правила должны в равной степени выполнять и клиенты, и серверы, и ППО.

Основные правила архитектуры клиент-сервер:

■ независимость от оборудования. Требует, чтобы процессы клиента, сервера и ППО могли выполняться на различных аппаратных платформах (IBM, DEC, Apple и др.) без какого-либо изменения функциональных возможностей;

* независимость от программного обеспечения:

> операционной системы,

> сетевой системы,

> приложений

Требует, чтобы процессы клиента, сервера и ППО поддерживали несколько операционных системи (Windows, OS/2, Linux, Unix), различные сетевые протоколы (TCP/IP, IPX) и различные приложения (таблицы, базы данных, электронную почту и т.д.).

■ открытый доступ к сервисам. Все клиенты в системе должны иметь неограниченный доступ ко всем сервисам, предоставляемым внутри сети. И эти сервисы не должны зависеть от расположения клиента или сервера;

■ распределение процессов:

> автономность процессов,

> максимальное использование локальных ресурсов,

> масштабируемость и гибкость,

> способность к взаимодействию и интегрируемость

Обработка информации распределяется между клиентами и серверами. Распределение нагрузки по обработке данных должно соответствовать следующим правилам.

1. Процессы клиента и сервера должны быть автономными с четко определенными границами и функциями. Это способствует усилению модульности и гибкости системы.

2. Локальное использование ресурсов должно быть максимальным (со стороны клиента и сервера).

3. Масштабируемость и гибкость требуют, чтобы процессы клиента и сервера можно было легко обновить для выполнения на более мощной аппаратной и программной платформе.

4. Способность к взаимодействию и интегрируемость требуют, чтобы процессы клиента и сервера легко интегрировались между собой при формировании системы.

■ стандартизация. Все правила клиент-серверной архитектуры должны быть основаны на стандартах.

Прикладные программы, реализованные в рамках технологии клиент-сервер, как правило, имеют распределенный характер. Иными словами, часть функций прикладной программы (или, проще, приложения) будет реализована в программе-клиенте, другая — в программе-сервере, причем для их взаимодействия будет определен некоторый протокол.

Основной принцип технологии клиент-сервер заключается в разделении функций стандартного интерактивного приложения на 4 группы, имеющих различную природу:

1. Функции ввода и отображения данных (Presentation Logic) — презентационная логика.

2. Прикладные функции, определяющие основные алгоритмы решения задач приложения и характерные для данной предметной области (например, для банковской системы — открытие счета, перевод денег с одного счета на другой и т.д.) (Business Logic) — бизнес-логика.

3. Фундаментальные функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т.д.) (Database Logic and Manager System). Это функции обработки данных внутри приложения — Логика обработки данных и Процессор управления данными.

4. Служебные функции, играющие роль связок между функциями первых трех групп.

В соответствии с этим в любом приложении выделяются следующие логические компоненты:

■ компонент представления, реализующий функции первой группы;

■ прикладной компонент, поддерживающий функции второй группы;

■ компонент доступа к информационным ресурсам, поддерживающий функции третьей групп, а также вводятся и уточняются соглашения о способах их взаимодействия (протокол взаимодействия).