Интернет технология клиент сервер. Достоинства клиент–серверной архитектуры

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

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

2. Вторым преимуществом архитектуры «клиент-сервер» яв­ляется возможность хранения бизнес-правил (например, правил ссылочной целостности или ограничений на зна­чения данных) на сервере, что позволяет избежать дублирования кода в различных клиентских приложениях, ис­пользующих общую базу данных. Кроме того, в этом случае любое редактирование данных, в том числе и редак­тирование средствами, не предусмотренными разработ­чиками информационной системы (например, различны­ми утилитами администрирования сервера), может быть произведено только с учетом этих правил. Если послед­ние версии некоторых настольных СУБД и способны хра­нить ограничения на значения данных либо тексты SQL-запросов, то триггеры и хранимые процедуры в них, как правило, отсутствуют - их просто некому выполнять. Исключением здесь, пожалуй, является только Microsoft Data Engine, но отнести к настольным эту СУБД можно весьма условно - факти­чески MSDE представляет собой локальный сервер баз данных, обладающий всеми характерными для серверной СУБД атрибутами, включая отдельный серверный про­цесс.



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

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

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

Наиболее популярные серверные СУБД

На сегодняшний день известно более двух десятков сервер­ных СУБД, однако наиболее популярными, исходя из числа продаж и установленных копий, следует признать Oracle, Microsoft SQL Server, Informix, Sybase, DB2.

СУБД Oracle Oracle Corp http://www.oracle.com
Microsoft SQL Server Microsoft http://www.microsoft.com
СУБД Informix Informix http://www.informix.com
СУБД Sybase Sybase http://www.sybase.com
IBM DB2 IBM http://www-4.ibm.com

Таблица 7.2 - Сведения о производителях СУБД.

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

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

5 Особенности и преимущества архитектуры "клиент/сервер"

Что же представляет собой архитектура клиент/сервер? В определенной степени ее можно назвать возвратом к модели "хост-компьютер + терминалы", так как ядром такой системы является сервер баз данных , представляющий собой приложение, осуществляющее комплекс действий по управлению данными - выполнение запросов, хранение и резервное копирование данных, отслеживание ссылочной целостности, проверка прав и привилегий пользователей, ведение журнала транзакций. При этом в качестве рабочего места может быть использован обычный персональный компьютер, что позволяет не отказываться от привычной рабочей среды (рис.5).

Рис.5. Этап 4: обработка данных в архитектуре "клиент/сервер"

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

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

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

Кроме того, для описания серверных бизнес-правил, в наиболее типичных ситуациях (как в примере с заказчиками и заказами) существуют весьма удобные инструменты - так называемые CASE-средства (CASE означает Computer-Aided System Engineering), позволяющие описать подобные правила и создавать реализующие их объекты базы данных (индексы, триггеры), буквально рисуя мышью связи между таблицами, без какого бы то ни было программирования. В этом случае клиентское приложение будет избавлено от значительной части кода, связанного с реализацией бизнес-правил непосредственно в приложении. Отметим также, что часть кода, связанного с обработкой данных, также может быть реализована в виде хранимых проце дур сервера, что позволяет еще более "облегчить" клиентское приложение, г это означает, что требования к рабочим станциям могут быть не столь высоки. Это в конечном итоге удешевляет стоимость информационной системы даже при использовании дорогостоящей серверной СУБД и мощного сервера баз данных.

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

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

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

Итак, клиент-серверная информационная система состоит в простейшем случае из трех основных компонентов:

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

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

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

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

1.6. Компоненты системы

Клиент

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

Сервер

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

Сеть

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

Приложения

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

Есть два различного рода программного обеспечения для технологии клиент-сервер. Программное обеспечение, установленное на сервере (back-end tool), обеспечивает сбор, хранение и обработку данных. Примером подобных программ может служить Oracle, Sybase и Ingres.

Программное обеспечение на компьютере-клиенте (front-end application, фронтальное, предварительной обработки данных) более интерактивное, простое в использовании и более дружественное к пользователю. В качестве примера можно привести такие программы, как Developer 2000, Power Builder и Designer 2000.

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

