Клиент-серверная архитектура в картинках

Сетевые протоколы:

TCP/IP — набор протоколов передачи данных, получивший название от двух принадлежащих ему протоколов: TCP (англ. Transmission Control Protocol) и IP (англ. Internet Protocol).

Наиболее известные протоколы, используемые в сети Интернет:

  • HTTP (Hyper Text Transfer Protocol) — это протокол передачи гипертекста.

  • HTTPS (HyperText Transfer Protocol Secure) — расширение протокола HTTP для поддержки шифрования, в целях повышения безопасности. Данные в протоколе HTTPS передаются поверх криптографических протоколов SSL или TLS.

  • SSL ( Secure Sockets Layer — уровень защищённых cокетов) — криптографический протокол, который подразумевает более безопасную связь.

  • FTP (File Transfer Protocol) — это протокол передачи файлов со специального файлового сервера на компьютер пользователя.

  • POP3 (Post Office Protocol) — это стандартный протокол почтового соединения.

  • TELNET — это протокол удаленного доступа.

  • DTN — протокол, предназначенный для сетей дальней космической связи IPN, которые используются NASA.

Всё ПО для работы с протоколом HTTP разделяется на три большие категории:

1.Серверы — основные поставщики услуг хранения и обработки информации (обработка запросов).

2.Клиенты — конечные потребители услуг сервера (отправка запроса).

3.Прокси (посредники) — для выполнения транспортных служб.

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

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

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

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

Предусматриваются следующие три уровня:

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

Список использованной литературы

5. 19.701-90 . алгоритмов, , и систем. и правила .

6. , О.Л. Информационные : для ВУЗов / О.Л. , М.В. , И И. Попов, Т.Л. . — 2-е изд. — М.: ФОРУМ: ИНФРА-М, 2009. — 608 с.

7. Информационные технологии: учебник / под ред. В. В. Трофимова — М.: Издательство Юрайт ; ИД Юрайт, 2011 — 624 с.

8. Исаев, Г.Н. Информационные технологии: учеб, пособие / Г.Н. Исаев. — М.: Изд-во «Омега-Л», 2012. — 464 с.

9. Логунова, О С. Человеко-машинное взаимодействие: теория и практика: учеб, пособие / О С. Логунова. — Ростов н/Д.: Феникс, 2006. — 285 с.

10. Смирнова, Г.Н. Проектирование экономических информационных систем: учебник для ВУЗов / Г.Н. Смирнова, А.А. Сорокин, Ю.Ф. Тельнов; под ред. Ю.Ф. Тельнова. — 2-е изд., перераб. и доп. — М.: Финансы и статистика, 2007. — 512 с.

11. Советов, Б.Я. Информационные технологии: учебник для вузов / Б.Я. Советов, В.В. Цехановский. — изд. 6-е. — М.: Высш. школа, 2011- 272 с.

Разме

  • «Системы программирования»
  • «Проектирование реализации операций бизнес-процесса «Покупка сырья и материалов»»
  • Построение организационных структур ООО ХК «МебельДрев»
  • Теории происхождения государства и права
  • Протезно-ортопедическая помощь.
  • Бренд как конкурентное преимущество компании ООО «Спортмастер»
  • Американизмы в английском языке(Особенности исторического развития американского варианта английского языка. Американизмы на различных уровнях языка)
  • Влияние социальных сетей на становление современного общества
  • Организационная структура ООО «Строй-Конс»
  • ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИСПОЛЬЗОВАНИЯ ПРОБЛЕМНОГО ОБУЧЕНИЯ В НАЧАЛЬНОЙ ШКОЛЕ
  • Теория и методы воспитания младших школьников
  • Применение метода беседы при изучении личности

Глава 1. Теоретичекие основы функционирования технологии «клиент-сервер»

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

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

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

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

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

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

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

У нас может быть высоконагруженное приложение, например какая-либо социальная сеть, там сотни тысяч серверов и в этом случае у нас работает балансировщик. (на картинке сверху, клиент — балансировщик — сервер 1,2 — база данных). 

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

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

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

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

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

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

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

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.

Как функционирует клиент-серверная архитектура

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

Сервер выполняет следующие функции:

  • хранение данных;
  • обработка запроса от клиента с помощью процедур и триггеров;
  • отправка результата клиенту.

Функции, которые реализуются клиентской частью:

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

2-х уровневая клиент-сервер архитектура

Начнем с двухуровневой клиент-сервер архитектуры, на картинке справа снизу клиент — сервер.

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

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

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

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

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: