Технология клиент-сервер. Клиент-серверные технологии Что такое клиент и сервер

«Клиент-сервер» - это модель взаимодействия компьютеров в сети.

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

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

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

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

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

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

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

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


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

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

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

Язык — это совокупность процедурных и непроцедурных команд, поддерживаемых СУБД.

Наиболее употребительными языками являются SQL и QBE . Ядро выполняет все остальные функции, которые, включены в понятие «обработка базы данных».

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

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

Основные достоинства систем «клиент-сервер» состоят в следующем:

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

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

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

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

Однако системам «клиент-сервер» присущи также и недостатки:

Трудность администрирования, вследствие территориальной разобщенности и неоднородности компьютеров на рабочих местах;

Недостаточная степень защиты информации от несанкционированных действий;

Закрытый протокол для общения клиентов и сервера, специфичный для данной информационной системы.

Для устранения указанных недостатков используется архитектура систем Интранет, сконцентрировавших и объединивших в себе лучшие качества централизованных систем и традиционных систем «клиент-сервер».

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

Web-серверы

Изначально представляли доступ к гипертекстовым документам по протоколу HTTP (Huper Text Transfer Protocol). Сейчас поддерживают расширенные возможности, в частности работу с бинарными файлами (изображения, мультимедиа и т.п.).

Серверы приложений

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

Серверы баз данных

Серверы баз данных используются для обработки пользовательских запросов на языке SQL. При этом СУБД находится на сервере, к которому и подключаются клиентские приложения.

Файл-серверы

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

Прокси-сервер

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

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

Файрволы (брандмауэры)

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

Почтовые серверы

Представляют услуги по отправке и получению электронных почтовых сообщений.

Серверы удаленного доступа (RAS)

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

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

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

«Тонкий» клиент

Этот термин определяет клиента, вычислительных ресурсов которого достаточно лишь для запуска необходимого сетевого приложения через web-интерфейс. Пользовательский интерфейс такого приложения формируется средствами статического HTML (выполнение JavaScript не предусматривается), вся прикладная логика выполняется на сервере.
Для работы тонкого клиента достаточно лишь обеспечить возможность запуска web-браузера, в окне которого и осуществляются все действия. По этой причине web-браузер часто называют "универсальным клиентом".

«Толстый» клиент

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

В последнее время все чаще используется еще один термин: «rich»-client. «Rich«-клиент своего рода компромисс между «толстым» и «тонким» клиентом. Как и «тонкий» клиент, «rich»-клиент также представляет графический интерфейс, описываемый уже средствами XML и включающий некоторую функциональность толстых клиентов (например интерфейс drag-and-drop, вкладки, множественные окна, выпадающие меню и т.п.)

Прикладная логика «rich»-клиента также реализована на сервере. Данные отправляются в стандартном формате обмена, на основе того же XML (протоколы SOAP, XML-RPC) и интерпретируются клиентом.

Некоторые основные протоколы «rich»-клиентов на базе XML приведены ниже:

  • XAML (eXtensible Application Markup Language) - разработан Microsoft, используется в приложениях на платформе.NET;
  • XUL (XML User Interface Language) - стандарт, разработанный в рамках проекта Mozilla, используется, например, в почтовом клиенте Mozilla Thunderbird или браузере Mozilla Firefox;
  • Flex - мультимедийная технология на основе XML, разработанная Macromedia/Adobe.

Заключение

Итак, основная идея архитектуры «клиент-сервер» состоит в разделении сетевого приложения на несколько компонентов , каждый из которых реализует специфический набор сервисов. Компоненты такого приложения могут выполняться на разных компьютерах, выполняя серверные и/или клиентские функции. Это позволяет повысить надежность, безопасность и производительность сетевых приложений и сети в целом.

Контрольные вопросы

1. В чем заключается основная идея К-С взаимодействия?

2. В чем отличия между понятиями «клиент-серверная архитектура» и «клиент-серверная технология»?

3. Перечислите компоненты К-С взаимодействия.

4. Какие задачи выполняет компонент представления в К-С архитектуре?

5. С какой целью средства доступа к БД представлены в виде отдельного компонента в К-С архитектуре?

6. Для чего бизнес-логика выделена как отдельный компонент в К-С архитектуре?

7. Перечислите модели клиент-серверного взаимодействия.

8. Опишите модель «файл-сервер».

9. Опишите модель «сервер БД».

10. Опишите модель «сервер приложений»

11. Опишите модель «сервер терминалов»

12. Перечислите основные типы серверов.

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

Со временем не очень функциональную модель файлового сервера для локальных сетей (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-модель это лучший вариант для того, чтобы создать большие информационные системы, а также при использовании низкоскоростных каналов связи.

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

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

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

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

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

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

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

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

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

Технология клиент-сервер привносит в информационную систему такие качества:

  • Надежность

Модификация данных осуществляется сервером баз данных при помощи механизма транзакций, придающего совокупности операций такие свойства, как: 1) атомарность, которая обеспечивает целостность данных при любом завершении транзакции; 2) независимость транзакций разных пользователей; 3) устойчивость к сбоям - сохранение результатов завершения транзакции.

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

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

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

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

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

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

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

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

Рис. 4.1. Типовая архитектура клиент-серверной технологии

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