Каждая машина обработки данных имеет свое фронтальное программное обеспечение. Для Oracle это Developer 2000, а для Sybase – Power Builder. Особенностью системы является то, что каждый фронтальный компьютер может общаться с компьютером базы данных. Так, в случае базы данных Oracle, может использоваться приложение Power Builder с небольшими изменениями.

1.6.1 Соберем все части вместе

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

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

Рис.6. Устройство системы «клиент-сервер»

1.7 Многозвенные информационные системы Internet

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

Эти проблемы решаются путем создания многозвенных информационных систем с "тонким" клиентом (рис.7).

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

Что касается своевременного обновления версий "тонкого" клиента, эта проблема нередко решается путем поставки приложений с помощью технологий, применяемых в Internet (использование Web-серверов, Web-браузеров, Internet-протоколов). Если речь идет о сети масштаба предприятия, в которой используются для корпоративных целей подобные технологии, то обычно употребляется термин intranet.

Рис.7. Этап 5: обработка данных в многозвенной архитектуре

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

Говоря об использовании Internet/Intranet, нельзя не остановиться на возможностях создания приложений для Web-серверов. Такие приложения, с одной стороны, могут являться клиентами серверных СУБД, а с другой стороны, обычно генерируют динамические HTML-страницы (в том числе с данными из этих СУБД) по запросу клиентского приложения, роль которого в данном случае выполняет Web-браузер (называемый в этом случае "ультратонким" клиентом, рис.8). Отметим, что в последнее время такие приложения получают все большее распространение.

Рис.8. Принципы работы Web-приложения

1.8 Зачем нужны многозвенные информационные системы

Информационные системы, созданные на основе классической архитектуры "клиент/сервер", называемые двухзвенными системами или системами с "толстым" клиентом, состоят из сервера баз данных, содержащего сгенерированные тем или иным способом таблицы, индексы, триггеры и другие объекты, реализующие бизнес-правила данной информационной системы, и одного или нескольких клиентских приложений, предоставляющих интерфейс пользователя и производящих проверку допустимости и обработку данных, согласно содержащимся в них алгоритмам. Если говорить о клиентских приложениях, созданных для доступа к источникам данных они применяют вызовы функций прикладных программных интерфейсов клиентских частей соответствующих серверных СУБД. Эти вызовы осуществляются например посредством использования библиотеки Borland Database Engine (BDE), хотя в целом это не является обязательным (например, некоторые пользователи Oracle непосредственно вызывают функции Oracle Call Interfase в своих приложениях). Соответственно подобное клиентское приложение требует наличия на компьютере Конечного пользователя клиентской части применяемой серверной СУБД (и наличия лицензии на ее использование) и присутствия в оперативной памяти набора динамически загружаемых библиотек как из клиентской части, так и из ВDE (либо иной заменяющей ее библиотеки), таких, как драйверы баз данных, библиотеки, содержащие функции API клиентских частей и др. При использовании доступа посредством ООВС требуется также наличие на рабочей станции соответствующего ODBC-драйвера и ODBC администратора. Это усложняет технические требования, предъявляемые аппаратной части клиентской рабочей станции, и в конечном итоге приводит к удорожанию всей системы в целом (рис.9).

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

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

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

Рис.-9. Классическое клиентское приложение («толстый» клиент).

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

Рис.10. Решение проблем: "тонкий" клиент и сервер приложении

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

1.9 ТЕРМИНОЛОГИЯ РАСПРЕДЕЛЕННЫХ СУБД

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

На сегодняшний день существуют три параллельно развивающиеся и конкурирующие технологии взаимодействия объектов и программ: MIDAS (Multitier Distributed Application Srevices Suite), СОМ (Common Object Model - компонентная модель объектов) корпорации Microsoft, CORBA (Common Object Require Broken Architecture - архитектура с поставщиком требуемых общих объектов) независимой группы OMG. Основные принципы этих технологий и использующиеся в них термины описываются ниже.

1.10 Технология MIDAS

