Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

«Технология «клиент-сервер»

Содержание:

ВВЕДЕНИЕ

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

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

ввод и отображение данных (взаимодействие с пользователем);

прикладные функции, характерные для данной предметной области;

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

Поэтому, в любом приложении выделяются следующие компоненты:

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

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

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

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

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

Целью работы являться изучение технологии «Клиент- сервер»

Задачи:

Дать общее понятие о серверах;

Рассмотреть назначение и возможности технологии клиент сервер

Предметом работы выступают информационный системы.

Объектом работы возможности и назначение программы «Клиент- Сервер».

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

ГЛАВА 1 . ОБЩЕЕ ПОНЯТИЕ О СЕРВЕРАХ

1.1.Эволюция архитектуры клиент-сервер

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

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

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

В самом деле, в едином окружении могут использоваться разные типы клиентских и серверных платформ и операционных систем. Однако эти различия не имеют значения, если сервер и клиент используют одни и те же коммуникационные протоколы и поддерживают одинаковые приложения. Взаимодействие клиента и сервера обеспечивается коммуникационным программным обеспечением. Примерами такого программного обеспечения являются набор протоколов TCP/IP,- протоколы OSI, а также различные фирменные архитектуры, вроде SNA. клиент-сервер 6 Разумеется, назначение всего этого программного обеспечения поддержки (протоколов и операционной системы) заключается в предоставлении базы для распределенных приложений.

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

Наконец, существенным фактором успеха является метод взаимодействия пользователя с системой, то есть большое значение имеет пользовательский интерфейс клиентской машины. В большинстве систем клиент-сервер графическому интерфейсу пользователя (Graphical User Interface, GUI) уделяется очень серьезное внимание — он должен быть простым и удобным, но одновременно мощным и гибким. Таким образом, модуль услуг представления на рабочей станции можно считать ответственным за дружественный интерфейс с распределенными приложениями. Модуль услуг представления не следует путать с уровнем представления эталонной модели OSI. Уровень представления занимается форматированием данных для их корректной интерпретации каждым из двух взаимодействующих компьютеров. Модуль услуг представления имеет дело с взаимодействием пользователя и приложения, а также с функциональностью графического интерфейса пользователя. [12]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Трёхуровневая архитектура 

Компоненты сетевого приложения. Клиент-серверное взаимодействие и роли серверов.

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

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

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

прикладные функции, характерные для данной предметной области;

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

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

Рис. 1. Сетевое приложение

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

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

прикладной компонент реализует алгоритм решения конкретной задачи;

компонент управления ресурсом обеспечивает доступ к необходимым ресурсам.

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

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

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

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

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

сервер баз данных отвечает за хранение, доступ, защиту и резервное копирование данных;

сервер приложений - это устройство, выполняющее определенные бизнес-правила;

клиент предоставляет интерфейс пользователя;

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

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

Распределенные системы и приложения

Распределенная система представляет из себя группу компьютеров, которую пользователи видят как единую объединенную систему.

Выделяют 2 аспекта распределенной системы:

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

пользователям такая система представляется единой. [11]

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

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

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

Взаимодействие клиента и сервера в сети Интернет осуществляется при помощи запросов, которые клиент посылает серверу, и ответов, которые сервер отсылает на запрос клиента. [8]

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

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

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

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

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

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

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

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

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

ГЛАВА 2. НАЗНАЧЕНИЕ И ВОЗМОЖНОСТИ ТЕХНОЛОГИИ КЛИЕНТ-СЕРВЕР

2.1 Концепция взаимодействия клиент-сервер

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

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

Как понятно из названия, в данной концепции участвуют две стороны: клиент и сервер. Здесь всё как в жизни: клиент – это заказчик той или иной услуги, а сервер – поставщик услуг. Клиент и сервер физически представляют собой программы, например, типичным клиентом является браузер. В качестве сервера можно привести следующие примеры: все HTTP сервера (в частности Apache), MySQL сервер, локальный веб-сервер AMPPS или готовая сборка Denwer (последних два примера – это не проста сервера, а целый набор серверов).

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

Сообщения, которые посылают клиенты получили названия HTTP запросы. Запросы имеют специальные методы, которые говорят серверу о том, как обрабатывать сообщение. А сообщения, которые посылает сервер получили название HTTP ответы, они содержат помимо полезной информации еще и специальные коды состояния, которые позволяют браузеру узнать то, как сервер понял его запрос. [2]

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

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

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

Простая схема взаимодействия клиент-сервер

Рис. 2 Простая схема взаимодействия клиент-сервер

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

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

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

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

Мы уже упоминали, что большая часть сетевых протоколов имеют архитектуру клиент-сервер. Например, веб-мастеру или веб-разработчику будут интересны протоколы седьмого и шестого уровня эталонной модели. Сетевым администраторам важно понимать, как происходит взаимодействие на уровнях с пятого по второй. Для инженеров связи наибольший интерес представляют протоколы с четвертого по первый уровень модели OSI. [6]

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

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

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

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

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