На основе распределения этих компонентов между рабочей станцией и сервером сети выделяют модели архитектуры «клиент-сервер»:

· модель доступа к удаленным данным (рис. 4.2). На сервере расположены только данные:

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

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

· модель сервера управления данными (рис. 4.3):

Рис. 4.3. Модель сервера управления данными

Особенности данной модели: уменьшение объемов информации, передаваемых по сети, так как выборка необходимых информационных элементов осуществляется на сервере, а не на рабочих станциях; унификация и широкий выбор средств создания приложений; отсутствие четкого разграничения между компонентом представления и прикладным компонентом, что затрудняет совершенствование вычислительной системы. Целесообразно использовать в случае обработки умеренных объемов информации, при этом сложность прикладного компонента должна быть невысокой,

· модель комплексного сервера (рис. 4.4):

Рис. 4.4. Модель комплексного сервера

Преимущества модели: высокая производительность, централизованное администрирование, экономия ресурсов сети. Такой сервер оптимален для крупных сетей, ориентированных на обработку больших и увеличивающихся со временем объемов информации;

· трехзвенная архитектура «клиент-сервер» (рис. 4.5). Используется при усложнении и увеличении ресурсоемкости прикладного компонента.

Рис. 4.5. Трехзвенная архитектура

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

В рамках архитектуры «клиент-сервер» существуют два основных понятия:

· «тонкий» клиент. Используется мощный сервер БД и библиотека хранимых процедур, позволяющих производить вычисления, реализующие основную логику обработки данных, непосредственно на сервере. Клиентское приложение, соответственно, предъявляет невысокие требования к аппаратному обеспечению рабочей станции;

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

Сетевые ИТ

Электронная почта . Возникшая самой первой, эта форма обмена электронными сообщениями (e-mail) продемонстрировала саму возможность практически мгновенного общения посредством компьютерных сетей. Архитектурно предназначенная для обмена сообщениями между двумя абонентами, она позволила обмениваться информацией группам людей. Такой модификацией стали группы или списки рассылки. С помощью ПО для работы с электронной почтой можно создавать электронные сообщения и делать вложения в них. Функция вложения используется для отправки по почте документов любого типа, например текстовых документов, электронных таблиц, мультимедиа файлов, файлов БД и т.д. Разработанное позже ПО для фильтрации текста расширило возможности электронной почты, чтобы помочь пользователю в структурировании, направлении и фильтрации сообщений. Потребность в этих услугах обусловлена тем, что постоянно растет количество почты, которая почти или совсем не нужна пользователю (Spam). ПО для фильтрации может обеспечивать доставку пользователям только персональных сообщений, содержащих важные для них новости, а также помогает находить информацию, необходимую пользователям в процессе принятия решений.

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

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

Наиболее распространенными современными средствами интерактивного общения являются Web-приложения, которые поддерживают следующие формы организации общения:

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

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

o Блоги (Web Log - Web-журнал, Web-протокол). В этих сервисах каждый участник ведет собственный журнал - оставляет записи в хронологическом порядке. Темы записей могут быть любыми, самый распространенный подход - это ведение блога как собственного дневника. Другие посетители могут оставлять комментарии на эти записи. В этом случае пользователь, помимо возможности вести свой журнал, получает возможность организовывать листинговый просмотр - список записей из журналов «друзей», регулировать доступ к записям, искать себе собеседников по интересам. На базе таких систем создаются сообщества по интересам - журналы, которые ведутся коллективно. В таком сообществе его членом может быть свободно размещено любое сообщение по направлению деятельности сообщества.

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

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

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

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

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

На основе последнего подхода появилось и быстро набрало популярность довольно большое количество социальных Web-сервисов, объединенных общим названием сервисы Web 2.0. Можно указать некоторые такие ресурсы:

o Социальные закладки . Некоторые веб-сайты позволяют пользователям предоставлять в распоряжение других список закладок или популярных веб-сайтов. Такие сайты также могут использоваться для поиска пользователей с общими интересами. Пример: Delicious.

o Социальные каталоги напоминают социальные закладки, но ориентированы на использование в академической сфере, позволяя пользователям работать с БД цитат из научных статей. Примеры: Academic Search Premier, LexisNexis Academic University, CiteULike, Connotea.

o Социальные библиотеки представляют собой приложения, позволяющие посетителям оставлять ссылки на их коллекции, книги, аудиозаписи, доступные другим. Предусмотрена поддержка системы рекомендаций и рейтингов. Примеры: discogs.com, IMDb.com.

o Многопользовательские сетевые игры имитируют виртуальные миры с различными системами подсчета очков, уровней, состязательности, победителей и проигравших. Пример: World of Warcraft.

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

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

o Профессиональные социальные сети создаются для общения на профессиональные темы, обмена опытом и информацией, поиска и предложения вакансий, развития деловых связей. Примеры: Доктор на работе, Профессионалы.ру, MyStarWay.com, LinkedIn, MarketingPeople, Viadeo.

o Сервисные социальные сети позволяют пользователям объединяться в online режиме вокруг общих для них интересов, увлечений или по различным поводам. Например, некоторые сайты предоставляют сервисы, с помощью которых пользователи могут размещать для общего доступа персональную информацию, необходимую для поиска партнеров. Примеры: LinkedIn, ВКонтакте.

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