Midas (Multitier Distributed Application Srevices Suite) - новый продукт компании Inprise (Borland), предназначенный для эксплуатации сервера приложений, созданных с помощью C++ Builder 3 и Delphi 3. Этот продукт расширяет возможности, предоставляемые разработчикам технологией Microsoft DCOM (Distributed Component Object Model). Этот продукт позволяет обеспечить высокую производительность, надежность и защиту от сбоев при эксплуатации подобных систем.

Архитектура трехзвенной информационной системы, построенной с использованием MIDAS, представлена на рис. 11.

Рис.11. Архитектура трехзвенной информационной системы с использованием MIDAS

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

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

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

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

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

Отметим, что Remote Data Broker предоставляет разработчикам широкие возможности для решения характерных для многопользовательского доступа к данным проблем, связанных с попытками одновременного редактирования несколькими пользователями одних и тех же данных. В данном случае механизм блокировок, применяемый в традиционной двухзвенной модели "клиент/сервер", может оказаться неэффективным или даже неприемлемым, так как промежуток времени между редактированием записи и сохранением ее в базе данных может быть весьма длительным. Поэтому при попытке сохранения сервером приложений измененной записи в базе данных производится поиск изменяемой записи либо по ключевому полю, либо по всем полям в зависимости от значения свойства ответственного за этот процесс компонента на сервере приложений и сравнение всех полей изменяемой записи с исходными значениями (т. е. теми, которые были в кэше клиента на момент получения этой записи с сервера до того, как пользователь изменил в кэше эту запись). Если какие-либо поля за время между получением оригинала записи клиентом и попыткой сохранить изменения были модифицированы другим пользователем, запись может быть передана обратно в клиентское приложение для дальнейшей обработки пользователем.

Отметим также, что удаленные модули данных (объекты Remote Data Module), входящие в состав серверной части Remote Data Broker, позволяют предоставить DCOM-интерфейс для| соответствующих объектов, делая их управляемыми извне и превращая, таким образом, сервер приложений в DCOM-сервер. Осуществляется такая публикация объектов путем выбора опции экспорта из удаленного модуля данных та контекстного меню соответствующего компонента при разработке сервера приложений.

Business Object Broker осуществляет для "тонкого" клиента поиск нужного сервера приложений среди доступных извне серверов, опубликованных в глобальном реестре - global registry, представляющем собой открытые части реестров компьютеров, содержащих серверы приложений. Применяется он в случае, когда требуется дублирование серверов приложений и возможность при сбое работы используемого сервера приложений подключить Клиентское приложение к другому серверу, либо при необходимости равномерного распределения клиентов по серверам приложений. Еще одной важной составляющей частью MIDAS является ConstraintBroker, дающий возможность использовать бизнес-правила сервера баз данных "тонким" клиентом. Обычно при проектировании баз данных бизнес-правила и правила ссылочной целостности реализуются в виде объектов базы данных, таких, как индексы, триггеры, хранимые процедуры. Такой подход к проектированию данных позволяет использовать эти объекты различными клиентскими приложениями без написания дополнительного кода.

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

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

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

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

Помимо перечисленных очевидных преимуществ трехзвенной архитектуры MIDAS также предоставляет разработчикам дополнительные возможности повышения надежности созданной информационной системы. Например, при наличии в сети нескольких однотипных серверов приложений Сбой одного из них приведет к распределению подключенных к нему "тонких" клиентов по другим серверам - это сделает Business Object Broker. Он же обеспечивает и равномерную загрузку серверов приложений клиентскими соединениями.

Но это еще не все. Именно трехзвенная архитектура позволяет реально осуществить централизацию хранения и обработки данных с одновременным доступом к актуальной информации I случае, когда рабочая станция находится на значительном расстоянии от сервера приложений исключающем прокладку локальной сети, так как доступ к серверу приложений может осуществляться » иными способами, такими, как модемное соединение или доступ через Internet. Требования к надежности такого соединения невысоки, так как при использовании подобной архитектуры активно применяется кеширование данных на рабочей станции, и при этом применение ConstraintBroker позволяет проверять соответствие изменяемых данных правилам сервера непосредственно на рабочей станции, поэтому применение "тонких" клиентов и серверов приложений, управляемых MIDAS, является одним из решений для территориально разбросанных предприятий, организаций с удаленными филиалами, в том числе в других городах и странах.

