В чем суть технологии клиент сервер. Технология клиент-сервер




3 Технология «Клиент – сервер»

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

Со временем малофункциональную модель файлового сервера для локальных сетей (FS) заменили появившиеся одна за одной модели структуры «Клиент- сервер» (RDA, DBS и AS).

Заняв нишу баз данных, технология «Клиент – сервер» стала основной технологией глобальной сети Internet. Далее, в результате перенесения идей сети Internet в среду корпоративных систем, появилась технология Intranet. В отличие от технологии «Клиент-сервер» эта технология ориентирована не на данные, а на информацию в ее окончательно готовом к потреблению виде. Вычислительные системы, построенные на основе Intranet, имеют в своем составе центральные серверы информации и распределенные компоненты представления информации конечному пользователю (программы-навигаторы, или браузеры). Взаимодействие между клиентом и сервером в Intranet происходит при помощи web – технологий.

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

3.1 Классическая двухуровневая архитектура «Клиент – сервер»

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

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи (рисунок 6).

Рисунок 6 – Архитектура «Клиент – сервер»

Компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом, называют сервером этого ресурса.

Компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом, называют клиентом этого ресурса.

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

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

- модули интерфейса с пользователем ;

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

- модули хранения данных ;

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

- модули обработки данных (функции управления ресурсами);

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

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

В соответствии с разделением функций в любом приложении выделяются следующие компоненты:

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

- прикладной компонент;

- компонент управления ресурсом.

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

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

Чтобы избежать несогласованности различных элементов архитектуры были созданы две модификации двухзвенной архитектуры «Клиент – сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»).

В данных архитектурах разработчики попытались выполнять обработку данных на одной из двух физических частей - либо на стороне клиента («Толстый клиент»), либо на сервере («Тонкий клиент).

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

Есди все-таки разрабатывается двухуровневая классическая архитектура «Клиент – сервер», то необходимо помнить следующее:

- архитектура «Толстый сервер» аналогична архитектуре «Тонкий клиент» (рисунок 33) ;

Рисунок 33. – Архитектура «Тонкий клиент»

Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки:

Усложняется реализация, так как языки типа SQL не приспособлены для разработки подобного ПО и нет хороших средств отладки;

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

Программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных;

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

- архитектура «Тонкий сервер» аналогична архитектуре «Толстый клиент» (рисунок 34).

Обработка запроса происходит на стороне клиента, то есть происходит передача клиенту всех необработанных данных с сервера. При этом архитектуры имеют следующие недостатки:

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

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

Перегружается сеть вследствие передачи по ней необработанных данных;

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

Рисунок 34. – Архитектура «Толстый клиент»

Для решения перечисленных проблем используются многоуровневые (три и более уровней) архитектуры «Клиент-сервер».

3.2 Трехуровневая модель

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

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

Сервер приложений – это программное обеспечение, являющееся промежуточным слоем между клиентом и сервером (рисунок 35).

Рисунок 35 - Сервер приложений

Существует несколько категорий продуктов промежуточного слоя:

Message orientated – яркие представители MQseries и JMS;

Object Broker – яркие представители CORBA и DCOM;

Component based – яркие представители.NET и EJB.

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

Существует несколько серверов приложений от таких знаменитых компаний как Sun Microsystem, Borland, IBM, Oracle и каждый из них отличается набором предоставляемых сервисов (производительность в данном случае учитывать не будем). Эти сервисы облегчают программирование и развертывание приложений масштаба предприятия. Обычно сервер приложений предоставляет следующие сервисы:

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

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

Использование технологии «клиент-сервер»

Со временем не очень функциональную модель файлового сервера для локальных сетей (FS) сменили появившиеся одна задругой модели строения «Клиент сервер» (RDA, DBS и AS).

Технология «Клиент - сервер», которая заняла самый низ базы данных, стала главной технологией глобальной сети Internet. Далее, вследствие перенесения идей сети Internet в сферу корпоративных систем, возникла технология Intranet. В различие от технологии «Клиент-сервер» такая технология обращена на информацию в ее окончательно готовом виде к потреблению, а не на данные. Вычислительные системы, которые построенны на основе Intranet, обладают в своем составе центральные серверы информации и определенные компоненты представления информации последнему пользователю (браузеры или программы-навигаторы). Дейсвие между сервером и клиентом в Intranet совершается с помощью web - технологий.

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