Двухуровневая модель взаимодействия клиент-сервер

Рис. 3 Двухуровневая модель взаимодействия клиент-сервер

Здесь четко видно, что есть клиент (1-ый уровень), который позволяет человеку сделать запрос, и есть сервер, который обрабатывает запрос клиента.

Если говорить про многоуровневую архитектуру взаимодействия клиент-сервер, то в качестве примера можно привести любую современную СУБД (за исключением, наверное, библиотеки SQLite, которая в принципе не использует концепцию клиент-сервер).  Суть многоуровневой архитектуры заключается в том, что запрос клиента обрабатывается сразу несколькими серверами. Такой подход позволяет значительно снизить нагрузку на сервер из-за того, что происходит распределение операций, но в то же самое время данный подход не такой надежный, как двухзвенная архитектура. На рисунке ниже вы можете увидеть пример многоуровневой архитектуры клиент-сервер. [5]

Многоуровневая архитектура взаимодействия клиент-сервер

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

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

Если мы посмотрим на данную архитектуру с позиции сайта. То первый уровень можно считать браузером, с помощью которого посетитель заходит на сайт, второй уровень – это связка Apache + PHP, а третий уровень – это база данных. Если уж говорить совсем просто, то PHP больше ничего и не делает, кроме как, гоняет строки и базы данных на экран и обратно в базу данных. [2]

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

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

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

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

2.3 Клиент серверные расчеты

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

Схема резервирования в RAID-массиве 5-го уровня

Рис. 5 Клиент серверные расчеты

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

Дисковая подсистема.

Хотя RAID-10 обеспечивает приличные характеристики в соотношении цена/качество, иногда требуется более высокие показатели. Прироста производительности в данном случае можно добиться либо добавлением одного-двух дисков и построения массива 5-го уровня, либо, вообще отказаться от контроллера и обратить внимание в сторону SSD. Стоимость 200 гигабайтного диска, подходящего для использования в клиент-серверной 1С, на текущий момент составляет порядка 400$, однако позволяет более экономно подойти к вопросу электропитания и охлаждения. Правда, из-за весьма небольшого ресурса в 20000 циклов стирания/записи необходимо серьезно отнестись к вопросу резервного копирования данных. [4]

Оперативная память. Здесь все просто – чем ее больше, тем лучше. Начать можно с 16 Гб – по 8 Гб на сервер 1С и СУБД, и далее наращивать в зависимости от скорости работы и потребностей ПО.

Таким образом можно рассмотреть 2 варианта сервера под серверную часть 1С: один мы рассмотрели ранее, второй представлен в таблице:

Наименование

Цена за 1 ед., $

Кол-во

Цена, $

Серверная платформа ASUS TS110-E8-PI4, содержащая серверную материнскую плату

575

1

575

Процессор INTEL Xeon Processor E3-1220 v3 специально предназначенный для серверов

254

1

254

Память Kingston DDR-III DIMM 8Gb ECC с контролем четности

75

2

150

Жесткие диски 1 Tb SATA Seagate Constellation ES.3 3.5" 7200rpm 128Mb способные работать в режиме 24/7

102

1

102

SSD Intel DC S3700 200 Гб

400

1

400

Кулер, шлейфы, сборка

100

1

100

Итоговая сумма в 1581$ за сервер для размещения серверной части 1С оказалась даже ниже файл-серверного варианта. Однако стоит обратить на общий объем “быстрых” данных в 200Гб против 2Гб в предыдущем примере, хотя сборка имеет свои плюсы и большую скорость обмена данными, так необходимую СУБД.

2.4 Клиент-серверный режим работы 1С

Клиент-серверный вариант работы (Client-Server Operation Variant)

Один из альтернативных вариантов работы платформы 1С: Предприятие 8, является клиент – серверный.  «Клиент – сервер» выполнен на основе архитектуры 3ех уровней.

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

клиентское приложение

кластер - серверов 1С: Предприятия

сервер  баз данных.

Клиентское приложение любого пользователя,  работая с кластером серверов 1С: Предприятия 8 при необходимости обращается к базе данных на сервере.

При этом совершенно не обязательно чтобы сервер базы данных и http://center-comptech.ru/articles/images/st_301013-11.pngкластер серверов 1С: Предприятия 8  находился на одном компьютере, это может быть и другой компьютер.

Рис. 6. База данных 1 С.

Такие возможности помогут пропорционально разделить нагрузку между серверами.

Применение кластера серверов 1С: Предприятия 8 , это возможность сконцентрировать на нем осуществление  объемных операций по обработке  баз данных. Это могут быть выполнение объемных сложных запросов, и в этом случае программа пользователя   получит только необходимую информацию в виде тематической выборки, а  вся обработка будет происходить непосредственно на сервере. Такая возможность дает значительно облегчить работу, ведь увеличить мощность кластера намного легче, чем  обновление программных систем целого ряда компьютеров. [5]

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

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