1.11 Технология СОМ

Технология СОМ разрабатывается корпорацией Microsoft и предназначена для того, чтобы одна программа (клиент) смогла заставить работать объект, являющийся частью другой программы (частью сервера), так, как если бы этот объект был частью клиента, причем обе программы в общем случае могут быть расположены на разных компьютерах (в том числе - находящихся в разных частях света), написаны на разных языках и исполняться под управлением разных операционных систем. Более того, сами компьютеры могут быть разного типа - например, IBM-совместимый ПК и рабочая станция SUN.

Ключевым аспектом СОМ является так называемый интерфейс. Интерфейс имеет уникальный идентификатор и набор параметров, описывающих методы, события и свойства общего объекта. Идентификатор интерфейса ID (Interface Identifier) является частным случаем GUID (Global Unique Identifier - глобально уникальный идентификатор). В состав Windows32 включены функции, генерирующие GUID, причем вероятность совпадения двух GUID ничтожно мала. Параметры интерфейса в общем случае описывают некоторый класс с идентификатором CLSID (Class ID реализуется как GUID), т. е. типы и имена используемых в нем полей, количество и типы параметров обращения к доступным методам и свойствам, имена методов и свойств и т. д. Получив интерфейс внешнего СОМ-объекта, клиент может его использовать так же, как свои собственные объекты. Любой СОМ-объект имеет интерфейс IUnknow, с помощью которого он может получить доступ к основному интерфейсу объекта.

Сервер СОМ представляет собой исполняемую программу или DLL, содержащую один или несколько объектов СОМ.

В зависимости от местоположения клиента и сервера возможны три варианта:

Клиент и сервер располагаются на одной машине и запускаются в одном процессе (именно так взаимодействует программа Delphi с компонентами ActiveX)", в этом случае сервер представляет собой DLL; клиент и сервер располагаются на одной машине, но запускаются в разных процессах (например, таблицы Exel вставлены в документ Word); в этом случае сервер представляет собой программу;

Клиент и сервер располагаются на разных машинах; сервером может быть как программа, так и DLL, используется распределенный вариант СОМ, который называется DСОМ (DСОМ).

В первом случае клиент с помощью интерфейса объекта непосредственно обращается к методам объекта в своем собственном адресном пространстве (рис.12).

Рис.12 Взаимодействие клиента и сервера в одном процессе.

Если сервер запускается в другом процессе или на другой машине, между объектом и клиентом располагаются два посредника - Proxy (уполномоченный) и Stub (заглушка) (рис.13). Клиент помещает параметры вызова в стек и обращается к методу интерфейса объекта. Однако это обращение перехватывает Proxy, упаковывает параметры вызова в пакет СОМ и направляет его в Stub другого процесса, возможно, на другой машине. Stub распаковывает параметры, помещает их в стек и делает вызов нужного метода объекта. Таким образом, метод объекта выполняется в собственном адресном пространстве процесса сервера.

1.12 Технология CORBA

Подобно СОМ, в CORBA активно используется интерфейс объекта. Главным отличием CORBA от СОМ является интегрированный в нее слой, реализующий доступ к удаленным объектам.

В соответствии с этой технологией схема взаимодействия клиента и сервера выглядит следующим образом (рис.14).

На машине клиента создаются два объекта-посредника: Stub (заглушка) и ORB (Object Require Broker - брокер требуемого объекта). Stub выступает как полномочный представитель объекта: с помощью интерфейса объекта клиент обращается к Stub так, как если бы это был сам объект.

Рис.13. Взаимодействие клиента и сервера в разных процессах.

Рис. 14. Взаимодействие клиента и сервера в CORBA.

