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

Изучение технологии «Клиент- сервер»

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

Задачи:

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

Изучить назначение и возможности «Клиент- сервера»

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

ГЛАВА 1 . ПОНЯТИЕ СЕРВЕРА И ЕГО ЗНАЧЕНИЕ

1.1 Сервера и их классификация

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

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

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

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

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

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

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

Существуют несколько видов таких серверов:

inetd от англ. internet super-server daemon демон сервисов IP — стандартное средство UNIX-систем — программа, позволяющая писать серверы TCP/IP (и сетевых протоколов других семейств), работающие с клиентом через перенаправленные inetd потоки стандартного ввода и вывода.

RPC от англ. Remote Procedure Call удаленный вызов процедур — система интеграции серверов в виде процедур доступных для вызова удаленным пользователем через унифицированный интерфейс. Интерфейс изобретенный Sun Microsystems для своей операционной системы, в настоящее время используетстся как в большинстве Unix-систем, так и в Windows. [2]

Прикладные клиент-серверные технологии Windows:

(D-)COM (англ. (Distributed) Component Object Model — модель составных объектов) и др. — Позволяет одним программам выполнять операции над объектами данных используя процедуры других программ. Изначально данная технология предназначена для их «внедрения и связывания объектов» (OLE англ. Object Linking and Embedding), но, в общем, позволяет писать широкий спектр различных прикладных серверов. COM работает только в пределах одного компьютера, DCOM доступна удаленно через RPC.

Active-X — Расширение COM и DCOM для создания мультимедиа-приложений.

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

Большинство внутренних и сетевых специфических серверов Windows работают через универсальные серверы (RPC, (D-)COM).

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

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

Серверы AAA и Radius обеспечивают в сети единую аутентификацию, авторизацию и ведение логов доступа. [2]

Информационные службы. К информационным службам можно отнести как простейшие серверы сообщающие информацию о хосте (time, daytime, motd), пользователях (finger, ident), так и серверы для мониторинга, например SNMP. Большинство информационных служб работают через универсальные серверы.

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

Файл-серверы представляют собой серверы для обеспечения доступа к файлам на диске сервера.

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

Другие серверы позволяют монтировать дисковые разделы сервера в дисковое пространство клиента и полноценно работать с файлами на них. Это позволяют серверы протоколов NFS и SMB. Серверы NFS и SMB работают через интерфейс RPC. [6]

Недостатки файл-серверной системы:

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

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

• Блокировка данных при редактировании одним пользователем делает невозможной работу с этими данными других пользователей.

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

Серверы доступа к данным обслуживают базу данных и отдают данные по запросам. Один из самых простых серверов подобного типа — LDAP (англ. Lightweight Directory Access Protocol — облегчённый протокол доступа к спискам).

Для доступа к серверам баз данных единого протокола не существует, однако все серверы баз данных объединяет использование единых правил формирования запросов — язык SQL (англ. Structured Query Language — язык структурированных запросов).

1.2. Технология клиент-сервер

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

http://mypractic.ru/wp-content/uploads/2017/02/Lesson47_4.png

Рис 1. Технология клиент сервер

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

В комплексе презентационные и коммуникационные возможности, важные и необходимые, в том числе и в образовательном процессе могут быть решены с помощью программ удалённого доступа. Самая распространенная утилита для удаленного управления ПК – это, конечно же, Remote Desktop Connection (RDC), входящая в комплект операционной системы Windows. Этот факт объясняется не столько ее функциональными возможностями, сколько тем, что она является составной частью ОС, а потому приобретать ее отдельно не нужно. Что касается функциональности данной утилиты, то на практике ее, как правило, бывает недостаточно, поэтому нередко используются специализированные программные пакеты сторонних производителей. В таблице 1 приведены данные о некоторых специализированных лицензионных программных пакетах, предназначенных для удалённого управления компьютерами с указанием их стоимости [1]. Заметим, что стоимость лицензионной программы зависит от количества лицензий (числа управляемых ПК)

Обозначенное позволяет констатировать о том, что далеко не все организации, образовательные учреждения могут позволить себе приобрести как необходимое мультимедийное оборудование, так и лицензионное достаточно дорогое программное обеспечение. Выше изложенное послужило идеей для создания программы «Удалённого мониторинга», которая решает необходимый минимум описанных задач, а именно:

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

