Технология "Клиент-сервер"

Автор работы: Пользователь скрыл имя, 19 Сентября 2011 в 18:56, курс лекций

Описание работы

Технология «клиент-сервер» пришла на смену централизованной схеме управления вычислительным процессом на мейнфреймах еще в 80-х годах прошлого века. Благодаря высокой живучести и надежности вычислительной системы, легкости масштабирования, возможности одновременной работы пользователя с несколькими приложениями, высокой оперативности обработки информации, обеспечению пользователя высококачественным интерфейсом и другим возможностям эта весьма перспективная и далеко не исчерпавшая себя технология получила свое дальнейшее развитие.

Файлы: 1 файл

Технология (ПОКС).doc

— 645.50 Кб (Скачать файл)

       - WEB Server – чаще всего включают  в поставку самый популярный  и мощный Apache;

       - WEB Container – позволяет выполнять  JSP и сервлеты. Для Apache таким сервисом  является Tomcat;

       - CORBA Agent – может предоставлять распределенную директорию для хранения CORBA объектов;

       - Messaging Service – брокер сообщений; 

       - Transaction Service – уже из названия  понятно, что это сервис транзакций;

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

       - Java Mail – данный сервис может  предоставлять сервис к SMTP;

       - JMS (Java Messaging Service) – обработка синхронных  и асинхронных сообщений;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       При этом RDA-модель имеет ряд ограничений.

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

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

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

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

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

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

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

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

       Преимущества DBS-модели перед RDA-моделью очевидны: это и возможность централизованного  администрирования различных функций, и снижение трафика сети из-за того, что вместо SQL-запросов по сети передаются вызовы хранимых процедур, и возможность разделения процедуры между несколькими приложениями, и экономия ресурсов компьютера за счет использования единожды созданного плана выполнения процедуры. Однако есть и недостатки.

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

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

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

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

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

Информация о работе Технология "Клиент-сервер"