Получив вызов метода, Stub транслирует этот вызов объекту ORB, который посылает в сеть широковещательное сообщение. На это сообщение откликается один из объектов Smart Agent((«умный» агент), установленный в сетевом окружении клиента (как в локальной сети, так и в Internet). Smart Agent моделирует сетевой каталог, в котором зарегистрированы известные ему серверы объектов. Он отыскивает нужный сетевой адрес сервера и передает запрос объекту ORB на машине сервера. Заметим, что обмен данными между ORB (клиента и сервера) и Smart Agent осуществляется с использованием специального протокола UDP, который более бережно использует сетевые ресурсы, чем протокол ТСР. Через ВОА (Basic Object Adapter - базовый объектный адаптер) данные получает особый объект сервера, который называется Skeleton (скелет). Skeleton помещает параметры вызова в стек адресного пространства объекта и реализует собственно вызов. Роль объекта ВОА заключается в фильтрации обращений к объекту сервера: с помощью его методов сервер через Skeleton может объявить некоторые свои поля и свойства доступными только для чтения иди вовсе срытыми от данного клиента. (Поскольку в рамках технологии данные, которыми обмениваются клиент и сервер, рассматриваются просто как цепочки байт, клиент должен поместить в буфер вызова свой авторизованный ключ в системах, защищенных от «посторонних» клиентов.)

«Изюминкой» CORBA является способ описания интерфейса объекта. Для этих целей разработан специальный язык IDL (Interface Definition Language - язык описания интерфейса), очень напоминающий язык С++. После описания интерфейса в терминах этого языка компилятор IDL автоматически создает объекты Stub и Skeleton. Обмен информацией об интерфейсе между разработчиками осуществляется в терминах языка высокого уровня, в то время как компилятор описания интерфейса переводит его текст в машинные инструкции конкретного компьютера (клиента или сервера). В результате достигается высокая степень независимости обмена данными от аппаратных средств клиента и пользователя.

Для реализации технологии в сетевом окружении клиента должен существовать хотя бы один Smart Agent. Если обмен данными осуществляется в локальной сети офиса, Smart Agent устанавливается на головную машину (на файл-сервер или машину с SQL-сервером), а при обмене данными по Internet - на одном из ее узлов. При создании сервера осуществляется автоматическая регистрация объектов в одном или нескольких Smart Agent. Таким образом, Smart Agent «знает», по каким сетевым адресам расположены его серверы. Это позволяет системе повысить свою надежность: если в одном из серверов произошел сбой, Smart Agent повторит вызов и при повторном сбое переключится на другой сервер.

1.13 Некоторые выводы

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

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

1.14. Применение систем Клиент/Сервер

Применение систем клиент-сервер в основном сконцентрировано в:

Банковском деле;

Системе продаж авиа билетов;

Сети Интернет.

Банковское дело

Все мы хорошо знакомы с основными банковскими операциями . Вот они:

2. Размещение и снятие с депозита наличных и безналичных денег ;

3. Предоставление займов;

4. Инвестиции;

5. Следование инструкциям банковского клиента.

Это лишь некоторые из многих функций, исполняемых банком в наши дни. Глобализация экономики привела к широкому распределению филиалов банков по стране. Так, например, у клиента банка открыт счет в Нью-Йорке, а оплатить чек он желает в Лос-Анджелесе, или получить наличными из банкомата во Флориде.

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

Как происходит перевод?

После того, как пользователь вводит номер счета, локальный терминал передает запрос по номеру и сумму счета к узловому компьютеру. Сервер сличает номер счета и проверяет достаточность баланса. Если на счету достаточно денег, с него снимается нужная сумма, и новый баланс «прописывается» на сервере. Это способ проплаты платежей между локальным терминалом и сервером.

Система продаж авиабилетов

Сегодня, например, можно заказать в Коннектикуте билеты на рейс компании TWA из Нью-Йорка через Санкт Луис в Сан-Франциско. Это стало возможным благодаря комбинированным технологическим усилиям сконфигурированных по типу клиент-сервер сетей и баз данных.

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

Интеренет

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

Известно, что Интернет представляет собой совокупность малых сетей, расположенных по всему миру. Для того, чтобы все сети могли понимать друг друга, необходимо, чтобы они изъяснялись на одном и том же языке, названном ТСР/IР. Вне зависимости от географического расстояния и платформы становится возможным клиентским и серверным машинам разговаривать друг с другом.

Давайте посмотрим, почему Мировая Паутина (WWW) может быть названа наиболее популярным программным приложением к/с в сети Интернет.

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

1.15. Примеры развития серверов индивидуальных баз данных

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

Совместимость между собой;

Оптимизация и производительность;

Контроль за целостностью данных;

Обработка переводов;

Конкурентоспособность, защита от зависаний и контроль многопользовательского доступа;

Защита от несанкционированного доступа и проверка подлинности клиента;

Резервирование, восстановление данных и другие функции базы.

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

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

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

Рис.1. Компоненты сетевого приложения

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

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

Автономная система (компьютер, не подключенный к сети) представляет все эти компоненты как на различных уровнях (ОС, служебное ПО и утилиты, прикладное ПО), так и на уровне приложений (не характерно для современных программ). Так же и сеть — она представляет все эти компоненты, но, в общем случае, распределенные между узлами. Задача сводится к обеспечению сетевого взаимодействия между этими компонентами.

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

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

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

Рис.2. Двухзвенная клиент-серверная архитектура

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

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

  • сервер терминалов — распределенное представление данных;
  • файл-сервер — доступ к удаленной базе данных и файловым ресурсам;
  • сервер БД — удаленное представление данных;
  • сервер приложений — удаленное приложение.

Перечисленные модели с вариациями представлены на .

Рис.3. Модели клиент-серверного взаимодействия

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

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

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

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

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

Преимущества такого подхода очевидны:

  • возможно централизованное администрирование прикладных функций;
  • снижение стоимости владения системой (TOC, total cost of ownership) за счет аренды сервера , а не его покупки;
  • значительное снижение сетевого трафика (т.к. передаются не SQL-запросы, а вызовы хранимых процедур).

Основной недостаток — ограниченность средств разработки хранимых процедур по сравнению с языками высокого уровня.

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

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

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

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

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

  1. Представление данных — на стороне клиента.
  2. Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).
  3. Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.