Классическая двухуровневая архитектура «Клиент - сервер»

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

Технология «Клиент - сервер» - это архитектура программного комплекса распределяющая прикладной программой по двум логически различным частям (сервер и клиент), которые взаимодействуют по схеме «запрос-ответ» и решают собственные определенные задачи.

Программа (или компьютер), управляющая и/или владеющая каким-нибудь ресурсом, называется сервером этого ресурса.

Программа (компьютер или), запрашивающая и пользующаяся каким-либо ресурсом, называется клиентом этого ресурса.

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

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

Модули интерфейса с пользователем;

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

Модули хранения данных;

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

Модули обработки данных (функции управления ресурсами);

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

В соответствии с разделением функций в каждом приложении выделяют следующие компоненты:

  • - компонент представления данных;
  • - прикладной компонент;
  • - компонент управления ресурсом.

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

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

Чтобы избежать несогласованности разных элементов архитектуры, создали две модификации двухзвенной архитектуры «Клиент - сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»).

В этой архитектуре разработчики попытались выполнять обработку данных на одной из двух физических частей - либо на стороне клиента («Толстый клиент»), либо на сервере («Тонкий клиент).

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

Если же создается двухуровневая классическая архитектура «Клиент - сервер», то нужно знать следующие факты:

Архитектура «Толстый сервер» аналогична архитектуре «Тонкий клиент»

Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки:

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

Обработка запроса совершается на стороне клиента, то есть совершается передача клиенту всех необработанных данных с сервера. В этом случае у архитектур имеются негативные стороны:

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

Для решения перечисленных проблем нужно использовать многоуровневые (три и более уровней) архитектуры «Клиент-сервер».

Трехуровневая модель .

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

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

Сервер приложений - это программное обеспечение, которое является промежуточным пластом между сервером и клиентом.

  • - Message orientated - яркие представители MQseries и JMS;
  • - Object Broker - яркие представители CORBA и DCOM;
  • - Component based - яркие представители.NET и EJB.

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

Есть немного серверов приложений от таких знаменитых компаний как Sun, Oracle Microsystem, IBM, Borland и каждый из них различается комплектом предоставляемых сервисов (производительность учитывать в данном случае не буду). Эти сервисы облегчают программирование и развертывание приложений масштаба предприятия. Как правило сервер приложений дает следующие сервисы:

  • - 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.

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

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

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

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

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

Положительными сторонами данной технологии являются:

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

Но достоинства FS - модели превосходят ее недостатки:

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

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

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

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

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

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

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

  • - модель доступа к удаленным данным (Remote Date Access - RDA);
  • - модель сервера базы данных (DateBase Server - DBS);
  • - модель сервера приложений (Application Server - AS).

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

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

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

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

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

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

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

Результаты анализа моделей технологий «Файловый сервер» и «Клиент - сервер» представлены в таблице 1.

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

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

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

Преимущества

  • Делает возможным, в большинстве случаев, распределение функций вычислительной системы между несколькими независимыми компьютерами в сети. Это позволяет упростить обслуживание вычислительной системы. В частности, замена, ремонт, модернизация или перемещение сервера не затрагивают клиентов.
  • Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.
  • Позволяет объединить различные клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п.

Недостатки

  • Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть.
  • Поддержка работы данной системы требует отдельного специалиста - системного администратора.
  • Высокая стоимость оборудования.

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

Частные случаи многоуровневой архитектуры:

Сеть с выделенным сервером

Сеть с выделенным сервером (англ. Client/Server network ) - это локальная вычислительная сеть (LAN) , в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции или клиенты (такие, как ПК) должны обращаться к ресурсам сети через сервер(ы).

Литература

Валерий Коржов Многоуровневые системы клиент-сервер . Издательство Открытые системы (17 июня 1997). Архивировано из первоисточника 26 августа 2011. Проверено 31 января 2010.


Wikimedia Foundation . 2010 .

Департамент общего и профессионального образования Брянской области

Государственное образовательное учреждение

Клинцовский текстильный техникум

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ

Технология «Клиент – сервер»

