Файл: Технология «клиент-сервер».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.02.2024

Просмотров: 35

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

- RMI (Remote Method Invocation) – сервис для вызова удаленных процедур.

Многоуровневая клиент-серверная система достаточно легко может быть перенесена на системы Web-технологии - для этого нужно произвести замену клиентской части на универсальный или специализированный браузер, а на сервере приложений установить дополнительный Web-сервер и небольшие программы для вызова процедур сервера. Чтобы разрабатывать такие программы можно воспользоваться как Common Gateway Interface (CGI), так и более современным языком Java.

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

Из всего вышеописанного можно понять, что двухуровневая архитектура сильно отстаёт от многоуровневой архитектуры, поэтому в современных системах используют только многоуровневую архитектуру «Клиент – сервер», которая может быть выполнена в трёх модификациях - RDA, DBS и AS.

1.3 Различные модели технологии «Клиент – сервер»

Среди первых базовых технологий для локальной сети самой первой является модель файлового сервера (FS). В своё время данная технология была особенно популярна среди отечественных разработчиков, которые пользовались такими системами, как FoxPro, Clipper, Clarion, Paradox и подобные.

В моделях FS функции всех трёх компонентов совмещаются в одном коде, который выполняет компьютер-сервер (хост). В такой архитектуре компьютер-клиент вообще отсутствует, вводом и отображением данных занимается терминал или компьютер, работающий в режиме эмуляции терминала. Приложения для такой модели разрабатывают на языках четвертого поколения (4GL). Согласно FS один из компьютеров сети должен считаться файловым сервером и должен предоставлять другим компьютерам услугу по обработке файлов. Файловый сервер управляется при помощи сетевых ОС и служит компонентом доступа к информационным ресурсам. На других же ПК в сети установлено и функционирует приложение, в коде которого совмещен компонент представления и прикладные компоненты.[4]

Взаимодействие клиента и сервера осуществляется по следующей технологии: запрос передаётся на файловый сервер, который отправляет его СУБД, которая размещает на компьютере-клиенте, требуемые блоки данных. Весь процесс обработки осуществляется терминалом (рисунок 5).


Протоколы обмена представляют собой наборы вызовов, которые обеспечивают приложению доступы к файловой системе на файл-сервере.

Рисунок 5 - Модель файлового сервера

Преимущества данной технологии:

- простая разработка приложений;

- удобные инструменты администрирования и обновления программного обеспечения благодаря компактному расположению всех компонентов на одном персональном компьютере;

- низкая цена необходимого оборудования для организации рабочих мест.

Недостатки, которые перекрывают преимущества FS – модели:

- большая загруженность сети;

Несмотря на небольшие объёмы данных, которые пересылаются по сети, время отклика от них является критичным, так как каждый символ, который ввёл пользователь на терминале, передаётся на сервер, обрабатывается приложением и возвращается обратно, чтобы быть выведенным на экран терминала. Кроме этого существуют проблемы распределения нагрузки на несколько компьютеров.

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

- отсутствует графический интерфейс.

Чтобы решить проблемы, присущие технологии «Файл – сервер» стала применяться прогрессивная технология «Клиент – сервер».

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

Каковы будут различия во время работы приложений в рамках технологии «Клиент-сервер» определяется согласно четырём факторам:

- какой используется вид программного обеспечения в логическом компоненте;

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

- каков принцип распределения логических компонентов по компьютерам сети;

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

Согласно вышеописанным данным, можно выделить три подхода, каждый из них реализуется в соответствующей модели технологии «Клиент – сервер»:

- модель доступа к удаленным данным (Remote Date Access - RDA);

- модель сервера базы данных (DateBase Server - DBS);


- модель сервера приложений (Application Server - AS).

Далее будут рассмотрены функции и характеристики различных моделей технологии «Клиент-сервер».

Модель доступа к удаленным данным (RDA) – представляет собой сетевую архитектуру технологии «Клиент – сервер», в которой коды компонентов представления и прикладных компонентов совмещаются и выполняются на компьютере-клиенте. Доступы к информационному ресурсу обеспечивает непроцедурный язык (к примеру, язык запрос к базам данных SQL) или вызовы функций из специальной библиотеки (при наличии специального интерфейса прикладного программирования - API).[5]

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