Рис.5. Многозвенная (N-tier) клиент-серверная архитектура

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

Сравнение архитектур

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

Трехзвенная архитектура сложнее, но благодаря тому, что функции распределены между серверами второго и третьего уровня, эта архитектура представляет:

  1. Высокую степень гибкости и масштабируемости.
  2. Высокую безопасность (т.к. защиту можно определить для каждого сервиса или уровня).
  3. Высокую производительность (т.к. задачи распределены между серверами).

Клиент-серверные технологии

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

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. Перечислите основные типы серверов.

Постоянный адрес этой страницы:

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

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

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

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

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

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

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

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

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

Сетевые технологии

Ethernet - самая популярная технология построения локальных сетей. Основанная на стандарте IEEE 802.3, Ethernet передает данные со скоростью 10 Мбит/с. В сети Ethernet устройства проверяют наличие сигнала в сетевом канале ("прослушивают" его). Если канал не использует никакое другое устройство, то устройство Ethernet передает данные. Каждая рабочая станция в этом сегменте локальной сети анализирует данные и определяет, предназначены ли они ей. Такая схема наиболее действенна при небольшом числе пользователей или незначительном количестве передаваемых в сегменте сообщений. При увеличении числа пользователей сеть будет работать не столь эффективно. В этом случае оптимальное решение состоит в увеличении числа сегментов для обслуживания групп с меньшим числом пользователей. Между тем в последнее время наблюдается тенденция предоставлять каждой настольной системе выделенные линии 10 Мбит/с. Эта тенденция определяется доступностью недорогих коммутаторов Ethernet. Передаваемые в сети Ethernet пакеты могут иметь переменную длину.

В сети Fast Ethernet применяется та же базовая технология, что и в Ethernet - множественный доступ с контролем несущей и обнаружением конфликтов (CSMA/CD, Carrier Sense Multiple Access with Collision Detection). Обе технологии основаны на стандарте IEEE 802.3. В результате для создания сетей обоих типов можно использовать (в большинстве случаев) один и тот же тип кабеля, одинаковые сетевые устройства и приложения. Сети Fast Ethernet позволяют передавать данные со скоростью 100 Мбит/с, то есть в десять раз быстрее Ethernet. При усложнении приложений и увеличении числа обращающихся к сети пользователей такая повышенная пропускная способность может помочь избавиться от "узких мест", вызывающих увеличение времени отклика сети.