– показывает содержимое закачанных учителем из сети Интернет Webстраниц;

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

– контролирует загружаемые из сети Интернет информационные материалы;

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

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

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

– подбор языка программирования для создания данной программы;

– анализ и разработка механизма работы программы, её необходимого состава; – написание программы;

– апробация созданной программы. Результаты первой задачи описаны выше. В качестве языка программирования для написания программы был определён язык Delphi. Пакет программы в своём составе содержит три папки:

1) Klient (people) – устанавливается на ПК клиентов (сотрудников, обучаемых);

2) Klien (teacher) – устанавливается на ПК сервера (управляющего, преподавателя);

3) Server –управляющая папка, устанавливается на все компьютеры, как клиентов, так и сервер.

Апробация программы была проведена на базах учебных заведений МОУ лицея №83 города Тюмени, Тобольского индустриального института и показала хорошие результаты, которые определяются: – презентабельностью, мобильностью, динамичностью проводимых занятий и как следствие повышением эффективности качества обучения; – коммуникационными возможностями, заключающимися в управлении, технической поддержке, контроле ПК удалённых компьютеров, что положительно, отражается на плодотворной деятельности клиентов (сотрудников, обучаемых).

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

1.3 Web-серверы и HTTP

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

Этот запрос включает:

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

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

GET – получить определенный ресурс (например, HTML-файл, содержащий информацию о товаре или список товаров).

POST – создать новый ресурс (например, новую статью на Википедии, добавить новый контакт в базу данных).

HEAD – получить метаданные об определенном ресурсе без получения содержания, как делает GET. Вы, например, можете использовать запрос HEAD, чтобы узнать, когда в последний раз ресурс обновлялся и только потом использовать (более «затратный») запрос GET, чтобы загрузить ресурс, который был изменен.

PUT – обновить существующий ресурс (или создать новый, если таковой не существует).

DELETE – удалить указанный ресурс.

TRACE, OPTIONS, CONNECT, PATCH – эти команды используются для менее популярных/продвинутых задач, поэтому мы их не будем рассматривать.

Дополнительная информация может быть зашифрована в запросе (например, данные формы). Информация может быть зашифрована как:

Параметры URL: запросы зашифровывают данные в , отправляемую на сервер, добавляя пары имя/значение в его конец, например, http://mysite.com?name=Fred&age=11. У вас всегда есть знак вопроса (?), отделяющий прочую часть от параметров , знак равно (=), отделяющий каждое имя от соответствующего ему значения, и амперсанд (&), разделяющий пары. Параметры по своей сути «небезопасны», так как они могут быть изменены пользователями и затем отправлены заново. В результате параметры /запросы не используются для запросов, которые обновляют данные на сервере.

POST данные. POST запросы добавляют новые ресурсы, данные которых зашифрованы в теле запроса.

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

Веб-серверы ожидают сообщений с запросами от клиентов, обрабатывают их, когда они приходят и отвечают веб-браузеру через сообщение с HTTP-ответом. Ответ содержит Код статуса HTTP-ответа, который показывает, был ли запрос успешным (например, «200 OK» означает успех, «404 Not Found» если ресурс не может быть найден, «403 Forbidden», если пользователь не имеет права просматривать ресурс, и т.д.). Тело успешного ответа на запрос GET будет содержать запрашиваемый ресурс.

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

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

ГЛАВА 2. СУТЬ ТЕХНОЛОГИИ КЛИЕНТ-СЕРВЕР

2.1 Основные сетевые протоколы

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

 Протокол IP.

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

IP протокол работает без установления соединений. Он просто пытается доставить пакет по указанному IP-адресу.

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

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

Если во время доставки пакета произошла ошибка, и пакет был потерян, то IP не пытается заново послать пакет. Т.е. IP не гарантирует, что пакет будет доставлен.

Коротко о протоколе IP можно сказать, что:

это протокол без установления соединений;

он доставляет небольшие (не более 1500 байт) отдельные пакеты данных между IP-адресами;

он не гарантирует, что доставленные данные будут правильными;