Рисунок 6 - Модель доступа к удаленным данным

Главное преимущество RDA-модели — это предоставление широкого выбора среди инструментальных средств нужных для разработки приложения, обеспечивая быстрое создание desktop-приложения, которое сможет работать с ориентированными на язык SQL СУБД. Обычно в таких инструментальных средствах имеется графический интерфейс для пользователя, работающего в ОС, а также программные средства для автоматического генерирования кода, в которых имеются прикладные функции и функции представления.[6]

Но, несмотря на вышеописанные возможности RDA-модель имеет некоторый ряд ограничений:

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

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


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

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

Несмотря на широкую распространённость, RDA-модели вскоре была заменена более технологичной DBS-моделью.

Модель сервера баз данных (DBS) – является сетевой архитектурой технологии «Клиент – сервер», основа которой состоит из механизма хранимых процедур, которые реализуют прикладные функции. В DBS – модели информационным ресурсом является база данных из-за работы механизма хранимых процедур, который реализуется в СУБД.

В DBS-модели приложения являются распределенными. Процесс выполнения компонента представления происходит на компьютере-клиенте, а прикладной компонент, который реализует бизнес-функции, оформляется как в виде набора хранимых процедур и процесс его функционирования происходит на компьютере-сервере БД. Хранимая процедура также называется компилируемой резидентной процедурой или процедурой базы данных (рисунок 7).

Рисунок 7 - Модель сервера базы данных.

Преимущества DBS-модели перед RDA-моделью в следующем:

- возможность организации централизованной администрации различных функций, что существенно снизит трафик сети так как, вместо SQL-запроса по сети будет передаваться вызов хранимой процедуры;

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

У DBS-модели есть и свои недостатки:

1) Разные процедурные расширения на языке SQL, которые используются для написания хранимой процедуры, не являются языками для программирования. Так как они встроены в конкретную СУБД из-за чего, имеют ограниченные возможности. Поэтому система, которая прикладные компоненты реализует с помощью хранимых процедур, не может называться мобильной по отношению к СУБД. В большинстве СУБД отсутствует возможность отладки и тестирования хранимой процедуры, что часто приводит к сбою, который может привести к полной неработоспособности всей базы данных.


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

3) DBS-модель не может обеспечить требуемую эффективность использования вычислительного ресурса. Ограничение присутствующие в ядре СУБД не позволяет полностью организовать эффективную балансировку загрузки, миграции процедур на другой компьютер-сервер БД и реализовать другие полезные функции, к примеру, запрос с приоритетом.

На практике часто используют синтез RDA и DBS-модели, чтобы выполнять построение многопользовательской информационной системы: поддержку целостности базы данных и некоторых её простейших прикладных функций хранимой процедуры выполняет DBS-модель, а за реализацию других более сложных функций, которые работают непосредственно в прикладной программе на компьютере-клиенте, отвечает RDA-модель.

Все недостатки DBS - модели были исправлены в AS-модели, в которой в большей степени реализованы сильные стороны технологии «клиент-сервер».

Модель сервера приложений (AS) (рисунок 8) – является сетевой архитектурой технологии «Клиент – сервер», она представляет собой процесс, который выполняется на компьютере-клиенте и отвечает за интерфейс с пользователем (процесс ввода и отображения данных). Основной элемент данной модели — это прикладной компонент, который называется сервером приложения, который функционирует на удаленном компьютере. Сервер приложений представляет собой группу прикладных функций, которые оформлены в виде сервисов (служб). Каждым сервисом предоставляются некоторые услуги для всех программ, которыми ими могут воспользоваться.

Рисунок 8 - Модель сервера приложений.

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

Детали процесса реализации работы прикладных функций на сервере приложений скрываются от клиента приложения. Клиентом, может быть и стандартный браузер, который обращаться с запросом к конкретным службам, при том условии, что серверы приложений являются обезличеными и служат лишь для того, чтобы создавать графический интерфейс для пользователя, позволяя повысить эффективность управления балансом загрузки. Запросы, которые поступают от клиента, строятся в очередь к AS-процессу, который в это время занимается их извлечением и передачей их для прохождения обработки соответствующим службам согласно их приоритетам.