Студент гр. А-90______________________(Петроченко А.О.)

Преподаватель _______________________ (Широкова А.Л.)

Клинцы – 2011

1. Серверы. Основные понятия серверов

2. Модель клиент-сервер

3. Классификация стандартных серверов

4. Вывод

1. Серверы. Основные понятия серверов

Сервер (от англ. server, обслуживающий). В зависимости от предназначения существует несколько определений понятия сервер.

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

2. Сервер (программное обеспечение) - программное обеспечение, принимающее запросы от клиентов (в архитектуре клиент-сервер).

3. Сервер (аппаратное обеспечение) - компьютер (или специальное компьютерное оборудование) выделенный и/или специализированный для выполнения определенных сервисных функций.

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

Взаимосвязь понятий. Серверное приложение (сервер) запускается на компьютере, так же называемом "сервер", при этом при рассмотрении топологии сети, такой узел называют "сервером". В общем случае может быть так, что серверное приложение запущено на обычной рабочей станции, или серверное приложение, запущенное на серверном компьютере в рамках рассматриваемой топологии выступает в роли клиента (т.е. не является сервером с точки зрения сетевой топологии).

2. Модель клиент-сервер

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

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

По такой схеме могут быть построены системы обработки данных на основе СУБД, почтовые и другие системы. Мы будем говорить о базах данных и системах на их основе. И здесь удобнее будет не просто рассматривать клиент-серверную архитектуру, а сравнить ее с другой - файл-серверной.

В файл-серверной системе данные хранятся на файловом сервере (например, Novell NetWare или Windows NT Server), а их обработка осуществляется на рабочих станциях, на которых, как правило, функционирует одна из, так называемых, "настольных СУБД" - Access, FoxPro, Paradox и т.п..

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

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

Рис. Сравнение файл-серверной и клиент-серверной моделей

В клиент-серверной системе функционируют (как минимум) два приложения - клиент и сервер, делящие между собой те функции, которые в файл-серверной архитектуре целиком выполняет приложение на рабочей станции. Хранением и непосредственным манипулированием данными занимается сервер баз данных, в качестве которого может выступать Microsoft SQL Server, Oracle, Sybase и т.п..

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

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

Что дает архитектура клиент-сервер?

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

Надежность

Сервер баз данных осуществляет модификацию данных на основе механизма транзакций, который придает любой совокупности операций, объявленных как транзакция, следующие свойства:

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

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

Масштабируемость

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

Общеизвестно, что возможности настольных СУБД серьезно ограничены - это пять-семь пользователей и 30-50 Мб, соответственно. Цифры, разумеется, представляют собой некие средние значения, в конкретных случаях они могут отклоняться как в ту, так и в другую сторону. Что наиболее существенно, эти барьеры нельзя преодолеть за счет наращивания возможностей аппаратуры.

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

Безопасность

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

Гибкость

В приложении, работающем с данными, можно выделить три логических слоя:

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

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

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

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

Рис. Трехуровневая модель клиент-серверного приложения

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

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

1) В файл-серверной системе мы "просто" вносим изменения в приложение и обновляем его версии на рабочих станциях. Но это "просто" влечет за собой максимальные трудозатраты.

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

Преимущества

  • Делает возможным, в большинстве случаев, распределение функций вычислительной системы между несколькими независимыми компьютерами в сети. Это позволяет упростить обслуживание вычислительной системы. В частности, замена, ремонт, модернизация или перемещение сервера не затрагивают клиентов.
  • Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.
  • Позволяет объединить различные клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п.

Недостатки

  • Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть.
  • Поддержка работы данной системы требует отдельного специалиста - системного администратора.
  • Высокая стоимость оборудования.

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

Частные случаи многоуровневой архитектуры:

Сеть с выделенным сервером

Сеть с выделенным сервером (англ. Client/Server network ) - это локальная вычислительная сеть (LAN) , в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции или клиенты (такие, как ПК) должны обращаться к ресурсам сети через сервер(ы).

Литература

Валерий Коржов Многоуровневые системы клиент-сервер . Издательство Открытые системы (17 июня 1997). Архивировано из первоисточника 26 августа 2011. Проверено 31 января 2010.


Wikimedia Foundation . 2010 .