В данном случае  платформа 1С: Предприятие 8 для результативной выборки информации сама оперирует всеми базами данных:

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

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

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

Клиентские приложения

Работа с   клиентским приложением  возможна  через веб-сервер или   напрямую с кластером.  При  подключении к кластеру толстый клиент и тонкий клиент   непосредственно  используют для передачи данных протокол TCP/IP. Если подключение осуществляется  через веб-сервер тонкий клиент и веб-клиент  используют протокол HTTP или HTTPS.

Кластер серверов 8.2

Основным компонентом системы 1С:Предприятия 8, с помощью которого взаимодействуют пользователи  с системой баз данных при работе с клиент сервером, является кластер серверов.

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

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

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

База Microsoft SQL Server

База PostgreSQL

База IBM DB2

База Oracle Database

Администрирование клиент-серверного варианта работы 8.2

В комплект платформы входит  специальная  утилита, которая позволяет администрировать     клиент-сервер    и управлять  администратору всеми подключенными пользователями и  информационными базами. [7]

Выполнение на сервере

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

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

Командный интерфейс  формируется аналогично на сервере,  и все отчеты  выводятся на клиенте.

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

На сервере выполняются  следующее:

Запросы к базам данных

Запись всех данных

Проводка документов

Разные расчеты

Проведение  обработок

Формирование  готовых отчетов

Подготовка форм к показу.

На клиенте выполняется  следующее:

Передача и открытие форм

Показ форм

Получение пользователем сообщений, предупреждений, т.е. информирование

Проведение быстрых расчетов по простым  формулам (цена Х количество)

Операции с локальными файлами

Операции с торговым оборудованием.

Использование встроенного языка версии 8.2 на клиенте

Управлять всеми функциями  форм возможно как  на сервере, так и на клиенте. [11]

Клиент  поддерживает  работу встроенного  языка программирования. 

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

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

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

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

СПИСОК ЛИТЕРАТУРЫ

  1. Бейсова, В. Е. Клиенты - тоже люди! Современные технологии и приемы работы с клиентом / В.Е. Бейсова. - М.: Феникс, 2016. - 208 c.
  2. Буряков, Е. Камасутра переговоров, или Без чего не удовлетворить клиента / Е. Буряков. - М.: Феникс, 2016. - 352 c.
  3. Вайнцвейг, Ари Безупречный сервис. Чтобы каждый клиент чувствовал себя королем / Ари Вайнцвейг. - М.: Добрая книга, 2016. - 152 c
  4. Дрога А. А., Жукова П. Н., Копонев Д. Н., Лукьянов Д. Б., Прокопенко А. Н. Информатика и математика. – Минск, 2015.
  5. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика — 3-е изд. — М.: «Вильямс», 2017.
  6. Кузнецов С. Д. Основы баз данных. — 1-е изд. — М.: «Интернетуниверситет информационных технологий ИНТУИТ.ру», 2017.
  7. Скотт В. Эмблер, Прамодкумар Дж. Садаладж. Рефакторинг баз данных: эволюционное проектирование — М.: «Вильямс», 2017
  8. Титоренко Г.А. Информационные технологии управления. М., Юнити: 2015.
  9. Кук, Сара Клиент в фокусе. Как поместить интересы клиента в центр внимания вашей on организации on / on Сара on Кук. on - on М.: on Баланс-Клуб, on 2014. on - on 272 on c.
  10. Улыбин, on К.А. on Брокер on и on биржа. on Пособие on для on брокеров on и on их on клиентов on / on К.А. on Улыбин, on И.С. on Андрошина, on Н.Л. on Харисова. on - on М.: on Информбизнес, on 2016. on - on 240 on c.
  11. Угринович, on Н.Д. on Информатика on и on ИКТ. on Базовый on уровень. on 10 on класс: on Учебник on / on Н.Д. on Угринович. on - on М.: on БИНОМ. on ЛЗ, on 2012. on - on 213 on c.
  12. Фролов, on А.В. on Локальные on сети on персональных on компьютеров. on Работа on с on сервером on Novell on NetWare on / on А.В. on Фролов, on Г.В. on Фролов. on - on М.: on Диалог-Мифи, on 2015. on - on 168 on c.
  13. Шуремов, on Е. on Информационные on технологии on управления on взаимоотношениями on с on клиентами on / on Е. on Шуремов. on - on М.: on 1С-Паблишинг, on 2015. on - on 996 on c.
  14. Цветкова, on М.С. on Информатика on и on ИКТ: on Учебник on для on начального on и on среднего on профессионального on образования on / on М.С. on Цветкова, on Л.С. on Великович. on - on М.: on ИЦ on Академия, on 2013. on - on 352 on c.