он не гарантирует, что данные вообще будут доставлены;

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

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

 Протокол TCP.

Transmission Control Protocol (протокол управления передачей) основной протокол передачи данных Интернета. Он использует способность IP протокола доставлять информацию от одного узла другому. Но в отличии от IP он:

Позволяет переносить большие объемы информации. Разделение данных на пакеты и “склеивание” данных на приемной стороне обеспечивает TCP.

Данные передаются с предварительной установкой соединения.

Производит контроль целостности данных.

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

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

 Протокол UDP.

User Datagram Protokol (протокол пользовательских датаграмм) простой протокол для передачи данных без установления соединения. Данные отправляются в одном направлении без проверки готовности приемника и без подтверждения доставки. Объем данных пакета может достигать 64 кБайт, но на практике многие сети поддерживают размер данных только 1500 байт.

Главное достоинство этого протокола – простата и высокая скорость передачи. Часто применяется в приложениях критичных к скорости доставки данных, таких как видеопотоки. В подобных задачах предпочтительнее потерять несколько пакетов, чем ждать отставшие.

Протоколу UDP свойственно:

это протокол без установления соединений;

он доставляет небольшие отдельные пакеты данных между IP-адресами;

он не гарантирует, что данные вообще будут доставлены;

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

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

 Протокол HTTP.

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

2.2 Архитектура клиент-сервер

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

Web-серверы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Таковым является рабочая станция или персональный компьютер, работающие под управлением собственной дисковой операционной системы и имеющие необходимый набор программного обеспечения. К сетевым серверам «толстые» клиенты обращаются в основном за дополнительными услугами (например, доступ к 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. [3]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Двухзвенная архитектура

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

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

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

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

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

сервер БД — удаленное представление данных;

сервер приложений — удаленное приложение.

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

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

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

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

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

возможно централизованное администрирование прикладных функций;

снижение стоимости владения системой (TOC, total cost of ownership) за счет аренды сервера, а не его покупки;

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

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

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

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

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

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

Представление данных — на стороне клиента.

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

Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.

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

2.3 Физически клиент и сервер

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

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

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

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

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

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

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

Классические недостатки:

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

Поддержка работы данной системы требует отдельного специалиста — системного администратора.

Высокая стоимость оборудования.

Однако, классические недостатки при реализации данного метода не являются существенными, так как:

Производительность сервера, например, при расчете задачи в Microsoft Excel, вообще не является определяющей.

Стоимость оборудования не очень высока, это обычный ПК или ноутбук.

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

3. Структурная схема и практическая реализация метода

Принципиальная схема данного метода:

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

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

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

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

Данный метод реализован и уже в течение 3 лет успешно используется при теплотехническом расчете методом конечных элементов (МКЭ) ограждающих конструкций зданий и сооружений.

Программа «Temper-3d», которая используется для расчета, зарегистрирована в реестре алгоритмов и программ для ЭВМ [4].

Клиентская часть, инструкции, документация, а также другая информация выложена на официальном сайте [5].

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

Ранее (в 2000 г.), в программе «Temper-3d» (версия 4.9) для защиты использовался метод привязки программы к компьютеру пользователя, который не позволял производить бесконтрольное копирование продукта на другой ПК. Также использовались ключи HASP На протяжении более 10 лет этот метод (версия 4.9) успешно использовался, но в настоящее время это не стало отвечать всевозрастающим потребностям. Вот уже 3 года, как реализован метод клиент-серверного обслуживания.

Преимущества данного метода, непосредственно, при реализации такой сложной задачи, как расчет МКЭ:

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

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

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

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

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

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

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

Клиентская часть программы “Temper-3d” (версия 6.12), включает в себя три модуля.

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

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

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

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

правила (протокол) взаимодействия между этими программами.

Технология взаимодействия, в которой одна программа запрашивает выполнение какой-либо совокупности действий ("запрашивает услугу"), а другая ее выполняет, называется технологией"клиент-сервер". Участники такого взаимодействия называются соответственно клиентом (client) и сервером (server). Достаточно часто клиентом (или сервером) называют компьютеры, на которых функционирует то или иное клиентское (или серверное) программное обеспечение.

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

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

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

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

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

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