Преимущества сетевых решений 10/100 Мбит/с

Недавно появилось новое решение, обеспечивающее одновременно широкую совместимость решений 10-Мбит/с Ethernet и 100-Мбит/с Fast Ethernet. "Двухскоростная" технология 10/100-Мбит/с Ethernet/Fast Ethernet позволяет таким устройствам, как сетевые платы, концентраторы и коммутаторы, работать с любой из этих скоростей (в зависимости от того, к какому устройству они подключены). При подсоединении ПК с сетевой платой 10/100-Мбит/с Ethernet/Fast Ethernet к порту концентратора 10 Мбит/с он будет работать со скоростью 10 Мбит/с. Если же подключить его к 10/100-Мбит/с порту концентратора (такого как 3Com SuperStack II Dual Speed Hub 500), то он автоматически опознает новую скорость и поддерживает 100 Мбит/с. Это дает возможность постепенно, в нужном темпе переходить на более высокую производительность. Кроме того, такой вариант позволяет упростить оборудование сетевых клиентов и серверов для поддержки нового поколения приложений, интенсивно использующих полосу пропускания и сетевые службы.

Gigabit Ethernet

Сети Gigabit Ethernet совместимы с сетевой инфраструктурой Ethernet и Fast Ethernet, но функционируют со скоростью 1000 Мбит/с - в 10 раз быстрее Fast Ethernet. Gigabit Ethernet - мощное решение, позволяющее устранить "узкие места" основной сети (куда подключаются сетевые сегменты, и где находятся серверы). "Узкие места" возникают из-за появления требовательных к полосе пропускания приложений, все большего увеличения непредсказуемых потоков трафика интрасетей и приложений мультимедиа. Gigabit Ethernet предоставляет способ плавного перевода рабочих групп Ethernet и Fast Ethernet на новую технологию. Такой переход оказывает минимальное влияние на их деятельность и позволяет достичь более высокой производительности.

ATM (Asynchronous Transfer Mode) или режим асинхронной передачи - это технология коммутации, в которой для пересылки данных применяются ячейки фиксированной длины. Функционируя с высокими скоростями, сети ATM поддерживают интегрированную передачу речи, видео и данных в одном канале, выполняя роль и локальных и территориально-распределенных сетей. Поскольку их работа отличается от разновидностей Internet и требует специальной инфраструктуры, такие сети в основном применяются в качестве магистральных сетей (backbone), соединяющих и объединяющих сетевые сегменты.

Технологии с кольцевой архитектурой

Технологии Token Ring и FDDI используются для создания эстафетных сетей с маркерным доступом. Они образуют непрерывное кольцо, в котором в одном направлении циркулирует специальная последовательность битов, называемая маркером (token). Маркер передается по кольцу, минуя каждую рабочую станцию в сети. Рабочая станция, располагающая информацией, которую необходимо передать, может добавить к маркеру кадр данных. В противном случае (при отсутствии данных) она просто передает маркер следующей станции. Сети Token Ring функционируют со скоростью 4 или 16 Мбит/с и применяются главным образом в среде IBM.

FDDI (Fiber Distributed Data Interface) также представляет собой кольцевую технологию, но она разработана для оптоволоконного кабеля и используется в магистральных сетях. Данный протокол аналогичен Token Ring и предусматривает передачу маркера по кольцу от одной рабочей станции к другой. В отличие от Token Ring, сети FDDI обычно состоят из двух колец, маркеры которых циркулируют в противоположных направлениях. Это делается для обеспечения бесперебойной работы сети (как правило на оптоволоконном кабеле) - ее защиты от отказов в одном из колец. Сети FDDI поддерживают скорость 100 Мбит/с и передачу данных на большие расстояния. Максимальная длина окружности сети FDDI составляет 100 км, а расстояние между рабочими станциями - 2 км.

Обе кольцевые технологии находят применение в новейших сетевых инсталляциях как альтернатива ATM и различных разновидностей Ethernet.